From 01fa19457e421d4d9a7fbb23968f9e613304255e Mon Sep 17 00:00:00 2001 From: Armano Date: Sat, 12 Jan 2019 05:07:29 +0100 Subject: [PATCH 1/3] test: add missing test cases for patterns --- tests/ast-alignment/fixtures-to-test.ts | 15 +- .../basics/and-operator-array-object.src.js | 4 + .../basics/or-operator-array-object.src.js | 4 + .../call-expression-with-array.src.js | 1 + .../call-expression-with-object.src.js | 1 + .../callExpression/mixed-expression.src.js | 5 + .../new-expression-with-array.src.js | 2 + .../new-expression-with-object.src.js | 2 + .../call-expression-destruction-array.src.js | 1 + .../call-expression-destruction-object.src.js | 1 + .../javascript/forIn/for-in-with-rest.src.js | 2 + .../javascript/forOf/for-of-with-rest.src.js | 2 + .../javascript/spread/complex-spread.src.js | 1 + .../basics/class-with-property-values.src.ts | 7 + tests/lib/__snapshots__/javascript.ts.snap | 116030 ++++++++------- .../semantic-diagnostics-enabled.ts.snap | 26 + tests/lib/__snapshots__/typescript.ts.snap | 1134 + 17 files changed, 63626 insertions(+), 53612 deletions(-) create mode 100644 tests/fixtures/javascript/basics/and-operator-array-object.src.js create mode 100644 tests/fixtures/javascript/basics/or-operator-array-object.src.js create mode 100644 tests/fixtures/javascript/callExpression/call-expression-with-array.src.js create mode 100644 tests/fixtures/javascript/callExpression/call-expression-with-object.src.js create mode 100644 tests/fixtures/javascript/callExpression/mixed-expression.src.js create mode 100644 tests/fixtures/javascript/callExpression/new-expression-with-array.src.js create mode 100644 tests/fixtures/javascript/callExpression/new-expression-with-object.src.js create mode 100644 tests/fixtures/javascript/destructuring/call-expression-destruction-array.src.js create mode 100644 tests/fixtures/javascript/destructuring/call-expression-destruction-object.src.js create mode 100644 tests/fixtures/javascript/forIn/for-in-with-rest.src.js create mode 100644 tests/fixtures/javascript/forOf/for-of-with-rest.src.js create mode 100644 tests/fixtures/javascript/spread/complex-spread.src.js create mode 100644 tests/fixtures/typescript/basics/class-with-property-values.src.ts diff --git a/tests/ast-alignment/fixtures-to-test.ts b/tests/ast-alignment/fixtures-to-test.ts index eccd24a..bfdda73 100644 --- a/tests/ast-alignment/fixtures-to-test.ts +++ b/tests/ast-alignment/fixtures-to-test.ts @@ -168,6 +168,8 @@ tester.addFixturePatternConfig('javascript/bigIntLiterals'); tester.addFixturePatternConfig('javascript/binaryLiterals'); tester.addFixturePatternConfig('javascript/blockBindings'); +tester.addFixturePatternConfig('javascript/callExpression'); + tester.addFixturePatternConfig('javascript/classes', { ignore: [ /** @@ -200,6 +202,7 @@ tester.addFixturePatternConfig('javascript/forIn', { * babel: ArrayExpression */ 'for-in-array', + 'for-in-with-rest', /** * Error: AST difference * ts-estree: AssignmentExpression @@ -226,7 +229,8 @@ tester.addFixturePatternConfig('javascript/forOf', { * ts-estree: ArrayPattern * babel: ArrayExpression */ - 'for-of-array' + 'for-of-array', + 'for-of-with-rest' ] }); tester.addFixturePatternConfig('javascript/generators'); @@ -275,7 +279,14 @@ tester.addFixturePatternConfig('javascript/regex'); tester.addFixturePatternConfig('javascript/regexUFlag'); tester.addFixturePatternConfig('javascript/regexYFlag'); tester.addFixturePatternConfig('javascript/restParams'); -tester.addFixturePatternConfig('javascript/spread'); +tester.addFixturePatternConfig('javascript/spread', { + ignore: [ + /** + * Error: AST difference + */ + 'complex-spread' + ] +}); tester.addFixturePatternConfig('javascript/unicodeCodePointEscapes'); /* ================================================== */ diff --git a/tests/fixtures/javascript/basics/and-operator-array-object.src.js b/tests/fixtures/javascript/basics/and-operator-array-object.src.js new file mode 100644 index 0000000..44480a0 --- /dev/null +++ b/tests/fixtures/javascript/basics/and-operator-array-object.src.js @@ -0,0 +1,4 @@ +var v = {} && {} && [] && "" && ("" && {}); +var x = [] && [] && {} && "" && ("" && []); +var z = [] && []; +var y = {} && {}; diff --git a/tests/fixtures/javascript/basics/or-operator-array-object.src.js b/tests/fixtures/javascript/basics/or-operator-array-object.src.js new file mode 100644 index 0000000..0b78444 --- /dev/null +++ b/tests/fixtures/javascript/basics/or-operator-array-object.src.js @@ -0,0 +1,4 @@ +var v = {} || {} || [] || "" || ("" || {}); +var x = [] || [] || {} || "" || ("" || []); +var z = [] || []; +var y = {} || {}; diff --git a/tests/fixtures/javascript/callExpression/call-expression-with-array.src.js b/tests/fixtures/javascript/callExpression/call-expression-with-array.src.js new file mode 100644 index 0000000..4853044 --- /dev/null +++ b/tests/fixtures/javascript/callExpression/call-expression-with-array.src.js @@ -0,0 +1 @@ +foo([]); diff --git a/tests/fixtures/javascript/callExpression/call-expression-with-object.src.js b/tests/fixtures/javascript/callExpression/call-expression-with-object.src.js new file mode 100644 index 0000000..5f81d97 --- /dev/null +++ b/tests/fixtures/javascript/callExpression/call-expression-with-object.src.js @@ -0,0 +1 @@ +foo({}); diff --git a/tests/fixtures/javascript/callExpression/mixed-expression.src.js b/tests/fixtures/javascript/callExpression/mixed-expression.src.js new file mode 100644 index 0000000..004c3ef --- /dev/null +++ b/tests/fixtures/javascript/callExpression/mixed-expression.src.js @@ -0,0 +1,5 @@ +(function () { + (function () { + this.call({}, []) + })([]); +})({}); diff --git a/tests/fixtures/javascript/callExpression/new-expression-with-array.src.js b/tests/fixtures/javascript/callExpression/new-expression-with-array.src.js new file mode 100644 index 0000000..350613c --- /dev/null +++ b/tests/fixtures/javascript/callExpression/new-expression-with-array.src.js @@ -0,0 +1,2 @@ +new bar([]); +new bar([[{}]]); diff --git a/tests/fixtures/javascript/callExpression/new-expression-with-object.src.js b/tests/fixtures/javascript/callExpression/new-expression-with-object.src.js new file mode 100644 index 0000000..33f2eff --- /dev/null +++ b/tests/fixtures/javascript/callExpression/new-expression-with-object.src.js @@ -0,0 +1,2 @@ +new bar({}); + diff --git a/tests/fixtures/javascript/destructuring/call-expression-destruction-array.src.js b/tests/fixtures/javascript/destructuring/call-expression-destruction-array.src.js new file mode 100644 index 0000000..1e7c8bb --- /dev/null +++ b/tests/fixtures/javascript/destructuring/call-expression-destruction-array.src.js @@ -0,0 +1 @@ +foo(...[]); diff --git a/tests/fixtures/javascript/destructuring/call-expression-destruction-object.src.js b/tests/fixtures/javascript/destructuring/call-expression-destruction-object.src.js new file mode 100644 index 0000000..216754d --- /dev/null +++ b/tests/fixtures/javascript/destructuring/call-expression-destruction-object.src.js @@ -0,0 +1 @@ +foo(...{}); diff --git a/tests/fixtures/javascript/forIn/for-in-with-rest.src.js b/tests/fixtures/javascript/forIn/for-in-with-rest.src.js new file mode 100644 index 0000000..cef90ad --- /dev/null +++ b/tests/fixtures/javascript/forIn/for-in-with-rest.src.js @@ -0,0 +1,2 @@ +for ({ x: xx, ...rrestOff } in array) { +} diff --git a/tests/fixtures/javascript/forOf/for-of-with-rest.src.js b/tests/fixtures/javascript/forOf/for-of-with-rest.src.js new file mode 100644 index 0000000..157c798 --- /dev/null +++ b/tests/fixtures/javascript/forOf/for-of-with-rest.src.js @@ -0,0 +1,2 @@ +for ({ x: xx, ...rrestOff } of array) { +} diff --git a/tests/fixtures/javascript/spread/complex-spread.src.js b/tests/fixtures/javascript/spread/complex-spread.src.js new file mode 100644 index 0000000..d4df1f9 --- /dev/null +++ b/tests/fixtures/javascript/spread/complex-spread.src.js @@ -0,0 +1 @@ +({x: { ka, ...nested }, y: other, f: { a: [{ ...nested2 }, ...y], b: { z, ...c }, ...rest2 }, ...rest} = complex); diff --git a/tests/fixtures/typescript/basics/class-with-property-values.src.ts b/tests/fixtures/typescript/basics/class-with-property-values.src.ts new file mode 100644 index 0000000..047fabd --- /dev/null +++ b/tests/fixtures/typescript/basics/class-with-property-values.src.ts @@ -0,0 +1,7 @@ +class Foo { + a = 2; + b = {}; + c = []; + d = ""; + e = new Array([{}, [], 2]); +} diff --git a/tests/lib/__snapshots__/javascript.ts.snap b/tests/lib/__snapshots__/javascript.ts.snap index 41a6d29..22aa5f7 100644 --- a/tests/lib/__snapshots__/javascript.ts.snap +++ b/tests/lib/__snapshots__/javascript.ts.snap @@ -9674,235 +9674,251 @@ Object { } `; -exports[`javascript fixtures/basics/delete-expression.src 1`] = ` +exports[`javascript fixtures/basics/and-operator-array-object.src 1`] = ` Object { "body": Array [ Object { - "expression": Object { - "argument": Object { - "computed": false, - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, - }, - "object": Object { + "declarations": Array [ + Object { + "id": Object { "loc": Object { "end": Object { - "column": 10, + "column": 5, "line": 1, }, "start": Object { - "column": 7, + "column": 4, "line": 1, }, }, - "name": "foo", + "name": "v", "range": Array [ - 7, - 10, + 4, + 5, ], "type": "Identifier", }, - "property": Object { + "init": Object { + "left": Object { + "left": Object { + "left": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "properties": Array [], + "range": Array [ + 8, + 10, + ], + "type": "ObjectExpression", + }, + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "operator": "&&", + "range": Array [ + 8, + 16, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "properties": Array [], + "range": Array [ + 14, + 16, + ], + "type": "ObjectExpression", + }, + "type": "LogicalExpression", + }, + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "operator": "&&", + "range": Array [ + 8, + 22, + ], + "right": Object { + "elements": Array [], + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "range": Array [ + 20, + 22, + ], + "type": "ArrayExpression", + }, + "type": "LogicalExpression", + }, + "loc": Object { + "end": Object { + "column": 28, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "operator": "&&", + "range": Array [ + 8, + 28, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 28, + "line": 1, + }, + "start": Object { + "column": 26, + "line": 1, + }, + }, + "range": Array [ + 26, + 28, + ], + "raw": "\\"\\"", + "type": "Literal", + "value": "", + }, + "type": "LogicalExpression", + }, "loc": Object { "end": Object { - "column": 14, + "column": 42, "line": 1, }, "start": Object { - "column": 11, + "column": 8, "line": 1, }, }, - "name": "bar", + "operator": "&&", "range": Array [ - 11, - 14, + 8, + 42, ], - "type": "Identifier", + "right": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 35, + "line": 1, + }, + "start": Object { + "column": 33, + "line": 1, + }, + }, + "range": Array [ + 33, + 35, + ], + "raw": "\\"\\"", + "type": "Literal", + "value": "", + }, + "loc": Object { + "end": Object { + "column": 41, + "line": 1, + }, + "start": Object { + "column": 33, + "line": 1, + }, + }, + "operator": "&&", + "range": Array [ + 33, + 41, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 41, + "line": 1, + }, + "start": Object { + "column": 39, + "line": 1, + }, + }, + "properties": Array [], + "range": Array [ + 39, + 41, + ], + "type": "ObjectExpression", + }, + "type": "LogicalExpression", + }, + "type": "LogicalExpression", + }, + "loc": Object { + "end": Object { + "column": 42, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, }, "range": Array [ - 7, - 14, + 4, + 42, ], - "type": "MemberExpression", - }, - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "operator": "delete", - "prefix": true, - "range": Array [ - 0, - 14, - ], - "type": "UnaryExpression", - }, - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 15, - ], - "type": "ExpressionStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 16, - ], - "sourceType": "script", - "tokens": Array [ - Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 6, - ], - "type": "Keyword", - "value": "delete", - }, - Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, - }, - "range": Array [ - 7, - 10, - ], - "type": "Identifier", - "value": "foo", - }, - Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "range": Array [ - 10, - 11, - ], - "type": "Punctuator", - "value": ".", - }, - Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "range": Array [ - 11, - 14, - ], - "type": "Identifier", - "value": "bar", - }, - Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, + "type": "VariableDeclarator", }, - }, - "range": Array [ - 14, - 15, ], - "type": "Punctuator", - "value": ";", - }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/basics/do-while-statements.src 1`] = ` -Object { - "body": Array [ - Object { - "body": Object { - "loc": Object { - "end": Object { - "column": 3, - "line": 1, - }, - "start": Object { - "column": 2, - "line": 1, - }, - }, - "range": Array [ - 2, - 3, - ], - "type": "EmptyStatement", - }, + "kind": "var", "loc": Object { "end": Object { - "column": 13, + "column": 43, "line": 1, }, "start": Object { @@ -9912,28 +9928,9 @@ Object { }, "range": Array [ 0, - 13, + 43, ], - "test": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "range": Array [ - 10, - 11, - ], - "raw": "1", - "type": "Literal", - "value": 1, - }, - "type": "DoWhileStatement", + "type": "VariableDeclaration", }, Object { "declarations": Array [ @@ -9942,241 +9939,477 @@ Object { "loc": Object { "end": Object { "column": 5, - "line": 3, + "line": 2, }, "start": Object { "column": 4, - "line": 3, + "line": 2, }, }, - "name": "i", + "name": "x", "range": Array [ - 19, - 20, + 48, + 49, ], "type": "Identifier", }, "init": Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 3, - }, - "start": Object { - "column": 8, - "line": 3, - }, - }, - "range": Array [ - 23, - 24, - ], - "raw": "0", - "type": "Literal", - "value": 0, - }, - "loc": Object { - "end": Object { - "column": 9, - "line": 3, - }, - "start": Object { - "column": 4, - "line": 3, - }, - }, - "range": Array [ - 19, - 24, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "var", - "loc": Object { - "end": Object { - "column": 10, - "line": 3, - }, - "start": Object { - "column": 0, - "line": 3, - }, - }, - "range": Array [ - 15, - 25, - ], - "type": "VariableDeclaration", - }, - Object { - "body": Object { - "body": Array [ - Object { - "expression": Object { + "left": Object { "left": Object { - "loc": Object { - "end": Object { - "column": 4, - "line": 5, + "left": Object { + "left": Object { + "elements": Array [], + "loc": Object { + "end": Object { + "column": 10, + "line": 2, + }, + "start": Object { + "column": 8, + "line": 2, + }, + }, + "range": Array [ + 52, + 54, + ], + "type": "ArrayExpression", }, - "start": Object { - "column": 3, - "line": 5, + "loc": Object { + "end": Object { + "column": 16, + "line": 2, + }, + "start": Object { + "column": 8, + "line": 2, + }, }, - }, - "name": "i", + "operator": "&&", + "range": Array [ + 52, + 60, + ], + "right": Object { + "elements": Array [], + "loc": Object { + "end": Object { + "column": 16, + "line": 2, + }, + "start": Object { + "column": 14, + "line": 2, + }, + }, + "range": Array [ + 58, + 60, + ], + "type": "ArrayExpression", + }, + "type": "LogicalExpression", + }, + "loc": Object { + "end": Object { + "column": 22, + "line": 2, + }, + "start": Object { + "column": 8, + "line": 2, + }, + }, + "operator": "&&", "range": Array [ - 34, - 35, + 52, + 66, ], - "type": "Identifier", + "right": Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 2, + }, + "start": Object { + "column": 20, + "line": 2, + }, + }, + "properties": Array [], + "range": Array [ + 64, + 66, + ], + "type": "ObjectExpression", + }, + "type": "LogicalExpression", }, "loc": Object { "end": Object { - "column": 9, - "line": 5, + "column": 28, + "line": 2, }, "start": Object { - "column": 3, - "line": 5, + "column": 8, + "line": 2, }, }, - "operator": "+=", + "operator": "&&", "range": Array [ - 34, - 40, + 52, + 72, ], "right": Object { "loc": Object { "end": Object { - "column": 9, - "line": 5, + "column": 28, + "line": 2, }, "start": Object { - "column": 8, - "line": 5, + "column": 26, + "line": 2, }, }, "range": Array [ - 39, - 40, + 70, + 72, ], - "raw": "1", + "raw": "\\"\\"", "type": "Literal", - "value": 1, + "value": "", }, - "type": "AssignmentExpression", + "type": "LogicalExpression", }, "loc": Object { "end": Object { - "column": 10, - "line": 5, + "column": 42, + "line": 2, }, "start": Object { - "column": 3, - "line": 5, + "column": 8, + "line": 2, }, }, + "operator": "&&", "range": Array [ - 34, - 41, + 52, + 86, ], - "type": "ExpressionStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 1, - "line": 6, + "right": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 35, + "line": 2, + }, + "start": Object { + "column": 33, + "line": 2, + }, + }, + "range": Array [ + 77, + 79, + ], + "raw": "\\"\\"", + "type": "Literal", + "value": "", + }, + "loc": Object { + "end": Object { + "column": 41, + "line": 2, + }, + "start": Object { + "column": 33, + "line": 2, + }, + }, + "operator": "&&", + "range": Array [ + 77, + 85, + ], + "right": Object { + "elements": Array [], + "loc": Object { + "end": Object { + "column": 41, + "line": 2, + }, + "start": Object { + "column": 39, + "line": 2, + }, + }, + "range": Array [ + 83, + 85, + ], + "type": "ArrayExpression", + }, + "type": "LogicalExpression", + }, + "type": "LogicalExpression", }, - "start": Object { - "column": 3, - "line": 4, + "loc": Object { + "end": Object { + "column": 42, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, + }, }, + "range": Array [ + 48, + 86, + ], + "type": "VariableDeclarator", }, - "range": Array [ - 29, - 43, - ], - "type": "BlockStatement", - }, + ], + "kind": "var", "loc": Object { "end": Object { - "column": 16, - "line": 6, + "column": 43, + "line": 2, }, "start": Object { "column": 0, - "line": 4, + "line": 2, }, }, "range": Array [ - 26, - 58, + 44, + 87, ], - "test": Object { - "left": Object { + "type": "VariableDeclaration", + }, + Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 3, + }, + }, + "name": "z", + "range": Array [ + 92, + 93, + ], + "type": "Identifier", + }, + "init": Object { + "left": Object { + "elements": Array [], + "loc": Object { + "end": Object { + "column": 10, + "line": 3, + }, + "start": Object { + "column": 8, + "line": 3, + }, + }, + "range": Array [ + 96, + 98, + ], + "type": "ArrayExpression", + }, + "loc": Object { + "end": Object { + "column": 16, + "line": 3, + }, + "start": Object { + "column": 8, + "line": 3, + }, + }, + "operator": "&&", + "range": Array [ + 96, + 104, + ], + "right": Object { + "elements": Array [], + "loc": Object { + "end": Object { + "column": 16, + "line": 3, + }, + "start": Object { + "column": 14, + "line": 3, + }, + }, + "range": Array [ + 102, + 104, + ], + "type": "ArrayExpression", + }, + "type": "LogicalExpression", + }, "loc": Object { "end": Object { - "column": 10, - "line": 6, + "column": 16, + "line": 3, }, "start": Object { - "column": 9, - "line": 6, + "column": 4, + "line": 3, }, }, - "name": "i", "range": Array [ - 51, - 52, + 92, + 104, ], - "type": "Identifier", + "type": "VariableDeclarator", }, - "loc": Object { - "end": Object { - "column": 14, - "line": 6, + ], + "kind": "var", + "loc": Object { + "end": Object { + "column": 17, + "line": 3, + }, + "start": Object { + "column": 0, + "line": 3, + }, + }, + "range": Array [ + 88, + 105, + ], + "type": "VariableDeclaration", + }, + Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 4, + }, + "start": Object { + "column": 4, + "line": 4, + }, + }, + "name": "y", + "range": Array [ + 110, + 111, + ], + "type": "Identifier", }, - "start": Object { - "column": 9, - "line": 6, + "init": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 4, + }, + "start": Object { + "column": 8, + "line": 4, + }, + }, + "properties": Array [], + "range": Array [ + 114, + 116, + ], + "type": "ObjectExpression", + }, + "loc": Object { + "end": Object { + "column": 16, + "line": 4, + }, + "start": Object { + "column": 8, + "line": 4, + }, + }, + "operator": "&&", + "range": Array [ + 114, + 122, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 4, + }, + "start": Object { + "column": 14, + "line": 4, + }, + }, + "properties": Array [], + "range": Array [ + 120, + 122, + ], + "type": "ObjectExpression", + }, + "type": "LogicalExpression", }, - }, - "operator": "<", - "range": Array [ - 51, - 56, - ], - "right": Object { "loc": Object { "end": Object { - "column": 14, - "line": 6, + "column": 16, + "line": 4, }, "start": Object { - "column": 13, - "line": 6, + "column": 4, + "line": 4, }, }, "range": Array [ - 55, - 56, + 110, + 122, ], - "raw": "5", - "type": "Literal", - "value": 5, + "type": "VariableDeclarator", + }, + ], + "kind": "var", + "loc": Object { + "end": Object { + "column": 17, + "line": 4, + }, + "start": Object { + "column": 0, + "line": 4, }, - "type": "BinaryExpression", }, - "type": "DoWhileStatement", + "range": Array [ + 106, + 123, + ], + "type": "VariableDeclaration", }, ], "loc": Object { "end": Object { "column": 0, - "line": 7, + "line": 5, }, "start": Object { "column": 0, @@ -10185,14 +10418,14 @@ Object { }, "range": Array [ 0, - 59, + 124, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 2, + "column": 3, "line": 1, }, "start": Object { @@ -10202,87 +10435,87 @@ Object { }, "range": Array [ 0, - 2, + 3, ], "type": "Keyword", - "value": "do", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 3, + "column": 5, "line": 1, }, "start": Object { - "column": 2, + "column": 4, "line": 1, }, }, "range": Array [ - 2, - 3, + 4, + 5, ], - "type": "Punctuator", - "value": ";", + "type": "Identifier", + "value": "v", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 7, "line": 1, }, "start": Object { - "column": 4, + "column": 6, "line": 1, }, }, "range": Array [ - 4, - 9, + 6, + 7, ], - "type": "Keyword", - "value": "while", + "type": "Punctuator", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 9, "line": 1, }, "start": Object { - "column": 9, + "column": 8, "line": 1, }, }, "range": Array [ + 8, 9, - 10, ], "type": "Punctuator", - "value": "(", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 10, "line": 1, }, "start": Object { - "column": 10, + "column": 9, "line": 1, }, }, "range": Array [ + 9, 10, - 11, ], - "type": "Numeric", - "value": "1", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 13, "line": 1, }, "start": Object { @@ -10292,182 +10525,200 @@ Object { }, "range": Array [ 11, - 12, + 13, ], "type": "Punctuator", - "value": ")", + "value": "&&", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 15, "line": 1, }, "start": Object { - "column": 12, + "column": 14, "line": 1, }, }, "range": Array [ - 12, - 13, + 14, + 15, ], "type": "Punctuator", - "value": ";", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 3, - "line": 3, + "column": 16, + "line": 1, }, "start": Object { - "column": 0, - "line": 3, + "column": 15, + "line": 1, }, }, "range": Array [ 15, - 18, + 16, ], - "type": "Keyword", - "value": "var", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 5, - "line": 3, + "column": 19, + "line": 1, }, "start": Object { - "column": 4, - "line": 3, + "column": 17, + "line": 1, }, }, "range": Array [ + 17, 19, - 20, ], - "type": "Identifier", - "value": "i", + "type": "Punctuator", + "value": "&&", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 3, + "column": 21, + "line": 1, }, "start": Object { - "column": 6, - "line": 3, + "column": 20, + "line": 1, }, }, "range": Array [ + 20, 21, - 22, ], "type": "Punctuator", - "value": "=", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 9, - "line": 3, + "column": 22, + "line": 1, }, "start": Object { - "column": 8, - "line": 3, + "column": 21, + "line": 1, }, }, "range": Array [ - 23, - 24, + 21, + 22, ], - "type": "Numeric", - "value": "0", + "type": "Punctuator", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 10, - "line": 3, + "column": 25, + "line": 1, }, "start": Object { - "column": 9, - "line": 3, + "column": 23, + "line": 1, }, }, "range": Array [ - 24, + 23, 25, ], "type": "Punctuator", - "value": ";", + "value": "&&", }, Object { "loc": Object { "end": Object { - "column": 2, - "line": 4, + "column": 28, + "line": 1, }, "start": Object { - "column": 0, - "line": 4, + "column": 26, + "line": 1, }, }, "range": Array [ 26, 28, ], - "type": "Keyword", - "value": "do", + "type": "String", + "value": "\\"\\"", }, Object { "loc": Object { "end": Object { - "column": 4, - "line": 4, + "column": 31, + "line": 1, }, "start": Object { - "column": 3, - "line": 4, + "column": 29, + "line": 1, }, }, "range": Array [ 29, - 30, + 31, ], "type": "Punctuator", - "value": "{", + "value": "&&", }, Object { "loc": Object { "end": Object { - "column": 4, - "line": 5, + "column": 33, + "line": 1, }, "start": Object { - "column": 3, - "line": 5, + "column": 32, + "line": 1, }, }, "range": Array [ - 34, + 32, + 33, + ], + "type": "Punctuator", + "value": "(", + }, + Object { + "loc": Object { + "end": Object { + "column": 35, + "line": 1, + }, + "start": Object { + "column": 33, + "line": 1, + }, + }, + "range": Array [ + 33, 35, ], - "type": "Identifier", - "value": "i", + "type": "String", + "value": "\\"\\"", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 5, + "column": 38, + "line": 1, }, "start": Object { - "column": 5, - "line": 5, + "column": 36, + "line": 1, }, }, "range": Array [ @@ -10475,35 +10726,35 @@ Object { 38, ], "type": "Punctuator", - "value": "+=", + "value": "&&", }, Object { "loc": Object { "end": Object { - "column": 9, - "line": 5, + "column": 40, + "line": 1, }, "start": Object { - "column": 8, - "line": 5, + "column": 39, + "line": 1, }, }, "range": Array [ 39, 40, ], - "type": "Numeric", - "value": "1", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 10, - "line": 5, + "column": 41, + "line": 1, }, "start": Object { - "column": 9, - "line": 5, + "column": 40, + "line": 1, }, }, "range": Array [ @@ -10511,17 +10762,35 @@ Object { 41, ], "type": "Punctuator", - "value": ";", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 1, - "line": 6, + "column": 42, + "line": 1, }, "start": Object { - "column": 0, - "line": 6, + "column": 41, + "line": 1, + }, + }, + "range": Array [ + 41, + 42, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 43, + "line": 1, + }, + "start": Object { + "column": 42, + "line": 1, }, }, "range": Array [ @@ -10529,35 +10798,53 @@ Object { 43, ], "type": "Punctuator", - "value": "}", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 6, + "column": 3, + "line": 2, }, "start": Object { - "column": 2, - "line": 6, + "column": 0, + "line": 2, }, }, "range": Array [ 44, - 49, + 47, ], "type": "Keyword", - "value": "while", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 9, - "line": 6, + "column": 5, + "line": 2, }, "start": Object { - "column": 8, - "line": 6, + "column": 4, + "line": 2, + }, + }, + "range": Array [ + 48, + 49, + ], + "type": "Identifier", + "value": "x", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 2, + }, + "start": Object { + "column": 6, + "line": 2, }, }, "range": Array [ @@ -10565,35 +10852,35 @@ Object { 51, ], "type": "Punctuator", - "value": "(", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 10, - "line": 6, + "column": 9, + "line": 2, }, "start": Object { - "column": 9, - "line": 6, + "column": 8, + "line": 2, }, }, "range": Array [ - 51, 52, + 53, ], - "type": "Identifier", - "value": "i", + "type": "Punctuator", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 12, - "line": 6, + "column": 10, + "line": 2, }, "start": Object { - "column": 11, - "line": 6, + "column": 9, + "line": 2, }, }, "range": Array [ @@ -10601,761 +10888,687 @@ Object { 54, ], "type": "Punctuator", - "value": "<", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 14, - "line": 6, + "column": 13, + "line": 2, }, "start": Object { - "column": 13, - "line": 6, + "column": 11, + "line": 2, }, }, "range": Array [ 55, - 56, + 57, ], - "type": "Numeric", - "value": "5", + "type": "Punctuator", + "value": "&&", }, Object { "loc": Object { "end": Object { "column": 15, - "line": 6, + "line": 2, }, "start": Object { "column": 14, - "line": 6, + "line": 2, }, }, "range": Array [ - 56, - 57, + 58, + 59, ], "type": "Punctuator", - "value": ")", + "value": "[", }, Object { "loc": Object { "end": Object { "column": 16, - "line": 6, + "line": 2, }, "start": Object { "column": 15, - "line": 6, + "line": 2, }, }, "range": Array [ - 57, - 58, + 59, + 60, ], "type": "Punctuator", - "value": ";", + "value": "]", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/basics/identifiers-double-underscore.src 1`] = ` -Object { - "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "name": "__test", - "range": Array [ - 4, - 10, - ], - "type": "Identifier", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "range": Array [ - 13, - 17, - ], - "raw": "'ff'", - "type": "Literal", - "value": "ff", - }, - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 17, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "var", "loc": Object { "end": Object { - "column": 18, - "line": 1, + "column": 19, + "line": 2, }, "start": Object { - "column": 0, - "line": 1, + "column": 17, + "line": 2, }, }, "range": Array [ - 0, - 18, + 61, + 63, ], - "type": "VariableDeclaration", + "type": "Punctuator", + "value": "&&", }, Object { - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 1, - "line": 5, - }, - "start": Object { - "column": 12, - "line": 3, - }, - }, - "range": Array [ - 32, - 36, - ], - "type": "ClassBody", - }, - "id": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 3, - }, - "start": Object { - "column": 6, - "line": 3, - }, - }, - "name": "__Foo", - "range": Array [ - 26, - 31, - ], - "type": "Identifier", - }, "loc": Object { "end": Object { - "column": 1, - "line": 5, + "column": 21, + "line": 2, }, "start": Object { - "column": 0, - "line": 3, + "column": 20, + "line": 2, }, }, "range": Array [ - 20, - 36, + 64, + 65, ], - "superClass": null, - "type": "ClassDeclaration", + "type": "Punctuator", + "value": "{", }, Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 1, - "line": 9, - }, - "start": Object { - "column": 17, - "line": 7, - }, + "loc": Object { + "end": Object { + "column": 22, + "line": 2, }, - "range": Array [ - 55, - 59, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 7, - }, - "start": Object { - "column": 9, - "line": 7, - }, + "start": Object { + "column": 21, + "line": 2, }, - "name": "__Bar", - "range": Array [ - 47, - 52, - ], - "type": "Identifier", }, + "range": Array [ + 65, + 66, + ], + "type": "Punctuator", + "value": "}", + }, + Object { "loc": Object { "end": Object { - "column": 1, - "line": 9, + "column": 25, + "line": 2, }, "start": Object { - "column": 0, - "line": 7, + "column": 23, + "line": 2, }, }, - "params": Array [], "range": Array [ - 38, - 59, + 67, + 69, ], - "type": "FunctionDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 10, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Punctuator", + "value": "&&", }, - }, - "range": Array [ - 0, - 60, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, - "line": 1, + "column": 28, + "line": 2, }, "start": Object { - "column": 0, - "line": 1, + "column": 26, + "line": 2, }, }, "range": Array [ - 0, - 3, + 70, + 72, ], - "type": "Keyword", - "value": "var", + "type": "String", + "value": "\\"\\"", }, Object { "loc": Object { "end": Object { - "column": 10, - "line": 1, + "column": 31, + "line": 2, }, "start": Object { - "column": 4, - "line": 1, + "column": 29, + "line": 2, }, }, "range": Array [ - 4, - 10, + 73, + 75, ], - "type": "Identifier", - "value": "__test", + "type": "Punctuator", + "value": "&&", }, Object { "loc": Object { "end": Object { - "column": 12, - "line": 1, + "column": 33, + "line": 2, }, "start": Object { - "column": 11, - "line": 1, + "column": 32, + "line": 2, }, }, "range": Array [ - 11, - 12, + 76, + 77, ], "type": "Punctuator", - "value": "=", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 17, - "line": 1, + "column": 35, + "line": 2, }, "start": Object { - "column": 13, - "line": 1, + "column": 33, + "line": 2, }, }, "range": Array [ - 13, - 17, + 77, + 79, ], "type": "String", - "value": "'ff'", + "value": "\\"\\"", }, Object { "loc": Object { "end": Object { - "column": 18, - "line": 1, + "column": 38, + "line": 2, }, "start": Object { - "column": 17, - "line": 1, + "column": 36, + "line": 2, }, }, "range": Array [ - 17, - 18, + 80, + 82, ], "type": "Punctuator", - "value": ";", + "value": "&&", }, Object { "loc": Object { "end": Object { - "column": 5, - "line": 3, + "column": 40, + "line": 2, }, "start": Object { - "column": 0, - "line": 3, + "column": 39, + "line": 2, }, }, "range": Array [ - 20, - 25, + 83, + 84, ], - "type": "Keyword", - "value": "class", + "type": "Punctuator", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 11, - "line": 3, + "column": 41, + "line": 2, }, "start": Object { - "column": 6, + "column": 40, + "line": 2, + }, + }, + "range": Array [ + 84, + 85, + ], + "type": "Punctuator", + "value": "]", + }, + Object { + "loc": Object { + "end": Object { + "column": 42, + "line": 2, + }, + "start": Object { + "column": 41, + "line": 2, + }, + }, + "range": Array [ + 85, + 86, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 43, + "line": 2, + }, + "start": Object { + "column": 42, + "line": 2, + }, + }, + "range": Array [ + 86, + 87, + ], + "type": "Punctuator", + "value": ";", + }, + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 3, + }, + "start": Object { + "column": 0, "line": 3, }, }, "range": Array [ - 26, - 31, + 88, + 91, + ], + "type": "Keyword", + "value": "var", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 3, + }, + }, + "range": Array [ + 92, + 93, ], "type": "Identifier", - "value": "__Foo", + "value": "z", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 7, "line": 3, }, "start": Object { - "column": 12, + "column": 6, "line": 3, }, }, "range": Array [ - 32, - 33, + 94, + 95, ], "type": "Punctuator", - "value": "{", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 1, - "line": 5, + "column": 9, + "line": 3, }, "start": Object { - "column": 0, - "line": 5, + "column": 8, + "line": 3, }, }, "range": Array [ - 35, - 36, + 96, + 97, ], "type": "Punctuator", - "value": "}", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 8, - "line": 7, + "column": 10, + "line": 3, }, "start": Object { - "column": 0, - "line": 7, + "column": 9, + "line": 3, }, }, "range": Array [ - 38, - 46, + 97, + 98, ], - "type": "Keyword", - "value": "function", + "type": "Punctuator", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 14, - "line": 7, + "column": 13, + "line": 3, }, "start": Object { - "column": 9, - "line": 7, + "column": 11, + "line": 3, }, }, "range": Array [ - 47, - 52, + 99, + 101, ], - "type": "Identifier", - "value": "__Bar", + "type": "Punctuator", + "value": "&&", }, Object { "loc": Object { "end": Object { "column": 15, - "line": 7, + "line": 3, }, "start": Object { "column": 14, - "line": 7, + "line": 3, }, }, "range": Array [ - 52, - 53, + 102, + 103, ], "type": "Punctuator", - "value": "(", + "value": "[", }, Object { "loc": Object { "end": Object { "column": 16, - "line": 7, + "line": 3, }, "start": Object { "column": 15, - "line": 7, + "line": 3, }, }, "range": Array [ - 53, - 54, + 103, + 104, ], "type": "Punctuator", - "value": ")", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 18, - "line": 7, + "column": 17, + "line": 3, }, "start": Object { - "column": 17, - "line": 7, + "column": 16, + "line": 3, }, }, "range": Array [ - 55, - 56, + 104, + 105, ], "type": "Punctuator", - "value": "{", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 1, - "line": 9, + "column": 3, + "line": 4, }, "start": Object { "column": 0, - "line": 9, + "line": 4, }, }, "range": Array [ - 58, - 59, + 106, + 109, ], - "type": "Punctuator", - "value": "}", + "type": "Keyword", + "value": "var", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/basics/instanceof.src 1`] = ` -Object { - "body": Array [ Object { - "expression": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 2, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 2, - ], - "raw": "''", - "type": "Literal", - "value": "", + "loc": Object { + "end": Object { + "column": 5, + "line": 4, }, - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, + "start": Object { + "column": 4, + "line": 4, }, - "operator": "instanceof", - "range": Array [ - 0, - 17, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "name": "Set", - "range": Array [ - 14, - 17, - ], - "type": "Identifier", + }, + "range": Array [ + 110, + 111, + ], + "type": "Identifier", + "value": "y", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 4, + }, + "start": Object { + "column": 6, + "line": 4, }, - "type": "BinaryExpression", }, + "range": Array [ + 112, + 113, + ], + "type": "Punctuator", + "value": "=", + }, + Object { "loc": Object { "end": Object { - "column": 17, - "line": 1, + "column": 9, + "line": 4, }, "start": Object { - "column": 0, - "line": 1, + "column": 8, + "line": 4, }, }, "range": Array [ - 0, - 17, + 114, + 115, ], - "type": "ExpressionStatement", + "type": "Punctuator", + "value": "{", }, - ], - "loc": Object { - "end": Object { - "column": 17, - "line": 1, + Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 4, + }, + "start": Object { + "column": 9, + "line": 4, + }, + }, + "range": Array [ + 115, + 116, + ], + "type": "Punctuator", + "value": "}", }, - "start": Object { - "column": 0, - "line": 1, + Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 4, + }, + "start": Object { + "column": 11, + "line": 4, + }, + }, + "range": Array [ + 117, + 119, + ], + "type": "Punctuator", + "value": "&&", }, - }, - "range": Array [ - 0, - 17, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 2, - "line": 1, + "column": 15, + "line": 4, }, "start": Object { - "column": 0, - "line": 1, + "column": 14, + "line": 4, }, }, "range": Array [ - 0, - 2, + 120, + 121, ], - "type": "String", - "value": "''", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 13, - "line": 1, + "column": 16, + "line": 4, }, "start": Object { - "column": 3, - "line": 1, + "column": 15, + "line": 4, }, }, "range": Array [ - 3, - 13, + 121, + 122, ], - "type": "Keyword", - "value": "instanceof", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { "column": 17, - "line": 1, + "line": 4, }, "start": Object { - "column": 14, - "line": 1, + "column": 16, + "line": 4, }, }, "range": Array [ - 14, - 17, + 122, + 123, ], - "type": "Identifier", - "value": "Set", + "type": "Punctuator", + "value": ";", }, ], "type": "Program", } `; -exports[`javascript fixtures/basics/new-with-member-expression.src 1`] = ` +exports[`javascript fixtures/basics/delete-expression.src 1`] = ` Object { "body": Array [ Object { "expression": Object { - "arguments": Array [], - "callee": Object { + "argument": Object { "computed": false, "loc": Object { "end": Object { - "column": 11, + "column": 14, "line": 1, }, "start": Object { - "column": 4, + "column": 7, "line": 1, }, }, "object": Object { "loc": Object { "end": Object { - "column": 7, + "column": 10, "line": 1, }, "start": Object { - "column": 4, + "column": 7, "line": 1, }, }, "name": "foo", "range": Array [ - 4, 7, + 10, ], "type": "Identifier", }, "property": Object { "loc": Object { "end": Object { - "column": 11, + "column": 14, "line": 1, }, "start": Object { - "column": 8, + "column": 11, "line": 1, }, }, "name": "bar", "range": Array [ - 8, 11, + 14, ], "type": "Identifier", }, "range": Array [ - 4, - 11, + 7, + 14, ], "type": "MemberExpression", }, "loc": Object { "end": Object { - "column": 13, + "column": 14, "line": 1, }, "start": Object { @@ -11363,15 +11576,17 @@ Object { "line": 1, }, }, + "operator": "delete", + "prefix": true, "range": Array [ 0, - 13, + 14, ], - "type": "NewExpression", + "type": "UnaryExpression", }, "loc": Object { "end": Object { - "column": 14, + "column": 15, "line": 1, }, "start": Object { @@ -11381,7 +11596,7 @@ Object { }, "range": Array [ 0, - 14, + 15, ], "type": "ExpressionStatement", }, @@ -11398,14 +11613,14 @@ Object { }, "range": Array [ 0, - 15, + 16, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, + "column": 6, "line": 1, }, "start": Object { @@ -11415,25 +11630,25 @@ Object { }, "range": Array [ 0, - 3, + 6, ], "type": "Keyword", - "value": "new", + "value": "delete", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 10, "line": 1, }, "start": Object { - "column": 4, + "column": 7, "line": 1, }, }, "range": Array [ - 4, 7, + 10, ], "type": "Identifier", "value": "foo", @@ -11441,17 +11656,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 8, + "column": 11, "line": 1, }, "start": Object { - "column": 7, + "column": 10, "line": 1, }, }, "range": Array [ - 7, - 8, + 10, + 11, ], "type": "Punctuator", "value": ".", @@ -11459,17 +11674,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 11, + "column": 14, "line": 1, }, "start": Object { - "column": 8, + "column": 11, "line": 1, }, }, "range": Array [ - 8, 11, + 14, ], "type": "Identifier", "value": "bar", @@ -11477,53 +11692,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "range": Array [ - 11, - 12, - ], - "type": "Punctuator", - "value": "(", - }, - Object { - "loc": Object { - "end": Object { - "column": 13, + "column": 15, "line": 1, }, "start": Object { - "column": 12, - "line": 1, - }, - }, - "range": Array [ - 12, - 13, - ], - "type": "Punctuator", - "value": ")", - }, - Object { - "loc": Object { - "end": Object { "column": 14, "line": 1, }, - "start": Object { - "column": 13, - "line": 1, - }, }, "range": Array [ - 13, 14, + 15, ], "type": "Punctuator", "value": ";", @@ -11533,52 +11712,30 @@ Object { } `; -exports[`javascript fixtures/basics/new-without-parens.src 1`] = ` +exports[`javascript fixtures/basics/do-while-statements.src 1`] = ` Object { "body": Array [ Object { - "async": false, "body": Object { - "body": Array [], "loc": Object { "end": Object { - "column": 16, + "column": 3, "line": 1, }, "start": Object { - "column": 14, + "column": 2, "line": 1, }, }, "range": Array [ - 14, - 16, + 2, + 3, ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "name": "X", - "range": Array [ - 9, - 10, - ], - "type": "Identifier", + "type": "EmptyStatement", }, "loc": Object { "end": Object { - "column": 16, + "column": 13, "line": 1, }, "start": Object { @@ -11586,71 +11743,273 @@ Object { "line": 1, }, }, - "params": Array [], "range": Array [ 0, - 16, + 13, ], - "type": "FunctionDeclaration", + "test": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "range": Array [ + 10, + 11, + ], + "raw": "1", + "type": "Literal", + "value": 1, + }, + "type": "DoWhileStatement", }, Object { - "expression": Object { - "arguments": Array [], - "callee": Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 3, + }, + }, + "name": "i", + "range": Array [ + 19, + 20, + ], + "type": "Identifier", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 3, + }, + "start": Object { + "column": 8, + "line": 3, + }, + }, + "range": Array [ + 23, + 24, + ], + "raw": "0", + "type": "Literal", + "value": 0, + }, "loc": Object { "end": Object { - "column": 5, - "line": 2, + "column": 9, + "line": 3, }, "start": Object { "column": 4, - "line": 2, + "line": 3, }, }, - "name": "X", "range": Array [ - 21, - 22, + 19, + 24, ], - "type": "Identifier", + "type": "VariableDeclarator", + }, + ], + "kind": "var", + "loc": Object { + "end": Object { + "column": 10, + "line": 3, + }, + "start": Object { + "column": 0, + "line": 3, }, + }, + "range": Array [ + 15, + 25, + ], + "type": "VariableDeclaration", + }, + Object { + "body": Object { + "body": Array [ + Object { + "expression": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 4, + "line": 5, + }, + "start": Object { + "column": 3, + "line": 5, + }, + }, + "name": "i", + "range": Array [ + 34, + 35, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 9, + "line": 5, + }, + "start": Object { + "column": 3, + "line": 5, + }, + }, + "operator": "+=", + "range": Array [ + 34, + 40, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 5, + }, + "start": Object { + "column": 8, + "line": 5, + }, + }, + "range": Array [ + 39, + 40, + ], + "raw": "1", + "type": "Literal", + "value": 1, + }, + "type": "AssignmentExpression", + }, + "loc": Object { + "end": Object { + "column": 10, + "line": 5, + }, + "start": Object { + "column": 3, + "line": 5, + }, + }, + "range": Array [ + 34, + 41, + ], + "type": "ExpressionStatement", + }, + ], "loc": Object { "end": Object { - "column": 5, - "line": 2, + "column": 1, + "line": 6, }, "start": Object { - "column": 0, - "line": 2, + "column": 3, + "line": 4, }, }, "range": Array [ - 17, - 22, + 29, + 43, ], - "type": "NewExpression", + "type": "BlockStatement", }, "loc": Object { "end": Object { - "column": 6, - "line": 2, + "column": 16, + "line": 6, }, "start": Object { "column": 0, - "line": 2, + "line": 4, }, }, "range": Array [ - 17, - 23, + 26, + 58, ], - "type": "ExpressionStatement", + "test": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 6, + }, + "start": Object { + "column": 9, + "line": 6, + }, + }, + "name": "i", + "range": Array [ + 51, + 52, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 14, + "line": 6, + }, + "start": Object { + "column": 9, + "line": 6, + }, + }, + "operator": "<", + "range": Array [ + 51, + 56, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 6, + }, + "start": Object { + "column": 13, + "line": 6, + }, + }, + "range": Array [ + 55, + 56, + ], + "raw": "5", + "type": "Literal", + "value": 5, + }, + "type": "BinaryExpression", + }, + "type": "DoWhileStatement", }, ], "loc": Object { "end": Object { - "column": 6, - "line": 2, + "column": 0, + "line": 7, }, "start": Object { "column": 0, @@ -11659,14 +12018,14 @@ Object { }, "range": Array [ 0, - 23, + 59, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 8, + "column": 2, "line": 1, }, "start": Object { @@ -11676,43 +12035,61 @@ Object { }, "range": Array [ 0, - 8, + 2, ], "type": "Keyword", - "value": "function", + "value": "do", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 3, "line": 1, }, "start": Object { + "column": 2, + "line": 1, + }, + }, + "range": Array [ + 2, + 3, + ], + "type": "Punctuator", + "value": ";", + }, + Object { + "loc": Object { + "end": Object { "column": 9, "line": 1, }, + "start": Object { + "column": 4, + "line": 1, + }, }, "range": Array [ + 4, 9, - 10, ], - "type": "Identifier", - "value": "X", + "type": "Keyword", + "value": "while", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 10, "line": 1, }, "start": Object { - "column": 11, + "column": 9, "line": 1, }, }, "range": Array [ - 11, - 12, + 9, + 10, ], "type": "Punctuator", "value": "(", @@ -11720,278 +12097,450 @@ Object { Object { "loc": Object { "end": Object { - "column": 13, + "column": 11, "line": 1, }, "start": Object { - "column": 12, + "column": 10, "line": 1, }, }, "range": Array [ - 12, - 13, + 10, + 11, ], - "type": "Punctuator", - "value": ")", + "type": "Numeric", + "value": "1", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 12, "line": 1, }, "start": Object { - "column": 14, + "column": 11, "line": 1, }, }, "range": Array [ - 14, - 15, + 11, + 12, ], "type": "Punctuator", - "value": "{", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 13, "line": 1, }, "start": Object { - "column": 15, + "column": 12, "line": 1, }, }, "range": Array [ - 15, - 16, + 12, + 13, ], "type": "Punctuator", - "value": "}", + "value": ";", }, Object { "loc": Object { "end": Object { "column": 3, - "line": 2, + "line": 3, }, "start": Object { "column": 0, - "line": 2, + "line": 3, }, }, "range": Array [ - 17, - 20, + 15, + 18, ], "type": "Keyword", - "value": "new", + "value": "var", }, Object { "loc": Object { "end": Object { "column": 5, - "line": 2, + "line": 3, }, "start": Object { "column": 4, - "line": 2, + "line": 3, }, }, "range": Array [ - 21, - 22, + 19, + 20, ], "type": "Identifier", - "value": "X", + "value": "i", }, Object { "loc": Object { "end": Object { - "column": 6, - "line": 2, + "column": 7, + "line": 3, }, "start": Object { - "column": 5, - "line": 2, + "column": 6, + "line": 3, }, }, "range": Array [ + 21, 22, - 23, ], "type": "Punctuator", - "value": ";", + "value": "=", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/basics/typeof-expression.src 1`] = ` -Object { - "body": Array [ Object { - "expression": Object { - "argument": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, - }, - "range": Array [ - 7, - 12, - ], - "raw": "'str'", - "type": "Literal", - "value": "str", + "loc": Object { + "end": Object { + "column": 9, + "line": 3, }, - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, + "start": Object { + "column": 8, + "line": 3, }, - "operator": "typeof", - "prefix": true, - "range": Array [ - 0, - 12, - ], - "type": "UnaryExpression", }, + "range": Array [ + 23, + 24, + ], + "type": "Numeric", + "value": "0", + }, + Object { "loc": Object { "end": Object { - "column": 12, - "line": 1, + "column": 10, + "line": 3, }, "start": Object { - "column": 0, - "line": 1, + "column": 9, + "line": 3, }, }, "range": Array [ - 0, - 12, + 24, + 25, ], - "type": "ExpressionStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Punctuator", + "value": ";", }, - }, - "range": Array [ - 0, - 13, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 6, - "line": 1, + "column": 2, + "line": 4, }, "start": Object { "column": 0, - "line": 1, + "line": 4, }, }, "range": Array [ - 0, - 6, + 26, + 28, ], "type": "Keyword", - "value": "typeof", + "value": "do", }, Object { "loc": Object { "end": Object { - "column": 12, - "line": 1, + "column": 4, + "line": 4, }, "start": Object { - "column": 7, - "line": 1, + "column": 3, + "line": 4, }, }, "range": Array [ - 7, - 12, + 29, + 30, ], - "type": "String", - "value": "'str'", + "type": "Punctuator", + "value": "{", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/basics/update-expression.src 1`] = ` -Object { - "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "name": "i", + "loc": Object { + "end": Object { + "column": 4, + "line": 5, + }, + "start": Object { + "column": 3, + "line": 5, + }, + }, + "range": Array [ + 34, + 35, + ], + "type": "Identifier", + "value": "i", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 5, + }, + "start": Object { + "column": 5, + "line": 5, + }, + }, + "range": Array [ + 36, + 38, + ], + "type": "Punctuator", + "value": "+=", + }, + Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 5, + }, + "start": Object { + "column": 8, + "line": 5, + }, + }, + "range": Array [ + 39, + 40, + ], + "type": "Numeric", + "value": "1", + }, + Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 5, + }, + "start": Object { + "column": 9, + "line": 5, + }, + }, + "range": Array [ + 40, + 41, + ], + "type": "Punctuator", + "value": ";", + }, + Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 6, + }, + "start": Object { + "column": 0, + "line": 6, + }, + }, + "range": Array [ + 42, + 43, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 6, + }, + "start": Object { + "column": 2, + "line": 6, + }, + }, + "range": Array [ + 44, + 49, + ], + "type": "Keyword", + "value": "while", + }, + Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 6, + }, + "start": Object { + "column": 8, + "line": 6, + }, + }, + "range": Array [ + 50, + 51, + ], + "type": "Punctuator", + "value": "(", + }, + Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 6, + }, + "start": Object { + "column": 9, + "line": 6, + }, + }, + "range": Array [ + 51, + 52, + ], + "type": "Identifier", + "value": "i", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 6, + }, + "start": Object { + "column": 11, + "line": 6, + }, + }, + "range": Array [ + 53, + 54, + ], + "type": "Punctuator", + "value": "<", + }, + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 6, + }, + "start": Object { + "column": 13, + "line": 6, + }, + }, + "range": Array [ + 55, + 56, + ], + "type": "Numeric", + "value": "5", + }, + Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 6, + }, + "start": Object { + "column": 14, + "line": 6, + }, + }, + "range": Array [ + 56, + 57, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 6, + }, + "start": Object { + "column": 15, + "line": 6, + }, + }, + "range": Array [ + 57, + 58, + ], + "type": "Punctuator", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/basics/identifiers-double-underscore.src 1`] = ` +Object { + "body": Array [ + Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "name": "__test", "range": Array [ 4, - 5, + 10, ], "type": "Identifier", }, "init": Object { "loc": Object { "end": Object { - "column": 9, + "column": 17, "line": 1, }, "start": Object { - "column": 8, + "column": 13, "line": 1, }, }, "range": Array [ - 8, - 9, + 13, + 17, ], - "raw": "0", + "raw": "'ff'", "type": "Literal", - "value": 0, + "value": "ff", }, "loc": Object { "end": Object { - "column": 9, + "column": 17, "line": 1, }, "start": Object { @@ -12001,7 +12550,7 @@ Object { }, "range": Array [ 4, - 9, + 17, ], "type": "VariableDeclarator", }, @@ -12009,7 +12558,7 @@ Object { "kind": "var", "loc": Object { "end": Object { - "column": 10, + "column": 18, "line": 1, }, "start": Object { @@ -12019,180 +12568,126 @@ Object { }, "range": Array [ 0, - 10, + 18, ], "type": "VariableDeclaration", }, Object { - "async": false, "body": Object { - "body": Array [ - Object { - "expression": Object { - "argument": Object { - "loc": Object { - "end": Object { - "column": 3, - "line": 3, - }, - "start": Object { - "column": 2, - "line": 3, - }, - }, - "name": "i", - "range": Array [ - 28, - 29, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 5, - "line": 3, - }, - "start": Object { - "column": 2, - "line": 3, - }, - }, - "operator": "++", - "prefix": false, - "range": Array [ - 28, - 31, - ], - "type": "UpdateExpression", - }, - "loc": Object { - "end": Object { - "column": 6, - "line": 3, - }, - "start": Object { - "column": 2, - "line": 3, - }, - }, - "range": Array [ - 28, - 32, - ], - "type": "ExpressionStatement", - }, - ], + "body": Array [], "loc": Object { "end": Object { "column": 1, - "line": 4, + "line": 5, }, "start": Object { - "column": 13, - "line": 2, + "column": 12, + "line": 3, }, }, "range": Array [ - 24, - 34, + 32, + 36, ], - "type": "BlockStatement", + "type": "ClassBody", }, - "expression": false, - "generator": false, "id": Object { "loc": Object { "end": Object { - "column": 10, - "line": 2, + "column": 11, + "line": 3, }, "start": Object { - "column": 9, - "line": 2, + "column": 6, + "line": 3, }, }, - "name": "f", + "name": "__Foo", "range": Array [ - 20, - 21, + 26, + 31, ], "type": "Identifier", }, "loc": Object { "end": Object { "column": 1, - "line": 4, + "line": 5, }, "start": Object { "column": 0, - "line": 2, + "line": 3, }, }, - "params": Array [], "range": Array [ - 11, - 34, + 20, + 36, ], - "type": "FunctionDeclaration", + "superClass": null, + "type": "ClassDeclaration", }, Object { - "expression": Object { - "arguments": Array [], - "callee": Object { - "loc": Object { - "end": Object { - "column": 1, - "line": 5, - }, - "start": Object { - "column": 0, - "line": 5, - }, + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 1, + "line": 9, + }, + "start": Object { + "column": 17, + "line": 7, }, - "name": "f", - "range": Array [ - 35, - 36, - ], - "type": "Identifier", }, + "range": Array [ + 55, + 59, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": Object { "loc": Object { "end": Object { - "column": 3, - "line": 5, + "column": 14, + "line": 7, }, "start": Object { - "column": 0, - "line": 5, + "column": 9, + "line": 7, }, }, + "name": "__Bar", "range": Array [ - 35, - 38, + 47, + 52, ], - "type": "CallExpression", + "type": "Identifier", }, "loc": Object { "end": Object { - "column": 4, - "line": 5, + "column": 1, + "line": 9, }, "start": Object { "column": 0, - "line": 5, + "line": 7, }, }, + "params": Array [], "range": Array [ - 35, - 39, + 38, + 59, ], - "type": "ExpressionStatement", + "type": "FunctionDeclaration", }, ], "loc": Object { "end": Object { - "column": 4, - "line": 5, + "column": 0, + "line": 10, }, "start": Object { "column": 0, @@ -12201,7 +12696,7 @@ Object { }, "range": Array [ 0, - 39, + 60, ], "sourceType": "script", "tokens": Array [ @@ -12226,7 +12721,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 5, + "column": 10, "line": 1, }, "start": Object { @@ -12236,25 +12731,25 @@ Object { }, "range": Array [ 4, - 5, + 10, ], "type": "Identifier", - "value": "i", + "value": "__test", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 12, "line": 1, }, "start": Object { - "column": 6, + "column": 11, "line": 1, }, }, "range": Array [ - 6, - 7, + 11, + 12, ], "type": "Punctuator", "value": "=", @@ -12262,35 +12757,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 9, + "column": 17, "line": 1, }, "start": Object { - "column": 8, + "column": 13, "line": 1, }, }, "range": Array [ - 8, - 9, + 13, + 17, ], - "type": "Numeric", - "value": "0", + "type": "String", + "value": "'ff'", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 18, "line": 1, }, "start": Object { - "column": 9, + "column": 17, "line": 1, }, }, "range": Array [ - 9, - 10, + 17, + 18, ], "type": "Punctuator", "value": ";", @@ -12298,269 +12793,215 @@ Object { Object { "loc": Object { "end": Object { - "column": 8, - "line": 2, + "column": 5, + "line": 3, }, "start": Object { "column": 0, - "line": 2, + "line": 3, }, }, "range": Array [ - 11, - 19, + 20, + 25, ], "type": "Keyword", - "value": "function", + "value": "class", }, Object { "loc": Object { "end": Object { - "column": 10, - "line": 2, + "column": 11, + "line": 3, }, "start": Object { - "column": 9, - "line": 2, + "column": 6, + "line": 3, }, }, "range": Array [ - 20, - 21, + 26, + 31, ], "type": "Identifier", - "value": "f", + "value": "__Foo", }, Object { "loc": Object { "end": Object { - "column": 11, - "line": 2, + "column": 13, + "line": 3, }, "start": Object { - "column": 10, - "line": 2, + "column": 12, + "line": 3, }, }, "range": Array [ - 21, - 22, + 32, + 33, ], "type": "Punctuator", - "value": "(", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 12, - "line": 2, + "column": 1, + "line": 5, }, "start": Object { - "column": 11, - "line": 2, - }, + "column": 0, + "line": 5, + }, }, "range": Array [ - 22, - 23, + 35, + 36, ], "type": "Punctuator", - "value": ")", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 14, - "line": 2, + "column": 8, + "line": 7, }, "start": Object { - "column": 13, - "line": 2, + "column": 0, + "line": 7, }, }, "range": Array [ - 24, - 25, + 38, + 46, ], - "type": "Punctuator", - "value": "{", + "type": "Keyword", + "value": "function", }, Object { "loc": Object { "end": Object { - "column": 3, - "line": 3, + "column": 14, + "line": 7, }, "start": Object { - "column": 2, - "line": 3, + "column": 9, + "line": 7, }, }, "range": Array [ - 28, - 29, + 47, + 52, ], "type": "Identifier", - "value": "i", + "value": "__Bar", }, Object { "loc": Object { "end": Object { - "column": 5, - "line": 3, + "column": 15, + "line": 7, }, "start": Object { - "column": 3, - "line": 3, + "column": 14, + "line": 7, }, }, "range": Array [ - 29, - 31, + 52, + 53, ], "type": "Punctuator", - "value": "++", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 6, - "line": 3, + "column": 16, + "line": 7, }, "start": Object { - "column": 5, - "line": 3, + "column": 15, + "line": 7, }, }, "range": Array [ - 31, - 32, + 53, + 54, ], "type": "Punctuator", - "value": ";", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 1, - "line": 4, + "column": 18, + "line": 7, }, "start": Object { - "column": 0, - "line": 4, + "column": 17, + "line": 7, }, }, "range": Array [ - 33, - 34, + 55, + 56, ], "type": "Punctuator", - "value": "}", + "value": "{", }, Object { "loc": Object { "end": Object { "column": 1, - "line": 5, + "line": 9, }, "start": Object { "column": 0, - "line": 5, - }, - }, - "range": Array [ - 35, - 36, - ], - "type": "Identifier", - "value": "f", - }, - Object { - "loc": Object { - "end": Object { - "column": 2, - "line": 5, - }, - "start": Object { - "column": 1, - "line": 5, - }, - }, - "range": Array [ - 36, - 37, - ], - "type": "Punctuator", - "value": "(", - }, - Object { - "loc": Object { - "end": Object { - "column": 3, - "line": 5, - }, - "start": Object { - "column": 2, - "line": 5, - }, - }, - "range": Array [ - 37, - 38, - ], - "type": "Punctuator", - "value": ")", - }, - Object { - "loc": Object { - "end": Object { - "column": 4, - "line": 5, - }, - "start": Object { - "column": 3, - "line": 5, + "line": 9, }, }, "range": Array [ - 38, - 39, + 58, + 59, ], "type": "Punctuator", - "value": ";", + "value": "}", }, ], "type": "Program", } `; -exports[`javascript fixtures/basics/void-expression.src 1`] = ` +exports[`javascript fixtures/basics/instanceof.src 1`] = ` Object { "body": Array [ Object { "expression": Object { - "argument": Object { + "left": Object { "loc": Object { "end": Object { - "column": 6, + "column": 2, "line": 1, }, "start": Object { - "column": 5, + "column": 0, "line": 1, }, }, "range": Array [ - 5, - 6, + 0, + 2, ], - "raw": "4", + "raw": "''", "type": "Literal", - "value": 4, + "value": "", }, "loc": Object { "end": Object { - "column": 6, + "column": 17, "line": 1, }, "start": Object { @@ -12568,90 +13009,52 @@ Object { "line": 1, }, }, - "operator": "void", - "prefix": true, + "operator": "instanceof", "range": Array [ 0, - 6, + 17, ], - "type": "UnaryExpression", - }, - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 7, - ], - "type": "ExpressionStatement", - }, - Object { - "expression": Object { - "argument": Object { + "right": Object { "loc": Object { "end": Object { - "column": 6, - "line": 2, + "column": 17, + "line": 1, }, "start": Object { - "column": 5, - "line": 2, + "column": 14, + "line": 1, }, }, + "name": "Set", "range": Array [ - 13, 14, + 17, ], - "raw": "3", - "type": "Literal", - "value": 3, - }, - "loc": Object { - "end": Object { - "column": 7, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 2, - }, + "type": "Identifier", }, - "operator": "void", - "prefix": true, - "range": Array [ - 8, - 15, - ], - "type": "UnaryExpression", + "type": "BinaryExpression", }, "loc": Object { "end": Object { - "column": 8, - "line": 2, + "column": 17, + "line": 1, }, "start": Object { "column": 0, - "line": 2, + "line": 1, }, }, "range": Array [ - 8, - 16, + 0, + 17, ], "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 0, - "line": 3, + "column": 17, + "line": 1, }, "start": Object { "column": 0, @@ -12667,7 +13070,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 4, + "column": 2, "line": 1, }, "start": Object { @@ -12677,150 +13080,115 @@ Object { }, "range": Array [ 0, - 4, + 2, ], - "type": "Keyword", - "value": "void", + "type": "String", + "value": "''", }, Object { "loc": Object { "end": Object { - "column": 6, + "column": 13, "line": 1, }, "start": Object { - "column": 5, + "column": 3, "line": 1, }, }, "range": Array [ - 5, - 6, + 3, + 13, ], - "type": "Numeric", - "value": "4", + "type": "Keyword", + "value": "instanceof", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 17, "line": 1, }, "start": Object { - "column": 6, + "column": 14, "line": 1, }, }, - "range": Array [ - 6, - 7, - ], - "type": "Punctuator", - "value": ";", - }, - Object { - "loc": Object { - "end": Object { - "column": 4, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 2, - }, - }, - "range": Array [ - 8, - 12, - ], - "type": "Keyword", - "value": "void", - }, - Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "range": Array [ - 12, - 13, - ], - "type": "Punctuator", - "value": "(", - }, - Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 2, - }, - "start": Object { - "column": 5, - "line": 2, - }, - }, - "range": Array [ - 13, - 14, - ], - "type": "Numeric", - "value": "3", - }, - Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 2, - }, - "start": Object { - "column": 6, - "line": 2, - }, - }, "range": Array [ 14, - 15, - ], - "type": "Punctuator", - "value": ")", - }, - Object { - "loc": Object { - "end": Object { - "column": 8, - "line": 2, - }, - "start": Object { - "column": 7, - "line": 2, - }, - }, - "range": Array [ - 15, - 16, + 17, ], - "type": "Punctuator", - "value": ";", + "type": "Identifier", + "value": "Set", }, ], "type": "Program", } `; -exports[`javascript fixtures/bigIntLiterals/binary.src 1`] = ` +exports[`javascript fixtures/basics/new-with-member-expression.src 1`] = ` Object { "body": Array [ Object { "expression": Object { + "arguments": Array [], + "callee": Object { + "computed": false, + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "object": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "name": "foo", + "range": Array [ + 4, + 7, + ], + "type": "Identifier", + }, + "property": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "name": "bar", + "range": Array [ + 8, + 11, + ], + "type": "Identifier", + }, + "range": Array [ + 4, + 11, + ], + "type": "MemberExpression", + }, "loc": Object { "end": Object { - "column": 4, + "column": 13, "line": 1, }, "start": Object { @@ -12830,15 +13198,13 @@ Object { }, "range": Array [ 0, - 4, + 13, ], - "raw": "0b1n", - "type": "BigIntLiteral", - "value": "0b1", + "type": "NewExpression", }, "loc": Object { "end": Object { - "column": 5, + "column": 14, "line": 1, }, "start": Object { @@ -12848,7 +13214,7 @@ Object { }, "range": Array [ 0, - 5, + 14, ], "type": "ExpressionStatement", }, @@ -12865,14 +13231,14 @@ Object { }, "range": Array [ 0, - 6, + 15, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 4, + "column": 3, "line": 1, }, "start": Object { @@ -12882,15 +13248,15 @@ Object { }, "range": Array [ 0, - 4, + 3, ], - "type": "Identifier", - "value": "0b1n", + "type": "Keyword", + "value": "new", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 7, "line": 1, }, "start": Object { @@ -12900,201 +13266,97 @@ Object { }, "range": Array [ 4, - 5, + 7, ], - "type": "Punctuator", - "value": ";", + "type": "Identifier", + "value": "foo", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/bigIntLiterals/decimal.src 1`] = ` -Object { - "body": Array [ Object { - "expression": Object { - "loc": Object { - "end": Object { - "column": 2, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 2, - ], - "raw": "1n", - "type": "BigIntLiteral", - "value": "1", - }, "loc": Object { "end": Object { - "column": 3, + "column": 8, "line": 1, }, "start": Object { - "column": 0, + "column": 7, "line": 1, }, }, "range": Array [ - 0, - 3, + 7, + 8, ], - "type": "ExpressionStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Punctuator", + "value": ".", }, - }, - "range": Array [ - 0, - 4, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 2, + "column": 11, "line": 1, }, "start": Object { - "column": 0, + "column": 8, "line": 1, }, }, "range": Array [ - 0, - 2, + 8, + 11, ], "type": "Identifier", - "value": "1n", + "value": "bar", }, Object { "loc": Object { "end": Object { - "column": 3, + "column": 12, "line": 1, }, "start": Object { - "column": 2, + "column": 11, "line": 1, }, }, "range": Array [ - 2, - 3, + 11, + 12, ], "type": "Punctuator", - "value": ";", - }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/bigIntLiterals/hex.src 1`] = ` -Object { - "body": Array [ - Object { - "expression": Object { - "loc": Object { - "end": Object { - "column": 4, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 4, - ], - "raw": "0x1n", - "type": "BigIntLiteral", - "value": "0x1", - }, - "loc": Object { - "end": Object { - "column": 5, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 5, - ], - "type": "ExpressionStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 1, + "value": "(", }, - }, - "range": Array [ - 0, - 6, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 4, + "column": 13, "line": 1, }, "start": Object { - "column": 0, + "column": 12, "line": 1, }, }, "range": Array [ - 0, - 4, + 12, + 13, ], - "type": "Identifier", - "value": "0x1n", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 14, "line": 1, }, "start": Object { - "column": 4, + "column": 13, "line": 1, }, }, "range": Array [ - 4, - 5, + 13, + 14, ], "type": "Punctuator", "value": ";", @@ -13104,66 +13366,52 @@ Object { } `; -exports[`javascript fixtures/bigIntLiterals/octal.src 1`] = ` +exports[`javascript fixtures/basics/new-without-parens.src 1`] = ` Object { "body": Array [ Object { - "expression": Object { + "async": false, + "body": Object { + "body": Array [], "loc": Object { "end": Object { - "column": 4, + "column": 16, "line": 1, }, "start": Object { - "column": 0, + "column": 14, "line": 1, }, }, "range": Array [ - 0, - 4, + 14, + 16, ], - "raw": "0o1n", - "type": "BigIntLiteral", - "value": "0o1", + "type": "BlockStatement", }, - "loc": Object { - "end": Object { - "column": 5, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, + "expression": false, + "generator": false, + "id": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, }, + "name": "X", + "range": Array [ + 9, + 10, + ], + "type": "Identifier", }, - "range": Array [ - 0, - 5, - ], - "type": "ExpressionStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 6, - ], - "sourceType": "script", - "tokens": Array [ - Object { "loc": Object { "end": Object { - "column": 4, + "column": 16, "line": 1, }, "start": Object { @@ -13171,81 +13419,70 @@ Object { "line": 1, }, }, + "params": Array [], "range": Array [ 0, - 4, - ], - "type": "Identifier", - "value": "0o1n", - }, - Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 5, + 16, ], - "type": "Punctuator", - "value": ";", + "type": "FunctionDeclaration", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/binaryLiterals/invalid.src 1`] = `"';' expected."`; - -exports[`javascript fixtures/binaryLiterals/lowercase.src 1`] = ` -Object { - "body": Array [ Object { "expression": Object { + "arguments": Array [], + "callee": Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "name": "X", + "range": Array [ + 21, + 22, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { "column": 5, - "line": 1, + "line": 2, }, "start": Object { "column": 0, - "line": 1, + "line": 2, }, }, "range": Array [ - 0, - 5, + 17, + 22, ], - "raw": "0b101", - "type": "Literal", - "value": 5, + "type": "NewExpression", }, "loc": Object { "end": Object { "column": 6, - "line": 1, + "line": 2, }, "start": Object { "column": 0, - "line": 1, + "line": 2, }, }, "range": Array [ - 0, - 6, + 17, + 23, ], "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 0, + "column": 6, "line": 2, }, "start": Object { @@ -13255,14 +13492,14 @@ Object { }, "range": Array [ 0, - 7, + 23, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 8, "line": 1, }, "start": Object { @@ -13272,310 +13509,151 @@ Object { }, "range": Array [ 0, - 5, + 8, ], - "type": "Numeric", - "value": "0b101", + "type": "Keyword", + "value": "function", }, Object { "loc": Object { "end": Object { - "column": 6, + "column": 10, "line": 1, }, "start": Object { - "column": 5, + "column": 9, "line": 1, }, }, "range": Array [ - 5, - 6, + 9, + 10, ], - "type": "Punctuator", - "value": ";", + "type": "Identifier", + "value": "X", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/binaryLiterals/uppercase.src 1`] = ` -Object { - "body": Array [ Object { - "expression": Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 5, - ], - "raw": "0B101", - "type": "Literal", - "value": 5, - }, "loc": Object { "end": Object { - "column": 6, + "column": 12, "line": 1, }, "start": Object { - "column": 0, + "column": 11, "line": 1, }, }, "range": Array [ - 0, - 6, + 11, + 12, ], - "type": "ExpressionStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Punctuator", + "value": "(", }, - }, - "range": Array [ - 0, - 7, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 13, "line": 1, }, "start": Object { - "column": 0, + "column": 12, "line": 1, }, }, "range": Array [ - 0, - 5, + 12, + 13, ], - "type": "Numeric", - "value": "0B101", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 6, + "column": 15, "line": 1, }, "start": Object { - "column": 5, + "column": 14, "line": 1, }, }, "range": Array [ - 5, - 6, + 14, + 15, ], "type": "Punctuator", - "value": ";", + "value": "{", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/blockBindings/const.src 1`] = ` -Object { - "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "name": "foo", - "range": Array [ - 6, - 9, - ], - "type": "Identifier", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "name": "bar", - "range": Array [ - 12, - 15, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "range": Array [ - 6, - 15, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "const", "loc": Object { "end": Object { "column": 16, "line": 1, }, "start": Object { - "column": 0, + "column": 15, "line": 1, }, }, "range": Array [ - 0, + 15, 16, ], - "type": "VariableDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Punctuator", + "value": "}", }, - }, - "range": Array [ - 0, - 17, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, - "line": 1, + "column": 3, + "line": 2, }, "start": Object { "column": 0, - "line": 1, + "line": 2, }, }, "range": Array [ - 0, - 5, + 17, + 20, ], "type": "Keyword", - "value": "const", - }, - Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "range": Array [ - 6, - 9, - ], - "type": "Identifier", - "value": "foo", - }, - Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "range": Array [ - 10, - 11, - ], - "type": "Punctuator", - "value": "=", + "value": "new", }, Object { "loc": Object { "end": Object { - "column": 15, - "line": 1, + "column": 5, + "line": 2, }, "start": Object { - "column": 12, - "line": 1, + "column": 4, + "line": 2, }, }, "range": Array [ - 12, - 15, + 21, + 22, ], "type": "Identifier", - "value": "bar", + "value": "X", }, Object { "loc": Object { "end": Object { - "column": 16, - "line": 1, + "column": 6, + "line": 2, }, "start": Object { - "column": 15, - "line": 1, + "column": 5, + "line": 2, }, }, "range": Array [ - 15, - 16, + 22, + 23, ], "type": "Punctuator", "value": ";", @@ -13585,7 +13663,7 @@ Object { } `; -exports[`javascript fixtures/blockBindings/let.src 1`] = ` +exports[`javascript fixtures/basics/or-operator-array-object.src 1`] = ` Object { "body": Array [ Object { @@ -13594,7 +13672,7 @@ Object { "id": Object { "loc": Object { "end": Object { - "column": 7, + "column": 5, "line": 1, }, "start": Object { @@ -13602,34 +13680,216 @@ Object { "line": 1, }, }, - "name": "foo", + "name": "v", "range": Array [ 4, - 7, + 5, ], "type": "Identifier", }, "init": Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "name": "bar", - "range": Array [ - 10, - 13, + "left": Object { + "left": Object { + "left": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "properties": Array [], + "range": Array [ + 8, + 10, + ], + "type": "ObjectExpression", + }, + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "operator": "||", + "range": Array [ + 8, + 16, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "properties": Array [], + "range": Array [ + 14, + 16, + ], + "type": "ObjectExpression", + }, + "type": "LogicalExpression", + }, + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "operator": "||", + "range": Array [ + 8, + 22, + ], + "right": Object { + "elements": Array [], + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "range": Array [ + 20, + 22, + ], + "type": "ArrayExpression", + }, + "type": "LogicalExpression", + }, + "loc": Object { + "end": Object { + "column": 28, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "operator": "||", + "range": Array [ + 8, + 28, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 28, + "line": 1, + }, + "start": Object { + "column": 26, + "line": 1, + }, + }, + "range": Array [ + 26, + 28, + ], + "raw": "\\"\\"", + "type": "Literal", + "value": "", + }, + "type": "LogicalExpression", + }, + "loc": Object { + "end": Object { + "column": 42, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "operator": "||", + "range": Array [ + 8, + 42, ], - "type": "Identifier", + "right": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 35, + "line": 1, + }, + "start": Object { + "column": 33, + "line": 1, + }, + }, + "range": Array [ + 33, + 35, + ], + "raw": "\\"\\"", + "type": "Literal", + "value": "", + }, + "loc": Object { + "end": Object { + "column": 41, + "line": 1, + }, + "start": Object { + "column": 33, + "line": 1, + }, + }, + "operator": "||", + "range": Array [ + 33, + 41, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 41, + "line": 1, + }, + "start": Object { + "column": 39, + "line": 1, + }, + }, + "properties": Array [], + "range": Array [ + 39, + 41, + ], + "type": "ObjectExpression", + }, + "type": "LogicalExpression", + }, + "type": "LogicalExpression", }, "loc": Object { "end": Object { - "column": 13, + "column": 42, "line": 1, }, "start": Object { @@ -13639,15 +13899,15 @@ Object { }, "range": Array [ 4, - 13, + 42, ], "type": "VariableDeclarator", }, ], - "kind": "let", + "kind": "var", "loc": Object { "end": Object { - "column": 14, + "column": 43, "line": 1, }, "start": Object { @@ -13657,297 +13917,488 @@ Object { }, "range": Array [ 0, - 14, + 43, ], "type": "VariableDeclaration", }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 15, - ], - "sourceType": "script", - "tokens": Array [ - Object { - "loc": Object { - "end": Object { - "column": 3, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 3, - ], - "type": "Keyword", - "value": "let", - }, - Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 7, - ], - "type": "Identifier", - "value": "foo", - }, - Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "range": Array [ - 8, - 9, - ], - "type": "Punctuator", - "value": "=", - }, - Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "range": Array [ - 10, - 13, - ], - "type": "Identifier", - "value": "bar", - }, - Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "range": Array [ - 13, - 14, - ], - "type": "Punctuator", - "value": ";", - }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/blockBindings/let-in-switchcase.src 1`] = ` -Object { - "body": Array [ Object { - "cases": Array [ + "declarations": Array [ Object { - "consequent": Array [ - Object { - "declarations": Array [ - Object { - "id": Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "name": "x", + "range": Array [ + 48, + 49, + ], + "type": "Identifier", + }, + "init": Object { + "left": Object { + "left": Object { + "left": Object { + "left": Object { + "elements": Array [], "loc": Object { "end": Object { - "column": 32, - "line": 1, + "column": 10, + "line": 2, }, "start": Object { - "column": 31, - "line": 1, + "column": 8, + "line": 2, }, }, - "name": "t", "range": Array [ - 31, - 32, + 52, + 54, ], - "type": "Identifier", + "type": "ArrayExpression", }, - "init": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 2, + }, + "start": Object { + "column": 8, + "line": 2, + }, + }, + "operator": "||", + "range": Array [ + 52, + 60, + ], + "right": Object { + "elements": Array [], "loc": Object { "end": Object { - "column": 37, - "line": 1, + "column": 16, + "line": 2, }, "start": Object { - "column": 35, - "line": 1, + "column": 14, + "line": 2, }, }, "range": Array [ - 35, - 37, + 58, + 60, ], - "raw": "42", - "type": "Literal", - "value": 42, + "type": "ArrayExpression", + }, + "type": "LogicalExpression", + }, + "loc": Object { + "end": Object { + "column": 22, + "line": 2, }, + "start": Object { + "column": 8, + "line": 2, + }, + }, + "operator": "||", + "range": Array [ + 52, + 66, + ], + "right": Object { "loc": Object { "end": Object { - "column": 37, - "line": 1, + "column": 22, + "line": 2, }, "start": Object { - "column": 31, - "line": 1, + "column": 20, + "line": 2, }, }, + "properties": Array [], "range": Array [ - 31, - 37, + 64, + 66, ], - "type": "VariableDeclarator", + "type": "ObjectExpression", }, - ], - "kind": "let", + "type": "LogicalExpression", + }, "loc": Object { "end": Object { - "column": 38, - "line": 1, + "column": 28, + "line": 2, }, "start": Object { - "column": 27, - "line": 1, + "column": 8, + "line": 2, }, }, + "operator": "||", "range": Array [ - 27, - 38, + 52, + 72, ], - "type": "VariableDeclaration", + "right": Object { + "loc": Object { + "end": Object { + "column": 28, + "line": 2, + }, + "start": Object { + "column": 26, + "line": 2, + }, + }, + "range": Array [ + 70, + 72, + ], + "raw": "\\"\\"", + "type": "Literal", + "value": "", + }, + "type": "LogicalExpression", }, - Object { - "label": null, + "loc": Object { + "end": Object { + "column": 42, + "line": 2, + }, + "start": Object { + "column": 8, + "line": 2, + }, + }, + "operator": "||", + "range": Array [ + 52, + 86, + ], + "right": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 35, + "line": 2, + }, + "start": Object { + "column": 33, + "line": 2, + }, + }, + "range": Array [ + 77, + 79, + ], + "raw": "\\"\\"", + "type": "Literal", + "value": "", + }, "loc": Object { "end": Object { - "column": 45, - "line": 1, + "column": 41, + "line": 2, }, "start": Object { - "column": 39, - "line": 1, + "column": 33, + "line": 2, }, }, + "operator": "||", "range": Array [ - 39, - 45, + 77, + 85, ], - "type": "BreakStatement", + "right": Object { + "elements": Array [], + "loc": Object { + "end": Object { + "column": 41, + "line": 2, + }, + "start": Object { + "column": 39, + "line": 2, + }, + }, + "range": Array [ + 83, + 85, + ], + "type": "ArrayExpression", + }, + "type": "LogicalExpression", }, - ], + "type": "LogicalExpression", + }, "loc": Object { "end": Object { - "column": 45, - "line": 1, + "column": 42, + "line": 2, }, "start": Object { - "column": 18, - "line": 1, + "column": 4, + "line": 2, }, }, "range": Array [ - 18, - 45, + 48, + 86, ], - "test": Object { - "loc": Object { + "type": "VariableDeclarator", + }, + ], + "kind": "var", + "loc": Object { + "end": Object { + "column": 43, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 2, + }, + }, + "range": Array [ + 44, + 87, + ], + "type": "VariableDeclaration", + }, + Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { "end": Object { - "column": 25, - "line": 1, + "column": 5, + "line": 3, }, "start": Object { - "column": 23, - "line": 1, + "column": 4, + "line": 3, }, }, + "name": "z", "range": Array [ - 23, - 25, + 92, + 93, ], - "raw": "42", - "type": "Literal", - "value": 42, + "type": "Identifier", }, - "type": "SwitchCase", + "init": Object { + "left": Object { + "elements": Array [], + "loc": Object { + "end": Object { + "column": 10, + "line": 3, + }, + "start": Object { + "column": 8, + "line": 3, + }, + }, + "range": Array [ + 96, + 98, + ], + "type": "ArrayExpression", + }, + "loc": Object { + "end": Object { + "column": 16, + "line": 3, + }, + "start": Object { + "column": 8, + "line": 3, + }, + }, + "operator": "||", + "range": Array [ + 96, + 104, + ], + "right": Object { + "elements": Array [], + "loc": Object { + "end": Object { + "column": 16, + "line": 3, + }, + "start": Object { + "column": 14, + "line": 3, + }, + }, + "range": Array [ + 102, + 104, + ], + "type": "ArrayExpression", + }, + "type": "LogicalExpression", + }, + "loc": Object { + "end": Object { + "column": 16, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 3, + }, + }, + "range": Array [ + 92, + 104, + ], + "type": "VariableDeclarator", }, ], - "discriminant": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, + "kind": "var", + "loc": Object { + "end": Object { + "column": 17, + "line": 3, + }, + "start": Object { + "column": 0, + "line": 3, + }, + }, + "range": Array [ + 88, + 105, + ], + "type": "VariableDeclaration", + }, + Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 4, + }, + "start": Object { + "column": 4, + "line": 4, + }, + }, + "name": "y", + "range": Array [ + 110, + 111, + ], + "type": "Identifier", }, - "start": Object { - "column": 8, - "line": 1, + "init": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 4, + }, + "start": Object { + "column": 8, + "line": 4, + }, + }, + "properties": Array [], + "range": Array [ + 114, + 116, + ], + "type": "ObjectExpression", + }, + "loc": Object { + "end": Object { + "column": 16, + "line": 4, + }, + "start": Object { + "column": 8, + "line": 4, + }, + }, + "operator": "||", + "range": Array [ + 114, + 122, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 4, + }, + "start": Object { + "column": 14, + "line": 4, + }, + }, + "properties": Array [], + "range": Array [ + 120, + 122, + ], + "type": "ObjectExpression", + }, + "type": "LogicalExpression", + }, + "loc": Object { + "end": Object { + "column": 16, + "line": 4, + }, + "start": Object { + "column": 4, + "line": 4, + }, }, + "range": Array [ + 110, + 122, + ], + "type": "VariableDeclarator", }, - "name": "answer", - "range": Array [ - 8, - 14, - ], - "type": "Identifier", - }, + ], + "kind": "var", "loc": Object { "end": Object { - "column": 47, - "line": 1, + "column": 17, + "line": 4, }, "start": Object { "column": 0, - "line": 1, + "line": 4, }, }, "range": Array [ - 0, - 47, + 106, + 123, ], - "type": "SwitchStatement", + "type": "VariableDeclaration", }, ], "loc": Object { "end": Object { "column": 0, - "line": 2, + "line": 5, }, "start": Object { "column": 0, @@ -13956,14 +14407,14 @@ Object { }, "range": Array [ 0, - 48, + 124, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 6, + "column": 3, "line": 1, }, "start": Object { @@ -13973,33 +14424,51 @@ Object { }, "range": Array [ 0, - 6, + 3, ], "type": "Keyword", - "value": "switch", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 5, "line": 1, }, "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 5, + ], + "type": "Identifier", + "value": "v", + }, + Object { + "loc": Object { + "end": Object { "column": 7, "line": 1, }, + "start": Object { + "column": 6, + "line": 1, + }, }, "range": Array [ + 6, 7, - 8, ], "type": "Punctuator", - "value": "(", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 9, "line": 1, }, "start": Object { @@ -14009,10 +14478,46 @@ Object { }, "range": Array [ 8, - 14, + 9, ], - "type": "Identifier", - "value": "answer", + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 10, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 13, + ], + "type": "Punctuator", + "value": "||", }, Object { "loc": Object { @@ -14030,151 +14535,169 @@ Object { 15, ], "type": "Punctuator", - "value": ")", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 16, "line": 1, }, "start": Object { - "column": 16, + "column": 15, "line": 1, }, }, "range": Array [ + 15, 16, - 17, ], "type": "Punctuator", - "value": "{", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 22, + "column": 19, "line": 1, }, "start": Object { - "column": 18, + "column": 17, "line": 1, }, }, "range": Array [ - 18, - 22, + 17, + 19, ], - "type": "Keyword", - "value": "case", + "type": "Punctuator", + "value": "||", }, Object { "loc": Object { "end": Object { - "column": 25, + "column": 21, "line": 1, }, "start": Object { - "column": 23, + "column": 20, "line": 1, }, }, "range": Array [ - 23, - 25, + 20, + 21, ], - "type": "Numeric", - "value": "42", + "type": "Punctuator", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 26, + "column": 22, "line": 1, }, "start": Object { + "column": 21, + "line": 1, + }, + }, + "range": Array [ + 21, + 22, + ], + "type": "Punctuator", + "value": "]", + }, + Object { + "loc": Object { + "end": Object { "column": 25, "line": 1, }, + "start": Object { + "column": 23, + "line": 1, + }, }, "range": Array [ + 23, 25, - 26, ], "type": "Punctuator", - "value": ":", + "value": "||", }, Object { "loc": Object { "end": Object { - "column": 30, + "column": 28, "line": 1, }, "start": Object { - "column": 27, + "column": 26, "line": 1, }, }, "range": Array [ - 27, - 30, + 26, + 28, ], - "type": "Keyword", - "value": "let", + "type": "String", + "value": "\\"\\"", }, Object { "loc": Object { "end": Object { - "column": 32, + "column": 31, "line": 1, }, "start": Object { - "column": 31, + "column": 29, "line": 1, }, }, "range": Array [ + 29, 31, - 32, ], - "type": "Identifier", - "value": "t", + "type": "Punctuator", + "value": "||", }, Object { "loc": Object { "end": Object { - "column": 34, + "column": 33, "line": 1, }, "start": Object { - "column": 33, + "column": 32, "line": 1, }, }, "range": Array [ + 32, 33, - 34, ], "type": "Punctuator", - "value": "=", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 37, + "column": 35, "line": 1, }, "start": Object { - "column": 35, + "column": 33, "line": 1, }, }, "range": Array [ + 33, 35, - 37, ], - "type": "Numeric", - "value": "42", + "type": "String", + "value": "\\"\\"", }, Object { "loc": Object { @@ -14183,21 +14706,21 @@ Object { "line": 1, }, "start": Object { - "column": 37, + "column": 36, "line": 1, }, }, "range": Array [ - 37, + 36, 38, ], "type": "Punctuator", - "value": ";", + "value": "||", }, Object { "loc": Object { "end": Object { - "column": 44, + "column": 40, "line": 1, }, "start": Object { @@ -14207,1066 +14730,745 @@ Object { }, "range": Array [ 39, - 44, + 40, ], - "type": "Keyword", - "value": "break", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 45, + "column": 41, "line": 1, }, "start": Object { - "column": 44, + "column": 40, "line": 1, }, }, "range": Array [ - 44, - 45, + 40, + 41, ], "type": "Punctuator", - "value": ";", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 47, + "column": 42, "line": 1, }, "start": Object { - "column": 46, + "column": 41, "line": 1, }, }, "range": Array [ - 46, + 41, + 42, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 43, + "line": 1, + }, + "start": Object { + "column": 42, + "line": 1, + }, + }, + "range": Array [ + 42, + 43, + ], + "type": "Punctuator", + "value": ";", + }, + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 2, + }, + }, + "range": Array [ + 44, 47, ], + "type": "Keyword", + "value": "var", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "range": Array [ + 48, + 49, + ], + "type": "Identifier", + "value": "x", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 2, + }, + "start": Object { + "column": 6, + "line": 2, + }, + }, + "range": Array [ + 50, + 51, + ], "type": "Punctuator", - "value": "}", + "value": "=", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/classes/class-accessor-properties.src 1`] = ` -Object { - "body": Array [ Object { - "body": Object { - "body": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 13, - 14, - ], - "type": "Identifier", - }, - "kind": "get", - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 18, - ], - "static": false, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "range": Array [ - 16, - 18, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "params": Array [], - "range": Array [ - 14, - 18, - ], - "type": "FunctionExpression", - }, - }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 24, - "line": 1, - }, - "start": Object { - "column": 23, - "line": 1, - }, - }, - "name": "b", - "range": Array [ - 23, - 24, - ], - "type": "Identifier", - }, - "kind": "set", - "loc": Object { - "end": Object { - "column": 29, - "line": 1, - }, - "start": Object { - "column": 19, - "line": 1, - }, - }, - "range": Array [ - 19, - 29, - ], - "static": false, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 29, - "line": 1, - }, - "start": Object { - "column": 27, - "line": 1, - }, - }, - "range": Array [ - 27, - 29, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 29, - "line": 1, - }, - "start": Object { - "column": 24, - "line": 1, - }, - }, - "params": Array [ - Object { - "loc": Object { - "end": Object { - "column": 26, - "line": 1, - }, - "start": Object { - "column": 25, - "line": 1, - }, - }, - "name": "c", - "range": Array [ - 25, - 26, - ], - "type": "Identifier", - }, - ], - "range": Array [ - 24, - 29, - ], - "type": "FunctionExpression", - }, - }, - ], - "loc": Object { - "end": Object { - "column": 31, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "range": Array [ - 8, - 31, - ], - "type": "ClassBody", - }, - "id": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "name": "A", - "range": Array [ - 6, - 7, - ], - "type": "Identifier", - }, "loc": Object { "end": Object { - "column": 31, - "line": 1, + "column": 9, + "line": 2, }, "start": Object { - "column": 0, - "line": 1, + "column": 8, + "line": 2, }, }, "range": Array [ - 0, - 31, + 52, + 53, ], - "superClass": null, - "type": "ClassDeclaration", + "type": "Punctuator", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 32, - "line": 1, + "column": 10, + "line": 2, }, "start": Object { - "column": 31, - "line": 1, + "column": 9, + "line": 2, }, }, "range": Array [ - 31, - 32, + 53, + 54, ], - "type": "EmptyStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 32, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Punctuator", + "value": "]", }, - }, - "range": Array [ - 0, - 32, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, - "line": 1, + "column": 13, + "line": 2, }, "start": Object { - "column": 0, - "line": 1, + "column": 11, + "line": 2, }, }, "range": Array [ - 0, - 5, + 55, + 57, ], - "type": "Keyword", - "value": "class", + "type": "Punctuator", + "value": "||", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 1, + "column": 15, + "line": 2, }, "start": Object { - "column": 6, - "line": 1, + "column": 14, + "line": 2, }, }, "range": Array [ - 6, - 7, + 58, + 59, ], - "type": "Identifier", - "value": "A", + "type": "Punctuator", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 9, - "line": 1, + "column": 16, + "line": 2, }, "start": Object { - "column": 8, - "line": 1, + "column": 15, + "line": 2, }, }, "range": Array [ - 8, - 9, + 59, + 60, ], "type": "Punctuator", - "value": "{", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 12, - "line": 1, + "column": 19, + "line": 2, }, "start": Object { - "column": 9, - "line": 1, + "column": 17, + "line": 2, }, }, "range": Array [ - 9, - 12, + 61, + 63, ], - "type": "Identifier", - "value": "get", + "type": "Punctuator", + "value": "||", }, Object { "loc": Object { "end": Object { - "column": 14, - "line": 1, + "column": 21, + "line": 2, }, "start": Object { - "column": 13, - "line": 1, + "column": 20, + "line": 2, }, }, "range": Array [ - 13, - 14, + 64, + 65, ], - "type": "Identifier", - "value": "a", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 15, - "line": 1, + "column": 22, + "line": 2, }, "start": Object { - "column": 14, - "line": 1, + "column": 21, + "line": 2, }, }, "range": Array [ - 14, - 15, + 65, + 66, ], "type": "Punctuator", - "value": "(", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 16, - "line": 1, + "column": 25, + "line": 2, }, "start": Object { - "column": 15, - "line": 1, + "column": 23, + "line": 2, }, }, "range": Array [ - 15, - 16, + 67, + 69, ], "type": "Punctuator", - "value": ")", + "value": "||", }, Object { "loc": Object { "end": Object { - "column": 17, - "line": 1, + "column": 28, + "line": 2, }, "start": Object { - "column": 16, - "line": 1, + "column": 26, + "line": 2, }, }, "range": Array [ - 16, - 17, + 70, + 72, ], - "type": "Punctuator", - "value": "{", + "type": "String", + "value": "\\"\\"", }, Object { "loc": Object { "end": Object { - "column": 18, - "line": 1, + "column": 31, + "line": 2, }, "start": Object { - "column": 17, - "line": 1, + "column": 29, + "line": 2, }, }, "range": Array [ - 17, - 18, + 73, + 75, ], "type": "Punctuator", - "value": "}", + "value": "||", }, Object { "loc": Object { "end": Object { - "column": 22, - "line": 1, + "column": 33, + "line": 2, }, "start": Object { - "column": 19, - "line": 1, + "column": 32, + "line": 2, }, }, "range": Array [ - 19, - 22, + 76, + 77, ], - "type": "Identifier", - "value": "set", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 24, - "line": 1, + "column": 35, + "line": 2, }, "start": Object { - "column": 23, - "line": 1, + "column": 33, + "line": 2, }, }, "range": Array [ - 23, - 24, + 77, + 79, ], - "type": "Identifier", - "value": "b", + "type": "String", + "value": "\\"\\"", }, Object { "loc": Object { "end": Object { - "column": 25, - "line": 1, + "column": 38, + "line": 2, }, "start": Object { - "column": 24, - "line": 1, + "column": 36, + "line": 2, }, }, "range": Array [ - 24, - 25, + 80, + 82, ], "type": "Punctuator", - "value": "(", + "value": "||", }, Object { "loc": Object { "end": Object { - "column": 26, - "line": 1, + "column": 40, + "line": 2, }, "start": Object { - "column": 25, - "line": 1, + "column": 39, + "line": 2, }, }, "range": Array [ - 25, - 26, + 83, + 84, ], - "type": "Identifier", - "value": "c", + "type": "Punctuator", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 27, - "line": 1, + "column": 41, + "line": 2, }, "start": Object { - "column": 26, - "line": 1, + "column": 40, + "line": 2, }, }, "range": Array [ - 26, - 27, + 84, + 85, ], "type": "Punctuator", - "value": ")", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 28, - "line": 1, + "column": 42, + "line": 2, }, "start": Object { - "column": 27, - "line": 1, + "column": 41, + "line": 2, }, }, "range": Array [ - 27, - 28, + 85, + 86, ], "type": "Punctuator", - "value": "{", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 29, - "line": 1, + "column": 43, + "line": 2, }, "start": Object { - "column": 28, - "line": 1, + "column": 42, + "line": 2, }, }, "range": Array [ - 28, - 29, + 86, + 87, ], "type": "Punctuator", - "value": "}", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 30, - "line": 1, + "column": 3, + "line": 3, }, "start": Object { - "column": 29, - "line": 1, + "column": 0, + "line": 3, }, }, "range": Array [ - 29, - 30, + 88, + 91, ], - "type": "Punctuator", - "value": ";", + "type": "Keyword", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 31, - "line": 1, + "column": 5, + "line": 3, }, "start": Object { - "column": 30, - "line": 1, + "column": 4, + "line": 3, }, }, "range": Array [ - 30, - 31, + 92, + 93, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "z", }, Object { "loc": Object { "end": Object { - "column": 32, - "line": 1, + "column": 7, + "line": 3, }, "start": Object { - "column": 31, - "line": 1, + "column": 6, + "line": 3, }, }, "range": Array [ - 31, - 32, + 94, + 95, ], "type": "Punctuator", - "value": ";", - }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/classes/class-computed-static-method.src 1`] = ` -Object { - "body": Array [ - Object { - "body": Object { - "body": Array [ - Object { - "computed": true, - "key": Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 17, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 17, - 18, - ], - "type": "Identifier", - }, - "kind": "method", - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 23, - ], - "static": true, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 21, - "line": 1, - }, - }, - "range": Array [ - 21, - 23, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 19, - "line": 1, - }, - }, - "params": Array [], - "range": Array [ - 19, - 23, - ], - "type": "FunctionExpression", - }, - }, - ], - "loc": Object { - "end": Object { - "column": 25, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "range": Array [ - 8, - 25, - ], - "type": "ClassBody", - }, - "id": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "name": "A", - "range": Array [ - 6, - 7, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 25, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 25, - ], - "superClass": null, - "type": "ClassDeclaration", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 26, - "line": 1, + "column": 9, + "line": 3, }, "start": Object { - "column": 25, - "line": 1, + "column": 8, + "line": 3, }, }, "range": Array [ - 25, - 26, + 96, + 97, ], - "type": "EmptyStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 26, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Punctuator", + "value": "[", }, - }, - "range": Array [ - 0, - 26, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, - "line": 1, + "column": 10, + "line": 3, }, "start": Object { - "column": 0, - "line": 1, + "column": 9, + "line": 3, }, }, "range": Array [ - 0, - 5, + 97, + 98, ], - "type": "Keyword", - "value": "class", + "type": "Punctuator", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 1, + "column": 13, + "line": 3, }, "start": Object { - "column": 6, - "line": 1, + "column": 11, + "line": 3, }, }, "range": Array [ - 6, - 7, + 99, + 101, ], - "type": "Identifier", - "value": "A", + "type": "Punctuator", + "value": "||", }, Object { "loc": Object { "end": Object { - "column": 9, - "line": 1, + "column": 15, + "line": 3, }, "start": Object { - "column": 8, - "line": 1, + "column": 14, + "line": 3, }, }, "range": Array [ - 8, - 9, + 102, + 103, ], "type": "Punctuator", - "value": "{", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 15, - "line": 1, + "column": 16, + "line": 3, }, "start": Object { - "column": 9, - "line": 1, + "column": 15, + "line": 3, }, }, "range": Array [ - 9, - 15, + 103, + 104, ], - "type": "Keyword", - "value": "static", + "type": "Punctuator", + "value": "]", }, Object { "loc": Object { "end": Object { "column": 17, - "line": 1, + "line": 3, }, "start": Object { "column": 16, - "line": 1, + "line": 3, }, }, "range": Array [ - 16, - 17, + 104, + 105, ], "type": "Punctuator", - "value": "[", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 18, - "line": 1, + "column": 3, + "line": 4, }, "start": Object { - "column": 17, - "line": 1, + "column": 0, + "line": 4, }, }, "range": Array [ - 17, - 18, + 106, + 109, ], - "type": "Identifier", - "value": "a", + "type": "Keyword", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 19, - "line": 1, + "column": 5, + "line": 4, }, "start": Object { - "column": 18, - "line": 1, + "column": 4, + "line": 4, }, }, "range": Array [ - 18, - 19, + 110, + 111, ], - "type": "Punctuator", - "value": "]", + "type": "Identifier", + "value": "y", }, Object { "loc": Object { "end": Object { - "column": 20, - "line": 1, + "column": 7, + "line": 4, }, "start": Object { - "column": 19, - "line": 1, + "column": 6, + "line": 4, }, }, "range": Array [ - 19, - 20, + 112, + 113, ], "type": "Punctuator", - "value": "(", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 21, - "line": 1, + "column": 9, + "line": 4, }, "start": Object { - "column": 20, - "line": 1, + "column": 8, + "line": 4, }, }, "range": Array [ - 20, - 21, + 114, + 115, ], "type": "Punctuator", - "value": ")", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 22, - "line": 1, + "column": 10, + "line": 4, }, "start": Object { - "column": 21, - "line": 1, + "column": 9, + "line": 4, }, }, "range": Array [ - 21, - 22, + 115, + 116, ], "type": "Punctuator", - "value": "{", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 23, - "line": 1, + "column": 13, + "line": 4, }, "start": Object { - "column": 22, - "line": 1, + "column": 11, + "line": 4, }, }, "range": Array [ - 22, - 23, + 117, + 119, ], "type": "Punctuator", - "value": "}", + "value": "||", }, Object { "loc": Object { "end": Object { - "column": 24, - "line": 1, + "column": 15, + "line": 4, }, "start": Object { - "column": 23, - "line": 1, + "column": 14, + "line": 4, }, }, "range": Array [ - 23, - 24, + 120, + 121, ], "type": "Punctuator", - "value": ";", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 25, - "line": 1, + "column": 16, + "line": 4, }, "start": Object { - "column": 24, - "line": 1, + "column": 15, + "line": 4, }, }, "range": Array [ - 24, - 25, + 121, + 122, ], "type": "Punctuator", "value": "}", @@ -15274,17 +15476,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 26, - "line": 1, + "column": 17, + "line": 4, }, "start": Object { - "column": 25, - "line": 1, + "column": 16, + "line": 4, }, }, "range": Array [ - 25, - 26, + 122, + 123, ], "type": "Punctuator", "value": ";", @@ -15294,16 +15496,15 @@ Object { } `; -exports[`javascript fixtures/classes/class-expression.src 1`] = ` +exports[`javascript fixtures/basics/typeof-expression.src 1`] = ` Object { "body": Array [ Object { "expression": Object { - "body": Object { - "body": Array [], + "argument": Object { "loc": Object { "end": Object { - "column": 9, + "column": 12, "line": 1, }, "start": Object { @@ -15313,31 +15514,33 @@ Object { }, "range": Array [ 7, - 9, + 12, ], - "type": "ClassBody", + "raw": "'str'", + "type": "Literal", + "value": "str", }, - "id": null, "loc": Object { "end": Object { - "column": 9, + "column": 12, "line": 1, }, "start": Object { - "column": 1, + "column": 0, "line": 1, }, }, + "operator": "typeof", + "prefix": true, "range": Array [ - 1, - 9, + 0, + 12, ], - "superClass": null, - "type": "ClassExpression", + "type": "UnaryExpression", }, "loc": Object { "end": Object { - "column": 11, + "column": 12, "line": 1, }, "start": Object { @@ -15347,15 +15550,15 @@ Object { }, "range": Array [ 0, - 11, + 12, ], "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 11, - "line": 1, + "column": 0, + "line": 2, }, "start": Object { "column": 0, @@ -15364,14 +15567,14 @@ Object { }, "range": Array [ 0, - 11, + 13, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, + "column": 6, "line": 1, }, "start": Object { @@ -15381,264 +15584,281 @@ Object { }, "range": Array [ 0, - 1, + 6, ], - "type": "Punctuator", - "value": "(", + "type": "Keyword", + "value": "typeof", }, Object { "loc": Object { "end": Object { - "column": 6, + "column": 12, "line": 1, }, "start": Object { - "column": 1, + "column": 7, "line": 1, }, }, "range": Array [ - 1, - 6, + 7, + 12, ], - "type": "Keyword", - "value": "class", + "type": "String", + "value": "'str'", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/basics/update-expression.src 1`] = ` +Object { + "body": Array [ Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "name": "i", + "range": Array [ + 4, + 5, + ], + "type": "Identifier", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, + 9, + ], + "raw": "0", + "type": "Literal", + "value": 0, + }, + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 9, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", "loc": Object { "end": Object { - "column": 8, + "column": 10, "line": 1, }, "start": Object { - "column": 7, + "column": 0, "line": 1, }, }, "range": Array [ - 7, - 8, + 0, + 10, ], - "type": "Punctuator", - "value": "{", + "type": "VariableDeclaration", }, Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "range": Array [ - 8, - 9, - ], - "type": "Punctuator", - "value": "}", - }, - Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 10, - ], - "type": "Punctuator", - "value": ")", - }, - Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "range": Array [ - 10, - 11, - ], - "type": "Punctuator", - "value": ";", - }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/classes/class-method-named-prototype.src 1`] = ` -Object { - "body": Array [ - Object { + "async": false, "body": Object { "body": Array [ Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "name": "prototype", - "range": Array [ - 9, - 18, - ], - "type": "Identifier", - }, - "kind": "method", - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 22, - ], - "static": false, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [], + "expression": Object { + "argument": Object { "loc": Object { "end": Object { - "column": 22, - "line": 1, + "column": 3, + "line": 3, }, "start": Object { - "column": 20, - "line": 1, + "column": 2, + "line": 3, }, }, + "name": "i", "range": Array [ - 20, - 22, + 28, + 29, ], - "type": "BlockStatement", + "type": "Identifier", }, - "expression": false, - "generator": false, - "id": null, "loc": Object { "end": Object { - "column": 22, - "line": 1, + "column": 5, + "line": 3, }, "start": Object { - "column": 18, - "line": 1, + "column": 2, + "line": 3, }, }, - "params": Array [], + "operator": "++", + "prefix": false, "range": Array [ - 18, - 22, + 28, + 31, ], - "type": "FunctionExpression", + "type": "UpdateExpression", + }, + "loc": Object { + "end": Object { + "column": 6, + "line": 3, + }, + "start": Object { + "column": 2, + "line": 3, + }, }, + "range": Array [ + 28, + 32, + ], + "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 23, - "line": 1, + "column": 1, + "line": 4, }, "start": Object { - "column": 8, - "line": 1, + "column": 13, + "line": 2, }, }, "range": Array [ - 8, - 23, + 24, + 34, ], - "type": "ClassBody", + "type": "BlockStatement", }, + "expression": false, + "generator": false, "id": Object { "loc": Object { "end": Object { - "column": 7, - "line": 1, + "column": 10, + "line": 2, }, "start": Object { - "column": 6, - "line": 1, + "column": 9, + "line": 2, }, }, - "name": "A", + "name": "f", "range": Array [ - 6, - 7, + 20, + 21, ], "type": "Identifier", }, "loc": Object { "end": Object { - "column": 23, - "line": 1, + "column": 1, + "line": 4, }, "start": Object { "column": 0, - "line": 1, + "line": 2, }, }, + "params": Array [], "range": Array [ - 0, - 23, + 11, + 34, ], - "superClass": null, - "type": "ClassDeclaration", + "type": "FunctionDeclaration", }, Object { + "expression": Object { + "arguments": Array [], + "callee": Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 5, + }, + "start": Object { + "column": 0, + "line": 5, + }, + }, + "name": "f", + "range": Array [ + 35, + 36, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 3, + "line": 5, + }, + "start": Object { + "column": 0, + "line": 5, + }, + }, + "range": Array [ + 35, + 38, + ], + "type": "CallExpression", + }, "loc": Object { "end": Object { - "column": 24, - "line": 1, + "column": 4, + "line": 5, }, "start": Object { - "column": 23, - "line": 1, + "column": 0, + "line": 5, }, }, "range": Array [ - 23, - 24, + 35, + 39, ], - "type": "EmptyStatement", + "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 24, - "line": 1, + "column": 4, + "line": 5, }, "start": Object { "column": 0, @@ -15647,14 +15867,14 @@ Object { }, "range": Array [ 0, - 24, + 39, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 3, "line": 1, }, "start": Object { @@ -15664,128 +15884,128 @@ Object { }, "range": Array [ 0, - 5, + 3, ], "type": "Keyword", - "value": "class", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 5, "line": 1, }, "start": Object { - "column": 6, + "column": 4, "line": 1, }, }, "range": Array [ - 6, - 7, + 4, + 5, ], "type": "Identifier", - "value": "A", + "value": "i", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 7, "line": 1, }, "start": Object { - "column": 8, + "column": 6, "line": 1, }, }, "range": Array [ - 8, - 9, + 6, + 7, ], "type": "Punctuator", - "value": "{", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 9, "line": 1, }, "start": Object { - "column": 9, + "column": 8, "line": 1, }, }, "range": Array [ + 8, 9, - 18, ], - "type": "Identifier", - "value": "prototype", + "type": "Numeric", + "value": "0", }, Object { "loc": Object { "end": Object { - "column": 19, + "column": 10, "line": 1, }, "start": Object { - "column": 18, + "column": 9, "line": 1, }, }, "range": Array [ - 18, - 19, + 9, + 10, ], "type": "Punctuator", - "value": "(", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 20, - "line": 1, + "column": 8, + "line": 2, }, "start": Object { - "column": 19, - "line": 1, + "column": 0, + "line": 2, }, }, "range": Array [ + 11, 19, - 20, ], - "type": "Punctuator", - "value": ")", + "type": "Keyword", + "value": "function", }, Object { "loc": Object { "end": Object { - "column": 21, - "line": 1, + "column": 10, + "line": 2, }, "start": Object { - "column": 20, - "line": 1, + "column": 9, + "line": 2, }, }, "range": Array [ 20, 21, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "f", }, Object { "loc": Object { "end": Object { - "column": 22, - "line": 1, + "column": 11, + "line": 2, }, "start": Object { - "column": 21, - "line": 1, + "column": 10, + "line": 2, }, }, "range": Array [ @@ -15793,17 +16013,17 @@ Object { 22, ], "type": "Punctuator", - "value": "}", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 23, - "line": 1, + "column": 12, + "line": 2, }, "start": Object { - "column": 22, - "line": 1, + "column": 11, + "line": 2, }, }, "range": Array [ @@ -15811,395 +16031,166 @@ Object { 23, ], "type": "Punctuator", - "value": "}", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 24, - "line": 1, + "column": 14, + "line": 2, }, "start": Object { - "column": 23, - "line": 1, + "column": 13, + "line": 2, }, }, "range": Array [ - 23, 24, + 25, ], "type": "Punctuator", - "value": ";", + "value": "{", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/classes/class-method-named-static.src 1`] = ` -Object { - "body": Array [ Object { - "body": Object { - "body": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "name": "static", - "range": Array [ - 9, - 15, - ], - "type": "Identifier", - }, - "kind": "method", - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 19, - ], - "static": false, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 17, - "line": 1, - }, - }, - "range": Array [ - 17, - 19, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "params": Array [], - "range": Array [ - 15, - 19, - ], - "type": "FunctionExpression", - }, - }, - ], - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "range": Array [ - 8, - 21, - ], - "type": "ClassBody", - }, - "id": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "name": "A", - "range": Array [ - 6, - 7, - ], - "type": "Identifier", - }, "loc": Object { "end": Object { - "column": 21, - "line": 1, + "column": 3, + "line": 3, }, "start": Object { - "column": 0, - "line": 1, + "column": 2, + "line": 3, }, }, "range": Array [ - 0, - 21, + 28, + 29, ], - "superClass": null, - "type": "ClassDeclaration", + "type": "Identifier", + "value": "i", }, Object { "loc": Object { "end": Object { - "column": 22, - "line": 1, + "column": 5, + "line": 3, }, "start": Object { - "column": 21, - "line": 1, + "column": 3, + "line": 3, }, }, "range": Array [ - 21, - 22, + 29, + 31, ], - "type": "EmptyStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 22, - ], - "sourceType": "script", - "tokens": Array [ - Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 5, - ], - "type": "Keyword", - "value": "class", + "type": "Punctuator", + "value": "++", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { "column": 6, - "line": 1, - }, - }, - "range": Array [ - 6, - 7, - ], - "type": "Identifier", - "value": "A", - }, - Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "range": Array [ - 8, - 9, - ], - "type": "Punctuator", - "value": "{", - }, - Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 15, - ], - "type": "Keyword", - "value": "static", - }, - Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "range": Array [ - 15, - 16, - ], - "type": "Punctuator", - "value": "(", - }, - Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 1, + "line": 3, }, "start": Object { - "column": 16, - "line": 1, + "column": 5, + "line": 3, }, }, "range": Array [ - 16, - 17, + 31, + 32, ], "type": "Punctuator", - "value": ")", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 18, - "line": 1, + "column": 1, + "line": 4, }, "start": Object { - "column": 17, - "line": 1, + "column": 0, + "line": 4, }, }, "range": Array [ - 17, - 18, + 33, + 34, ], "type": "Punctuator", - "value": "{", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 19, - "line": 1, + "column": 1, + "line": 5, }, "start": Object { - "column": 18, - "line": 1, + "column": 0, + "line": 5, }, }, "range": Array [ - 18, - 19, + 35, + 36, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "f", }, Object { "loc": Object { "end": Object { - "column": 20, - "line": 1, + "column": 2, + "line": 5, }, "start": Object { - "column": 19, - "line": 1, + "column": 1, + "line": 5, }, }, "range": Array [ - 19, - 20, + 36, + 37, ], "type": "Punctuator", - "value": ";", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 21, - "line": 1, + "column": 3, + "line": 5, }, "start": Object { - "column": 20, - "line": 1, + "column": 2, + "line": 5, }, }, "range": Array [ - 20, - 21, + 37, + 38, ], "type": "Punctuator", - "value": "}", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 22, - "line": 1, + "column": 4, + "line": 5, }, "start": Object { - "column": 21, - "line": 1, + "column": 3, + "line": 5, }, }, "range": Array [ - 21, - 22, + 38, + 39, ], "type": "Punctuator", "value": ";", @@ -16209,147 +16200,124 @@ Object { } `; -exports[`javascript fixtures/classes/class-method-named-with-space.src 1`] = ` +exports[`javascript fixtures/basics/void-expression.src 1`] = ` Object { "body": Array [ Object { - "body": Object { - "body": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "name": "withSpace", - "range": Array [ - 9, - 18, - ], - "type": "Identifier", - }, - "kind": "method", - "loc": Object { - "end": Object { - "column": 24, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, + "expression": Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, }, - "range": Array [ - 9, - 24, - ], - "static": false, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 24, - "line": 1, - }, - "start": Object { - "column": 22, - "line": 1, - }, - }, - "range": Array [ - 22, - 24, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 24, - "line": 1, - }, - "start": Object { - "column": 19, - "line": 1, - }, - }, - "params": Array [], - "range": Array [ - 19, - 24, - ], - "type": "FunctionExpression", + "start": Object { + "column": 5, + "line": 1, }, }, - ], + "range": Array [ + 5, + 6, + ], + "raw": "4", + "type": "Literal", + "value": 4, + }, "loc": Object { "end": Object { - "column": 25, + "column": 6, "line": 1, }, "start": Object { - "column": 8, + "column": 0, "line": 1, }, }, + "operator": "void", + "prefix": true, "range": Array [ - 8, - 25, + 0, + 6, ], - "type": "ClassBody", + "type": "UnaryExpression", }, - "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 7, + ], + "type": "ExpressionStatement", + }, + Object { + "expression": Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 2, + }, + "start": Object { + "column": 5, + "line": 2, + }, + }, + "range": Array [ + 13, + 14, + ], + "raw": "3", + "type": "Literal", + "value": 3, + }, "loc": Object { "end": Object { "column": 7, - "line": 1, + "line": 2, }, "start": Object { - "column": 6, - "line": 1, + "column": 0, + "line": 2, }, }, - "name": "A", + "operator": "void", + "prefix": true, "range": Array [ - 6, - 7, + 8, + 15, ], - "type": "Identifier", + "type": "UnaryExpression", }, "loc": Object { "end": Object { - "column": 25, - "line": 1, + "column": 8, + "line": 2, }, "start": Object { "column": 0, - "line": 1, + "line": 2, }, }, "range": Array [ - 0, - 25, + 8, + 16, ], - "superClass": null, - "type": "ClassDeclaration", + "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { "column": 0, - "line": 2, + "line": 3, }, "start": Object { "column": 0, @@ -16358,14 +16326,14 @@ Object { }, "range": Array [ 0, - 26, + 17, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 4, "line": 1, }, "start": Object { @@ -16375,79 +16343,79 @@ Object { }, "range": Array [ 0, - 5, + 4, ], "type": "Keyword", - "value": "class", + "value": "void", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 6, "line": 1, }, "start": Object { - "column": 6, + "column": 5, "line": 1, }, }, "range": Array [ + 5, 6, - 7, ], - "type": "Identifier", - "value": "A", + "type": "Numeric", + "value": "4", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 7, "line": 1, }, "start": Object { - "column": 8, + "column": 6, "line": 1, }, }, "range": Array [ - 8, - 9, + 6, + 7, ], "type": "Punctuator", - "value": "{", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 18, - "line": 1, + "column": 4, + "line": 2, }, "start": Object { - "column": 9, - "line": 1, + "column": 0, + "line": 2, }, }, "range": Array [ - 9, - 18, + 8, + 12, ], - "type": "Identifier", - "value": "withSpace", + "type": "Keyword", + "value": "void", }, Object { "loc": Object { "end": Object { - "column": 20, - "line": 1, + "column": 5, + "line": 2, }, "start": Object { - "column": 19, - "line": 1, + "column": 4, + "line": 2, }, }, "range": Array [ - 19, - 20, + 12, + 13, ], "type": "Punctuator", "value": "(", @@ -16455,203 +16423,186 @@ Object { Object { "loc": Object { "end": Object { - "column": 21, - "line": 1, + "column": 6, + "line": 2, }, "start": Object { - "column": 20, - "line": 1, + "column": 5, + "line": 2, }, }, "range": Array [ - 20, - 21, + 13, + 14, ], - "type": "Punctuator", - "value": ")", + "type": "Numeric", + "value": "3", }, Object { "loc": Object { "end": Object { - "column": 23, - "line": 1, + "column": 7, + "line": 2, }, "start": Object { - "column": 22, - "line": 1, + "column": 6, + "line": 2, }, }, "range": Array [ - 22, - 23, + 14, + 15, ], "type": "Punctuator", - "value": "{", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 24, - "line": 1, + "column": 8, + "line": 2, }, "start": Object { - "column": 23, - "line": 1, + "column": 7, + "line": 2, }, }, "range": Array [ - 23, - 24, + 15, + 16, ], "type": "Punctuator", - "value": "}", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/bigIntLiterals/binary.src 1`] = ` +Object { + "body": Array [ Object { + "expression": Object { + "loc": Object { + "end": Object { + "column": 4, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 4, + ], + "raw": "0b1n", + "type": "BigIntLiteral", + "value": "0b1", + }, "loc": Object { "end": Object { - "column": 25, + "column": 5, "line": 1, }, "start": Object { - "column": 24, + "column": 0, "line": 1, }, }, "range": Array [ - 24, - 25, + 0, + 5, ], - "type": "Punctuator", - "value": "}", + "type": "ExpressionStatement", }, ], - "type": "Program", -} -`; - -exports[`javascript fixtures/classes/class-one-method.src 1`] = ` -Object { - "body": Array [ - Object { - "body": Object { - "body": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "name": "a", - "range": Array [ - 14, - 15, - ], - "type": "Identifier", - }, - "kind": "method", - "loc": Object { - "end": Object { - "column": 9, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "range": Array [ - 14, - 19, - ], - "static": false, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 9, - "line": 2, - }, - "start": Object { - "column": 7, - "line": 2, - }, - }, - "range": Array [ - 17, - 19, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 9, - "line": 2, - }, - "start": Object { - "column": 5, - "line": 2, - }, - }, - "params": Array [], - "range": Array [ - 15, - 19, - ], - "type": "FunctionExpression", - }, - }, - ], - "loc": Object { - "end": Object { - "column": 1, - "line": 3, - }, - "start": Object { - "column": 8, - "line": 1, - }, + "loc": Object { + "end": Object { + "column": 0, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 6, + ], + "sourceType": "script", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 4, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, }, - "range": Array [ - 8, - 21, - ], - "type": "ClassBody", }, - "id": Object { + "range": Array [ + 0, + 4, + ], + "type": "Identifier", + "value": "0b1n", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 5, + ], + "type": "Punctuator", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/bigIntLiterals/decimal.src 1`] = ` +Object { + "body": Array [ + Object { + "expression": Object { "loc": Object { "end": Object { - "column": 7, + "column": 2, "line": 1, }, "start": Object { - "column": 6, + "column": 0, "line": 1, }, }, - "name": "A", "range": Array [ - 6, - 7, + 0, + 2, ], - "type": "Identifier", + "raw": "1n", + "type": "BigIntLiteral", + "value": "1", }, "loc": Object { "end": Object { - "column": 1, - "line": 3, + "column": 3, + "line": 1, }, "start": Object { "column": 0, @@ -16660,33 +16611,15 @@ Object { }, "range": Array [ 0, - 21, - ], - "superClass": null, - "type": "ClassDeclaration", - }, - Object { - "loc": Object { - "end": Object { - "column": 2, - "line": 3, - }, - "start": Object { - "column": 1, - "line": 3, - }, - }, - "range": Array [ - 21, - 22, + 3, ], - "type": "EmptyStatement", + "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 2, - "line": 3, + "column": 0, + "line": 2, }, "start": Object { "column": 0, @@ -16695,14 +16628,14 @@ Object { }, "range": Array [ 0, - 22, + 4, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 2, "line": 1, }, "start": Object { @@ -16712,169 +16645,318 @@ Object { }, "range": Array [ 0, - 5, + 2, ], - "type": "Keyword", - "value": "class", + "type": "Identifier", + "value": "1n", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 3, "line": 1, }, "start": Object { - "column": 6, + "column": 2, "line": 1, }, }, "range": Array [ - 6, - 7, + 2, + 3, ], - "type": "Identifier", - "value": "A", + "type": "Punctuator", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/bigIntLiterals/hex.src 1`] = ` +Object { + "body": Array [ Object { + "expression": Object { + "loc": Object { + "end": Object { + "column": 4, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 4, + ], + "raw": "0x1n", + "type": "BigIntLiteral", + "value": "0x1", + }, "loc": Object { "end": Object { - "column": 9, + "column": 5, "line": 1, }, "start": Object { - "column": 8, + "column": 0, "line": 1, }, }, "range": Array [ - 8, - 9, + 0, + 5, ], - "type": "Punctuator", - "value": "{", + "type": "ExpressionStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 6, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, - "line": 2, + "column": 4, + "line": 1, }, "start": Object { - "column": 4, - "line": 2, + "column": 0, + "line": 1, }, }, "range": Array [ - 14, - 15, + 0, + 4, ], "type": "Identifier", - "value": "a", + "value": "0x1n", }, Object { "loc": Object { "end": Object { - "column": 6, - "line": 2, + "column": 5, + "line": 1, }, "start": Object { - "column": 5, - "line": 2, + "column": 4, + "line": 1, }, }, "range": Array [ - 15, - 16, + 4, + 5, ], "type": "Punctuator", - "value": "(", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/bigIntLiterals/octal.src 1`] = ` +Object { + "body": Array [ Object { + "expression": Object { + "loc": Object { + "end": Object { + "column": 4, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 4, + ], + "raw": "0o1n", + "type": "BigIntLiteral", + "value": "0o1", + }, "loc": Object { "end": Object { - "column": 7, - "line": 2, + "column": 5, + "line": 1, }, "start": Object { - "column": 6, - "line": 2, + "column": 0, + "line": 1, }, }, "range": Array [ - 16, - 17, + 0, + 5, ], - "type": "Punctuator", - "value": ")", + "type": "ExpressionStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 6, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 8, - "line": 2, + "column": 4, + "line": 1, }, "start": Object { - "column": 7, - "line": 2, + "column": 0, + "line": 1, }, }, "range": Array [ - 17, - 18, + 0, + 4, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "0o1n", }, Object { "loc": Object { "end": Object { - "column": 9, - "line": 2, + "column": 5, + "line": 1, }, "start": Object { - "column": 8, - "line": 2, + "column": 4, + "line": 1, }, }, "range": Array [ - 18, - 19, + 4, + 5, ], "type": "Punctuator", - "value": "}", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/binaryLiterals/invalid.src 1`] = `"';' expected."`; + +exports[`javascript fixtures/binaryLiterals/lowercase.src 1`] = ` +Object { + "body": Array [ Object { + "expression": Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 5, + ], + "raw": "0b101", + "type": "Literal", + "value": 5, + }, "loc": Object { "end": Object { - "column": 1, - "line": 3, + "column": 6, + "line": 1, }, "start": Object { "column": 0, - "line": 3, + "line": 1, }, }, "range": Array [ - 20, - 21, + 0, + 6, ], - "type": "Punctuator", - "value": "}", + "type": "ExpressionStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 7, + ], + "sourceType": "script", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 5, + ], + "type": "Numeric", + "value": "0b101", }, Object { "loc": Object { "end": Object { - "column": 2, - "line": 3, + "column": 6, + "line": 1, }, "start": Object { - "column": 1, - "line": 3, + "column": 5, + "line": 1, }, }, "range": Array [ - 21, - 22, + 5, + 6, ], "type": "Punctuator", "value": ";", @@ -16884,182 +16966,33 @@ Object { } `; -exports[`javascript fixtures/classes/class-one-method-super.src 1`] = ` +exports[`javascript fixtures/binaryLiterals/uppercase.src 1`] = ` Object { "body": Array [ Object { - "body": Object { - "body": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "name": "a", - "range": Array [ - 14, - 15, - ], - "type": "Identifier", - }, - "kind": "method", - "loc": Object { - "end": Object { - "column": 5, - "line": 4, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "range": Array [ - 14, - 41, - ], - "static": false, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [ - Object { - "expression": Object { - "arguments": Array [], - "callee": Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 3, - }, - "start": Object { - "column": 8, - "line": 3, - }, - }, - "range": Array [ - 27, - 32, - ], - "type": "Super", - }, - "loc": Object { - "end": Object { - "column": 15, - "line": 3, - }, - "start": Object { - "column": 8, - "line": 3, - }, - }, - "range": Array [ - 27, - 34, - ], - "type": "CallExpression", - }, - "loc": Object { - "end": Object { - "column": 16, - "line": 3, - }, - "start": Object { - "column": 8, - "line": 3, - }, - }, - "range": Array [ - 27, - 35, - ], - "type": "ExpressionStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 5, - "line": 4, - }, - "start": Object { - "column": 7, - "line": 2, - }, - }, - "range": Array [ - 17, - 41, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 5, - "line": 4, - }, - "start": Object { - "column": 5, - "line": 2, - }, - }, - "params": Array [], - "range": Array [ - 15, - 41, - ], - "type": "FunctionExpression", - }, - }, - ], - "loc": Object { - "end": Object { - "column": 1, - "line": 5, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "range": Array [ - 8, - 43, - ], - "type": "ClassBody", - }, - "id": Object { + "expression": Object { "loc": Object { "end": Object { - "column": 7, + "column": 5, "line": 1, }, "start": Object { - "column": 6, + "column": 0, "line": 1, }, }, - "name": "A", "range": Array [ - 6, - 7, + 0, + 5, ], - "type": "Identifier", + "raw": "0B101", + "type": "Literal", + "value": 5, }, "loc": Object { "end": Object { - "column": 1, - "line": 5, + "column": 6, + "line": 1, }, "start": Object { "column": 0, @@ -17068,33 +17001,15 @@ Object { }, "range": Array [ 0, - 43, - ], - "superClass": null, - "type": "ClassDeclaration", - }, - Object { - "loc": Object { - "end": Object { - "column": 2, - "line": 5, - }, - "start": Object { - "column": 1, - "line": 5, - }, - }, - "range": Array [ - 43, - 44, + 6, ], - "type": "EmptyStatement", + "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { "column": 0, - "line": 6, + "line": 2, }, "start": Object { "column": 0, @@ -17103,7 +17018,7 @@ Object { }, "range": Array [ 0, - 45, + 7, ], "sourceType": "script", "tokens": Array [ @@ -17122,239 +17037,399 @@ Object { 0, 5, ], - "type": "Keyword", - "value": "class", + "type": "Numeric", + "value": "0B101", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 6, "line": 1, }, "start": Object { - "column": 6, + "column": 5, "line": 1, }, }, "range": Array [ + 5, 6, - 7, ], - "type": "Identifier", - "value": "A", + "type": "Punctuator", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/blockBindings/const.src 1`] = ` +Object { + "body": Array [ Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "foo", + "range": Array [ + 6, + 9, + ], + "type": "Identifier", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "name": "bar", + "range": Array [ + 12, + 15, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "range": Array [ + 6, + 15, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "const", "loc": Object { "end": Object { - "column": 9, + "column": 16, "line": 1, }, "start": Object { - "column": 8, + "column": 0, "line": 1, }, }, "range": Array [ - 8, - 9, + 0, + 16, ], - "type": "Punctuator", - "value": "{", + "type": "VariableDeclaration", }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 17, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { "column": 5, - "line": 2, + "line": 1, }, "start": Object { - "column": 4, - "line": 2, + "column": 0, + "line": 1, }, }, "range": Array [ - 14, - 15, + 0, + 5, ], - "type": "Identifier", - "value": "a", + "type": "Keyword", + "value": "const", }, Object { "loc": Object { "end": Object { - "column": 6, - "line": 2, + "column": 9, + "line": 1, }, "start": Object { - "column": 5, - "line": 2, + "column": 6, + "line": 1, }, }, "range": Array [ - 15, - 16, + 6, + 9, ], - "type": "Punctuator", - "value": "(", + "type": "Identifier", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 2, + "column": 11, + "line": 1, }, "start": Object { - "column": 6, - "line": 2, + "column": 10, + "line": 1, }, }, "range": Array [ - 16, - 17, + 10, + 11, ], "type": "Punctuator", - "value": ")", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 8, - "line": 2, + "column": 15, + "line": 1, }, "start": Object { - "column": 7, - "line": 2, + "column": 12, + "line": 1, }, }, "range": Array [ - 17, - 18, + 12, + 15, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "bar", }, Object { "loc": Object { "end": Object { - "column": 13, - "line": 3, + "column": 16, + "line": 1, }, "start": Object { - "column": 8, - "line": 3, + "column": 15, + "line": 1, }, }, "range": Array [ - 27, - 32, + 15, + 16, ], - "type": "Keyword", - "value": "super", + "type": "Punctuator", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/blockBindings/let.src 1`] = ` +Object { + "body": Array [ Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "name": "foo", + "range": Array [ + 4, + 7, + ], + "type": "Identifier", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "name": "bar", + "range": Array [ + 10, + 13, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 13, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "let", "loc": Object { "end": Object { "column": 14, - "line": 3, + "line": 1, }, "start": Object { - "column": 13, - "line": 3, + "column": 0, + "line": 1, }, }, "range": Array [ - 32, - 33, + 0, + 14, ], - "type": "Punctuator", - "value": "(", + "type": "VariableDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 15, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 15, - "line": 3, + "column": 3, + "line": 1, }, "start": Object { - "column": 14, - "line": 3, + "column": 0, + "line": 1, }, }, "range": Array [ - 33, - 34, + 0, + 3, ], - "type": "Punctuator", - "value": ")", + "type": "Keyword", + "value": "let", }, Object { "loc": Object { "end": Object { - "column": 16, - "line": 3, + "column": 7, + "line": 1, }, "start": Object { - "column": 15, - "line": 3, + "column": 4, + "line": 1, }, }, "range": Array [ - 34, - 35, + 4, + 7, ], - "type": "Punctuator", - "value": ";", + "type": "Identifier", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 5, - "line": 4, + "column": 9, + "line": 1, }, "start": Object { - "column": 4, - "line": 4, + "column": 8, + "line": 1, }, }, "range": Array [ - 40, - 41, + 8, + 9, ], "type": "Punctuator", - "value": "}", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 1, - "line": 5, + "column": 13, + "line": 1, }, "start": Object { - "column": 0, - "line": 5, + "column": 10, + "line": 1, }, }, "range": Array [ - 42, - 43, + 10, + 13, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "bar", }, Object { "loc": Object { "end": Object { - "column": 2, - "line": 5, + "column": 14, + "line": 1, }, "start": Object { - "column": 1, - "line": 5, - }, + "column": 13, + "line": 1, + }, }, "range": Array [ - 43, - 44, + 13, + 14, ], "type": "Punctuator", "value": ";", @@ -17364,128 +17439,163 @@ Object { } `; -exports[`javascript fixtures/classes/class-static-method.src 1`] = ` +exports[`javascript fixtures/blockBindings/let-in-switchcase.src 1`] = ` Object { "body": Array [ Object { - "body": Object { - "body": Array [ - Object { - "computed": false, - "key": Object { + "cases": Array [ + Object { + "consequent": Array [ + Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 32, + "line": 1, + }, + "start": Object { + "column": 31, + "line": 1, + }, + }, + "name": "t", + "range": Array [ + 31, + 32, + ], + "type": "Identifier", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 37, + "line": 1, + }, + "start": Object { + "column": 35, + "line": 1, + }, + }, + "range": Array [ + 35, + 37, + ], + "raw": "42", + "type": "Literal", + "value": 42, + }, + "loc": Object { + "end": Object { + "column": 37, + "line": 1, + }, + "start": Object { + "column": 31, + "line": 1, + }, + }, + "range": Array [ + 31, + 37, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "let", "loc": Object { "end": Object { - "column": 17, + "column": 38, "line": 1, }, "start": Object { - "column": 16, + "column": 27, "line": 1, }, }, - "name": "a", "range": Array [ - 16, - 17, + 27, + 38, ], - "type": "Identifier", - }, - "kind": "method", - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, + "type": "VariableDeclaration", }, - "range": Array [ - 9, - 21, - ], - "static": true, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 19, - "line": 1, - }, - }, - "range": Array [ - 19, - 21, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, + Object { + "label": null, "loc": Object { "end": Object { - "column": 21, + "column": 45, "line": 1, }, "start": Object { - "column": 17, + "column": 39, "line": 1, }, }, - "params": Array [], "range": Array [ - 17, - 21, + 39, + 45, ], - "type": "FunctionExpression", + "type": "BreakStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 45, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, }, }, - ], - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, + "range": Array [ + 18, + 45, + ], + "test": Object { + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "range": Array [ + 23, + 25, + ], + "raw": "42", + "type": "Literal", + "value": 42, }, + "type": "SwitchCase", }, - "range": Array [ - 8, - 23, - ], - "type": "ClassBody", - }, - "id": Object { + ], + "discriminant": Object { "loc": Object { "end": Object { - "column": 7, + "column": 14, "line": 1, }, "start": Object { - "column": 6, + "column": 8, "line": 1, }, }, - "name": "A", + "name": "answer", "range": Array [ - 6, - 7, + 8, + 14, ], "type": "Identifier", }, "loc": Object { "end": Object { - "column": 23, + "column": 47, "line": 1, }, "start": Object { @@ -17495,33 +17605,15 @@ Object { }, "range": Array [ 0, - 23, - ], - "superClass": null, - "type": "ClassDeclaration", - }, - Object { - "loc": Object { - "end": Object { - "column": 24, - "line": 1, - }, - "start": Object { - "column": 23, - "line": 1, - }, - }, - "range": Array [ - 23, - 24, + 47, ], - "type": "EmptyStatement", + "type": "SwitchStatement", }, ], "loc": Object { "end": Object { - "column": 24, - "line": 1, + "column": 0, + "line": 2, }, "start": Object { "column": 0, @@ -17530,14 +17622,14 @@ Object { }, "range": Array [ 0, - 24, + 48, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 6, "line": 1, }, "start": Object { @@ -17547,33 +17639,33 @@ Object { }, "range": Array [ 0, - 5, + 6, ], "type": "Keyword", - "value": "class", + "value": "switch", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 8, "line": 1, }, "start": Object { - "column": 6, + "column": 7, "line": 1, }, }, "range": Array [ - 6, 7, + 8, ], - "type": "Identifier", - "value": "A", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 14, "line": 1, }, "start": Object { @@ -17583,10 +17675,10 @@ Object { }, "range": Array [ 8, - 9, + 14, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "answer", }, Object { "loc": Object { @@ -17595,16 +17687,16 @@ Object { "line": 1, }, "start": Object { - "column": 9, + "column": 14, "line": 1, }, }, "range": Array [ - 9, + 14, 15, ], - "type": "Keyword", - "value": "static", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { @@ -17621,95 +17713,149 @@ Object { 16, 17, ], - "type": "Identifier", - "value": "a", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 22, "line": 1, }, "start": Object { - "column": 17, + "column": 18, "line": 1, }, }, "range": Array [ - 17, 18, + 22, ], - "type": "Punctuator", - "value": "(", + "type": "Keyword", + "value": "case", }, Object { "loc": Object { "end": Object { - "column": 19, + "column": 25, "line": 1, }, "start": Object { - "column": 18, + "column": 23, "line": 1, }, }, "range": Array [ - 18, - 19, + 23, + 25, ], - "type": "Punctuator", - "value": ")", + "type": "Numeric", + "value": "42", }, Object { "loc": Object { "end": Object { - "column": 20, + "column": 26, "line": 1, }, "start": Object { - "column": 19, + "column": 25, "line": 1, }, }, "range": Array [ - 19, - 20, + 25, + 26, ], "type": "Punctuator", - "value": "{", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 21, + "column": 30, "line": 1, }, "start": Object { - "column": 20, + "column": 27, "line": 1, }, }, "range": Array [ - 20, - 21, + 27, + 30, + ], + "type": "Keyword", + "value": "let", + }, + Object { + "loc": Object { + "end": Object { + "column": 32, + "line": 1, + }, + "start": Object { + "column": 31, + "line": 1, + }, + }, + "range": Array [ + 31, + 32, + ], + "type": "Identifier", + "value": "t", + }, + Object { + "loc": Object { + "end": Object { + "column": 34, + "line": 1, + }, + "start": Object { + "column": 33, + "line": 1, + }, + }, + "range": Array [ + 33, + 34, ], "type": "Punctuator", - "value": "}", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 22, + "column": 37, "line": 1, }, "start": Object { - "column": 21, + "column": 35, "line": 1, }, }, "range": Array [ - 21, - 22, + 35, + 37, + ], + "type": "Numeric", + "value": "42", + }, + Object { + "loc": Object { + "end": Object { + "column": 38, + "line": 1, + }, + "start": Object { + "column": 37, + "line": 1, + }, + }, + "range": Array [ + 37, + 38, ], "type": "Punctuator", "value": ";", @@ -17717,167 +17863,124 @@ Object { Object { "loc": Object { "end": Object { - "column": 23, + "column": 44, "line": 1, }, "start": Object { - "column": 22, + "column": 39, "line": 1, }, }, "range": Array [ - 22, - 23, + 39, + 44, ], - "type": "Punctuator", - "value": "}", + "type": "Keyword", + "value": "break", }, Object { "loc": Object { "end": Object { - "column": 24, + "column": 45, "line": 1, }, "start": Object { - "column": 23, + "column": 44, "line": 1, }, }, "range": Array [ - 23, - 24, + 44, + 45, ], "type": "Punctuator", "value": ";", }, + Object { + "loc": Object { + "end": Object { + "column": 47, + "line": 1, + }, + "start": Object { + "column": 46, + "line": 1, + }, + }, + "range": Array [ + 46, + 47, + ], + "type": "Punctuator", + "value": "}", + }, ], "type": "Program", } `; -exports[`javascript fixtures/classes/class-static-method-named-prototype.src 1`] = ` +exports[`javascript fixtures/callExpression/call-expression-with-array.src 1`] = ` Object { "body": Array [ Object { - "body": Object { - "body": Array [ + "expression": Object { + "arguments": Array [ Object { - "computed": true, - "key": Object { - "loc": Object { - "end": Object { - "column": 28, - "line": 1, - }, - "start": Object { - "column": 17, - "line": 1, - }, - }, - "range": Array [ - 17, - 28, - ], - "raw": "\\"prototype\\"", - "type": "Literal", - "value": "prototype", - }, - "kind": "method", + "elements": Array [], "loc": Object { "end": Object { - "column": 33, + "column": 6, "line": 1, }, "start": Object { - "column": 9, + "column": 4, "line": 1, }, }, "range": Array [ - 9, - 33, + 4, + 6, ], - "static": true, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 33, - "line": 1, - }, - "start": Object { - "column": 31, - "line": 1, - }, - }, - "range": Array [ - 31, - 33, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 33, - "line": 1, - }, - "start": Object { - "column": 29, - "line": 1, - }, - }, - "params": Array [], - "range": Array [ - 29, - 33, - ], - "type": "FunctionExpression", - }, + "type": "ArrayExpression", }, ], + "callee": Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "name": "foo", + "range": Array [ + 0, + 3, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 34, + "column": 7, "line": 1, }, "start": Object { - "column": 8, + "column": 0, "line": 1, }, }, "range": Array [ - 8, - 34, + 0, + 7, ], - "type": "ClassBody", - }, - "id": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "name": "A", - "range": Array [ - 6, - 7, - ], - "type": "Identifier", + "type": "CallExpression", }, "loc": Object { "end": Object { - "column": 34, + "column": 8, "line": 1, }, "start": Object { @@ -17887,33 +17990,15 @@ Object { }, "range": Array [ 0, - 34, - ], - "superClass": null, - "type": "ClassDeclaration", - }, - Object { - "loc": Object { - "end": Object { - "column": 35, - "line": 1, - }, - "start": Object { - "column": 34, - "line": 1, - }, - }, - "range": Array [ - 34, - 35, + 8, ], - "type": "EmptyStatement", + "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 35, - "line": 1, + "column": 0, + "line": 2, }, "start": Object { "column": 0, @@ -17922,14 +18007,14 @@ Object { }, "range": Array [ 0, - 35, + 9, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 3, "line": 1, }, "start": Object { @@ -17939,79 +18024,43 @@ Object { }, "range": Array [ 0, - 5, - ], - "type": "Keyword", - "value": "class", - }, - Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "range": Array [ - 6, - 7, + 3, ], "type": "Identifier", - "value": "A", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 4, "line": 1, }, "start": Object { - "column": 8, + "column": 3, "line": 1, }, }, "range": Array [ - 8, - 9, + 3, + 4, ], "type": "Punctuator", - "value": "{", - }, - Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 15, - ], - "type": "Keyword", - "value": "static", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 5, "line": 1, }, "start": Object { - "column": 16, + "column": 4, "line": 1, }, }, "range": Array [ - 16, - 17, + 4, + 5, ], "type": "Punctuator", "value": "[", @@ -18019,35 +18068,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 28, - "line": 1, - }, - "start": Object { - "column": 17, - "line": 1, - }, - }, - "range": Array [ - 17, - 28, - ], - "type": "String", - "value": "\\"prototype\\"", - }, - Object { - "loc": Object { - "end": Object { - "column": 29, + "column": 6, "line": 1, }, "start": Object { - "column": 28, + "column": 5, "line": 1, }, }, "range": Array [ - 28, - 29, + 5, + 6, ], "type": "Punctuator", "value": "]", @@ -18055,35 +18086,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 30, - "line": 1, - }, - "start": Object { - "column": 29, - "line": 1, - }, - }, - "range": Array [ - 29, - 30, - ], - "type": "Punctuator", - "value": "(", - }, - Object { - "loc": Object { - "end": Object { - "column": 31, + "column": 7, "line": 1, }, "start": Object { - "column": 30, + "column": 6, "line": 1, }, }, "range": Array [ - 30, - 31, + 6, + 7, ], "type": "Punctuator", "value": ")", @@ -18091,71 +18104,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 32, - "line": 1, - }, - "start": Object { - "column": 31, - "line": 1, - }, - }, - "range": Array [ - 31, - 32, - ], - "type": "Punctuator", - "value": "{", - }, - Object { - "loc": Object { - "end": Object { - "column": 33, - "line": 1, - }, - "start": Object { - "column": 32, - "line": 1, - }, - }, - "range": Array [ - 32, - 33, - ], - "type": "Punctuator", - "value": "}", - }, - Object { - "loc": Object { - "end": Object { - "column": 34, - "line": 1, - }, - "start": Object { - "column": 33, - "line": 1, - }, - }, - "range": Array [ - 33, - 34, - ], - "type": "Punctuator", - "value": "}", - }, - Object { - "loc": Object { - "end": Object { - "column": 35, + "column": 8, "line": 1, }, "start": Object { - "column": 34, + "column": 7, "line": 1, }, }, "range": Array [ - 34, - 35, + 7, + 8, ], "type": "Punctuator", "value": ";", @@ -18165,128 +18124,68 @@ Object { } `; -exports[`javascript fixtures/classes/class-static-method-named-static.src 1`] = ` +exports[`javascript fixtures/callExpression/call-expression-with-object.src 1`] = ` Object { "body": Array [ Object { - "body": Object { - "body": Array [ + "expression": Object { + "arguments": Array [ Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "name": "static", - "range": Array [ - 16, - 22, - ], - "type": "Identifier", - }, - "kind": "method", "loc": Object { "end": Object { - "column": 26, + "column": 6, "line": 1, }, "start": Object { - "column": 9, + "column": 4, "line": 1, }, }, + "properties": Array [], "range": Array [ - 9, - 26, + 4, + 6, ], - "static": true, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 26, - "line": 1, - }, - "start": Object { - "column": 24, - "line": 1, - }, - }, - "range": Array [ - 24, - 26, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 26, - "line": 1, - }, - "start": Object { - "column": 22, - "line": 1, - }, - }, - "params": Array [], - "range": Array [ - 22, - 26, - ], - "type": "FunctionExpression", - }, + "type": "ObjectExpression", }, ], - "loc": Object { - "end": Object { - "column": 28, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, + "callee": Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, }, + "name": "foo", + "range": Array [ + 0, + 3, + ], + "type": "Identifier", }, - "range": Array [ - 8, - 28, - ], - "type": "ClassBody", - }, - "id": Object { "loc": Object { "end": Object { "column": 7, "line": 1, }, "start": Object { - "column": 6, + "column": 0, "line": 1, }, }, - "name": "A", "range": Array [ - 6, + 0, 7, ], - "type": "Identifier", + "type": "CallExpression", }, "loc": Object { "end": Object { - "column": 28, + "column": 8, "line": 1, }, "start": Object { @@ -18296,33 +18195,15 @@ Object { }, "range": Array [ 0, - 28, - ], - "superClass": null, - "type": "ClassDeclaration", - }, - Object { - "loc": Object { - "end": Object { - "column": 29, - "line": 1, - }, - "start": Object { - "column": 28, - "line": 1, - }, - }, - "range": Array [ - 28, - 29, + 8, ], - "type": "EmptyStatement", + "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 29, - "line": 1, + "column": 0, + "line": 2, }, "start": Object { "column": 0, @@ -18331,14 +18212,14 @@ Object { }, "range": Array [ 0, - 29, + 9, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 3, "line": 1, }, "start": Object { @@ -18348,97 +18229,25 @@ Object { }, "range": Array [ 0, - 5, - ], - "type": "Keyword", - "value": "class", - }, - Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "range": Array [ - 6, - 7, + 3, ], "type": "Identifier", - "value": "A", - }, - Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "range": Array [ - 8, - 9, - ], - "type": "Punctuator", - "value": "{", - }, - Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 15, - ], - "type": "Keyword", - "value": "static", - }, - Object { - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "range": Array [ - 16, - 22, - ], - "type": "Keyword", - "value": "static", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 4, "line": 1, }, "start": Object { - "column": 22, + "column": 3, "line": 1, }, }, "range": Array [ - 22, - 23, + 3, + 4, ], "type": "Punctuator", "value": "(", @@ -18446,35 +18255,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 24, - "line": 1, - }, - "start": Object { - "column": 23, - "line": 1, - }, - }, - "range": Array [ - 23, - 24, - ], - "type": "Punctuator", - "value": ")", - }, - Object { - "loc": Object { - "end": Object { - "column": 25, + "column": 5, "line": 1, }, "start": Object { - "column": 24, + "column": 4, "line": 1, }, }, "range": Array [ - 24, - 25, + 4, + 5, ], "type": "Punctuator", "value": "{", @@ -18482,17 +18273,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 26, + "column": 6, "line": 1, }, "start": Object { - "column": 25, + "column": 5, "line": 1, }, }, "range": Array [ - 25, - 26, + 5, + 6, ], "type": "Punctuator", "value": "}", @@ -18500,360 +18291,350 @@ Object { Object { "loc": Object { "end": Object { - "column": 27, + "column": 7, "line": 1, }, "start": Object { - "column": 26, + "column": 6, "line": 1, }, }, "range": Array [ - 26, - 27, + 6, + 7, ], "type": "Punctuator", - "value": ";", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 28, + "column": 8, "line": 1, }, "start": Object { - "column": 27, + "column": 7, "line": 1, }, }, "range": Array [ - 27, - 28, + 7, + 8, ], "type": "Punctuator", - "value": "}", - }, - Object { - "loc": Object { - "end": Object { - "column": 29, - "line": 1, - }, - "start": Object { - "column": 28, - "line": 1, - }, - }, - "range": Array [ - 28, - 29, - ], - "type": "Punctuator", - "value": ";", + "value": ";", }, ], "type": "Program", } `; -exports[`javascript fixtures/classes/class-static-methods-and-accessor-properties.src 1`] = ` +exports[`javascript fixtures/callExpression/mixed-expression.src 1`] = ` Object { "body": Array [ Object { - "body": Object { - "body": Array [ + "expression": Object { + "arguments": Array [ Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 16, - 17, - ], - "type": "Identifier", - }, - "kind": "method", "loc": Object { "end": Object { - "column": 21, - "line": 1, + "column": 5, + "line": 5, }, "start": Object { - "column": 9, - "line": 1, + "column": 3, + "line": 5, }, }, + "properties": Array [], "range": Array [ - 9, - 21, + 67, + 69, ], - "static": true, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 21, - "line": 1, + "type": "ObjectExpression", + }, + ], + "callee": Object { + "async": false, + "body": Object { + "body": Array [ + Object { + "expression": Object { + "arguments": Array [ + Object { + "elements": Array [], + "loc": Object { + "end": Object { + "column": 7, + "line": 4, + }, + "start": Object { + "column": 5, + "line": 4, + }, + }, + "range": Array [ + 59, + 61, + ], + "type": "ArrayExpression", + }, + ], + "callee": Object { + "async": false, + "body": Object { + "body": Array [ + Object { + "expression": Object { + "arguments": Array [ + Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 3, + }, + "start": Object { + "column": 14, + "line": 3, + }, + }, + "properties": Array [], + "range": Array [ + 46, + 48, + ], + "type": "ObjectExpression", + }, + Object { + "elements": Array [], + "loc": Object { + "end": Object { + "column": 20, + "line": 3, + }, + "start": Object { + "column": 18, + "line": 3, + }, + }, + "range": Array [ + 50, + 52, + ], + "type": "ArrayExpression", + }, + ], + "callee": Object { + "computed": false, + "loc": Object { + "end": Object { + "column": 13, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 3, + }, + }, + "object": Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 3, + }, + }, + "range": Array [ + 36, + 40, + ], + "type": "ThisExpression", + }, + "property": Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 3, + }, + "start": Object { + "column": 9, + "line": 3, + }, + }, + "name": "call", + "range": Array [ + 41, + 45, + ], + "type": "Identifier", + }, + "range": Array [ + 36, + 45, + ], + "type": "MemberExpression", + }, + "loc": Object { + "end": Object { + "column": 21, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 3, + }, + }, + "range": Array [ + 36, + 53, + ], + "type": "CallExpression", + }, + "loc": Object { + "end": Object { + "column": 21, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 3, + }, + }, + "range": Array [ + 36, + 53, + ], + "type": "ExpressionStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 3, + "line": 4, + }, + "start": Object { + "column": 15, + "line": 2, + }, + }, + "range": Array [ + 30, + 57, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 3, + "line": 4, + }, + "start": Object { + "column": 3, + "line": 2, + }, + }, + "params": Array [], + "range": Array [ + 18, + 57, + ], + "type": "FunctionExpression", }, - "start": Object { - "column": 19, - "line": 1, + "loc": Object { + "end": Object { + "column": 8, + "line": 4, + }, + "start": Object { + "column": 2, + "line": 2, + }, }, + "range": Array [ + 17, + 62, + ], + "type": "CallExpression", }, - "range": Array [ - 19, - 21, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 17, - "line": 1, - }, - }, - "params": Array [], - "range": Array [ - 17, - 21, - ], - "type": "FunctionExpression", - }, - }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 34, - "line": 1, - }, - "start": Object { - "column": 33, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 33, - 34, - ], - "type": "Identifier", - }, - "kind": "get", - "loc": Object { - "end": Object { - "column": 38, - "line": 1, - }, - "start": Object { - "column": 22, - "line": 1, - }, - }, - "range": Array [ - 22, - 38, - ], - "static": true, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [], "loc": Object { "end": Object { - "column": 38, - "line": 1, + "column": 9, + "line": 4, }, "start": Object { - "column": 36, - "line": 1, + "column": 2, + "line": 2, }, }, "range": Array [ - 36, - 38, + 17, + 63, ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 38, - "line": 1, - }, - "start": Object { - "column": 34, - "line": 1, - }, - }, - "params": Array [], - "range": Array [ - 34, - 38, - ], - "type": "FunctionExpression", - }, - }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 51, - "line": 1, - }, - "start": Object { - "column": 50, - "line": 1, - }, + "type": "ExpressionStatement", }, - "name": "a", - "range": Array [ - 50, - 51, - ], - "type": "Identifier", - }, - "kind": "set", + ], "loc": Object { "end": Object { - "column": 56, - "line": 1, + "column": 1, + "line": 5, }, "start": Object { - "column": 39, + "column": 13, "line": 1, }, }, "range": Array [ - 39, - 56, + 13, + 65, ], - "static": true, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 56, - "line": 1, - }, - "start": Object { - "column": 54, - "line": 1, - }, - }, - "range": Array [ - 54, - 56, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 56, - "line": 1, - }, - "start": Object { - "column": 51, - "line": 1, - }, - }, - "params": Array [ - Object { - "loc": Object { - "end": Object { - "column": 53, - "line": 1, - }, - "start": Object { - "column": 52, - "line": 1, - }, - }, - "name": "b", - "range": Array [ - 52, - 53, - ], - "type": "Identifier", - }, - ], - "range": Array [ - 51, - 56, - ], - "type": "FunctionExpression", - }, - }, - ], - "loc": Object { - "end": Object { - "column": 58, - "line": 1, + "type": "BlockStatement", }, - "start": Object { - "column": 8, - "line": 1, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 1, + "line": 5, + }, + "start": Object { + "column": 1, + "line": 1, + }, }, + "params": Array [], + "range": Array [ + 1, + 65, + ], + "type": "FunctionExpression", }, - "range": Array [ - 8, - 58, - ], - "type": "ClassBody", - }, - "id": Object { "loc": Object { "end": Object { - "column": 7, - "line": 1, + "column": 6, + "line": 5, }, "start": Object { - "column": 6, + "column": 0, "line": 1, }, }, - "name": "A", "range": Array [ - 6, - 7, + 0, + 70, ], - "type": "Identifier", + "type": "CallExpression", }, "loc": Object { "end": Object { - "column": 58, - "line": 1, + "column": 7, + "line": 5, }, "start": Object { "column": 0, @@ -18862,33 +18643,15 @@ Object { }, "range": Array [ 0, - 58, - ], - "superClass": null, - "type": "ClassDeclaration", - }, - Object { - "loc": Object { - "end": Object { - "column": 59, - "line": 1, - }, - "start": Object { - "column": 58, - "line": 1, - }, - }, - "range": Array [ - 58, - 59, + 71, ], - "type": "EmptyStatement", + "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 59, - "line": 1, + "column": 0, + "line": 6, }, "start": Object { "column": 0, @@ -18897,14 +18660,14 @@ Object { }, "range": Array [ 0, - 59, + 72, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 1, "line": 1, }, "start": Object { @@ -18914,92 +18677,92 @@ Object { }, "range": Array [ 0, - 5, + 1, ], - "type": "Keyword", - "value": "class", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 9, "line": 1, }, "start": Object { - "column": 6, + "column": 1, "line": 1, }, }, "range": Array [ - 6, - 7, + 1, + 9, ], - "type": "Identifier", - "value": "A", + "type": "Keyword", + "value": "function", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 11, "line": 1, }, "start": Object { - "column": 8, + "column": 10, "line": 1, }, }, "range": Array [ - 8, - 9, + 10, + 11, ], "type": "Punctuator", - "value": "{", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 12, "line": 1, }, "start": Object { - "column": 9, + "column": 11, "line": 1, }, }, "range": Array [ - 9, - 15, + 11, + 12, ], - "type": "Keyword", - "value": "static", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 14, "line": 1, }, "start": Object { - "column": 16, + "column": 13, "line": 1, }, }, "range": Array [ - 16, - 17, + 13, + 14, ], - "type": "Identifier", - "value": "a", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 18, - "line": 1, + "column": 3, + "line": 2, }, "start": Object { - "column": 17, - "line": 1, + "column": 2, + "line": 2, }, }, "range": Array [ @@ -19012,125 +18775,143 @@ Object { Object { "loc": Object { "end": Object { - "column": 19, - "line": 1, + "column": 11, + "line": 2, }, "start": Object { - "column": 18, - "line": 1, + "column": 3, + "line": 2, }, }, "range": Array [ 18, - 19, + 26, + ], + "type": "Keyword", + "value": "function", + }, + Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 2, + }, + "start": Object { + "column": 12, + "line": 2, + }, + }, + "range": Array [ + 27, + 28, ], "type": "Punctuator", - "value": ")", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 20, - "line": 1, + "column": 14, + "line": 2, }, "start": Object { - "column": 19, - "line": 1, + "column": 13, + "line": 2, }, }, "range": Array [ - 19, - 20, + 28, + 29, ], "type": "Punctuator", - "value": "{", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 21, - "line": 1, + "column": 16, + "line": 2, }, "start": Object { - "column": 20, - "line": 1, + "column": 15, + "line": 2, }, }, "range": Array [ - 20, - 21, + 30, + 31, ], "type": "Punctuator", - "value": "}", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 28, - "line": 1, + "column": 8, + "line": 3, }, "start": Object { - "column": 22, - "line": 1, + "column": 4, + "line": 3, }, }, "range": Array [ - 22, - 28, + 36, + 40, ], "type": "Keyword", - "value": "static", + "value": "this", }, Object { "loc": Object { "end": Object { - "column": 32, - "line": 1, + "column": 9, + "line": 3, }, "start": Object { - "column": 29, - "line": 1, + "column": 8, + "line": 3, }, }, "range": Array [ - 29, - 32, + 40, + 41, ], - "type": "Identifier", - "value": "get", + "type": "Punctuator", + "value": ".", }, Object { "loc": Object { "end": Object { - "column": 34, - "line": 1, + "column": 13, + "line": 3, }, "start": Object { - "column": 33, - "line": 1, + "column": 9, + "line": 3, }, }, "range": Array [ - 33, - 34, + 41, + 45, ], "type": "Identifier", - "value": "a", + "value": "call", }, Object { "loc": Object { "end": Object { - "column": 35, - "line": 1, + "column": 14, + "line": 3, }, "start": Object { - "column": 34, - "line": 1, + "column": 13, + "line": 3, }, }, "range": Array [ - 34, - 35, + 45, + 46, ], "type": "Punctuator", "value": "(", @@ -19138,125 +18919,161 @@ Object { Object { "loc": Object { "end": Object { - "column": 36, - "line": 1, + "column": 15, + "line": 3, }, "start": Object { - "column": 35, - "line": 1, + "column": 14, + "line": 3, }, }, "range": Array [ - 35, - 36, + 46, + 47, ], "type": "Punctuator", - "value": ")", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 37, - "line": 1, + "column": 16, + "line": 3, }, "start": Object { - "column": 36, - "line": 1, + "column": 15, + "line": 3, }, }, "range": Array [ - 36, - 37, + 47, + 48, ], "type": "Punctuator", - "value": "{", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 38, - "line": 1, + "column": 17, + "line": 3, }, "start": Object { - "column": 37, - "line": 1, + "column": 16, + "line": 3, }, }, "range": Array [ - 37, - 38, + 48, + 49, ], "type": "Punctuator", - "value": "}", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 45, - "line": 1, + "column": 19, + "line": 3, }, "start": Object { - "column": 39, - "line": 1, + "column": 18, + "line": 3, }, }, "range": Array [ - 39, - 45, + 50, + 51, ], - "type": "Keyword", - "value": "static", + "type": "Punctuator", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 49, - "line": 1, + "column": 20, + "line": 3, }, "start": Object { - "column": 46, - "line": 1, + "column": 19, + "line": 3, }, }, "range": Array [ - 46, - 49, + 51, + 52, ], - "type": "Identifier", - "value": "set", + "type": "Punctuator", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 51, - "line": 1, + "column": 21, + "line": 3, }, "start": Object { - "column": 50, - "line": 1, + "column": 20, + "line": 3, }, }, "range": Array [ - 50, - 51, + 52, + 53, ], - "type": "Identifier", - "value": "a", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 52, - "line": 1, + "column": 3, + "line": 4, }, "start": Object { - "column": 51, - "line": 1, + "column": 2, + "line": 4, }, }, "range": Array [ - 51, - 52, + 56, + 57, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 4, + "line": 4, + }, + "start": Object { + "column": 3, + "line": 4, + }, + }, + "range": Array [ + 57, + 58, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 4, + }, + "start": Object { + "column": 4, + "line": 4, + }, + }, + "range": Array [ + 58, + 59, ], "type": "Punctuator", "value": "(", @@ -19264,35 +19081,53 @@ Object { Object { "loc": Object { "end": Object { - "column": 53, - "line": 1, + "column": 6, + "line": 4, }, "start": Object { - "column": 52, - "line": 1, + "column": 5, + "line": 4, }, }, "range": Array [ - 52, - 53, + 59, + 60, ], - "type": "Identifier", - "value": "b", + "type": "Punctuator", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 54, - "line": 1, + "column": 7, + "line": 4, }, "start": Object { - "column": 53, - "line": 1, + "column": 6, + "line": 4, }, }, "range": Array [ - 53, - 54, + 60, + 61, + ], + "type": "Punctuator", + "value": "]", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 4, + }, + "start": Object { + "column": 7, + "line": 4, + }, + }, + "range": Array [ + 61, + 62, ], "type": "Punctuator", "value": ")", @@ -19300,35 +19135,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 55, - "line": 1, + "column": 9, + "line": 4, }, "start": Object { - "column": 54, - "line": 1, + "column": 8, + "line": 4, }, }, "range": Array [ - 54, - 55, + 62, + 63, ], "type": "Punctuator", - "value": "{", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 56, - "line": 1, + "column": 1, + "line": 5, }, "start": Object { - "column": 55, - "line": 1, + "column": 0, + "line": 5, }, }, "range": Array [ - 55, - 56, + 64, + 65, ], "type": "Punctuator", "value": "}", @@ -19336,17 +19171,71 @@ Object { Object { "loc": Object { "end": Object { - "column": 58, - "line": 1, + "column": 2, + "line": 5, }, "start": Object { - "column": 57, - "line": 1, + "column": 1, + "line": 5, }, }, "range": Array [ - 57, - 58, + 65, + 66, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 5, + }, + "start": Object { + "column": 2, + "line": 5, + }, + }, + "range": Array [ + 66, + 67, + ], + "type": "Punctuator", + "value": "(", + }, + Object { + "loc": Object { + "end": Object { + "column": 4, + "line": 5, + }, + "start": Object { + "column": 3, + "line": 5, + }, + }, + "range": Array [ + 67, + 68, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 5, + }, + "start": Object { + "column": 4, + "line": 5, + }, + }, + "range": Array [ + 68, + 69, ], "type": "Punctuator", "value": "}", @@ -19354,17 +19243,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 59, - "line": 1, + "column": 6, + "line": 5, }, "start": Object { - "column": 58, - "line": 1, + "column": 5, + "line": 5, }, }, "range": Array [ - 58, - 59, + 69, + 70, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 5, + }, + "start": Object { + "column": 6, + "line": 5, + }, + }, + "range": Array [ + 70, + 71, ], "type": "Punctuator", "value": ";", @@ -19374,206 +19281,68 @@ Object { } `; -exports[`javascript fixtures/classes/class-two-computed-static-methods.src 1`] = ` +exports[`javascript fixtures/callExpression/new-expression-with-array.src 1`] = ` Object { "body": Array [ Object { - "body": Object { - "body": Array [ + "expression": Object { + "arguments": Array [ Object { - "computed": true, - "key": Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 16, - 17, - ], - "type": "Identifier", - }, - "kind": "method", + "elements": Array [], "loc": Object { "end": Object { - "column": 22, + "column": 10, "line": 1, }, "start": Object { - "column": 9, + "column": 8, "line": 1, }, }, "range": Array [ - 9, - 22, + 8, + 10, ], - "static": true, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, - }, - "range": Array [ - 20, - 22, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, - }, - "params": Array [], - "range": Array [ - 18, - 22, - ], - "type": "FunctionExpression", + "type": "ArrayExpression", + }, + ], + "callee": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, }, }, - Object { - "computed": true, - "key": Object { - "loc": Object { - "end": Object { - "column": 32, - "line": 1, - }, - "start": Object { - "column": 31, - "line": 1, - }, - }, - "name": "b", - "range": Array [ - 31, - 32, - ], - "type": "Identifier", - }, - "kind": "method", - "loc": Object { - "end": Object { - "column": 37, - "line": 1, - }, - "start": Object { - "column": 24, - "line": 1, - }, - }, - "range": Array [ - 24, - 37, - ], - "static": true, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 37, - "line": 1, - }, - "start": Object { - "column": 35, - "line": 1, - }, - }, - "range": Array [ - 35, - 37, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 37, - "line": 1, - }, - "start": Object { - "column": 33, - "line": 1, - }, - }, - "params": Array [], - "range": Array [ - 33, - 37, - ], - "type": "FunctionExpression", - }, - }, - ], - "loc": Object { - "end": Object { - "column": 38, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, + "name": "bar", + "range": Array [ + 4, + 7, + ], + "type": "Identifier", }, - "range": Array [ - 8, - 38, - ], - "type": "ClassBody", - }, - "id": Object { "loc": Object { "end": Object { - "column": 7, + "column": 11, "line": 1, }, "start": Object { - "column": 6, + "column": 0, "line": 1, }, }, - "name": "A", "range": Array [ - 6, - 7, + 0, + 11, ], - "type": "Identifier", + "type": "NewExpression", }, "loc": Object { "end": Object { - "column": 38, + "column": 12, "line": 1, }, "start": Object { @@ -19583,33 +19352,125 @@ Object { }, "range": Array [ 0, - 38, + 12, ], - "superClass": null, - "type": "ClassDeclaration", + "type": "ExpressionStatement", }, Object { + "expression": Object { + "arguments": Array [ + Object { + "elements": Array [ + Object { + "elements": Array [ + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 2, + }, + "start": Object { + "column": 10, + "line": 2, + }, + }, + "properties": Array [], + "range": Array [ + 23, + 25, + ], + "type": "ObjectExpression", + }, + ], + "loc": Object { + "end": Object { + "column": 13, + "line": 2, + }, + "start": Object { + "column": 9, + "line": 2, + }, + }, + "range": Array [ + 22, + 26, + ], + "type": "ArrayExpression", + }, + ], + "loc": Object { + "end": Object { + "column": 14, + "line": 2, + }, + "start": Object { + "column": 8, + "line": 2, + }, + }, + "range": Array [ + 21, + 27, + ], + "type": "ArrayExpression", + }, + ], + "callee": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "name": "bar", + "range": Array [ + 17, + 20, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 15, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 2, + }, + }, + "range": Array [ + 13, + 28, + ], + "type": "NewExpression", + }, "loc": Object { "end": Object { - "column": 39, - "line": 1, + "column": 16, + "line": 2, }, "start": Object { - "column": 38, - "line": 1, + "column": 0, + "line": 2, }, }, "range": Array [ - 38, - 39, + 13, + 29, ], - "type": "EmptyStatement", + "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 39, - "line": 1, + "column": 0, + "line": 3, }, "start": Object { "column": 0, @@ -19618,14 +19479,14 @@ Object { }, "range": Array [ 0, - 39, + 30, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 3, "line": 1, }, "start": Object { @@ -19635,10 +19496,10 @@ Object { }, "range": Array [ 0, - 5, + 3, ], "type": "Keyword", - "value": "class", + "value": "new", }, Object { "loc": Object { @@ -19647,152 +19508,152 @@ Object { "line": 1, }, "start": Object { - "column": 6, + "column": 4, "line": 1, }, }, "range": Array [ - 6, + 4, 7, ], "type": "Identifier", - "value": "A", + "value": "bar", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 8, "line": 1, }, "start": Object { - "column": 8, + "column": 7, "line": 1, }, }, "range": Array [ + 7, 8, - 9, ], "type": "Punctuator", - "value": "{", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 9, "line": 1, }, "start": Object { - "column": 9, + "column": 8, "line": 1, }, }, "range": Array [ + 8, 9, - 15, ], - "type": "Keyword", - "value": "static", + "type": "Punctuator", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 10, "line": 1, }, "start": Object { - "column": 15, + "column": 9, "line": 1, }, }, "range": Array [ - 15, - 16, + 9, + 10, ], "type": "Punctuator", - "value": "[", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 11, "line": 1, }, "start": Object { - "column": 16, + "column": 10, "line": 1, }, }, "range": Array [ - 16, - 17, + 10, + 11, ], - "type": "Identifier", - "value": "a", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 12, "line": 1, }, "start": Object { - "column": 17, + "column": 11, "line": 1, }, }, "range": Array [ - 17, - 18, + 11, + 12, ], "type": "Punctuator", - "value": "]", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 19, - "line": 1, + "column": 3, + "line": 2, }, "start": Object { - "column": 18, - "line": 1, + "column": 0, + "line": 2, }, }, "range": Array [ - 18, - 19, + 13, + 16, ], - "type": "Punctuator", - "value": "(", + "type": "Keyword", + "value": "new", }, Object { "loc": Object { "end": Object { - "column": 20, - "line": 1, + "column": 7, + "line": 2, }, "start": Object { - "column": 19, - "line": 1, + "column": 4, + "line": 2, }, }, "range": Array [ - 19, + 17, 20, ], - "type": "Punctuator", - "value": ")", + "type": "Identifier", + "value": "bar", }, Object { "loc": Object { "end": Object { - "column": 21, - "line": 1, + "column": 8, + "line": 2, }, "start": Object { - "column": 20, - "line": 1, + "column": 7, + "line": 2, }, }, "range": Array [ @@ -19800,17 +19661,17 @@ Object { 21, ], "type": "Punctuator", - "value": "{", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 22, - "line": 1, + "column": 9, + "line": 2, }, "start": Object { - "column": 21, - "line": 1, + "column": 8, + "line": 2, }, }, "range": Array [ @@ -19818,17 +19679,17 @@ Object { 22, ], "type": "Punctuator", - "value": "}", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 23, - "line": 1, + "column": 10, + "line": 2, }, "start": Object { - "column": 22, - "line": 1, + "column": 9, + "line": 2, }, }, "range": Array [ @@ -19836,76 +19697,76 @@ Object { 23, ], "type": "Punctuator", - "value": ";", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 30, - "line": 1, + "column": 11, + "line": 2, }, "start": Object { - "column": 24, - "line": 1, + "column": 10, + "line": 2, }, }, "range": Array [ + 23, 24, - 30, ], - "type": "Keyword", - "value": "static", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 31, - "line": 1, + "column": 12, + "line": 2, }, "start": Object { - "column": 30, - "line": 1, + "column": 11, + "line": 2, }, }, "range": Array [ - 30, - 31, + 24, + 25, ], "type": "Punctuator", - "value": "[", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 32, - "line": 1, + "column": 13, + "line": 2, }, "start": Object { - "column": 31, - "line": 1, + "column": 12, + "line": 2, }, }, "range": Array [ - 31, - 32, + 25, + 26, ], - "type": "Identifier", - "value": "b", + "type": "Punctuator", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 33, - "line": 1, + "column": 14, + "line": 2, }, "start": Object { - "column": 32, - "line": 1, + "column": 13, + "line": 2, }, }, "range": Array [ - 32, - 33, + 26, + 27, ], "type": "Punctuator", "value": "]", @@ -19913,89 +19774,222 @@ Object { Object { "loc": Object { "end": Object { - "column": 34, - "line": 1, + "column": 15, + "line": 2, }, "start": Object { - "column": 33, - "line": 1, + "column": 14, + "line": 2, }, }, "range": Array [ - 33, - 34, + 27, + 28, ], "type": "Punctuator", - "value": "(", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 35, - "line": 1, + "column": 16, + "line": 2, }, "start": Object { - "column": 34, - "line": 1, + "column": 15, + "line": 2, }, }, "range": Array [ - 34, - 35, + 28, + 29, ], "type": "Punctuator", - "value": ")", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/callExpression/new-expression-with-object.src 1`] = ` +Object { + "body": Array [ Object { - "loc": Object { - "end": Object { - "column": 36, - "line": 1, + "expression": Object { + "arguments": Array [ + Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "properties": Array [], + "range": Array [ + 8, + 10, + ], + "type": "ObjectExpression", + }, + ], + "callee": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "name": "bar", + "range": Array [ + 4, + 7, + ], + "type": "Identifier", }, - "start": Object { - "column": 35, - "line": 1, + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, }, + "range": Array [ + 0, + 11, + ], + "type": "NewExpression", }, - "range": Array [ - 35, - 36, - ], - "type": "Punctuator", - "value": "{", - }, - Object { "loc": Object { "end": Object { - "column": 37, + "column": 12, "line": 1, }, "start": Object { - "column": 36, + "column": 0, "line": 1, }, }, "range": Array [ - 36, - 37, + 0, + 12, ], - "type": "Punctuator", - "value": "}", + "type": "ExpressionStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 3, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 14, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 38, + "column": 3, "line": 1, }, "start": Object { - "column": 37, + "column": 0, "line": 1, }, }, "range": Array [ - 37, - 38, + 0, + 3, + ], + "type": "Keyword", + "value": "new", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 7, + ], + "type": "Identifier", + "value": "bar", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "range": Array [ + 7, + 8, + ], + "type": "Punctuator", + "value": "(", + }, + Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, + 9, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 10, ], "type": "Punctuator", "value": "}", @@ -20003,17 +19997,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 39, + "column": 11, "line": 1, }, "start": Object { - "column": 38, + "column": 10, "line": 1, }, }, "range": Array [ - 38, - 39, + 10, + 11, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 12, ], "type": "Punctuator", "value": ";", @@ -20023,7 +20035,7 @@ Object { } `; -exports[`javascript fixtures/classes/class-two-methods.src 1`] = ` +exports[`javascript fixtures/classes/class-accessor-properties.src 1`] = ` Object { "body": Array [ Object { @@ -20034,25 +20046,25 @@ Object { "key": Object { "loc": Object { "end": Object { - "column": 10, + "column": 14, "line": 1, }, "start": Object { - "column": 9, + "column": 13, "line": 1, }, }, "name": "a", "range": Array [ - 9, - 10, + 13, + 14, ], "type": "Identifier", }, - "kind": "method", + "kind": "get", "loc": Object { "end": Object { - "column": 14, + "column": 18, "line": 1, }, "start": Object { @@ -20062,7 +20074,7 @@ Object { }, "range": Array [ 9, - 14, + 18, ], "static": false, "type": "MethodDefinition", @@ -20072,17 +20084,17 @@ Object { "body": Array [], "loc": Object { "end": Object { - "column": 14, + "column": 18, "line": 1, }, "start": Object { - "column": 12, + "column": 16, "line": 1, }, }, "range": Array [ - 12, - 14, + 16, + 18, ], "type": "BlockStatement", }, @@ -20091,18 +20103,18 @@ Object { "id": null, "loc": Object { "end": Object { - "column": 14, + "column": 18, "line": 1, }, "start": Object { - "column": 10, + "column": 14, "line": 1, }, }, "params": Array [], "range": Array [ - 10, 14, + 18, ], "type": "FunctionExpression", }, @@ -20112,35 +20124,35 @@ Object { "key": Object { "loc": Object { "end": Object { - "column": 15, + "column": 24, "line": 1, }, "start": Object { - "column": 14, + "column": 23, "line": 1, }, }, "name": "b", "range": Array [ - 14, - 15, + 23, + 24, ], "type": "Identifier", }, - "kind": "method", + "kind": "set", "loc": Object { "end": Object { - "column": 19, + "column": 29, "line": 1, }, "start": Object { - "column": 14, + "column": 19, "line": 1, }, }, "range": Array [ - 14, 19, + 29, ], "static": false, "type": "MethodDefinition", @@ -20150,17 +20162,17 @@ Object { "body": Array [], "loc": Object { "end": Object { - "column": 19, + "column": 29, "line": 1, }, "start": Object { - "column": 17, + "column": 27, "line": 1, }, }, "range": Array [ - 17, - 19, + 27, + 29, ], "type": "BlockStatement", }, @@ -20169,18 +20181,37 @@ Object { "id": null, "loc": Object { "end": Object { - "column": 19, + "column": 29, "line": 1, }, "start": Object { - "column": 15, + "column": 24, "line": 1, }, }, - "params": Array [], + "params": Array [ + Object { + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 25, + "line": 1, + }, + }, + "name": "c", + "range": Array [ + 25, + 26, + ], + "type": "Identifier", + }, + ], "range": Array [ - 15, - 19, + 24, + 29, ], "type": "FunctionExpression", }, @@ -20188,7 +20219,7 @@ Object { ], "loc": Object { "end": Object { - "column": 20, + "column": 31, "line": 1, }, "start": Object { @@ -20198,7 +20229,7 @@ Object { }, "range": Array [ 8, - 20, + 31, ], "type": "ClassBody", }, @@ -20222,7 +20253,7 @@ Object { }, "loc": Object { "end": Object { - "column": 20, + "column": 31, "line": 1, }, "start": Object { @@ -20232,7 +20263,7 @@ Object { }, "range": Array [ 0, - 20, + 31, ], "superClass": null, "type": "ClassDeclaration", @@ -20240,24 +20271,24 @@ Object { Object { "loc": Object { "end": Object { - "column": 21, + "column": 32, "line": 1, }, "start": Object { - "column": 20, + "column": 31, "line": 1, }, }, "range": Array [ - 20, - 21, + 31, + 32, ], "type": "EmptyStatement", }, ], "loc": Object { "end": Object { - "column": 21, + "column": 32, "line": 1, }, "start": Object { @@ -20267,7 +20298,7 @@ Object { }, "range": Array [ 0, - 21, + 32, ], "sourceType": "script", "tokens": Array [ @@ -20328,7 +20359,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 10, + "column": 12, "line": 1, }, "start": Object { @@ -20338,7 +20369,25 @@ Object { }, "range": Array [ 9, - 10, + 12, + ], + "type": "Identifier", + "value": "get", + }, + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 14, ], "type": "Identifier", "value": "a", @@ -20346,17 +20395,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 11, + "column": 15, "line": 1, }, "start": Object { - "column": 10, + "column": 14, "line": 1, }, }, "range": Array [ - 10, - 11, + 14, + 15, ], "type": "Punctuator", "value": "(", @@ -20364,17 +20413,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 12, + "column": 16, "line": 1, }, "start": Object { - "column": 11, + "column": 15, "line": 1, }, }, "range": Array [ - 11, - 12, + 15, + 16, ], "type": "Punctuator", "value": ")", @@ -20382,17 +20431,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 13, + "column": 17, "line": 1, }, "start": Object { - "column": 12, + "column": 16, "line": 1, }, }, "range": Array [ - 12, - 13, + 16, + 17, ], "type": "Punctuator", "value": "{", @@ -20400,17 +20449,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 14, + "column": 18, "line": 1, }, "start": Object { - "column": 13, + "column": 17, "line": 1, }, }, "range": Array [ - 13, - 14, + 17, + 18, ], "type": "Punctuator", "value": "}", @@ -20418,17 +20467,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 15, + "column": 22, "line": 1, }, "start": Object { - "column": 14, + "column": 19, "line": 1, }, }, "range": Array [ - 14, - 15, + 19, + 22, + ], + "type": "Identifier", + "value": "set", + }, + Object { + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "range": Array [ + 23, + 24, ], "type": "Identifier", "value": "b", @@ -20436,17 +20503,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 16, + "column": 25, "line": 1, }, "start": Object { - "column": 15, + "column": 24, "line": 1, }, }, "range": Array [ - 15, - 16, + 24, + 25, ], "type": "Punctuator", "value": "(", @@ -20454,17 +20521,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 17, + "column": 26, "line": 1, }, "start": Object { - "column": 16, + "column": 25, "line": 1, }, }, "range": Array [ - 16, - 17, + 25, + 26, + ], + "type": "Identifier", + "value": "c", + }, + Object { + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 26, + "line": 1, + }, + }, + "range": Array [ + 26, + 27, ], "type": "Punctuator", "value": ")", @@ -20472,17 +20557,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 18, + "column": 28, "line": 1, }, "start": Object { - "column": 17, + "column": 27, "line": 1, }, }, "range": Array [ - 17, - 18, + 27, + 28, ], "type": "Punctuator", "value": "{", @@ -20490,17 +20575,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 19, + "column": 29, "line": 1, }, "start": Object { - "column": 18, + "column": 28, "line": 1, }, }, "range": Array [ - 18, - 19, + 28, + 29, ], "type": "Punctuator", "value": "}", @@ -20508,17 +20593,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 20, + "column": 30, "line": 1, }, "start": Object { - "column": 19, + "column": 29, "line": 1, }, }, "range": Array [ - 19, - 20, + 29, + 30, + ], + "type": "Punctuator", + "value": ";", + }, + Object { + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 30, + "line": 1, + }, + }, + "range": Array [ + 30, + 31, ], "type": "Punctuator", "value": "}", @@ -20526,17 +20629,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 21, + "column": 32, "line": 1, }, "start": Object { - "column": 20, + "column": 31, "line": 1, }, }, "range": Array [ - 20, - 21, + 31, + 32, ], "type": "Punctuator", "value": ";", @@ -20546,128 +20649,48 @@ Object { } `; -exports[`javascript fixtures/classes/class-two-methods-computed-constructor.src 1`] = ` +exports[`javascript fixtures/classes/class-computed-static-method.src 1`] = ` Object { "body": Array [ Object { "body": Object { "body": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 22, - ], - "raw": "\\"constructor\\"", - "type": "Literal", - "value": "constructor", - }, - "kind": "constructor", - "loc": Object { - "end": Object { - "column": 26, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 26, - ], - "static": false, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 26, - "line": 1, - }, - "start": Object { - "column": 24, - "line": 1, - }, - }, - "range": Array [ - 24, - 26, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 26, - "line": 1, - }, - "start": Object { - "column": 22, - "line": 1, - }, - }, - "params": Array [], - "range": Array [ - 22, - 26, - ], - "type": "FunctionExpression", - }, - }, Object { "computed": true, "key": Object { "loc": Object { "end": Object { - "column": 41, + "column": 18, "line": 1, }, "start": Object { - "column": 28, + "column": 17, "line": 1, }, }, + "name": "a", "range": Array [ - 28, - 41, + 17, + 18, ], - "raw": "\\"constructor\\"", - "type": "Literal", - "value": "constructor", + "type": "Identifier", }, "kind": "method", "loc": Object { "end": Object { - "column": 46, + "column": 23, "line": 1, }, "start": Object { - "column": 27, + "column": 9, "line": 1, }, }, "range": Array [ - 27, - 46, + 9, + 23, ], - "static": false, + "static": true, "type": "MethodDefinition", "value": Object { "async": false, @@ -20675,17 +20698,17 @@ Object { "body": Array [], "loc": Object { "end": Object { - "column": 46, + "column": 23, "line": 1, }, "start": Object { - "column": 44, + "column": 21, "line": 1, }, }, "range": Array [ - 44, - 46, + 21, + 23, ], "type": "BlockStatement", }, @@ -20694,18 +20717,18 @@ Object { "id": null, "loc": Object { "end": Object { - "column": 46, + "column": 23, "line": 1, }, "start": Object { - "column": 42, + "column": 19, "line": 1, }, }, "params": Array [], "range": Array [ - 42, - 46, + 19, + 23, ], "type": "FunctionExpression", }, @@ -20713,7 +20736,7 @@ Object { ], "loc": Object { "end": Object { - "column": 47, + "column": 25, "line": 1, }, "start": Object { @@ -20723,7 +20746,7 @@ Object { }, "range": Array [ 8, - 47, + 25, ], "type": "ClassBody", }, @@ -20747,7 +20770,7 @@ Object { }, "loc": Object { "end": Object { - "column": 47, + "column": 25, "line": 1, }, "start": Object { @@ -20757,7 +20780,7 @@ Object { }, "range": Array [ 0, - 47, + 25, ], "superClass": null, "type": "ClassDeclaration", @@ -20765,24 +20788,24 @@ Object { Object { "loc": Object { "end": Object { - "column": 48, + "column": 26, "line": 1, }, "start": Object { - "column": 47, + "column": 25, "line": 1, }, }, "range": Array [ - 47, - 48, + 25, + 26, ], "type": "EmptyStatement", }, ], "loc": Object { "end": Object { - "column": 48, + "column": 26, "line": 1, }, "start": Object { @@ -20792,7 +20815,7 @@ Object { }, "range": Array [ 0, - 48, + 26, ], "sourceType": "script", "tokens": Array [ @@ -20853,7 +20876,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 22, + "column": 15, "line": 1, }, "start": Object { @@ -20863,25 +20886,79 @@ Object { }, "range": Array [ 9, - 22, + 15, ], - "type": "String", - "value": "\\"constructor\\"", + "type": "Keyword", + "value": "static", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 17, "line": 1, }, "start": Object { - "column": 22, + "column": 16, "line": 1, }, }, "range": Array [ - 22, - 23, + 16, + 17, + ], + "type": "Punctuator", + "value": "[", + }, + Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "range": Array [ + 17, + 18, + ], + "type": "Identifier", + "value": "a", + }, + Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "range": Array [ + 18, + 19, + ], + "type": "Punctuator", + "value": "]", + }, + Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 19, + "line": 1, + }, + }, + "range": Array [ + 19, + 20, ], "type": "Punctuator", "value": "(", @@ -20889,17 +20966,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 24, + "column": 21, "line": 1, }, "start": Object { - "column": 23, + "column": 20, "line": 1, }, }, "range": Array [ - 23, - 24, + 20, + 21, ], "type": "Punctuator", "value": ")", @@ -20907,17 +20984,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 25, + "column": 22, "line": 1, }, "start": Object { - "column": 24, + "column": 21, "line": 1, }, }, "range": Array [ - 24, - 25, + 21, + 22, ], "type": "Punctuator", "value": "{", @@ -20925,17 +21002,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 26, + "column": 23, "line": 1, }, "start": Object { - "column": 25, + "column": 22, "line": 1, }, }, "range": Array [ - 25, - 26, + 22, + 23, ], "type": "Punctuator", "value": "}", @@ -20943,71 +21020,150 @@ Object { Object { "loc": Object { "end": Object { - "column": 28, + "column": 24, "line": 1, }, "start": Object { - "column": 27, + "column": 23, "line": 1, }, }, "range": Array [ - 27, - 28, + 23, + 24, ], "type": "Punctuator", - "value": "[", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 41, + "column": 25, "line": 1, }, "start": Object { - "column": 28, + "column": 24, "line": 1, }, }, "range": Array [ - 28, - 41, + 24, + 25, ], - "type": "String", - "value": "\\"constructor\\"", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 42, + "column": 26, "line": 1, }, "start": Object { - "column": 41, + "column": 25, "line": 1, }, }, "range": Array [ - 41, - 42, + 25, + 26, ], "type": "Punctuator", - "value": "]", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/classes/class-expression.src 1`] = ` +Object { + "body": Array [ Object { + "expression": Object { + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "range": Array [ + 7, + 9, + ], + "type": "ClassBody", + }, + "id": null, + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "range": Array [ + 1, + 9, + ], + "superClass": null, + "type": "ClassExpression", + }, "loc": Object { "end": Object { - "column": 43, + "column": 11, "line": 1, }, "start": Object { - "column": 42, + "column": 0, "line": 1, }, }, "range": Array [ - 42, - 43, + 0, + 11, + ], + "type": "ExpressionStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 11, + ], + "sourceType": "script", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 1, ], "type": "Punctuator", "value": "(", @@ -21015,35 +21171,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 44, + "column": 6, "line": 1, }, "start": Object { - "column": 43, + "column": 1, "line": 1, }, }, "range": Array [ - 43, - 44, + 1, + 6, ], - "type": "Punctuator", - "value": ")", + "type": "Keyword", + "value": "class", }, Object { "loc": Object { "end": Object { - "column": 45, + "column": 8, "line": 1, }, "start": Object { - "column": 44, + "column": 7, "line": 1, }, }, "range": Array [ - 44, - 45, + 7, + 8, ], "type": "Punctuator", "value": "{", @@ -21051,17 +21207,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 46, + "column": 9, "line": 1, }, "start": Object { - "column": 45, + "column": 8, "line": 1, }, }, "range": Array [ - 45, - 46, + 8, + 9, ], "type": "Punctuator", "value": "}", @@ -21069,35 +21225,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 47, + "column": 10, "line": 1, }, "start": Object { - "column": 46, + "column": 9, "line": 1, }, }, "range": Array [ - 46, - 47, + 9, + 10, ], "type": "Punctuator", - "value": "}", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 48, + "column": 11, "line": 1, }, "start": Object { - "column": 47, + "column": 10, "line": 1, }, }, "range": Array [ - 47, - 48, + 10, + 11, ], "type": "Punctuator", "value": ";", @@ -21107,7 +21263,7 @@ Object { } `; -exports[`javascript fixtures/classes/class-two-methods-semi.src 1`] = ` +exports[`javascript fixtures/classes/class-method-named-prototype.src 1`] = ` Object { "body": Array [ Object { @@ -21118,7 +21274,7 @@ Object { "key": Object { "loc": Object { "end": Object { - "column": 10, + "column": 18, "line": 1, }, "start": Object { @@ -21126,17 +21282,17 @@ Object { "line": 1, }, }, - "name": "a", + "name": "prototype", "range": Array [ 9, - 10, + 18, ], "type": "Identifier", }, "kind": "method", "loc": Object { "end": Object { - "column": 14, + "column": 22, "line": 1, }, "start": Object { @@ -21146,7 +21302,7 @@ Object { }, "range": Array [ 9, - 14, + 22, ], "static": false, "type": "MethodDefinition", @@ -21156,95 +21312,17 @@ Object { "body": Array [], "loc": Object { "end": Object { - "column": 14, + "column": 22, "line": 1, }, "start": Object { - "column": 12, - "line": 1, - }, - }, - "range": Array [ - 12, - 14, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "params": Array [], - "range": Array [ - 10, - 14, - ], - "type": "FunctionExpression", - }, - }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "name": "b", - "range": Array [ - 15, - 16, - ], - "type": "Identifier", - }, - "kind": "method", - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "range": Array [ - 15, - 20, - ], - "static": false, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { "column": 20, "line": 1, }, - "start": Object { - "column": 18, - "line": 1, - }, }, "range": Array [ - 18, 20, + 22, ], "type": "BlockStatement", }, @@ -21253,18 +21331,18 @@ Object { "id": null, "loc": Object { "end": Object { - "column": 20, + "column": 22, "line": 1, }, "start": Object { - "column": 16, + "column": 18, "line": 1, }, }, "params": Array [], "range": Array [ - 16, - 20, + 18, + 22, ], "type": "FunctionExpression", }, @@ -21272,7 +21350,7 @@ Object { ], "loc": Object { "end": Object { - "column": 21, + "column": 23, "line": 1, }, "start": Object { @@ -21282,7 +21360,7 @@ Object { }, "range": Array [ 8, - 21, + 23, ], "type": "ClassBody", }, @@ -21306,7 +21384,7 @@ Object { }, "loc": Object { "end": Object { - "column": 21, + "column": 23, "line": 1, }, "start": Object { @@ -21316,7 +21394,7 @@ Object { }, "range": Array [ 0, - 21, + 23, ], "superClass": null, "type": "ClassDeclaration", @@ -21324,24 +21402,24 @@ Object { Object { "loc": Object { "end": Object { - "column": 22, + "column": 24, "line": 1, }, "start": Object { - "column": 21, + "column": 23, "line": 1, }, }, "range": Array [ - 21, - 22, + 23, + 24, ], "type": "EmptyStatement", }, ], "loc": Object { "end": Object { - "column": 22, + "column": 24, "line": 1, }, "start": Object { @@ -21351,7 +21429,7 @@ Object { }, "range": Array [ 0, - 22, + 24, ], "sourceType": "script", "tokens": Array [ @@ -21412,7 +21490,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 10, + "column": 18, "line": 1, }, "start": Object { @@ -21422,25 +21500,25 @@ Object { }, "range": Array [ 9, - 10, + 18, ], "type": "Identifier", - "value": "a", + "value": "prototype", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 19, "line": 1, }, "start": Object { - "column": 10, + "column": 18, "line": 1, }, }, "range": Array [ - 10, - 11, + 18, + 19, ], "type": "Punctuator", "value": "(", @@ -21448,17 +21526,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 12, + "column": 20, "line": 1, }, "start": Object { - "column": 11, + "column": 19, "line": 1, }, }, "range": Array [ - 11, - 12, + 19, + 20, ], "type": "Punctuator", "value": ")", @@ -21466,17 +21544,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 13, + "column": 21, "line": 1, }, "start": Object { - "column": 12, + "column": 20, "line": 1, }, }, "range": Array [ - 12, - 13, + 20, + 21, ], "type": "Punctuator", "value": "{", @@ -21484,17 +21562,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 14, + "column": 22, "line": 1, }, "start": Object { - "column": 13, + "column": 21, "line": 1, }, }, "range": Array [ - 13, - 14, + 21, + 22, ], "type": "Punctuator", "value": "}", @@ -21502,270 +21580,84 @@ Object { Object { "loc": Object { "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "range": Array [ - 14, - 15, - ], - "type": "Punctuator", - "value": ";", - }, - Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "range": Array [ - 15, - 16, - ], - "type": "Identifier", - "value": "b", - }, - Object { - "loc": Object { - "end": Object { - "column": 17, + "column": 23, "line": 1, }, "start": Object { - "column": 16, + "column": 22, "line": 1, }, }, "range": Array [ - 16, - 17, + 22, + 23, ], "type": "Punctuator", - "value": "(", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 24, "line": 1, }, "start": Object { - "column": 17, + "column": 23, "line": 1, }, }, "range": Array [ - 17, - 18, + 23, + 24, ], "type": "Punctuator", - "value": ")", + "value": ";", }, - Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, - }, - "range": Array [ - 18, - 19, - ], - "type": "Punctuator", - "value": "{", - }, - Object { - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 19, - "line": 1, - }, - }, - "range": Array [ - 19, - 20, - ], - "type": "Punctuator", - "value": "}", - }, - Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, - }, - "range": Array [ - 20, - 21, - ], - "type": "Punctuator", - "value": "}", - }, - Object { - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 21, - "line": 1, - }, - }, - "range": Array [ - 21, - 22, - ], - "type": "Punctuator", - "value": ";", - }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/classes/class-two-methods-three-semi.src 1`] = ` -Object { - "body": Array [ + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/classes/class-method-named-static.src 1`] = ` +Object { + "body": Array [ Object { "body": Object { "body": Array [ Object { "computed": false, "key": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 10, - 11, - ], - "type": "Identifier", - }, - "kind": "method", - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "range": Array [ - 10, - 15, - ], - "static": false, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "range": Array [ - 13, - 15, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, "loc": Object { "end": Object { "column": 15, "line": 1, }, "start": Object { - "column": 11, + "column": 9, "line": 1, }, }, - "params": Array [], + "name": "static", "range": Array [ - 11, + 9, 15, ], - "type": "FunctionExpression", - }, - }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "name": "b", - "range": Array [ - 16, - 17, - ], "type": "Identifier", }, "kind": "method", "loc": Object { "end": Object { - "column": 21, + "column": 19, "line": 1, }, "start": Object { - "column": 16, + "column": 9, "line": 1, }, }, "range": Array [ - 16, - 21, + 9, + 19, ], "static": false, "type": "MethodDefinition", @@ -21775,17 +21667,17 @@ Object { "body": Array [], "loc": Object { "end": Object { - "column": 21, + "column": 19, "line": 1, }, "start": Object { - "column": 19, + "column": 17, "line": 1, }, }, "range": Array [ + 17, 19, - 21, ], "type": "BlockStatement", }, @@ -21794,18 +21686,18 @@ Object { "id": null, "loc": Object { "end": Object { - "column": 21, + "column": 19, "line": 1, }, "start": Object { - "column": 17, + "column": 15, "line": 1, }, }, "params": Array [], "range": Array [ - 17, - 21, + 15, + 19, ], "type": "FunctionExpression", }, @@ -21813,7 +21705,7 @@ Object { ], "loc": Object { "end": Object { - "column": 23, + "column": 21, "line": 1, }, "start": Object { @@ -21823,7 +21715,7 @@ Object { }, "range": Array [ 8, - 23, + 21, ], "type": "ClassBody", }, @@ -21847,7 +21739,7 @@ Object { }, "loc": Object { "end": Object { - "column": 23, + "column": 21, "line": 1, }, "start": Object { @@ -21857,7 +21749,7 @@ Object { }, "range": Array [ 0, - 23, + 21, ], "superClass": null, "type": "ClassDeclaration", @@ -21865,24 +21757,24 @@ Object { Object { "loc": Object { "end": Object { - "column": 24, + "column": 22, "line": 1, }, "start": Object { - "column": 23, + "column": 21, "line": 1, }, }, "range": Array [ - 23, - 24, + 21, + 22, ], "type": "EmptyStatement", }, ], "loc": Object { "end": Object { - "column": 24, + "column": 22, "line": 1, }, "start": Object { @@ -21892,7 +21784,7 @@ Object { }, "range": Array [ 0, - 24, + 22, ], "sourceType": "script", "tokens": Array [ @@ -21953,7 +21845,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 10, + "column": 15, "line": 1, }, "start": Object { @@ -21963,100 +21855,10 @@ Object { }, "range": Array [ 9, - 10, - ], - "type": "Punctuator", - "value": ";", - }, - Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "range": Array [ - 10, - 11, - ], - "type": "Identifier", - "value": "a", - }, - Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "range": Array [ - 11, - 12, - ], - "type": "Punctuator", - "value": "(", - }, - Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "range": Array [ - 12, - 13, - ], - "type": "Punctuator", - "value": ")", - }, - Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "range": Array [ - 13, - 14, - ], - "type": "Punctuator", - "value": "{", - }, - Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "range": Array [ - 14, 15, ], - "type": "Punctuator", - "value": "}", + "type": "Keyword", + "value": "static", }, Object { "loc": Object { @@ -22074,7 +21876,7 @@ Object { 16, ], "type": "Punctuator", - "value": ";", + "value": "(", }, Object { "loc": Object { @@ -22091,8 +21893,8 @@ Object { 16, 17, ], - "type": "Identifier", - "value": "b", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { @@ -22110,7 +21912,7 @@ Object { 18, ], "type": "Punctuator", - "value": "(", + "value": "{", }, Object { "loc": Object { @@ -22128,7 +21930,7 @@ Object { 19, ], "type": "Punctuator", - "value": ")", + "value": "}", }, Object { "loc": Object { @@ -22146,7 +21948,7 @@ Object { 20, ], "type": "Punctuator", - "value": "{", + "value": ";", }, Object { "loc": Object { @@ -22184,48 +21986,12 @@ Object { "type": "Punctuator", "value": ";", }, - Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 22, - "line": 1, - }, - }, - "range": Array [ - 22, - 23, - ], - "type": "Punctuator", - "value": "}", - }, - Object { - "loc": Object { - "end": Object { - "column": 24, - "line": 1, - }, - "start": Object { - "column": 23, - "line": 1, - }, - }, - "range": Array [ - 23, - 24, - ], - "type": "Punctuator", - "value": ";", - }, ], "type": "Program", } `; -exports[`javascript fixtures/classes/class-two-methods-two-semi.src 1`] = ` +exports[`javascript fixtures/classes/class-method-named-with-space.src 1`] = ` Object { "body": Array [ Object { @@ -22236,7 +22002,7 @@ Object { "key": Object { "loc": Object { "end": Object { - "column": 10, + "column": 18, "line": 1, }, "start": Object { @@ -22244,17 +22010,17 @@ Object { "line": 1, }, }, - "name": "a", + "name": "withSpace", "range": Array [ 9, - 10, + 18, ], "type": "Identifier", }, "kind": "method", "loc": Object { "end": Object { - "column": 14, + "column": 24, "line": 1, }, "start": Object { @@ -22264,85 +22030,7 @@ Object { }, "range": Array [ 9, - 14, - ], - "static": false, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "range": Array [ - 12, - 14, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "params": Array [], - "range": Array [ - 10, - 14, - ], - "type": "FunctionExpression", - }, - }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "name": "b", - "range": Array [ - 15, - 16, - ], - "type": "Identifier", - }, - "kind": "method", - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "range": Array [ - 15, - 20, + 24, ], "static": false, "type": "MethodDefinition", @@ -22352,17 +22040,17 @@ Object { "body": Array [], "loc": Object { "end": Object { - "column": 20, + "column": 24, "line": 1, }, "start": Object { - "column": 18, + "column": 22, "line": 1, }, }, "range": Array [ - 18, - 20, + 22, + 24, ], "type": "BlockStatement", }, @@ -22371,18 +22059,18 @@ Object { "id": null, "loc": Object { "end": Object { - "column": 20, + "column": 24, "line": 1, }, "start": Object { - "column": 16, + "column": 19, "line": 1, }, }, "params": Array [], "range": Array [ - 16, - 20, + 19, + 24, ], "type": "FunctionExpression", }, @@ -22390,7 +22078,7 @@ Object { ], "loc": Object { "end": Object { - "column": 22, + "column": 25, "line": 1, }, "start": Object { @@ -22400,7 +22088,7 @@ Object { }, "range": Array [ 8, - 22, + 25, ], "type": "ClassBody", }, @@ -22424,7 +22112,7 @@ Object { }, "loc": Object { "end": Object { - "column": 22, + "column": 25, "line": 1, }, "start": Object { @@ -22434,33 +22122,16 @@ Object { }, "range": Array [ 0, - 22, + 25, ], "superClass": null, "type": "ClassDeclaration", }, - Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 22, - "line": 1, - }, - }, - "range": Array [ - 22, - 23, - ], - "type": "EmptyStatement", - }, ], "loc": Object { "end": Object { - "column": 23, - "line": 1, + "column": 0, + "line": 2, }, "start": Object { "column": 0, @@ -22469,7 +22140,7 @@ Object { }, "range": Array [ 0, - 23, + 26, ], "sourceType": "script", "tokens": Array [ @@ -22530,7 +22201,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 10, + "column": 18, "line": 1, }, "start": Object { @@ -22540,25 +22211,25 @@ Object { }, "range": Array [ 9, - 10, + 18, ], "type": "Identifier", - "value": "a", + "value": "withSpace", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 20, "line": 1, }, "start": Object { - "column": 10, + "column": 19, "line": 1, }, }, "range": Array [ - 10, - 11, + 19, + 20, ], "type": "Punctuator", "value": "(", @@ -22566,17 +22237,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 12, + "column": 21, "line": 1, }, "start": Object { - "column": 11, + "column": 20, "line": 1, }, }, "range": Array [ - 11, - 12, + 20, + 21, ], "type": "Punctuator", "value": ")", @@ -22584,17 +22255,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 13, + "column": 23, "line": 1, }, "start": Object { - "column": 12, + "column": 22, "line": 1, }, }, "range": Array [ - 12, - 13, + 22, + 23, ], "type": "Punctuator", "value": "{", @@ -22602,125 +22273,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 14, + "column": 24, "line": 1, }, "start": Object { - "column": 13, + "column": 23, "line": 1, }, }, "range": Array [ - 13, - 14, - ], - "type": "Punctuator", - "value": "}", - }, - Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "range": Array [ - 14, - 15, - ], - "type": "Punctuator", - "value": ";", - }, - Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "range": Array [ - 15, - 16, - ], - "type": "Identifier", - "value": "b", - }, - Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "range": Array [ - 16, - 17, - ], - "type": "Punctuator", - "value": "(", - }, - Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 17, - "line": 1, - }, - }, - "range": Array [ - 17, - 18, - ], - "type": "Punctuator", - "value": ")", - }, - Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, - }, - "range": Array [ - 18, - 19, - ], - "type": "Punctuator", - "value": "{", - }, - Object { - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 19, - "line": 1, - }, - }, - "range": Array [ - 19, - 20, + 23, + 24, ], "type": "Punctuator", "value": "}", @@ -22728,63 +22291,27 @@ Object { Object { "loc": Object { "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, - }, - "range": Array [ - 20, - 21, - ], - "type": "Punctuator", - "value": ";", - }, - Object { - "loc": Object { - "end": Object { - "column": 22, + "column": 25, "line": 1, }, "start": Object { - "column": 21, + "column": 24, "line": 1, }, }, "range": Array [ - 21, - 22, + 24, + 25, ], "type": "Punctuator", "value": "}", }, - Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 22, - "line": 1, - }, - }, - "range": Array [ - 22, - 23, - ], - "type": "Punctuator", - "value": ";", - }, ], "type": "Program", } `; -exports[`javascript fixtures/classes/class-two-static-methods-named-constructor.src 1`] = ` +exports[`javascript fixtures/classes/class-one-method.src 1`] = ` Object { "body": Array [ Object { @@ -22795,115 +22322,37 @@ Object { "key": Object { "loc": Object { "end": Object { - "column": 27, - "line": 1, + "column": 5, + "line": 2, }, "start": Object { - "column": 16, - "line": 1, + "column": 4, + "line": 2, }, }, - "name": "constructor", + "name": "a", "range": Array [ - 16, - 27, + 14, + 15, ], "type": "Identifier", }, "kind": "method", "loc": Object { "end": Object { - "column": 31, - "line": 1, - }, - "start": Object { "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 31, - ], - "static": true, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 31, - "line": 1, - }, - "start": Object { - "column": 29, - "line": 1, - }, - }, - "range": Array [ - 29, - 31, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 31, - "line": 1, - }, - "start": Object { - "column": 27, - "line": 1, - }, - }, - "params": Array [], - "range": Array [ - 27, - 31, - ], - "type": "FunctionExpression", - }, - }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 50, - "line": 1, - }, - "start": Object { - "column": 39, - "line": 1, - }, - }, - "name": "constructor", - "range": Array [ - 39, - 50, - ], - "type": "Identifier", - }, - "kind": "method", - "loc": Object { - "end": Object { - "column": 54, - "line": 1, + "line": 2, }, "start": Object { - "column": 32, - "line": 1, + "column": 4, + "line": 2, }, }, "range": Array [ - 32, - 54, + 14, + 19, ], - "static": true, + "static": false, "type": "MethodDefinition", "value": Object { "async": false, @@ -22911,17 +22360,17 @@ Object { "body": Array [], "loc": Object { "end": Object { - "column": 54, - "line": 1, + "column": 9, + "line": 2, }, "start": Object { - "column": 52, - "line": 1, + "column": 7, + "line": 2, }, }, "range": Array [ - 52, - 54, + 17, + 19, ], "type": "BlockStatement", }, @@ -22930,18 +22379,18 @@ Object { "id": null, "loc": Object { "end": Object { - "column": 54, - "line": 1, + "column": 9, + "line": 2, }, "start": Object { - "column": 50, - "line": 1, + "column": 5, + "line": 2, }, }, "params": Array [], "range": Array [ - 50, - 54, + 15, + 19, ], "type": "FunctionExpression", }, @@ -22949,8 +22398,8 @@ Object { ], "loc": Object { "end": Object { - "column": 55, - "line": 1, + "column": 1, + "line": 3, }, "start": Object { "column": 8, @@ -22959,7 +22408,7 @@ Object { }, "range": Array [ 8, - 55, + 21, ], "type": "ClassBody", }, @@ -22983,8 +22432,8 @@ Object { }, "loc": Object { "end": Object { - "column": 55, - "line": 1, + "column": 1, + "line": 3, }, "start": Object { "column": 0, @@ -22993,7 +22442,7 @@ Object { }, "range": Array [ 0, - 55, + 21, ], "superClass": null, "type": "ClassDeclaration", @@ -23001,25 +22450,25 @@ Object { Object { "loc": Object { "end": Object { - "column": 56, - "line": 1, + "column": 2, + "line": 3, }, "start": Object { - "column": 55, - "line": 1, + "column": 1, + "line": 3, }, }, "range": Array [ - 55, - 56, + 21, + 22, ], "type": "EmptyStatement", }, ], "loc": Object { "end": Object { - "column": 56, - "line": 1, + "column": 2, + "line": 3, }, "start": Object { "column": 0, @@ -23028,7 +22477,7 @@ Object { }, "range": Array [ 0, - 56, + 22, ], "sourceType": "script", "tokens": Array [ @@ -23089,53 +22538,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 15, - "line": 1, + "column": 5, + "line": 2, }, "start": Object { - "column": 9, - "line": 1, + "column": 4, + "line": 2, }, }, "range": Array [ - 9, + 14, 15, ], - "type": "Keyword", - "value": "static", - }, - Object { - "loc": Object { - "end": Object { - "column": 27, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "range": Array [ - 16, - 27, - ], "type": "Identifier", - "value": "constructor", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 28, - "line": 1, + "column": 6, + "line": 2, }, "start": Object { - "column": 27, - "line": 1, + "column": 5, + "line": 2, }, }, "range": Array [ - 27, - 28, + 15, + 16, ], "type": "Punctuator", "value": "(", @@ -23143,17 +22574,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 29, - "line": 1, + "column": 7, + "line": 2, }, "start": Object { - "column": 28, - "line": 1, + "column": 6, + "line": 2, }, }, "range": Array [ - 28, - 29, + 16, + 17, ], "type": "Punctuator", "value": ")", @@ -23161,17 +22592,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 30, - "line": 1, + "column": 8, + "line": 2, }, "start": Object { - "column": 29, - "line": 1, + "column": 7, + "line": 2, }, }, "range": Array [ - 29, - 30, + 17, + 18, ], "type": "Punctuator", "value": "{", @@ -23179,17 +22610,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 31, - "line": 1, + "column": 9, + "line": 2, }, "start": Object { - "column": 30, - "line": 1, + "column": 8, + "line": 2, }, }, "range": Array [ - 30, - 31, + 18, + 19, ], "type": "Punctuator", "value": "}", @@ -23197,107 +22628,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 38, - "line": 1, - }, - "start": Object { - "column": 32, - "line": 1, - }, - }, - "range": Array [ - 32, - 38, - ], - "type": "Keyword", - "value": "static", - }, - Object { - "loc": Object { - "end": Object { - "column": 50, - "line": 1, - }, - "start": Object { - "column": 39, - "line": 1, - }, - }, - "range": Array [ - 39, - 50, - ], - "type": "Identifier", - "value": "constructor", - }, - Object { - "loc": Object { - "end": Object { - "column": 51, - "line": 1, - }, - "start": Object { - "column": 50, - "line": 1, - }, - }, - "range": Array [ - 50, - 51, - ], - "type": "Punctuator", - "value": "(", - }, - Object { - "loc": Object { - "end": Object { - "column": 52, - "line": 1, - }, - "start": Object { - "column": 51, - "line": 1, - }, - }, - "range": Array [ - 51, - 52, - ], - "type": "Punctuator", - "value": ")", - }, - Object { - "loc": Object { - "end": Object { - "column": 53, - "line": 1, - }, - "start": Object { - "column": 52, - "line": 1, - }, - }, - "range": Array [ - 52, - 53, - ], - "type": "Punctuator", - "value": "{", - }, - Object { - "loc": Object { - "end": Object { - "column": 54, - "line": 1, + "column": 1, + "line": 3, }, "start": Object { - "column": 53, - "line": 1, + "column": 0, + "line": 3, }, }, "range": Array [ - 53, - 54, + 20, + 21, ], "type": "Punctuator", "value": "}", @@ -23305,45 +22646,27 @@ Object { Object { "loc": Object { "end": Object { - "column": 55, - "line": 1, + "column": 2, + "line": 3, }, "start": Object { - "column": 54, - "line": 1, + "column": 1, + "line": 3, }, }, "range": Array [ - 54, - 55, + 21, + 22, ], "type": "Punctuator", - "value": "}", - }, - Object { - "loc": Object { - "end": Object { - "column": 56, - "line": 1, - }, - "start": Object { - "column": 55, - "line": 1, - }, - }, - "range": Array [ - 55, - 56, - ], - "type": "Punctuator", - "value": ";", + "value": ";", }, ], "type": "Program", } `; -exports[`javascript fixtures/classes/class-with-constructor.src 1`] = ` +exports[`javascript fixtures/classes/class-one-method-super.src 1`] = ` Object { "body": Array [ Object { @@ -23354,55 +22677,108 @@ Object { "key": Object { "loc": Object { "end": Object { - "column": 20, - "line": 1, + "column": 5, + "line": 2, }, "start": Object { - "column": 9, - "line": 1, + "column": 4, + "line": 2, }, }, - "name": "constructor", + "name": "a", "range": Array [ - 9, - 20, + 14, + 15, ], "type": "Identifier", }, - "kind": "constructor", + "kind": "method", "loc": Object { "end": Object { - "column": 24, - "line": 1, + "column": 5, + "line": 4, }, "start": Object { - "column": 9, - "line": 1, + "column": 4, + "line": 2, }, }, "range": Array [ - 9, - 24, + 14, + 41, ], "static": false, "type": "MethodDefinition", "value": Object { "async": false, "body": Object { - "body": Array [], + "body": Array [ + Object { + "expression": Object { + "arguments": Array [], + "callee": Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 3, + }, + "start": Object { + "column": 8, + "line": 3, + }, + }, + "range": Array [ + 27, + 32, + ], + "type": "Super", + }, + "loc": Object { + "end": Object { + "column": 15, + "line": 3, + }, + "start": Object { + "column": 8, + "line": 3, + }, + }, + "range": Array [ + 27, + 34, + ], + "type": "CallExpression", + }, + "loc": Object { + "end": Object { + "column": 16, + "line": 3, + }, + "start": Object { + "column": 8, + "line": 3, + }, + }, + "range": Array [ + 27, + 35, + ], + "type": "ExpressionStatement", + }, + ], "loc": Object { "end": Object { - "column": 24, - "line": 1, + "column": 5, + "line": 4, }, "start": Object { - "column": 22, - "line": 1, + "column": 7, + "line": 2, }, }, "range": Array [ - 22, - 24, + 17, + 41, ], "type": "BlockStatement", }, @@ -23411,18 +22787,18 @@ Object { "id": null, "loc": Object { "end": Object { - "column": 24, - "line": 1, + "column": 5, + "line": 4, }, "start": Object { - "column": 20, - "line": 1, + "column": 5, + "line": 2, }, }, "params": Array [], "range": Array [ - 20, - 24, + 15, + 41, ], "type": "FunctionExpression", }, @@ -23430,8 +22806,8 @@ Object { ], "loc": Object { "end": Object { - "column": 25, - "line": 1, + "column": 1, + "line": 5, }, "start": Object { "column": 8, @@ -23440,7 +22816,7 @@ Object { }, "range": Array [ 8, - 25, + 43, ], "type": "ClassBody", }, @@ -23464,8 +22840,8 @@ Object { }, "loc": Object { "end": Object { - "column": 25, - "line": 1, + "column": 1, + "line": 5, }, "start": Object { "column": 0, @@ -23474,7 +22850,7 @@ Object { }, "range": Array [ 0, - 25, + 43, ], "superClass": null, "type": "ClassDeclaration", @@ -23482,25 +22858,25 @@ Object { Object { "loc": Object { "end": Object { - "column": 26, - "line": 1, + "column": 2, + "line": 5, }, "start": Object { - "column": 25, - "line": 1, + "column": 1, + "line": 5, }, }, "range": Array [ - 25, - 26, + 43, + 44, ], "type": "EmptyStatement", }, ], "loc": Object { "end": Object { - "column": 26, - "line": 1, + "column": 0, + "line": 6, }, "start": Object { "column": 0, @@ -23509,7 +22885,7 @@ Object { }, "range": Array [ 0, - 26, + 45, ], "sourceType": "script", "tokens": Array [ @@ -23570,35 +22946,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 20, - "line": 1, + "column": 5, + "line": 2, }, "start": Object { - "column": 9, - "line": 1, + "column": 4, + "line": 2, }, }, "range": Array [ - 9, - 20, + 14, + 15, ], "type": "Identifier", - "value": "constructor", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 21, - "line": 1, + "column": 6, + "line": 2, }, "start": Object { - "column": 20, - "line": 1, + "column": 5, + "line": 2, }, }, "range": Array [ - 20, - 21, + 15, + 16, ], "type": "Punctuator", "value": "(", @@ -23606,17 +22982,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 22, - "line": 1, + "column": 7, + "line": 2, }, "start": Object { - "column": 21, - "line": 1, + "column": 6, + "line": 2, }, }, "range": Array [ - 21, - 22, + 16, + 17, ], "type": "Punctuator", "value": ")", @@ -23624,17 +23000,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 23, - "line": 1, + "column": 8, + "line": 2, }, "start": Object { - "column": 22, - "line": 1, + "column": 7, + "line": 2, }, }, "range": Array [ - 22, - 23, + 17, + 18, ], "type": "Punctuator", "value": "{", @@ -23642,17 +23018,89 @@ Object { Object { "loc": Object { "end": Object { - "column": 24, - "line": 1, + "column": 13, + "line": 3, }, "start": Object { - "column": 23, - "line": 1, + "column": 8, + "line": 3, }, }, "range": Array [ - 23, - 24, + 27, + 32, + ], + "type": "Keyword", + "value": "super", + }, + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 3, + }, + "start": Object { + "column": 13, + "line": 3, + }, + }, + "range": Array [ + 32, + 33, + ], + "type": "Punctuator", + "value": "(", + }, + Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 3, + }, + "start": Object { + "column": 14, + "line": 3, + }, + }, + "range": Array [ + 33, + 34, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 3, + }, + "start": Object { + "column": 15, + "line": 3, + }, + }, + "range": Array [ + 34, + 35, + ], + "type": "Punctuator", + "value": ";", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 4, + }, + "start": Object { + "column": 4, + "line": 4, + }, + }, + "range": Array [ + 40, + 41, ], "type": "Punctuator", "value": "}", @@ -23660,17 +23108,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 25, - "line": 1, + "column": 1, + "line": 5, }, "start": Object { - "column": 24, - "line": 1, + "column": 0, + "line": 5, }, }, "range": Array [ - 24, - 25, + 42, + 43, ], "type": "Punctuator", "value": "}", @@ -23678,17 +23126,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 26, - "line": 1, + "column": 2, + "line": 5, }, "start": Object { - "column": 25, - "line": 1, + "column": 1, + "line": 5, }, }, "range": Array [ - 25, - 26, + 43, + 44, ], "type": "Punctuator", "value": ";", @@ -23698,7 +23146,7 @@ Object { } `; -exports[`javascript fixtures/classes/class-with-constructor-parameters.src 1`] = ` +exports[`javascript fixtures/classes/class-static-method.src 1`] = ` Object { "body": Array [ Object { @@ -23709,25 +23157,25 @@ Object { "key": Object { "loc": Object { "end": Object { - "column": 20, + "column": 17, "line": 1, }, "start": Object { - "column": 9, + "column": 16, "line": 1, }, }, - "name": "constructor", + "name": "a", "range": Array [ - 9, - 20, + 16, + 17, ], "type": "Identifier", }, - "kind": "constructor", + "kind": "method", "loc": Object { "end": Object { - "column": 32, + "column": 21, "line": 1, }, "start": Object { @@ -23737,9 +23185,9 @@ Object { }, "range": Array [ 9, - 32, + 21, ], - "static": false, + "static": true, "type": "MethodDefinition", "value": Object { "async": false, @@ -23747,17 +23195,17 @@ Object { "body": Array [], "loc": Object { "end": Object { - "column": 32, + "column": 21, "line": 1, }, "start": Object { - "column": 30, + "column": 19, "line": 1, }, }, "range": Array [ - 30, - 32, + 19, + 21, ], "type": "BlockStatement", }, @@ -23766,55 +23214,18 @@ Object { "id": null, "loc": Object { "end": Object { - "column": 32, + "column": 21, "line": 1, }, "start": Object { - "column": 20, + "column": 17, "line": 1, }, }, - "params": Array [ - Object { - "loc": Object { - "end": Object { - "column": 24, - "line": 1, - }, - "start": Object { - "column": 21, - "line": 1, - }, - }, - "name": "foo", - "range": Array [ - 21, - 24, - ], - "type": "Identifier", - }, - Object { - "loc": Object { - "end": Object { - "column": 29, - "line": 1, - }, - "start": Object { - "column": 26, - "line": 1, - }, - }, - "name": "bar", - "range": Array [ - 26, - 29, - ], - "type": "Identifier", - }, - ], + "params": Array [], "range": Array [ - 20, - 32, + 17, + 21, ], "type": "FunctionExpression", }, @@ -23822,7 +23233,7 @@ Object { ], "loc": Object { "end": Object { - "column": 33, + "column": 23, "line": 1, }, "start": Object { @@ -23832,7 +23243,7 @@ Object { }, "range": Array [ 8, - 33, + 23, ], "type": "ClassBody", }, @@ -23856,7 +23267,7 @@ Object { }, "loc": Object { "end": Object { - "column": 33, + "column": 23, "line": 1, }, "start": Object { @@ -23866,16 +23277,33 @@ Object { }, "range": Array [ 0, - 33, + 23, ], "superClass": null, "type": "ClassDeclaration", }, + Object { + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "range": Array [ + 23, + 24, + ], + "type": "EmptyStatement", + }, ], "loc": Object { "end": Object { - "column": 0, - "line": 2, + "column": 24, + "line": 1, }, "start": Object { "column": 0, @@ -23884,7 +23312,7 @@ Object { }, "range": Array [ 0, - 34, + 24, ], "sourceType": "script", "tokens": Array [ @@ -23945,7 +23373,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 20, + "column": 15, "line": 1, }, "start": Object { @@ -23955,133 +23383,133 @@ Object { }, "range": Array [ 9, - 20, + 15, ], - "type": "Identifier", - "value": "constructor", + "type": "Keyword", + "value": "static", }, Object { "loc": Object { "end": Object { - "column": 21, + "column": 17, "line": 1, }, "start": Object { - "column": 20, + "column": 16, "line": 1, }, }, "range": Array [ - 20, - 21, + 16, + 17, ], - "type": "Punctuator", - "value": "(", + "type": "Identifier", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 24, + "column": 18, "line": 1, }, "start": Object { - "column": 21, + "column": 17, "line": 1, }, }, "range": Array [ - 21, - 24, + 17, + 18, ], - "type": "Identifier", - "value": "foo", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 25, + "column": 19, "line": 1, }, "start": Object { - "column": 24, + "column": 18, "line": 1, }, }, "range": Array [ - 24, - 25, + 18, + 19, ], "type": "Punctuator", - "value": ",", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 29, + "column": 20, "line": 1, }, "start": Object { - "column": 26, + "column": 19, "line": 1, }, }, "range": Array [ - 26, - 29, + 19, + 20, ], - "type": "Identifier", - "value": "bar", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 30, + "column": 21, "line": 1, }, "start": Object { - "column": 29, + "column": 20, "line": 1, }, }, "range": Array [ - 29, - 30, + 20, + 21, ], "type": "Punctuator", - "value": ")", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 31, + "column": 22, "line": 1, }, "start": Object { - "column": 30, + "column": 21, "line": 1, }, }, "range": Array [ - 30, - 31, + 21, + 22, ], "type": "Punctuator", - "value": "{", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 32, + "column": 23, "line": 1, }, "start": Object { - "column": 31, + "column": 22, "line": 1, }, }, "range": Array [ - 31, - 32, + 22, + 23, ], "type": "Punctuator", "value": "}", @@ -24089,56 +23517,57 @@ Object { Object { "loc": Object { "end": Object { - "column": 33, + "column": 24, "line": 1, }, "start": Object { - "column": 32, + "column": 23, "line": 1, }, }, "range": Array [ - 32, - 33, + 23, + 24, ], "type": "Punctuator", - "value": "}", + "value": ";", }, ], "type": "Program", } `; -exports[`javascript fixtures/classes/class-with-constructor-with-space.src 1`] = ` +exports[`javascript fixtures/classes/class-static-method-named-prototype.src 1`] = ` Object { "body": Array [ Object { "body": Object { "body": Array [ Object { - "computed": false, + "computed": true, "key": Object { "loc": Object { "end": Object { - "column": 20, + "column": 28, "line": 1, }, "start": Object { - "column": 9, + "column": 17, "line": 1, }, }, - "name": "constructor", "range": Array [ - 9, - 20, + 17, + 28, ], - "type": "Identifier", + "raw": "\\"prototype\\"", + "type": "Literal", + "value": "prototype", }, - "kind": "constructor", + "kind": "method", "loc": Object { "end": Object { - "column": 25, + "column": 33, "line": 1, }, "start": Object { @@ -24148,9 +23577,9 @@ Object { }, "range": Array [ 9, - 25, + 33, ], - "static": false, + "static": true, "type": "MethodDefinition", "value": Object { "async": false, @@ -24158,17 +23587,17 @@ Object { "body": Array [], "loc": Object { "end": Object { - "column": 25, + "column": 33, "line": 1, }, "start": Object { - "column": 23, + "column": 31, "line": 1, }, }, "range": Array [ - 23, - 25, + 31, + 33, ], "type": "BlockStatement", }, @@ -24177,18 +23606,18 @@ Object { "id": null, "loc": Object { "end": Object { - "column": 25, + "column": 33, "line": 1, }, "start": Object { - "column": 21, + "column": 29, "line": 1, }, }, "params": Array [], "range": Array [ - 21, - 25, + 29, + 33, ], "type": "FunctionExpression", }, @@ -24196,7 +23625,7 @@ Object { ], "loc": Object { "end": Object { - "column": 26, + "column": 34, "line": 1, }, "start": Object { @@ -24206,7 +23635,7 @@ Object { }, "range": Array [ 8, - 26, + 34, ], "type": "ClassBody", }, @@ -24230,7 +23659,7 @@ Object { }, "loc": Object { "end": Object { - "column": 26, + "column": 34, "line": 1, }, "start": Object { @@ -24240,7 +23669,7 @@ Object { }, "range": Array [ 0, - 26, + 34, ], "superClass": null, "type": "ClassDeclaration", @@ -24248,25 +23677,25 @@ Object { Object { "loc": Object { "end": Object { - "column": 27, + "column": 35, "line": 1, }, "start": Object { - "column": 26, + "column": 34, "line": 1, }, }, "range": Array [ - 26, - 27, + 34, + 35, ], "type": "EmptyStatement", }, ], "loc": Object { "end": Object { - "column": 0, - "line": 2, + "column": 35, + "line": 1, }, "start": Object { "column": 0, @@ -24275,7 +23704,7 @@ Object { }, "range": Array [ 0, - 28, + 35, ], "sourceType": "script", "tokens": Array [ @@ -24336,7 +23765,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 20, + "column": 15, "line": 1, }, "start": Object { @@ -24346,25 +23775,79 @@ Object { }, "range": Array [ 9, - 20, + 15, ], - "type": "Identifier", - "value": "constructor", + "type": "Keyword", + "value": "static", }, Object { "loc": Object { "end": Object { - "column": 22, + "column": 17, "line": 1, }, "start": Object { - "column": 21, + "column": 16, "line": 1, }, }, "range": Array [ - 21, - 22, + 16, + 17, + ], + "type": "Punctuator", + "value": "[", + }, + Object { + "loc": Object { + "end": Object { + "column": 28, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "range": Array [ + 17, + 28, + ], + "type": "String", + "value": "\\"prototype\\"", + }, + Object { + "loc": Object { + "end": Object { + "column": 29, + "line": 1, + }, + "start": Object { + "column": 28, + "line": 1, + }, + }, + "range": Array [ + 28, + 29, + ], + "type": "Punctuator", + "value": "]", + }, + Object { + "loc": Object { + "end": Object { + "column": 30, + "line": 1, + }, + "start": Object { + "column": 29, + "line": 1, + }, + }, + "range": Array [ + 29, + 30, ], "type": "Punctuator", "value": "(", @@ -24372,17 +23855,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 23, + "column": 31, "line": 1, }, "start": Object { - "column": 22, + "column": 30, "line": 1, }, }, "range": Array [ - 22, - 23, + 30, + 31, ], "type": "Punctuator", "value": ")", @@ -24390,17 +23873,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 24, + "column": 32, "line": 1, }, "start": Object { - "column": 23, + "column": 31, "line": 1, }, }, "range": Array [ - 23, - 24, + 31, + 32, ], "type": "Punctuator", "value": "{", @@ -24408,17 +23891,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 25, + "column": 33, "line": 1, }, "start": Object { - "column": 24, + "column": 32, "line": 1, }, }, "range": Array [ - 24, - 25, + 32, + 33, ], "type": "Punctuator", "value": "}", @@ -24426,17 +23909,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 26, + "column": 34, "line": 1, }, "start": Object { - "column": 25, + "column": 33, "line": 1, }, }, "range": Array [ - 25, - 26, + 33, + 34, ], "type": "Punctuator", "value": "}", @@ -24444,17 +23927,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 27, + "column": 35, "line": 1, }, "start": Object { - "column": 26, + "column": 34, "line": 1, }, }, "range": Array [ - 26, - 27, + 34, + 35, ], "type": "Punctuator", "value": ";", @@ -24464,120 +23947,125 @@ Object { } `; -exports[`javascript fixtures/classes/derived-class-assign-to-var.src 1`] = ` +exports[`javascript fixtures/classes/class-static-method-named-static.src 1`] = ` Object { "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 4, - 5, - ], - "type": "Identifier", - }, - "init": Object { - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 27, - "line": 1, - }, - "start": Object { - "column": 25, - "line": 1, - }, - }, - "range": Array [ - 25, - 27, - ], - "type": "ClassBody", - }, - "id": Object { + "body": Object { + "body": Array [ + Object { + "computed": false, + "key": Object { "loc": Object { "end": Object { - "column": 15, + "column": 22, "line": 1, }, "start": Object { - "column": 14, + "column": 16, "line": 1, }, }, - "name": "A", + "name": "static", "range": Array [ - 14, - 15, + 16, + 22, ], "type": "Identifier", }, + "kind": "method", "loc": Object { "end": Object { - "column": 27, + "column": 26, "line": 1, }, "start": Object { - "column": 8, + "column": 9, "line": 1, }, }, "range": Array [ - 8, - 27, + 9, + 26, ], - "superClass": Object { + "static": true, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, + }, + }, + "range": Array [ + 24, + 26, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, "loc": Object { "end": Object { - "column": 25, + "column": 26, "line": 1, }, "start": Object { - "column": 24, + "column": 22, "line": 1, }, }, + "params": Array [], "range": Array [ - 24, - 25, + 22, + 26, ], - "raw": "0", - "type": "Literal", - "value": 0, + "type": "FunctionExpression", }, - "type": "ClassExpression", }, - "loc": Object { - "end": Object { - "column": 27, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, + ], + "loc": Object { + "end": Object { + "column": 28, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, }, - "range": Array [ - 4, - 27, - ], - "type": "VariableDeclarator", }, - ], - "kind": "var", + "range": Array [ + 8, + 28, + ], + "type": "ClassBody", + }, + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "A", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { "column": 28, @@ -24592,12 +24080,30 @@ Object { 0, 28, ], - "type": "VariableDeclaration", + "superClass": null, + "type": "ClassDeclaration", + }, + Object { + "loc": Object { + "end": Object { + "column": 29, + "line": 1, + }, + "start": Object { + "column": 28, + "line": 1, + }, + }, + "range": Array [ + 28, + 29, + ], + "type": "EmptyStatement", }, ], "loc": Object { "end": Object { - "column": 28, + "column": 29, "line": 1, }, "start": Object { @@ -24607,14 +24113,14 @@ Object { }, "range": Array [ 0, - 28, + 29, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, + "column": 5, "line": 1, }, "start": Object { @@ -24624,82 +24130,82 @@ Object { }, "range": Array [ 0, - 3, + 5, ], "type": "Keyword", - "value": "var", + "value": "class", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 7, "line": 1, }, "start": Object { - "column": 4, + "column": 6, "line": 1, }, }, "range": Array [ - 4, - 5, + 6, + 7, ], "type": "Identifier", - "value": "x", + "value": "A", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 9, "line": 1, }, "start": Object { - "column": 6, + "column": 8, "line": 1, }, }, "range": Array [ - 6, - 7, + 8, + 9, ], "type": "Punctuator", - "value": "=", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 15, "line": 1, }, "start": Object { - "column": 8, + "column": 9, "line": 1, }, }, "range": Array [ - 8, - 13, + 9, + 15, ], "type": "Keyword", - "value": "class", + "value": "static", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 22, "line": 1, }, "start": Object { - "column": 14, + "column": 16, "line": 1, }, }, "range": Array [ - 14, - 15, + 16, + 22, ], - "type": "Identifier", - "value": "A", + "type": "Keyword", + "value": "static", }, Object { "loc": Object { @@ -24708,16 +24214,34 @@ Object { "line": 1, }, "start": Object { - "column": 16, + "column": 22, "line": 1, }, }, "range": Array [ - 16, + 22, 23, ], - "type": "Keyword", - "value": "extends", + "type": "Punctuator", + "value": "(", + }, + Object { + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "range": Array [ + 23, + 24, + ], + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { @@ -24734,8 +24258,8 @@ Object { 24, 25, ], - "type": "Numeric", - "value": "0", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { @@ -24753,7 +24277,7 @@ Object { 26, ], "type": "Punctuator", - "value": "{", + "value": "}", }, Object { "loc": Object { @@ -24771,7 +24295,7 @@ Object { 27, ], "type": "Punctuator", - "value": "}", + "value": ";", }, Object { "loc": Object { @@ -24789,93 +24313,364 @@ Object { 28, ], "type": "Punctuator", - "value": ";", + "value": "}", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/classes/derived-class-expression.src 1`] = ` -Object { - "body": Array [ Object { - "expression": Object { - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "range": Array [ - 16, - 18, - ], - "type": "ClassBody", - }, - "id": null, - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 1, - "line": 1, - }, - }, - "range": Array [ - 1, - 18, - ], - "superClass": Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "range": Array [ - 15, - 16, - ], - "raw": "0", - "type": "Literal", - "value": 0, - }, - "type": "ClassExpression", - }, "loc": Object { "end": Object { - "column": 20, + "column": 29, "line": 1, }, "start": Object { - "column": 0, + "column": 28, "line": 1, }, }, "range": Array [ - 0, - 20, + 28, + 29, ], - "type": "ExpressionStatement", + "type": "Punctuator", + "value": ";", }, ], - "loc": Object { - "end": Object { - "column": 20, - "line": 1, + "type": "Program", +} +`; + +exports[`javascript fixtures/classes/class-static-methods-and-accessor-properties.src 1`] = ` +Object { + "body": Array [ + Object { + "body": Object { + "body": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 16, + 17, + ], + "type": "Identifier", + }, + "kind": "method", + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 21, + ], + "static": true, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 19, + "line": 1, + }, + }, + "range": Array [ + 19, + 21, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "params": Array [], + "range": Array [ + 17, + 21, + ], + "type": "FunctionExpression", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 34, + "line": 1, + }, + "start": Object { + "column": 33, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 33, + 34, + ], + "type": "Identifier", + }, + "kind": "get", + "loc": Object { + "end": Object { + "column": 38, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "range": Array [ + 22, + 38, + ], + "static": true, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 38, + "line": 1, + }, + "start": Object { + "column": 36, + "line": 1, + }, + }, + "range": Array [ + 36, + 38, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 38, + "line": 1, + }, + "start": Object { + "column": 34, + "line": 1, + }, + }, + "params": Array [], + "range": Array [ + 34, + 38, + ], + "type": "FunctionExpression", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 51, + "line": 1, + }, + "start": Object { + "column": 50, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 50, + 51, + ], + "type": "Identifier", + }, + "kind": "set", + "loc": Object { + "end": Object { + "column": 56, + "line": 1, + }, + "start": Object { + "column": 39, + "line": 1, + }, + }, + "range": Array [ + 39, + 56, + ], + "static": true, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 56, + "line": 1, + }, + "start": Object { + "column": 54, + "line": 1, + }, + }, + "range": Array [ + 54, + 56, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 56, + "line": 1, + }, + "start": Object { + "column": 51, + "line": 1, + }, + }, + "params": Array [ + Object { + "loc": Object { + "end": Object { + "column": 53, + "line": 1, + }, + "start": Object { + "column": 52, + "line": 1, + }, + }, + "name": "b", + "range": Array [ + 52, + 53, + ], + "type": "Identifier", + }, + ], + "range": Array [ + 51, + 56, + ], + "type": "FunctionExpression", + }, + }, + ], + "loc": Object { + "end": Object { + "column": 58, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, + 58, + ], + "type": "ClassBody", + }, + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "A", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 58, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 58, + ], + "superClass": null, + "type": "ClassDeclaration", + }, + Object { + "loc": Object { + "end": Object { + "column": 59, + "line": 1, + }, + "start": Object { + "column": 58, + "line": 1, + }, + }, + "range": Array [ + 58, + 59, + ], + "type": "EmptyStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 59, + "line": 1, }, "start": Object { "column": 0, @@ -24884,14 +24679,14 @@ Object { }, "range": Array [ 0, - 20, + 59, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, + "column": 5, "line": 1, }, "start": Object { @@ -24901,64 +24696,64 @@ Object { }, "range": Array [ 0, - 1, + 5, ], - "type": "Punctuator", - "value": "(", + "type": "Keyword", + "value": "class", }, Object { "loc": Object { "end": Object { - "column": 6, + "column": 7, "line": 1, }, "start": Object { - "column": 1, + "column": 6, "line": 1, }, }, "range": Array [ - 1, 6, + 7, ], - "type": "Keyword", - "value": "class", + "type": "Identifier", + "value": "A", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 9, "line": 1, }, "start": Object { - "column": 7, + "column": 8, "line": 1, }, }, "range": Array [ - 7, - 14, + 8, + 9, ], - "type": "Keyword", - "value": "extends", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 15, "line": 1, }, "start": Object { - "column": 15, + "column": 9, "line": 1, }, }, "range": Array [ + 9, 15, - 16, ], - "type": "Numeric", - "value": "0", + "type": "Keyword", + "value": "static", }, Object { "loc": Object { @@ -24975,8 +24770,8 @@ Object { 16, 17, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "a", }, Object { "loc": Object { @@ -24994,7 +24789,7 @@ Object { 18, ], "type": "Punctuator", - "value": "}", + "value": "(", }, Object { "loc": Object { @@ -25030,340 +24825,274 @@ Object { 20, ], "type": "Punctuator", - "value": ";", + "value": "{", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/classes/empty-class.src 1`] = ` -Object { - "body": Array [ Object { - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "range": Array [ - 8, - 10, - ], - "type": "ClassBody", - }, - "id": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "name": "A", - "range": Array [ - 6, - 7, - ], - "type": "Identifier", - }, "loc": Object { "end": Object { - "column": 10, + "column": 21, "line": 1, }, "start": Object { - "column": 0, + "column": 20, "line": 1, }, }, "range": Array [ - 0, - 10, + 20, + 21, ], - "superClass": null, - "type": "ClassDeclaration", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 28, "line": 1, }, "start": Object { - "column": 10, + "column": 22, "line": 1, }, }, "range": Array [ - 10, - 11, + 22, + 28, ], - "type": "EmptyStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Keyword", + "value": "static", }, - }, - "range": Array [ - 0, - 11, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 32, "line": 1, }, "start": Object { - "column": 0, + "column": 29, "line": 1, }, }, "range": Array [ - 0, - 5, + 29, + 32, ], - "type": "Keyword", - "value": "class", + "type": "Identifier", + "value": "get", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 34, "line": 1, }, "start": Object { - "column": 6, + "column": 33, "line": 1, }, }, "range": Array [ - 6, - 7, + 33, + 34, ], "type": "Identifier", - "value": "A", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 35, "line": 1, }, "start": Object { - "column": 8, + "column": 34, "line": 1, }, }, "range": Array [ - 8, - 9, + 34, + 35, ], "type": "Punctuator", - "value": "{", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 36, "line": 1, }, "start": Object { - "column": 9, + "column": 35, "line": 1, }, }, "range": Array [ - 9, - 10, + 35, + 36, ], "type": "Punctuator", - "value": "}", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 37, "line": 1, }, "start": Object { - "column": 10, + "column": 36, "line": 1, }, }, "range": Array [ - 10, - 11, + 36, + 37, ], "type": "Punctuator", - "value": ";", + "value": "{", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/classes/empty-class-double-semi.src 1`] = ` -Object { - "body": Array [ Object { - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, + "loc": Object { + "end": Object { + "column": 38, + "line": 1, }, - "range": Array [ - 8, - 10, - ], - "type": "ClassBody", - }, - "id": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, + "start": Object { + "column": 37, + "line": 1, }, - "name": "A", - "range": Array [ - 6, - 7, - ], - "type": "Identifier", }, + "range": Array [ + 37, + 38, + ], + "type": "Punctuator", + "value": "}", + }, + Object { "loc": Object { "end": Object { - "column": 10, + "column": 45, "line": 1, }, "start": Object { - "column": 0, + "column": 39, "line": 1, }, }, "range": Array [ - 0, - 10, + 39, + 45, ], - "superClass": null, - "type": "ClassDeclaration", + "type": "Keyword", + "value": "static", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 49, "line": 1, }, "start": Object { - "column": 10, + "column": 46, "line": 1, }, }, "range": Array [ - 10, - 11, + 46, + 49, ], - "type": "EmptyStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 11, - "line": 1, + "type": "Identifier", + "value": "set", }, - "start": Object { - "column": 0, - "line": 1, + Object { + "loc": Object { + "end": Object { + "column": 51, + "line": 1, + }, + "start": Object { + "column": 50, + "line": 1, + }, + }, + "range": Array [ + 50, + 51, + ], + "type": "Identifier", + "value": "a", }, - }, - "range": Array [ - 0, - 11, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 52, "line": 1, }, "start": Object { - "column": 0, + "column": 51, "line": 1, }, }, "range": Array [ - 0, - 5, + 51, + 52, ], - "type": "Keyword", - "value": "class", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 53, "line": 1, }, "start": Object { - "column": 6, + "column": 52, "line": 1, }, }, "range": Array [ - 6, - 7, + 52, + 53, ], "type": "Identifier", - "value": "A", + "value": "b", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 54, "line": 1, }, "start": Object { - "column": 8, + "column": 53, "line": 1, }, }, "range": Array [ - 8, - 9, + 53, + 54, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 55, + "line": 1, + }, + "start": Object { + "column": 54, + "line": 1, + }, + }, + "range": Array [ + 54, + 55, ], "type": "Punctuator", "value": "{", @@ -25371,17 +25100,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 10, + "column": 56, "line": 1, }, "start": Object { - "column": 9, + "column": 55, "line": 1, }, }, "range": Array [ - 9, - 10, + 55, + 56, ], "type": "Punctuator", "value": "}", @@ -25389,17 +25118,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 11, + "column": 58, "line": 1, }, "start": Object { - "column": 10, + "column": 57, "line": 1, }, }, "range": Array [ - 10, - 11, + 57, + 58, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 59, + "line": 1, + }, + "start": Object { + "column": 58, + "line": 1, + }, + }, + "range": Array [ + 58, + 59, ], "type": "Punctuator", "value": ";", @@ -25409,15 +25156,172 @@ Object { } `; -exports[`javascript fixtures/classes/empty-class-semi.src 1`] = ` +exports[`javascript fixtures/classes/class-two-computed-static-methods.src 1`] = ` Object { "body": Array [ Object { "body": Object { - "body": Array [], + "body": Array [ + Object { + "computed": true, + "key": Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 16, + 17, + ], + "type": "Identifier", + }, + "kind": "method", + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 22, + ], + "static": true, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "range": Array [ + 20, + 22, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "params": Array [], + "range": Array [ + 18, + 22, + ], + "type": "FunctionExpression", + }, + }, + Object { + "computed": true, + "key": Object { + "loc": Object { + "end": Object { + "column": 32, + "line": 1, + }, + "start": Object { + "column": 31, + "line": 1, + }, + }, + "name": "b", + "range": Array [ + 31, + 32, + ], + "type": "Identifier", + }, + "kind": "method", + "loc": Object { + "end": Object { + "column": 37, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, + }, + }, + "range": Array [ + 24, + 37, + ], + "static": true, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 37, + "line": 1, + }, + "start": Object { + "column": 35, + "line": 1, + }, + }, + "range": Array [ + 35, + 37, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 37, + "line": 1, + }, + "start": Object { + "column": 33, + "line": 1, + }, + }, + "params": Array [], + "range": Array [ + 33, + 37, + ], + "type": "FunctionExpression", + }, + }, + ], "loc": Object { "end": Object { - "column": 11, + "column": 38, "line": 1, }, "start": Object { @@ -25427,7 +25331,7 @@ Object { }, "range": Array [ 8, - 11, + 38, ], "type": "ClassBody", }, @@ -25451,7 +25355,7 @@ Object { }, "loc": Object { "end": Object { - "column": 11, + "column": 38, "line": 1, }, "start": Object { @@ -25461,7 +25365,7 @@ Object { }, "range": Array [ 0, - 11, + 38, ], "superClass": null, "type": "ClassDeclaration", @@ -25469,24 +25373,24 @@ Object { Object { "loc": Object { "end": Object { - "column": 12, + "column": 39, "line": 1, }, "start": Object { - "column": 11, + "column": 38, "line": 1, }, }, "range": Array [ - 11, - 12, + 38, + 39, ], "type": "EmptyStatement", }, ], "loc": Object { "end": Object { - "column": 12, + "column": 39, "line": 1, }, "start": Object { @@ -25496,7 +25400,7 @@ Object { }, "range": Array [ 0, - 12, + 39, ], "sourceType": "script", "tokens": Array [ @@ -25557,7 +25461,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 10, + "column": 15, "line": 1, }, "start": Object { @@ -25567,416 +25471,313 @@ Object { }, "range": Array [ 9, - 10, + 15, ], - "type": "Punctuator", - "value": ";", + "type": "Keyword", + "value": "static", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 16, "line": 1, }, "start": Object { - "column": 10, + "column": 15, "line": 1, }, }, "range": Array [ - 10, - 11, + 15, + 16, ], "type": "Punctuator", - "value": "}", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 17, "line": 1, }, "start": Object { - "column": 11, + "column": 16, "line": 1, }, }, "range": Array [ - 11, - 12, + 16, + 17, ], - "type": "Punctuator", - "value": ";", + "type": "Identifier", + "value": "a", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/classes/empty-literal-derived-class.src 1`] = ` -Object { - "body": Array [ Object { - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, + "loc": Object { + "end": Object { + "column": 18, + "line": 1, }, - "range": Array [ - 18, - 20, - ], - "type": "ClassBody", - }, - "id": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, + "start": Object { + "column": 17, + "line": 1, }, - "name": "A", - "range": Array [ - 6, - 7, - ], - "type": "Identifier", }, + "range": Array [ + 17, + 18, + ], + "type": "Punctuator", + "value": "]", + }, + Object { "loc": Object { "end": Object { - "column": 20, + "column": 19, "line": 1, }, "start": Object { - "column": 0, + "column": 18, "line": 1, }, }, "range": Array [ - 0, - 20, + 18, + 19, ], - "superClass": Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "range": Array [ - 16, - 17, - ], - "raw": "0", - "type": "Literal", - "value": 0, - }, - "type": "ClassDeclaration", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 21, + "column": 20, "line": 1, }, "start": Object { - "column": 20, + "column": 19, "line": 1, }, }, "range": Array [ + 19, 20, - 21, ], - "type": "EmptyStatement", + "type": "Punctuator", + "value": ")", }, - ], - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 21, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 21, "line": 1, }, "start": Object { - "column": 0, + "column": 20, "line": 1, }, }, "range": Array [ - 0, - 5, + 20, + 21, ], - "type": "Keyword", - "value": "class", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 22, "line": 1, }, "start": Object { - "column": 6, + "column": 21, "line": 1, }, }, "range": Array [ - 6, - 7, + 21, + 22, ], - "type": "Identifier", - "value": "A", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 23, "line": 1, }, "start": Object { - "column": 8, + "column": 22, "line": 1, }, }, "range": Array [ - 8, - 15, + 22, + 23, ], - "type": "Keyword", - "value": "extends", + "type": "Punctuator", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 30, "line": 1, }, "start": Object { - "column": 16, + "column": 24, "line": 1, }, }, "range": Array [ - 16, - 17, + 24, + 30, ], - "type": "Numeric", - "value": "0", + "type": "Keyword", + "value": "static", }, Object { "loc": Object { "end": Object { - "column": 19, + "column": 31, "line": 1, }, "start": Object { - "column": 18, + "column": 30, "line": 1, }, }, "range": Array [ - 18, - 19, + 30, + 31, ], "type": "Punctuator", - "value": "{", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 20, + "column": 32, "line": 1, }, "start": Object { - "column": 19, + "column": 31, "line": 1, }, }, "range": Array [ - 19, - 20, + 31, + 32, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "b", }, Object { "loc": Object { "end": Object { - "column": 21, + "column": 33, "line": 1, }, "start": Object { - "column": 20, + "column": 32, "line": 1, }, }, "range": Array [ - 20, - 21, + 32, + 33, ], "type": "Punctuator", - "value": ";", + "value": "]", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/classes/invalid-class-declaration.src 1`] = ` -Object { - "body": Array [ Object { - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "range": Array [ - 6, - 8, - ], - "type": "ClassBody", - }, - "id": null, "loc": Object { "end": Object { - "column": 8, + "column": 34, "line": 1, }, "start": Object { - "column": 0, + "column": 33, "line": 1, }, }, "range": Array [ - 0, - 8, + 33, + 34, ], - "superClass": null, - "type": "ClassDeclaration", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 35, "line": 1, }, "start": Object { - "column": 8, + "column": 34, "line": 1, }, }, "range": Array [ - 8, - 9, + 34, + 35, ], - "type": "EmptyStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Punctuator", + "value": ")", }, - }, - "range": Array [ - 0, - 10, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 36, "line": 1, }, "start": Object { - "column": 0, + "column": 35, "line": 1, }, }, "range": Array [ - 0, - 5, + 35, + 36, ], - "type": "Keyword", - "value": "class", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 37, "line": 1, }, "start": Object { - "column": 6, + "column": 36, "line": 1, }, }, "range": Array [ - 6, - 7, + 36, + 37, ], "type": "Punctuator", - "value": "{", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 38, "line": 1, }, "start": Object { - "column": 7, + "column": 37, "line": 1, }, }, "range": Array [ - 7, - 8, + 37, + 38, ], "type": "Punctuator", "value": "}", @@ -25984,17 +25785,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 9, + "column": 39, "line": 1, }, "start": Object { - "column": 8, + "column": 38, "line": 1, }, }, "range": Array [ - 8, - 9, + 38, + 39, ], "type": "Punctuator", "value": ";", @@ -26004,7 +25805,7 @@ Object { } `; -exports[`javascript fixtures/classes/invalid-class-setter-declaration.src 1`] = ` +exports[`javascript fixtures/classes/class-two-methods.src 1`] = ` Object { "body": Array [ Object { @@ -26015,7 +25816,85 @@ Object { "key": Object { "loc": Object { "end": Object { - "column": 17, + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 9, + 10, + ], + "type": "Identifier", + }, + "kind": "method", + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 14, + ], + "static": false, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "range": Array [ + 12, + 14, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "params": Array [], + "range": Array [ + 10, + 14, + ], + "type": "FunctionExpression", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 15, "line": 1, }, "start": Object { @@ -26023,27 +25902,27 @@ Object { "line": 1, }, }, - "name": "foo", + "name": "b", "range": Array [ 14, - 17, + 15, ], "type": "Identifier", }, - "kind": "set", + "kind": "method", "loc": Object { "end": Object { - "column": 22, + "column": 19, "line": 1, }, "start": Object { - "column": 10, + "column": 14, "line": 1, }, }, "range": Array [ - 10, - 22, + 14, + 19, ], "static": false, "type": "MethodDefinition", @@ -26053,17 +25932,17 @@ Object { "body": Array [], "loc": Object { "end": Object { - "column": 22, + "column": 19, "line": 1, }, "start": Object { - "column": 20, + "column": 17, "line": 1, }, }, "range": Array [ - 20, - 22, + 17, + 19, ], "type": "BlockStatement", }, @@ -26072,18 +25951,18 @@ Object { "id": null, "loc": Object { "end": Object { - "column": 22, + "column": 19, "line": 1, }, "start": Object { - "column": 17, + "column": 15, "line": 1, }, }, "params": Array [], "range": Array [ - 17, - 22, + 15, + 19, ], "type": "FunctionExpression", }, @@ -26091,7 +25970,7 @@ Object { ], "loc": Object { "end": Object { - "column": 23, + "column": 20, "line": 1, }, "start": Object { @@ -26101,7 +25980,7 @@ Object { }, "range": Array [ 8, - 23, + 20, ], "type": "ClassBody", }, @@ -26125,7 +26004,7 @@ Object { }, "loc": Object { "end": Object { - "column": 23, + "column": 20, "line": 1, }, "start": Object { @@ -26135,7 +26014,7 @@ Object { }, "range": Array [ 0, - 23, + 20, ], "superClass": null, "type": "ClassDeclaration", @@ -26143,25 +26022,25 @@ Object { Object { "loc": Object { "end": Object { - "column": 24, + "column": 21, "line": 1, }, "start": Object { - "column": 23, + "column": 20, "line": 1, }, }, "range": Array [ - 23, - 24, + 20, + 21, ], "type": "EmptyStatement", }, ], "loc": Object { "end": Object { - "column": 0, - "line": 2, + "column": 21, + "line": 1, }, "start": Object { "column": 0, @@ -26170,7 +26049,7 @@ Object { }, "range": Array [ 0, - 25, + 21, ], "sourceType": "script", "tokens": Array [ @@ -26231,7 +26110,25 @@ Object { Object { "loc": Object { "end": Object { - "column": 13, + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 10, + ], + "type": "Identifier", + "value": "a", + }, + Object { + "loc": Object { + "end": Object { + "column": 11, "line": 1, }, "start": Object { @@ -26241,15 +26138,69 @@ Object { }, "range": Array [ 10, + 11, + ], + "type": "Punctuator", + "value": "(", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 12, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "range": Array [ + 12, 13, ], - "type": "Identifier", - "value": "set", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 14, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 15, "line": 1, }, "start": Object { @@ -26259,25 +26210,25 @@ Object { }, "range": Array [ 14, - 17, + 15, ], "type": "Identifier", - "value": "foo", + "value": "b", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 16, "line": 1, }, "start": Object { - "column": 17, + "column": 15, "line": 1, }, }, "range": Array [ - 17, - 18, + 15, + 16, ], "type": "Punctuator", "value": "(", @@ -26285,17 +26236,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 19, + "column": 17, "line": 1, }, "start": Object { - "column": 18, + "column": 16, "line": 1, }, }, "range": Array [ - 18, - 19, + 16, + 17, ], "type": "Punctuator", "value": ")", @@ -26303,17 +26254,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 21, + "column": 18, "line": 1, }, "start": Object { - "column": 20, + "column": 17, "line": 1, }, }, "range": Array [ - 20, - 21, + 17, + 18, ], "type": "Punctuator", "value": "{", @@ -26321,17 +26272,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 22, + "column": 19, "line": 1, }, "start": Object { - "column": 21, + "column": 18, "line": 1, }, }, "range": Array [ - 21, - 22, + 18, + 19, ], "type": "Punctuator", "value": "}", @@ -26339,17 +26290,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 23, + "column": 20, "line": 1, }, "start": Object { - "column": 22, + "column": 19, "line": 1, }, }, "range": Array [ - 22, - 23, + 19, + 20, ], "type": "Punctuator", "value": "}", @@ -26357,17 +26308,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 24, + "column": 21, "line": 1, }, "start": Object { - "column": 23, + "column": 20, "line": 1, }, }, "range": Array [ - 23, - 24, + 20, + 21, ], "type": "Punctuator", "value": ";", @@ -26377,69 +26328,208 @@ Object { } `; -exports[`javascript fixtures/classes/invalid-class-two-super-classes.src 1`] = `"Classes can only extend a single class."`; - -exports[`javascript fixtures/classes/named-class-expression.src 1`] = ` +exports[`javascript fixtures/classes/class-two-methods-computed-constructor.src 1`] = ` Object { "body": Array [ Object { - "expression": Object { - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, + "body": Object { + "body": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 22, + ], + "raw": "\\"constructor\\"", + "type": "Literal", + "value": "constructor", }, - }, - "range": Array [ - 9, - 11, - ], - "type": "ClassBody", - }, - "id": Object { - "loc": Object { - "end": Object { - "column": 8, - "line": 1, + "kind": "constructor", + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, }, - "start": Object { - "column": 7, - "line": 1, + "range": Array [ + 9, + 26, + ], + "static": false, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, + }, + }, + "range": Array [ + 24, + 26, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "params": Array [], + "range": Array [ + 22, + 26, + ], + "type": "FunctionExpression", }, }, - "name": "A", - "range": Array [ - 7, - 8, - ], - "type": "Identifier", + Object { + "computed": true, + "key": Object { + "loc": Object { + "end": Object { + "column": 41, + "line": 1, + }, + "start": Object { + "column": 28, + "line": 1, + }, + }, + "range": Array [ + 28, + 41, + ], + "raw": "\\"constructor\\"", + "type": "Literal", + "value": "constructor", + }, + "kind": "method", + "loc": Object { + "end": Object { + "column": 46, + "line": 1, + }, + "start": Object { + "column": 27, + "line": 1, + }, + }, + "range": Array [ + 27, + 46, + ], + "static": false, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 46, + "line": 1, + }, + "start": Object { + "column": 44, + "line": 1, + }, + }, + "range": Array [ + 44, + 46, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 46, + "line": 1, + }, + "start": Object { + "column": 42, + "line": 1, + }, + }, + "params": Array [], + "range": Array [ + 42, + 46, + ], + "type": "FunctionExpression", + }, + }, + ], + "loc": Object { + "end": Object { + "column": 47, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, }, + "range": Array [ + 8, + 47, + ], + "type": "ClassBody", + }, + "id": Object { "loc": Object { "end": Object { - "column": 11, + "column": 7, "line": 1, }, "start": Object { - "column": 1, + "column": 6, "line": 1, }, }, + "name": "A", "range": Array [ - 1, - 11, + 6, + 7, ], - "superClass": null, - "type": "ClassExpression", + "type": "Identifier", }, "loc": Object { "end": Object { - "column": 13, + "column": 47, "line": 1, }, "start": Object { @@ -26449,14 +26539,32 @@ Object { }, "range": Array [ 0, - 13, + 47, ], - "type": "ExpressionStatement", + "superClass": null, + "type": "ClassDeclaration", + }, + Object { + "loc": Object { + "end": Object { + "column": 48, + "line": 1, + }, + "start": Object { + "column": 47, + "line": 1, + }, + }, + "range": Array [ + 47, + 48, + ], + "type": "EmptyStatement", }, ], "loc": Object { "end": Object { - "column": 13, + "column": 48, "line": 1, }, "start": Object { @@ -26466,14 +26574,14 @@ Object { }, "range": Array [ 0, - 13, + 48, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, + "column": 5, "line": 1, }, "start": Object { @@ -26483,51 +26591,51 @@ Object { }, "range": Array [ 0, - 1, + 5, ], - "type": "Punctuator", - "value": "(", + "type": "Keyword", + "value": "class", }, Object { "loc": Object { "end": Object { - "column": 6, + "column": 7, "line": 1, }, "start": Object { - "column": 1, + "column": 6, "line": 1, }, }, "range": Array [ - 1, 6, + 7, ], - "type": "Keyword", - "value": "class", + "type": "Identifier", + "value": "A", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 9, "line": 1, }, "start": Object { - "column": 7, + "column": 8, "line": 1, }, }, "range": Array [ - 7, 8, + 9, ], - "type": "Identifier", - "value": "A", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 22, "line": 1, }, "start": Object { @@ -26537,43 +26645,43 @@ Object { }, "range": Array [ 9, - 10, + 22, ], - "type": "Punctuator", - "value": "{", + "type": "String", + "value": "\\"constructor\\"", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 23, "line": 1, }, "start": Object { - "column": 10, + "column": 22, "line": 1, }, }, "range": Array [ - 10, - 11, + 22, + 23, ], "type": "Punctuator", - "value": "}", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 24, "line": 1, }, "start": Object { - "column": 11, + "column": 23, "line": 1, }, }, "range": Array [ - 11, - 12, + 23, + 24, ], "type": "Punctuator", "value": ")", @@ -26581,239 +26689,143 @@ Object { Object { "loc": Object { "end": Object { - "column": 13, + "column": 25, "line": 1, }, "start": Object { - "column": 12, + "column": 24, "line": 1, }, }, "range": Array [ - 12, - 13, + 24, + 25, ], "type": "Punctuator", - "value": ";", + "value": "{", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/classes/named-derived-class-expression.src 1`] = ` -Object { - "body": Array [ Object { - "expression": Object { - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, - }, - "range": Array [ - 18, - 20, - ], - "type": "ClassBody", - }, - "id": Object { - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, - }, - "name": "A", - "range": Array [ - 7, - 8, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 1, - "line": 1, - }, - }, - "range": Array [ - 1, - 20, - ], - "superClass": Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 17, - "line": 1, - }, - }, - "range": Array [ - 17, - 18, - ], - "raw": "0", - "type": "Literal", - "value": 0, - }, - "type": "ClassExpression", - }, "loc": Object { "end": Object { - "column": 22, + "column": 26, "line": 1, }, "start": Object { - "column": 0, + "column": 25, "line": 1, }, }, "range": Array [ - 0, - 22, + 25, + 26, ], - "type": "ExpressionStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Punctuator", + "value": "}", }, - }, - "range": Array [ - 0, - 22, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, + "column": 28, "line": 1, }, "start": Object { - "column": 0, + "column": 27, "line": 1, }, }, "range": Array [ - 0, - 1, + 27, + 28, ], "type": "Punctuator", - "value": "(", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 6, + "column": 41, "line": 1, }, "start": Object { - "column": 1, + "column": 28, "line": 1, }, }, "range": Array [ - 1, - 6, + 28, + 41, ], - "type": "Keyword", - "value": "class", + "type": "String", + "value": "\\"constructor\\"", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 42, "line": 1, }, "start": Object { - "column": 7, + "column": 41, "line": 1, }, }, "range": Array [ - 7, - 8, + 41, + 42, ], - "type": "Identifier", - "value": "A", + "type": "Punctuator", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 43, "line": 1, }, "start": Object { - "column": 9, + "column": 42, "line": 1, }, }, "range": Array [ - 9, - 16, + 42, + 43, ], - "type": "Keyword", - "value": "extends", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 44, "line": 1, }, "start": Object { - "column": 17, + "column": 43, "line": 1, }, }, "range": Array [ - 17, - 18, + 43, + 44, ], - "type": "Numeric", - "value": "0", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 19, + "column": 45, "line": 1, }, "start": Object { - "column": 18, + "column": 44, "line": 1, }, }, "range": Array [ - 18, - 19, + 44, + 45, ], "type": "Punctuator", "value": "{", @@ -26821,17 +26833,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 20, + "column": 46, "line": 1, }, "start": Object { - "column": 19, + "column": 45, "line": 1, }, }, "range": Array [ - 19, - 20, + 45, + 46, ], "type": "Punctuator", "value": "}", @@ -26839,35 +26851,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 21, + "column": 47, "line": 1, }, "start": Object { - "column": 20, + "column": 46, "line": 1, }, }, "range": Array [ - 20, - 21, + 46, + 47, ], "type": "Punctuator", - "value": ")", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 22, + "column": 48, "line": 1, }, "start": Object { - "column": 21, + "column": 47, "line": 1, }, }, "range": Array [ - 21, - 22, + 47, + 48, ], "type": "Punctuator", "value": ";", @@ -26877,7 +26889,7 @@ Object { } `; -exports[`javascript fixtures/defaultParams/class-constructor.src 1`] = ` +exports[`javascript fixtures/classes/class-two-methods-semi.src 1`] = ` Object { "body": Array [ Object { @@ -26888,35 +26900,35 @@ Object { "key": Object { "loc": Object { "end": Object { - "column": 15, - "line": 2, + "column": 10, + "line": 1, }, "start": Object { - "column": 4, - "line": 2, + "column": 9, + "line": 1, }, }, - "name": "constructor", + "name": "a", "range": Array [ - 14, - 25, + 9, + 10, ], "type": "Identifier", }, - "kind": "constructor", + "kind": "method", "loc": Object { "end": Object { - "column": 5, - "line": 3, + "column": 14, + "line": 1, }, "start": Object { - "column": 4, - "line": 2, + "column": 9, + "line": 1, }, }, "range": Array [ + 9, 14, - 44, ], "static": false, "type": "MethodDefinition", @@ -26926,17 +26938,17 @@ Object { "body": Array [], "loc": Object { "end": Object { - "column": 5, - "line": 3, + "column": 14, + "line": 1, }, "start": Object { - "column": 27, - "line": 2, + "column": 12, + "line": 1, }, }, "range": Array [ - 37, - 44, + 12, + 14, ], "type": "BlockStatement", }, @@ -26945,73 +26957,96 @@ Object { "id": null, "loc": Object { "end": Object { - "column": 5, - "line": 3, + "column": 14, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "params": Array [], + "range": Array [ + 10, + 14, + ], + "type": "FunctionExpression", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, }, "start": Object { "column": 15, - "line": 2, + "line": 1, }, }, - "params": Array [ - Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 2, - }, - "start": Object { - "column": 16, - "line": 2, - }, - }, - "name": "foo", - "range": Array [ - 26, - 29, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 25, - "line": 2, - }, - "start": Object { - "column": 16, - "line": 2, - }, + "name": "b", + "range": Array [ + 15, + 16, + ], + "type": "Identifier", + }, + "kind": "method", + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "range": Array [ + 15, + 20, + ], + "static": false, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 20, + "line": 1, }, - "range": Array [ - 26, - 35, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 25, - "line": 2, - }, - "start": Object { - "column": 20, - "line": 2, - }, - }, - "range": Array [ - 30, - 35, - ], - "raw": "'bar'", - "type": "Literal", - "value": "bar", + "start": Object { + "column": 18, + "line": 1, }, - "type": "AssignmentPattern", }, - ], + "range": Array [ + 18, + 20, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "params": Array [], "range": Array [ - 25, - 44, + 16, + 20, ], "type": "FunctionExpression", }, @@ -27019,8 +27054,8 @@ Object { ], "loc": Object { "end": Object { - "column": 1, - "line": 4, + "column": 21, + "line": 1, }, "start": Object { "column": 8, @@ -27029,7 +27064,7 @@ Object { }, "range": Array [ 8, - 46, + 21, ], "type": "ClassBody", }, @@ -27053,8 +27088,8 @@ Object { }, "loc": Object { "end": Object { - "column": 1, - "line": 4, + "column": 21, + "line": 1, }, "start": Object { "column": 0, @@ -27063,16 +27098,33 @@ Object { }, "range": Array [ 0, - 46, + 21, ], "superClass": null, "type": "ClassDeclaration", }, + Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 21, + "line": 1, + }, + }, + "range": Array [ + 21, + 22, + ], + "type": "EmptyStatement", + }, ], "loc": Object { "end": Object { - "column": 0, - "line": 5, + "column": 22, + "line": 1, }, "start": Object { "column": 0, @@ -27081,7 +27133,7 @@ Object { }, "range": Array [ 0, - 47, + 22, ], "sourceType": "script", "tokens": Array [ @@ -27142,35 +27194,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 15, - "line": 2, + "column": 10, + "line": 1, }, "start": Object { - "column": 4, - "line": 2, + "column": 9, + "line": 1, }, }, "range": Array [ - 14, - 25, + 9, + 10, ], "type": "Identifier", - "value": "constructor", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 16, - "line": 2, + "column": 11, + "line": 1, }, "start": Object { - "column": 15, - "line": 2, + "column": 10, + "line": 1, }, }, "range": Array [ - 25, - 26, + 10, + 11, ], "type": "Punctuator", "value": "(", @@ -27178,71 +27230,125 @@ Object { Object { "loc": Object { "end": Object { - "column": 19, - "line": 2, + "column": 12, + "line": 1, }, "start": Object { - "column": 16, - "line": 2, + "column": 11, + "line": 1, }, }, "range": Array [ - 26, - 29, + 11, + 12, ], - "type": "Identifier", - "value": "foo", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 20, - "line": 2, + "column": 13, + "line": 1, }, "start": Object { - "column": 19, - "line": 2, + "column": 12, + "line": 1, }, }, "range": Array [ - 29, - 30, + 12, + 13, ], "type": "Punctuator", - "value": "=", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 25, - "line": 2, + "column": 14, + "line": 1, }, "start": Object { - "column": 20, - "line": 2, + "column": 13, + "line": 1, }, }, "range": Array [ - 30, - 35, + 13, + 14, ], - "type": "String", - "value": "'bar'", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 26, - "line": 2, + "column": 15, + "line": 1, }, "start": Object { - "column": 25, - "line": 2, + "column": 14, + "line": 1, }, }, "range": Array [ - 35, - 36, + 14, + 15, + ], + "type": "Punctuator", + "value": ";", + }, + Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "range": Array [ + 15, + 16, + ], + "type": "Identifier", + "value": "b", + }, + Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "range": Array [ + 16, + 17, + ], + "type": "Punctuator", + "value": "(", + }, + Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "range": Array [ + 17, + 18, ], "type": "Punctuator", "value": ")", @@ -27250,17 +27356,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 28, - "line": 2, + "column": 19, + "line": 1, }, "start": Object { - "column": 27, - "line": 2, + "column": 18, + "line": 1, }, }, "range": Array [ - 37, - 38, + 18, + 19, ], "type": "Punctuator", "value": "{", @@ -27268,17 +27374,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 5, - "line": 3, + "column": 20, + "line": 1, }, "start": Object { - "column": 4, - "line": 3, + "column": 19, + "line": 1, }, }, "range": Array [ - 43, - 44, + 19, + 20, ], "type": "Punctuator", "value": "}", @@ -27286,27 +27392,45 @@ Object { Object { "loc": Object { "end": Object { - "column": 1, - "line": 4, + "column": 21, + "line": 1, }, "start": Object { - "column": 0, - "line": 4, + "column": 20, + "line": 1, }, }, "range": Array [ - 45, - 46, + 20, + 21, ], "type": "Punctuator", "value": "}", }, + Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 21, + "line": 1, + }, + }, + "range": Array [ + 21, + 22, + ], + "type": "Punctuator", + "value": ";", + }, ], "type": "Program", } `; -exports[`javascript fixtures/defaultParams/class-method.src 1`] = ` +exports[`javascript fixtures/classes/class-two-methods-three-semi.src 1`] = ` Object { "body": Array [ Object { @@ -27317,35 +27441,35 @@ Object { "key": Object { "loc": Object { "end": Object { - "column": 7, - "line": 2, + "column": 11, + "line": 1, }, "start": Object { - "column": 4, - "line": 2, + "column": 10, + "line": 1, }, }, - "name": "foo", + "name": "a", "range": Array [ - 14, - 17, + 10, + 11, ], "type": "Identifier", }, "kind": "method", "loc": Object { "end": Object { - "column": 5, - "line": 3, + "column": 15, + "line": 1, }, "start": Object { - "column": 4, - "line": 2, + "column": 10, + "line": 1, }, }, "range": Array [ - 14, - 36, + 10, + 15, ], "static": false, "type": "MethodDefinition", @@ -27355,17 +27479,17 @@ Object { "body": Array [], "loc": Object { "end": Object { - "column": 5, - "line": 3, + "column": 15, + "line": 1, }, "start": Object { - "column": 19, - "line": 2, + "column": 13, + "line": 1, }, }, "range": Array [ - 29, - 36, + 13, + 15, ], "type": "BlockStatement", }, @@ -27374,134 +27498,174 @@ Object { "id": null, "loc": Object { "end": Object { - "column": 5, - "line": 3, + "column": 15, + "line": 1, }, "start": Object { - "column": 7, - "line": 2, + "column": 11, + "line": 1, }, }, - "params": Array [ - Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 2, - }, - "start": Object { - "column": 8, - "line": 2, - }, - }, - "name": "bar", - "range": Array [ - 18, - 21, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 17, - "line": 2, - }, - "start": Object { - "column": 8, - "line": 2, - }, - }, - "range": Array [ - 18, - 27, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 2, - }, - "start": Object { - "column": 12, - "line": 2, - }, - }, - "range": Array [ - 22, - 27, - ], - "raw": "'baz'", - "type": "Literal", - "value": "baz", - }, - "type": "AssignmentPattern", - }, - ], + "params": Array [], "range": Array [ - 17, - 36, + 11, + 15, ], "type": "FunctionExpression", }, }, - ], - "loc": Object { - "end": Object { - "column": 1, - "line": 4, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "range": Array [ - 8, - 38, - ], - "type": "ClassBody", - }, - "id": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "name": "A", - "range": Array [ - 6, - 7, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 1, - "line": 4, - }, - "start": Object { + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "name": "b", + "range": Array [ + 16, + 17, + ], + "type": "Identifier", + }, + "kind": "method", + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "range": Array [ + 16, + 21, + ], + "static": false, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 19, + "line": 1, + }, + }, + "range": Array [ + 19, + 21, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "params": Array [], + "range": Array [ + 17, + 21, + ], + "type": "FunctionExpression", + }, + }, + ], + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, + 23, + ], + "type": "ClassBody", + }, + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "A", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { "column": 0, "line": 1, }, }, "range": Array [ 0, - 38, + 23, ], "superClass": null, "type": "ClassDeclaration", }, + Object { + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "range": Array [ + 23, + 24, + ], + "type": "EmptyStatement", + }, ], "loc": Object { "end": Object { - "column": 0, - "line": 5, + "column": 24, + "line": 1, }, "start": Object { "column": 0, @@ -27510,7 +27674,7 @@ Object { }, "range": Array [ 0, - 39, + 24, ], "sourceType": "script", "tokens": Array [ @@ -27571,107 +27735,71 @@ Object { Object { "loc": Object { "end": Object { - "column": 7, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "range": Array [ - 14, - 17, - ], - "type": "Identifier", - "value": "foo", - }, - Object { - "loc": Object { - "end": Object { - "column": 8, - "line": 2, + "column": 10, + "line": 1, }, "start": Object { - "column": 7, - "line": 2, + "column": 9, + "line": 1, }, }, "range": Array [ - 17, - 18, + 9, + 10, ], "type": "Punctuator", - "value": "(", + "value": ";", }, Object { "loc": Object { "end": Object { "column": 11, - "line": 2, + "line": 1, }, "start": Object { - "column": 8, - "line": 2, + "column": 10, + "line": 1, }, }, "range": Array [ - 18, - 21, + 10, + 11, ], "type": "Identifier", - "value": "bar", + "value": "a", }, Object { "loc": Object { "end": Object { "column": 12, - "line": 2, + "line": 1, }, "start": Object { "column": 11, - "line": 2, + "line": 1, }, }, "range": Array [ - 21, - 22, + 11, + 12, ], "type": "Punctuator", - "value": "=", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 17, - "line": 2, + "column": 13, + "line": 1, }, "start": Object { "column": 12, - "line": 2, - }, - }, - "range": Array [ - 22, - 27, - ], - "type": "String", - "value": "'baz'", - }, - Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 2, - }, - "start": Object { - "column": 17, - "line": 2, + "line": 1, }, }, "range": Array [ - 27, - 28, + 12, + 13, ], "type": "Punctuator", "value": ")", @@ -27679,17 +27807,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 20, - "line": 2, + "column": 14, + "line": 1, }, "start": Object { - "column": 19, - "line": 2, + "column": 13, + "line": 1, }, }, "range": Array [ - 29, - 30, + 13, + 14, ], "type": "Punctuator", "value": "{", @@ -27697,226 +27825,71 @@ Object { Object { "loc": Object { "end": Object { - "column": 5, - "line": 3, - }, - "start": Object { - "column": 4, - "line": 3, - }, - }, - "range": Array [ - 35, - 36, - ], - "type": "Punctuator", - "value": "}", - }, - Object { - "loc": Object { - "end": Object { - "column": 1, - "line": 4, - }, - "start": Object { - "column": 0, - "line": 4, - }, - }, - "range": Array [ - 37, - 38, - ], - "type": "Punctuator", - "value": "}", - }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/defaultParams/declaration.src 1`] = ` -Object { - "body": Array [ - Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, - }, - "range": Array [ - 18, - 20, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "name": "f", - "range": Array [ - 9, - 10, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 20, + "column": 15, "line": 1, }, "start": Object { - "column": 0, + "column": 14, "line": 1, }, }, - "params": Array [ - Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 11, - 12, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "range": Array [ - 11, - 16, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "range": Array [ - 15, - 16, - ], - "raw": "1", - "type": "Literal", - "value": 1, - }, - "type": "AssignmentPattern", - }, - ], "range": Array [ - 0, - 20, + 14, + 15, ], - "type": "FunctionDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Punctuator", + "value": "}", }, - }, - "range": Array [ - 0, - 20, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 8, + "column": 16, "line": 1, }, "start": Object { - "column": 0, + "column": 15, "line": 1, }, }, "range": Array [ - 0, - 8, + 15, + 16, ], - "type": "Keyword", - "value": "function", + "type": "Punctuator", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 17, "line": 1, }, "start": Object { - "column": 9, + "column": 16, "line": 1, }, }, "range": Array [ - 9, - 10, + 16, + 17, ], "type": "Identifier", - "value": "f", + "value": "b", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 18, "line": 1, }, "start": Object { - "column": 10, + "column": 17, "line": 1, }, }, "range": Array [ - 10, - 11, + 17, + 18, ], "type": "Punctuator", "value": "(", @@ -27924,250 +27897,312 @@ Object { Object { "loc": Object { "end": Object { - "column": 12, + "column": 19, "line": 1, }, "start": Object { - "column": 11, + "column": 18, "line": 1, }, }, "range": Array [ - 11, - 12, + 18, + 19, ], - "type": "Identifier", - "value": "a", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 20, "line": 1, }, "start": Object { - "column": 13, + "column": 19, "line": 1, }, }, "range": Array [ - 13, - 14, + 19, + 20, ], "type": "Punctuator", - "value": "=", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 21, "line": 1, }, "start": Object { - "column": 15, + "column": 20, "line": 1, }, }, "range": Array [ - 15, - 16, + 20, + 21, ], - "type": "Numeric", - "value": "1", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 22, "line": 1, }, "start": Object { - "column": 16, + "column": 21, "line": 1, }, }, "range": Array [ - 16, - 17, + 21, + 22, ], "type": "Punctuator", - "value": ")", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 19, + "column": 23, "line": 1, }, "start": Object { - "column": 18, + "column": 22, "line": 1, }, }, "range": Array [ - 18, - 19, + 22, + 23, ], "type": "Punctuator", - "value": "{", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 20, + "column": 24, "line": 1, }, "start": Object { - "column": 19, + "column": 23, "line": 1, }, }, "range": Array [ - 19, - 20, + 23, + 24, ], "type": "Punctuator", - "value": "}", + "value": ";", }, ], "type": "Program", } `; -exports[`javascript fixtures/defaultParams/expression.src 1`] = ` +exports[`javascript fixtures/classes/class-two-methods-two-semi.src 1`] = ` Object { "body": Array [ Object { - "expression": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 1, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 0, - 1, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "operator": "=", - "range": Array [ - 0, - 22, - ], - "right": Object { - "async": false, - "body": Object { - "body": Array [], + "body": Object { + "body": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 9, + 10, + ], + "type": "Identifier", + }, + "kind": "method", "loc": Object { "end": Object { - "column": 22, + "column": 14, "line": 1, }, "start": Object { - "column": 20, + "column": 9, "line": 1, }, }, "range": Array [ - 20, - 22, + 9, + 14, ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "params": Array [ - Object { - "left": Object { + "static": false, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [], "loc": Object { "end": Object { "column": 14, "line": 1, }, "start": Object { - "column": 13, + "column": 12, "line": 1, }, }, - "name": "y", "range": Array [ - 13, + 12, 14, ], - "type": "Identifier", + "type": "BlockStatement", }, + "expression": false, + "generator": false, + "id": null, "loc": Object { "end": Object { - "column": 18, + "column": 14, "line": 1, }, "start": Object { - "column": 13, + "column": 10, "line": 1, }, }, + "params": Array [], "range": Array [ - 13, - 18, + 10, + 14, ], - "right": Object { + "type": "FunctionExpression", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "name": "b", + "range": Array [ + 15, + 16, + ], + "type": "Identifier", + }, + "kind": "method", + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "range": Array [ + 15, + 20, + ], + "static": false, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [], "loc": Object { "end": Object { - "column": 18, + "column": 20, "line": 1, }, "start": Object { - "column": 17, + "column": 18, "line": 1, }, }, "range": Array [ - 17, 18, + 20, ], - "raw": "1", - "type": "Literal", - "value": 1, + "type": "BlockStatement", }, - "type": "AssignmentPattern", + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "params": Array [], + "range": Array [ + 16, + 20, + ], + "type": "FunctionExpression", }, - ], - "range": Array [ - 4, - 22, - ], - "type": "FunctionExpression", + }, + ], + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, }, - "type": "AssignmentExpression", + "range": Array [ + 8, + 22, + ], + "type": "ClassBody", + }, + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "A", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", }, "loc": Object { "end": Object { @@ -28183,12 +28218,30 @@ Object { 0, 22, ], - "type": "ExpressionStatement", + "superClass": null, + "type": "ClassDeclaration", + }, + Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "range": Array [ + 22, + 23, + ], + "type": "EmptyStatement", }, ], "loc": Object { "end": Object { - "column": 22, + "column": 23, "line": 1, }, "start": Object { @@ -28198,14 +28251,14 @@ Object { }, "range": Array [ 0, - 22, + 23, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, + "column": 5, "line": 1, }, "start": Object { @@ -28215,28 +28268,82 @@ Object { }, "range": Array [ 0, - 1, + 5, + ], + "type": "Keyword", + "value": "class", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "range": Array [ + 6, + 7, ], "type": "Identifier", - "value": "x", + "value": "A", }, Object { "loc": Object { "end": Object { - "column": 3, + "column": 9, "line": 1, }, "start": Object { - "column": 2, + "column": 8, "line": 1, }, }, "range": Array [ - 2, - 3, + 8, + 9, ], "type": "Punctuator", - "value": "=", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 10, + ], + "type": "Identifier", + "value": "a", + }, + Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "range": Array [ + 10, + 11, + ], + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { @@ -28245,16 +28352,16 @@ Object { "line": 1, }, "start": Object { - "column": 4, + "column": 11, "line": 1, }, }, "range": Array [ - 4, + 11, 12, ], - "type": "Keyword", - "value": "function", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { @@ -28272,7 +28379,7 @@ Object { 13, ], "type": "Punctuator", - "value": "(", + "value": "{", }, Object { "loc": Object { @@ -28289,8 +28396,26 @@ Object { 13, 14, ], - "type": "Identifier", - "value": "y", + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "range": Array [ + 14, + 15, + ], + "type": "Punctuator", + "value": ";", }, Object { "loc": Object { @@ -28307,8 +28432,26 @@ Object { 15, 16, ], + "type": "Identifier", + "value": "b", + }, + Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "range": Array [ + 16, + 17, + ], "type": "Punctuator", - "value": "=", + "value": "(", }, Object { "loc": Object { @@ -28325,8 +28468,8 @@ Object { 17, 18, ], - "type": "Numeric", - "value": "1", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { @@ -28344,7 +28487,25 @@ Object { 19, ], "type": "Punctuator", - "value": ")", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 19, + "line": 1, + }, + }, + "range": Array [ + 19, + 20, + ], + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { @@ -28362,7 +28523,7 @@ Object { 21, ], "type": "Punctuator", - "value": "{", + "value": ";", }, Object { "loc": Object { @@ -28382,207 +28543,229 @@ Object { "type": "Punctuator", "value": "}", }, + Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "range": Array [ + 22, + 23, + ], + "type": "Punctuator", + "value": ";", + }, ], "type": "Program", } `; -exports[`javascript fixtures/defaultParams/method.src 1`] = ` +exports[`javascript fixtures/classes/class-two-static-methods-named-constructor.src 1`] = ` Object { "body": Array [ Object { - "expression": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 1, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 0, - 1, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 27, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "operator": "=", - "range": Array [ - 0, - 27, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 27, - "line": 1, + "body": Object { + "body": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "name": "constructor", + "range": Array [ + 16, + 27, + ], + "type": "Identifier", }, - "start": Object { - "column": 4, - "line": 1, + "kind": "method", + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { + "range": Array [ + 9, + 31, + ], + "static": true, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [], "loc": Object { "end": Object { - "column": 7, + "column": 31, "line": 1, }, "start": Object { - "column": 6, + "column": 29, "line": 1, }, }, - "name": "f", "range": Array [ - 6, - 7, + 29, + 31, ], - "type": "Identifier", + "type": "BlockStatement", }, - "kind": "init", + "expression": false, + "generator": false, + "id": null, "loc": Object { "end": Object { - "column": 25, + "column": 31, "line": 1, }, "start": Object { - "column": 6, + "column": 27, "line": 1, }, }, - "method": false, + "params": Array [], "range": Array [ - 6, - 25, + 27, + 31, ], - "shorthand": false, - "type": "Property", - "value": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 25, - "line": 1, - }, - "start": Object { - "column": 23, - "line": 1, - }, - }, - "range": Array [ - 23, - 25, - ], - "type": "BlockStatement", + "type": "FunctionExpression", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 50, + "line": 1, }, - "expression": false, - "generator": false, - "id": null, + "start": Object { + "column": 39, + "line": 1, + }, + }, + "name": "constructor", + "range": Array [ + 39, + 50, + ], + "type": "Identifier", + }, + "kind": "method", + "loc": Object { + "end": Object { + "column": 54, + "line": 1, + }, + "start": Object { + "column": 32, + "line": 1, + }, + }, + "range": Array [ + 32, + 54, + ], + "static": true, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [], "loc": Object { "end": Object { - "column": 25, + "column": 54, "line": 1, }, "start": Object { - "column": 9, + "column": 52, "line": 1, }, }, - "params": Array [ - Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 18, - 19, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, - }, - "range": Array [ - 18, - 21, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, - }, - "range": Array [ - 20, - 21, - ], - "raw": "1", - "type": "Literal", - "value": 1, - }, - "type": "AssignmentPattern", - }, - ], "range": Array [ - 9, - 25, + 52, + 54, ], - "type": "FunctionExpression", + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 54, + "line": 1, + }, + "start": Object { + "column": 50, + "line": 1, + }, }, + "params": Array [], + "range": Array [ + 50, + 54, + ], + "type": "FunctionExpression", }, - ], - "range": Array [ - 4, - 27, - ], - "type": "ObjectExpression", + }, + ], + "loc": Object { + "end": Object { + "column": 55, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, }, - "type": "AssignmentExpression", + "range": Array [ + 8, + 55, + ], + "type": "ClassBody", + }, + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "A", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", }, "loc": Object { "end": Object { - "column": 27, + "column": 55, "line": 1, }, "start": Object { @@ -28592,14 +28775,32 @@ Object { }, "range": Array [ 0, - 27, + 55, ], - "type": "ExpressionStatement", + "superClass": null, + "type": "ClassDeclaration", + }, + Object { + "loc": Object { + "end": Object { + "column": 56, + "line": 1, + }, + "start": Object { + "column": 55, + "line": 1, + }, + }, + "range": Array [ + 55, + 56, + ], + "type": "EmptyStatement", }, ], "loc": Object { "end": Object { - "column": 27, + "column": 56, "line": 1, }, "start": Object { @@ -28609,14 +28810,14 @@ Object { }, "range": Array [ 0, - 27, + 56, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, + "column": 5, "line": 1, }, "start": Object { @@ -28626,43 +28827,43 @@ Object { }, "range": Array [ 0, - 1, + 5, ], - "type": "Identifier", - "value": "x", + "type": "Keyword", + "value": "class", }, Object { "loc": Object { "end": Object { - "column": 3, + "column": 7, "line": 1, }, "start": Object { - "column": 2, + "column": 6, "line": 1, }, }, "range": Array [ - 2, - 3, + 6, + 7, ], - "type": "Punctuator", - "value": "=", + "type": "Identifier", + "value": "A", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 9, "line": 1, }, "start": Object { - "column": 4, + "column": 8, "line": 1, }, }, "range": Array [ - 4, - 5, + 8, + 9, ], "type": "Punctuator", "value": "{", @@ -28670,143 +28871,179 @@ Object { Object { "loc": Object { "end": Object { - "column": 7, + "column": 15, "line": 1, }, "start": Object { - "column": 6, + "column": 9, "line": 1, }, }, "range": Array [ - 6, - 7, + 9, + 15, + ], + "type": "Keyword", + "value": "static", + }, + Object { + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "range": Array [ + 16, + 27, ], "type": "Identifier", - "value": "f", + "value": "constructor", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 28, "line": 1, }, "start": Object { - "column": 7, + "column": 27, "line": 1, }, }, "range": Array [ - 7, - 8, + 27, + 28, ], "type": "Punctuator", - "value": ":", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 29, "line": 1, }, "start": Object { - "column": 9, + "column": 28, "line": 1, }, }, "range": Array [ - 9, - 17, + 28, + 29, ], - "type": "Keyword", - "value": "function", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 30, "line": 1, }, "start": Object { - "column": 17, + "column": 29, "line": 1, }, }, "range": Array [ - 17, - 18, + 29, + 30, ], "type": "Punctuator", - "value": "(", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 19, + "column": 31, "line": 1, }, "start": Object { - "column": 18, + "column": 30, "line": 1, }, }, "range": Array [ - 18, - 19, + 30, + 31, ], - "type": "Identifier", - "value": "a", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 20, + "column": 38, "line": 1, }, "start": Object { - "column": 19, + "column": 32, "line": 1, }, }, "range": Array [ - 19, - 20, + 32, + 38, ], - "type": "Punctuator", - "value": "=", + "type": "Keyword", + "value": "static", }, Object { "loc": Object { "end": Object { - "column": 21, + "column": 50, "line": 1, }, "start": Object { - "column": 20, + "column": 39, "line": 1, }, }, "range": Array [ - 20, - 21, + 39, + 50, ], - "type": "Numeric", - "value": "1", + "type": "Identifier", + "value": "constructor", }, Object { "loc": Object { "end": Object { - "column": 22, + "column": 51, "line": 1, }, "start": Object { - "column": 21, + "column": 50, "line": 1, }, }, "range": Array [ - 21, - 22, + 50, + 51, + ], + "type": "Punctuator", + "value": "(", + }, + Object { + "loc": Object { + "end": Object { + "column": 52, + "line": 1, + }, + "start": Object { + "column": 51, + "line": 1, + }, + }, + "range": Array [ + 51, + 52, ], "type": "Punctuator", "value": ")", @@ -28814,17 +29051,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 24, + "column": 53, "line": 1, }, "start": Object { - "column": 23, + "column": 52, "line": 1, }, }, "range": Array [ - 23, - 24, + 52, + 53, ], "type": "Punctuator", "value": "{", @@ -28832,17 +29069,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 25, + "column": 54, "line": 1, }, "start": Object { - "column": 24, + "column": 53, "line": 1, }, }, "range": Array [ - 24, - 25, + 53, + 54, ], "type": "Punctuator", "value": "}", @@ -28850,202 +29087,166 @@ Object { Object { "loc": Object { "end": Object { - "column": 27, + "column": 55, "line": 1, }, "start": Object { - "column": 26, + "column": 54, "line": 1, }, }, "range": Array [ - 26, - 27, + 54, + 55, ], "type": "Punctuator", "value": "}", }, + Object { + "loc": Object { + "end": Object { + "column": 56, + "line": 1, + }, + "start": Object { + "column": 55, + "line": 1, + }, + }, + "range": Array [ + 55, + 56, + ], + "type": "Punctuator", + "value": ";", + }, ], "type": "Program", } `; -exports[`javascript fixtures/defaultParams/not-all-params.src 1`] = ` +exports[`javascript fixtures/classes/class-with-constructor.src 1`] = ` Object { "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "name": "foo", - "range": Array [ - 4, - 7, - ], - "type": "Identifier", - }, - "init": Object { - "async": false, - "body": Object { - "body": Array [], + "body": Object { + "body": Array [ + Object { + "computed": false, + "key": Object { "loc": Object { "end": Object { - "column": 35, + "column": 20, "line": 1, }, "start": Object { - "column": 33, + "column": 9, "line": 1, }, }, + "name": "constructor", "range": Array [ - 33, - 35, + 9, + 20, ], - "type": "BlockStatement", + "type": "Identifier", }, - "expression": false, - "generator": false, - "id": null, + "kind": "constructor", "loc": Object { "end": Object { - "column": 35, + "column": 24, "line": 1, }, "start": Object { - "column": 10, + "column": 9, "line": 1, }, }, - "params": Array [ - Object { + "range": Array [ + 9, + 24, + ], + "static": false, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [], "loc": Object { "end": Object { - "column": 20, + "column": 24, "line": 1, }, "start": Object { - "column": 19, + "column": 22, "line": 1, }, }, - "name": "a", "range": Array [ - 19, - 20, + 22, + 24, ], - "type": "Identifier", + "type": "BlockStatement", }, - Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 22, - "line": 1, - }, - }, - "name": "b", - "range": Array [ - 22, - 23, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 28, - "line": 1, - }, - "start": Object { - "column": 22, - "line": 1, - }, - }, - "range": Array [ - 22, - 28, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 28, - "line": 1, - }, - "start": Object { - "column": 26, - "line": 1, - }, - }, - "range": Array [ - 26, - 28, - ], - "raw": "42", - "type": "Literal", - "value": 42, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 24, + "line": 1, }, - "type": "AssignmentPattern", - }, - Object { - "loc": Object { - "end": Object { - "column": 31, - "line": 1, - }, - "start": Object { - "column": 30, - "line": 1, - }, + "start": Object { + "column": 20, + "line": 1, }, - "name": "c", - "range": Array [ - 30, - 31, - ], - "type": "Identifier", }, - ], - "range": Array [ - 10, - 35, - ], - "type": "FunctionExpression", - }, - "loc": Object { - "end": Object { - "column": 35, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, + "params": Array [], + "range": Array [ + 20, + 24, + ], + "type": "FunctionExpression", }, }, - "range": Array [ - 4, - 35, - ], - "type": "VariableDeclarator", + ], + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, }, - ], - "kind": "var", + "range": Array [ + 8, + 25, + ], + "type": "ClassBody", + }, + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "A", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 36, + "column": 25, "line": 1, }, "start": Object { @@ -29055,14 +29256,32 @@ Object { }, "range": Array [ 0, - 36, + 25, ], - "type": "VariableDeclaration", + "superClass": null, + "type": "ClassDeclaration", + }, + Object { + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 25, + "line": 1, + }, + }, + "range": Array [ + 25, + 26, + ], + "type": "EmptyStatement", }, ], "loc": Object { "end": Object { - "column": 36, + "column": 26, "line": 1, }, "start": Object { @@ -29072,14 +29291,14 @@ Object { }, "range": Array [ 0, - 36, + 26, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, + "column": 5, "line": 1, }, "start": Object { @@ -29089,10 +29308,10 @@ Object { }, "range": Array [ 0, - 3, + 5, ], "type": "Keyword", - "value": "var", + "value": "class", }, Object { "loc": Object { @@ -29101,16 +29320,16 @@ Object { "line": 1, }, "start": Object { - "column": 4, + "column": 6, "line": 1, }, }, "range": Array [ - 4, + 6, 7, ], "type": "Identifier", - "value": "foo", + "value": "A", }, Object { "loc": Object { @@ -29128,40 +29347,40 @@ Object { 9, ], "type": "Punctuator", - "value": "=", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 20, "line": 1, }, "start": Object { - "column": 10, + "column": 9, "line": 1, }, }, "range": Array [ - 10, - 18, + 9, + 20, ], - "type": "Keyword", - "value": "function", + "type": "Identifier", + "value": "constructor", }, Object { "loc": Object { "end": Object { - "column": 19, + "column": 21, "line": 1, }, "start": Object { - "column": 18, + "column": 20, "line": 1, }, }, "range": Array [ - 18, - 19, + 20, + 21, ], "type": "Punctuator", "value": "(", @@ -29169,56 +29388,56 @@ Object { Object { "loc": Object { "end": Object { - "column": 20, + "column": 22, "line": 1, }, "start": Object { - "column": 19, + "column": 21, "line": 1, }, }, "range": Array [ - 19, - 20, + 21, + 22, ], - "type": "Identifier", - "value": "a", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 21, + "column": 23, "line": 1, }, "start": Object { - "column": 20, + "column": 22, "line": 1, }, }, "range": Array [ - 20, - 21, + 22, + 23, ], "type": "Punctuator", - "value": ",", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 24, "line": 1, }, "start": Object { - "column": 22, + "column": 23, "line": 1, }, }, "range": Array [ - 22, 23, + 24, ], - "type": "Identifier", - "value": "b", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { @@ -29236,94 +29455,271 @@ Object { 25, ], "type": "Punctuator", - "value": "=", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 28, + "column": 26, "line": 1, }, "start": Object { - "column": 26, + "column": 25, "line": 1, }, }, "range": Array [ + 25, 26, - 28, ], - "type": "Numeric", - "value": "42", + "type": "Punctuator", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/classes/class-with-constructor-parameters.src 1`] = ` +Object { + "body": Array [ Object { + "body": Object { + "body": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "name": "constructor", + "range": Array [ + 9, + 20, + ], + "type": "Identifier", + }, + "kind": "constructor", + "loc": Object { + "end": Object { + "column": 32, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 32, + ], + "static": false, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 32, + "line": 1, + }, + "start": Object { + "column": 30, + "line": 1, + }, + }, + "range": Array [ + 30, + 32, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 32, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "params": Array [ + Object { + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 21, + "line": 1, + }, + }, + "name": "foo", + "range": Array [ + 21, + 24, + ], + "type": "Identifier", + }, + Object { + "loc": Object { + "end": Object { + "column": 29, + "line": 1, + }, + "start": Object { + "column": 26, + "line": 1, + }, + }, + "name": "bar", + "range": Array [ + 26, + 29, + ], + "type": "Identifier", + }, + ], + "range": Array [ + 20, + 32, + ], + "type": "FunctionExpression", + }, + }, + ], + "loc": Object { + "end": Object { + "column": 33, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, + 33, + ], + "type": "ClassBody", + }, + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "A", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 29, + "column": 33, "line": 1, }, "start": Object { - "column": 28, + "column": 0, "line": 1, }, }, "range": Array [ - 28, - 29, + 0, + 33, ], - "type": "Punctuator", - "value": ",", + "superClass": null, + "type": "ClassDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 34, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 31, + "column": 5, "line": 1, }, "start": Object { - "column": 30, + "column": 0, "line": 1, }, }, "range": Array [ - 30, - 31, + 0, + 5, ], - "type": "Identifier", - "value": "c", + "type": "Keyword", + "value": "class", }, Object { "loc": Object { "end": Object { - "column": 32, + "column": 7, "line": 1, }, "start": Object { - "column": 31, + "column": 6, "line": 1, }, }, "range": Array [ - 31, - 32, + 6, + 7, ], - "type": "Punctuator", - "value": ")", + "type": "Identifier", + "value": "A", }, Object { "loc": Object { "end": Object { - "column": 34, + "column": 9, "line": 1, }, "start": Object { - "column": 33, + "column": 8, "line": 1, }, }, "range": Array [ - 33, - 34, + 8, + 9, ], "type": "Punctuator", "value": "{", @@ -29331,475 +29727,292 @@ Object { Object { "loc": Object { "end": Object { - "column": 35, + "column": 20, "line": 1, }, "start": Object { - "column": 34, + "column": 9, "line": 1, }, }, "range": Array [ - 34, - 35, + 9, + 20, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "constructor", }, Object { "loc": Object { "end": Object { - "column": 36, + "column": 21, "line": 1, }, "start": Object { - "column": 35, + "column": 20, "line": 1, }, }, "range": Array [ - 35, - 36, + 20, + 21, ], "type": "Punctuator", - "value": ";", - }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/destructuring/array-member.src 1`] = ` -Object { - "body": Array [ - Object { - "expression": Object { - "left": Object { - "elements": Array [ - Object { - "computed": false, - "loc": Object { - "end": Object { - "column": 5, - "line": 1, - }, - "start": Object { - "column": 1, - "line": 1, - }, - }, - "object": Object { - "loc": Object { - "end": Object { - "column": 3, - "line": 1, - }, - "start": Object { - "column": 1, - "line": 1, - }, - }, - "name": "ok", - "range": Array [ - 1, - 3, - ], - "type": "Identifier", - }, - "property": Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "name": "v", - "range": Array [ - 4, - 5, - ], - "type": "Identifier", - }, - "range": Array [ - 1, - 5, - ], - "type": "MemberExpression", - }, - ], - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 6, - ], - "type": "ArrayPattern", - }, - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "operator": "=", - "range": Array [ - 0, - 11, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 11, - ], - "raw": "20", - "type": "Literal", - "value": 20, - }, - "type": "AssignmentExpression", - }, - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 12, - ], - "type": "ExpressionStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 12, - ], - "sourceType": "script", - "tokens": Array [ - Object { - "loc": Object { - "end": Object { - "column": 1, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 1, - ], - "type": "Punctuator", - "value": "[", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 3, + "column": 24, "line": 1, }, "start": Object { - "column": 1, + "column": 21, "line": 1, }, }, "range": Array [ - 1, - 3, + 21, + 24, ], "type": "Identifier", - "value": "ok", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 4, + "column": 25, "line": 1, }, "start": Object { - "column": 3, + "column": 24, "line": 1, }, }, "range": Array [ - 3, - 4, + 24, + 25, ], "type": "Punctuator", - "value": ".", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 29, "line": 1, }, "start": Object { - "column": 4, + "column": 26, "line": 1, }, }, "range": Array [ - 4, - 5, + 26, + 29, ], "type": "Identifier", - "value": "v", + "value": "bar", }, Object { "loc": Object { "end": Object { - "column": 6, + "column": 30, "line": 1, }, "start": Object { - "column": 5, + "column": 29, "line": 1, }, }, "range": Array [ - 5, - 6, + 29, + 30, ], "type": "Punctuator", - "value": "]", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 31, "line": 1, }, "start": Object { - "column": 7, + "column": 30, "line": 1, }, }, "range": Array [ - 7, - 8, + 30, + 31, ], "type": "Punctuator", - "value": "=", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 32, "line": 1, }, "start": Object { - "column": 9, + "column": 31, "line": 1, }, }, "range": Array [ - 9, - 11, + 31, + 32, ], - "type": "Numeric", - "value": "20", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 33, "line": 1, }, "start": Object { - "column": 11, + "column": 32, "line": 1, }, }, "range": Array [ - 11, - 12, + 32, + 33, ], "type": "Punctuator", - "value": ";", + "value": "}", }, ], "type": "Program", } `; -exports[`javascript fixtures/destructuring/array-to-array.src 1`] = ` +exports[`javascript fixtures/classes/class-with-constructor-with-space.src 1`] = ` Object { "body": Array [ Object { - "expression": Object { - "left": Object { - "elements": Array [ - Object { + "body": Object { + "body": Array [ + Object { + "computed": false, + "key": Object { "loc": Object { "end": Object { - "column": 2, + "column": 20, "line": 1, }, "start": Object { - "column": 1, + "column": 9, "line": 1, }, }, - "name": "a", + "name": "constructor", "range": Array [ - 1, - 2, + 9, + 20, ], "type": "Identifier", }, - Object { + "kind": "constructor", + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 25, + ], + "static": false, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "range": Array [ + 23, + 25, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, "loc": Object { "end": Object { - "column": 5, + "column": 25, "line": 1, }, "start": Object { - "column": 4, + "column": 21, "line": 1, }, }, - "name": "b", + "params": Array [], "range": Array [ - 4, - 5, + 21, + 25, ], - "type": "Identifier", - }, - ], - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "FunctionExpression", }, }, - "range": Array [ - 0, - 6, - ], - "type": "ArrayPattern", - }, + ], "loc": Object { "end": Object { - "column": 15, + "column": 26, "line": 1, }, "start": Object { - "column": 0, + "column": 8, "line": 1, }, }, - "operator": "=", "range": Array [ - 0, - 15, + 8, + 26, ], - "right": Object { - "elements": Array [ - Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "name": "b", - "range": Array [ - 10, - 11, - ], - "type": "Identifier", - }, - Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 13, - 14, - ], - "type": "Identifier", - }, - ], - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, + "type": "ClassBody", + }, + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, }, - "range": Array [ - 9, - 15, - ], - "type": "ArrayExpression", }, - "type": "AssignmentExpression", + "name": "A", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", }, "loc": Object { "end": Object { - "column": 16, + "column": 26, "line": 1, }, "start": Object { @@ -29809,15 +30022,33 @@ Object { }, "range": Array [ 0, - 16, + 26, ], - "type": "ExpressionStatement", + "superClass": null, + "type": "ClassDeclaration", + }, + Object { + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 26, + "line": 1, + }, + }, + "range": Array [ + 26, + 27, + ], + "type": "EmptyStatement", }, ], "loc": Object { "end": Object { - "column": 16, - "line": 1, + "column": 0, + "line": 2, }, "start": Object { "column": 0, @@ -29826,14 +30057,14 @@ Object { }, "range": Array [ 0, - 16, + 28, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, + "column": 5, "line": 1, }, "start": Object { @@ -29843,244 +30074,188 @@ Object { }, "range": Array [ 0, - 1, + 5, ], - "type": "Punctuator", - "value": "[", + "type": "Keyword", + "value": "class", }, Object { "loc": Object { "end": Object { - "column": 2, + "column": 7, "line": 1, }, "start": Object { - "column": 1, + "column": 6, "line": 1, }, }, "range": Array [ - 1, - 2, + 6, + 7, ], "type": "Identifier", - "value": "a", + "value": "A", }, Object { "loc": Object { "end": Object { - "column": 3, + "column": 9, "line": 1, }, "start": Object { - "column": 2, + "column": 8, "line": 1, }, }, "range": Array [ - 2, - 3, + 8, + 9, ], "type": "Punctuator", - "value": ",", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 20, "line": 1, }, "start": Object { - "column": 4, + "column": 9, "line": 1, }, }, "range": Array [ - 4, - 5, + 9, + 20, ], "type": "Identifier", - "value": "b", + "value": "constructor", }, Object { "loc": Object { "end": Object { - "column": 6, + "column": 22, "line": 1, }, "start": Object { - "column": 5, + "column": 21, "line": 1, }, }, "range": Array [ - 5, - 6, + 21, + 22, ], "type": "Punctuator", - "value": "]", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 23, "line": 1, }, "start": Object { - "column": 7, + "column": 22, "line": 1, }, }, "range": Array [ - 7, - 8, + 22, + 23, ], "type": "Punctuator", - "value": "=", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 24, "line": 1, }, "start": Object { - "column": 9, + "column": 23, "line": 1, }, }, "range": Array [ - 9, - 10, + 23, + 24, ], "type": "Punctuator", - "value": "[", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 25, "line": 1, }, "start": Object { - "column": 10, + "column": 24, "line": 1, }, }, "range": Array [ - 10, - 11, + 24, + 25, ], - "type": "Identifier", - "value": "b", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 26, "line": 1, }, "start": Object { - "column": 11, + "column": 25, "line": 1, }, }, "range": Array [ - 11, - 12, + 25, + 26, ], "type": "Punctuator", - "value": ",", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 27, "line": 1, }, "start": Object { - "column": 13, + "column": 26, "line": 1, }, }, "range": Array [ - 13, - 14, + 26, + 27, ], - "type": "Identifier", - "value": "a", - }, - Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "range": Array [ - 14, - 15, - ], - "type": "Punctuator", - "value": "]", - }, - Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "range": Array [ - 15, - 16, - ], - "type": "Punctuator", - "value": ";", + "type": "Punctuator", + "value": ";", }, ], "type": "Program", } `; -exports[`javascript fixtures/destructuring/array-var-undefined.src 1`] = ` +exports[`javascript fixtures/classes/derived-class-assign-to-var.src 1`] = ` Object { "body": Array [ Object { "declarations": Array [ Object { "id": Object { - "elements": Array [ - Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 5, - 6, - ], - "type": "Identifier", - }, - ], "loc": Object { "end": Object { - "column": 7, + "column": 5, "line": 1, }, "start": Object { @@ -30088,33 +30263,88 @@ Object { "line": 1, }, }, + "name": "x", "range": Array [ 4, - 7, + 5, ], - "type": "ArrayPattern", + "type": "Identifier", }, "init": Object { - "elements": Array [], + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 25, + "line": 1, + }, + }, + "range": Array [ + 25, + 27, + ], + "type": "ClassBody", + }, + "id": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "name": "A", + "range": Array [ + 14, + 15, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 12, + "column": 27, "line": 1, }, "start": Object { - "column": 10, + "column": 8, "line": 1, }, }, "range": Array [ - 10, - 12, + 8, + 27, ], - "type": "ArrayExpression", + "superClass": Object { + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, + }, + }, + "range": Array [ + 24, + 25, + ], + "raw": "0", + "type": "Literal", + "value": 0, + }, + "type": "ClassExpression", }, "loc": Object { "end": Object { - "column": 12, + "column": 27, "line": 1, }, "start": Object { @@ -30124,7 +30354,7 @@ Object { }, "range": Array [ 4, - 12, + 27, ], "type": "VariableDeclarator", }, @@ -30132,7 +30362,7 @@ Object { "kind": "var", "loc": Object { "end": Object { - "column": 13, + "column": 28, "line": 1, }, "start": Object { @@ -30142,14 +30372,14 @@ Object { }, "range": Array [ 0, - 13, + 28, ], "type": "VariableDeclaration", }, ], "loc": Object { "end": Object { - "column": 13, + "column": 28, "line": 1, }, "start": Object { @@ -30159,7 +30389,7 @@ Object { }, "range": Array [ 0, - 13, + 28, ], "sourceType": "script", "tokens": Array [ @@ -30196,113 +30426,149 @@ Object { 4, 5, ], - "type": "Punctuator", - "value": "[", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 6, + "column": 7, "line": 1, }, "start": Object { - "column": 5, + "column": 6, "line": 1, }, }, "range": Array [ - 5, 6, + 7, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, + 13, + ], + "type": "Keyword", + "value": "class", + }, + Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "range": Array [ + 14, + 15, ], "type": "Identifier", - "value": "a", + "value": "A", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 23, "line": 1, }, "start": Object { - "column": 6, + "column": 16, "line": 1, }, }, "range": Array [ - 6, - 7, + 16, + 23, ], - "type": "Punctuator", - "value": "]", + "type": "Keyword", + "value": "extends", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 25, "line": 1, }, "start": Object { - "column": 8, + "column": 24, "line": 1, }, }, "range": Array [ - 8, - 9, + 24, + 25, ], - "type": "Punctuator", - "value": "=", + "type": "Numeric", + "value": "0", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 26, "line": 1, }, "start": Object { - "column": 10, + "column": 25, "line": 1, }, }, "range": Array [ - 10, - 11, + 25, + 26, ], "type": "Punctuator", - "value": "[", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 27, "line": 1, }, "start": Object { - "column": 11, + "column": 26, "line": 1, }, }, "range": Array [ - 11, - 12, + 26, + 27, ], "type": "Punctuator", - "value": "]", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 28, "line": 1, }, "start": Object { - "column": 12, + "column": 27, "line": 1, }, }, "range": Array [ - 12, - 13, + 27, + 28, ], "type": "Punctuator", "value": ";", @@ -30312,185 +30578,69 @@ Object { } `; -exports[`javascript fixtures/destructuring/class-constructor-params-array.src 1`] = ` +exports[`javascript fixtures/classes/derived-class-expression.src 1`] = ` Object { "body": Array [ Object { - "body": Object { - "body": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "name": "consturctor", - "range": Array [ - 14, - 25, - ], - "type": "Identifier", - }, - "kind": "method", - "loc": Object { - "end": Object { - "column": 5, - "line": 3, - }, - "start": Object { - "column": 4, - "line": 2, - }, + "expression": Object { + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 18, + "line": 1, }, - "range": Array [ - 14, - 45, - ], - "static": false, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 5, - "line": 3, - }, - "start": Object { - "column": 28, - "line": 2, - }, - }, - "range": Array [ - 38, - 45, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 5, - "line": 3, - }, - "start": Object { - "column": 15, - "line": 2, - }, - }, - "params": Array [ - Object { - "elements": Array [ - Object { - "loc": Object { - "end": Object { - "column": 20, - "line": 2, - }, - "start": Object { - "column": 17, - "line": 2, - }, - }, - "name": "foo", - "range": Array [ - 27, - 30, - ], - "type": "Identifier", - }, - Object { - "loc": Object { - "end": Object { - "column": 25, - "line": 2, - }, - "start": Object { - "column": 22, - "line": 2, - }, - }, - "name": "bar", - "range": Array [ - 32, - 35, - ], - "type": "Identifier", - }, - ], - "loc": Object { - "end": Object { - "column": 26, - "line": 2, - }, - "start": Object { - "column": 16, - "line": 2, - }, - }, - "range": Array [ - 26, - 36, - ], - "type": "ArrayPattern", - }, - ], - "range": Array [ - 25, - 45, - ], - "type": "FunctionExpression", + "start": Object { + "column": 16, + "line": 1, }, }, - ], - "loc": Object { - "end": Object { - "column": 1, - "line": 4, - }, - "start": Object { - "column": 8, - "line": 1, - }, + "range": Array [ + 16, + 18, + ], + "type": "ClassBody", }, - "range": Array [ - 8, - 47, - ], - "type": "ClassBody", - }, - "id": Object { + "id": null, "loc": Object { "end": Object { - "column": 7, + "column": 18, "line": 1, }, "start": Object { - "column": 6, + "column": 1, "line": 1, }, }, - "name": "A", "range": Array [ - 6, - 7, + 1, + 18, ], - "type": "Identifier", + "superClass": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "range": Array [ + 15, + 16, + ], + "raw": "0", + "type": "Literal", + "value": 0, + }, + "type": "ClassExpression", }, "loc": Object { "end": Object { - "column": 1, - "line": 4, + "column": 20, + "line": 1, }, "start": Object { "column": 0, @@ -30499,16 +30649,15 @@ Object { }, "range": Array [ 0, - 47, + 20, ], - "superClass": null, - "type": "ClassDeclaration", + "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 0, - "line": 5, + "column": 20, + "line": 1, }, "start": Object { "column": 0, @@ -30517,14 +30666,14 @@ Object { }, "range": Array [ 0, - 48, + 20, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 1, "line": 1, }, "start": Object { @@ -30534,205 +30683,283 @@ Object { }, "range": Array [ 0, - 5, + 1, ], - "type": "Keyword", - "value": "class", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 6, "line": 1, }, "start": Object { - "column": 6, + "column": 1, "line": 1, }, }, "range": Array [ + 1, 6, - 7, ], - "type": "Identifier", - "value": "A", + "type": "Keyword", + "value": "class", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 14, "line": 1, }, "start": Object { - "column": 8, + "column": 7, "line": 1, }, }, "range": Array [ - 8, - 9, + 7, + 14, ], - "type": "Punctuator", - "value": "{", + "type": "Keyword", + "value": "extends", }, Object { "loc": Object { "end": Object { - "column": 15, - "line": 2, + "column": 16, + "line": 1, }, "start": Object { - "column": 4, - "line": 2, + "column": 15, + "line": 1, }, }, "range": Array [ - 14, - 25, + 15, + 16, ], - "type": "Identifier", - "value": "consturctor", + "type": "Numeric", + "value": "0", }, Object { "loc": Object { "end": Object { - "column": 16, - "line": 2, + "column": 17, + "line": 1, }, "start": Object { - "column": 15, - "line": 2, + "column": 16, + "line": 1, }, }, "range": Array [ - 25, - 26, + 16, + 17, ], "type": "Punctuator", - "value": "(", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 17, - "line": 2, + "column": 18, + "line": 1, }, "start": Object { - "column": 16, - "line": 2, + "column": 17, + "line": 1, }, }, "range": Array [ - 26, - 27, + 17, + 18, ], "type": "Punctuator", - "value": "[", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 20, - "line": 2, + "column": 19, + "line": 1, }, "start": Object { - "column": 17, - "line": 2, + "column": 18, + "line": 1, }, }, "range": Array [ - 27, - 30, + 18, + 19, ], - "type": "Identifier", - "value": "foo", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 21, - "line": 2, + "column": 20, + "line": 1, }, "start": Object { - "column": 20, - "line": 2, + "column": 19, + "line": 1, }, }, "range": Array [ - 30, - 31, + 19, + 20, ], "type": "Punctuator", - "value": ",", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/classes/empty-class.src 1`] = ` +Object { + "body": Array [ Object { + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, + 10, + ], + "type": "ClassBody", + }, + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "A", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 25, - "line": 2, + "column": 10, + "line": 1, }, "start": Object { - "column": 22, - "line": 2, + "column": 0, + "line": 1, }, }, "range": Array [ - 32, - 35, + 0, + 10, ], - "type": "Identifier", - "value": "bar", + "superClass": null, + "type": "ClassDeclaration", }, Object { "loc": Object { "end": Object { - "column": 26, - "line": 2, + "column": 11, + "line": 1, }, "start": Object { - "column": 25, - "line": 2, + "column": 10, + "line": 1, }, }, "range": Array [ - 35, - 36, + 10, + 11, ], - "type": "Punctuator", - "value": "]", + "type": "EmptyStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 11, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 27, - "line": 2, + "column": 5, + "line": 1, }, "start": Object { - "column": 26, - "line": 2, + "column": 0, + "line": 1, }, }, "range": Array [ - 36, - 37, + 0, + 5, ], - "type": "Punctuator", - "value": ")", + "type": "Keyword", + "value": "class", }, Object { "loc": Object { "end": Object { - "column": 29, - "line": 2, + "column": 7, + "line": 1, }, "start": Object { - "column": 28, - "line": 2, + "column": 6, + "line": 1, }, }, "range": Array [ - 38, - 39, + 6, + 7, + ], + "type": "Identifier", + "value": "A", + }, + Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, + 9, ], "type": "Punctuator", "value": "{", @@ -30740,17 +30967,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 5, - "line": 3, + "column": 10, + "line": 1, }, "start": Object { - "column": 4, - "line": 3, + "column": 9, + "line": 1, }, }, "range": Array [ - 44, - 45, + 9, + 10, ], "type": "Punctuator", "value": "}", @@ -30758,243 +30985,36 @@ Object { Object { "loc": Object { "end": Object { - "column": 1, - "line": 4, + "column": 11, + "line": 1, }, "start": Object { - "column": 0, - "line": 4, + "column": 10, + "line": 1, }, }, "range": Array [ - 46, - 47, + 10, + 11, ], "type": "Punctuator", - "value": "}", + "value": ";", }, ], "type": "Program", } `; -exports[`javascript fixtures/destructuring/class-constructor-params-defaults-array.src 1`] = ` +exports[`javascript fixtures/classes/empty-class-double-semi.src 1`] = ` Object { "body": Array [ Object { "body": Object { - "body": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "name": "consturctor", - "range": Array [ - 14, - 25, - ], - "type": "Identifier", - }, - "kind": "method", - "loc": Object { - "end": Object { - "column": 5, - "line": 3, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "range": Array [ - 14, - 49, - ], - "static": false, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 5, - "line": 3, - }, - "start": Object { - "column": 32, - "line": 2, - }, - }, - "range": Array [ - 42, - 49, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 5, - "line": 3, - }, - "start": Object { - "column": 15, - "line": 2, - }, - }, - "params": Array [ - Object { - "elements": Array [ - Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 20, - "line": 2, - }, - "start": Object { - "column": 17, - "line": 2, - }, - }, - "name": "foo", - "range": Array [ - 27, - 30, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 22, - "line": 2, - }, - "start": Object { - "column": 17, - "line": 2, - }, - }, - "range": Array [ - 27, - 32, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 22, - "line": 2, - }, - "start": Object { - "column": 21, - "line": 2, - }, - }, - "range": Array [ - 31, - 32, - ], - "raw": "3", - "type": "Literal", - "value": 3, - }, - "type": "AssignmentPattern", - }, - Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 27, - "line": 2, - }, - "start": Object { - "column": 24, - "line": 2, - }, - }, - "name": "bar", - "range": Array [ - 34, - 37, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 29, - "line": 2, - }, - "start": Object { - "column": 24, - "line": 2, - }, - }, - "range": Array [ - 34, - 39, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 29, - "line": 2, - }, - "start": Object { - "column": 28, - "line": 2, - }, - }, - "range": Array [ - 38, - 39, - ], - "raw": "4", - "type": "Literal", - "value": 4, - }, - "type": "AssignmentPattern", - }, - ], - "loc": Object { - "end": Object { - "column": 30, - "line": 2, - }, - "start": Object { - "column": 16, - "line": 2, - }, - }, - "range": Array [ - 26, - 40, - ], - "type": "ArrayPattern", - }, - ], - "range": Array [ - 25, - 49, - ], - "type": "FunctionExpression", - }, - }, - ], + "body": Array [], "loc": Object { "end": Object { - "column": 1, - "line": 4, + "column": 10, + "line": 1, }, "start": Object { "column": 8, @@ -31003,7 +31023,7 @@ Object { }, "range": Array [ 8, - 51, + 10, ], "type": "ClassBody", }, @@ -31027,8 +31047,8 @@ Object { }, "loc": Object { "end": Object { - "column": 1, - "line": 4, + "column": 10, + "line": 1, }, "start": Object { "column": 0, @@ -31037,16 +31057,33 @@ Object { }, "range": Array [ 0, - 51, + 10, ], "superClass": null, "type": "ClassDeclaration", }, + Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "range": Array [ + 10, + 11, + ], + "type": "EmptyStatement", + }, ], "loc": Object { "end": Object { - "column": 0, - "line": 5, + "column": 11, + "line": 1, }, "start": Object { "column": 0, @@ -31055,7 +31092,7 @@ Object { }, "range": Array [ 0, - 52, + 11, ], "sourceType": "script", "tokens": Array [ @@ -31116,233 +31153,443 @@ Object { Object { "loc": Object { "end": Object { - "column": 15, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "range": Array [ - 14, - 25, - ], - "type": "Identifier", - "value": "consturctor", - }, - Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 2, + "column": 10, + "line": 1, }, "start": Object { - "column": 15, - "line": 2, + "column": 9, + "line": 1, }, }, "range": Array [ - 25, - 26, + 9, + 10, ], "type": "Punctuator", - "value": "(", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 17, - "line": 2, + "column": 11, + "line": 1, }, "start": Object { - "column": 16, - "line": 2, + "column": 10, + "line": 1, }, }, "range": Array [ - 26, - 27, + 10, + 11, ], "type": "Punctuator", - "value": "[", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/classes/empty-class-semi.src 1`] = ` +Object { + "body": Array [ Object { - "loc": Object { - "end": Object { - "column": 20, - "line": 2, - }, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, + 11, + ], + "type": "ClassBody", + }, + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "A", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, "start": Object { - "column": 17, - "line": 2, + "column": 0, + "line": 1, }, }, "range": Array [ - 27, - 30, + 0, + 11, + ], + "superClass": null, + "type": "ClassDeclaration", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 12, + ], + "type": "EmptyStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 12, + ], + "sourceType": "script", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 5, + ], + "type": "Keyword", + "value": "class", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "range": Array [ + 6, + 7, ], "type": "Identifier", - "value": "foo", + "value": "A", }, Object { "loc": Object { "end": Object { - "column": 21, - "line": 2, + "column": 9, + "line": 1, }, "start": Object { - "column": 20, - "line": 2, + "column": 8, + "line": 1, }, }, "range": Array [ - 30, - 31, + 8, + 9, ], "type": "Punctuator", - "value": "=", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 22, - "line": 2, + "column": 10, + "line": 1, }, "start": Object { - "column": 21, - "line": 2, + "column": 9, + "line": 1, }, }, "range": Array [ - 31, - 32, + 9, + 10, ], - "type": "Numeric", - "value": "3", + "type": "Punctuator", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 23, - "line": 2, + "column": 11, + "line": 1, }, "start": Object { - "column": 22, - "line": 2, + "column": 10, + "line": 1, }, }, "range": Array [ - 32, - 33, + 10, + 11, ], "type": "Punctuator", - "value": ",", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 27, - "line": 2, + "column": 12, + "line": 1, }, "start": Object { - "column": 24, - "line": 2, + "column": 11, + "line": 1, }, }, "range": Array [ - 34, - 37, + 11, + 12, ], - "type": "Identifier", - "value": "bar", + "type": "Punctuator", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/classes/empty-literal-derived-class.src 1`] = ` +Object { + "body": Array [ Object { + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "range": Array [ + 18, + 20, + ], + "type": "ClassBody", + }, + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "A", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 28, - "line": 2, + "column": 20, + "line": 1, }, "start": Object { - "column": 27, - "line": 2, + "column": 0, + "line": 1, }, }, "range": Array [ - 37, - 38, + 0, + 20, ], - "type": "Punctuator", - "value": "=", + "superClass": Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "range": Array [ + 16, + 17, + ], + "raw": "0", + "type": "Literal", + "value": 0, + }, + "type": "ClassDeclaration", }, Object { "loc": Object { "end": Object { - "column": 29, - "line": 2, + "column": 21, + "line": 1, }, "start": Object { - "column": 28, - "line": 2, + "column": 20, + "line": 1, }, }, "range": Array [ - 38, - 39, + 20, + 21, ], - "type": "Numeric", - "value": "4", + "type": "EmptyStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 21, + "line": 1, }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 21, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 30, - "line": 2, + "column": 5, + "line": 1, }, "start": Object { - "column": 29, - "line": 2, + "column": 0, + "line": 1, }, }, "range": Array [ - 39, - 40, + 0, + 5, ], - "type": "Punctuator", - "value": "]", + "type": "Keyword", + "value": "class", }, Object { "loc": Object { "end": Object { - "column": 31, - "line": 2, + "column": 7, + "line": 1, }, "start": Object { - "column": 30, - "line": 2, + "column": 6, + "line": 1, }, }, "range": Array [ - 40, - 41, + 6, + 7, ], - "type": "Punctuator", - "value": ")", + "type": "Identifier", + "value": "A", }, Object { "loc": Object { "end": Object { - "column": 33, - "line": 2, + "column": 15, + "line": 1, }, "start": Object { - "column": 32, - "line": 2, + "column": 8, + "line": 1, }, }, "range": Array [ - 42, - 43, + 8, + 15, + ], + "type": "Keyword", + "value": "extends", + }, + Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "range": Array [ + 16, + 17, + ], + "type": "Numeric", + "value": "0", + }, + Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "range": Array [ + 18, + 19, ], "type": "Punctuator", "value": "{", @@ -31350,17 +31597,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 5, - "line": 3, + "column": 20, + "line": 1, }, "start": Object { - "column": 4, - "line": 3, + "column": 19, + "line": 1, }, }, "range": Array [ - 48, - 49, + 19, + 20, ], "type": "Punctuator", "value": "}", @@ -31368,312 +31615,257 @@ Object { Object { "loc": Object { "end": Object { - "column": 1, - "line": 4, + "column": 21, + "line": 1, }, "start": Object { - "column": 0, - "line": 4, + "column": 20, + "line": 1, }, }, "range": Array [ - 50, - 51, + 20, + 21, ], "type": "Punctuator", - "value": "}", + "value": ";", }, ], "type": "Program", } `; -exports[`javascript fixtures/destructuring/class-constructor-params-defaults-object.src 1`] = ` +exports[`javascript fixtures/classes/invalid-class-declaration.src 1`] = ` Object { "body": Array [ Object { "body": Object { - "body": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "name": "consturctor", - "range": Array [ - 14, - 25, - ], - "type": "Identifier", - }, - "kind": "method", - "loc": Object { - "end": Object { - "column": 5, - "line": 3, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "range": Array [ - 14, - 49, - ], - "static": false, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 5, - "line": 3, - }, - "start": Object { - "column": 32, - "line": 2, - }, - }, - "range": Array [ - 42, - 49, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 5, - "line": 3, - }, - "start": Object { - "column": 15, - "line": 2, - }, - }, - "params": Array [ - Object { - "loc": Object { - "end": Object { - "column": 30, - "line": 2, - }, - "start": Object { - "column": 16, - "line": 2, - }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 20, - "line": 2, - }, - "start": Object { - "column": 17, - "line": 2, - }, - }, - "name": "foo", - "range": Array [ - 27, - 30, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 22, - "line": 2, - }, - "start": Object { - "column": 17, - "line": 2, - }, - }, - "method": false, - "range": Array [ - 27, - 32, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 20, - "line": 2, - }, - "start": Object { - "column": 17, - "line": 2, - }, - }, - "name": "foo", - "range": Array [ - 27, - 30, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 22, - "line": 2, - }, - "start": Object { - "column": 17, - "line": 2, - }, - }, - "range": Array [ - 27, - 32, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 22, - "line": 2, - }, - "start": Object { - "column": 21, - "line": 2, - }, - }, - "range": Array [ - 31, - 32, - ], - "raw": "3", - "type": "Literal", - "value": 3, - }, - "type": "AssignmentPattern", - }, - }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 27, - "line": 2, - }, - "start": Object { - "column": 24, - "line": 2, - }, - }, - "name": "bar", - "range": Array [ - 34, - 37, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 29, - "line": 2, - }, - "start": Object { - "column": 24, - "line": 2, - }, - }, - "method": false, - "range": Array [ - 34, - 39, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 27, - "line": 2, - }, - "start": Object { - "column": 24, - "line": 2, - }, - }, - "name": "bar", - "range": Array [ - 34, - 37, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 29, - "line": 2, - }, - "start": Object { - "column": 24, - "line": 2, - }, - }, - "range": Array [ - 34, - 39, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 29, - "line": 2, - }, - "start": Object { - "column": 28, - "line": 2, - }, - }, - "range": Array [ - 38, - 39, - ], - "raw": "4", - "type": "Literal", - "value": 4, - }, - "type": "AssignmentPattern", - }, - }, - ], - "range": Array [ - 26, - 40, - ], - "type": "ObjectPattern", + "body": Array [], + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "range": Array [ + 6, + 8, + ], + "type": "ClassBody", + }, + "id": null, + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 8, + ], + "superClass": null, + "type": "ClassDeclaration", + }, + Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, + 9, + ], + "type": "EmptyStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 10, + ], + "sourceType": "script", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 5, + ], + "type": "Keyword", + "value": "class", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "range": Array [ + 6, + 7, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "range": Array [ + 7, + 8, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, + 9, + ], + "type": "Punctuator", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/classes/invalid-class-setter-declaration.src 1`] = ` +Object { + "body": Array [ + Object { + "body": Object { + "body": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, }, + }, + "name": "foo", + "range": Array [ + 14, + 17, ], + "type": "Identifier", + }, + "kind": "set", + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "range": Array [ + 10, + 22, + ], + "static": false, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "range": Array [ + 20, + 22, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "params": Array [], "range": Array [ - 25, - 49, + 17, + 22, ], "type": "FunctionExpression", }, @@ -31681,8 +31873,8 @@ Object { ], "loc": Object { "end": Object { - "column": 1, - "line": 4, + "column": 23, + "line": 1, }, "start": Object { "column": 8, @@ -31691,7 +31883,7 @@ Object { }, "range": Array [ 8, - 51, + 23, ], "type": "ClassBody", }, @@ -31715,8 +31907,8 @@ Object { }, "loc": Object { "end": Object { - "column": 1, - "line": 4, + "column": 23, + "line": 1, }, "start": Object { "column": 0, @@ -31725,16 +31917,33 @@ Object { }, "range": Array [ 0, - 51, + 23, ], "superClass": null, "type": "ClassDeclaration", }, + Object { + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "range": Array [ + 23, + 24, + ], + "type": "EmptyStatement", + }, ], "loc": Object { "end": Object { "column": 0, - "line": 5, + "line": 2, }, "start": Object { "column": 0, @@ -31743,7 +31952,7 @@ Object { }, "range": Array [ 0, - 52, + 25, ], "sourceType": "script", "tokens": Array [ @@ -31804,197 +32013,331 @@ Object { Object { "loc": Object { "end": Object { - "column": 15, - "line": 2, + "column": 13, + "line": 1, }, "start": Object { - "column": 4, - "line": 2, + "column": 10, + "line": 1, }, }, "range": Array [ - 14, - 25, + 10, + 13, ], "type": "Identifier", - "value": "consturctor", + "value": "set", }, Object { "loc": Object { "end": Object { - "column": 16, - "line": 2, + "column": 17, + "line": 1, }, "start": Object { - "column": 15, - "line": 2, + "column": 14, + "line": 1, }, }, "range": Array [ - 25, - 26, + 14, + 17, ], - "type": "Punctuator", - "value": "(", + "type": "Identifier", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 17, - "line": 2, + "column": 18, + "line": 1, }, "start": Object { - "column": 16, - "line": 2, + "column": 17, + "line": 1, }, }, "range": Array [ - 26, - 27, + 17, + 18, ], "type": "Punctuator", - "value": "{", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 20, - "line": 2, + "column": 19, + "line": 1, }, "start": Object { - "column": 17, - "line": 2, + "column": 18, + "line": 1, }, }, "range": Array [ - 27, - 30, + 18, + 19, ], - "type": "Identifier", - "value": "foo", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { "column": 21, - "line": 2, + "line": 1, }, "start": Object { "column": 20, - "line": 2, + "line": 1, }, }, "range": Array [ - 30, - 31, + 20, + 21, ], "type": "Punctuator", - "value": "=", + "value": "{", }, Object { "loc": Object { "end": Object { "column": 22, - "line": 2, + "line": 1, }, "start": Object { "column": 21, - "line": 2, + "line": 1, }, }, "range": Array [ - 31, - 32, + 21, + 22, ], - "type": "Numeric", - "value": "3", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { "column": 23, - "line": 2, + "line": 1, }, "start": Object { "column": 22, - "line": 2, + "line": 1, }, }, "range": Array [ - 32, - 33, + 22, + 23, ], "type": "Punctuator", - "value": ",", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 27, - "line": 2, + "column": 24, + "line": 1, }, "start": Object { - "column": 24, - "line": 2, + "column": 23, + "line": 1, }, }, "range": Array [ - 34, - 37, + 23, + 24, ], - "type": "Identifier", - "value": "bar", + "type": "Punctuator", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/classes/invalid-class-two-super-classes.src 1`] = `"Classes can only extend a single class."`; + +exports[`javascript fixtures/classes/named-class-expression.src 1`] = ` +Object { + "body": Array [ + Object { + "expression": Object { + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 11, + ], + "type": "ClassBody", + }, + "id": Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "name": "A", + "range": Array [ + 7, + 8, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "range": Array [ + 1, + 11, + ], + "superClass": null, + "type": "ClassExpression", + }, + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 13, + ], + "type": "ExpressionStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 13, + "line": 1, }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 13, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 28, - "line": 2, + "column": 1, + "line": 1, }, "start": Object { - "column": 27, - "line": 2, + "column": 0, + "line": 1, }, }, "range": Array [ - 37, - 38, + 0, + 1, ], "type": "Punctuator", - "value": "=", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 29, - "line": 2, + "column": 6, + "line": 1, }, "start": Object { - "column": 28, - "line": 2, + "column": 1, + "line": 1, }, }, "range": Array [ - 38, - 39, + 1, + 6, ], - "type": "Numeric", - "value": "4", + "type": "Keyword", + "value": "class", }, Object { "loc": Object { "end": Object { - "column": 30, - "line": 2, + "column": 8, + "line": 1, }, "start": Object { - "column": 29, - "line": 2, + "column": 7, + "line": 1, }, }, "range": Array [ - 39, - 40, + 7, + 8, + ], + "type": "Identifier", + "value": "A", + }, + Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 10, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "range": Array [ + 10, + 11, ], "type": "Punctuator", "value": "}", @@ -32002,17 +32345,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 31, - "line": 2, + "column": 12, + "line": 1, }, "start": Object { - "column": 30, - "line": 2, + "column": 11, + "line": 1, }, }, "range": Array [ - 40, - 41, + 11, + 12, ], "type": "Punctuator", "value": ")", @@ -32020,63 +32363,303 @@ Object { Object { "loc": Object { "end": Object { - "column": 33, - "line": 2, + "column": 13, + "line": 1, }, "start": Object { - "column": 32, - "line": 2, + "column": 12, + "line": 1, }, }, "range": Array [ - 42, - 43, + 12, + 13, ], "type": "Punctuator", - "value": "{", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/classes/named-derived-class-expression.src 1`] = ` +Object { + "body": Array [ + Object { + "expression": Object { + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "range": Array [ + 18, + 20, + ], + "type": "ClassBody", + }, + "id": Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "name": "A", + "range": Array [ + 7, + 8, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "range": Array [ + 1, + 20, + ], + "superClass": Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "range": Array [ + 17, + 18, + ], + "raw": "0", + "type": "Literal", + "value": 0, + }, + "type": "ClassExpression", + }, + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 22, + ], + "type": "ExpressionStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 22, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, - "line": 3, + "column": 1, + "line": 1, }, "start": Object { - "column": 4, - "line": 3, + "column": 0, + "line": 1, }, }, "range": Array [ - 48, - 49, + 0, + 1, ], "type": "Punctuator", - "value": "}", + "value": "(", }, Object { "loc": Object { "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { "column": 1, - "line": 4, + "line": 1, + }, + }, + "range": Array [ + 1, + 6, + ], + "type": "Keyword", + "value": "class", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 1, }, "start": Object { - "column": 0, - "line": 4, + "column": 7, + "line": 1, }, }, "range": Array [ - 50, - 51, + 7, + 8, + ], + "type": "Identifier", + "value": "A", + }, + Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 16, + ], + "type": "Keyword", + "value": "extends", + }, + Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "range": Array [ + 17, + 18, + ], + "type": "Numeric", + "value": "0", + }, + Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "range": Array [ + 18, + 19, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 19, + "line": 1, + }, + }, + "range": Array [ + 19, + 20, ], "type": "Punctuator", "value": "}", }, + Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "range": Array [ + 20, + 21, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 21, + "line": 1, + }, + }, + "range": Array [ + 21, + 22, + ], + "type": "Punctuator", + "value": ";", + }, ], "type": "Program", } `; -exports[`javascript fixtures/destructuring/class-constructor-params-object.src 1`] = ` +exports[`javascript fixtures/defaultParams/class-constructor.src 1`] = ` Object { "body": Array [ Object { @@ -32095,14 +32678,14 @@ Object { "line": 2, }, }, - "name": "consturctor", + "name": "constructor", "range": Array [ 14, 25, ], "type": "Identifier", }, - "kind": "method", + "kind": "constructor", "loc": Object { "end": Object { "column": 5, @@ -32115,7 +32698,7 @@ Object { }, "range": Array [ 14, - 45, + 44, ], "static": false, "type": "MethodDefinition", @@ -32129,13 +32712,13 @@ Object { "line": 3, }, "start": Object { - "column": 28, + "column": 27, "line": 2, }, }, "range": Array [ - 38, - 45, + 37, + 44, ], "type": "BlockStatement", }, @@ -32154,142 +32737,63 @@ Object { }, "params": Array [ Object { - "loc": Object { - "end": Object { - "column": 26, - "line": 2, + "left": Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 2, + }, + "start": Object { + "column": 16, + "line": 2, + }, }, - "start": Object { + "name": "foo", + "range": Array [ + 26, + 29, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 25, + "line": 2, + }, + "start": Object { "column": 16, "line": 2, }, }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 20, - "line": 2, - }, - "start": Object { - "column": 17, - "line": 2, - }, - }, - "name": "foo", - "range": Array [ - 27, - 30, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 20, - "line": 2, - }, - "start": Object { - "column": 17, - "line": 2, - }, - }, - "method": false, - "range": Array [ - 27, - 30, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 20, - "line": 2, - }, - "start": Object { - "column": 17, - "line": 2, - }, - }, - "name": "foo", - "range": Array [ - 27, - 30, - ], - "type": "Identifier", - }, - }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 25, - "line": 2, - }, - "start": Object { - "column": 22, - "line": 2, - }, - }, - "name": "bar", - "range": Array [ - 32, - 35, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 25, - "line": 2, - }, - "start": Object { - "column": 22, - "line": 2, - }, - }, - "method": false, - "range": Array [ - 32, - 35, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 25, - "line": 2, - }, - "start": Object { - "column": 22, - "line": 2, - }, - }, - "name": "bar", - "range": Array [ - 32, - 35, - ], - "type": "Identifier", - }, - }, - ], "range": Array [ 26, - 36, + 35, ], - "type": "ObjectPattern", + "right": Object { + "loc": Object { + "end": Object { + "column": 25, + "line": 2, + }, + "start": Object { + "column": 20, + "line": 2, + }, + }, + "range": Array [ + 30, + 35, + ], + "raw": "'bar'", + "type": "Literal", + "value": "bar", + }, + "type": "AssignmentPattern", }, ], "range": Array [ 25, - 45, + 44, ], "type": "FunctionExpression", }, @@ -32307,7 +32811,7 @@ Object { }, "range": Array [ 8, - 47, + 46, ], "type": "ClassBody", }, @@ -32341,7 +32845,7 @@ Object { }, "range": Array [ 0, - 47, + 46, ], "superClass": null, "type": "ClassDeclaration", @@ -32359,7 +32863,7 @@ Object { }, "range": Array [ 0, - 48, + 47, ], "sourceType": "script", "tokens": Array [ @@ -32433,7 +32937,7 @@ Object { 25, ], "type": "Identifier", - "value": "consturctor", + "value": "constructor", }, Object { "loc": Object { @@ -32456,7 +32960,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 17, + "column": 19, "line": 2, }, "start": Object { @@ -32466,25 +32970,7 @@ Object { }, "range": Array [ 26, - 27, - ], - "type": "Punctuator", - "value": "{", - }, - Object { - "loc": Object { - "end": Object { - "column": 20, - "line": 2, - }, - "start": Object { - "column": 17, - "line": 2, - }, - }, - "range": Array [ - 27, - 30, + 29, ], "type": "Identifier", "value": "foo", @@ -32492,20 +32978,20 @@ Object { Object { "loc": Object { "end": Object { - "column": 21, + "column": 20, "line": 2, }, "start": Object { - "column": 20, + "column": 19, "line": 2, }, }, "range": Array [ + 29, 30, - 31, ], "type": "Punctuator", - "value": ",", + "value": "=", }, Object { "loc": Object { @@ -32514,16 +33000,16 @@ Object { "line": 2, }, "start": Object { - "column": 22, + "column": 20, "line": 2, }, }, "range": Array [ - 32, + 30, 35, ], - "type": "Identifier", - "value": "bar", + "type": "String", + "value": "'bar'", }, Object { "loc": Object { @@ -32541,40 +33027,22 @@ Object { 36, ], "type": "Punctuator", - "value": "}", - }, - Object { - "loc": Object { - "end": Object { - "column": 27, - "line": 2, - }, - "start": Object { - "column": 26, - "line": 2, - }, - }, - "range": Array [ - 36, - 37, - ], - "type": "Punctuator", "value": ")", }, Object { "loc": Object { "end": Object { - "column": 29, + "column": 28, "line": 2, }, "start": Object { - "column": 28, + "column": 27, "line": 2, }, }, "range": Array [ + 37, 38, - 39, ], "type": "Punctuator", "value": "{", @@ -32591,8 +33059,8 @@ Object { }, }, "range": Array [ + 43, 44, - 45, ], "type": "Punctuator", "value": "}", @@ -32609,8 +33077,8 @@ Object { }, }, "range": Array [ + 45, 46, - 47, ], "type": "Punctuator", "value": "}", @@ -32620,7 +33088,7 @@ Object { } `; -exports[`javascript fixtures/destructuring/class-method-params-array.src 1`] = ` +exports[`javascript fixtures/defaultParams/class-method.src 1`] = ` Object { "body": Array [ Object { @@ -32659,7 +33127,7 @@ Object { }, "range": Array [ 14, - 37, + 36, ], "static": false, "type": "MethodDefinition", @@ -32673,13 +33141,13 @@ Object { "line": 3, }, "start": Object { - "column": 20, + "column": 19, "line": 2, }, }, "range": Array [ - 30, - 37, + 29, + 36, ], "type": "BlockStatement", }, @@ -32698,47 +33166,27 @@ Object { }, "params": Array [ Object { - "elements": Array [ - Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 2, - }, - "start": Object { - "column": 9, - "line": 2, - }, + "left": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 2, }, - "name": "bar", - "range": Array [ - 19, - 22, - ], - "type": "Identifier", - }, - Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 2, - }, - "start": Object { - "column": 14, - "line": 2, - }, + "start": Object { + "column": 8, + "line": 2, }, - "name": "baz", - "range": Array [ - 24, - 27, - ], - "type": "Identifier", }, - ], + "name": "bar", + "range": Array [ + 18, + 21, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 18, + "column": 17, "line": 2, }, "start": Object { @@ -32748,14 +33196,33 @@ Object { }, "range": Array [ 18, - 28, + 27, ], - "type": "ArrayPattern", + "right": Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 2, + }, + "start": Object { + "column": 12, + "line": 2, + }, + }, + "range": Array [ + 22, + 27, + ], + "raw": "'baz'", + "type": "Literal", + "value": "baz", + }, + "type": "AssignmentPattern", }, ], "range": Array [ 17, - 37, + 36, ], "type": "FunctionExpression", }, @@ -32773,7 +33240,7 @@ Object { }, "range": Array [ 8, - 39, + 38, ], "type": "ClassBody", }, @@ -32807,7 +33274,7 @@ Object { }, "range": Array [ 0, - 39, + 38, ], "superClass": null, "type": "ClassDeclaration", @@ -32825,7 +33292,7 @@ Object { }, "range": Array [ 0, - 40, + 39, ], "sourceType": "script", "tokens": Array [ @@ -32922,7 +33389,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 9, + "column": 11, "line": 2, }, "start": Object { @@ -32932,25 +33399,7 @@ Object { }, "range": Array [ 18, - 19, - ], - "type": "Punctuator", - "value": "[", - }, - Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 2, - }, - "start": Object { - "column": 9, - "line": 2, - }, - }, - "range": Array [ - 19, - 22, + 21, ], "type": "Identifier", "value": "bar", @@ -32958,20 +33407,20 @@ Object { Object { "loc": Object { "end": Object { - "column": 13, + "column": 12, "line": 2, }, "start": Object { - "column": 12, + "column": 11, "line": 2, }, }, "range": Array [ + 21, 22, - 23, ], "type": "Punctuator", - "value": ",", + "value": "=", }, Object { "loc": Object { @@ -32980,16 +33429,16 @@ Object { "line": 2, }, "start": Object { - "column": 14, + "column": 12, "line": 2, }, }, "range": Array [ - 24, + 22, 27, ], - "type": "Identifier", - "value": "baz", + "type": "String", + "value": "'baz'", }, Object { "loc": Object { @@ -33007,40 +33456,22 @@ Object { 28, ], "type": "Punctuator", - "value": "]", - }, - Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 2, - }, - "start": Object { - "column": 18, - "line": 2, - }, - }, - "range": Array [ - 28, - 29, - ], - "type": "Punctuator", "value": ")", }, Object { "loc": Object { "end": Object { - "column": 21, + "column": 20, "line": 2, }, "start": Object { - "column": 20, + "column": 19, "line": 2, }, }, "range": Array [ + 29, 30, - 31, ], "type": "Punctuator", "value": "{", @@ -33057,8 +33488,8 @@ Object { }, }, "range": Array [ + 35, 36, - 37, ], "type": "Punctuator", "value": "}", @@ -33075,8 +33506,8 @@ Object { }, }, "range": Array [ + 37, 38, - 39, ], "type": "Punctuator", "value": "}", @@ -33086,275 +33517,126 @@ Object { } `; -exports[`javascript fixtures/destructuring/class-method-params-defaults-array.src 1`] = ` +exports[`javascript fixtures/defaultParams/declaration.src 1`] = ` Object { "body": Array [ Object { + "async": false, "body": Object { - "body": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, + "body": Array [], + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "range": Array [ + 18, + 20, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "name": "f", + "range": Array [ + 9, + 10, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "params": Array [ + Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, }, - "name": "foo", - "range": Array [ - 14, - 17, - ], - "type": "Identifier", }, - "kind": "method", + "name": "a", + "range": Array [ + 11, + 12, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 16, + ], + "right": Object { "loc": Object { "end": Object { - "column": 5, - "line": 3, + "column": 16, + "line": 1, }, "start": Object { - "column": 4, - "line": 2, + "column": 15, + "line": 1, }, }, "range": Array [ - 14, - 41, + 15, + 16, ], - "static": false, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 5, - "line": 3, - }, - "start": Object { - "column": 24, - "line": 2, - }, - }, - "range": Array [ - 34, - 41, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 5, - "line": 3, - }, - "start": Object { - "column": 7, - "line": 2, - }, - }, - "params": Array [ - Object { - "elements": Array [ - Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 2, - }, - "start": Object { - "column": 9, - "line": 2, - }, - }, - "name": "bar", - "range": Array [ - 19, - 22, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 14, - "line": 2, - }, - "start": Object { - "column": 9, - "line": 2, - }, - }, - "range": Array [ - 19, - 24, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 2, - }, - "start": Object { - "column": 13, - "line": 2, - }, - }, - "range": Array [ - 23, - 24, - ], - "raw": "3", - "type": "Literal", - "value": 3, - }, - "type": "AssignmentPattern", - }, - Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 2, - }, - "start": Object { - "column": 16, - "line": 2, - }, - }, - "name": "baz", - "range": Array [ - 26, - 29, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 21, - "line": 2, - }, - "start": Object { - "column": 16, - "line": 2, - }, - }, - "range": Array [ - 26, - 31, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 2, - }, - "start": Object { - "column": 20, - "line": 2, - }, - }, - "range": Array [ - 30, - 31, - ], - "raw": "4", - "type": "Literal", - "value": 4, - }, - "type": "AssignmentPattern", - }, - ], - "loc": Object { - "end": Object { - "column": 22, - "line": 2, - }, - "start": Object { - "column": 8, - "line": 2, - }, - }, - "range": Array [ - 18, - 32, - ], - "type": "ArrayPattern", - }, - ], - "range": Array [ - 17, - 41, - ], - "type": "FunctionExpression", - }, - }, - ], - "loc": Object { - "end": Object { - "column": 1, - "line": 4, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "range": Array [ - 8, - 43, - ], - "type": "ClassBody", - }, - "id": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, + "raw": "1", + "type": "Literal", + "value": 1, }, + "type": "AssignmentPattern", }, - "name": "A", - "range": Array [ - 6, - 7, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 1, - "line": 4, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, + ], "range": Array [ 0, - 43, + 20, ], - "superClass": null, - "type": "ClassDeclaration", + "type": "FunctionDeclaration", }, ], "loc": Object { "end": Object { - "column": 0, - "line": 5, + "column": 20, + "line": 1, }, "start": Object { "column": 0, @@ -33363,14 +33645,14 @@ Object { }, "range": Array [ 0, - 44, + 20, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 8, "line": 1, }, "start": Object { @@ -33380,205 +33662,79 @@ Object { }, "range": Array [ 0, - 5, + 8, ], "type": "Keyword", - "value": "class", + "value": "function", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 10, "line": 1, }, "start": Object { - "column": 6, - "line": 1, - }, - }, - "range": Array [ - 6, - 7, - ], - "type": "Identifier", - "value": "A", - }, - Object { - "loc": Object { - "end": Object { "column": 9, "line": 1, }, - "start": Object { - "column": 8, - "line": 1, - }, }, "range": Array [ - 8, 9, - ], - "type": "Punctuator", - "value": "{", - }, - Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "range": Array [ - 14, - 17, + 10, ], "type": "Identifier", - "value": "foo", + "value": "f", }, Object { "loc": Object { "end": Object { - "column": 8, - "line": 2, + "column": 11, + "line": 1, }, "start": Object { - "column": 7, - "line": 2, + "column": 10, + "line": 1, }, }, "range": Array [ - 17, - 18, + 10, + 11, ], "type": "Punctuator", "value": "(", }, - Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 2, - }, - "start": Object { - "column": 8, - "line": 2, - }, - }, - "range": Array [ - 18, - 19, - ], - "type": "Punctuator", - "value": "[", - }, Object { "loc": Object { "end": Object { "column": 12, - "line": 2, + "line": 1, }, "start": Object { - "column": 9, - "line": 2, + "column": 11, + "line": 1, }, }, "range": Array [ - 19, - 22, + 11, + 12, ], "type": "Identifier", - "value": "bar", - }, - Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 2, - }, - "start": Object { - "column": 12, - "line": 2, - }, - }, - "range": Array [ - 22, - 23, - ], - "type": "Punctuator", - "value": "=", + "value": "a", }, Object { "loc": Object { "end": Object { "column": 14, - "line": 2, + "line": 1, }, "start": Object { "column": 13, - "line": 2, - }, - }, - "range": Array [ - 23, - 24, - ], - "type": "Numeric", - "value": "3", - }, - Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 2, - }, - "start": Object { - "column": 14, - "line": 2, - }, - }, - "range": Array [ - 24, - 25, - ], - "type": "Punctuator", - "value": ",", - }, - Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 2, - }, - "start": Object { - "column": 16, - "line": 2, - }, - }, - "range": Array [ - 26, - 29, - ], - "type": "Identifier", - "value": "baz", - }, - Object { - "loc": Object { - "end": Object { - "column": 20, - "line": 2, - }, - "start": Object { - "column": 19, - "line": 2, + "line": 1, }, }, "range": Array [ - 29, - 30, + 13, + 14, ], "type": "Punctuator", "value": "=", @@ -33586,53 +33742,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 21, - "line": 2, + "column": 16, + "line": 1, }, "start": Object { - "column": 20, - "line": 2, + "column": 15, + "line": 1, }, }, "range": Array [ - 30, - 31, + 15, + 16, ], "type": "Numeric", - "value": "4", - }, - Object { - "loc": Object { - "end": Object { - "column": 22, - "line": 2, - }, - "start": Object { - "column": 21, - "line": 2, - }, - }, - "range": Array [ - 31, - 32, - ], - "type": "Punctuator", - "value": "]", + "value": "1", }, Object { "loc": Object { "end": Object { - "column": 23, - "line": 2, + "column": 17, + "line": 1, }, "start": Object { - "column": 22, - "line": 2, + "column": 16, + "line": 1, }, }, "range": Array [ - 32, - 33, + 16, + 17, ], "type": "Punctuator", "value": ")", @@ -33640,17 +33778,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 25, - "line": 2, + "column": 19, + "line": 1, }, "start": Object { - "column": 24, - "line": 2, + "column": 18, + "line": 1, }, }, "range": Array [ - 34, - 35, + 18, + 19, ], "type": "Punctuator", "value": "{", @@ -33658,35 +33796,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 5, - "line": 3, - }, - "start": Object { - "column": 4, - "line": 3, - }, - }, - "range": Array [ - 40, - 41, - ], - "type": "Punctuator", - "value": "}", - }, - Object { - "loc": Object { - "end": Object { - "column": 1, - "line": 4, + "column": 20, + "line": 1, }, "start": Object { - "column": 0, - "line": 4, + "column": 19, + "line": 1, }, }, "range": Array [ - 42, - 43, + 19, + 20, ], "type": "Punctuator", "value": "}", @@ -33696,335 +33816,145 @@ Object { } `; -exports[`javascript fixtures/destructuring/class-method-params-defaults-object.src 1`] = ` +exports[`javascript fixtures/defaultParams/expression.src 1`] = ` Object { "body": Array [ Object { - "body": Object { - "body": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "name": "foo", - "range": Array [ - 14, - 17, - ], - "type": "Identifier", + "expression": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 1, }, - "kind": "method", - "loc": Object { - "end": Object { - "column": 5, - "line": 3, - }, - "start": Object { - "column": 4, - "line": 2, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 0, + 1, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "operator": "=", + "range": Array [ + 0, + 22, + ], + "right": Object { + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, }, }, "range": Array [ - 14, - 41, + 20, + 22, ], - "static": false, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "params": Array [ + Object { + "left": Object { "loc": Object { "end": Object { - "column": 5, - "line": 3, + "column": 14, + "line": 1, }, "start": Object { - "column": 24, - "line": 2, + "column": 13, + "line": 1, }, }, + "name": "y", "range": Array [ - 34, - 41, + 13, + 14, ], - "type": "BlockStatement", + "type": "Identifier", }, - "expression": false, - "generator": false, - "id": null, "loc": Object { "end": Object { - "column": 5, - "line": 3, + "column": 18, + "line": 1, }, "start": Object { - "column": 7, - "line": 2, + "column": 13, + "line": 1, }, }, - "params": Array [ - Object { - "loc": Object { - "end": Object { - "column": 22, - "line": 2, - }, - "start": Object { - "column": 8, - "line": 2, - }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 2, - }, - "start": Object { - "column": 9, - "line": 2, - }, - }, - "name": "bar", - "range": Array [ - 19, - 22, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 14, - "line": 2, - }, - "start": Object { - "column": 9, - "line": 2, - }, - }, - "method": false, - "range": Array [ - 19, - 24, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 2, - }, - "start": Object { - "column": 9, - "line": 2, - }, - }, - "name": "bar", - "range": Array [ - 19, - 22, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 14, - "line": 2, - }, - "start": Object { - "column": 9, - "line": 2, - }, - }, - "range": Array [ - 19, - 24, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 2, - }, - "start": Object { - "column": 13, - "line": 2, - }, - }, - "range": Array [ - 23, - 24, - ], - "raw": "3", - "type": "Literal", - "value": 3, - }, - "type": "AssignmentPattern", - }, - }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 2, - }, - "start": Object { - "column": 16, - "line": 2, - }, - }, - "name": "baz", - "range": Array [ - 26, - 29, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 21, - "line": 2, - }, - "start": Object { - "column": 16, - "line": 2, - }, - }, - "method": false, - "range": Array [ - 26, - 31, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 2, - }, - "start": Object { - "column": 16, - "line": 2, - }, - }, - "name": "baz", - "range": Array [ - 26, - 29, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 21, - "line": 2, - }, - "start": Object { - "column": 16, - "line": 2, - }, - }, - "range": Array [ - 26, - 31, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 2, - }, - "start": Object { - "column": 20, - "line": 2, - }, - }, - "range": Array [ - 30, - 31, - ], - "raw": "3", - "type": "Literal", - "value": 3, - }, - "type": "AssignmentPattern", - }, - }, - ], - "range": Array [ - 18, - 32, - ], - "type": "ObjectPattern", - }, - ], "range": Array [ - 17, - 41, + 13, + 18, ], - "type": "FunctionExpression", + "right": Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "range": Array [ + 17, + 18, + ], + "raw": "1", + "type": "Literal", + "value": 1, + }, + "type": "AssignmentPattern", }, - }, - ], - "loc": Object { - "end": Object { - "column": 1, - "line": 4, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "range": Array [ - 8, - 43, - ], - "type": "ClassBody", - }, - "id": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, + ], + "range": Array [ + 4, + 22, + ], + "type": "FunctionExpression", }, - "name": "A", - "range": Array [ - 6, - 7, - ], - "type": "Identifier", + "type": "AssignmentExpression", }, "loc": Object { "end": Object { - "column": 1, - "line": 4, + "column": 22, + "line": 1, }, "start": Object { "column": 0, @@ -34033,16 +33963,15 @@ Object { }, "range": Array [ 0, - 43, + 22, ], - "superClass": null, - "type": "ClassDeclaration", + "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 0, - "line": 5, + "column": 22, + "line": 1, }, "start": Object { "column": 0, @@ -34051,14 +33980,14 @@ Object { }, "range": Array [ 0, - 44, + 22, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 1, "line": 1, }, "start": Object { @@ -34068,205 +33997,436 @@ Object { }, "range": Array [ 0, - 5, + 1, ], - "type": "Keyword", - "value": "class", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 3, "line": 1, }, "start": Object { - "column": 6, + "column": 2, "line": 1, }, }, "range": Array [ - 6, - 7, + 2, + 3, ], - "type": "Identifier", - "value": "A", + "type": "Punctuator", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 12, "line": 1, }, "start": Object { - "column": 8, + "column": 4, "line": 1, }, }, "range": Array [ - 8, - 9, + 4, + 12, ], - "type": "Punctuator", - "value": "{", + "type": "Keyword", + "value": "function", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 2, + "column": 13, + "line": 1, }, "start": Object { - "column": 4, - "line": 2, + "column": 12, + "line": 1, }, }, "range": Array [ - 14, - 17, + 12, + 13, ], - "type": "Identifier", - "value": "foo", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 8, - "line": 2, + "column": 14, + "line": 1, }, "start": Object { - "column": 7, - "line": 2, + "column": 13, + "line": 1, }, }, "range": Array [ - 17, - 18, + 13, + 14, ], - "type": "Punctuator", - "value": "(", + "type": "Identifier", + "value": "y", }, Object { "loc": Object { "end": Object { - "column": 9, - "line": 2, + "column": 16, + "line": 1, }, "start": Object { - "column": 8, - "line": 2, + "column": 15, + "line": 1, }, }, "range": Array [ - 18, - 19, + 15, + 16, ], "type": "Punctuator", - "value": "{", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 12, - "line": 2, + "column": 18, + "line": 1, }, "start": Object { - "column": 9, - "line": 2, + "column": 17, + "line": 1, }, }, "range": Array [ - 19, - 22, + 17, + 18, ], - "type": "Identifier", - "value": "bar", + "type": "Numeric", + "value": "1", }, Object { "loc": Object { "end": Object { - "column": 13, - "line": 2, + "column": 19, + "line": 1, }, "start": Object { - "column": 12, - "line": 2, + "column": 18, + "line": 1, }, }, "range": Array [ - 22, - 23, + 18, + 19, ], "type": "Punctuator", - "value": "=", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 14, - "line": 2, + "column": 21, + "line": 1, }, "start": Object { - "column": 13, - "line": 2, + "column": 20, + "line": 1, }, }, "range": Array [ - 23, - 24, + 20, + 21, ], - "type": "Numeric", - "value": "3", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 15, - "line": 2, + "column": 22, + "line": 1, }, "start": Object { - "column": 14, - "line": 2, + "column": 21, + "line": 1, }, }, "range": Array [ - 24, - 25, + 21, + 22, ], "type": "Punctuator", - "value": ",", + "value": "}", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/defaultParams/method.src 1`] = ` +Object { + "body": Array [ + Object { + "expression": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 0, + 1, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "operator": "=", + "range": Array [ + 0, + 27, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "f", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 6, + 25, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "range": Array [ + 23, + 25, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "params": Array [ + Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 18, + 19, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "range": Array [ + 18, + 21, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "range": Array [ + 20, + 21, + ], + "raw": "1", + "type": "Literal", + "value": 1, + }, + "type": "AssignmentPattern", + }, + ], + "range": Array [ + 9, + 25, + ], + "type": "FunctionExpression", + }, + }, + ], + "range": Array [ + 4, + 27, + ], + "type": "ObjectExpression", + }, + "type": "AssignmentExpression", + }, + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 27, + ], + "type": "ExpressionStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 27, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 19, - "line": 2, + "column": 1, + "line": 1, }, "start": Object { - "column": 16, - "line": 2, + "column": 0, + "line": 1, }, }, "range": Array [ - 26, - 29, + 0, + 1, ], "type": "Identifier", - "value": "baz", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 20, - "line": 2, + "column": 3, + "line": 1, }, "start": Object { - "column": 19, - "line": 2, + "column": 2, + "line": 1, }, }, "range": Array [ - 29, - 30, + 2, + 3, ], "type": "Punctuator", "value": "=", @@ -34274,53 +34434,161 @@ Object { Object { "loc": Object { "end": Object { - "column": 21, - "line": 2, + "column": 5, + "line": 1, }, "start": Object { - "column": 20, - "line": 2, + "column": 4, + "line": 1, }, }, "range": Array [ - 30, - 31, + 4, + 5, ], - "type": "Numeric", - "value": "3", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 22, - "line": 2, + "column": 7, + "line": 1, }, "start": Object { - "column": 21, - "line": 2, + "column": 6, + "line": 1, }, }, "range": Array [ - 31, - 32, + 6, + 7, + ], + "type": "Identifier", + "value": "f", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "range": Array [ + 7, + 8, ], "type": "Punctuator", - "value": "}", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 23, - "line": 2, + "column": 17, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 17, + ], + "type": "Keyword", + "value": "function", + }, + Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "range": Array [ + 17, + 18, + ], + "type": "Punctuator", + "value": "(", + }, + Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "range": Array [ + 18, + 19, + ], + "type": "Identifier", + "value": "a", + }, + Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 19, + "line": 1, + }, + }, + "range": Array [ + 19, + 20, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, }, "start": Object { + "column": 20, + "line": 1, + }, + }, + "range": Array [ + 20, + 21, + ], + "type": "Numeric", + "value": "1", + }, + Object { + "loc": Object { + "end": Object { "column": 22, - "line": 2, + "line": 1, + }, + "start": Object { + "column": 21, + "line": 1, }, }, "range": Array [ - 32, - 33, + 21, + 22, ], "type": "Punctuator", "value": ")", @@ -34328,17 +34596,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 25, - "line": 2, + "column": 24, + "line": 1, }, "start": Object { - "column": 24, - "line": 2, + "column": 23, + "line": 1, }, }, "range": Array [ - 34, - 35, + 23, + 24, ], "type": "Punctuator", "value": "{", @@ -34346,17 +34614,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 5, - "line": 3, + "column": 25, + "line": 1, }, "start": Object { - "column": 4, - "line": 3, + "column": 24, + "line": 1, }, }, "range": Array [ - 40, - 41, + 24, + 25, ], "type": "Punctuator", "value": "}", @@ -34364,17 +34632,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 1, - "line": 4, + "column": 27, + "line": 1, }, "start": Object { - "column": 0, - "line": 4, + "column": 26, + "line": 1, }, }, "range": Array [ - 42, - 43, + 26, + 27, ], "type": "Punctuator", "value": "}", @@ -34384,263 +34652,183 @@ Object { } `; -exports[`javascript fixtures/destructuring/class-method-params-object.src 1`] = ` +exports[`javascript fixtures/defaultParams/not-all-params.src 1`] = ` Object { "body": Array [ Object { - "body": Object { - "body": Array [ - Object { - "computed": false, - "key": Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "name": "foo", + "range": Array [ + 4, + 7, + ], + "type": "Identifier", + }, + "init": Object { + "async": false, + "body": Object { + "body": Array [], "loc": Object { "end": Object { - "column": 7, - "line": 2, + "column": 35, + "line": 1, }, "start": Object { - "column": 4, - "line": 2, + "column": 33, + "line": 1, }, }, - "name": "foo", "range": Array [ - 14, - 17, + 33, + 35, ], - "type": "Identifier", + "type": "BlockStatement", }, - "kind": "method", + "expression": false, + "generator": false, + "id": null, "loc": Object { "end": Object { - "column": 5, - "line": 3, + "column": 35, + "line": 1, }, "start": Object { - "column": 4, - "line": 2, + "column": 10, + "line": 1, }, }, - "range": Array [ - 14, - 37, - ], - "static": false, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [], + "params": Array [ + Object { "loc": Object { "end": Object { - "column": 5, - "line": 3, + "column": 20, + "line": 1, }, "start": Object { - "column": 20, - "line": 2, + "column": 19, + "line": 1, }, }, + "name": "a", "range": Array [ - 30, - 37, + 19, + 20, ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 5, - "line": 3, - }, - "start": Object { - "column": 7, - "line": 2, - }, + "type": "Identifier", }, - "params": Array [ - Object { + Object { + "left": Object { "loc": Object { "end": Object { - "column": 18, - "line": 2, + "column": 23, + "line": 1, }, "start": Object { - "column": 8, - "line": 2, + "column": 22, + "line": 1, }, }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 2, - }, - "start": Object { - "column": 9, - "line": 2, - }, - }, - "name": "bar", - "range": Array [ - 19, - 22, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 12, - "line": 2, - }, - "start": Object { - "column": 9, - "line": 2, - }, - }, - "method": false, - "range": Array [ - 19, - 22, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 2, - }, - "start": Object { - "column": 9, - "line": 2, - }, - }, - "name": "bar", - "range": Array [ - 19, - 22, - ], - "type": "Identifier", - }, + "name": "b", + "range": Array [ + 22, + 23, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 28, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "range": Array [ + 22, + 28, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 28, + "line": 1, }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 2, - }, - "start": Object { - "column": 14, - "line": 2, - }, - }, - "name": "baz", - "range": Array [ - 24, - 27, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 17, - "line": 2, - }, - "start": Object { - "column": 14, - "line": 2, - }, - }, - "method": false, - "range": Array [ - 24, - 27, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 2, - }, - "start": Object { - "column": 14, - "line": 2, - }, - }, - "name": "baz", - "range": Array [ - 24, - 27, - ], - "type": "Identifier", - }, + "start": Object { + "column": 26, + "line": 1, }, - ], + }, "range": Array [ - 18, + 26, 28, ], - "type": "ObjectPattern", + "raw": "42", + "type": "Literal", + "value": 42, }, - ], - "range": Array [ - 17, - 37, - ], - "type": "FunctionExpression", - }, - }, - ], - "loc": Object { - "end": Object { - "column": 1, - "line": 4, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "range": Array [ - 8, - 39, - ], - "type": "ClassBody", - }, - "id": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, + "type": "AssignmentPattern", + }, + Object { + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 30, + "line": 1, + }, + }, + "name": "c", + "range": Array [ + 30, + 31, + ], + "type": "Identifier", + }, + ], + "range": Array [ + 10, + 35, + ], + "type": "FunctionExpression", }, - "start": Object { - "column": 6, - "line": 1, + "loc": Object { + "end": Object { + "column": 35, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, }, + "range": Array [ + 4, + 35, + ], + "type": "VariableDeclarator", }, - "name": "A", - "range": Array [ - 6, - 7, - ], - "type": "Identifier", - }, + ], + "kind": "var", "loc": Object { "end": Object { - "column": 1, - "line": 4, + "column": 36, + "line": 1, }, "start": Object { "column": 0, @@ -34649,16 +34837,15 @@ Object { }, "range": Array [ 0, - 39, + 36, ], - "superClass": null, - "type": "ClassDeclaration", + "type": "VariableDeclaration", }, ], "loc": Object { "end": Object { - "column": 0, - "line": 5, + "column": 36, + "line": 1, }, "start": Object { "column": 0, @@ -34667,14 +34854,14 @@ Object { }, "range": Array [ 0, - 40, + 36, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 3, "line": 1, }, "start": Object { @@ -34684,10 +34871,10 @@ Object { }, "range": Array [ 0, - 5, + 3, ], "type": "Keyword", - "value": "class", + "value": "var", }, Object { "loc": Object { @@ -34696,16 +34883,16 @@ Object { "line": 1, }, "start": Object { - "column": 6, + "column": 4, "line": 1, }, }, "range": Array [ - 6, + 4, 7, ], "type": "Identifier", - "value": "A", + "value": "foo", }, Object { "loc": Object { @@ -34723,40 +34910,40 @@ Object { 9, ], "type": "Punctuator", - "value": "{", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 2, + "column": 18, + "line": 1, }, "start": Object { - "column": 4, - "line": 2, + "column": 10, + "line": 1, }, }, "range": Array [ - 14, - 17, + 10, + 18, ], - "type": "Identifier", - "value": "foo", + "type": "Keyword", + "value": "function", }, Object { "loc": Object { "end": Object { - "column": 8, - "line": 2, + "column": 19, + "line": 1, }, "start": Object { - "column": 7, - "line": 2, + "column": 18, + "line": 1, }, }, "range": Array [ - 17, 18, + 19, ], "type": "Punctuator", "value": "(", @@ -34764,102 +34951,102 @@ Object { Object { "loc": Object { "end": Object { - "column": 9, - "line": 2, + "column": 20, + "line": 1, }, "start": Object { - "column": 8, - "line": 2, + "column": 19, + "line": 1, }, }, "range": Array [ - 18, 19, + 20, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 12, - "line": 2, + "column": 21, + "line": 1, }, "start": Object { - "column": 9, - "line": 2, + "column": 20, + "line": 1, }, }, "range": Array [ - 19, - 22, + 20, + 21, ], - "type": "Identifier", - "value": "bar", + "type": "Punctuator", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 13, - "line": 2, + "column": 23, + "line": 1, }, "start": Object { - "column": 12, - "line": 2, + "column": 22, + "line": 1, }, }, "range": Array [ 22, 23, ], - "type": "Punctuator", - "value": ",", + "type": "Identifier", + "value": "b", }, Object { "loc": Object { "end": Object { - "column": 17, - "line": 2, + "column": 25, + "line": 1, }, "start": Object { - "column": 14, - "line": 2, + "column": 24, + "line": 1, }, }, "range": Array [ 24, - 27, + 25, ], - "type": "Identifier", - "value": "baz", + "type": "Punctuator", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 18, - "line": 2, + "column": 28, + "line": 1, }, "start": Object { - "column": 17, - "line": 2, + "column": 26, + "line": 1, }, }, "range": Array [ - 27, + 26, 28, ], - "type": "Punctuator", - "value": "}", + "type": "Numeric", + "value": "42", }, Object { "loc": Object { "end": Object { - "column": 19, - "line": 2, + "column": 29, + "line": 1, }, "start": Object { - "column": 18, - "line": 2, + "column": 28, + "line": 1, }, }, "range": Array [ @@ -34867,40 +35054,76 @@ Object { 29, ], "type": "Punctuator", - "value": ")", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 21, - "line": 2, + "column": 31, + "line": 1, }, "start": Object { - "column": 20, - "line": 2, + "column": 30, + "line": 1, }, }, "range": Array [ 30, 31, ], + "type": "Identifier", + "value": "c", + }, + Object { + "loc": Object { + "end": Object { + "column": 32, + "line": 1, + }, + "start": Object { + "column": 31, + "line": 1, + }, + }, + "range": Array [ + 31, + 32, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 34, + "line": 1, + }, + "start": Object { + "column": 33, + "line": 1, + }, + }, + "range": Array [ + 33, + 34, + ], "type": "Punctuator", "value": "{", }, Object { "loc": Object { "end": Object { - "column": 5, - "line": 3, + "column": 35, + "line": 1, }, "start": Object { - "column": 4, - "line": 3, + "column": 34, + "line": 1, }, }, "range": Array [ - 36, - 37, + 34, + 35, ], "type": "Punctuator", "value": "}", @@ -34908,27 +35131,27 @@ Object { Object { "loc": Object { "end": Object { - "column": 1, - "line": 4, + "column": 36, + "line": 1, }, "start": Object { - "column": 0, - "line": 4, + "column": 35, + "line": 1, }, }, "range": Array [ - 38, - 39, + 35, + 36, ], "type": "Punctuator", - "value": "}", + "value": ";", }, ], "type": "Program", } `; -exports[`javascript fixtures/destructuring/defaults-array.src 1`] = ` +exports[`javascript fixtures/destructuring/array-member.src 1`] = ` Object { "body": Array [ Object { @@ -34936,10 +35159,21 @@ Object { "left": Object { "elements": Array [ Object { - "left": Object { + "computed": false, + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "object": Object { "loc": Object { "end": Object { - "column": 2, + "column": 3, "line": 1, }, "start": Object { @@ -34947,47 +35181,36 @@ Object { "line": 1, }, }, - "name": "x", + "name": "ok", "range": Array [ 1, - 2, + 3, ], "type": "Identifier", }, - "loc": Object { - "end": Object { - "column": 5, - "line": 1, - }, - "start": Object { - "column": 1, - "line": 1, - }, - }, - "range": Array [ - 1, - 5, - ], - "right": Object { + "property": Object { "loc": Object { "end": Object { "column": 5, "line": 1, }, "start": Object { - "column": 3, + "column": 4, "line": 1, }, }, + "name": "v", "range": Array [ - 3, + 4, 5, ], - "raw": "10", - "type": "Literal", - "value": 10, + "type": "Identifier", }, - "type": "AssignmentPattern", + "range": Array [ + 1, + 5, + ], + "type": "MemberExpression", }, ], "loc": Object { @@ -35008,7 +35231,7 @@ Object { }, "loc": Object { "end": Object { - "column": 10, + "column": 11, "line": 1, }, "start": Object { @@ -35019,12 +35242,12 @@ Object { "operator": "=", "range": Array [ 0, - 10, + 11, ], "right": Object { "loc": Object { "end": Object { - "column": 10, + "column": 11, "line": 1, }, "start": Object { @@ -35032,18 +35255,19 @@ Object { "line": 1, }, }, - "name": "x", "range": Array [ 9, - 10, + 11, ], - "type": "Identifier", + "raw": "20", + "type": "Literal", + "value": 20, }, "type": "AssignmentExpression", }, "loc": Object { "end": Object { - "column": 10, + "column": 12, "line": 1, }, "start": Object { @@ -35053,14 +35277,14 @@ Object { }, "range": Array [ 0, - 10, + 12, ], "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 10, + "column": 12, "line": 1, }, "start": Object { @@ -35070,7 +35294,7 @@ Object { }, "range": Array [ 0, - 10, + 12, ], "sourceType": "script", "tokens": Array [ @@ -35095,7 +35319,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 2, + "column": 3, "line": 1, }, "start": Object { @@ -35105,28 +35329,28 @@ Object { }, "range": Array [ 1, - 2, + 3, ], "type": "Identifier", - "value": "x", + "value": "ok", }, Object { "loc": Object { "end": Object { - "column": 3, + "column": 4, "line": 1, }, "start": Object { - "column": 2, + "column": 3, "line": 1, }, }, "range": Array [ - 2, 3, + 4, ], "type": "Punctuator", - "value": "=", + "value": ".", }, Object { "loc": Object { @@ -35135,16 +35359,16 @@ Object { "line": 1, }, "start": Object { - "column": 3, + "column": 4, "line": 1, }, }, "range": Array [ - 3, + 4, 5, ], - "type": "Numeric", - "value": "10", + "type": "Identifier", + "value": "v", }, Object { "loc": Object { @@ -35185,7 +35409,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 10, + "column": 11, "line": 1, }, "start": Object { @@ -35195,242 +35419,169 @@ Object { }, "range": Array [ 9, - 10, + 11, ], - "type": "Identifier", - "value": "x", + "type": "Numeric", + "value": "20", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 12, + ], + "type": "Punctuator", + "value": ";", }, ], "type": "Program", } `; -exports[`javascript fixtures/destructuring/defaults-array-all.src 1`] = ` +exports[`javascript fixtures/destructuring/array-to-array.src 1`] = ` Object { "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "elements": Array [ - Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 5, - 6, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, + "expression": Object { + "left": Object { + "elements": Array [ + Object { + "loc": Object { + "end": Object { + "column": 2, + "line": 1, }, - "range": Array [ - 5, - 11, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 11, - ], - "raw": "10", - "type": "Literal", - "value": 10, + "start": Object { + "column": 1, + "line": 1, }, - "type": "AssignmentPattern", }, - Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "name": "y", - "range": Array [ - 13, - 14, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, + "name": "a", + "range": Array [ + 1, + 2, + ], + "type": "Identifier", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, }, - "range": Array [ - 13, - 18, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 17, - "line": 1, - }, - }, - "range": Array [ - 17, - 18, - ], - "raw": "5", - "type": "Literal", - "value": 5, + "start": Object { + "column": 4, + "line": 1, }, - "type": "AssignmentPattern", }, - Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, - }, - "name": "z", - "range": Array [ - 20, - 21, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 25, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, + "name": "b", + "range": Array [ + 4, + 5, + ], + "type": "Identifier", + }, + ], + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 6, + ], + "type": "ArrayPattern", + }, + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "operator": "=", + "range": Array [ + 0, + 15, + ], + "right": Object { + "elements": Array [ + Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, }, - "range": Array [ - 20, - 25, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 25, - "line": 1, - }, - "start": Object { - "column": 24, - "line": 1, - }, - }, - "range": Array [ - 24, - 25, - ], - "raw": "1", - "type": "Literal", - "value": 1, + "start": Object { + "column": 10, + "line": 1, }, - "type": "AssignmentPattern", - }, - ], - "loc": Object { - "end": Object { - "column": 26, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, }, + "name": "b", + "range": Array [ + 10, + 11, + ], + "type": "Identifier", }, - "range": Array [ - 4, - 26, - ], - "type": "ArrayPattern", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 30, - "line": 1, - }, - "start": Object { - "column": 29, - "line": 1, + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, }, + "name": "a", + "range": Array [ + 13, + 14, + ], + "type": "Identifier", }, - "name": "a", - "range": Array [ - 29, - 30, - ], - "type": "Identifier", - }, + ], "loc": Object { "end": Object { - "column": 30, + "column": 15, "line": 1, }, "start": Object { - "column": 4, + "column": 9, "line": 1, }, }, "range": Array [ - 4, - 30, + 9, + 15, ], - "type": "VariableDeclarator", + "type": "ArrayExpression", }, - ], - "kind": "var", + "type": "AssignmentExpression", + }, "loc": Object { "end": Object { - "column": 31, + "column": 16, "line": 1, }, "start": Object { @@ -35440,14 +35591,14 @@ Object { }, "range": Array [ 0, - 31, + 16, ], - "type": "VariableDeclaration", + "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 31, + "column": 16, "line": 1, }, "start": Object { @@ -35457,14 +35608,14 @@ Object { }, "range": Array [ 0, - 31, + 16, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, + "column": 1, "line": 1, }, "start": Object { @@ -35474,10 +35625,46 @@ Object { }, "range": Array [ 0, + 1, + ], + "type": "Punctuator", + "value": "[", + }, + Object { + "loc": Object { + "end": Object { + "column": 2, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "range": Array [ + 1, + 2, + ], + "type": "Identifier", + "value": "a", + }, + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 1, + }, + "start": Object { + "column": 2, + "line": 1, + }, + }, + "range": Array [ + 2, 3, ], - "type": "Keyword", - "value": "var", + "type": "Punctuator", + "value": ",", }, Object { "loc": Object { @@ -35494,8 +35681,8 @@ Object { 4, 5, ], - "type": "Punctuator", - "value": "[", + "type": "Identifier", + "value": "b", }, Object { "loc": Object { @@ -35512,8 +35699,8 @@ Object { 5, 6, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": "]", }, Object { "loc": Object { @@ -35536,7 +35723,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 11, + "column": 10, "line": 1, }, "start": Object { @@ -35546,10 +35733,28 @@ Object { }, "range": Array [ 9, + 10, + ], + "type": "Punctuator", + "value": "[", + }, + Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "range": Array [ + 10, 11, ], - "type": "Numeric", - "value": "10", + "type": "Identifier", + "value": "b", }, Object { "loc": Object { @@ -35585,235 +35790,61 @@ Object { 14, ], "type": "Identifier", - "value": "y", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 15, "line": 1, }, "start": Object { - "column": 15, + "column": 14, "line": 1, }, }, "range": Array [ + 14, 15, - 16, ], "type": "Punctuator", - "value": "=", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 16, "line": 1, }, "start": Object { - "column": 17, + "column": 15, "line": 1, }, }, "range": Array [ - 17, - 18, + 15, + 16, ], - "type": "Numeric", - "value": "5", + "type": "Punctuator", + "value": ";", }, - Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, - }, - "range": Array [ - 18, - 19, - ], - "type": "Punctuator", - "value": ",", - }, - Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, - }, - "range": Array [ - 20, - 21, - ], - "type": "Identifier", - "value": "z", - }, - Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 22, - "line": 1, - }, - }, - "range": Array [ - 22, - 23, - ], - "type": "Punctuator", - "value": "=", - }, - Object { - "loc": Object { - "end": Object { - "column": 25, - "line": 1, - }, - "start": Object { - "column": 24, - "line": 1, - }, - }, - "range": Array [ - 24, - 25, - ], - "type": "Numeric", - "value": "1", - }, - Object { - "loc": Object { - "end": Object { - "column": 26, - "line": 1, - }, - "start": Object { - "column": 25, - "line": 1, - }, - }, - "range": Array [ - 25, - 26, - ], - "type": "Punctuator", - "value": "]", - }, - Object { - "loc": Object { - "end": Object { - "column": 28, - "line": 1, - }, - "start": Object { - "column": 27, - "line": 1, - }, - }, - "range": Array [ - 27, - 28, - ], - "type": "Punctuator", - "value": "=", - }, - Object { - "loc": Object { - "end": Object { - "column": 30, - "line": 1, - }, - "start": Object { - "column": 29, - "line": 1, - }, - }, - "range": Array [ - 29, - 30, - ], - "type": "Identifier", - "value": "a", - }, - Object { - "loc": Object { - "end": Object { - "column": 31, - "line": 1, - }, - "start": Object { - "column": 30, - "line": 1, - }, - }, - "range": Array [ - 30, - 31, - ], - "type": "Punctuator", - "value": ";", - }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/destructuring/defaults-array-longform-nested-multi.src 1`] = ` -Object { - "body": Array [ + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/destructuring/array-var-undefined.src 1`] = ` +Object { + "body": Array [ Object { "declarations": Array [ Object { "id": Object { - "loc": Object { - "end": Object { - "column": 34, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "properties": Array [ + "elements": Array [ Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 5, - 6, - ], - "type": "Identifier", - }, - "kind": "init", "loc": Object { "end": Object { - "column": 9, + "column": 6, "line": 1, }, "start": Object { @@ -35821,268 +35852,51 @@ Object { "line": 1, }, }, - "method": false, + "name": "a", "range": Array [ 5, - 9, + 6, ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 8, - 9, - ], - "type": "Identifier", - }, + "type": "Identifier", }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "name": "y", - "range": Array [ - 11, - 12, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 11, - 15, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "name": "y", - "range": Array [ - 14, - 15, - ], - "type": "Identifier", - }, + ], + "loc": Object { + "end": Object { + "column": 7, + "line": 1, }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 17, - "line": 1, - }, - }, - "name": "z", - "range": Array [ - 17, - 18, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 32, - "line": 1, - }, - "start": Object { - "column": 17, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 17, - 32, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 32, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 22, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 22, - 23, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 31, - "line": 1, - }, - "start": Object { - "column": 22, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 22, - 31, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 26, - "line": 1, - }, - "start": Object { - "column": 25, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 25, - 26, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 31, - "line": 1, - }, - "start": Object { - "column": 25, - "line": 1, - }, - }, - "range": Array [ - 25, - 31, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 31, - "line": 1, - }, - "start": Object { - "column": 29, - "line": 1, - }, - }, - "range": Array [ - 29, - 31, - ], - "raw": "10", - "type": "Literal", - "value": 10, - }, - "type": "AssignmentPattern", - }, - }, - ], - "range": Array [ - 20, - 32, - ], - "type": "ObjectPattern", - }, + "start": Object { + "column": 4, + "line": 1, }, - ], + }, "range": Array [ 4, - 34, + 7, ], - "type": "ObjectPattern", + "type": "ArrayPattern", }, "init": Object { + "elements": Array [], "loc": Object { "end": Object { - "column": 38, + "column": 12, "line": 1, }, "start": Object { - "column": 37, + "column": 10, "line": 1, }, }, - "name": "b", "range": Array [ - 37, - 38, + 10, + 12, ], - "type": "Identifier", + "type": "ArrayExpression", }, "loc": Object { "end": Object { - "column": 38, + "column": 12, "line": 1, }, "start": Object { @@ -36092,7 +35906,7 @@ Object { }, "range": Array [ 4, - 38, + 12, ], "type": "VariableDeclarator", }, @@ -36100,7 +35914,7 @@ Object { "kind": "var", "loc": Object { "end": Object { - "column": 39, + "column": 13, "line": 1, }, "start": Object { @@ -36110,14 +35924,14 @@ Object { }, "range": Array [ 0, - 39, + 13, ], "type": "VariableDeclaration", }, ], "loc": Object { "end": Object { - "column": 39, + "column": 13, "line": 1, }, "start": Object { @@ -36127,7 +35941,7 @@ Object { }, "range": Array [ 0, - 39, + 13, ], "sourceType": "script", "tokens": Array [ @@ -36165,7 +35979,7 @@ Object { 5, ], "type": "Punctuator", - "value": "{", + "value": "[", }, Object { "loc": Object { @@ -36183,7 +35997,7 @@ Object { 6, ], "type": "Identifier", - "value": "x", + "value": "a", }, Object { "loc": Object { @@ -36201,7 +36015,7 @@ Object { 7, ], "type": "Punctuator", - "value": ":", + "value": "]", }, Object { "loc": Object { @@ -36218,26 +36032,26 @@ Object { 8, 9, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 11, "line": 1, }, "start": Object { - "column": 9, + "column": 10, "line": 1, }, }, "range": Array [ - 9, 10, + 11, ], "type": "Punctuator", - "value": ",", + "value": "[", }, Object { "loc": Object { @@ -36254,8 +36068,8 @@ Object { 11, 12, ], - "type": "Identifier", - "value": "y", + "type": "Punctuator", + "value": "]", }, Object { "loc": Object { @@ -36273,274 +36087,244 @@ Object { 13, ], "type": "Punctuator", - "value": ":", - }, - Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "range": Array [ - 14, - 15, - ], - "type": "Identifier", - "value": "y", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/destructuring/call-expression-destruction-array.src 1`] = ` +Object { + "body": Array [ Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "range": Array [ - 15, - 16, - ], - "type": "Punctuator", - "value": ",", - }, - Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 17, - "line": 1, - }, - }, - "range": Array [ - 17, - 18, - ], - "type": "Identifier", - "value": "z", - }, - Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 1, + "expression": Object { + "arguments": Array [ + Object { + "argument": Object { + "elements": Array [], + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "range": Array [ + 7, + 9, + ], + "type": "ArrayExpression", + }, + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 9, + ], + "type": "SpreadElement", + }, + ], + "callee": Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "name": "foo", + "range": Array [ + 0, + 3, + ], + "type": "Identifier", }, - "start": Object { - "column": 18, - "line": 1, + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, }, + "range": Array [ + 0, + 10, + ], + "type": "CallExpression", }, - "range": Array [ - 18, - 19, - ], - "type": "Punctuator", - "value": ":", - }, - Object { "loc": Object { "end": Object { - "column": 21, + "column": 11, "line": 1, }, "start": Object { - "column": 20, + "column": 0, "line": 1, }, }, "range": Array [ - 20, - 21, + 0, + 11, ], - "type": "Punctuator", - "value": "{", + "type": "ExpressionStatement", }, - Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 22, - "line": 1, - }, - }, - "range": Array [ - 22, - 23, - ], - "type": "Identifier", - "value": "a", + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, }, - Object { - "loc": Object { - "end": Object { - "column": 24, - "line": 1, - }, - "start": Object { - "column": 23, - "line": 1, - }, - }, - "range": Array [ - 23, - 24, - ], - "type": "Punctuator", - "value": ":", + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 12, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 26, + "column": 3, "line": 1, }, "start": Object { - "column": 25, + "column": 0, "line": 1, }, }, "range": Array [ - 25, - 26, + 0, + 3, ], "type": "Identifier", - "value": "a", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 28, + "column": 4, "line": 1, }, "start": Object { - "column": 27, + "column": 3, "line": 1, }, }, "range": Array [ - 27, - 28, + 3, + 4, ], "type": "Punctuator", - "value": "=", - }, - Object { - "loc": Object { - "end": Object { - "column": 31, - "line": 1, - }, - "start": Object { - "column": 29, - "line": 1, - }, - }, - "range": Array [ - 29, - 31, - ], - "type": "Numeric", - "value": "10", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 32, + "column": 7, "line": 1, }, "start": Object { - "column": 31, + "column": 4, "line": 1, }, }, "range": Array [ - 31, - 32, + 4, + 7, ], "type": "Punctuator", - "value": "}", + "value": "...", }, Object { "loc": Object { "end": Object { - "column": 34, + "column": 8, "line": 1, }, "start": Object { - "column": 33, + "column": 7, "line": 1, }, }, "range": Array [ - 33, - 34, + 7, + 8, ], "type": "Punctuator", - "value": "}", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 36, + "column": 9, "line": 1, }, "start": Object { - "column": 35, + "column": 8, "line": 1, }, }, "range": Array [ - 35, - 36, + 8, + 9, ], "type": "Punctuator", - "value": "=", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 38, + "column": 10, "line": 1, }, "start": Object { - "column": 37, + "column": 9, "line": 1, }, }, "range": Array [ - 37, - 38, + 9, + 10, ], - "type": "Identifier", - "value": "b", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 39, + "column": 11, "line": 1, }, "start": Object { - "column": 38, + "column": 10, "line": 1, }, }, "range": Array [ - 38, - 39, + 10, + 11, ], "type": "Punctuator", "value": ";", @@ -36550,108 +36334,34 @@ Object { } `; -exports[`javascript fixtures/destructuring/defaults-array-multi.src 1`] = ` +exports[`javascript fixtures/destructuring/call-expression-destruction-object.src 1`] = ` Object { "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "elements": Array [ - Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 5, - 6, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "range": Array [ - 5, - 11, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 11, - ], - "raw": "10", - "type": "Literal", - "value": 10, - }, - "type": "AssignmentPattern", - }, - Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, + "expression": Object { + "arguments": Array [ + Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, }, - "name": "y", - "range": Array [ - 13, - 14, - ], - "type": "Identifier", - }, - Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, + "start": Object { + "column": 7, + "line": 1, }, - "name": "z", - "range": Array [ - 16, - 17, - ], - "type": "Identifier", }, - ], + "properties": Array [], + "range": Array [ + 7, + 9, + ], + "type": "ObjectExpression", + }, "loc": Object { "end": Object { - "column": 18, + "column": 9, "line": 1, }, "start": Object { @@ -36661,49 +36371,48 @@ Object { }, "range": Array [ 4, - 18, - ], - "type": "ArrayPattern", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 21, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 21, - 22, + 9, ], - "type": "Identifier", + "type": "SpreadElement", }, + ], + "callee": Object { "loc": Object { "end": Object { - "column": 22, + "column": 3, "line": 1, }, "start": Object { - "column": 4, + "column": 0, "line": 1, }, }, + "name": "foo", "range": Array [ - 4, - 22, + 0, + 3, ], - "type": "VariableDeclarator", + "type": "Identifier", }, - ], - "kind": "var", + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 10, + ], + "type": "CallExpression", + }, "loc": Object { "end": Object { - "column": 23, + "column": 11, "line": 1, }, "start": Object { @@ -36713,15 +36422,15 @@ Object { }, "range": Array [ 0, - 23, + 11, ], - "type": "VariableDeclaration", + "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 23, - "line": 1, + "column": 0, + "line": 2, }, "start": Object { "column": 0, @@ -36730,7 +36439,7 @@ Object { }, "range": Array [ 0, - 23, + 12, ], "sourceType": "script", "tokens": Array [ @@ -36749,44 +36458,44 @@ Object { 0, 3, ], - "type": "Keyword", - "value": "var", + "type": "Identifier", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 4, "line": 1, }, "start": Object { - "column": 4, + "column": 3, "line": 1, }, }, "range": Array [ + 3, 4, - 5, ], "type": "Punctuator", - "value": "[", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 6, + "column": 7, "line": 1, }, "start": Object { - "column": 5, + "column": 4, "line": 1, }, }, "range": Array [ - 5, - 6, + 4, + 7, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": "...", }, Object { "loc": Object { @@ -36804,367 +36513,246 @@ Object { 8, ], "type": "Punctuator", - "value": "=", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { "column": 9, "line": 1, }, - }, - "range": Array [ - 9, - 11, - ], - "type": "Numeric", - "value": "10", - }, - Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, "start": Object { - "column": 11, + "column": 8, "line": 1, }, }, "range": Array [ - 11, - 12, + 8, + 9, ], "type": "Punctuator", - "value": ",", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 10, "line": 1, }, "start": Object { - "column": 13, + "column": 9, "line": 1, }, }, "range": Array [ - 13, - 14, + 9, + 10, ], - "type": "Identifier", - "value": "y", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 11, "line": 1, }, "start": Object { - "column": 14, + "column": 10, "line": 1, }, }, "range": Array [ - 14, - 15, + 10, + 11, ], "type": "Punctuator", - "value": ",", - }, - Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "range": Array [ - 16, - 17, - ], - "type": "Identifier", - "value": "z", - }, - Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 17, - "line": 1, - }, - }, - "range": Array [ - 17, - 18, - ], - "type": "Punctuator", - "value": "]", - }, - Object { - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 19, - "line": 1, - }, - }, - "range": Array [ - 19, - 20, - ], - "type": "Punctuator", - "value": "=", - }, - Object { - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 21, - "line": 1, - }, - }, - "range": Array [ - 21, - 22, - ], - "type": "Identifier", - "value": "a", - }, - Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 22, - "line": 1, - }, - }, - "range": Array [ - 22, - 23, - ], - "type": "Punctuator", - "value": ";", + "value": ";", }, ], "type": "Program", } `; -exports[`javascript fixtures/destructuring/defaults-array-nested-all.src 1`] = ` +exports[`javascript fixtures/destructuring/class-constructor-params-array.src 1`] = ` Object { "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "elements": Array [ - Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 5, - 6, - ], - "type": "Identifier", + "body": Object { + "body": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, }, + }, + "name": "consturctor", + "range": Array [ + 14, + 25, + ], + "type": "Identifier", + }, + "kind": "method", + "loc": Object { + "end": Object { + "column": 5, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "range": Array [ + 14, + 45, + ], + "static": false, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [], "loc": Object { "end": Object { - "column": 11, - "line": 1, + "column": 5, + "line": 3, }, "start": Object { - "column": 5, - "line": 1, + "column": 28, + "line": 2, }, }, "range": Array [ - 5, - 11, + 38, + 45, ], - "right": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 11, - ], - "raw": "10", - "type": "Literal", - "value": 10, + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 5, + "line": 3, + }, + "start": Object { + "column": 15, + "line": 2, }, - "type": "AssignmentPattern", }, - Object { - "elements": Array [ - Object { - "left": Object { + "params": Array [ + Object { + "elements": Array [ + Object { "loc": Object { "end": Object { - "column": 16, - "line": 1, + "column": 20, + "line": 2, }, "start": Object { - "column": 15, - "line": 1, + "column": 17, + "line": 2, }, }, - "name": "z", + "name": "foo", "range": Array [ - 15, - 16, + 27, + 30, ], "type": "Identifier", }, - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "range": Array [ - 15, - 21, - ], - "right": Object { + Object { "loc": Object { "end": Object { - "column": 21, - "line": 1, + "column": 25, + "line": 2, }, "start": Object { - "column": 19, - "line": 1, + "column": 22, + "line": 2, }, }, + "name": "bar", "range": Array [ - 19, - 21, + 32, + 35, ], - "raw": "10", - "type": "Literal", - "value": 10, + "type": "Identifier", + }, + ], + "loc": Object { + "end": Object { + "column": 26, + "line": 2, + }, + "start": Object { + "column": 16, + "line": 2, }, - "type": "AssignmentPattern", - }, - ], - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, }, + "range": Array [ + 26, + 36, + ], + "type": "ArrayPattern", }, - "range": Array [ - 13, - 22, - ], - "type": "ArrayPattern", - }, - ], - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, + ], + "range": Array [ + 25, + 45, + ], + "type": "FunctionExpression", }, - "range": Array [ - 4, - 23, - ], - "type": "ArrayPattern", }, - "init": Object { - "loc": Object { - "end": Object { - "column": 27, - "line": 1, - }, - "start": Object { - "column": 26, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 26, - 27, - ], - "type": "Identifier", + ], + "loc": Object { + "end": Object { + "column": 1, + "line": 4, }, - "loc": Object { - "end": Object { - "column": 27, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, + "start": Object { + "column": 8, + "line": 1, }, - "range": Array [ - 4, - 27, - ], - "type": "VariableDeclarator", }, - ], - "kind": "var", + "range": Array [ + 8, + 47, + ], + "type": "ClassBody", + }, + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "A", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 28, - "line": 1, + "column": 1, + "line": 4, }, "start": Object { "column": 0, @@ -37173,15 +36761,16 @@ Object { }, "range": Array [ 0, - 28, + 47, ], - "type": "VariableDeclaration", + "superClass": null, + "type": "ClassDeclaration", }, ], "loc": Object { "end": Object { - "column": 28, - "line": 1, + "column": 0, + "line": 5, }, "start": Object { "column": 0, @@ -37190,14 +36779,14 @@ Object { }, "range": Array [ 0, - 28, + 48, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, + "column": 5, "line": 1, }, "start": Object { @@ -37207,115 +36796,97 @@ Object { }, "range": Array [ 0, - 3, + 5, ], "type": "Keyword", - "value": "var", + "value": "class", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 7, "line": 1, }, "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 5, - ], - "type": "Punctuator", - "value": "[", - }, - Object { - "loc": Object { - "end": Object { "column": 6, "line": 1, }, - "start": Object { - "column": 5, - "line": 1, - }, }, "range": Array [ - 5, 6, + 7, ], "type": "Identifier", - "value": "x", + "value": "A", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 9, "line": 1, }, "start": Object { - "column": 7, + "column": 8, "line": 1, }, }, "range": Array [ - 7, 8, + 9, ], "type": "Punctuator", - "value": "=", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 11, - "line": 1, + "column": 15, + "line": 2, }, "start": Object { - "column": 9, - "line": 1, + "column": 4, + "line": 2, }, }, "range": Array [ - 9, - 11, + 14, + 25, ], - "type": "Numeric", - "value": "10", + "type": "Identifier", + "value": "consturctor", }, Object { "loc": Object { "end": Object { - "column": 12, - "line": 1, + "column": 16, + "line": 2, }, "start": Object { - "column": 11, - "line": 1, + "column": 15, + "line": 2, }, }, "range": Array [ - 11, - 12, + 25, + 26, ], "type": "Punctuator", - "value": ",", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 14, - "line": 1, + "column": 17, + "line": 2, }, "start": Object { - "column": 13, - "line": 1, + "column": 16, + "line": 2, }, }, "range": Array [ - 13, - 14, + 26, + 27, ], "type": "Punctuator", "value": "[", @@ -37323,71 +36894,71 @@ Object { Object { "loc": Object { "end": Object { - "column": 16, - "line": 1, + "column": 20, + "line": 2, }, "start": Object { - "column": 15, - "line": 1, + "column": 17, + "line": 2, }, }, "range": Array [ - 15, - 16, + 27, + 30, ], "type": "Identifier", - "value": "z", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 18, - "line": 1, + "column": 21, + "line": 2, }, "start": Object { - "column": 17, - "line": 1, + "column": 20, + "line": 2, }, }, "range": Array [ - 17, - 18, + 30, + 31, ], "type": "Punctuator", - "value": "=", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 21, - "line": 1, + "column": 25, + "line": 2, }, "start": Object { - "column": 19, - "line": 1, + "column": 22, + "line": 2, }, }, "range": Array [ - 19, - 21, + 32, + 35, ], - "type": "Numeric", - "value": "10", + "type": "Identifier", + "value": "bar", }, Object { "loc": Object { "end": Object { - "column": 22, - "line": 1, + "column": 26, + "line": 2, }, "start": Object { - "column": 21, - "line": 1, + "column": 25, + "line": 2, }, }, "range": Array [ - 21, - 22, + 35, + 36, ], "type": "Punctuator", "value": "]", @@ -37395,236 +36966,331 @@ Object { Object { "loc": Object { "end": Object { - "column": 23, - "line": 1, + "column": 27, + "line": 2, }, "start": Object { - "column": 22, - "line": 1, + "column": 26, + "line": 2, }, }, "range": Array [ - 22, - 23, + 36, + 37, ], "type": "Punctuator", - "value": "]", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 25, - "line": 1, + "column": 29, + "line": 2, }, "start": Object { - "column": 24, - "line": 1, + "column": 28, + "line": 2, }, }, "range": Array [ - 24, - 25, + 38, + 39, ], "type": "Punctuator", - "value": "=", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 27, - "line": 1, + "column": 5, + "line": 3, }, "start": Object { - "column": 26, - "line": 1, + "column": 4, + "line": 3, }, }, "range": Array [ - 26, - 27, + 44, + 45, ], - "type": "Identifier", - "value": "a", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 28, - "line": 1, + "column": 1, + "line": 4, }, "start": Object { - "column": 27, - "line": 1, + "column": 0, + "line": 4, }, }, "range": Array [ - 27, - 28, + 46, + 47, ], "type": "Punctuator", - "value": ";", + "value": "}", }, ], "type": "Program", } `; -exports[`javascript fixtures/destructuring/defaults-array-nested-multi.src 1`] = ` +exports[`javascript fixtures/destructuring/class-constructor-params-defaults-array.src 1`] = ` Object { "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "elements": Array [ - Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 5, - 6, - ], - "type": "Identifier", + "body": Object { + "body": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, }, + }, + "name": "consturctor", + "range": Array [ + 14, + 25, + ], + "type": "Identifier", + }, + "kind": "method", + "loc": Object { + "end": Object { + "column": 5, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "range": Array [ + 14, + 49, + ], + "static": false, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [], "loc": Object { "end": Object { - "column": 11, - "line": 1, + "column": 5, + "line": 3, }, "start": Object { - "column": 5, - "line": 1, + "column": 32, + "line": 2, }, }, "range": Array [ - 5, - 11, + 42, + 49, ], - "right": Object { + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 5, + "line": 3, + }, + "start": Object { + "column": 15, + "line": 2, + }, + }, + "params": Array [ + Object { + "elements": Array [ + Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 2, + }, + "start": Object { + "column": 17, + "line": 2, + }, + }, + "name": "foo", + "range": Array [ + 27, + 30, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 22, + "line": 2, + }, + "start": Object { + "column": 17, + "line": 2, + }, + }, + "range": Array [ + 27, + 32, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 2, + }, + "start": Object { + "column": 21, + "line": 2, + }, + }, + "range": Array [ + 31, + 32, + ], + "raw": "3", + "type": "Literal", + "value": 3, + }, + "type": "AssignmentPattern", + }, + Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 27, + "line": 2, + }, + "start": Object { + "column": 24, + "line": 2, + }, + }, + "name": "bar", + "range": Array [ + 34, + 37, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 29, + "line": 2, + }, + "start": Object { + "column": 24, + "line": 2, + }, + }, + "range": Array [ + 34, + 39, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 29, + "line": 2, + }, + "start": Object { + "column": 28, + "line": 2, + }, + }, + "range": Array [ + 38, + 39, + ], + "raw": "4", + "type": "Literal", + "value": 4, + }, + "type": "AssignmentPattern", + }, + ], "loc": Object { "end": Object { - "column": 11, - "line": 1, + "column": 30, + "line": 2, }, "start": Object { - "column": 9, - "line": 1, + "column": 16, + "line": 2, }, }, "range": Array [ - 9, - 11, + 26, + 40, ], - "raw": "10", - "type": "Literal", - "value": 10, - }, - "type": "AssignmentPattern", - }, - Object { - "elements": Array [ - Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "name": "z", - "range": Array [ - 15, - 16, - ], - "type": "Identifier", - }, - ], - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, + "type": "ArrayPattern", }, - "range": Array [ - 13, - 18, - ], - "type": "ArrayPattern", - }, - ], - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, + ], + "range": Array [ + 25, + 49, + ], + "type": "FunctionExpression", }, - "range": Array [ - 4, - 19, - ], - "type": "ArrayPattern", }, - "init": Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 22, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 22, - 23, - ], - "type": "Identifier", + ], + "loc": Object { + "end": Object { + "column": 1, + "line": 4, }, - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, + "start": Object { + "column": 8, + "line": 1, }, - "range": Array [ - 4, - 23, - ], - "type": "VariableDeclarator", }, - ], - "kind": "var", + "range": Array [ + 8, + 51, + ], + "type": "ClassBody", + }, + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "A", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 24, - "line": 1, + "column": 1, + "line": 4, }, "start": Object { "column": 0, @@ -37633,15 +37299,16 @@ Object { }, "range": Array [ 0, - 24, + 51, ], - "type": "VariableDeclaration", + "superClass": null, + "type": "ClassDeclaration", }, ], "loc": Object { "end": Object { - "column": 24, - "line": 1, + "column": 0, + "line": 5, }, "start": Object { "column": 0, @@ -37650,14 +37317,14 @@ Object { }, "range": Array [ 0, - 24, + 52, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, + "column": 5, "line": 1, }, "start": Object { @@ -37667,115 +37334,97 @@ Object { }, "range": Array [ 0, - 3, + 5, ], "type": "Keyword", - "value": "var", + "value": "class", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 7, "line": 1, }, "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 5, - ], - "type": "Punctuator", - "value": "[", - }, - Object { - "loc": Object { - "end": Object { "column": 6, "line": 1, }, - "start": Object { - "column": 5, - "line": 1, - }, }, "range": Array [ - 5, 6, + 7, ], "type": "Identifier", - "value": "x", + "value": "A", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 9, "line": 1, }, "start": Object { - "column": 7, + "column": 8, "line": 1, }, }, "range": Array [ - 7, 8, + 9, ], "type": "Punctuator", - "value": "=", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 11, - "line": 1, + "column": 15, + "line": 2, }, "start": Object { - "column": 9, - "line": 1, + "column": 4, + "line": 2, }, }, "range": Array [ - 9, - 11, + 14, + 25, ], - "type": "Numeric", - "value": "10", + "type": "Identifier", + "value": "consturctor", }, Object { "loc": Object { "end": Object { - "column": 12, - "line": 1, + "column": 16, + "line": 2, }, "start": Object { - "column": 11, - "line": 1, + "column": 15, + "line": 2, }, }, "range": Array [ - 11, - 12, + 25, + 26, ], "type": "Punctuator", - "value": ",", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 14, - "line": 1, + "column": 17, + "line": 2, }, "start": Object { - "column": 13, - "line": 1, + "column": 16, + "line": 2, }, }, "range": Array [ - 13, - 14, + 26, + 27, ], "type": "Punctuator", "value": "[", @@ -37783,71 +37432,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "range": Array [ - 15, - 16, - ], - "type": "Identifier", - "value": "z", - }, - Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 1, + "column": 20, + "line": 2, }, "start": Object { "column": 17, - "line": 1, - }, - }, - "range": Array [ - 17, - 18, - ], - "type": "Punctuator", - "value": "]", - }, - Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, + "line": 2, }, }, "range": Array [ - 18, - 19, + 27, + 30, ], - "type": "Punctuator", - "value": "]", + "type": "Identifier", + "value": "foo", }, Object { "loc": Object { "end": Object { "column": 21, - "line": 1, + "line": 2, }, "start": Object { "column": 20, - "line": 1, + "line": 2, }, }, "range": Array [ - 20, - 21, + 30, + 31, ], "type": "Punctuator", "value": "=", @@ -37855,724 +37468,517 @@ Object { Object { "loc": Object { "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { "column": 22, - "line": 1, - }, - }, - "range": Array [ - 22, - 23, - ], - "type": "Identifier", - "value": "a", - }, - Object { - "loc": Object { - "end": Object { - "column": 24, - "line": 1, + "line": 2, }, "start": Object { - "column": 23, - "line": 1, + "column": 21, + "line": 2, }, }, "range": Array [ - 23, - 24, + 31, + 32, ], - "type": "Punctuator", - "value": ";", + "type": "Numeric", + "value": "3", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/destructuring/defaults-object.src 1`] = ` -Object { - "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 5, - 6, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 5, - 11, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 5, - 6, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "range": Array [ - 5, - 11, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 11, - ], - "raw": "10", - "type": "Literal", - "value": 10, - }, - "type": "AssignmentPattern", - }, - }, - ], - "range": Array [ - 4, - 12, - ], - "type": "ObjectPattern", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 15, - 16, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 16, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "var", "loc": Object { "end": Object { - "column": 16, - "line": 1, + "column": 23, + "line": 2, }, "start": Object { - "column": 0, - "line": 1, + "column": 22, + "line": 2, }, }, "range": Array [ - 0, - 16, + 32, + 33, ], - "type": "VariableDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Punctuator", + "value": ",", }, - }, - "range": Array [ - 0, - 16, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, - "line": 1, + "column": 27, + "line": 2, }, "start": Object { - "column": 0, - "line": 1, + "column": 24, + "line": 2, }, }, "range": Array [ - 0, - 3, + 34, + 37, ], - "type": "Keyword", - "value": "var", + "type": "Identifier", + "value": "bar", }, Object { "loc": Object { "end": Object { - "column": 5, - "line": 1, + "column": 28, + "line": 2, }, "start": Object { - "column": 4, - "line": 1, + "column": 27, + "line": 2, }, }, "range": Array [ - 4, - 5, + 37, + 38, ], "type": "Punctuator", - "value": "{", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 6, - "line": 1, + "column": 29, + "line": 2, }, "start": Object { - "column": 5, - "line": 1, + "column": 28, + "line": 2, }, }, "range": Array [ - 5, - 6, + 38, + 39, ], - "type": "Identifier", - "value": "x", + "type": "Numeric", + "value": "4", }, Object { "loc": Object { "end": Object { - "column": 8, - "line": 1, + "column": 30, + "line": 2, }, "start": Object { - "column": 7, - "line": 1, + "column": 29, + "line": 2, }, }, "range": Array [ - 7, - 8, + 39, + 40, ], "type": "Punctuator", - "value": "=", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 11, - "line": 1, + "column": 31, + "line": 2, }, "start": Object { - "column": 9, - "line": 1, + "column": 30, + "line": 2, }, }, "range": Array [ - 9, - 11, + 40, + 41, ], - "type": "Numeric", - "value": "10", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 12, - "line": 1, + "column": 33, + "line": 2, }, "start": Object { - "column": 11, - "line": 1, + "column": 32, + "line": 2, }, }, "range": Array [ - 11, - 12, + 42, + 43, ], "type": "Punctuator", - "value": "}", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 14, - "line": 1, + "column": 5, + "line": 3, }, "start": Object { - "column": 13, - "line": 1, + "column": 4, + "line": 3, }, }, "range": Array [ - 13, - 14, + 48, + 49, ], "type": "Punctuator", - "value": "=", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 16, - "line": 1, + "column": 1, + "line": 4, }, "start": Object { - "column": 15, - "line": 1, + "column": 0, + "line": 4, }, }, "range": Array [ - 15, - 16, + 50, + 51, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": "}", }, ], "type": "Program", } `; -exports[`javascript fixtures/destructuring/defaults-object-all.src 1`] = ` +exports[`javascript fixtures/destructuring/class-constructor-params-defaults-object.src 1`] = ` Object { "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { + "body": Object { + "body": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "name": "consturctor", + "range": Array [ + 14, + 25, + ], + "type": "Identifier", + }, + "kind": "method", "loc": Object { "end": Object { - "column": 26, - "line": 1, + "column": 5, + "line": 3, }, "start": Object { "column": 4, - "line": 1, + "line": 2, }, }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 5, - 6, - ], - "type": "Identifier", - }, - "kind": "init", + "range": Array [ + 14, + 49, + ], + "static": false, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [], "loc": Object { "end": Object { - "column": 11, - "line": 1, + "column": 5, + "line": 3, }, "start": Object { - "column": 5, - "line": 1, + "column": 32, + "line": 2, }, }, - "method": false, "range": Array [ - 5, - 11, + 42, + 49, ], - "shorthand": true, - "type": "Property", - "value": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 5, - 6, - ], - "type": "Identifier", - }, + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 5, + "line": 3, + }, + "start": Object { + "column": 15, + "line": 2, + }, + }, + "params": Array [ + Object { "loc": Object { "end": Object { - "column": 11, - "line": 1, + "column": 30, + "line": 2, }, "start": Object { - "column": 5, - "line": 1, + "column": 16, + "line": 2, }, }, - "range": Array [ - 5, - 11, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 2, + }, + "start": Object { + "column": 17, + "line": 2, + }, + }, + "name": "foo", + "range": Array [ + 27, + 30, + ], + "type": "Identifier", }, - }, - "range": Array [ - 9, - 11, - ], - "raw": "10", - "type": "Literal", - "value": 10, - }, - "type": "AssignmentPattern", - }, - }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "name": "y", - "range": Array [ - 13, - 14, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 13, - 18, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, + "kind": "init", + "loc": Object { + "end": Object { + "column": 22, + "line": 2, + }, + "start": Object { + "column": 17, + "line": 2, + }, }, - "start": Object { - "column": 13, - "line": 1, + "method": false, + "range": Array [ + 27, + 32, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 2, + }, + "start": Object { + "column": 17, + "line": 2, + }, + }, + "name": "foo", + "range": Array [ + 27, + 30, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 22, + "line": 2, + }, + "start": Object { + "column": 17, + "line": 2, + }, + }, + "range": Array [ + 27, + 32, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 2, + }, + "start": Object { + "column": 21, + "line": 2, + }, + }, + "range": Array [ + 31, + 32, + ], + "raw": "3", + "type": "Literal", + "value": 3, + }, + "type": "AssignmentPattern", }, }, - "name": "y", - "range": Array [ - 13, - 14, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "range": Array [ - 13, - 18, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 17, - "line": 1, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 27, + "line": 2, + }, + "start": Object { + "column": 24, + "line": 2, + }, + }, + "name": "bar", + "range": Array [ + 34, + 37, + ], + "type": "Identifier", }, - }, - "range": Array [ - 17, - 18, - ], - "raw": "5", - "type": "Literal", - "value": 5, - }, - "type": "AssignmentPattern", - }, - }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, - }, - "name": "z", - "range": Array [ - 20, - 21, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 25, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 20, - 25, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, + "kind": "init", + "loc": Object { + "end": Object { + "column": 29, + "line": 2, + }, + "start": Object { + "column": 24, + "line": 2, + }, }, - "start": Object { - "column": 20, - "line": 1, + "method": false, + "range": Array [ + 34, + 39, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 27, + "line": 2, + }, + "start": Object { + "column": 24, + "line": 2, + }, + }, + "name": "bar", + "range": Array [ + 34, + 37, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 29, + "line": 2, + }, + "start": Object { + "column": 24, + "line": 2, + }, + }, + "range": Array [ + 34, + 39, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 29, + "line": 2, + }, + "start": Object { + "column": 28, + "line": 2, + }, + }, + "range": Array [ + 38, + 39, + ], + "raw": "4", + "type": "Literal", + "value": 4, + }, + "type": "AssignmentPattern", }, }, - "name": "z", - "range": Array [ - 20, - 21, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 25, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, - }, + ], "range": Array [ - 20, - 25, + 26, + 40, ], - "right": Object { - "loc": Object { - "end": Object { - "column": 25, - "line": 1, - }, - "start": Object { - "column": 24, - "line": 1, - }, - }, - "range": Array [ - 24, - 25, - ], - "raw": "1", - "type": "Literal", - "value": 1, - }, - "type": "AssignmentPattern", + "type": "ObjectPattern", }, - }, - ], - "range": Array [ - 4, - 26, - ], - "type": "ObjectPattern", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 30, - "line": 1, - }, - "start": Object { - "column": 29, - "line": 1, - }, + ], + "range": Array [ + 25, + 49, + ], + "type": "FunctionExpression", }, - "name": "a", - "range": Array [ - 29, - 30, - ], - "type": "Identifier", }, - "loc": Object { - "end": Object { - "column": 30, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, + ], + "loc": Object { + "end": Object { + "column": 1, + "line": 4, + }, + "start": Object { + "column": 8, + "line": 1, }, - "range": Array [ - 4, - 30, - ], - "type": "VariableDeclarator", }, - ], - "kind": "var", + "range": Array [ + 8, + 51, + ], + "type": "ClassBody", + }, + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "A", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 31, - "line": 1, + "column": 1, + "line": 4, }, "start": Object { "column": 0, @@ -38581,15 +37987,16 @@ Object { }, "range": Array [ 0, - 31, + 51, ], - "type": "VariableDeclaration", + "superClass": null, + "type": "ClassDeclaration", }, ], "loc": Object { "end": Object { - "column": 31, - "line": 1, + "column": 0, + "line": 5, }, "start": Object { "column": 0, @@ -38598,14 +38005,14 @@ Object { }, "range": Array [ 0, - 31, + 52, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, + "column": 5, "line": 1, }, "start": Object { @@ -38615,133 +38022,133 @@ Object { }, "range": Array [ 0, - 3, + 5, ], "type": "Keyword", - "value": "var", + "value": "class", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 7, "line": 1, }, "start": Object { - "column": 4, + "column": 6, "line": 1, }, }, "range": Array [ - 4, - 5, + 6, + 7, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "A", }, Object { "loc": Object { "end": Object { - "column": 6, + "column": 9, "line": 1, }, "start": Object { - "column": 5, + "column": 8, "line": 1, }, }, "range": Array [ - 5, - 6, + 8, + 9, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 8, - "line": 1, + "column": 15, + "line": 2, }, "start": Object { - "column": 7, - "line": 1, + "column": 4, + "line": 2, }, }, "range": Array [ - 7, - 8, + 14, + 25, ], - "type": "Punctuator", - "value": "=", + "type": "Identifier", + "value": "consturctor", }, Object { "loc": Object { "end": Object { - "column": 11, - "line": 1, + "column": 16, + "line": 2, }, "start": Object { - "column": 9, - "line": 1, + "column": 15, + "line": 2, }, }, "range": Array [ - 9, - 11, + 25, + 26, ], - "type": "Numeric", - "value": "10", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 12, - "line": 1, + "column": 17, + "line": 2, }, "start": Object { - "column": 11, - "line": 1, + "column": 16, + "line": 2, }, }, "range": Array [ - 11, - 12, + 26, + 27, ], "type": "Punctuator", - "value": ",", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 14, - "line": 1, + "column": 20, + "line": 2, }, "start": Object { - "column": 13, - "line": 1, + "column": 17, + "line": 2, }, }, "range": Array [ - 13, - 14, + 27, + 30, ], "type": "Identifier", - "value": "y", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 16, - "line": 1, + "column": 21, + "line": 2, }, "start": Object { - "column": 15, - "line": 1, + "column": 20, + "line": 2, }, }, "range": Array [ - 15, - 16, + 30, + 31, ], "type": "Punctuator", "value": "=", @@ -38749,35 +38156,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 18, - "line": 1, + "column": 22, + "line": 2, }, "start": Object { - "column": 17, - "line": 1, + "column": 21, + "line": 2, }, }, "range": Array [ - 17, - 18, + 31, + 32, ], "type": "Numeric", - "value": "5", + "value": "3", }, Object { "loc": Object { "end": Object { - "column": 19, - "line": 1, + "column": 23, + "line": 2, }, "start": Object { - "column": 18, - "line": 1, + "column": 22, + "line": 2, }, }, "range": Array [ - 18, - 19, + 32, + 33, ], "type": "Punctuator", "value": ",", @@ -38785,35 +38192,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 21, - "line": 1, + "column": 27, + "line": 2, }, "start": Object { - "column": 20, - "line": 1, + "column": 24, + "line": 2, }, }, "range": Array [ - 20, - 21, + 34, + 37, ], "type": "Identifier", - "value": "z", + "value": "bar", }, Object { "loc": Object { "end": Object { - "column": 23, - "line": 1, + "column": 28, + "line": 2, }, "start": Object { - "column": 22, - "line": 1, + "column": 27, + "line": 2, }, }, "range": Array [ - 22, - 23, + 37, + 38, ], "type": "Punctuator", "value": "=", @@ -38821,35 +38228,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 25, - "line": 1, + "column": 29, + "line": 2, }, "start": Object { - "column": 24, - "line": 1, + "column": 28, + "line": 2, }, }, "range": Array [ - 24, - 25, + 38, + 39, ], "type": "Numeric", - "value": "1", + "value": "4", }, Object { "loc": Object { "end": Object { - "column": 26, - "line": 1, + "column": 30, + "line": 2, }, "start": Object { - "column": 25, - "line": 1, + "column": 29, + "line": 2, }, }, "range": Array [ - 25, - 26, + 39, + 40, ], "type": "Punctuator", "value": "}", @@ -38857,311 +38264,337 @@ Object { Object { "loc": Object { "end": Object { - "column": 28, - "line": 1, + "column": 31, + "line": 2, }, "start": Object { - "column": 27, - "line": 1, + "column": 30, + "line": 2, }, }, "range": Array [ - 27, - 28, + 40, + 41, ], "type": "Punctuator", - "value": "=", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 30, - "line": 1, + "column": 33, + "line": 2, }, "start": Object { - "column": 29, - "line": 1, + "column": 32, + "line": 2, }, }, "range": Array [ - 29, - 30, + 42, + 43, ], - "type": "Identifier", - "value": "a", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 31, - "line": 1, + "column": 5, + "line": 3, }, "start": Object { - "column": 30, - "line": 1, + "column": 4, + "line": 3, }, }, "range": Array [ - 30, - 31, + 48, + 49, ], "type": "Punctuator", - "value": ";", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 4, + }, + "start": Object { + "column": 0, + "line": 4, + }, + }, + "range": Array [ + 50, + 51, + ], + "type": "Punctuator", + "value": "}", }, ], "type": "Program", } `; -exports[`javascript fixtures/destructuring/defaults-object-assign.src 1`] = ` +exports[`javascript fixtures/destructuring/class-constructor-params-object.src 1`] = ` Object { "body": Array [ Object { - "expression": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 1, - "line": 1, - }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 1, - }, - "start": Object { - "column": 3, - "line": 1, - }, - }, - "name": "Object", - "range": Array [ - 3, - 9, - ], - "type": "Identifier", - }, - "kind": "init", + "body": Object { + "body": Array [ + Object { + "computed": false, + "key": Object { "loc": Object { "end": Object { - "column": 11, - "line": 1, + "column": 15, + "line": 2, }, "start": Object { - "column": 3, - "line": 1, + "column": 4, + "line": 2, }, }, - "method": false, + "name": "consturctor", "range": Array [ - 3, - 11, + 14, + 25, ], - "shorthand": true, - "type": "Property", - "value": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 1, - }, - "start": Object { - "column": 3, - "line": 1, - }, - }, - "name": "Object", - "range": Array [ - 3, - 9, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 3, - "line": 1, - }, - }, - "range": Array [ - 3, - 11, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "range": Array [ - 10, - 11, - ], - "raw": "0", - "type": "Literal", - "value": 0, - }, - "type": "AssignmentPattern", + "type": "Identifier", + }, + "kind": "method", + "loc": Object { + "end": Object { + "column": 5, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 2, }, }, - Object { - "computed": false, - "key": Object { + "range": Array [ + 14, + 45, + ], + "static": false, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [], "loc": Object { "end": Object { - "column": 19, - "line": 1, + "column": 5, + "line": 3, }, "start": Object { - "column": 13, - "line": 1, + "column": 28, + "line": 2, }, }, - "name": "String", "range": Array [ - 13, - 19, + 38, + 45, ], - "type": "Identifier", + "type": "BlockStatement", }, - "kind": "init", + "expression": false, + "generator": false, + "id": null, "loc": Object { "end": Object { - "column": 21, - "line": 1, + "column": 5, + "line": 3, }, "start": Object { - "column": 13, - "line": 1, + "column": 15, + "line": 2, }, }, - "method": false, - "range": Array [ - 13, - 21, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "left": Object { + "params": Array [ + Object { "loc": Object { "end": Object { - "column": 19, - "line": 1, + "column": 26, + "line": 2, }, "start": Object { - "column": 13, - "line": 1, + "column": 16, + "line": 2, }, }, - "name": "String", - "range": Array [ - 13, - 19, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "range": Array [ - 13, - 21, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 2, + }, + "start": Object { + "column": 17, + "line": 2, + }, + }, + "name": "foo", + "range": Array [ + 27, + 30, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 20, + "line": 2, + }, + "start": Object { + "column": 17, + "line": 2, + }, + }, + "method": false, + "range": Array [ + 27, + 30, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 2, + }, + "start": Object { + "column": 17, + "line": 2, + }, + }, + "name": "foo", + "range": Array [ + 27, + 30, + ], + "type": "Identifier", + }, }, - }, - "range": Array [ - 20, - 21, - ], - "raw": "0", - "type": "Literal", - "value": 0, - }, - "type": "AssignmentPattern", - }, - }, - ], - "range": Array [ - 1, - 23, - ], - "type": "ObjectPattern", - }, - "loc": Object { - "end": Object { - "column": 28, - "line": 1, - }, - "start": Object { - "column": 1, - "line": 1, - }, - }, - "operator": "=", + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 25, + "line": 2, + }, + "start": Object { + "column": 22, + "line": 2, + }, + }, + "name": "bar", + "range": Array [ + 32, + 35, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 25, + "line": 2, + }, + "start": Object { + "column": 22, + "line": 2, + }, + }, + "method": false, + "range": Array [ + 32, + 35, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 25, + "line": 2, + }, + "start": Object { + "column": 22, + "line": 2, + }, + }, + "name": "bar", + "range": Array [ + 32, + 35, + ], + "type": "Identifier", + }, + }, + ], + "range": Array [ + 26, + 36, + ], + "type": "ObjectPattern", + }, + ], + "range": Array [ + 25, + 45, + ], + "type": "FunctionExpression", + }, + }, + ], + "loc": Object { + "end": Object { + "column": 1, + "line": 4, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, "range": Array [ - 1, - 28, + 8, + 47, ], - "right": Object { - "loc": Object { - "end": Object { - "column": 28, - "line": 1, - }, - "start": Object { - "column": 26, - "line": 1, - }, + "type": "ClassBody", + }, + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, }, - "properties": Array [], - "range": Array [ - 26, - 28, - ], - "type": "ObjectExpression", }, - "type": "AssignmentExpression", + "name": "A", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", }, "loc": Object { "end": Object { - "column": 29, - "line": 1, + "column": 1, + "line": 4, }, "start": Object { "column": 0, @@ -39170,15 +38603,16 @@ Object { }, "range": Array [ 0, - 29, + 47, ], - "type": "ExpressionStatement", + "superClass": null, + "type": "ClassDeclaration", }, ], "loc": Object { "end": Object { "column": 0, - "line": 2, + "line": 5, }, "start": Object { "column": 0, @@ -39187,14 +38621,14 @@ Object { }, "range": Array [ 0, - 30, + 48, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, + "column": 5, "line": 1, }, "start": Object { @@ -39204,28 +38638,28 @@ Object { }, "range": Array [ 0, - 1, + 5, ], - "type": "Punctuator", - "value": "(", + "type": "Keyword", + "value": "class", }, Object { "loc": Object { "end": Object { - "column": 2, + "column": 7, "line": 1, }, "start": Object { - "column": 1, + "column": 6, "line": 1, }, }, "range": Array [ - 1, - 2, + 6, + 7, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "A", }, Object { "loc": Object { @@ -39234,139 +38668,139 @@ Object { "line": 1, }, "start": Object { - "column": 3, + "column": 8, "line": 1, }, }, "range": Array [ - 3, + 8, 9, ], - "type": "Identifier", - "value": "Object", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 10, - "line": 1, + "column": 15, + "line": 2, }, "start": Object { - "column": 9, - "line": 1, + "column": 4, + "line": 2, }, }, "range": Array [ - 9, - 10, + 14, + 25, ], - "type": "Punctuator", - "value": "=", + "type": "Identifier", + "value": "consturctor", }, Object { "loc": Object { "end": Object { - "column": 11, - "line": 1, + "column": 16, + "line": 2, }, "start": Object { - "column": 10, - "line": 1, + "column": 15, + "line": 2, }, }, "range": Array [ - 10, - 11, + 25, + 26, ], - "type": "Numeric", - "value": "0", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 12, - "line": 1, + "column": 17, + "line": 2, }, "start": Object { - "column": 11, - "line": 1, + "column": 16, + "line": 2, }, }, "range": Array [ - 11, - 12, + 26, + 27, ], "type": "Punctuator", - "value": ",", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 19, - "line": 1, + "column": 20, + "line": 2, }, "start": Object { - "column": 13, - "line": 1, + "column": 17, + "line": 2, }, }, "range": Array [ - 13, - 19, + 27, + 30, ], "type": "Identifier", - "value": "String", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 20, - "line": 1, + "column": 21, + "line": 2, }, "start": Object { - "column": 19, - "line": 1, + "column": 20, + "line": 2, }, }, "range": Array [ - 19, - 20, + 30, + 31, ], "type": "Punctuator", - "value": "=", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 21, - "line": 1, + "column": 25, + "line": 2, }, "start": Object { - "column": 20, - "line": 1, + "column": 22, + "line": 2, }, }, "range": Array [ - 20, - 21, + 32, + 35, ], - "type": "Numeric", - "value": "0", + "type": "Identifier", + "value": "bar", }, Object { "loc": Object { "end": Object { - "column": 23, - "line": 1, + "column": 26, + "line": 2, }, "start": Object { - "column": 22, - "line": 1, + "column": 25, + "line": 2, }, }, "range": Array [ - 22, - 23, + 35, + 36, ], "type": "Punctuator", "value": "}", @@ -39374,35 +38808,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 25, - "line": 1, + "column": 27, + "line": 2, }, "start": Object { - "column": 24, - "line": 1, + "column": 26, + "line": 2, }, }, "range": Array [ - 24, - 25, + 36, + 37, ], "type": "Punctuator", - "value": "=", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 27, - "line": 1, + "column": 29, + "line": 2, }, "start": Object { - "column": 26, - "line": 1, + "column": 28, + "line": 2, }, }, "range": Array [ - 26, - 27, + 38, + 39, ], "type": "Punctuator", "value": "{", @@ -39410,17 +38844,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 28, - "line": 1, + "column": 5, + "line": 3, }, "start": Object { - "column": 27, - "line": 1, + "column": 4, + "line": 3, }, }, "range": Array [ - 27, - 28, + 44, + 45, ], "type": "Punctuator", "value": "}", @@ -39428,184 +38862,205 @@ Object { Object { "loc": Object { "end": Object { - "column": 29, - "line": 1, + "column": 1, + "line": 4, }, "start": Object { - "column": 28, - "line": 1, + "column": 0, + "line": 4, }, }, "range": Array [ - 28, - 29, + 46, + 47, ], "type": "Punctuator", - "value": ")", + "value": "}", }, ], "type": "Program", } `; -exports[`javascript fixtures/destructuring/defaults-object-longform.src 1`] = ` +exports[`javascript fixtures/destructuring/class-method-params-array.src 1`] = ` Object { "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { + "body": Object { + "body": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "name": "foo", + "range": Array [ + 14, + 17, + ], + "type": "Identifier", + }, + "kind": "method", "loc": Object { "end": Object { - "column": 17, - "line": 1, + "column": 5, + "line": 3, }, "start": Object { "column": 4, - "line": 1, + "line": 2, }, }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 6, - 7, - ], - "type": "Identifier", - }, - "kind": "init", + "range": Array [ + 14, + 37, + ], + "static": false, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [], "loc": Object { "end": Object { - "column": 15, - "line": 1, + "column": 5, + "line": 3, }, "start": Object { - "column": 6, - "line": 1, + "column": 20, + "line": 2, }, }, - "method": false, "range": Array [ - 6, - 15, + 30, + 37, ], - "shorthand": false, - "type": "Property", - "value": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 5, + "line": 3, + }, + "start": Object { + "column": 7, + "line": 2, + }, + }, + "params": Array [ + Object { + "elements": Array [ + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 2, + }, + "start": Object { + "column": 9, + "line": 2, + }, }, - "start": Object { - "column": 9, - "line": 1, + "name": "bar", + "range": Array [ + 19, + 22, + ], + "type": "Identifier", + }, + Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 2, + }, + "start": Object { + "column": 14, + "line": 2, + }, }, + "name": "baz", + "range": Array [ + 24, + 27, + ], + "type": "Identifier", }, - "name": "x", - "range": Array [ - 9, - 10, - ], - "type": "Identifier", - }, + ], "loc": Object { "end": Object { - "column": 15, - "line": 1, + "column": 18, + "line": 2, }, "start": Object { - "column": 9, - "line": 1, + "column": 8, + "line": 2, }, }, "range": Array [ - 9, - 15, + 18, + 28, ], - "right": Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "range": Array [ - 13, - 15, - ], - "raw": "10", - "type": "Literal", - "value": 10, - }, - "type": "AssignmentPattern", + "type": "ArrayPattern", }, - }, - ], - "range": Array [ - 4, - 17, - ], - "type": "ObjectPattern", + ], + "range": Array [ + 17, + 37, + ], + "type": "FunctionExpression", + }, }, - "init": Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 20, - 21, - ], - "type": "Identifier", + ], + "loc": Object { + "end": Object { + "column": 1, + "line": 4, }, - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, + "start": Object { + "column": 8, + "line": 1, }, - "range": Array [ - 4, - 21, - ], - "type": "VariableDeclarator", }, - ], - "kind": "var", + "range": Array [ + 8, + 39, + ], + "type": "ClassBody", + }, + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "A", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 22, - "line": 1, + "column": 1, + "line": 4, }, "start": Object { "column": 0, @@ -39614,15 +39069,16 @@ Object { }, "range": Array [ 0, - 22, + 39, ], - "type": "VariableDeclaration", + "superClass": null, + "type": "ClassDeclaration", }, ], "loc": Object { "end": Object { - "column": 22, - "line": 1, + "column": 0, + "line": 5, }, "start": Object { "column": 0, @@ -39631,14 +39087,14 @@ Object { }, "range": Array [ 0, - 22, + 40, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, + "column": 5, "line": 1, }, "start": Object { @@ -39648,25 +39104,43 @@ Object { }, "range": Array [ 0, - 3, + 5, ], "type": "Keyword", - "value": "var", + "value": "class", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 7, "line": 1, }, "start": Object { - "column": 4, + "column": 6, "line": 1, }, }, "range": Array [ - 4, - 5, + 6, + 7, + ], + "type": "Identifier", + "value": "A", + }, + Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, + 9, ], "type": "Punctuator", "value": "{", @@ -39675,513 +39149,456 @@ Object { "loc": Object { "end": Object { "column": 7, - "line": 1, + "line": 2, }, "start": Object { - "column": 6, - "line": 1, + "column": 4, + "line": 2, }, }, "range": Array [ - 6, - 7, + 14, + 17, ], "type": "Identifier", - "value": "x", + "value": "foo", }, Object { "loc": Object { "end": Object { "column": 8, - "line": 1, + "line": 2, }, "start": Object { "column": 7, - "line": 1, + "line": 2, }, }, "range": Array [ - 7, - 8, + 17, + 18, ], "type": "Punctuator", - "value": ":", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 10, - "line": 1, + "column": 9, + "line": 2, + }, + "start": Object { + "column": 8, + "line": 2, + }, + }, + "range": Array [ + 18, + 19, + ], + "type": "Punctuator", + "value": "[", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 2, }, "start": Object { "column": 9, - "line": 1, + "line": 2, }, }, "range": Array [ - 9, - 10, + 19, + 22, ], "type": "Identifier", - "value": "x", + "value": "bar", }, Object { "loc": Object { "end": Object { - "column": 12, - "line": 1, + "column": 13, + "line": 2, }, "start": Object { - "column": 11, - "line": 1, + "column": 12, + "line": 2, }, }, "range": Array [ - 11, - 12, + 22, + 23, ], "type": "Punctuator", - "value": "=", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 15, - "line": 1, + "column": 17, + "line": 2, }, "start": Object { - "column": 13, - "line": 1, + "column": 14, + "line": 2, }, }, "range": Array [ - 13, - 15, + 24, + 27, ], - "type": "Numeric", - "value": "10", + "type": "Identifier", + "value": "baz", }, Object { "loc": Object { "end": Object { - "column": 17, - "line": 1, + "column": 18, + "line": 2, }, "start": Object { - "column": 16, - "line": 1, + "column": 17, + "line": 2, }, }, "range": Array [ - 16, - 17, + 27, + 28, ], "type": "Punctuator", - "value": "}", + "value": "]", }, Object { "loc": Object { "end": Object { "column": 19, - "line": 1, + "line": 2, }, "start": Object { "column": 18, - "line": 1, + "line": 2, }, }, "range": Array [ - 18, - 19, + 28, + 29, ], "type": "Punctuator", - "value": "=", + "value": ")", }, Object { "loc": Object { "end": Object { "column": 21, - "line": 1, + "line": 2, }, "start": Object { "column": 20, - "line": 1, + "line": 2, }, }, "range": Array [ - 20, - 21, + 30, + 31, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 22, - "line": 1, + "column": 5, + "line": 3, }, "start": Object { - "column": 21, - "line": 1, + "column": 4, + "line": 3, }, }, "range": Array [ - 21, - 22, + 36, + 37, ], "type": "Punctuator", - "value": ";", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 4, + }, + "start": Object { + "column": 0, + "line": 4, + }, + }, + "range": Array [ + 38, + 39, + ], + "type": "Punctuator", + "value": "}", }, ], "type": "Program", } `; -exports[`javascript fixtures/destructuring/defaults-object-longform-all.src 1`] = ` +exports[`javascript fixtures/destructuring/class-method-params-defaults-array.src 1`] = ` Object { "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { + "body": Object { + "body": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "name": "foo", + "range": Array [ + 14, + 17, + ], + "type": "Identifier", + }, + "kind": "method", "loc": Object { "end": Object { - "column": 37, - "line": 1, + "column": 5, + "line": 3, }, "start": Object { "column": 4, - "line": 1, + "line": 2, }, }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 5, - 6, - ], - "type": "Identifier", - }, - "kind": "init", + "range": Array [ + 14, + 41, + ], + "static": false, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [], "loc": Object { "end": Object { - "column": 14, - "line": 1, + "column": 5, + "line": 3, }, "start": Object { - "column": 5, - "line": 1, + "column": 24, + "line": 2, }, }, - "method": false, "range": Array [ - 5, - 14, + 34, + 41, ], - "shorthand": false, - "type": "Property", - "value": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 1, + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 5, + "line": 3, + }, + "start": Object { + "column": 7, + "line": 2, + }, + }, + "params": Array [ + Object { + "elements": Array [ + Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 2, + }, + "start": Object { + "column": 9, + "line": 2, + }, + }, + "name": "bar", + "range": Array [ + 19, + 22, + ], + "type": "Identifier", }, - "start": Object { - "column": 8, - "line": 1, + "loc": Object { + "end": Object { + "column": 14, + "line": 2, + }, + "start": Object { + "column": 9, + "line": 2, + }, + }, + "range": Array [ + 19, + 24, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 2, + }, + "start": Object { + "column": 13, + "line": 2, + }, + }, + "range": Array [ + 23, + 24, + ], + "raw": "3", + "type": "Literal", + "value": 3, }, + "type": "AssignmentPattern", }, - "name": "x", - "range": Array [ - 8, - 9, - ], - "type": "Identifier", - }, + Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 2, + }, + "start": Object { + "column": 16, + "line": 2, + }, + }, + "name": "baz", + "range": Array [ + 26, + 29, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 21, + "line": 2, + }, + "start": Object { + "column": 16, + "line": 2, + }, + }, + "range": Array [ + 26, + 31, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 2, + }, + "start": Object { + "column": 20, + "line": 2, + }, + }, + "range": Array [ + 30, + 31, + ], + "raw": "4", + "type": "Literal", + "value": 4, + }, + "type": "AssignmentPattern", + }, + ], "loc": Object { "end": Object { - "column": 14, - "line": 1, + "column": 22, + "line": 2, }, "start": Object { "column": 8, - "line": 1, + "line": 2, }, }, "range": Array [ - 8, - 14, + 18, + 32, ], - "right": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "range": Array [ - 12, - 14, - ], - "raw": "10", - "type": "Literal", - "value": 10, - }, - "type": "AssignmentPattern", - }, - }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "name": "y", - "range": Array [ - 16, - 17, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 25, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 16, - 25, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 19, - "line": 1, - }, - }, - "name": "y", - "range": Array [ - 19, - 20, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 25, - "line": 1, - }, - "start": Object { - "column": 19, - "line": 1, - }, - }, - "range": Array [ - 19, - 25, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 25, - "line": 1, - }, - "start": Object { - "column": 23, - "line": 1, - }, - }, - "range": Array [ - 23, - 25, - ], - "raw": "10", - "type": "Literal", - "value": 10, - }, - "type": "AssignmentPattern", - }, - }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 28, - "line": 1, - }, - "start": Object { - "column": 27, - "line": 1, - }, - }, - "name": "z", - "range": Array [ - 27, - 28, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 36, - "line": 1, - }, - "start": Object { - "column": 27, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 27, - 36, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 31, - "line": 1, - }, - "start": Object { - "column": 30, - "line": 1, - }, - }, - "name": "z", - "range": Array [ - 30, - 31, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 36, - "line": 1, - }, - "start": Object { - "column": 30, - "line": 1, - }, - }, - "range": Array [ - 30, - 36, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 36, - "line": 1, - }, - "start": Object { - "column": 34, - "line": 1, - }, - }, - "range": Array [ - 34, - 36, - ], - "raw": "10", - "type": "Literal", - "value": 10, - }, - "type": "AssignmentPattern", + "type": "ArrayPattern", }, - }, - ], - "range": Array [ - 4, - 37, - ], - "type": "ObjectPattern", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 41, - "line": 1, - }, - "start": Object { - "column": 40, - "line": 1, - }, + ], + "range": Array [ + 17, + 41, + ], + "type": "FunctionExpression", }, - "name": "a", - "range": Array [ - 40, - 41, - ], - "type": "Identifier", }, - "loc": Object { - "end": Object { - "column": 41, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, + ], + "loc": Object { + "end": Object { + "column": 1, + "line": 4, + }, + "start": Object { + "column": 8, + "line": 1, }, - "range": Array [ - 4, - 41, - ], - "type": "VariableDeclarator", }, - ], - "kind": "var", + "range": Array [ + 8, + 43, + ], + "type": "ClassBody", + }, + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "A", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 42, - "line": 1, + "column": 1, + "line": 4, }, "start": Object { "column": 0, @@ -40190,15 +39607,16 @@ Object { }, "range": Array [ 0, - 42, + 43, ], - "type": "VariableDeclaration", + "superClass": null, + "type": "ClassDeclaration", }, ], "loc": Object { "end": Object { - "column": 42, - "line": 1, + "column": 0, + "line": 5, }, "start": Object { "column": 0, @@ -40207,14 +39625,14 @@ Object { }, "range": Array [ 0, - 42, + 44, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, + "column": 5, "line": 1, }, "start": Object { @@ -40224,97 +39642,133 @@ Object { }, "range": Array [ 0, - 3, + 5, ], "type": "Keyword", - "value": "var", + "value": "class", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 7, "line": 1, }, "start": Object { - "column": 4, + "column": 6, "line": 1, }, }, "range": Array [ - 4, - 5, + 6, + 7, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "A", }, Object { "loc": Object { "end": Object { - "column": 6, + "column": 9, "line": 1, }, "start": Object { - "column": 5, + "column": 8, "line": 1, }, }, "range": Array [ - 5, - 6, + 8, + 9, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { "column": 7, - "line": 1, + "line": 2, }, "start": Object { - "column": 6, - "line": 1, + "column": 4, + "line": 2, }, }, "range": Array [ - 6, - 7, + 14, + 17, + ], + "type": "Identifier", + "value": "foo", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 2, + }, + "start": Object { + "column": 7, + "line": 2, + }, + }, + "range": Array [ + 17, + 18, ], "type": "Punctuator", - "value": ":", + "value": "(", }, Object { "loc": Object { "end": Object { "column": 9, - "line": 1, + "line": 2, }, "start": Object { "column": 8, - "line": 1, + "line": 2, }, }, "range": Array [ - 8, - 9, + 18, + 19, + ], + "type": "Punctuator", + "value": "[", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 2, + }, + "start": Object { + "column": 9, + "line": 2, + }, + }, + "range": Array [ + 19, + 22, ], "type": "Identifier", - "value": "x", + "value": "bar", }, Object { "loc": Object { "end": Object { - "column": 11, - "line": 1, + "column": 13, + "line": 2, }, "start": Object { - "column": 10, - "line": 1, + "column": 12, + "line": 2, }, }, "range": Array [ - 10, - 11, + 22, + 23, ], "type": "Punctuator", "value": "=", @@ -40323,34 +39777,34 @@ Object { "loc": Object { "end": Object { "column": 14, - "line": 1, + "line": 2, }, "start": Object { - "column": 12, - "line": 1, + "column": 13, + "line": 2, }, }, "range": Array [ - 12, - 14, + 23, + 24, ], "type": "Numeric", - "value": "10", + "value": "3", }, Object { "loc": Object { "end": Object { "column": 15, - "line": 1, + "line": 2, }, "start": Object { "column": 14, - "line": 1, + "line": 2, }, }, "range": Array [ - 14, - 15, + 24, + 25, ], "type": "Punctuator", "value": ",", @@ -40358,683 +39812,687 @@ Object { Object { "loc": Object { "end": Object { - "column": 17, - "line": 1, + "column": 19, + "line": 2, }, "start": Object { "column": 16, - "line": 1, + "line": 2, }, }, "range": Array [ - 16, - 17, + 26, + 29, ], "type": "Identifier", - "value": "y", + "value": "baz", }, Object { "loc": Object { "end": Object { - "column": 18, - "line": 1, + "column": 20, + "line": 2, }, "start": Object { - "column": 17, - "line": 1, + "column": 19, + "line": 2, }, }, "range": Array [ - 17, - 18, + 29, + 30, ], "type": "Punctuator", - "value": ":", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 20, - "line": 1, + "column": 21, + "line": 2, }, "start": Object { - "column": 19, - "line": 1, + "column": 20, + "line": 2, }, }, "range": Array [ - 19, - 20, + 30, + 31, ], - "type": "Identifier", - "value": "y", + "type": "Numeric", + "value": "4", }, Object { "loc": Object { "end": Object { "column": 22, - "line": 1, + "line": 2, }, "start": Object { "column": 21, - "line": 1, + "line": 2, }, }, "range": Array [ - 21, - 22, + 31, + 32, ], "type": "Punctuator", - "value": "=", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 25, - "line": 1, + "column": 23, + "line": 2, }, "start": Object { - "column": 23, - "line": 1, + "column": 22, + "line": 2, }, }, "range": Array [ - 23, - 25, + 32, + 33, ], - "type": "Numeric", - "value": "10", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 26, - "line": 1, + "column": 25, + "line": 2, }, "start": Object { - "column": 25, - "line": 1, + "column": 24, + "line": 2, }, }, "range": Array [ - 25, - 26, + 34, + 35, ], "type": "Punctuator", - "value": ",", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 28, - "line": 1, + "column": 5, + "line": 3, }, "start": Object { - "column": 27, - "line": 1, + "column": 4, + "line": 3, }, }, "range": Array [ - 27, - 28, + 40, + 41, ], - "type": "Identifier", - "value": "z", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 29, - "line": 1, + "column": 1, + "line": 4, }, "start": Object { - "column": 28, - "line": 1, + "column": 0, + "line": 4, }, }, "range": Array [ - 28, - 29, + 42, + 43, ], "type": "Punctuator", - "value": ":", + "value": "}", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/destructuring/class-method-params-defaults-object.src 1`] = ` +Object { + "body": Array [ Object { + "body": Object { + "body": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "name": "foo", + "range": Array [ + 14, + 17, + ], + "type": "Identifier", + }, + "kind": "method", + "loc": Object { + "end": Object { + "column": 5, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "range": Array [ + 14, + 41, + ], + "static": false, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 5, + "line": 3, + }, + "start": Object { + "column": 24, + "line": 2, + }, + }, + "range": Array [ + 34, + 41, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 5, + "line": 3, + }, + "start": Object { + "column": 7, + "line": 2, + }, + }, + "params": Array [ + Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 2, + }, + "start": Object { + "column": 8, + "line": 2, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 2, + }, + "start": Object { + "column": 9, + "line": 2, + }, + }, + "name": "bar", + "range": Array [ + 19, + 22, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 14, + "line": 2, + }, + "start": Object { + "column": 9, + "line": 2, + }, + }, + "method": false, + "range": Array [ + 19, + 24, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 2, + }, + "start": Object { + "column": 9, + "line": 2, + }, + }, + "name": "bar", + "range": Array [ + 19, + 22, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 14, + "line": 2, + }, + "start": Object { + "column": 9, + "line": 2, + }, + }, + "range": Array [ + 19, + 24, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 2, + }, + "start": Object { + "column": 13, + "line": 2, + }, + }, + "range": Array [ + 23, + 24, + ], + "raw": "3", + "type": "Literal", + "value": 3, + }, + "type": "AssignmentPattern", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 2, + }, + "start": Object { + "column": 16, + "line": 2, + }, + }, + "name": "baz", + "range": Array [ + 26, + 29, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 21, + "line": 2, + }, + "start": Object { + "column": 16, + "line": 2, + }, + }, + "method": false, + "range": Array [ + 26, + 31, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 2, + }, + "start": Object { + "column": 16, + "line": 2, + }, + }, + "name": "baz", + "range": Array [ + 26, + 29, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 21, + "line": 2, + }, + "start": Object { + "column": 16, + "line": 2, + }, + }, + "range": Array [ + 26, + 31, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 2, + }, + "start": Object { + "column": 20, + "line": 2, + }, + }, + "range": Array [ + 30, + 31, + ], + "raw": "3", + "type": "Literal", + "value": 3, + }, + "type": "AssignmentPattern", + }, + }, + ], + "range": Array [ + 18, + 32, + ], + "type": "ObjectPattern", + }, + ], + "range": Array [ + 17, + 41, + ], + "type": "FunctionExpression", + }, + }, + ], + "loc": Object { + "end": Object { + "column": 1, + "line": 4, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, + 43, + ], + "type": "ClassBody", + }, + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "A", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 31, - "line": 1, + "column": 1, + "line": 4, }, "start": Object { - "column": 30, + "column": 0, "line": 1, }, }, "range": Array [ - 30, - 31, + 0, + 43, ], - "type": "Identifier", - "value": "z", + "superClass": null, + "type": "ClassDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 5, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 44, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 33, + "column": 5, "line": 1, }, "start": Object { - "column": 32, + "column": 0, "line": 1, }, }, "range": Array [ - 32, - 33, + 0, + 5, ], - "type": "Punctuator", - "value": "=", + "type": "Keyword", + "value": "class", }, Object { "loc": Object { "end": Object { - "column": 36, + "column": 7, "line": 1, }, "start": Object { - "column": 34, + "column": 6, "line": 1, }, }, "range": Array [ - 34, - 36, + 6, + 7, ], - "type": "Numeric", - "value": "10", + "type": "Identifier", + "value": "A", }, Object { "loc": Object { "end": Object { - "column": 37, + "column": 9, "line": 1, }, "start": Object { - "column": 36, + "column": 8, "line": 1, }, }, "range": Array [ - 36, - 37, + 8, + 9, ], "type": "Punctuator", - "value": "}", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 39, - "line": 1, + "column": 7, + "line": 2, }, "start": Object { - "column": 38, - "line": 1, + "column": 4, + "line": 2, }, }, "range": Array [ - 38, - 39, + 14, + 17, + ], + "type": "Identifier", + "value": "foo", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 2, + }, + "start": Object { + "column": 7, + "line": 2, + }, + }, + "range": Array [ + 17, + 18, ], "type": "Punctuator", - "value": "=", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 41, - "line": 1, + "column": 9, + "line": 2, }, "start": Object { - "column": 40, - "line": 1, + "column": 8, + "line": 2, }, }, "range": Array [ - 40, - 41, + 18, + 19, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 2, + }, + "start": Object { + "column": 9, + "line": 2, + }, + }, + "range": Array [ + 19, + 22, ], "type": "Identifier", - "value": "a", + "value": "bar", }, Object { "loc": Object { "end": Object { - "column": 42, - "line": 1, + "column": 13, + "line": 2, }, "start": Object { - "column": 41, - "line": 1, + "column": 12, + "line": 2, }, }, "range": Array [ - 41, - 42, + 22, + 23, ], "type": "Punctuator", - "value": ";", - }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/destructuring/defaults-object-longform-multi.src 1`] = ` -Object { - "body": Array [ - Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 27, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 5, - 6, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 9, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 5, - 9, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 8, - 9, - ], - "type": "Identifier", - }, - }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "name": "y", - "range": Array [ - 11, - 12, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 11, - 20, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "name": "y", - "range": Array [ - 14, - 15, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "range": Array [ - 14, - 20, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, - }, - "range": Array [ - 18, - 20, - ], - "raw": "10", - "type": "Literal", - "value": 10, - }, - "type": "AssignmentPattern", - }, - }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 22, - "line": 1, - }, - }, - "name": "z", - "range": Array [ - 22, - 23, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 26, - "line": 1, - }, - "start": Object { - "column": 22, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 22, - 26, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 26, - "line": 1, - }, - "start": Object { - "column": 25, - "line": 1, - }, - }, - "name": "z", - "range": Array [ - 25, - 26, - ], - "type": "Identifier", - }, - }, - ], - "range": Array [ - 4, - 27, - ], - "type": "ObjectPattern", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 31, - "line": 1, - }, - "start": Object { - "column": 30, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 30, - 31, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 31, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 31, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "var", - "loc": Object { - "end": Object { - "column": 32, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 32, - ], - "type": "VariableDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 32, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 32, - ], - "sourceType": "script", - "tokens": Array [ - Object { - "loc": Object { - "end": Object { - "column": 3, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 3, - ], - "type": "Keyword", - "value": "var", - }, - Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 5, - ], - "type": "Punctuator", - "value": "{", - }, - Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "range": Array [ - 5, - 6, - ], - "type": "Identifier", - "value": "x", - }, - Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "range": Array [ - 6, - 7, - ], - "type": "Punctuator", - "value": ":", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 9, - "line": 1, + "column": 14, + "line": 2, }, "start": Object { - "column": 8, - "line": 1, + "column": 13, + "line": 2, }, }, "range": Array [ - 8, - 9, + 23, + 24, ], - "type": "Identifier", - "value": "x", + "type": "Numeric", + "value": "3", }, Object { "loc": Object { "end": Object { - "column": 10, - "line": 1, + "column": 15, + "line": 2, }, "start": Object { - "column": 9, - "line": 1, + "column": 14, + "line": 2, }, }, "range": Array [ - 9, - 10, + 24, + 25, ], "type": "Punctuator", "value": ",", @@ -41042,71 +40500,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "range": Array [ - 11, - 12, - ], - "type": "Identifier", - "value": "y", - }, - Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "range": Array [ - 12, - 13, - ], - "type": "Punctuator", - "value": ":", - }, - Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, + "column": 19, + "line": 2, }, "start": Object { - "column": 14, - "line": 1, + "column": 16, + "line": 2, }, }, "range": Array [ - 14, - 15, + 26, + 29, ], "type": "Identifier", - "value": "y", + "value": "baz", }, Object { "loc": Object { "end": Object { - "column": 17, - "line": 1, + "column": 20, + "line": 2, }, "start": Object { - "column": 16, - "line": 1, + "column": 19, + "line": 2, }, }, "range": Array [ - 16, - 17, + 29, + 30, ], "type": "Punctuator", "value": "=", @@ -41114,442 +40536,373 @@ Object { Object { "loc": Object { "end": Object { - "column": 20, - "line": 1, + "column": 21, + "line": 2, }, "start": Object { - "column": 18, - "line": 1, + "column": 20, + "line": 2, }, }, "range": Array [ - 18, - 20, + 30, + 31, ], "type": "Numeric", - "value": "10", + "value": "3", }, Object { "loc": Object { "end": Object { - "column": 21, - "line": 1, + "column": 22, + "line": 2, }, "start": Object { - "column": 20, - "line": 1, + "column": 21, + "line": 2, }, }, "range": Array [ - 20, - 21, + 31, + 32, ], "type": "Punctuator", - "value": ",", + "value": "}", }, Object { "loc": Object { "end": Object { "column": 23, - "line": 1, + "line": 2, }, "start": Object { "column": 22, - "line": 1, + "line": 2, }, }, "range": Array [ - 22, - 23, + 32, + 33, ], - "type": "Identifier", - "value": "z", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 24, - "line": 1, + "column": 25, + "line": 2, }, "start": Object { - "column": 23, - "line": 1, + "column": 24, + "line": 2, }, }, "range": Array [ - 23, - 24, + 34, + 35, ], "type": "Punctuator", - "value": ":", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 26, - "line": 1, + "column": 5, + "line": 3, }, "start": Object { - "column": 25, - "line": 1, + "column": 4, + "line": 3, }, }, "range": Array [ - 25, - 26, + 40, + 41, ], - "type": "Identifier", - "value": "z", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 27, - "line": 1, + "column": 1, + "line": 4, }, "start": Object { - "column": 26, - "line": 1, + "column": 0, + "line": 4, }, }, "range": Array [ - 26, - 27, + 42, + 43, ], "type": "Punctuator", "value": "}", }, - Object { - "loc": Object { - "end": Object { - "column": 29, - "line": 1, - }, - "start": Object { - "column": 28, - "line": 1, - }, - }, - "range": Array [ - 28, - 29, - ], - "type": "Punctuator", - "value": "=", - }, - Object { - "loc": Object { - "end": Object { - "column": 31, - "line": 1, - }, - "start": Object { - "column": 30, - "line": 1, - }, - }, - "range": Array [ - 30, - 31, - ], - "type": "Identifier", - "value": "a", - }, - Object { - "loc": Object { - "end": Object { - "column": 32, - "line": 1, - }, - "start": Object { - "column": 31, - "line": 1, - }, - }, - "range": Array [ - 31, - 32, - ], - "type": "Punctuator", - "value": ";", - }, ], "type": "Program", } `; -exports[`javascript fixtures/destructuring/defaults-object-mixed-multi.src 1`] = ` +exports[`javascript fixtures/destructuring/class-method-params-object.src 1`] = ` Object { "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { + "body": Object { + "body": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "name": "foo", + "range": Array [ + 14, + 17, + ], + "type": "Identifier", + }, + "kind": "method", "loc": Object { "end": Object { - "column": 21, - "line": 1, + "column": 5, + "line": 3, }, "start": Object { "column": 4, - "line": 1, + "line": 2, }, }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 5, - 6, - ], - "type": "Identifier", - }, - "kind": "init", + "range": Array [ + 14, + 37, + ], + "static": false, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [], "loc": Object { "end": Object { - "column": 6, - "line": 1, + "column": 5, + "line": 3, }, "start": Object { - "column": 5, - "line": 1, + "column": 20, + "line": 2, }, }, - "method": false, "range": Array [ - 5, - 6, + 30, + 37, ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 5, - 6, - ], - "type": "Identifier", + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 5, + "line": 3, + }, + "start": Object { + "column": 7, + "line": 2, }, }, - Object { - "computed": false, - "key": Object { + "params": Array [ + Object { "loc": Object { "end": Object { - "column": 9, - "line": 1, + "column": 18, + "line": 2, }, "start": Object { "column": 8, - "line": 1, + "line": 2, }, }, - "name": "y", - "range": Array [ - 8, - 9, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 8, - 17, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 1, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 2, + }, + "start": Object { + "column": 9, + "line": 2, + }, + }, + "name": "bar", + "range": Array [ + 19, + 22, + ], + "type": "Identifier", }, - "start": Object { - "column": 11, - "line": 1, + "kind": "init", + "loc": Object { + "end": Object { + "column": 12, + "line": 2, + }, + "start": Object { + "column": 9, + "line": 2, + }, + }, + "method": false, + "range": Array [ + 19, + 22, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 2, + }, + "start": Object { + "column": 9, + "line": 2, + }, + }, + "name": "bar", + "range": Array [ + 19, + 22, + ], + "type": "Identifier", }, }, - "name": "y", - "range": Array [ - 11, - 12, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "range": Array [ - 11, - 17, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 1, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 2, + }, + "start": Object { + "column": 14, + "line": 2, + }, + }, + "name": "baz", + "range": Array [ + 24, + 27, + ], + "type": "Identifier", }, - "start": Object { - "column": 15, - "line": 1, + "kind": "init", + "loc": Object { + "end": Object { + "column": 17, + "line": 2, + }, + "start": Object { + "column": 14, + "line": 2, + }, + }, + "method": false, + "range": Array [ + 24, + 27, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 2, + }, + "start": Object { + "column": 14, + "line": 2, + }, + }, + "name": "baz", + "range": Array [ + 24, + 27, + ], + "type": "Identifier", }, }, - "range": Array [ - 15, - 17, - ], - "raw": "10", - "type": "Literal", - "value": 10, - }, - "type": "AssignmentPattern", - }, - }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 19, - "line": 1, - }, - }, - "name": "z", - "range": Array [ - 19, - 20, ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 19, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 19, - 20, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 19, - "line": 1, - }, - }, - "name": "z", "range": Array [ - 19, - 20, + 18, + 28, ], - "type": "Identifier", + "type": "ObjectPattern", }, - }, - ], - "range": Array [ - 4, - 21, - ], - "type": "ObjectPattern", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 25, - "line": 1, - }, - "start": Object { - "column": 24, - "line": 1, - }, + ], + "range": Array [ + 17, + 37, + ], + "type": "FunctionExpression", }, - "name": "a", - "range": Array [ - 24, - 25, - ], - "type": "Identifier", }, - "loc": Object { - "end": Object { - "column": 25, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, + ], + "loc": Object { + "end": Object { + "column": 1, + "line": 4, + }, + "start": Object { + "column": 8, + "line": 1, }, - "range": Array [ - 4, - 25, - ], - "type": "VariableDeclarator", }, - ], - "kind": "var", + "range": Array [ + 8, + 39, + ], + "type": "ClassBody", + }, + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "A", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 26, - "line": 1, + "column": 1, + "line": 4, }, "start": Object { "column": 0, @@ -41558,15 +40911,16 @@ Object { }, "range": Array [ 0, - 26, + 39, ], - "type": "VariableDeclaration", + "superClass": null, + "type": "ClassDeclaration", }, ], "loc": Object { "end": Object { - "column": 26, - "line": 1, + "column": 0, + "line": 5, }, "start": Object { "column": 0, @@ -41575,14 +40929,14 @@ Object { }, "range": Array [ 0, - 26, + 40, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, + "column": 5, "line": 1, }, "start": Object { @@ -41592,289 +40946,537 @@ Object { }, "range": Array [ 0, - 3, + 5, ], "type": "Keyword", - "value": "var", + "value": "class", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 7, "line": 1, }, "start": Object { - "column": 4, + "column": 6, "line": 1, }, }, "range": Array [ - 4, - 5, + 6, + 7, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "A", }, Object { "loc": Object { "end": Object { - "column": 6, + "column": 9, "line": 1, }, "start": Object { - "column": 5, + "column": 8, "line": 1, }, }, "range": Array [ - 5, - 6, + 8, + 9, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { "column": 7, - "line": 1, + "line": 2, }, "start": Object { - "column": 6, - "line": 1, + "column": 4, + "line": 2, }, }, "range": Array [ - 6, - 7, + 14, + 17, + ], + "type": "Identifier", + "value": "foo", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 2, + }, + "start": Object { + "column": 7, + "line": 2, + }, + }, + "range": Array [ + 17, + 18, ], "type": "Punctuator", - "value": ",", + "value": "(", }, Object { "loc": Object { "end": Object { "column": 9, - "line": 1, + "line": 2, }, "start": Object { "column": 8, - "line": 1, + "line": 2, }, }, "range": Array [ - 8, - 9, + 18, + 19, ], - "type": "Identifier", - "value": "y", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 10, - "line": 1, + "column": 12, + "line": 2, }, "start": Object { "column": 9, - "line": 1, + "line": 2, }, }, "range": Array [ - 9, - 10, + 19, + 22, ], - "type": "Punctuator", - "value": ":", + "type": "Identifier", + "value": "bar", }, Object { "loc": Object { "end": Object { + "column": 13, + "line": 2, + }, + "start": Object { "column": 12, - "line": 1, + "line": 2, + }, + }, + "range": Array [ + 22, + 23, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 2, }, "start": Object { - "column": 11, - "line": 1, + "column": 14, + "line": 2, }, }, "range": Array [ - 11, - 12, + 24, + 27, ], "type": "Identifier", - "value": "y", + "value": "baz", }, Object { "loc": Object { "end": Object { - "column": 14, - "line": 1, + "column": 18, + "line": 2, }, "start": Object { - "column": 13, - "line": 1, + "column": 17, + "line": 2, }, }, "range": Array [ - 13, - 14, + 27, + 28, ], "type": "Punctuator", - "value": "=", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 19, + "line": 2, + }, + "start": Object { + "column": 18, + "line": 2, + }, + }, + "range": Array [ + 28, + 29, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 2, + }, + "start": Object { + "column": 20, + "line": 2, + }, + }, + "range": Array [ + 30, + 31, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 3, + }, + }, + "range": Array [ + 36, + 37, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 4, + }, + "start": Object { + "column": 0, + "line": 4, + }, + }, + "range": Array [ + 38, + 39, + ], + "type": "Punctuator", + "value": "}", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/destructuring/defaults-array.src 1`] = ` +Object { + "body": Array [ + Object { + "expression": Object { + "left": Object { + "elements": Array [ + Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 2, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 1, + 2, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "range": Array [ + 1, + 5, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 3, + "line": 1, + }, + }, + "range": Array [ + 3, + 5, + ], + "raw": "10", + "type": "Literal", + "value": 10, + }, + "type": "AssignmentPattern", + }, + ], + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 6, + ], + "type": "ArrayPattern", + }, + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "operator": "=", + "range": Array [ + 0, + 10, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 9, + 10, + ], + "type": "Identifier", + }, + "type": "AssignmentExpression", + }, + "loc": Object { + "end": Object { + "column": 10, "line": 1, }, "start": Object { - "column": 15, + "column": 0, "line": 1, }, }, "range": Array [ - 15, - 17, + 0, + 10, ], - "type": "Numeric", - "value": "10", + "type": "ExpressionStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 10, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 18, + "column": 1, "line": 1, }, "start": Object { - "column": 17, + "column": 0, "line": 1, }, }, "range": Array [ - 17, - 18, + 0, + 1, ], "type": "Punctuator", - "value": ",", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 20, + "column": 2, "line": 1, }, "start": Object { - "column": 19, + "column": 1, "line": 1, }, }, "range": Array [ - 19, - 20, + 1, + 2, ], "type": "Identifier", - "value": "z", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 21, + "column": 3, "line": 1, }, "start": Object { - "column": 20, + "column": 2, "line": 1, }, }, "range": Array [ - 20, - 21, + 2, + 3, ], "type": "Punctuator", - "value": "}", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 5, "line": 1, }, "start": Object { - "column": 22, + "column": 3, "line": 1, }, }, "range": Array [ - 22, - 23, + 3, + 5, ], - "type": "Punctuator", - "value": "=", + "type": "Numeric", + "value": "10", }, Object { "loc": Object { "end": Object { - "column": 25, + "column": 6, "line": 1, }, "start": Object { - "column": 24, + "column": 5, "line": 1, }, }, "range": Array [ - 24, - 25, + 5, + 6, ], - "type": "Identifier", - "value": "a", + "type": "Punctuator", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 26, + "column": 8, "line": 1, }, "start": Object { - "column": 25, + "column": 7, "line": 1, }, }, "range": Array [ - 25, - 26, + 7, + 8, ], "type": "Punctuator", - "value": ";", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 10, + ], + "type": "Identifier", + "value": "x", }, ], "type": "Program", } `; -exports[`javascript fixtures/destructuring/defaults-object-multi.src 1`] = ` +exports[`javascript fixtures/destructuring/defaults-array-all.src 1`] = ` Object { "body": Array [ Object { "declarations": Array [ Object { "id": Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "properties": Array [ + "elements": Array [ Object { - "computed": false, - "key": Object { + "left": Object { "loc": Object { "end": Object { "column": 6, @@ -41892,7 +41494,6 @@ Object { ], "type": "Identifier", }, - "kind": "init", "loc": Object { "end": Object { "column": 11, @@ -41903,71 +41504,33 @@ Object { "line": 1, }, }, - "method": false, "range": Array [ 5, 11, ], - "shorthand": true, - "type": "Property", - "value": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 5, - 6, - ], - "type": "Identifier", - }, + "right": Object { "loc": Object { "end": Object { "column": 11, "line": 1, }, "start": Object { - "column": 5, + "column": 9, "line": 1, }, }, "range": Array [ - 5, + 9, 11, ], - "right": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 11, - ], - "raw": "10", - "type": "Literal", - "value": 10, - }, - "type": "AssignmentPattern", + "raw": "10", + "type": "Literal", + "value": 10, }, + "type": "AssignmentPattern", }, Object { - "computed": false, - "key": Object { + "left": Object { "loc": Object { "end": Object { "column": 14, @@ -41985,10 +41548,9 @@ Object { ], "type": "Identifier", }, - "kind": "init", "loc": Object { "end": Object { - "column": 14, + "column": 18, "line": 1, }, "start": Object { @@ -41996,117 +41558,123 @@ Object { "line": 1, }, }, - "method": false, "range": Array [ 13, - 14, + 18, ], - "shorthand": true, - "type": "Property", - "value": Object { + "right": Object { "loc": Object { "end": Object { - "column": 14, + "column": 18, "line": 1, }, "start": Object { - "column": 13, + "column": 17, "line": 1, }, }, - "name": "y", "range": Array [ - 13, - 14, + 17, + 18, ], - "type": "Identifier", + "raw": "5", + "type": "Literal", + "value": 5, }, + "type": "AssignmentPattern", }, Object { - "computed": false, - "key": Object { + "left": Object { "loc": Object { "end": Object { - "column": 17, + "column": 21, "line": 1, }, "start": Object { - "column": 16, + "column": 20, "line": 1, }, }, "name": "z", "range": Array [ - 16, - 17, + 20, + 21, ], "type": "Identifier", }, - "kind": "init", "loc": Object { "end": Object { - "column": 17, + "column": 25, "line": 1, }, "start": Object { - "column": 16, + "column": 20, "line": 1, }, }, - "method": false, "range": Array [ - 16, - 17, + 20, + 25, ], - "shorthand": true, - "type": "Property", - "value": Object { + "right": Object { "loc": Object { "end": Object { - "column": 17, + "column": 25, "line": 1, }, "start": Object { - "column": 16, + "column": 24, "line": 1, }, }, - "name": "z", "range": Array [ - 16, - 17, + 24, + 25, ], - "type": "Identifier", + "raw": "1", + "type": "Literal", + "value": 1, }, + "type": "AssignmentPattern", }, ], + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, "range": Array [ 4, - 18, + 26, ], - "type": "ObjectPattern", + "type": "ArrayPattern", }, "init": Object { "loc": Object { "end": Object { - "column": 22, + "column": 30, "line": 1, }, "start": Object { - "column": 21, + "column": 29, "line": 1, }, }, "name": "a", "range": Array [ - 21, - 22, + 29, + 30, ], "type": "Identifier", }, "loc": Object { "end": Object { - "column": 22, + "column": 30, "line": 1, }, "start": Object { @@ -42116,7 +41684,7 @@ Object { }, "range": Array [ 4, - 22, + 30, ], "type": "VariableDeclarator", }, @@ -42124,7 +41692,7 @@ Object { "kind": "var", "loc": Object { "end": Object { - "column": 23, + "column": 31, "line": 1, }, "start": Object { @@ -42134,14 +41702,14 @@ Object { }, "range": Array [ 0, - 23, + 31, ], "type": "VariableDeclaration", }, ], "loc": Object { "end": Object { - "column": 23, + "column": 31, "line": 1, }, "start": Object { @@ -42151,7 +41719,7 @@ Object { }, "range": Array [ 0, - 23, + 31, ], "sourceType": "script", "tokens": Array [ @@ -42189,7 +41757,7 @@ Object { 5, ], "type": "Punctuator", - "value": "{", + "value": "[", }, Object { "loc": Object { @@ -42284,71 +41852,89 @@ Object { Object { "loc": Object { "end": Object { - "column": 15, + "column": 16, "line": 1, }, "start": Object { - "column": 14, + "column": 15, "line": 1, }, }, "range": Array [ - 14, 15, + 16, ], "type": "Punctuator", - "value": ",", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 18, "line": 1, }, "start": Object { - "column": 16, + "column": 17, "line": 1, }, }, "range": Array [ - 16, 17, + 18, ], - "type": "Identifier", - "value": "z", + "type": "Numeric", + "value": "5", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 19, "line": 1, }, "start": Object { - "column": 17, + "column": 18, "line": 1, }, }, "range": Array [ - 17, 18, + 19, ], "type": "Punctuator", - "value": "}", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 20, + "column": 21, "line": 1, }, "start": Object { - "column": 19, + "column": 20, "line": 1, }, }, "range": Array [ - 19, 20, + 21, + ], + "type": "Identifier", + "value": "z", + }, + Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "range": Array [ + 22, + 23, ], "type": "Punctuator", "value": "=", @@ -42356,17 +41942,71 @@ Object { Object { "loc": Object { "end": Object { - "column": 22, + "column": 25, "line": 1, }, "start": Object { - "column": 21, + "column": 24, "line": 1, }, }, "range": Array [ - 21, - 22, + 24, + 25, + ], + "type": "Numeric", + "value": "1", + }, + Object { + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 25, + "line": 1, + }, + }, + "range": Array [ + 25, + 26, + ], + "type": "Punctuator", + "value": "]", + }, + Object { + "loc": Object { + "end": Object { + "column": 28, + "line": 1, + }, + "start": Object { + "column": 27, + "line": 1, + }, + }, + "range": Array [ + 27, + 28, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 30, + "line": 1, + }, + "start": Object { + "column": 29, + "line": 1, + }, + }, + "range": Array [ + 29, + 30, ], "type": "Identifier", "value": "a", @@ -42374,17 +42014,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 23, + "column": 31, "line": 1, }, "start": Object { - "column": 22, + "column": 30, "line": 1, }, }, "range": Array [ - 22, - 23, + 30, + 31, ], "type": "Punctuator", "value": ";", @@ -42394,7 +42034,7 @@ Object { } `; -exports[`javascript fixtures/destructuring/defaults-object-nested-all.src 1`] = ` +exports[`javascript fixtures/destructuring/defaults-array-longform-nested-multi.src 1`] = ` Object { "body": Array [ Object { @@ -42403,7 +42043,7 @@ Object { "id": Object { "loc": Object { "end": Object { - "column": 26, + "column": 34, "line": 1, }, "start": Object { @@ -42435,7 +42075,7 @@ Object { "kind": "init", "loc": Object { "end": Object { - "column": 11, + "column": 9, "line": 1, }, "start": Object { @@ -42446,63 +42086,84 @@ Object { "method": false, "range": Array [ 5, - 11, + 9, ], - "shorthand": true, + "shorthand": false, "type": "Property", "value": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, }, - "name": "x", - "range": Array [ - 5, - 6, - ], - "type": "Identifier", }, + "name": "x", + "range": Array [ + 8, + 9, + ], + "type": "Identifier", + }, + }, + Object { + "computed": false, + "key": Object { "loc": Object { "end": Object { - "column": 11, + "column": 12, "line": 1, }, "start": Object { - "column": 5, + "column": 11, "line": 1, }, }, + "name": "y", "range": Array [ - 5, 11, + 12, ], - "right": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 11, + 15, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, }, - "range": Array [ - 9, - 11, - ], - "raw": "10", - "type": "Literal", - "value": 10, }, - "type": "AssignmentPattern", + "name": "y", + "range": Array [ + 14, + 15, + ], + "type": "Identifier", }, }, Object { @@ -42510,47 +42171,47 @@ Object { "key": Object { "loc": Object { "end": Object { - "column": 14, + "column": 18, "line": 1, }, "start": Object { - "column": 13, + "column": 17, "line": 1, }, }, - "name": "y", + "name": "z", "range": Array [ - 13, - 14, + 17, + 18, ], "type": "Identifier", }, "kind": "init", "loc": Object { "end": Object { - "column": 25, + "column": 32, "line": 1, }, "start": Object { - "column": 13, + "column": 17, "line": 1, }, }, "method": false, "range": Array [ - 13, - 25, + 17, + 32, ], "shorthand": false, "type": "Property", "value": Object { "loc": Object { "end": Object { - "column": 25, + "column": 32, "line": 1, }, "start": Object { - "column": 16, + "column": 20, "line": 1, }, }, @@ -42560,86 +42221,86 @@ Object { "key": Object { "loc": Object { "end": Object { - "column": 19, + "column": 23, "line": 1, }, "start": Object { - "column": 18, + "column": 22, "line": 1, }, }, - "name": "z", + "name": "a", "range": Array [ - 18, - 19, + 22, + 23, ], "type": "Identifier", }, "kind": "init", "loc": Object { "end": Object { - "column": 24, + "column": 31, "line": 1, }, "start": Object { - "column": 18, + "column": 22, "line": 1, }, }, "method": false, "range": Array [ - 18, - 24, + 22, + 31, ], - "shorthand": true, + "shorthand": false, "type": "Property", "value": Object { "left": Object { "loc": Object { "end": Object { - "column": 19, + "column": 26, "line": 1, }, "start": Object { - "column": 18, + "column": 25, "line": 1, }, }, - "name": "z", + "name": "a", "range": Array [ - 18, - 19, + 25, + 26, ], "type": "Identifier", }, "loc": Object { "end": Object { - "column": 24, + "column": 31, "line": 1, }, "start": Object { - "column": 18, + "column": 25, "line": 1, }, }, "range": Array [ - 18, - 24, + 25, + 31, ], "right": Object { "loc": Object { "end": Object { - "column": 24, + "column": 31, "line": 1, }, "start": Object { - "column": 22, + "column": 29, "line": 1, }, }, "range": Array [ - 22, - 24, + 29, + 31, ], "raw": "10", "type": "Literal", @@ -42650,8 +42311,8 @@ Object { }, ], "range": Array [ - 16, - 25, + 20, + 32, ], "type": "ObjectPattern", }, @@ -42659,31 +42320,31 @@ Object { ], "range": Array [ 4, - 26, + 34, ], "type": "ObjectPattern", }, "init": Object { "loc": Object { "end": Object { - "column": 30, + "column": 38, "line": 1, }, "start": Object { - "column": 29, + "column": 37, "line": 1, }, }, - "name": "a", + "name": "b", "range": Array [ - 29, - 30, + 37, + 38, ], "type": "Identifier", }, "loc": Object { "end": Object { - "column": 30, + "column": 38, "line": 1, }, "start": Object { @@ -42693,7 +42354,7 @@ Object { }, "range": Array [ 4, - 30, + 38, ], "type": "VariableDeclarator", }, @@ -42701,7 +42362,7 @@ Object { "kind": "var", "loc": Object { "end": Object { - "column": 31, + "column": 39, "line": 1, }, "start": Object { @@ -42711,14 +42372,14 @@ Object { }, "range": Array [ 0, - 31, + 39, ], "type": "VariableDeclaration", }, ], "loc": Object { "end": Object { - "column": 31, + "column": 39, "line": 1, }, "start": Object { @@ -42728,7 +42389,7 @@ Object { }, "range": Array [ 0, - 31, + 39, ], "sourceType": "script", "tokens": Array [ @@ -42789,25 +42450,43 @@ Object { Object { "loc": Object { "end": Object { - "column": 8, + "column": 7, "line": 1, }, "start": Object { - "column": 7, + "column": 6, "line": 1, }, }, "range": Array [ + 6, 7, - 8, ], "type": "Punctuator", - "value": "=", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 9, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, + 9, + ], + "type": "Identifier", + "value": "x", + }, + Object { + "loc": Object { + "end": Object { + "column": 10, "line": 1, }, "start": Object { @@ -42817,10 +42496,10 @@ Object { }, "range": Array [ 9, - 11, + 10, ], - "type": "Numeric", - "value": "10", + "type": "Punctuator", + "value": ",", }, Object { "loc": Object { @@ -42837,26 +42516,26 @@ Object { 11, 12, ], - "type": "Punctuator", - "value": ",", + "type": "Identifier", + "value": "y", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 13, "line": 1, }, "start": Object { - "column": 13, + "column": 12, "line": 1, }, }, "range": Array [ + 12, 13, - 14, ], - "type": "Identifier", - "value": "y", + "type": "Punctuator", + "value": ":", }, Object { "loc": Object { @@ -42873,26 +42552,44 @@ Object { 14, 15, ], - "type": "Punctuator", - "value": ":", + "type": "Identifier", + "value": "y", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 16, "line": 1, }, "start": Object { - "column": 16, + "column": 15, "line": 1, }, }, "range": Array [ + 15, 16, - 17, ], "type": "Punctuator", - "value": "{", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "range": Array [ + 17, + 18, + ], + "type": "Identifier", + "value": "z", }, Object { "loc": Object { @@ -42909,8 +42606,8 @@ Object { 18, 19, ], - "type": "Identifier", - "value": "z", + "type": "Punctuator", + "value": ":", }, Object { "loc": Object { @@ -42928,12 +42625,12 @@ Object { 21, ], "type": "Punctuator", - "value": "=", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 24, + "column": 23, "line": 1, }, "start": Object { @@ -42943,28 +42640,28 @@ Object { }, "range": Array [ 22, - 24, + 23, ], - "type": "Numeric", - "value": "10", + "type": "Identifier", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 25, + "column": 24, "line": 1, }, "start": Object { - "column": 24, + "column": 23, "line": 1, }, }, "range": Array [ + 23, 24, - 25, ], "type": "Punctuator", - "value": "}", + "value": ":", }, Object { "loc": Object { @@ -42981,8 +42678,8 @@ Object { 25, 26, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "a", }, Object { "loc": Object { @@ -43005,7 +42702,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 30, + "column": 31, "line": 1, }, "start": Object { @@ -43015,25 +42712,97 @@ Object { }, "range": Array [ 29, - 30, + 31, ], - "type": "Identifier", - "value": "a", + "type": "Numeric", + "value": "10", }, Object { "loc": Object { "end": Object { - "column": 31, + "column": 32, "line": 1, }, "start": Object { - "column": 30, + "column": 31, "line": 1, }, }, "range": Array [ - 30, 31, + 32, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 34, + "line": 1, + }, + "start": Object { + "column": 33, + "line": 1, + }, + }, + "range": Array [ + 33, + 34, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 36, + "line": 1, + }, + "start": Object { + "column": 35, + "line": 1, + }, + }, + "range": Array [ + 35, + 36, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 38, + "line": 1, + }, + "start": Object { + "column": 37, + "line": 1, + }, + }, + "range": Array [ + 37, + 38, + ], + "type": "Identifier", + "value": "b", + }, + Object { + "loc": Object { + "end": Object { + "column": 39, + "line": 1, + }, + "start": Object { + "column": 38, + "line": 1, + }, + }, + "range": Array [ + 38, + 39, ], "type": "Punctuator", "value": ";", @@ -43043,27 +42812,16 @@ Object { } `; -exports[`javascript fixtures/destructuring/defaults-object-nested-multi.src 1`] = ` +exports[`javascript fixtures/destructuring/defaults-array-multi.src 1`] = ` Object { "body": Array [ Object { "declarations": Array [ Object { "id": Object { - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "properties": Array [ + "elements": Array [ Object { - "computed": false, - "key": Object { + "left": Object { "loc": Object { "end": Object { "column": 6, @@ -43081,7 +42839,6 @@ Object { ], "type": "Identifier", }, - "kind": "init", "loc": Object { "end": Object { "column": 11, @@ -43092,92 +42849,35 @@ Object { "line": 1, }, }, - "method": false, "range": Array [ 5, 11, ], - "shorthand": true, - "type": "Property", - "value": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 5, - 6, - ], - "type": "Identifier", - }, + "right": Object { "loc": Object { "end": Object { "column": 11, "line": 1, }, "start": Object { - "column": 5, + "column": 9, "line": 1, }, }, "range": Array [ - 5, + 9, 11, ], - "right": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 11, - ], - "raw": "10", - "type": "Literal", - "value": 10, - }, - "type": "AssignmentPattern", + "raw": "10", + "type": "Literal", + "value": 10, }, + "type": "AssignmentPattern", }, Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "name": "y", - "range": Array [ - 13, - 14, - ], - "type": "Identifier", - }, - "kind": "init", "loc": Object { "end": Object { - "column": 21, + "column": 14, "line": 1, }, "start": Object { @@ -43185,118 +42885,69 @@ Object { "line": 1, }, }, - "method": false, + "name": "y", "range": Array [ 13, - 21, + 14, ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, + "type": "Identifier", + }, + Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, - }, - "name": "z", - "range": Array [ - 18, - 19, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 18, - 19, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, - }, - "name": "z", - "range": Array [ - 18, - 19, - ], - "type": "Identifier", - }, - }, - ], - "range": Array [ - 16, - 21, - ], - "type": "ObjectPattern", }, + "name": "z", + "range": Array [ + 16, + 17, + ], + "type": "Identifier", }, ], + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, "range": Array [ 4, - 22, + 18, ], - "type": "ObjectPattern", + "type": "ArrayPattern", }, "init": Object { "loc": Object { "end": Object { - "column": 26, + "column": 22, "line": 1, }, "start": Object { - "column": 25, + "column": 21, "line": 1, }, }, "name": "a", "range": Array [ - 25, - 26, + 21, + 22, ], "type": "Identifier", }, "loc": Object { "end": Object { - "column": 26, + "column": 22, "line": 1, }, "start": Object { @@ -43306,7 +42957,7 @@ Object { }, "range": Array [ 4, - 26, + 22, ], "type": "VariableDeclarator", }, @@ -43314,7 +42965,7 @@ Object { "kind": "var", "loc": Object { "end": Object { - "column": 27, + "column": 23, "line": 1, }, "start": Object { @@ -43324,14 +42975,14 @@ Object { }, "range": Array [ 0, - 27, + 23, ], "type": "VariableDeclaration", }, ], "loc": Object { "end": Object { - "column": 27, + "column": 23, "line": 1, }, "start": Object { @@ -43341,7 +42992,7 @@ Object { }, "range": Array [ 0, - 27, + 23, ], "sourceType": "script", "tokens": Array [ @@ -43379,7 +43030,7 @@ Object { 5, ], "type": "Punctuator", - "value": "{", + "value": "[", }, Object { "loc": Object { @@ -43487,7 +43138,7 @@ Object { 15, ], "type": "Punctuator", - "value": ":", + "value": ",", }, Object { "loc": Object { @@ -43504,44 +43155,44 @@ Object { 16, 17, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "z", }, Object { "loc": Object { "end": Object { - "column": 19, + "column": 18, "line": 1, }, "start": Object { - "column": 18, + "column": 17, "line": 1, }, }, "range": Array [ + 17, 18, - 19, ], - "type": "Identifier", - "value": "z", + "type": "Punctuator", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 21, + "column": 20, "line": 1, }, "start": Object { - "column": 20, + "column": 19, "line": 1, }, }, "range": Array [ + 19, 20, - 21, ], "type": "Punctuator", - "value": "}", + "value": "=", }, Object { "loc": Object { @@ -43558,59 +43209,23 @@ Object { 21, 22, ], - "type": "Punctuator", - "value": "}", - }, - Object { - "loc": Object { - "end": Object { - "column": 24, - "line": 1, - }, - "start": Object { - "column": 23, - "line": 1, - }, - }, - "range": Array [ - 23, - 24, - ], - "type": "Punctuator", - "value": "=", - }, - Object { - "loc": Object { - "end": Object { - "column": 26, - "line": 1, - }, - "start": Object { - "column": 25, - "line": 1, - }, - }, - "range": Array [ - 25, - 26, - ], "type": "Identifier", "value": "a", }, Object { "loc": Object { "end": Object { - "column": 27, + "column": 23, "line": 1, }, "start": Object { - "column": 26, + "column": 22, "line": 1, }, }, "range": Array [ - 26, - 27, + 22, + 23, ], "type": "Punctuator", "value": ";", @@ -43620,406 +43235,215 @@ Object { } `; -exports[`javascript fixtures/destructuring/destructured-array-catch.src 1`] = ` +exports[`javascript fixtures/destructuring/defaults-array-nested-all.src 1`] = ` Object { "body": Array [ Object { - "async": false, - "body": Object { - "body": Array [ - Object { - "block": Object { - "body": Array [ - Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 3, - }, - "start": Object { - "column": 8, - "line": 3, - }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 3, - }, - "start": Object { - "column": 9, - "line": 3, - }, - }, - "name": "b", - "range": Array [ - 35, - 36, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 10, - "line": 3, - }, - "start": Object { - "column": 9, - "line": 3, - }, - }, - "method": false, - "range": Array [ - 35, - 36, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 3, - }, - "start": Object { - "column": 9, - "line": 3, - }, - }, - "name": "b", - "range": Array [ - 35, - 36, - ], - "type": "Identifier", - }, - }, - ], - "range": Array [ - 34, - 37, - ], - "type": "ObjectPattern", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 3, - }, - "start": Object { - "column": 14, - "line": 3, - }, - }, - "name": "a", - "range": Array [ - 40, - 41, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 15, - "line": 3, - }, - "start": Object { - "column": 8, - "line": 3, - }, - }, - "range": Array [ - 34, - 41, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "var", + "declarations": Array [ + Object { + "id": Object { + "elements": Array [ + Object { + "left": Object { "loc": Object { "end": Object { - "column": 16, - "line": 3, + "column": 6, + "line": 1, }, "start": Object { - "column": 4, - "line": 3, + "column": 5, + "line": 1, }, }, + "name": "x", "range": Array [ - 30, - 42, + 5, + 6, ], - "type": "VariableDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 3, - "line": 4, - }, - "start": Object { - "column": 6, - "line": 2, + "type": "Identifier", }, - }, - "range": Array [ - 24, - 46, - ], - "type": "BlockStatement", - }, - "finalizer": null, - "handler": Object { - "body": Object { - "body": Array [], "loc": Object { "end": Object { - "column": 3, - "line": 6, + "column": 11, + "line": 1, }, "start": Object { - "column": 17, - "line": 5, + "column": 5, + "line": 1, }, }, "range": Array [ - 64, - 69, + 5, + 11, ], - "type": "BlockStatement", - }, - "loc": Object { - "end": Object { - "column": 3, - "line": 6, - }, - "start": Object { - "column": 2, - "line": 5, + "right": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 11, + ], + "raw": "10", + "type": "Literal", + "value": 10, }, + "type": "AssignmentPattern", }, - "param": Object { + Object { "elements": Array [ Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "name": "z", + "range": Array [ + 15, + 16, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 14, - "line": 5, + "column": 21, + "line": 1, }, "start": Object { - "column": 9, - "line": 5, + "column": 15, + "line": 1, }, }, - "name": "stack", "range": Array [ - 56, - 61, + 15, + 21, ], - "type": "Identifier", + "right": Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 19, + "line": 1, + }, + }, + "range": Array [ + 19, + 21, + ], + "raw": "10", + "type": "Literal", + "value": 10, + }, + "type": "AssignmentPattern", }, ], "loc": Object { "end": Object { - "column": 15, - "line": 5, + "column": 22, + "line": 1, }, "start": Object { - "column": 8, - "line": 5, + "column": 13, + "line": 1, }, }, "range": Array [ - 55, - 62, + 13, + 22, ], "type": "ArrayPattern", }, - "range": Array [ - 49, - 69, - ], - "type": "CatchClause", - }, + ], "loc": Object { "end": Object { - "column": 3, - "line": 6, + "column": 23, + "line": 1, }, "start": Object { - "column": 2, - "line": 2, + "column": 4, + "line": 1, }, }, "range": Array [ - 20, - 69, + 4, + 23, ], - "type": "TryStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 1, - "line": 7, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "range": Array [ - 16, - 71, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, + "type": "ArrayPattern", }, - "start": Object { - "column": 9, - "line": 1, + "init": Object { + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 26, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 26, + 27, + ], + "type": "Identifier", }, - }, - "name": "x", - "range": Array [ - 9, - 10, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 1, - "line": 7, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "params": Array [ - Object { "loc": Object { "end": Object { - "column": 14, + "column": 27, "line": 1, }, "start": Object { - "column": 11, + "column": 4, "line": 1, }, }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 12, - 13, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 12, - 13, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 12, - 13, - ], - "type": "Identifier", - }, - }, - ], "range": Array [ - 11, - 14, + 4, + 27, ], - "type": "ObjectPattern", + "type": "VariableDeclarator", }, ], - "range": Array [ - 0, - 71, - ], - "type": "FunctionDeclaration", - }, - Object { + "kind": "var", "loc": Object { "end": Object { - "column": 2, - "line": 7, + "column": 28, + "line": 1, }, "start": Object { - "column": 1, - "line": 7, + "column": 0, + "line": 1, }, }, "range": Array [ - 71, - 72, + 0, + 28, ], - "type": "EmptyStatement", + "type": "VariableDeclaration", }, ], "loc": Object { "end": Object { - "column": 2, - "line": 7, + "column": 28, + "line": 1, }, "start": Object { "column": 0, @@ -44028,14 +43452,14 @@ Object { }, "range": Array [ 0, - 72, + 28, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 8, + "column": 3, "line": 1, }, "start": Object { @@ -44045,25 +43469,43 @@ Object { }, "range": Array [ 0, - 8, + 3, ], "type": "Keyword", - "value": "function", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 5, "line": 1, }, "start": Object { - "column": 9, + "column": 4, "line": 1, }, }, "range": Array [ - 9, - 10, + 4, + 5, + ], + "type": "Punctuator", + "value": "[", + }, + Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "range": Array [ + 5, + 6, ], "type": "Identifier", "value": "x", @@ -44071,56 +43513,56 @@ Object { Object { "loc": Object { "end": Object { - "column": 11, + "column": 8, "line": 1, }, "start": Object { - "column": 10, + "column": 7, "line": 1, }, }, "range": Array [ - 10, - 11, + 7, + 8, ], "type": "Punctuator", - "value": "(", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 11, "line": 1, }, "start": Object { - "column": 11, + "column": 9, "line": 1, }, }, "range": Array [ + 9, 11, - 12, ], - "type": "Punctuator", - "value": "{", + "type": "Numeric", + "value": "10", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 12, "line": 1, }, "start": Object { - "column": 12, + "column": 11, "line": 1, }, }, "range": Array [ + 11, 12, - 13, ], - "type": "Identifier", - "value": "a", + "type": "Punctuator", + "value": ",", }, Object { "loc": Object { @@ -44138,400 +43580,572 @@ Object { 14, ], "type": "Punctuator", - "value": "}", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 16, "line": 1, }, "start": Object { - "column": 14, + "column": 15, "line": 1, }, }, "range": Array [ - 14, 15, + 16, ], - "type": "Punctuator", - "value": ")", + "type": "Identifier", + "value": "z", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 18, "line": 1, }, "start": Object { - "column": 16, + "column": 17, "line": 1, }, }, "range": Array [ - 16, 17, + 18, ], "type": "Punctuator", - "value": "{", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 5, - "line": 2, + "column": 21, + "line": 1, }, "start": Object { - "column": 2, - "line": 2, + "column": 19, + "line": 1, }, }, "range": Array [ - 20, - 23, + 19, + 21, ], - "type": "Keyword", - "value": "try", + "type": "Numeric", + "value": "10", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 2, + "column": 22, + "line": 1, }, "start": Object { - "column": 6, - "line": 2, + "column": 21, + "line": 1, }, }, "range": Array [ - 24, - 25, + 21, + 22, ], "type": "Punctuator", - "value": "{", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 3, + "column": 23, + "line": 1, }, "start": Object { - "column": 4, - "line": 3, + "column": 22, + "line": 1, }, }, "range": Array [ - 30, - 33, + 22, + 23, ], - "type": "Keyword", - "value": "var", + "type": "Punctuator", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 9, - "line": 3, + "column": 25, + "line": 1, }, "start": Object { - "column": 8, - "line": 3, + "column": 24, + "line": 1, }, }, "range": Array [ - 34, - 35, + 24, + 25, ], "type": "Punctuator", - "value": "{", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 10, - "line": 3, + "column": 27, + "line": 1, }, "start": Object { - "column": 9, - "line": 3, + "column": 26, + "line": 1, }, }, "range": Array [ - 35, - 36, + 26, + 27, ], "type": "Identifier", - "value": "b", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 11, - "line": 3, + "column": 28, + "line": 1, }, "start": Object { - "column": 10, - "line": 3, + "column": 27, + "line": 1, }, }, "range": Array [ - 36, - 37, + 27, + 28, ], "type": "Punctuator", - "value": "}", - }, - Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 3, - }, - "start": Object { - "column": 12, - "line": 3, - }, - }, - "range": Array [ - 38, - 39, - ], - "type": "Punctuator", - "value": "=", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/destructuring/defaults-array-nested-multi.src 1`] = ` +Object { + "body": Array [ Object { + "declarations": Array [ + Object { + "id": Object { + "elements": Array [ + Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "range": Array [ + 5, + 11, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 11, + ], + "raw": "10", + "type": "Literal", + "value": 10, + }, + "type": "AssignmentPattern", + }, + Object { + "elements": Array [ + Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "name": "z", + "range": Array [ + 15, + 16, + ], + "type": "Identifier", + }, + ], + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 18, + ], + "type": "ArrayPattern", + }, + ], + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 19, + ], + "type": "ArrayPattern", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 22, + 23, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 23, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", "loc": Object { "end": Object { - "column": 15, - "line": 3, + "column": 24, + "line": 1, }, "start": Object { - "column": 14, - "line": 3, + "column": 0, + "line": 1, }, }, "range": Array [ - 40, - 41, + 0, + 24, ], - "type": "Identifier", - "value": "a", + "type": "VariableDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 24, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 16, - "line": 3, + "column": 3, + "line": 1, }, "start": Object { - "column": 15, - "line": 3, + "column": 0, + "line": 1, }, }, "range": Array [ - 41, - 42, + 0, + 3, ], - "type": "Punctuator", - "value": ";", + "type": "Keyword", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 3, - "line": 4, + "column": 5, + "line": 1, }, "start": Object { - "column": 2, - "line": 4, + "column": 4, + "line": 1, }, }, "range": Array [ - 45, - 46, + 4, + 5, ], "type": "Punctuator", - "value": "}", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 5, + "column": 6, + "line": 1, }, "start": Object { - "column": 2, - "line": 5, + "column": 5, + "line": 1, }, }, "range": Array [ - 49, - 54, + 5, + 6, ], - "type": "Keyword", - "value": "catch", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { "end": Object { "column": 8, - "line": 5, + "line": 1, }, "start": Object { "column": 7, - "line": 5, + "line": 1, }, }, "range": Array [ - 54, - 55, + 7, + 8, ], "type": "Punctuator", - "value": "(", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 9, - "line": 5, + "column": 11, + "line": 1, }, "start": Object { - "column": 8, - "line": 5, + "column": 9, + "line": 1, }, }, "range": Array [ - 55, - 56, + 9, + 11, ], - "type": "Punctuator", - "value": "[", + "type": "Numeric", + "value": "10", }, Object { "loc": Object { "end": Object { - "column": 14, - "line": 5, + "column": 12, + "line": 1, }, "start": Object { - "column": 9, - "line": 5, + "column": 11, + "line": 1, }, }, "range": Array [ - 56, - 61, + 11, + 12, ], - "type": "Identifier", - "value": "stack", + "type": "Punctuator", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 15, - "line": 5, + "column": 14, + "line": 1, }, "start": Object { - "column": 14, - "line": 5, + "column": 13, + "line": 1, }, }, "range": Array [ - 61, - 62, + 13, + 14, ], "type": "Punctuator", - "value": "]", + "value": "[", }, Object { "loc": Object { "end": Object { "column": 16, - "line": 5, + "line": 1, }, "start": Object { "column": 15, - "line": 5, + "line": 1, }, }, "range": Array [ - 62, - 63, + 15, + 16, ], - "type": "Punctuator", - "value": ")", + "type": "Identifier", + "value": "z", }, Object { "loc": Object { "end": Object { "column": 18, - "line": 5, + "line": 1, }, "start": Object { "column": 17, - "line": 5, + "line": 1, }, }, "range": Array [ - 64, - 65, + 17, + 18, ], "type": "Punctuator", - "value": "{", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 3, - "line": 6, + "column": 19, + "line": 1, }, "start": Object { - "column": 2, - "line": 6, + "column": 18, + "line": 1, }, }, "range": Array [ - 68, - 69, + 18, + 19, ], "type": "Punctuator", - "value": "}", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 1, - "line": 7, + "column": 21, + "line": 1, }, "start": Object { - "column": 0, - "line": 7, + "column": 20, + "line": 1, }, }, "range": Array [ - 70, - 71, + 20, + 21, ], "type": "Punctuator", - "value": "}", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 2, - "line": 7, + "column": 23, + "line": 1, }, "start": Object { - "column": 1, - "line": 7, + "column": 22, + "line": 1, }, }, "range": Array [ - 71, - 72, + 22, + 23, + ], + "type": "Identifier", + "value": "a", + }, + Object { + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "range": Array [ + 23, + 24, ], "type": "Punctuator", "value": ";", @@ -44541,445 +44155,9578 @@ Object { } `; -exports[`javascript fixtures/destructuring/destructured-object-catch.src 1`] = ` +exports[`javascript fixtures/destructuring/defaults-object.src 1`] = ` Object { "body": Array [ Object { - "async": false, - "body": Object { - "body": Array [ - Object { - "block": Object { - "body": Array [ - Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 3, - }, - "start": Object { - "column": 8, - "line": 3, - }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 3, - }, - "start": Object { - "column": 9, - "line": 3, - }, - }, - "name": "b", - "range": Array [ - 35, - 36, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 10, - "line": 3, - }, - "start": Object { - "column": 9, - "line": 3, - }, - }, - "method": false, - "range": Array [ - 35, - 36, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 3, - }, - "start": Object { - "column": 9, - "line": 3, - }, - }, - "name": "b", - "range": Array [ - 35, - 36, - ], - "type": "Identifier", - }, - }, - ], - "range": Array [ - 34, - 37, - ], - "type": "ObjectPattern", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 3, - }, - "start": Object { - "column": 14, - "line": 3, - }, - }, - "name": "a", - "range": Array [ - 40, - 41, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 15, - "line": 3, - }, - "start": Object { - "column": 8, - "line": 3, - }, - }, - "range": Array [ - 34, - 41, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "var", + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { "loc": Object { "end": Object { - "column": 16, - "line": 3, + "column": 6, + "line": 1, }, "start": Object { - "column": 4, - "line": 3, + "column": 5, + "line": 1, }, }, + "name": "x", "range": Array [ - 30, - 42, + 5, + 6, ], - "type": "VariableDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 3, - "line": 4, - }, - "start": Object { - "column": 6, - "line": 2, + "type": "Identifier", }, - }, - "range": Array [ - 24, - 46, - ], - "type": "BlockStatement", - }, - "finalizer": null, - "handler": Object { - "body": Object { - "body": Array [], + "kind": "init", "loc": Object { "end": Object { - "column": 3, - "line": 6, + "column": 11, + "line": 1, }, "start": Object { - "column": 17, - "line": 5, + "column": 5, + "line": 1, }, }, + "method": false, "range": Array [ - 64, - 69, + 5, + 11, ], - "type": "BlockStatement", - }, - "loc": Object { - "end": Object { - "column": 3, - "line": 6, - }, - "start": Object { - "column": 2, - "line": 5, - }, - }, - "param": Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 5, - }, - "start": Object { - "column": 8, - "line": 5, - }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 5, - }, - "start": Object { - "column": 9, - "line": 5, - }, + "shorthand": true, + "type": "Property", + "value": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, }, - "name": "stack", - "range": Array [ - 56, - 61, - ], - "type": "Identifier", }, - "kind": "init", + "name": "x", + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "range": Array [ + 5, + 11, + ], + "right": Object { "loc": Object { "end": Object { - "column": 14, - "line": 5, + "column": 11, + "line": 1, }, "start": Object { "column": 9, - "line": 5, + "line": 1, }, }, - "method": false, "range": Array [ - 56, - 61, + 9, + 11, ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 5, - }, - "start": Object { - "column": 9, - "line": 5, - }, - }, - "name": "stack", - "range": Array [ - 56, - 61, - ], - "type": "Identifier", - }, + "raw": "10", + "type": "Literal", + "value": 10, }, - ], - "range": Array [ - 55, - 62, - ], - "type": "ObjectPattern", + "type": "AssignmentPattern", + }, }, - "range": Array [ - 49, - 69, - ], - "type": "CatchClause", - }, + ], + "range": Array [ + 4, + 12, + ], + "type": "ObjectPattern", + }, + "init": Object { "loc": Object { "end": Object { - "column": 3, - "line": 6, + "column": 16, + "line": 1, }, "start": Object { - "column": 2, - "line": 2, + "column": 15, + "line": 1, }, }, + "name": "x", "range": Array [ - 20, - 69, + 15, + 16, ], - "type": "TryStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 1, - "line": 7, + "type": "Identifier", }, - "start": Object { - "column": 16, - "line": 1, + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, }, + "range": Array [ + 4, + 16, + ], + "type": "VariableDeclarator", }, - "range": Array [ - 16, - 71, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, + ], + "kind": "var", + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, }, - "name": "x", - "range": Array [ - 9, - 10, - ], - "type": "Identifier", }, + "range": Array [ + 0, + 16, + ], + "type": "VariableDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 16, + ], + "sourceType": "script", + "tokens": Array [ + Object { "loc": Object { "end": Object { - "column": 1, - "line": 7, + "column": 3, + "line": 1, }, "start": Object { "column": 0, "line": 1, }, }, - "params": Array [ + "range": Array [ + 0, + 3, + ], + "type": "Keyword", + "value": "var", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 5, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + "value": "x", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "range": Array [ + 7, + 8, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 11, + ], + "type": "Numeric", + "value": "10", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 12, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 14, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "range": Array [ + 15, + 16, + ], + "type": "Identifier", + "value": "x", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/destructuring/defaults-object-all.src 1`] = ` +Object { + "body": Array [ + Object { + "declarations": Array [ Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, + "id": Object { + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + }, + "kind": "init", "loc": Object { "end": Object { - "column": 13, + "column": 11, "line": 1, }, "start": Object { - "column": 12, + "column": 5, "line": 1, }, }, - "name": "a", + "method": false, "range": Array [ - 12, - 13, + 5, + 11, ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, + "shorthand": true, + "type": "Property", + "value": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "range": Array [ + 5, + 11, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 11, + ], + "raw": "10", + "type": "Literal", + "value": 10, + }, + "type": "AssignmentPattern", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "name": "y", + "range": Array [ + 13, + 14, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 13, + 18, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "name": "y", + "range": Array [ + 13, + 14, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 18, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "range": Array [ + 17, + 18, + ], + "raw": "5", + "type": "Literal", + "value": 5, + }, + "type": "AssignmentPattern", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "name": "z", + "range": Array [ + 20, + 21, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 20, + 25, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "name": "z", + "range": Array [ + 20, + 21, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "range": Array [ + 20, + 25, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, + }, + }, + "range": Array [ + 24, + 25, + ], + "raw": "1", + "type": "Literal", + "value": 1, + }, + "type": "AssignmentPattern", + }, + }, + ], + "range": Array [ + 4, + 26, + ], + "type": "ObjectPattern", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 30, + "line": 1, + }, + "start": Object { + "column": 29, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 29, + 30, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 30, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 30, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 31, + ], + "type": "VariableDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 31, + ], + "sourceType": "script", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 3, + ], + "type": "Keyword", + "value": "var", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 5, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + "value": "x", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "range": Array [ + 7, + 8, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 11, + ], + "type": "Numeric", + "value": "10", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 12, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 14, + ], + "type": "Identifier", + "value": "y", + }, + Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "range": Array [ + 15, + 16, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "range": Array [ + 17, + 18, + ], + "type": "Numeric", + "value": "5", + }, + Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "range": Array [ + 18, + 19, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "range": Array [ + 20, + 21, + ], + "type": "Identifier", + "value": "z", + }, + Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "range": Array [ + 22, + 23, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, + }, + }, + "range": Array [ + 24, + 25, + ], + "type": "Numeric", + "value": "1", + }, + Object { + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 25, + "line": 1, + }, + }, + "range": Array [ + 25, + 26, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 28, + "line": 1, + }, + "start": Object { + "column": 27, + "line": 1, + }, + }, + "range": Array [ + 27, + 28, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 30, + "line": 1, + }, + "start": Object { + "column": 29, + "line": 1, + }, + }, + "range": Array [ + 29, + 30, + ], + "type": "Identifier", + "value": "a", + }, + Object { + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 30, + "line": 1, + }, + }, + "range": Array [ + 30, + 31, + ], + "type": "Punctuator", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/destructuring/defaults-object-assign.src 1`] = ` +Object { + "body": Array [ + Object { + "expression": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 3, + "line": 1, + }, + }, + "name": "Object", + "range": Array [ + 3, + 9, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 3, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 3, + 11, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 3, + "line": 1, + }, + }, + "name": "Object", + "range": Array [ + 3, + 9, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 3, + "line": 1, + }, + }, + "range": Array [ + 3, + 11, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "range": Array [ + 10, + 11, + ], + "raw": "0", + "type": "Literal", + "value": 0, + }, + "type": "AssignmentPattern", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "name": "String", + "range": Array [ + 13, + 19, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 13, + 21, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "name": "String", + "range": Array [ + 13, + 19, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 21, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "range": Array [ + 20, + 21, + ], + "raw": "0", + "type": "Literal", + "value": 0, + }, + "type": "AssignmentPattern", + }, + }, + ], + "range": Array [ + 1, + 23, + ], + "type": "ObjectPattern", + }, + "loc": Object { + "end": Object { + "column": 28, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "operator": "=", + "range": Array [ + 1, + 28, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 28, + "line": 1, + }, + "start": Object { + "column": 26, + "line": 1, + }, + }, + "properties": Array [], + "range": Array [ + 26, + 28, + ], + "type": "ObjectExpression", + }, + "type": "AssignmentExpression", + }, + "loc": Object { + "end": Object { + "column": 29, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 29, + ], + "type": "ExpressionStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 30, + ], + "sourceType": "script", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 1, + ], + "type": "Punctuator", + "value": "(", + }, + Object { + "loc": Object { + "end": Object { + "column": 2, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "range": Array [ + 1, + 2, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 3, + "line": 1, + }, + }, + "range": Array [ + 3, + 9, + ], + "type": "Identifier", + "value": "Object", + }, + Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 10, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "range": Array [ + 10, + 11, + ], + "type": "Numeric", + "value": "0", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 12, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 19, + ], + "type": "Identifier", + "value": "String", + }, + Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 19, + "line": 1, + }, + }, + "range": Array [ + 19, + 20, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "range": Array [ + 20, + 21, + ], + "type": "Numeric", + "value": "0", + }, + Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "range": Array [ + 22, + 23, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, + }, + }, + "range": Array [ + 24, + 25, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 26, + "line": 1, + }, + }, + "range": Array [ + 26, + 27, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 28, + "line": 1, + }, + "start": Object { + "column": 27, + "line": 1, + }, + }, + "range": Array [ + 27, + 28, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 29, + "line": 1, + }, + "start": Object { + "column": 28, + "line": 1, + }, + }, + "range": Array [ + 28, + 29, + ], + "type": "Punctuator", + "value": ")", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/destructuring/defaults-object-longform.src 1`] = ` +Object { + "body": Array [ + Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 6, + 15, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 9, + 10, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 15, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 15, + ], + "raw": "10", + "type": "Literal", + "value": 10, + }, + "type": "AssignmentPattern", + }, + }, + ], + "range": Array [ + 4, + 17, + ], + "type": "ObjectPattern", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 20, + 21, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 21, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 22, + ], + "type": "VariableDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 22, + ], + "sourceType": "script", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 3, + ], + "type": "Keyword", + "value": "var", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 5, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "range": Array [ + 6, + 7, + ], + "type": "Identifier", + "value": "x", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "range": Array [ + 7, + 8, + ], + "type": "Punctuator", + "value": ":", + }, + Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 10, + ], + "type": "Identifier", + "value": "x", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 12, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 15, + ], + "type": "Numeric", + "value": "10", + }, + Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "range": Array [ + 16, + 17, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "range": Array [ + 18, + 19, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "range": Array [ + 20, + 21, + ], + "type": "Identifier", + "value": "x", + }, + Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 21, + "line": 1, + }, + }, + "range": Array [ + 21, + 22, + ], + "type": "Punctuator", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/destructuring/defaults-object-longform-all.src 1`] = ` +Object { + "body": Array [ + Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 37, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 5, + 14, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 8, + 9, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, + 14, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "range": Array [ + 12, + 14, + ], + "raw": "10", + "type": "Literal", + "value": 10, + }, + "type": "AssignmentPattern", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "name": "y", + "range": Array [ + 16, + 17, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 16, + 25, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 19, + "line": 1, + }, + }, + "name": "y", + "range": Array [ + 19, + 20, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 19, + "line": 1, + }, + }, + "range": Array [ + 19, + 25, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "range": Array [ + 23, + 25, + ], + "raw": "10", + "type": "Literal", + "value": 10, + }, + "type": "AssignmentPattern", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 28, + "line": 1, + }, + "start": Object { + "column": 27, + "line": 1, + }, + }, + "name": "z", + "range": Array [ + 27, + 28, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 36, + "line": 1, + }, + "start": Object { + "column": 27, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 27, + 36, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 30, + "line": 1, + }, + }, + "name": "z", + "range": Array [ + 30, + 31, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 36, + "line": 1, + }, + "start": Object { + "column": 30, + "line": 1, + }, + }, + "range": Array [ + 30, + 36, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 36, + "line": 1, + }, + "start": Object { + "column": 34, + "line": 1, + }, + }, + "range": Array [ + 34, + 36, + ], + "raw": "10", + "type": "Literal", + "value": 10, + }, + "type": "AssignmentPattern", + }, + }, + ], + "range": Array [ + 4, + 37, + ], + "type": "ObjectPattern", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 41, + "line": 1, + }, + "start": Object { + "column": 40, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 40, + 41, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 41, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 41, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", + "loc": Object { + "end": Object { + "column": 42, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 42, + ], + "type": "VariableDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 42, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 42, + ], + "sourceType": "script", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 3, + ], + "type": "Keyword", + "value": "var", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 5, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + "value": "x", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "range": Array [ + 6, + 7, + ], + "type": "Punctuator", + "value": ":", + }, + Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, + 9, + ], + "type": "Identifier", + "value": "x", + }, + Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "range": Array [ + 10, + 11, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "range": Array [ + 12, + 14, + ], + "type": "Numeric", + "value": "10", + }, + Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "range": Array [ + 14, + 15, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "range": Array [ + 16, + 17, + ], + "type": "Identifier", + "value": "y", + }, + Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "range": Array [ + 17, + 18, + ], + "type": "Punctuator", + "value": ":", + }, + Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 19, + "line": 1, + }, + }, + "range": Array [ + 19, + 20, + ], + "type": "Identifier", + "value": "y", + }, + Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 21, + "line": 1, + }, + }, + "range": Array [ + 21, + 22, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "range": Array [ + 23, + 25, + ], + "type": "Numeric", + "value": "10", + }, + Object { + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 25, + "line": 1, + }, + }, + "range": Array [ + 25, + 26, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 28, + "line": 1, + }, + "start": Object { + "column": 27, + "line": 1, + }, + }, + "range": Array [ + 27, + 28, + ], + "type": "Identifier", + "value": "z", + }, + Object { + "loc": Object { + "end": Object { + "column": 29, + "line": 1, + }, + "start": Object { + "column": 28, + "line": 1, + }, + }, + "range": Array [ + 28, + 29, + ], + "type": "Punctuator", + "value": ":", + }, + Object { + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 30, + "line": 1, + }, + }, + "range": Array [ + 30, + 31, + ], + "type": "Identifier", + "value": "z", + }, + Object { + "loc": Object { + "end": Object { + "column": 33, + "line": 1, + }, + "start": Object { + "column": 32, + "line": 1, + }, + }, + "range": Array [ + 32, + 33, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 36, + "line": 1, + }, + "start": Object { + "column": 34, + "line": 1, + }, + }, + "range": Array [ + 34, + 36, + ], + "type": "Numeric", + "value": "10", + }, + Object { + "loc": Object { + "end": Object { + "column": 37, + "line": 1, + }, + "start": Object { + "column": 36, + "line": 1, + }, + }, + "range": Array [ + 36, + 37, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 39, + "line": 1, + }, + "start": Object { + "column": 38, + "line": 1, + }, + }, + "range": Array [ + 38, + 39, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 41, + "line": 1, + }, + "start": Object { + "column": 40, + "line": 1, + }, + }, + "range": Array [ + 40, + 41, + ], + "type": "Identifier", + "value": "a", + }, + Object { + "loc": Object { + "end": Object { + "column": 42, + "line": 1, + }, + "start": Object { + "column": 41, + "line": 1, + }, + }, + "range": Array [ + 41, + 42, + ], + "type": "Punctuator", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/destructuring/defaults-object-longform-multi.src 1`] = ` +Object { + "body": Array [ + Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 5, + 9, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 8, + 9, + ], + "type": "Identifier", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "name": "y", + "range": Array [ + 11, + 12, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 11, + 20, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "name": "y", + "range": Array [ + 14, + 15, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "range": Array [ + 14, + 20, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "range": Array [ + 18, + 20, + ], + "raw": "10", + "type": "Literal", + "value": 10, + }, + "type": "AssignmentPattern", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "name": "z", + "range": Array [ + 22, + 23, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 22, + 26, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 25, + "line": 1, + }, + }, + "name": "z", + "range": Array [ + 25, + 26, + ], + "type": "Identifier", + }, + }, + ], + "range": Array [ + 4, + 27, + ], + "type": "ObjectPattern", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 30, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 30, + 31, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 31, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", + "loc": Object { + "end": Object { + "column": 32, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 32, + ], + "type": "VariableDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 32, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 32, + ], + "sourceType": "script", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 3, + ], + "type": "Keyword", + "value": "var", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 5, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + "value": "x", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "range": Array [ + 6, + 7, + ], + "type": "Punctuator", + "value": ":", + }, + Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, + 9, + ], + "type": "Identifier", + "value": "x", + }, + Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 10, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 12, + ], + "type": "Identifier", + "value": "y", + }, + Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "range": Array [ + 12, + 13, + ], + "type": "Punctuator", + "value": ":", + }, + Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "range": Array [ + 14, + 15, + ], + "type": "Identifier", + "value": "y", + }, + Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "range": Array [ + 16, + 17, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "range": Array [ + 18, + 20, + ], + "type": "Numeric", + "value": "10", + }, + Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "range": Array [ + 20, + 21, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "range": Array [ + 22, + 23, + ], + "type": "Identifier", + "value": "z", + }, + Object { + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "range": Array [ + 23, + 24, + ], + "type": "Punctuator", + "value": ":", + }, + Object { + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 25, + "line": 1, + }, + }, + "range": Array [ + 25, + 26, + ], + "type": "Identifier", + "value": "z", + }, + Object { + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 26, + "line": 1, + }, + }, + "range": Array [ + 26, + 27, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 29, + "line": 1, + }, + "start": Object { + "column": 28, + "line": 1, + }, + }, + "range": Array [ + 28, + 29, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 30, + "line": 1, + }, + }, + "range": Array [ + 30, + 31, + ], + "type": "Identifier", + "value": "a", + }, + Object { + "loc": Object { + "end": Object { + "column": 32, + "line": 1, + }, + "start": Object { + "column": 31, + "line": 1, + }, + }, + "range": Array [ + 31, + 32, + ], + "type": "Punctuator", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/destructuring/defaults-object-mixed-multi.src 1`] = ` +Object { + "body": Array [ + Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 5, + 6, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "name": "y", + "range": Array [ + 8, + 9, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 8, + 17, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "name": "y", + "range": Array [ + 11, + 12, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 17, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "range": Array [ + 15, + 17, + ], + "raw": "10", + "type": "Literal", + "value": 10, + }, + "type": "AssignmentPattern", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 19, + "line": 1, + }, + }, + "name": "z", + "range": Array [ + 19, + 20, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 19, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 19, + 20, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 19, + "line": 1, + }, + }, + "name": "z", + "range": Array [ + 19, + 20, + ], + "type": "Identifier", + }, + }, + ], + "range": Array [ + 4, + 21, + ], + "type": "ObjectPattern", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 24, + 25, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 25, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 26, + ], + "type": "VariableDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 26, + ], + "sourceType": "script", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 3, + ], + "type": "Keyword", + "value": "var", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 5, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + "value": "x", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "range": Array [ + 6, + 7, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, + 9, + ], + "type": "Identifier", + "value": "y", + }, + Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 10, + ], + "type": "Punctuator", + "value": ":", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 12, + ], + "type": "Identifier", + "value": "y", + }, + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 14, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "range": Array [ + 15, + 17, + ], + "type": "Numeric", + "value": "10", + }, + Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "range": Array [ + 17, + 18, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 19, + "line": 1, + }, + }, + "range": Array [ + 19, + 20, + ], + "type": "Identifier", + "value": "z", + }, + Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "range": Array [ + 20, + 21, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "range": Array [ + 22, + 23, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, + }, + }, + "range": Array [ + 24, + 25, + ], + "type": "Identifier", + "value": "a", + }, + Object { + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 25, + "line": 1, + }, + }, + "range": Array [ + 25, + 26, + ], + "type": "Punctuator", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/destructuring/defaults-object-multi.src 1`] = ` +Object { + "body": Array [ + Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 5, + 11, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "range": Array [ + 5, + 11, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 11, + ], + "raw": "10", + "type": "Literal", + "value": 10, + }, + "type": "AssignmentPattern", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "name": "y", + "range": Array [ + 13, + 14, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 13, + 14, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "name": "y", + "range": Array [ + 13, + 14, + ], + "type": "Identifier", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "name": "z", + "range": Array [ + 16, + 17, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 16, + 17, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "name": "z", + "range": Array [ + 16, + 17, + ], + "type": "Identifier", + }, + }, + ], + "range": Array [ + 4, + 18, + ], + "type": "ObjectPattern", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 21, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 21, + 22, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 22, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 23, + ], + "type": "VariableDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 23, + ], + "sourceType": "script", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 3, + ], + "type": "Keyword", + "value": "var", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 5, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + "value": "x", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "range": Array [ + 7, + 8, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 11, + ], + "type": "Numeric", + "value": "10", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 12, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 14, + ], + "type": "Identifier", + "value": "y", + }, + Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "range": Array [ + 14, + 15, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "range": Array [ + 16, + 17, + ], + "type": "Identifier", + "value": "z", + }, + Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "range": Array [ + 17, + 18, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 19, + "line": 1, + }, + }, + "range": Array [ + 19, + 20, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 21, + "line": 1, + }, + }, + "range": Array [ + 21, + 22, + ], + "type": "Identifier", + "value": "a", + }, + Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "range": Array [ + 22, + 23, + ], + "type": "Punctuator", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/destructuring/defaults-object-nested-all.src 1`] = ` +Object { + "body": Array [ + Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 5, + 11, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "range": Array [ + 5, + 11, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 11, + ], + "raw": "10", + "type": "Literal", + "value": 10, + }, + "type": "AssignmentPattern", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "name": "y", + "range": Array [ + 13, + 14, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 13, + 25, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "name": "z", + "range": Array [ + 18, + 19, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 18, + 24, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "name": "z", + "range": Array [ + 18, + 19, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "range": Array [ + 18, + 24, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "range": Array [ + 22, + 24, + ], + "raw": "10", + "type": "Literal", + "value": 10, + }, + "type": "AssignmentPattern", + }, + }, + ], + "range": Array [ + 16, + 25, + ], + "type": "ObjectPattern", + }, + }, + ], + "range": Array [ + 4, + 26, + ], + "type": "ObjectPattern", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 30, + "line": 1, + }, + "start": Object { + "column": 29, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 29, + 30, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 30, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 30, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 31, + ], + "type": "VariableDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 31, + ], + "sourceType": "script", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 3, + ], + "type": "Keyword", + "value": "var", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 5, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + "value": "x", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "range": Array [ + 7, + 8, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 11, + ], + "type": "Numeric", + "value": "10", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 12, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 14, + ], + "type": "Identifier", + "value": "y", + }, + Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "range": Array [ + 14, + 15, + ], + "type": "Punctuator", + "value": ":", + }, + Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "range": Array [ + 16, + 17, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "range": Array [ + 18, + 19, + ], + "type": "Identifier", + "value": "z", + }, + Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "range": Array [ + 20, + 21, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "range": Array [ + 22, + 24, + ], + "type": "Numeric", + "value": "10", + }, + Object { + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, + }, + }, + "range": Array [ + 24, + 25, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 25, + "line": 1, + }, + }, + "range": Array [ + 25, + 26, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 28, + "line": 1, + }, + "start": Object { + "column": 27, + "line": 1, + }, + }, + "range": Array [ + 27, + 28, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 30, + "line": 1, + }, + "start": Object { + "column": 29, + "line": 1, + }, + }, + "range": Array [ + 29, + 30, + ], + "type": "Identifier", + "value": "a", + }, + Object { + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 30, + "line": 1, + }, + }, + "range": Array [ + 30, + 31, + ], + "type": "Punctuator", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/destructuring/defaults-object-nested-multi.src 1`] = ` +Object { + "body": Array [ + Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 5, + 11, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "range": Array [ + 5, + 11, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 11, + ], + "raw": "10", + "type": "Literal", + "value": 10, + }, + "type": "AssignmentPattern", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "name": "y", + "range": Array [ + 13, + 14, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 13, + 21, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "name": "z", + "range": Array [ + 18, + 19, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 18, + 19, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "name": "z", + "range": Array [ + 18, + 19, + ], + "type": "Identifier", + }, + }, + ], + "range": Array [ + 16, + 21, + ], + "type": "ObjectPattern", + }, + }, + ], + "range": Array [ + 4, + 22, + ], + "type": "ObjectPattern", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 25, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 25, + 26, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 26, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 27, + ], + "type": "VariableDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 27, + ], + "sourceType": "script", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 3, + ], + "type": "Keyword", + "value": "var", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 5, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + "value": "x", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "range": Array [ + 7, + 8, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 11, + ], + "type": "Numeric", + "value": "10", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 12, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 14, + ], + "type": "Identifier", + "value": "y", + }, + Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "range": Array [ + 14, + 15, + ], + "type": "Punctuator", + "value": ":", + }, + Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "range": Array [ + 16, + 17, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "range": Array [ + 18, + 19, + ], + "type": "Identifier", + "value": "z", + }, + Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "range": Array [ + 20, + 21, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 21, + "line": 1, + }, + }, + "range": Array [ + 21, + 22, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "range": Array [ + 23, + 24, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 25, + "line": 1, + }, + }, + "range": Array [ + 25, + 26, + ], + "type": "Identifier", + "value": "a", + }, + Object { + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 26, + "line": 1, + }, + }, + "range": Array [ + 26, + 27, + ], + "type": "Punctuator", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/destructuring/destructured-array-catch.src 1`] = ` +Object { + "body": Array [ + Object { + "async": false, + "body": Object { + "body": Array [ + Object { + "block": Object { + "body": Array [ + Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 3, + }, + "start": Object { + "column": 8, + "line": 3, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 3, + }, + "start": Object { + "column": 9, + "line": 3, + }, + }, + "name": "b", + "range": Array [ + 35, + 36, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 10, + "line": 3, + }, + "start": Object { + "column": 9, + "line": 3, + }, + }, + "method": false, + "range": Array [ + 35, + 36, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 3, + }, + "start": Object { + "column": 9, + "line": 3, + }, + }, + "name": "b", + "range": Array [ + 35, + 36, + ], + "type": "Identifier", + }, + }, + ], + "range": Array [ + 34, + 37, + ], + "type": "ObjectPattern", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 3, + }, + "start": Object { + "column": 14, + "line": 3, + }, + }, + "name": "a", + "range": Array [ + 40, + 41, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 15, + "line": 3, + }, + "start": Object { + "column": 8, + "line": 3, + }, + }, + "range": Array [ + 34, + 41, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", + "loc": Object { + "end": Object { + "column": 16, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 3, + }, + }, + "range": Array [ + 30, + 42, + ], + "type": "VariableDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 3, + "line": 4, + }, + "start": Object { + "column": 6, + "line": 2, + }, + }, + "range": Array [ + 24, + 46, + ], + "type": "BlockStatement", + }, + "finalizer": null, + "handler": Object { + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 3, + "line": 6, + }, + "start": Object { + "column": 17, + "line": 5, + }, + }, + "range": Array [ + 64, + 69, + ], + "type": "BlockStatement", + }, + "loc": Object { + "end": Object { + "column": 3, + "line": 6, + }, + "start": Object { + "column": 2, + "line": 5, + }, + }, + "param": Object { + "elements": Array [ + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 5, + }, + "start": Object { + "column": 9, + "line": 5, + }, + }, + "name": "stack", + "range": Array [ + 56, + 61, + ], + "type": "Identifier", + }, + ], + "loc": Object { + "end": Object { + "column": 15, + "line": 5, + }, + "start": Object { + "column": 8, + "line": 5, + }, + }, + "range": Array [ + 55, + 62, + ], + "type": "ArrayPattern", + }, + "range": Array [ + 49, + 69, + ], + "type": "CatchClause", + }, + "loc": Object { + "end": Object { + "column": 3, + "line": 6, + }, + "start": Object { + "column": 2, + "line": 2, + }, + }, + "range": Array [ + 20, + 69, + ], + "type": "TryStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 1, + "line": 7, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "range": Array [ + 16, + 71, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 9, + 10, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 1, + "line": 7, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "params": Array [ + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 12, + 13, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 12, + 13, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 12, + 13, + ], + "type": "Identifier", + }, + }, + ], + "range": Array [ + 11, + 14, + ], + "type": "ObjectPattern", + }, + ], + "range": Array [ + 0, + 71, + ], + "type": "FunctionDeclaration", + }, + Object { + "loc": Object { + "end": Object { + "column": 2, + "line": 7, + }, + "start": Object { + "column": 1, + "line": 7, + }, + }, + "range": Array [ + 71, + 72, + ], + "type": "EmptyStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 2, + "line": 7, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 72, + ], + "sourceType": "script", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 8, + ], + "type": "Keyword", + "value": "function", + }, + Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 10, + ], + "type": "Identifier", + "value": "x", + }, + Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "range": Array [ + 10, + 11, + ], + "type": "Punctuator", + "value": "(", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 12, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "range": Array [ + 12, + 13, + ], + "type": "Identifier", + "value": "a", + }, + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 14, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "range": Array [ + 14, + 15, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "range": Array [ + 16, + 17, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 2, + }, + "start": Object { + "column": 2, + "line": 2, + }, + }, + "range": Array [ + 20, + 23, + ], + "type": "Keyword", + "value": "try", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 2, + }, + "start": Object { + "column": 6, + "line": 2, + }, + }, + "range": Array [ + 24, + 25, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 3, + }, + }, + "range": Array [ + 30, + 33, + ], + "type": "Keyword", + "value": "var", + }, + Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 3, + }, + "start": Object { + "column": 8, + "line": 3, + }, + }, + "range": Array [ + 34, + 35, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 3, + }, + "start": Object { + "column": 9, + "line": 3, + }, + }, + "range": Array [ + 35, + 36, + ], + "type": "Identifier", + "value": "b", + }, + Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 3, + }, + "start": Object { + "column": 10, + "line": 3, + }, + }, + "range": Array [ + 36, + 37, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 3, + }, + "start": Object { + "column": 12, + "line": 3, + }, + }, + "range": Array [ + 38, + 39, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 3, + }, + "start": Object { + "column": 14, + "line": 3, + }, + }, + "range": Array [ + 40, + 41, + ], + "type": "Identifier", + "value": "a", + }, + Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 3, + }, + "start": Object { + "column": 15, + "line": 3, + }, + }, + "range": Array [ + 41, + 42, + ], + "type": "Punctuator", + "value": ";", + }, + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 4, + }, + "start": Object { + "column": 2, + "line": 4, + }, + }, + "range": Array [ + 45, + 46, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 5, + }, + "start": Object { + "column": 2, + "line": 5, + }, + }, + "range": Array [ + 49, + 54, + ], + "type": "Keyword", + "value": "catch", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 5, + }, + "start": Object { + "column": 7, + "line": 5, + }, + }, + "range": Array [ + 54, + 55, + ], + "type": "Punctuator", + "value": "(", + }, + Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 5, + }, + "start": Object { + "column": 8, + "line": 5, + }, + }, + "range": Array [ + 55, + 56, + ], + "type": "Punctuator", + "value": "[", + }, + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 5, + }, + "start": Object { + "column": 9, + "line": 5, + }, + }, + "range": Array [ + 56, + 61, + ], + "type": "Identifier", + "value": "stack", + }, + Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 5, + }, + "start": Object { + "column": 14, + "line": 5, + }, + }, + "range": Array [ + 61, + 62, + ], + "type": "Punctuator", + "value": "]", + }, + Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 5, + }, + "start": Object { + "column": 15, + "line": 5, + }, + }, + "range": Array [ + 62, + 63, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 5, + }, + "start": Object { + "column": 17, + "line": 5, + }, + }, + "range": Array [ + 64, + 65, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 6, + }, + "start": Object { + "column": 2, + "line": 6, + }, + }, + "range": Array [ + 68, + 69, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 7, + }, + "start": Object { + "column": 0, + "line": 7, + }, + }, + "range": Array [ + 70, + 71, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 2, + "line": 7, + }, + "start": Object { + "column": 1, + "line": 7, + }, + }, + "range": Array [ + 71, + 72, + ], + "type": "Punctuator", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/destructuring/destructured-object-catch.src 1`] = ` +Object { + "body": Array [ + Object { + "async": false, + "body": Object { + "body": Array [ + Object { + "block": Object { + "body": Array [ + Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 3, + }, + "start": Object { + "column": 8, + "line": 3, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 3, + }, + "start": Object { + "column": 9, + "line": 3, + }, + }, + "name": "b", + "range": Array [ + 35, + 36, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 10, + "line": 3, + }, + "start": Object { + "column": 9, + "line": 3, + }, + }, + "method": false, + "range": Array [ + 35, + 36, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 3, + }, + "start": Object { + "column": 9, + "line": 3, + }, + }, + "name": "b", + "range": Array [ + 35, + 36, + ], + "type": "Identifier", + }, + }, + ], + "range": Array [ + 34, + 37, + ], + "type": "ObjectPattern", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 3, + }, + "start": Object { + "column": 14, + "line": 3, + }, + }, + "name": "a", + "range": Array [ + 40, + 41, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 15, + "line": 3, + }, + "start": Object { + "column": 8, + "line": 3, + }, + }, + "range": Array [ + 34, + 41, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", + "loc": Object { + "end": Object { + "column": 16, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 3, + }, + }, + "range": Array [ + 30, + 42, + ], + "type": "VariableDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 3, + "line": 4, + }, + "start": Object { + "column": 6, + "line": 2, + }, + }, + "range": Array [ + 24, + 46, + ], + "type": "BlockStatement", + }, + "finalizer": null, + "handler": Object { + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 3, + "line": 6, + }, + "start": Object { + "column": 17, + "line": 5, + }, + }, + "range": Array [ + 64, + 69, + ], + "type": "BlockStatement", + }, + "loc": Object { + "end": Object { + "column": 3, + "line": 6, + }, + "start": Object { + "column": 2, + "line": 5, + }, + }, + "param": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 5, + }, + "start": Object { + "column": 8, + "line": 5, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 5, + }, + "start": Object { + "column": 9, + "line": 5, + }, + }, + "name": "stack", + "range": Array [ + 56, + 61, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 14, + "line": 5, + }, + "start": Object { + "column": 9, + "line": 5, + }, + }, + "method": false, + "range": Array [ + 56, + 61, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 5, + }, + "start": Object { + "column": 9, + "line": 5, + }, + }, + "name": "stack", + "range": Array [ + 56, + 61, + ], + "type": "Identifier", + }, + }, + ], + "range": Array [ + 55, + 62, + ], + "type": "ObjectPattern", + }, + "range": Array [ + 49, + 69, + ], + "type": "CatchClause", + }, + "loc": Object { + "end": Object { + "column": 3, + "line": 6, + }, + "start": Object { + "column": 2, + "line": 2, + }, + }, + "range": Array [ + 20, + 69, + ], + "type": "TryStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 1, + "line": 7, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "range": Array [ + 16, + 71, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 9, + 10, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 1, + "line": 7, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "params": Array [ + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 12, + 13, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 12, + 13, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 12, + 13, + ], + "type": "Identifier", + }, + }, + ], + "range": Array [ + 11, + 14, + ], + "type": "ObjectPattern", + }, + ], + "range": Array [ + 0, + 71, + ], + "type": "FunctionDeclaration", + }, + Object { + "loc": Object { + "end": Object { + "column": 2, + "line": 7, + }, + "start": Object { + "column": 1, + "line": 7, + }, + }, + "range": Array [ + 71, + 72, + ], + "type": "EmptyStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 2, + "line": 7, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 72, + ], + "sourceType": "script", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 8, + ], + "type": "Keyword", + "value": "function", + }, + Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 10, + ], + "type": "Identifier", + "value": "x", + }, + Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "range": Array [ + 10, + 11, + ], + "type": "Punctuator", + "value": "(", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 12, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "range": Array [ + 12, + 13, + ], + "type": "Identifier", + "value": "a", + }, + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 14, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "range": Array [ + 14, + 15, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "range": Array [ + 16, + 17, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 2, + }, + "start": Object { + "column": 2, + "line": 2, + }, + }, + "range": Array [ + 20, + 23, + ], + "type": "Keyword", + "value": "try", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 2, + }, + "start": Object { + "column": 6, + "line": 2, + }, + }, + "range": Array [ + 24, + 25, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 3, + }, + }, + "range": Array [ + 30, + 33, + ], + "type": "Keyword", + "value": "var", + }, + Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 3, + }, + "start": Object { + "column": 8, + "line": 3, + }, + }, + "range": Array [ + 34, + 35, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 3, + }, + "start": Object { + "column": 9, + "line": 3, + }, + }, + "range": Array [ + 35, + 36, + ], + "type": "Identifier", + "value": "b", + }, + Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 3, + }, + "start": Object { + "column": 10, + "line": 3, + }, + }, + "range": Array [ + 36, + 37, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 3, + }, + "start": Object { + "column": 12, + "line": 3, + }, + }, + "range": Array [ + 38, + 39, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 3, + }, + "start": Object { + "column": 14, + "line": 3, + }, + }, + "range": Array [ + 40, + 41, + ], + "type": "Identifier", + "value": "a", + }, + Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 3, + }, + "start": Object { + "column": 15, + "line": 3, + }, + }, + "range": Array [ + 41, + 42, + ], + "type": "Punctuator", + "value": ";", + }, + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 4, + }, + "start": Object { + "column": 2, + "line": 4, + }, + }, + "range": Array [ + 45, + 46, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 5, + }, + "start": Object { + "column": 2, + "line": 5, + }, + }, + "range": Array [ + 49, + 54, + ], + "type": "Keyword", + "value": "catch", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 5, + }, + "start": Object { + "column": 7, + "line": 5, + }, + }, + "range": Array [ + 54, + 55, + ], + "type": "Punctuator", + "value": "(", + }, + Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 5, + }, + "start": Object { + "column": 8, + "line": 5, + }, + }, + "range": Array [ + 55, + 56, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 5, + }, + "start": Object { + "column": 9, + "line": 5, + }, + }, + "range": Array [ + 56, + 61, + ], + "type": "Identifier", + "value": "stack", + }, + Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 5, + }, + "start": Object { + "column": 14, + "line": 5, + }, + }, + "range": Array [ + 61, + 62, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 5, + }, + "start": Object { + "column": 15, + "line": 5, + }, + }, + "range": Array [ + 62, + 63, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 5, + }, + "start": Object { + "column": 17, + "line": 5, + }, + }, + "range": Array [ + 64, + 65, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 6, + }, + "start": Object { + "column": 2, + "line": 6, + }, + }, + "range": Array [ + 68, + 69, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 7, + }, + "start": Object { + "column": 0, + "line": 7, + }, + }, + "range": Array [ + 70, + 71, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 2, + "line": 7, + }, + "start": Object { + "column": 1, + "line": 7, + }, + }, + "range": Array [ + 71, + 72, + ], + "type": "Punctuator", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/destructuring/invalid-defaults-object-assign.src 1`] = ` +Object { + "body": Array [ + Object { + "expression": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 3, + "line": 1, + }, + }, + "name": "Object", + "range": Array [ + 3, + 9, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 3, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 3, + 11, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 3, + "line": 1, + }, + }, + "name": "Object", + "range": Array [ + 3, + 9, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 3, + "line": 1, + }, + }, + "range": Array [ + 3, + 11, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "range": Array [ + 10, + 11, + ], + "raw": "0", + "type": "Literal", + "value": 0, + }, + "type": "AssignmentPattern", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "name": "String", + "range": Array [ + 13, + 19, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 13, + 21, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "name": "String", + "range": Array [ + 13, + 19, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 21, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "range": Array [ + 20, + 21, + ], + "raw": "0", + "type": "Literal", + "value": 0, + }, + "type": "AssignmentPattern", + }, + }, + ], + "range": Array [ + 1, + 23, + ], + "type": "ObjectPattern", + }, + "loc": Object { + "end": Object { + "column": 29, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "operator": "=", + "range": Array [ + 0, + 29, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 29, + "line": 1, + }, + "start": Object { + "column": 27, + "line": 1, + }, + }, + "properties": Array [], + "range": Array [ + 27, + 29, + ], + "type": "ObjectExpression", + }, + "type": "AssignmentExpression", + }, + "loc": Object { + "end": Object { + "column": 29, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 29, + ], + "type": "ExpressionStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 30, + ], + "sourceType": "script", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 1, + ], + "type": "Punctuator", + "value": "(", + }, + Object { + "loc": Object { + "end": Object { + "column": 2, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "range": Array [ + 1, + 2, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 3, + "line": 1, + }, + }, + "range": Array [ + 3, + 9, + ], + "type": "Identifier", + "value": "Object", + }, + Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 10, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "range": Array [ + 10, + 11, + ], + "type": "Numeric", + "value": "0", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 12, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 19, + ], + "type": "Identifier", + "value": "String", + }, + Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 19, + "line": 1, + }, + }, + "range": Array [ + 19, + 20, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "range": Array [ + 20, + 21, + ], + "type": "Numeric", + "value": "0", + }, + Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "range": Array [ + 22, + 23, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "range": Array [ + 23, + 24, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 25, + "line": 1, + }, + }, + "range": Array [ + 25, + 26, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 28, + "line": 1, + }, + "start": Object { + "column": 27, + "line": 1, + }, + }, + "range": Array [ + 27, + 28, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 29, + "line": 1, + }, + "start": Object { + "column": 28, + "line": 1, + }, + }, + "range": Array [ + 28, + 29, + ], + "type": "Punctuator", + "value": "}", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/destructuring/named-param.src 1`] = ` +Object { + "body": Array [ + Object { + "expression": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 3, + "line": 1, + }, + }, + "name": "responseText", + "range": Array [ + 3, + 15, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 3, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 3, + 21, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "name": "text", + "range": Array [ + 17, + 21, + ], + "type": "Identifier", + }, + }, + ], + "range": Array [ + 1, + 23, + ], + "type": "ObjectPattern", + }, + "loc": Object { + "end": Object { + "column": 29, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "operator": "=", + "range": Array [ + 1, + 29, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 29, + "line": 1, + }, + "start": Object { + "column": 26, + "line": 1, + }, + }, + "name": "res", + "range": Array [ + 26, + 29, + ], + "type": "Identifier", + }, + "type": "AssignmentExpression", + }, + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 31, + ], + "type": "ExpressionStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 31, + ], + "sourceType": "script", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 1, + ], + "type": "Punctuator", + "value": "(", + }, + Object { + "loc": Object { + "end": Object { + "column": 2, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "range": Array [ + 1, + 2, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 3, + "line": 1, + }, + }, + "range": Array [ + 3, + 15, + ], + "type": "Identifier", + "value": "responseText", + }, + Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "range": Array [ + 15, + 16, + ], + "type": "Punctuator", + "value": ":", + }, + Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "range": Array [ + 17, + 21, + ], + "type": "Identifier", + "value": "text", + }, + Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "range": Array [ + 22, + 23, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, + }, + }, + "range": Array [ + 24, + 25, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 29, + "line": 1, + }, + "start": Object { + "column": 26, + "line": 1, + }, + }, + "range": Array [ + 26, + 29, + ], + "type": "Identifier", + "value": "res", + }, + Object { + "loc": Object { + "end": Object { + "column": 30, + "line": 1, + }, + "start": Object { + "column": 29, + "line": 1, + }, + }, + "range": Array [ + 29, + 30, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 30, + "line": 1, + }, + }, + "range": Array [ + 30, + 31, + ], + "type": "Punctuator", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/destructuring/nested-array.src 1`] = ` +Object { + "body": Array [ + Object { + "declarations": Array [ + Object { + "id": Object { + "elements": Array [ + Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + }, + null, + Object { + "elements": Array [ + null, + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "name": "z", + "range": Array [ + 13, + 14, + ], + "type": "Identifier", + }, + ], + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "range": Array [ + 10, + 15, + ], + "type": "ArrayPattern", + }, + ], + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 16, + ], + "type": "ArrayPattern", + }, + "init": Object { + "elements": Array [ + Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "range": Array [ + 20, + 21, + ], + "raw": "1", + "type": "Literal", + "value": 1, + }, + Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "range": Array [ + 22, + 23, + ], + "raw": "2", + "type": "Literal", + "value": 2, + }, + Object { + "elements": Array [ + Object { + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 25, + "line": 1, + }, + }, + "range": Array [ + 25, + 26, + ], + "raw": "3", + "type": "Literal", + "value": 3, + }, + Object { + "loc": Object { + "end": Object { + "column": 28, + "line": 1, + }, + "start": Object { + "column": 27, + "line": 1, + }, + }, + "range": Array [ + 27, + 28, + ], + "raw": "4", + "type": "Literal", + "value": 4, + }, + ], + "loc": Object { + "end": Object { + "column": 29, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, + }, + }, + "range": Array [ + 24, + 29, + ], + "type": "ArrayExpression", + }, + ], + "loc": Object { + "end": Object { + "column": 30, + "line": 1, + }, + "start": Object { + "column": 19, + "line": 1, + }, + }, + "range": Array [ + 19, + 30, + ], + "type": "ArrayExpression", + }, + "loc": Object { + "end": Object { + "column": 30, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 30, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 31, + ], + "type": "VariableDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 31, + ], + "sourceType": "script", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 3, + ], + "type": "Keyword", + "value": "var", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 5, + ], + "type": "Punctuator", + "value": "[", + }, + Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + "value": "x", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "range": Array [ + 6, + 7, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, + 9, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "range": Array [ + 10, + 11, + ], + "type": "Punctuator", + "value": "[", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 12, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 14, + ], + "type": "Identifier", + "value": "z", + }, + Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "range": Array [ + 14, + 15, + ], + "type": "Punctuator", + "value": "]", + }, + Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "range": Array [ + 15, + 16, + ], + "type": "Punctuator", + "value": "]", + }, + Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "range": Array [ + 17, + 18, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 19, + "line": 1, + }, + }, + "range": Array [ + 19, + 20, + ], + "type": "Punctuator", + "value": "[", + }, + Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "range": Array [ + 20, + 21, + ], + "type": "Numeric", + "value": "1", + }, + Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 21, + "line": 1, + }, + }, + "range": Array [ + 21, + 22, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "range": Array [ + 22, + 23, + ], + "type": "Numeric", + "value": "2", + }, + Object { + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "range": Array [ + 23, + 24, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, + }, + }, + "range": Array [ + 24, + 25, + ], + "type": "Punctuator", + "value": "[", + }, + Object { + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 25, + "line": 1, + }, + }, + "range": Array [ + 25, + 26, + ], + "type": "Numeric", + "value": "3", + }, + Object { + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 26, + "line": 1, + }, + }, + "range": Array [ + 26, + 27, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 28, + "line": 1, + }, + "start": Object { + "column": 27, + "line": 1, + }, + }, + "range": Array [ + 27, + 28, + ], + "type": "Numeric", + "value": "4", + }, + Object { + "loc": Object { + "end": Object { + "column": 29, + "line": 1, + }, + "start": Object { + "column": 28, + "line": 1, + }, + }, + "range": Array [ + 28, + 29, + ], + "type": "Punctuator", + "value": "]", + }, + Object { + "loc": Object { + "end": Object { + "column": 30, + "line": 1, + }, + "start": Object { + "column": 29, + "line": 1, + }, + }, + "range": Array [ + 29, + 30, + ], + "type": "Punctuator", + "value": "]", + }, + Object { + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 30, + "line": 1, + }, + }, + "range": Array [ + 30, + 31, + ], + "type": "Punctuator", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/destructuring/nested-object.src 1`] = ` +Object { + "body": Array [ + Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 5, + 9, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "name": "y", + "range": Array [ + 8, + 9, + ], + "type": "Identifier", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "name": "z", + "range": Array [ + 11, + 12, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 11, + 22, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 16, + 17, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 16, + 20, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 19, + "line": 1, + }, + }, + "name": "b", + "range": Array [ + 19, + 20, + ], + "type": "Identifier", + }, + }, + ], + "range": Array [ + 14, + 22, + ], + "type": "ObjectPattern", + }, + }, + ], + "range": Array [ + 4, + 24, + ], + "type": "ObjectPattern", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 52, + "line": 1, + }, + "start": Object { + "column": 27, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 30, + "line": 1, + }, + "start": Object { + "column": 29, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 29, + 30, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 35, + "line": 1, + }, + "start": Object { + "column": 29, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 29, + 35, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 35, + "line": 1, + }, + "start": Object { + "column": 32, + "line": 1, + }, + }, + "range": Array [ + 32, + 35, + ], + "raw": "\\"3\\"", + "type": "Literal", + "value": "3", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 38, + "line": 1, + }, + "start": Object { + "column": 37, + "line": 1, + }, + }, + "name": "z", + "range": Array [ + 37, + 38, + ], + "type": "Identifier", }, - }, - "method": false, - "range": Array [ - 12, - 13, - ], - "shorthand": true, - "type": "Property", - "value": Object { + "kind": "init", "loc": Object { "end": Object { - "column": 13, + "column": 50, "line": 1, }, "start": Object { - "column": 12, + "column": 37, "line": 1, }, }, - "name": "a", + "method": false, "range": Array [ - 12, - 13, + 37, + 50, ], - "type": "Identifier", + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 50, + "line": 1, + }, + "start": Object { + "column": 40, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 43, + "line": 1, + }, + "start": Object { + "column": 42, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 42, + 43, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 48, + "line": 1, + }, + "start": Object { + "column": 42, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 42, + 48, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 48, + "line": 1, + }, + "start": Object { + "column": 45, + "line": 1, + }, + }, + "range": Array [ + 45, + 48, + ], + "raw": "\\"b\\"", + "type": "Literal", + "value": "b", + }, + }, + ], + "range": Array [ + 40, + 50, + ], + "type": "ObjectExpression", + }, }, + ], + "range": Array [ + 27, + 52, + ], + "type": "ObjectExpression", + }, + "loc": Object { + "end": Object { + "column": 52, + "line": 1, }, - ], + "start": Object { + "column": 4, + "line": 1, + }, + }, "range": Array [ - 11, - 14, + 4, + 52, ], - "type": "ObjectPattern", + "type": "VariableDeclarator", }, ], - "range": Array [ - 0, - 71, - ], - "type": "FunctionDeclaration", - }, - Object { + "kind": "var", "loc": Object { "end": Object { - "column": 2, - "line": 7, + "column": 53, + "line": 1, }, "start": Object { - "column": 1, - "line": 7, + "column": 0, + "line": 1, }, }, "range": Array [ - 71, - 72, + 0, + 53, ], - "type": "EmptyStatement", + "type": "VariableDeclaration", }, ], "loc": Object { "end": Object { - "column": 2, - "line": 7, + "column": 53, + "line": 1, }, "start": Object { "column": 0, @@ -44988,14 +53735,14 @@ Object { }, "range": Array [ 0, - 72, + 53, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 8, + "column": 3, "line": 1, }, "start": Object { @@ -45005,25 +53752,43 @@ Object { }, "range": Array [ 0, - 8, + 3, ], "type": "Keyword", - "value": "function", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 5, "line": 1, }, "start": Object { - "column": 9, + "column": 4, "line": 1, }, }, "range": Array [ - 9, - 10, + 4, + 5, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "range": Array [ + 5, + 6, ], "type": "Identifier", "value": "x", @@ -45031,74 +53796,92 @@ Object { Object { "loc": Object { "end": Object { - "column": 11, + "column": 7, "line": 1, }, "start": Object { - "column": 10, + "column": 6, "line": 1, }, }, "range": Array [ - 10, - 11, + 6, + 7, ], "type": "Punctuator", - "value": "(", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 9, "line": 1, }, "start": Object { - "column": 11, + "column": 8, "line": 1, }, }, "range": Array [ - 11, - 12, + 8, + 9, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "y", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 10, "line": 1, }, "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 10, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { "column": 12, "line": 1, }, + "start": Object { + "column": 11, + "line": 1, + }, }, "range": Array [ + 11, 12, - 13, ], "type": "Identifier", - "value": "a", + "value": "z", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 13, "line": 1, }, "start": Object { - "column": 13, + "column": 12, "line": 1, }, }, "range": Array [ + 12, 13, - 14, ], "type": "Punctuator", - "value": "}", + "value": ":", }, Object { "loc": Object { @@ -45116,7 +53899,7 @@ Object { 15, ], "type": "Punctuator", - "value": ")", + "value": "{", }, Object { "loc": Object { @@ -45133,329 +53916,311 @@ Object { 16, 17, ], - "type": "Punctuator", - "value": "{", - }, - Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 2, - }, - "start": Object { - "column": 2, - "line": 2, - }, - }, - "range": Array [ - 20, - 23, - ], - "type": "Keyword", - "value": "try", + "type": "Identifier", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 2, + "column": 18, + "line": 1, }, "start": Object { - "column": 6, - "line": 2, + "column": 17, + "line": 1, }, }, "range": Array [ - 24, - 25, + 17, + 18, ], "type": "Punctuator", - "value": "{", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 3, + "column": 20, + "line": 1, }, "start": Object { - "column": 4, - "line": 3, + "column": 19, + "line": 1, }, }, "range": Array [ - 30, - 33, + 19, + 20, ], - "type": "Keyword", - "value": "var", + "type": "Identifier", + "value": "b", }, Object { "loc": Object { "end": Object { - "column": 9, - "line": 3, + "column": 22, + "line": 1, }, "start": Object { - "column": 8, - "line": 3, + "column": 21, + "line": 1, }, }, "range": Array [ - 34, - 35, + 21, + 22, ], "type": "Punctuator", - "value": "{", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 10, - "line": 3, + "column": 24, + "line": 1, }, "start": Object { - "column": 9, - "line": 3, + "column": 23, + "line": 1, }, }, "range": Array [ - 35, - 36, + 23, + 24, ], - "type": "Identifier", - "value": "b", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 11, - "line": 3, + "column": 26, + "line": 1, }, "start": Object { - "column": 10, - "line": 3, + "column": 25, + "line": 1, }, }, "range": Array [ - 36, - 37, + 25, + 26, ], "type": "Punctuator", - "value": "}", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 13, - "line": 3, + "column": 28, + "line": 1, }, "start": Object { - "column": 12, - "line": 3, + "column": 27, + "line": 1, }, }, "range": Array [ - 38, - 39, + 27, + 28, ], "type": "Punctuator", - "value": "=", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 15, - "line": 3, + "column": 30, + "line": 1, }, "start": Object { - "column": 14, - "line": 3, + "column": 29, + "line": 1, }, }, "range": Array [ - 40, - 41, + 29, + 30, ], "type": "Identifier", - "value": "a", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 16, - "line": 3, + "column": 31, + "line": 1, }, "start": Object { - "column": 15, - "line": 3, + "column": 30, + "line": 1, }, }, "range": Array [ - 41, - 42, + 30, + 31, ], "type": "Punctuator", - "value": ";", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 3, - "line": 4, + "column": 35, + "line": 1, }, "start": Object { - "column": 2, - "line": 4, + "column": 32, + "line": 1, }, }, "range": Array [ - 45, - 46, + 32, + 35, ], - "type": "Punctuator", - "value": "}", + "type": "String", + "value": "\\"3\\"", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 5, + "column": 36, + "line": 1, }, "start": Object { - "column": 2, - "line": 5, + "column": 35, + "line": 1, }, }, "range": Array [ - 49, - 54, + 35, + 36, ], - "type": "Keyword", - "value": "catch", + "type": "Punctuator", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 8, - "line": 5, + "column": 38, + "line": 1, }, "start": Object { - "column": 7, - "line": 5, + "column": 37, + "line": 1, }, }, "range": Array [ - 54, - 55, + 37, + 38, ], - "type": "Punctuator", - "value": "(", + "type": "Identifier", + "value": "z", }, Object { "loc": Object { "end": Object { - "column": 9, - "line": 5, + "column": 39, + "line": 1, }, "start": Object { - "column": 8, - "line": 5, + "column": 38, + "line": 1, }, }, "range": Array [ - 55, - 56, + 38, + 39, ], "type": "Punctuator", - "value": "{", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 14, - "line": 5, + "column": 41, + "line": 1, }, "start": Object { - "column": 9, - "line": 5, + "column": 40, + "line": 1, }, }, "range": Array [ - 56, - 61, + 40, + 41, ], - "type": "Identifier", - "value": "stack", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 15, - "line": 5, + "column": 43, + "line": 1, }, "start": Object { - "column": 14, - "line": 5, + "column": 42, + "line": 1, }, }, "range": Array [ - 61, - 62, + 42, + 43, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 16, - "line": 5, + "column": 44, + "line": 1, }, "start": Object { - "column": 15, - "line": 5, + "column": 43, + "line": 1, }, }, "range": Array [ - 62, - 63, + 43, + 44, ], "type": "Punctuator", - "value": ")", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 18, - "line": 5, + "column": 48, + "line": 1, }, "start": Object { - "column": 17, - "line": 5, + "column": 45, + "line": 1, }, }, - "range": Array [ - 64, - 65, + "range": Array [ + 45, + 48, ], - "type": "Punctuator", - "value": "{", + "type": "String", + "value": "\\"b\\"", }, Object { "loc": Object { "end": Object { - "column": 3, - "line": 6, + "column": 50, + "line": 1, }, "start": Object { - "column": 2, - "line": 6, + "column": 49, + "line": 1, }, }, "range": Array [ - 68, - 69, + 49, + 50, ], "type": "Punctuator", "value": "}", @@ -45463,17 +54228,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 1, - "line": 7, + "column": 52, + "line": 1, }, "start": Object { - "column": 0, - "line": 7, + "column": 51, + "line": 1, }, }, "range": Array [ - 70, - 71, + 51, + 52, ], "type": "Punctuator", "value": "}", @@ -45481,17 +54246,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 2, - "line": 7, + "column": 53, + "line": 1, }, "start": Object { - "column": 1, - "line": 7, + "column": 52, + "line": 1, }, }, "range": Array [ - 71, - 72, + 52, + 53, ], "type": "Punctuator", "value": ";", @@ -45501,254 +54266,127 @@ Object { } `; -exports[`javascript fixtures/destructuring/invalid-defaults-object-assign.src 1`] = ` +exports[`javascript fixtures/destructuring/object-var-named.src 1`] = ` Object { "body": Array [ Object { - "expression": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 1, - "line": 1, - }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 1, - }, - "start": Object { - "column": 3, - "line": 1, - }, - }, - "name": "Object", - "range": Array [ - 3, - 9, - ], - "type": "Identifier", + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 3, - "line": 1, - }, + "start": Object { + "column": 4, + "line": 1, }, - "method": false, - "range": Array [ - 3, - 11, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "left": Object { + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { "loc": Object { "end": Object { - "column": 9, + "column": 6, "line": 1, }, "start": Object { - "column": 3, + "column": 5, "line": 1, }, }, - "name": "Object", + "name": "a", "range": Array [ - 3, - 9, + 5, + 6, ], "type": "Identifier", }, + "kind": "init", "loc": Object { "end": Object { - "column": 11, + "column": 8, "line": 1, }, "start": Object { - "column": 3, + "column": 5, "line": 1, }, }, + "method": false, "range": Array [ - 3, - 11, + 5, + 8, ], - "right": Object { + "shorthand": false, + "type": "Property", + "value": Object { "loc": Object { "end": Object { - "column": 11, + "column": 8, "line": 1, }, "start": Object { - "column": 10, + "column": 7, "line": 1, }, }, + "name": "b", "range": Array [ - 10, - 11, + 7, + 8, ], - "raw": "0", - "type": "Literal", - "value": 0, - }, - "type": "AssignmentPattern", - }, - }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, + "type": "Identifier", }, - "name": "String", - "range": Array [ - 13, - 19, - ], - "type": "Identifier", }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, + ], + "range": Array [ + 4, + 9, + ], + "type": "ObjectPattern", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, }, - "method": false, - "range": Array [ - 13, - 21, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "name": "String", - "range": Array [ - 13, - 19, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "range": Array [ - 13, - 21, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, - }, - "range": Array [ - 20, - 21, - ], - "raw": "0", - "type": "Literal", - "value": 0, - }, - "type": "AssignmentPattern", + "start": Object { + "column": 12, + "line": 1, }, }, - ], - "range": Array [ - 1, - 23, - ], - "type": "ObjectPattern", - }, - "loc": Object { - "end": Object { - "column": 29, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, + "properties": Array [], + "range": Array [ + 12, + 14, + ], + "type": "ObjectExpression", }, - }, - "operator": "=", - "range": Array [ - 0, - 29, - ], - "right": Object { "loc": Object { "end": Object { - "column": 29, + "column": 14, "line": 1, }, "start": Object { - "column": 27, + "column": 4, "line": 1, }, }, - "properties": Array [], "range": Array [ - 27, - 29, + 4, + 14, ], - "type": "ObjectExpression", + "type": "VariableDeclarator", }, - "type": "AssignmentExpression", - }, + ], + "kind": "var", "loc": Object { "end": Object { - "column": 29, + "column": 15, "line": 1, }, "start": Object { @@ -45758,15 +54396,15 @@ Object { }, "range": Array [ 0, - 29, + 15, ], - "type": "ExpressionStatement", + "type": "VariableDeclaration", }, ], "loc": Object { "end": Object { - "column": 0, - "line": 2, + "column": 15, + "line": 1, }, "start": Object { "column": 0, @@ -45775,14 +54413,14 @@ Object { }, "range": Array [ 0, - 30, + 15, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, + "column": 3, "line": 1, }, "start": Object { @@ -45792,25 +54430,25 @@ Object { }, "range": Array [ 0, - 1, + 3, ], - "type": "Punctuator", - "value": "(", + "type": "Keyword", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 2, + "column": 5, "line": 1, }, "start": Object { - "column": 1, + "column": 4, "line": 1, }, }, "range": Array [ - 1, - 2, + 4, + 5, ], "type": "Punctuator", "value": "{", @@ -45818,143 +54456,71 @@ Object { Object { "loc": Object { "end": Object { - "column": 9, + "column": 6, "line": 1, }, "start": Object { - "column": 3, + "column": 5, "line": 1, }, }, "range": Array [ - 3, - 9, + 5, + 6, ], "type": "Identifier", - "value": "Object", - }, - Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 10, - ], - "type": "Punctuator", - "value": "=", - }, - Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "range": Array [ - 10, - 11, - ], - "type": "Numeric", - "value": "0", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 7, "line": 1, }, "start": Object { - "column": 11, + "column": 6, "line": 1, }, }, "range": Array [ - 11, - 12, + 6, + 7, ], "type": "Punctuator", - "value": ",", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 19, + "column": 8, "line": 1, }, "start": Object { - "column": 13, + "column": 7, "line": 1, }, }, "range": Array [ - 13, - 19, + 7, + 8, ], "type": "Identifier", - "value": "String", - }, - Object { - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 19, - "line": 1, - }, - }, - "range": Array [ - 19, - 20, - ], - "type": "Punctuator", - "value": "=", - }, - Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, - }, - "range": Array [ - 20, - 21, - ], - "type": "Numeric", - "value": "0", + "value": "b", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 9, "line": 1, }, "start": Object { - "column": 22, + "column": 8, "line": 1, }, }, "range": Array [ - 22, - 23, + 8, + 9, ], "type": "Punctuator", "value": "}", @@ -45962,199 +54528,201 @@ Object { Object { "loc": Object { "end": Object { - "column": 24, + "column": 11, "line": 1, }, "start": Object { - "column": 23, + "column": 10, "line": 1, }, }, "range": Array [ - 23, - 24, + 10, + 11, ], "type": "Punctuator", - "value": ")", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 26, + "column": 13, "line": 1, }, "start": Object { - "column": 25, + "column": 12, "line": 1, }, }, "range": Array [ - 25, - 26, + 12, + 13, ], "type": "Punctuator", - "value": "=", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 28, + "column": 14, "line": 1, }, "start": Object { - "column": 27, + "column": 13, "line": 1, }, }, "range": Array [ - 27, - 28, + 13, + 14, ], "type": "Punctuator", - "value": "{", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 29, + "column": 15, "line": 1, }, "start": Object { - "column": 28, + "column": 14, "line": 1, }, }, "range": Array [ - 28, - 29, + 14, + 15, ], "type": "Punctuator", - "value": "}", + "value": ";", }, ], "type": "Program", } `; -exports[`javascript fixtures/destructuring/named-param.src 1`] = ` -Object { - "body": Array [ - Object { - "expression": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 1, - "line": 1, - }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 3, - "line": 1, - }, - }, - "name": "responseText", - "range": Array [ - 3, - 15, - ], - "type": "Identifier", +exports[`javascript fixtures/destructuring/object-var-undefined.src 1`] = ` +Object { + "body": Array [ + Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 3, - "line": 1, - }, + "start": Object { + "column": 4, + "line": 1, }, - "method": false, - "range": Array [ - 3, - 21, - ], - "shorthand": false, - "type": "Property", - "value": Object { + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + }, + "kind": "init", "loc": Object { "end": Object { - "column": 21, + "column": 6, "line": 1, }, "start": Object { - "column": 17, + "column": 5, "line": 1, }, }, - "name": "text", + "method": false, "range": Array [ - 17, - 21, + 5, + 6, ], - "type": "Identifier", + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + }, }, - }, - ], - "range": Array [ - 1, - 23, - ], - "type": "ObjectPattern", - }, - "loc": Object { - "end": Object { - "column": 29, - "line": 1, + ], + "range": Array [ + 4, + 7, + ], + "type": "ObjectPattern", }, - "start": Object { - "column": 1, - "line": 1, + "init": Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "properties": Array [], + "range": Array [ + 10, + 12, + ], + "type": "ObjectExpression", }, - }, - "operator": "=", - "range": Array [ - 1, - 29, - ], - "right": Object { "loc": Object { "end": Object { - "column": 29, + "column": 12, "line": 1, }, "start": Object { - "column": 26, + "column": 4, "line": 1, }, }, - "name": "res", "range": Array [ - 26, - 29, + 4, + 12, ], - "type": "Identifier", + "type": "VariableDeclarator", }, - "type": "AssignmentExpression", - }, + ], + "kind": "var", "loc": Object { "end": Object { - "column": 31, + "column": 13, "line": 1, }, "start": Object { @@ -46164,14 +54732,14 @@ Object { }, "range": Array [ 0, - 31, + 13, ], - "type": "ExpressionStatement", + "type": "VariableDeclaration", }, ], "loc": Object { "end": Object { - "column": 31, + "column": 13, "line": 1, }, "start": Object { @@ -46181,14 +54749,14 @@ Object { }, "range": Array [ 0, - 31, + 13, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, + "column": 3, "line": 1, }, "start": Object { @@ -46198,97 +54766,61 @@ Object { }, "range": Array [ 0, - 1, - ], - "type": "Punctuator", - "value": "(", - }, - Object { - "loc": Object { - "end": Object { - "column": 2, - "line": 1, - }, - "start": Object { - "column": 1, - "line": 1, - }, - }, - "range": Array [ - 1, - 2, - ], - "type": "Punctuator", - "value": "{", - }, - Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 3, - "line": 1, - }, - }, - "range": Array [ 3, - 15, ], - "type": "Identifier", - "value": "responseText", + "type": "Keyword", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 5, "line": 1, }, "start": Object { - "column": 15, + "column": 4, "line": 1, }, }, "range": Array [ - 15, - 16, + 4, + 5, ], "type": "Punctuator", - "value": ":", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 21, + "column": 6, "line": 1, }, "start": Object { - "column": 17, + "column": 5, "line": 1, }, }, "range": Array [ - 17, - 21, + 5, + 6, ], "type": "Identifier", - "value": "text", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 7, "line": 1, }, "start": Object { - "column": 22, + "column": 6, "line": 1, }, }, "range": Array [ - 22, - 23, + 6, + 7, ], "type": "Punctuator", "value": "}", @@ -46296,17 +54828,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 25, + "column": 9, "line": 1, }, "start": Object { - "column": 24, + "column": 8, "line": 1, }, }, "range": Array [ - 24, - 25, + 8, + 9, ], "type": "Punctuator", "value": "=", @@ -46314,53 +54846,53 @@ Object { Object { "loc": Object { "end": Object { - "column": 29, + "column": 11, "line": 1, }, "start": Object { - "column": 26, + "column": 10, "line": 1, }, }, "range": Array [ - 26, - 29, + 10, + 11, ], - "type": "Identifier", - "value": "res", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 30, + "column": 12, "line": 1, }, "start": Object { - "column": 29, + "column": 11, "line": 1, }, }, "range": Array [ - 29, - 30, + 11, + 12, ], "type": "Punctuator", - "value": ")", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 31, + "column": 13, "line": 1, }, "start": Object { - "column": 30, + "column": 12, "line": 1, }, }, "range": Array [ - 30, - 31, + 12, + 13, ], "type": "Punctuator", "value": ";", @@ -46370,240 +54902,144 @@ Object { } `; -exports[`javascript fixtures/destructuring/nested-array.src 1`] = ` +exports[`javascript fixtures/destructuring/param-defaults-array.src 1`] = ` Object { "body": Array [ Object { - "declarations": Array [ + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 21, + "line": 1, + }, + }, + "range": Array [ + 21, + 23, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 9, + 10, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "params": Array [ Object { - "id": Object { - "elements": Array [ - Object { + "elements": Array [ + Object { + "left": Object { "loc": Object { "end": Object { - "column": 6, + "column": 13, "line": 1, }, "start": Object { - "column": 5, + "column": 12, "line": 1, }, }, "name": "x", "range": Array [ - 5, - 6, + 12, + 13, ], "type": "Identifier", }, - null, - Object { - "elements": Array [ - null, - Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "name": "z", - "range": Array [ - 13, - 14, - ], - "type": "Identifier", - }, - ], - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, + "loc": Object { + "end": Object { + "column": 18, + "line": 1, }, - "range": Array [ - 10, - 15, - ], - "type": "ArrayPattern", - }, - ], - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 16, - ], - "type": "ArrayPattern", - }, - "init": Object { - "elements": Array [ - Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, + "start": Object { + "column": 12, + "line": 1, }, - "range": Array [ - 20, - 21, - ], - "raw": "1", - "type": "Literal", - "value": 1, }, - Object { + "range": Array [ + 12, + 18, + ], + "right": Object { "loc": Object { "end": Object { - "column": 23, + "column": 18, "line": 1, }, "start": Object { - "column": 22, + "column": 16, "line": 1, }, }, "range": Array [ - 22, - 23, + 16, + 18, ], - "raw": "2", + "raw": "10", "type": "Literal", - "value": 2, - }, - Object { - "elements": Array [ - Object { - "loc": Object { - "end": Object { - "column": 26, - "line": 1, - }, - "start": Object { - "column": 25, - "line": 1, - }, - }, - "range": Array [ - 25, - 26, - ], - "raw": "3", - "type": "Literal", - "value": 3, - }, - Object { - "loc": Object { - "end": Object { - "column": 28, - "line": 1, - }, - "start": Object { - "column": 27, - "line": 1, - }, - }, - "range": Array [ - 27, - 28, - ], - "raw": "4", - "type": "Literal", - "value": 4, - }, - ], - "loc": Object { - "end": Object { - "column": 29, - "line": 1, - }, - "start": Object { - "column": 24, - "line": 1, - }, - }, - "range": Array [ - 24, - 29, - ], - "type": "ArrayExpression", - }, - ], - "loc": Object { - "end": Object { - "column": 30, - "line": 1, - }, - "start": Object { - "column": 19, - "line": 1, + "value": 10, }, + "type": "AssignmentPattern", }, - "range": Array [ - 19, - 30, - ], - "type": "ArrayExpression", - }, + ], "loc": Object { "end": Object { - "column": 30, + "column": 19, "line": 1, }, "start": Object { - "column": 4, + "column": 11, "line": 1, }, }, "range": Array [ - 4, - 30, + 11, + 19, ], - "type": "VariableDeclarator", + "type": "ArrayPattern", }, ], - "kind": "var", - "loc": Object { - "end": Object { - "column": 31, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, "range": Array [ 0, - 31, + 23, ], - "type": "VariableDeclaration", + "type": "FunctionDeclaration", }, ], "loc": Object { "end": Object { - "column": 31, + "column": 23, "line": 1, }, "start": Object { @@ -46613,14 +55049,14 @@ Object { }, "range": Array [ 0, - 31, + 23, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, + "column": 8, "line": 1, }, "start": Object { @@ -46630,840 +55066,934 @@ Object { }, "range": Array [ 0, - 3, + 8, ], "type": "Keyword", - "value": "var", + "value": "function", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 10, "line": 1, }, "start": Object { - "column": 4, + "column": 9, "line": 1, }, }, "range": Array [ - 4, - 5, + 9, + 10, ], - "type": "Punctuator", - "value": "[", + "type": "Identifier", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 6, + "column": 11, "line": 1, }, "start": Object { - "column": 5, + "column": 10, "line": 1, }, }, "range": Array [ - 5, - 6, + 10, + 11, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 12, "line": 1, }, "start": Object { - "column": 6, + "column": 11, "line": 1, }, }, "range": Array [ - 6, - 7, + 11, + 12, ], "type": "Punctuator", - "value": ",", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 13, "line": 1, }, "start": Object { - "column": 8, + "column": 12, "line": 1, }, }, "range": Array [ - 8, - 9, + 12, + 13, ], - "type": "Punctuator", - "value": ",", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 15, "line": 1, }, "start": Object { - "column": 10, + "column": 14, "line": 1, }, }, "range": Array [ - 10, - 11, + 14, + 15, ], "type": "Punctuator", - "value": "[", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 18, "line": 1, }, "start": Object { - "column": 11, + "column": 16, "line": 1, }, }, "range": Array [ - 11, - 12, + 16, + 18, ], - "type": "Punctuator", - "value": ",", + "type": "Numeric", + "value": "10", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 19, "line": 1, }, "start": Object { - "column": 13, + "column": 18, "line": 1, }, }, "range": Array [ - 13, - 14, + 18, + 19, ], - "type": "Identifier", - "value": "z", + "type": "Punctuator", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 20, "line": 1, }, "start": Object { - "column": 14, + "column": 19, "line": 1, }, }, "range": Array [ - 14, - 15, + 19, + 20, ], "type": "Punctuator", - "value": "]", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 22, "line": 1, }, "start": Object { - "column": 15, + "column": 21, "line": 1, }, }, "range": Array [ - 15, - 16, + 21, + 22, ], "type": "Punctuator", - "value": "]", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 23, "line": 1, }, "start": Object { - "column": 17, + "column": 22, "line": 1, }, }, "range": Array [ - 17, - 18, + 22, + 23, ], "type": "Punctuator", - "value": "=", + "value": "}", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/destructuring/param-defaults-object.src 1`] = ` +Object { + "body": Array [ Object { + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 21, + "line": 1, + }, + }, + "range": Array [ + 21, + 23, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 9, + 10, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 20, + "column": 23, "line": 1, }, "start": Object { - "column": 19, + "column": 0, "line": 1, }, }, + "params": Array [ + Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 12, + 13, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 12, + 18, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 12, + 13, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "range": Array [ + 12, + 18, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "range": Array [ + 16, + 18, + ], + "raw": "10", + "type": "Literal", + "value": 10, + }, + "type": "AssignmentPattern", + }, + }, + ], + "range": Array [ + 11, + 19, + ], + "type": "ObjectPattern", + }, + ], "range": Array [ - 19, - 20, + 0, + 23, ], - "type": "Punctuator", - "value": "[", + "type": "FunctionDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 23, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 21, + "column": 8, "line": 1, }, "start": Object { - "column": 20, + "column": 0, "line": 1, }, }, "range": Array [ - 20, - 21, + 0, + 8, ], - "type": "Numeric", - "value": "1", + "type": "Keyword", + "value": "function", }, Object { "loc": Object { "end": Object { - "column": 22, + "column": 10, "line": 1, }, "start": Object { - "column": 21, + "column": 9, "line": 1, }, }, "range": Array [ - 21, - 22, + 9, + 10, ], - "type": "Punctuator", - "value": ",", + "type": "Identifier", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 11, "line": 1, }, "start": Object { - "column": 22, + "column": 10, "line": 1, }, }, "range": Array [ - 22, - 23, + 10, + 11, ], - "type": "Numeric", - "value": "2", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 24, + "column": 12, "line": 1, }, "start": Object { - "column": 23, + "column": 11, "line": 1, }, }, "range": Array [ - 23, - 24, + 11, + 12, ], "type": "Punctuator", - "value": ",", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 25, + "column": 13, "line": 1, }, "start": Object { - "column": 24, + "column": 12, "line": 1, }, }, "range": Array [ - 24, - 25, + 12, + 13, ], - "type": "Punctuator", - "value": "[", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 26, + "column": 15, "line": 1, }, "start": Object { - "column": 25, + "column": 14, "line": 1, }, }, "range": Array [ - 25, - 26, + 14, + 15, ], - "type": "Numeric", - "value": "3", + "type": "Punctuator", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 27, + "column": 18, "line": 1, }, "start": Object { - "column": 26, + "column": 16, "line": 1, }, }, "range": Array [ - 26, - 27, + 16, + 18, ], - "type": "Punctuator", - "value": ",", + "type": "Numeric", + "value": "10", }, Object { "loc": Object { "end": Object { - "column": 28, + "column": 19, "line": 1, }, "start": Object { - "column": 27, + "column": 18, "line": 1, }, }, "range": Array [ - 27, - 28, + 18, + 19, ], - "type": "Numeric", - "value": "4", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 29, + "column": 20, "line": 1, }, "start": Object { - "column": 28, + "column": 19, "line": 1, }, }, "range": Array [ - 28, - 29, + 19, + 20, ], "type": "Punctuator", - "value": "]", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 30, + "column": 22, "line": 1, }, "start": Object { - "column": 29, + "column": 21, "line": 1, }, }, "range": Array [ - 29, - 30, + 21, + 22, ], "type": "Punctuator", - "value": "]", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 31, + "column": 23, "line": 1, }, "start": Object { - "column": 30, + "column": 22, "line": 1, }, }, "range": Array [ - 30, - 31, + 22, + 23, ], "type": "Punctuator", - "value": ";", + "value": "}", }, ], "type": "Program", } `; -exports[`javascript fixtures/destructuring/nested-object.src 1`] = ` +exports[`javascript fixtures/destructuring/param-defaults-object-nested.src 1`] = ` Object { "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 24, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 38, + "line": 1, + }, + "start": Object { + "column": 36, + "line": 1, + }, + }, + "range": Array [ + 36, + 38, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 9, + 10, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 38, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "params": Array [ + Object { + "loc": Object { + "end": Object { + "column": 34, + "line": 1, }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 5, - 6, - ], - "type": "Identifier", - }, - "kind": "init", + "start": Object { + "column": 11, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { "loc": Object { "end": Object { - "column": 9, + "column": 13, "line": 1, }, "start": Object { - "column": 5, + "column": 12, "line": 1, }, }, - "method": false, + "name": "x", "range": Array [ - 5, - 9, + 12, + 13, ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "name": "y", - "range": Array [ - 8, - 9, - ], - "type": "Identifier", + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, }, }, - Object { - "computed": false, - "key": Object { + "method": false, + "range": Array [ + 12, + 18, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "left": Object { "loc": Object { "end": Object { - "column": 12, + "column": 13, "line": 1, }, "start": Object { - "column": 11, + "column": 12, "line": 1, }, }, - "name": "z", + "name": "x", "range": Array [ - 11, 12, + 13, ], "type": "Identifier", }, - "kind": "init", "loc": Object { "end": Object { - "column": 22, + "column": 18, "line": 1, }, "start": Object { - "column": 11, + "column": 12, "line": 1, }, }, - "method": false, "range": Array [ - 11, - 22, + 12, + 18, ], - "shorthand": false, - "type": "Property", - "value": Object { + "right": Object { "loc": Object { "end": Object { - "column": 22, + "column": 18, "line": 1, }, "start": Object { - "column": 14, + "column": 16, "line": 1, }, }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 16, - 17, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 16, - 20, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 19, - "line": 1, - }, - }, - "name": "b", - "range": Array [ - 19, - 20, - ], - "type": "Identifier", - }, - }, - ], "range": Array [ - 14, - 22, + 16, + 18, ], - "type": "ObjectPattern", + "raw": "10", + "type": "Literal", + "value": 10, }, - }, - ], - "range": Array [ - 4, - 24, - ], - "type": "ObjectPattern", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 52, - "line": 1, - }, - "start": Object { - "column": 27, - "line": 1, + "type": "AssignmentPattern", }, }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 30, - "line": 1, - }, - "start": Object { - "column": 29, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 29, - 30, - ], - "type": "Identifier", - }, - "kind": "init", + Object { + "computed": false, + "key": Object { "loc": Object { "end": Object { - "column": 35, + "column": 21, "line": 1, }, "start": Object { - "column": 29, + "column": 20, "line": 1, }, }, - "method": false, + "name": "y", "range": Array [ - 29, - 35, + 20, + 21, ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 35, - "line": 1, - }, - "start": Object { - "column": 32, - "line": 1, - }, - }, - "range": Array [ - 32, - 35, - ], - "raw": "\\"3\\"", - "type": "Literal", - "value": "3", - }, + "type": "Identifier", }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 38, - "line": 1, - }, - "start": Object { - "column": 37, - "line": 1, - }, - }, - "name": "z", - "range": Array [ - 37, - 38, - ], - "type": "Identifier", + "kind": "init", + "loc": Object { + "end": Object { + "column": 33, + "line": 1, }, - "kind": "init", + "start": Object { + "column": 20, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 20, + 33, + ], + "shorthand": false, + "type": "Property", + "value": Object { "loc": Object { "end": Object { - "column": 50, + "column": 33, "line": 1, }, "start": Object { - "column": 37, + "column": 23, "line": 1, }, }, - "method": false, - "range": Array [ - 37, - 50, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 50, - "line": 1, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 25, + "line": 1, + }, + }, + "name": "z", + "range": Array [ + 25, + 26, + ], + "type": "Identifier", }, - "start": Object { - "column": 40, - "line": 1, + "kind": "init", + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 25, + "line": 1, + }, }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { + "method": false, + "range": Array [ + 25, + 31, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "left": Object { "loc": Object { "end": Object { - "column": 43, + "column": 26, "line": 1, }, "start": Object { - "column": 42, + "column": 25, "line": 1, }, }, - "name": "a", + "name": "z", "range": Array [ - 42, - 43, + 25, + 26, ], "type": "Identifier", }, - "kind": "init", "loc": Object { "end": Object { - "column": 48, + "column": 31, "line": 1, }, "start": Object { - "column": 42, + "column": 25, "line": 1, }, }, - "method": false, "range": Array [ - 42, - 48, + 25, + 31, ], - "shorthand": false, - "type": "Property", - "value": Object { + "right": Object { "loc": Object { "end": Object { - "column": 48, + "column": 31, "line": 1, }, "start": Object { - "column": 45, + "column": 29, "line": 1, }, }, "range": Array [ - 45, - 48, + 29, + 31, ], - "raw": "\\"b\\"", + "raw": "10", "type": "Literal", - "value": "b", + "value": 10, }, + "type": "AssignmentPattern", }, - ], - "range": Array [ - 40, - 50, - ], - "type": "ObjectExpression", - }, + }, + ], + "range": Array [ + 23, + 33, + ], + "type": "ObjectPattern", }, - ], - "range": Array [ - 27, - 52, - ], - "type": "ObjectExpression", - }, - "loc": Object { - "end": Object { - "column": 52, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, }, - }, + ], "range": Array [ - 4, - 52, + 11, + 34, ], - "type": "VariableDeclarator", + "type": "ObjectPattern", }, ], - "kind": "var", + "range": Array [ + 0, + 38, + ], + "type": "FunctionDeclaration", + }, + Object { "loc": Object { "end": Object { - "column": 53, + "column": 39, "line": 1, }, "start": Object { - "column": 0, + "column": 38, "line": 1, }, }, "range": Array [ - 0, - 53, + 38, + 39, ], - "type": "VariableDeclaration", + "type": "EmptyStatement", }, ], "loc": Object { "end": Object { - "column": 53, + "column": 39, "line": 1, }, "start": Object { @@ -47473,14 +56003,14 @@ Object { }, "range": Array [ 0, - 53, + 39, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, + "column": 8, "line": 1, }, "start": Object { @@ -47489,101 +56019,47 @@ Object { }, }, "range": Array [ - 0, - 3, - ], - "type": "Keyword", - "value": "var", - }, - Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 5, - ], - "type": "Punctuator", - "value": "{", - }, - Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "range": Array [ - 5, - 6, - ], - "type": "Identifier", - "value": "x", - }, - Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "range": Array [ - 6, - 7, + 0, + 8, ], - "type": "Punctuator", - "value": ":", + "type": "Keyword", + "value": "function", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 10, "line": 1, }, "start": Object { - "column": 8, + "column": 9, "line": 1, }, }, "range": Array [ - 8, 9, + 10, ], "type": "Identifier", - "value": "y", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 11, "line": 1, }, "start": Object { - "column": 9, + "column": 10, "line": 1, }, }, "range": Array [ - 9, 10, + 11, ], "type": "Punctuator", - "value": ",", + "value": "(", }, Object { "loc": Object { @@ -47600,8 +56076,8 @@ Object { 11, 12, ], - "type": "Identifier", - "value": "z", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { @@ -47618,8 +56094,8 @@ Object { 12, 13, ], - "type": "Punctuator", - "value": ":", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { @@ -47637,12 +56113,12 @@ Object { 15, ], "type": "Punctuator", - "value": "{", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 18, "line": 1, }, "start": Object { @@ -47652,46 +56128,46 @@ Object { }, "range": Array [ 16, - 17, + 18, ], - "type": "Identifier", - "value": "a", + "type": "Numeric", + "value": "10", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 19, "line": 1, }, "start": Object { - "column": 17, + "column": 18, "line": 1, }, }, "range": Array [ - 17, 18, + 19, ], "type": "Punctuator", - "value": ":", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 20, + "column": 21, "line": 1, }, "start": Object { - "column": 19, + "column": 20, "line": 1, }, }, "range": Array [ - 19, 20, + 21, ], "type": "Identifier", - "value": "b", + "value": "y", }, Object { "loc": Object { @@ -47709,7 +56185,7 @@ Object { 22, ], "type": "Punctuator", - "value": "}", + "value": ":", }, Object { "loc": Object { @@ -47727,7 +56203,7 @@ Object { 24, ], "type": "Punctuator", - "value": "}", + "value": "{", }, Object { "loc": Object { @@ -47744,8 +56220,8 @@ Object { 25, 26, ], - "type": "Punctuator", - "value": "=", + "type": "Identifier", + "value": "z", }, Object { "loc": Object { @@ -47763,12 +56239,12 @@ Object { 28, ], "type": "Punctuator", - "value": "{", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 30, + "column": 31, "line": 1, }, "start": Object { @@ -47778,33 +56254,15 @@ Object { }, "range": Array [ 29, - 30, - ], - "type": "Identifier", - "value": "x", - }, - Object { - "loc": Object { - "end": Object { - "column": 31, - "line": 1, - }, - "start": Object { - "column": 30, - "line": 1, - }, - }, - "range": Array [ - 30, 31, ], - "type": "Punctuator", - "value": ":", + "type": "Numeric", + "value": "10", }, Object { "loc": Object { "end": Object { - "column": 35, + "column": 33, "line": 1, }, "start": Object { @@ -47814,79 +56272,61 @@ Object { }, "range": Array [ 32, - 35, - ], - "type": "String", - "value": "\\"3\\"", - }, - Object { - "loc": Object { - "end": Object { - "column": 36, - "line": 1, - }, - "start": Object { - "column": 35, - "line": 1, - }, - }, - "range": Array [ - 35, - 36, + 33, ], "type": "Punctuator", - "value": ",", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 38, + "column": 34, "line": 1, }, "start": Object { - "column": 37, + "column": 33, "line": 1, }, }, "range": Array [ - 37, - 38, + 33, + 34, ], - "type": "Identifier", - "value": "z", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 39, + "column": 35, "line": 1, }, "start": Object { - "column": 38, + "column": 34, "line": 1, }, }, "range": Array [ - 38, - 39, + 34, + 35, ], "type": "Punctuator", - "value": ":", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 41, + "column": 37, "line": 1, }, "start": Object { - "column": 40, + "column": 36, "line": 1, }, }, "range": Array [ - 40, - 41, + 36, + 37, ], "type": "Punctuator", "value": "{", @@ -47894,339 +56334,194 @@ Object { Object { "loc": Object { "end": Object { - "column": 43, - "line": 1, - }, - "start": Object { - "column": 42, - "line": 1, - }, - }, - "range": Array [ - 42, - 43, - ], - "type": "Identifier", - "value": "a", - }, - Object { - "loc": Object { - "end": Object { - "column": 44, + "column": 38, "line": 1, }, "start": Object { - "column": 43, + "column": 37, "line": 1, }, }, "range": Array [ - 43, - 44, + 37, + 38, ], "type": "Punctuator", - "value": ":", - }, - Object { - "loc": Object { - "end": Object { - "column": 48, - "line": 1, - }, - "start": Object { - "column": 45, - "line": 1, - }, - }, - "range": Array [ - 45, - 48, - ], - "type": "String", - "value": "\\"b\\"", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 50, + "column": 39, "line": 1, }, "start": Object { - "column": 49, + "column": 38, "line": 1, }, }, "range": Array [ - 49, - 50, + 38, + 39, ], "type": "Punctuator", - "value": "}", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/destructuring/params-array.src 1`] = ` +Object { + "body": Array [ Object { - "loc": Object { - "end": Object { - "column": 52, - "line": 1, + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, }, - "start": Object { - "column": 51, - "line": 1, + "range": Array [ + 20, + 22, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, }, + "name": "x", + "range": Array [ + 9, + 10, + ], + "type": "Identifier", }, - "range": Array [ - 51, - 52, - ], - "type": "Punctuator", - "value": "}", - }, - Object { "loc": Object { "end": Object { - "column": 53, + "column": 22, "line": 1, }, "start": Object { - "column": 52, + "column": 0, "line": 1, }, }, - "range": Array [ - 52, - 53, - ], - "type": "Punctuator", - "value": ";", - }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/destructuring/object-var-named.src 1`] = ` -Object { - "body": Array [ - Object { - "declarations": Array [ + "params": Array [ Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, + "elements": Array [ + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, }, + "name": "a", + "range": Array [ + 13, + 14, + ], + "type": "Identifier", }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 5, - 6, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, + Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, }, - "method": false, - "range": Array [ - 5, - 8, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, - }, - "name": "b", - "range": Array [ - 7, - 8, - ], - "type": "Identifier", + "start": Object { + "column": 16, + "line": 1, }, }, - ], - "range": Array [ - 4, - 9, - ], - "type": "ObjectPattern", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, + "name": "b", + "range": Array [ + 16, + 17, + ], + "type": "Identifier", }, - "properties": Array [], - "range": Array [ - 12, - 14, - ], - "type": "ObjectExpression", - }, + ], "loc": Object { "end": Object { - "column": 14, + "column": 19, "line": 1, }, "start": Object { - "column": 4, + "column": 11, "line": 1, }, }, "range": Array [ - 4, - 14, + 11, + 19, ], - "type": "VariableDeclarator", - }, - ], - "kind": "var", - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "ArrayPattern", }, - }, - "range": Array [ - 0, - 15, ], - "type": "VariableDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 15, - ], - "sourceType": "script", - "tokens": Array [ - Object { - "loc": Object { - "end": Object { - "column": 3, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, "range": Array [ 0, - 3, - ], - "type": "Keyword", - "value": "var", - }, - Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 5, + 22, ], - "type": "Punctuator", - "value": "{", + "type": "FunctionDeclaration", }, Object { "loc": Object { "end": Object { - "column": 6, + "column": 23, "line": 1, }, "start": Object { - "column": 5, + "column": 22, "line": 1, }, }, "range": Array [ - 5, - 6, + 22, + 23, ], - "type": "Identifier", - "value": "a", + "type": "EmptyStatement", }, - Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "range": Array [ - 6, - 7, - ], - "type": "Punctuator", - "value": ":", + ], + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 23, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { @@ -48234,34 +56529,34 @@ Object { "line": 1, }, "start": Object { - "column": 7, + "column": 0, "line": 1, }, }, "range": Array [ - 7, + 0, 8, ], - "type": "Identifier", - "value": "b", + "type": "Keyword", + "value": "function", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 10, "line": 1, }, "start": Object { - "column": 8, + "column": 9, "line": 1, }, }, "range": Array [ - 8, 9, + 10, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { @@ -48279,25 +56574,25 @@ Object { 11, ], "type": "Punctuator", - "value": "=", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 12, "line": 1, }, "start": Object { - "column": 12, + "column": 11, "line": 1, }, }, "range": Array [ + 11, 12, - 13, ], "type": "Punctuator", - "value": "{", + "value": "[", }, Object { "loc": Object { @@ -48314,8 +56609,8 @@ Object { 13, 14, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "a", }, Object { "loc": Object { @@ -48333,268 +56628,76 @@ Object { 15, ], "type": "Punctuator", - "value": ";", - }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/destructuring/object-var-undefined.src 1`] = ` -Object { - "body": Array [ - Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 5, - 6, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 5, - 6, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 5, - 6, - ], - "type": "Identifier", - }, - }, - ], - "range": Array [ - 4, - 7, - ], - "type": "ObjectPattern", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "properties": Array [], - "range": Array [ - 10, - 12, - ], - "type": "ObjectExpression", - }, - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 12, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "var", - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 13, - ], - "type": "VariableDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 13, - ], - "sourceType": "script", - "tokens": Array [ - Object { - "loc": Object { - "end": Object { - "column": 3, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 3, - ], - "type": "Keyword", - "value": "var", - }, - Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 5, - ], - "type": "Punctuator", - "value": "{", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 6, + "column": 17, "line": 1, }, "start": Object { - "column": 5, + "column": 16, "line": 1, }, }, "range": Array [ - 5, - 6, + 16, + 17, ], "type": "Identifier", - "value": "a", + "value": "b", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 19, "line": 1, }, "start": Object { - "column": 6, + "column": 18, "line": 1, }, }, "range": Array [ - 6, - 7, + 18, + 19, ], "type": "Punctuator", - "value": "}", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 20, "line": 1, }, "start": Object { - "column": 8, + "column": 19, "line": 1, }, }, "range": Array [ - 8, - 9, + 19, + 20, ], "type": "Punctuator", - "value": "=", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 21, "line": 1, }, "start": Object { - "column": 10, + "column": 20, "line": 1, }, }, "range": Array [ - 10, - 11, + 20, + 21, ], "type": "Punctuator", "value": "{", @@ -48602,17 +56705,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 12, + "column": 22, "line": 1, }, "start": Object { - "column": 11, + "column": 21, "line": 1, }, }, "range": Array [ - 11, - 12, + 21, + 22, ], "type": "Punctuator", "value": "}", @@ -48620,17 +56723,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 13, + "column": 23, "line": 1, }, "start": Object { - "column": 12, + "column": 22, "line": 1, }, }, "range": Array [ - 12, - 13, + 22, + 23, ], "type": "Punctuator", "value": ";", @@ -48640,144 +56743,143 @@ Object { } `; -exports[`javascript fixtures/destructuring/param-defaults-array.src 1`] = ` +exports[`javascript fixtures/destructuring/params-array-wrapped.src 1`] = ` Object { "body": Array [ Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 23, - "line": 1, + "expression": Object { + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 21, + "line": 1, + }, }, - "start": Object { - "column": 21, - "line": 1, + "range": Array [ + 21, + 23, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, }, + "name": "x", + "range": Array [ + 10, + 11, + ], + "type": "Identifier", }, - "range": Array [ - 21, - 23, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": Object { "loc": Object { "end": Object { - "column": 10, + "column": 23, "line": 1, }, "start": Object { - "column": 9, + "column": 1, "line": 1, }, }, - "name": "a", - "range": Array [ - 9, - 10, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "params": Array [ - Object { - "elements": Array [ - Object { - "left": Object { + "params": Array [ + Object { + "elements": Array [ + Object { "loc": Object { "end": Object { - "column": 13, + "column": 15, "line": 1, }, "start": Object { - "column": 12, + "column": 14, "line": 1, }, }, - "name": "x", + "name": "a", "range": Array [ - 12, - 13, + 14, + 15, ], "type": "Identifier", }, - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "range": Array [ - 12, - 18, - ], - "right": Object { + Object { "loc": Object { "end": Object { "column": 18, "line": 1, }, "start": Object { - "column": 16, + "column": 17, "line": 1, }, }, + "name": "b", "range": Array [ - 16, + 17, 18, ], - "raw": "10", - "type": "Literal", - "value": 10, + "type": "Identifier", + }, + ], + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, }, - "type": "AssignmentPattern", - }, - ], - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, }, + "range": Array [ + 12, + 20, + ], + "type": "ArrayPattern", }, - "range": Array [ - 11, - 19, - ], - "type": "ArrayPattern", + ], + "range": Array [ + 1, + 23, + ], + "type": "FunctionExpression", + }, + "loc": Object { + "end": Object { + "column": 25, + "line": 1, }, - ], + "start": Object { + "column": 0, + "line": 1, + }, + }, "range": Array [ 0, - 23, + 25, ], - "type": "FunctionDeclaration", + "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 23, + "column": 25, "line": 1, }, "start": Object { @@ -48787,14 +56889,14 @@ Object { }, "range": Array [ 0, - 23, + 25, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 8, + "column": 1, "line": 1, }, "start": Object { @@ -48804,28 +56906,28 @@ Object { }, "range": Array [ 0, - 8, + 1, ], - "type": "Keyword", - "value": "function", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 9, "line": 1, }, "start": Object { - "column": 9, + "column": 1, "line": 1, }, }, "range": Array [ + 1, 9, - 10, ], - "type": "Identifier", - "value": "a", + "type": "Keyword", + "value": "function", }, Object { "loc": Object { @@ -48842,8 +56944,8 @@ Object { 10, 11, ], - "type": "Punctuator", - "value": "(", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { @@ -48861,7 +56963,7 @@ Object { 12, ], "type": "Punctuator", - "value": "[", + "value": "(", }, Object { "loc": Object { @@ -48878,26 +56980,44 @@ Object { 12, 13, ], + "type": "Punctuator", + "value": "[", + }, + Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "range": Array [ + 14, + 15, + ], "type": "Identifier", - "value": "x", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 16, "line": 1, }, "start": Object { - "column": 14, + "column": 15, "line": 1, }, }, "range": Array [ - 14, 15, + 16, ], "type": "Punctuator", - "value": "=", + "value": ",", }, Object { "loc": Object { @@ -48906,31 +57026,31 @@ Object { "line": 1, }, "start": Object { - "column": 16, + "column": 17, "line": 1, }, }, "range": Array [ - 16, + 17, 18, ], - "type": "Numeric", - "value": "10", + "type": "Identifier", + "value": "b", }, Object { "loc": Object { "end": Object { - "column": 19, + "column": 20, "line": 1, }, "start": Object { - "column": 18, + "column": 19, "line": 1, }, }, "range": Array [ - 18, 19, + 20, ], "type": "Punctuator", "value": "]", @@ -48938,17 +57058,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 20, + "column": 21, "line": 1, }, "start": Object { - "column": 19, + "column": 20, "line": 1, }, }, "range": Array [ - 19, 20, + 21, ], "type": "Punctuator", "value": ")", @@ -48989,12 +57109,48 @@ Object { "type": "Punctuator", "value": "}", }, + Object { + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "range": Array [ + 23, + 24, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, + }, + }, + "range": Array [ + 24, + 25, + ], + "type": "Punctuator", + "value": ";", + }, ], "type": "Program", } `; -exports[`javascript fixtures/destructuring/param-defaults-object.src 1`] = ` +exports[`javascript fixtures/destructuring/params-multi-object.src 1`] = ` Object { "body": Array [ Object { @@ -49003,17 +57159,17 @@ Object { "body": Array [], "loc": Object { "end": Object { - "column": 23, + "column": 22, "line": 1, }, "start": Object { - "column": 21, + "column": 20, "line": 1, }, }, "range": Array [ - 21, - 23, + 20, + 22, ], "type": "BlockStatement", }, @@ -49030,7 +57186,7 @@ Object { "line": 1, }, }, - "name": "a", + "name": "x", "range": Array [ 9, 10, @@ -49039,7 +57195,7 @@ Object { }, "loc": Object { "end": Object { - "column": 23, + "column": 22, "line": 1, }, "start": Object { @@ -49051,7 +57207,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 19, + "column": 12, "line": 1, }, "start": Object { @@ -49059,103 +57215,85 @@ Object { "line": 1, }, }, + "name": "a", + "range": Array [ + 11, + 12, + ], + "type": "Identifier", + }, + Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, "properties": Array [ Object { "computed": false, "key": Object { "loc": Object { "end": Object { - "column": 13, + "column": 17, "line": 1, }, "start": Object { - "column": 12, + "column": 16, "line": 1, }, }, - "name": "x", + "name": "b", "range": Array [ - 12, - 13, + 16, + 17, ], "type": "Identifier", }, "kind": "init", "loc": Object { "end": Object { - "column": 18, + "column": 17, "line": 1, }, "start": Object { - "column": 12, + "column": 16, "line": 1, }, }, "method": false, "range": Array [ - 12, - 18, + 16, + 17, ], "shorthand": true, "type": "Property", "value": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 12, - 13, - ], - "type": "Identifier", - }, "loc": Object { "end": Object { - "column": 18, + "column": 17, "line": 1, }, "start": Object { - "column": 12, + "column": 16, "line": 1, }, }, + "name": "b", "range": Array [ - 12, - 18, + 16, + 17, ], - "right": Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "range": Array [ - 16, - 18, - ], - "raw": "10", - "type": "Literal", - "value": 10, - }, - "type": "AssignmentPattern", + "type": "Identifier", }, }, ], "range": Array [ - 11, + 14, 19, ], "type": "ObjectPattern", @@ -49163,15 +57301,32 @@ Object { ], "range": Array [ 0, - 23, + 22, ], "type": "FunctionDeclaration", }, + Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "range": Array [ + 22, + 23, + ], + "type": "EmptyStatement", + }, ], "loc": Object { "end": Object { - "column": 23, - "line": 1, + "column": 0, + "line": 2, }, "start": Object { "column": 0, @@ -49180,7 +57335,7 @@ Object { }, "range": Array [ 0, - 23, + 24, ], "sourceType": "script", "tokens": Array [ @@ -49218,7 +57373,7 @@ Object { 10, ], "type": "Identifier", - "value": "a", + "value": "x", }, Object { "loc": Object { @@ -49253,8 +57408,8 @@ Object { 11, 12, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "a", }, Object { "loc": Object { @@ -49271,8 +57426,8 @@ Object { 12, 13, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": ",", }, Object { "loc": Object { @@ -49290,12 +57445,12 @@ Object { 15, ], "type": "Punctuator", - "value": "=", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 17, "line": 1, }, "start": Object { @@ -49305,10 +57460,10 @@ Object { }, "range": Array [ 16, - 18, + 17, ], - "type": "Numeric", - "value": "10", + "type": "Identifier", + "value": "b", }, Object { "loc": Object { @@ -49346,6 +57501,24 @@ Object { "type": "Punctuator", "value": ")", }, + Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "range": Array [ + 20, + 21, + ], + "type": "Punctuator", + "value": "{", + }, Object { "loc": Object { "end": Object { @@ -49362,7 +57535,7 @@ Object { 22, ], "type": "Punctuator", - "value": "{", + "value": "}", }, Object { "loc": Object { @@ -49380,14 +57553,14 @@ Object { 23, ], "type": "Punctuator", - "value": "}", + "value": ";", }, ], "type": "Program", } `; -exports[`javascript fixtures/destructuring/param-defaults-object-nested.src 1`] = ` +exports[`javascript fixtures/destructuring/params-nested-array.src 1`] = ` Object { "body": Array [ Object { @@ -49396,17 +57569,17 @@ Object { "body": Array [], "loc": Object { "end": Object { - "column": 38, + "column": 27, "line": 1, }, "start": Object { - "column": 36, + "column": 25, "line": 1, }, }, "range": Array [ - 36, - 38, + 25, + 27, ], "type": "BlockStatement", }, @@ -49432,7 +57605,7 @@ Object { }, "loc": Object { "end": Object { - "column": 38, + "column": 27, "line": 1, }, "start": Object { @@ -49442,41 +57615,11 @@ Object { }, "params": Array [ Object { - "loc": Object { - "end": Object { - "column": 34, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "properties": Array [ + "elements": Array [ Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 12, - 13, - ], - "type": "Identifier", - }, - "kind": "init", "loc": Object { "end": Object { - "column": 18, + "column": 13, "line": 1, }, "start": Object { @@ -49484,254 +57627,97 @@ Object { "line": 1, }, }, - "method": false, + "name": "x", "range": Array [ 12, - 18, + 13, ], - "shorthand": true, - "type": "Property", - "value": Object { - "left": Object { + "type": "Identifier", + }, + null, + Object { + "elements": Array [ + null, + Object { "loc": Object { "end": Object { - "column": 13, + "column": 21, "line": 1, }, "start": Object { - "column": 12, + "column": 20, "line": 1, }, }, - "name": "x", + "name": "z", "range": Array [ - 12, - 13, + 20, + 21, ], "type": "Identifier", }, - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "range": Array [ - 12, - 18, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "range": Array [ - 16, - 18, - ], - "raw": "10", - "type": "Literal", - "value": 10, - }, - "type": "AssignmentPattern", - }, - }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, - }, - "name": "y", - "range": Array [ - 20, - 21, - ], - "type": "Identifier", - }, - "kind": "init", + ], "loc": Object { "end": Object { - "column": 33, + "column": 22, "line": 1, }, "start": Object { - "column": 20, + "column": 17, "line": 1, }, }, - "method": false, "range": Array [ - 20, - 33, + 17, + 22, ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 33, - "line": 1, - }, - "start": Object { - "column": 23, - "line": 1, - }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 26, - "line": 1, - }, - "start": Object { - "column": 25, - "line": 1, - }, - }, - "name": "z", - "range": Array [ - 25, - 26, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 31, - "line": 1, - }, - "start": Object { - "column": 25, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 25, - 31, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 26, - "line": 1, - }, - "start": Object { - "column": 25, - "line": 1, - }, - }, - "name": "z", - "range": Array [ - 25, - 26, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 31, - "line": 1, - }, - "start": Object { - "column": 25, - "line": 1, - }, - }, - "range": Array [ - 25, - 31, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 31, - "line": 1, - }, - "start": Object { - "column": 29, - "line": 1, - }, - }, - "range": Array [ - 29, - 31, - ], - "raw": "10", - "type": "Literal", - "value": 10, - }, - "type": "AssignmentPattern", - }, - }, - ], - "range": Array [ - 23, - 33, - ], - "type": "ObjectPattern", - }, + "type": "ArrayPattern", }, ], + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, "range": Array [ 11, - 34, + 23, ], - "type": "ObjectPattern", + "type": "ArrayPattern", }, ], "range": Array [ 0, - 38, + 27, ], "type": "FunctionDeclaration", }, Object { "loc": Object { "end": Object { - "column": 39, + "column": 28, "line": 1, }, "start": Object { - "column": 38, + "column": 27, "line": 1, }, }, "range": Array [ - 38, - 39, + 27, + 28, ], "type": "EmptyStatement", }, ], "loc": Object { "end": Object { - "column": 39, + "column": 28, "line": 1, }, "start": Object { @@ -49741,7 +57727,7 @@ Object { }, "range": Array [ 0, - 39, + 28, ], "sourceType": "script", "tokens": Array [ @@ -49815,7 +57801,7 @@ Object { 12, ], "type": "Punctuator", - "value": "{", + "value": "[", }, Object { "loc": Object { @@ -49838,53 +57824,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 15, + "column": 14, "line": 1, }, "start": Object { - "column": 14, + "column": 13, "line": 1, }, }, "range": Array [ + 13, 14, - 15, ], "type": "Punctuator", - "value": "=", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { "column": 16, "line": 1, }, - }, - "range": Array [ - 16, - 18, - ], - "type": "Numeric", - "value": "10", - }, - Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, "start": Object { - "column": 18, + "column": 15, "line": 1, }, }, "range": Array [ - 18, - 19, + 15, + 16, ], "type": "Punctuator", "value": ",", @@ -49892,71 +57860,53 @@ Object { Object { "loc": Object { "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, - }, - "range": Array [ - 20, - 21, - ], - "type": "Identifier", - "value": "y", - }, - Object { - "loc": Object { - "end": Object { - "column": 22, + "column": 18, "line": 1, }, "start": Object { - "column": 21, + "column": 17, "line": 1, }, }, "range": Array [ - 21, - 22, + 17, + 18, ], "type": "Punctuator", - "value": ":", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 24, + "column": 19, "line": 1, }, "start": Object { - "column": 23, + "column": 18, "line": 1, }, }, "range": Array [ - 23, - 24, + 18, + 19, ], "type": "Punctuator", - "value": "{", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 26, + "column": 21, "line": 1, }, "start": Object { - "column": 25, + "column": 20, "line": 1, }, }, "range": Array [ - 25, - 26, + 20, + 21, ], "type": "Identifier", "value": "z", @@ -49964,89 +57914,53 @@ Object { Object { "loc": Object { "end": Object { - "column": 28, - "line": 1, - }, - "start": Object { - "column": 27, - "line": 1, - }, - }, - "range": Array [ - 27, - 28, - ], - "type": "Punctuator", - "value": "=", - }, - Object { - "loc": Object { - "end": Object { - "column": 31, - "line": 1, - }, - "start": Object { - "column": 29, - "line": 1, - }, - }, - "range": Array [ - 29, - 31, - ], - "type": "Numeric", - "value": "10", - }, - Object { - "loc": Object { - "end": Object { - "column": 33, + "column": 22, "line": 1, }, "start": Object { - "column": 32, + "column": 21, "line": 1, }, }, "range": Array [ - 32, - 33, + 21, + 22, ], "type": "Punctuator", - "value": "}", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 34, + "column": 23, "line": 1, }, "start": Object { - "column": 33, + "column": 22, "line": 1, }, }, "range": Array [ - 33, - 34, + 22, + 23, ], "type": "Punctuator", - "value": "}", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 35, + "column": 24, "line": 1, }, "start": Object { - "column": 34, + "column": 23, "line": 1, }, }, "range": Array [ - 34, - 35, + 23, + 24, ], "type": "Punctuator", "value": ")", @@ -50054,17 +57968,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 37, + "column": 26, "line": 1, }, "start": Object { - "column": 36, + "column": 25, "line": 1, }, }, "range": Array [ - 36, - 37, + 25, + 26, ], "type": "Punctuator", "value": "{", @@ -50072,17 +57986,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 38, + "column": 27, "line": 1, }, "start": Object { - "column": 37, + "column": 26, "line": 1, }, }, "range": Array [ - 37, - 38, + 26, + 27, ], "type": "Punctuator", "value": "}", @@ -50090,17 +58004,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 39, + "column": 28, "line": 1, }, "start": Object { - "column": 38, + "column": 27, "line": 1, }, }, "range": Array [ - 38, - 39, + 27, + 28, ], "type": "Punctuator", "value": ";", @@ -50110,7 +58024,7 @@ Object { } `; -exports[`javascript fixtures/destructuring/params-array.src 1`] = ` +exports[`javascript fixtures/destructuring/params-nested-object.src 1`] = ` Object { "body": Array [ Object { @@ -50119,17 +58033,17 @@ Object { "body": Array [], "loc": Object { "end": Object { - "column": 22, + "column": 35, "line": 1, }, "start": Object { - "column": 20, + "column": 33, "line": 1, }, }, "range": Array [ - 20, - 22, + 33, + 35, ], "type": "BlockStatement", }, @@ -50146,7 +58060,7 @@ Object { "line": 1, }, }, - "name": "x", + "name": "a", "range": Array [ 9, 10, @@ -50155,7 +58069,7 @@ Object { }, "loc": Object { "end": Object { - "column": 22, + "column": 35, "line": 1, }, "start": Object { @@ -50165,88 +58079,224 @@ Object { }, "params": Array [ Object { - "elements": Array [ + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "properties": Array [ Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 12, + 13, + ], + "type": "Identifier", + }, + "kind": "init", "loc": Object { "end": Object { - "column": 14, + "column": 16, "line": 1, }, "start": Object { - "column": 13, + "column": 12, "line": 1, }, }, - "name": "a", + "method": false, "range": Array [ - 13, - 14, + 12, + 16, ], - "type": "Identifier", + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "name": "y", + "range": Array [ + 15, + 16, + ], + "type": "Identifier", + }, }, Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "name": "z", + "range": Array [ + 18, + 19, + ], + "type": "Identifier", + }, + "kind": "init", "loc": Object { "end": Object { - "column": 17, + "column": 29, "line": 1, }, "start": Object { - "column": 16, + "column": 18, "line": 1, }, }, - "name": "b", + "method": false, "range": Array [ - 16, - 17, + 18, + 29, ], - "type": "Identifier", + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 29, + "line": 1, + }, + "start": Object { + "column": 21, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 23, + 24, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 23, + 27, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 26, + "line": 1, + }, + }, + "name": "b", + "range": Array [ + 26, + 27, + ], + "type": "Identifier", + }, + }, + ], + "range": Array [ + 21, + 29, + ], + "type": "ObjectPattern", + }, }, ], - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, "range": Array [ 11, - 19, + 31, ], - "type": "ArrayPattern", + "type": "ObjectPattern", }, ], "range": Array [ 0, - 22, + 35, ], "type": "FunctionDeclaration", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 36, "line": 1, }, "start": Object { - "column": 22, + "column": 35, "line": 1, }, }, "range": Array [ - 22, - 23, + 35, + 36, ], "type": "EmptyStatement", }, ], "loc": Object { "end": Object { - "column": 23, + "column": 36, "line": 1, }, "start": Object { @@ -50256,7 +58306,7 @@ Object { }, "range": Array [ 0, - 23, + 36, ], "sourceType": "script", "tokens": Array [ @@ -50281,71 +58331,197 @@ Object { Object { "loc": Object { "end": Object { - "column": 10, + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 10, + ], + "type": "Identifier", + "value": "a", + }, + Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "range": Array [ + 10, + 11, + ], + "type": "Punctuator", + "value": "(", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 12, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "range": Array [ + 12, + 13, + ], + "type": "Identifier", + "value": "x", + }, + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 14, + ], + "type": "Punctuator", + "value": ":", + }, + Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "range": Array [ + 15, + 16, + ], + "type": "Identifier", + "value": "y", + }, + Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "range": Array [ + 16, + 17, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 19, "line": 1, }, "start": Object { - "column": 9, + "column": 18, "line": 1, }, }, "range": Array [ - 9, - 10, + 18, + 19, ], "type": "Identifier", - "value": "x", + "value": "z", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 20, "line": 1, }, "start": Object { - "column": 10, + "column": 19, "line": 1, }, }, "range": Array [ - 10, - 11, + 19, + 20, ], "type": "Punctuator", - "value": "(", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 22, "line": 1, }, "start": Object { - "column": 11, + "column": 21, "line": 1, }, }, "range": Array [ - 11, - 12, + 21, + 22, ], "type": "Punctuator", - "value": "[", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 24, "line": 1, }, "start": Object { - "column": 13, + "column": 23, "line": 1, }, }, "range": Array [ - 13, - 14, + 23, + 24, ], "type": "Identifier", "value": "a", @@ -50353,35 +58529,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 15, + "column": 25, "line": 1, }, "start": Object { - "column": 14, + "column": 24, "line": 1, }, }, "range": Array [ - 14, - 15, + 24, + 25, ], "type": "Punctuator", - "value": ",", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 27, "line": 1, }, "start": Object { - "column": 16, + "column": 26, "line": 1, }, }, "range": Array [ - 16, - 17, + 26, + 27, ], "type": "Identifier", "value": "b", @@ -50389,35 +58565,53 @@ Object { Object { "loc": Object { "end": Object { - "column": 19, + "column": 29, "line": 1, }, "start": Object { - "column": 18, + "column": 28, "line": 1, }, }, "range": Array [ - 18, - 19, + 28, + 29, ], "type": "Punctuator", - "value": "]", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 20, + "column": 31, "line": 1, }, "start": Object { - "column": 19, + "column": 30, "line": 1, }, }, "range": Array [ - 19, - 20, + 30, + 31, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 32, + "line": 1, + }, + "start": Object { + "column": 31, + "line": 1, + }, + }, + "range": Array [ + 31, + 32, ], "type": "Punctuator", "value": ")", @@ -50425,17 +58619,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 21, + "column": 34, "line": 1, }, "start": Object { - "column": 20, + "column": 33, "line": 1, }, }, "range": Array [ - 20, - 21, + 33, + 34, ], "type": "Punctuator", "value": "{", @@ -50443,17 +58637,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 22, + "column": 35, "line": 1, }, "start": Object { - "column": 21, + "column": 34, "line": 1, }, }, "range": Array [ - 21, - 22, + 34, + 35, ], "type": "Punctuator", "value": "}", @@ -50461,17 +58655,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 23, + "column": 36, "line": 1, }, "start": Object { - "column": 22, + "column": 35, "line": 1, }, }, "range": Array [ - 22, - 23, + 35, + 36, ], "type": "Punctuator", "value": ";", @@ -50481,143 +58675,221 @@ Object { } `; -exports[`javascript fixtures/destructuring/params-array-wrapped.src 1`] = ` +exports[`javascript fixtures/destructuring/params-object.src 1`] = ` Object { "body": Array [ Object { - "expression": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 21, - "line": 1, - }, + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 22, + "line": 1, }, - "range": Array [ - 21, - 23, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, + "start": Object { + "column": 20, + "line": 1, }, - "name": "x", - "range": Array [ - 10, - 11, - ], - "type": "Identifier", }, + "range": Array [ + 20, + 22, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": Object { "loc": Object { "end": Object { - "column": 23, + "column": 10, "line": 1, }, "start": Object { - "column": 1, + "column": 9, "line": 1, }, }, - "params": Array [ - Object { - "elements": Array [ - Object { + "name": "x", + "range": Array [ + 9, + 10, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "params": Array [ + Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { "loc": Object { "end": Object { - "column": 15, + "column": 14, "line": 1, }, "start": Object { - "column": 14, + "column": 13, "line": 1, }, }, "name": "a", "range": Array [ + 13, 14, - 15, ], "type": "Identifier", }, - Object { + "kind": "init", + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 13, + 14, + ], + "shorthand": true, + "type": "Property", + "value": Object { "loc": Object { "end": Object { - "column": 18, + "column": 14, "line": 1, }, "start": Object { + "column": 13, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 13, + 14, + ], + "type": "Identifier", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { "column": 17, "line": 1, }, + "start": Object { + "column": 16, + "line": 1, + }, }, "name": "b", "range": Array [ + 16, 17, - 18, ], "type": "Identifier", }, - ], - "loc": Object { - "end": Object { - "column": 20, - "line": 1, + "kind": "init", + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, }, - "start": Object { - "column": 12, - "line": 1, + "method": false, + "range": Array [ + 16, + 17, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "name": "b", + "range": Array [ + 16, + 17, + ], + "type": "Identifier", }, }, - "range": Array [ - 12, - 20, - ], - "type": "ArrayPattern", - }, - ], - "range": Array [ - 1, - 23, - ], - "type": "FunctionExpression", - }, + ], + "range": Array [ + 11, + 19, + ], + "type": "ObjectPattern", + }, + ], + "range": Array [ + 0, + 22, + ], + "type": "FunctionDeclaration", + }, + Object { "loc": Object { "end": Object { - "column": 25, + "column": 23, "line": 1, }, "start": Object { - "column": 0, + "column": 22, "line": 1, }, }, "range": Array [ - 0, - 25, + 22, + 23, ], - "type": "ExpressionStatement", + "type": "EmptyStatement", }, ], "loc": Object { "end": Object { - "column": 25, + "column": 23, "line": 1, }, "start": Object { @@ -50627,14 +58899,14 @@ Object { }, "range": Array [ 0, - 25, + 23, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, + "column": 8, "line": 1, }, "start": Object { @@ -50644,28 +58916,28 @@ Object { }, "range": Array [ 0, - 1, + 8, ], - "type": "Punctuator", - "value": "(", + "type": "Keyword", + "value": "function", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 10, "line": 1, }, "start": Object { - "column": 1, + "column": 9, "line": 1, }, }, "range": Array [ - 1, 9, + 10, ], - "type": "Keyword", - "value": "function", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { @@ -50682,8 +58954,8 @@ Object { 10, 11, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { @@ -50701,25 +58973,25 @@ Object { 12, ], "type": "Punctuator", - "value": "(", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 14, "line": 1, }, "start": Object { - "column": 12, + "column": 13, "line": 1, }, }, "range": Array [ - 12, 13, + 14, ], - "type": "Punctuator", - "value": "[", + "type": "Identifier", + "value": "a", }, Object { "loc": Object { @@ -50736,44 +59008,44 @@ Object { 14, 15, ], - "type": "Identifier", - "value": "a", + "type": "Punctuator", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 17, "line": 1, }, "start": Object { - "column": 15, + "column": 16, "line": 1, }, }, "range": Array [ - 15, 16, + 17, ], - "type": "Punctuator", - "value": ",", + "type": "Identifier", + "value": "b", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 19, "line": 1, }, "start": Object { - "column": 17, + "column": 18, "line": 1, }, }, "range": Array [ - 17, 18, + 19, ], - "type": "Identifier", - "value": "b", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { @@ -50791,7 +59063,7 @@ Object { 20, ], "type": "Punctuator", - "value": "]", + "value": ")", }, Object { "loc": Object { @@ -50809,7 +59081,7 @@ Object { 21, ], "type": "Punctuator", - "value": ")", + "value": "{", }, Object { "loc": Object { @@ -50827,7 +59099,7 @@ Object { 22, ], "type": "Punctuator", - "value": "{", + "value": "}", }, Object { "loc": Object { @@ -50845,226 +59117,229 @@ Object { 23, ], "type": "Punctuator", - "value": "}", - }, - Object { - "loc": Object { - "end": Object { - "column": 24, - "line": 1, - }, - "start": Object { - "column": 23, - "line": 1, - }, - }, - "range": Array [ - 23, - 24, - ], - "type": "Punctuator", - "value": ")", - }, - Object { - "loc": Object { - "end": Object { - "column": 25, - "line": 1, - }, - "start": Object { - "column": 24, - "line": 1, - }, - }, - "range": Array [ - 24, - 25, - ], - "type": "Punctuator", "value": ";", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/destructuring/params-multi-object.src 1`] = ` -Object { - "body": Array [ - Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, - }, - "range": Array [ - 20, - 22, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 9, - 10, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "params": Array [ - Object { + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/destructuring/params-object-wrapped.src 1`] = ` +Object { + "body": Array [ + Object { + "expression": Object { + "async": false, + "body": Object { + "body": Array [], "loc": Object { "end": Object { - "column": 12, + "column": 23, "line": 1, }, "start": Object { - "column": 11, + "column": 21, "line": 1, }, }, - "name": "a", "range": Array [ - 11, - 12, + 21, + 23, ], - "type": "Identifier", + "type": "BlockStatement", }, - Object { + "expression": false, + "generator": false, + "id": Object { "loc": Object { "end": Object { - "column": 19, + "column": 11, "line": 1, }, "start": Object { - "column": 14, + "column": 10, "line": 1, }, }, - "properties": Array [ - Object { - "computed": false, - "key": Object { + "name": "x", + "range": Array [ + 10, + 11, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "params": Array [ + Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 14, + 15, + ], + "type": "Identifier", + }, + "kind": "init", "loc": Object { "end": Object { - "column": 17, + "column": 15, "line": 1, }, "start": Object { - "column": 16, + "column": 14, "line": 1, }, }, - "name": "b", + "method": false, "range": Array [ - 16, - 17, + 14, + 15, ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 14, + 15, + ], + "type": "Identifier", }, }, - "method": false, - "range": Array [ - 16, - 17, - ], - "shorthand": true, - "type": "Property", - "value": Object { + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "name": "b", + "range": Array [ + 17, + 18, + ], + "type": "Identifier", + }, + "kind": "init", "loc": Object { "end": Object { - "column": 17, + "column": 18, "line": 1, }, "start": Object { - "column": 16, + "column": 17, "line": 1, }, }, - "name": "b", + "method": false, "range": Array [ - 16, 17, + 18, ], - "type": "Identifier", + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "name": "b", + "range": Array [ + 17, + 18, + ], + "type": "Identifier", + }, }, - }, - ], - "range": Array [ - 14, - 19, - ], - "type": "ObjectPattern", - }, - ], - "range": Array [ - 0, - 22, - ], - "type": "FunctionDeclaration", - }, - Object { + ], + "range": Array [ + 12, + 20, + ], + "type": "ObjectPattern", + }, + ], + "range": Array [ + 1, + 23, + ], + "type": "FunctionExpression", + }, "loc": Object { "end": Object { - "column": 23, + "column": 25, "line": 1, }, "start": Object { - "column": 22, + "column": 0, "line": 1, }, }, "range": Array [ - 22, - 23, + 0, + 25, ], - "type": "EmptyStatement", + "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 0, - "line": 2, + "column": 25, + "line": 1, }, "start": Object { "column": 0, @@ -51073,14 +59348,14 @@ Object { }, "range": Array [ 0, - 24, + 25, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 8, + "column": 1, "line": 1, }, "start": Object { @@ -51090,28 +59365,28 @@ Object { }, "range": Array [ 0, - 8, + 1, ], - "type": "Keyword", - "value": "function", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 9, "line": 1, }, "start": Object { - "column": 9, + "column": 1, "line": 1, }, }, "range": Array [ + 1, 9, - 10, ], - "type": "Identifier", - "value": "x", + "type": "Keyword", + "value": "function", }, Object { "loc": Object { @@ -51128,8 +59403,8 @@ Object { 10, 11, ], - "type": "Punctuator", - "value": "(", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { @@ -51146,8 +59421,8 @@ Object { 11, 12, ], - "type": "Identifier", - "value": "a", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { @@ -51165,7 +59440,7 @@ Object { 13, ], "type": "Punctuator", - "value": ",", + "value": "{", }, Object { "loc": Object { @@ -51182,44 +59457,44 @@ Object { 14, 15, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 16, "line": 1, }, "start": Object { - "column": 16, + "column": 15, "line": 1, }, }, "range": Array [ + 15, 16, - 17, ], - "type": "Identifier", - "value": "b", + "type": "Punctuator", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 19, + "column": 18, "line": 1, }, "start": Object { - "column": 18, + "column": 17, "line": 1, }, }, "range": Array [ + 17, 18, - 19, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "b", }, Object { "loc": Object { @@ -51237,7 +59512,7 @@ Object { 20, ], "type": "Punctuator", - "value": ")", + "value": "}", }, Object { "loc": Object { @@ -51255,7 +59530,7 @@ Object { 21, ], "type": "Punctuator", - "value": "{", + "value": ")", }, Object { "loc": Object { @@ -51273,7 +59548,7 @@ Object { 22, ], "type": "Punctuator", - "value": "}", + "value": "{", }, Object { "loc": Object { @@ -51291,252 +59566,192 @@ Object { 23, ], "type": "Punctuator", - "value": ";", + "value": "}", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/destructuring/params-nested-array.src 1`] = ` -Object { - "body": Array [ Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 27, - "line": 1, - }, - "start": Object { - "column": 25, - "line": 1, - }, + "loc": Object { + "end": Object { + "column": 24, + "line": 1, }, - "range": Array [ - 25, - 27, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, + "start": Object { + "column": 23, + "line": 1, }, - "name": "a", - "range": Array [ - 9, - 10, - ], - "type": "Identifier", }, + "range": Array [ + 23, + 24, + ], + "type": "Punctuator", + "value": ")", + }, + Object { "loc": Object { "end": Object { - "column": 27, + "column": 25, "line": 1, }, "start": Object { - "column": 0, + "column": 24, "line": 1, }, }, - "params": Array [ - Object { + "range": Array [ + 24, + 25, + ], + "type": "Punctuator", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/destructuring/sparse-array.src 1`] = ` +Object { + "body": Array [ + Object { + "expression": Object { + "left": Object { "elements": Array [ Object { "loc": Object { "end": Object { - "column": 13, + "column": 2, "line": 1, }, "start": Object { - "column": 12, + "column": 1, "line": 1, }, }, - "name": "x", + "name": "a", "range": Array [ - 12, - 13, + 1, + 2, ], "type": "Identifier", }, null, Object { - "elements": Array [ - null, - Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, - }, - "name": "z", - "range": Array [ - 20, - 21, - ], - "type": "Identifier", - }, - ], "loc": Object { "end": Object { - "column": 22, + "column": 5, "line": 1, }, "start": Object { - "column": 17, + "column": 4, "line": 1, }, }, + "name": "b", "range": Array [ - 17, - 22, + 4, + 5, ], - "type": "ArrayPattern", + "type": "Identifier", }, ], "loc": Object { "end": Object { - "column": 23, + "column": 6, "line": 1, }, "start": Object { - "column": 11, + "column": 0, "line": 1, }, }, "range": Array [ - 11, - 23, + 0, + 6, ], "type": "ArrayPattern", }, - ], - "range": Array [ - 0, - 27, - ], - "type": "FunctionDeclaration", - }, - Object { - "loc": Object { - "end": Object { - "column": 28, - "line": 1, - }, - "start": Object { - "column": 27, - "line": 1, - }, - }, - "range": Array [ - 27, - 28, - ], - "type": "EmptyStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 28, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 28, - ], - "sourceType": "script", - "tokens": Array [ - Object { - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 8, - ], - "type": "Keyword", - "value": "function", - }, - Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, }, - "start": Object { - "column": 9, - "line": 1, + "operator": "=", + "range": Array [ + 0, + 14, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "name": "array", + "range": Array [ + 9, + 14, + ], + "type": "Identifier", }, + "type": "AssignmentExpression", }, - "range": Array [ - 9, - 10, - ], - "type": "Identifier", - "value": "a", - }, - Object { "loc": Object { "end": Object { - "column": 11, + "column": 15, "line": 1, }, "start": Object { - "column": 10, + "column": 0, "line": 1, }, }, "range": Array [ - 10, - 11, + 0, + 15, ], - "type": "Punctuator", - "value": "(", + "type": "ExpressionStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 15, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 12, + "column": 1, "line": 1, }, "start": Object { - "column": 11, + "column": 0, "line": 1, }, }, "range": Array [ - 11, - 12, + 0, + 1, ], "type": "Punctuator", "value": "[", @@ -51544,53 +59759,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 13, + "column": 2, "line": 1, }, "start": Object { - "column": 12, + "column": 1, "line": 1, }, }, "range": Array [ - 12, - 13, + 1, + 2, ], "type": "Identifier", - "value": "x", - }, - Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "range": Array [ - 13, - 14, - ], - "type": "Punctuator", - "value": ",", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 3, "line": 1, }, "start": Object { - "column": 15, + "column": 2, "line": 1, }, }, "range": Array [ - 15, - 16, + 2, + 3, ], "type": "Punctuator", "value": ",", @@ -51598,35 +59795,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 17, - "line": 1, - }, - }, - "range": Array [ - 17, - 18, - ], - "type": "Punctuator", - "value": "[", - }, - Object { - "loc": Object { - "end": Object { - "column": 19, + "column": 4, "line": 1, }, "start": Object { - "column": 18, + "column": 3, "line": 1, }, }, "range": Array [ - 18, - 19, + 3, + 4, ], "type": "Punctuator", "value": ",", @@ -51634,53 +59813,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 21, + "column": 5, "line": 1, }, "start": Object { - "column": 20, + "column": 4, "line": 1, }, }, "range": Array [ - 20, - 21, + 4, + 5, ], "type": "Identifier", - "value": "z", - }, - Object { - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 21, - "line": 1, - }, - }, - "range": Array [ - 21, - 22, - ], - "type": "Punctuator", - "value": "]", + "value": "b", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 6, "line": 1, }, "start": Object { - "column": 22, + "column": 5, "line": 1, }, }, "range": Array [ - 22, - 23, + 5, + 6, ], "type": "Punctuator", "value": "]", @@ -51688,71 +59849,53 @@ Object { Object { "loc": Object { "end": Object { - "column": 24, - "line": 1, - }, - "start": Object { - "column": 23, - "line": 1, - }, - }, - "range": Array [ - 23, - 24, - ], - "type": "Punctuator", - "value": ")", - }, - Object { - "loc": Object { - "end": Object { - "column": 26, + "column": 8, "line": 1, }, "start": Object { - "column": 25, + "column": 7, "line": 1, }, }, "range": Array [ - 25, - 26, + 7, + 8, ], "type": "Punctuator", - "value": "{", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 27, + "column": 14, "line": 1, }, "start": Object { - "column": 26, + "column": 9, "line": 1, }, }, "range": Array [ - 26, - 27, + 9, + 14, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "array", }, Object { "loc": Object { "end": Object { - "column": 28, + "column": 15, "line": 1, }, "start": Object { - "column": 27, + "column": 14, "line": 1, }, }, "range": Array [ - 27, - 28, + 14, + 15, ], "type": "Punctuator", "value": ";", @@ -51762,279 +59905,108 @@ Object { } `; -exports[`javascript fixtures/destructuring/params-nested-object.src 1`] = ` +exports[`javascript fixtures/destructuring-and-arrowFunctions/arrow-param-array.src 1`] = ` Object { "body": Array [ Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 35, - "line": 1, - }, - "start": Object { - "column": 33, - "line": 1, + "expression": Object { + "async": false, + "body": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, }, + "name": "x", + "range": Array [ + 9, + 10, + ], + "type": "Identifier", }, - "range": Array [ - 33, - 35, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": Object { + "expression": true, + "generator": false, + "id": null, "loc": Object { "end": Object { "column": 10, "line": 1, }, "start": Object { - "column": 9, + "column": 0, "line": 1, }, }, - "name": "a", - "range": Array [ - 9, - 10, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 35, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "params": Array [ - Object { - "loc": Object { - "end": Object { - "column": 31, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 12, - 13, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 12, - 16, - ], - "shorthand": false, - "type": "Property", - "value": Object { + "params": Array [ + Object { + "elements": Array [ + Object { "loc": Object { "end": Object { - "column": 16, + "column": 3, "line": 1, }, "start": Object { - "column": 15, + "column": 2, "line": 1, }, }, "name": "y", "range": Array [ - 15, - 16, - ], - "type": "Identifier", - }, - }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, - }, - "name": "z", - "range": Array [ - 18, - 19, + 2, + 3, ], "type": "Identifier", }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 29, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, + ], + "loc": Object { + "end": Object { + "column": 4, + "line": 1, }, - "method": false, - "range": Array [ - 18, - 29, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 29, - "line": 1, - }, - "start": Object { - "column": 21, - "line": 1, - }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 24, - "line": 1, - }, - "start": Object { - "column": 23, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 23, - 24, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 27, - "line": 1, - }, - "start": Object { - "column": 23, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 23, - 27, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 27, - "line": 1, - }, - "start": Object { - "column": 26, - "line": 1, - }, - }, - "name": "b", - "range": Array [ - 26, - 27, - ], - "type": "Identifier", - }, - }, - ], - "range": Array [ - 21, - 29, - ], - "type": "ObjectPattern", + "start": Object { + "column": 1, + "line": 1, }, }, - ], - "range": Array [ - 11, - 31, - ], - "type": "ObjectPattern", - }, - ], - "range": Array [ - 0, - 35, - ], - "type": "FunctionDeclaration", - }, - Object { + "range": Array [ + 1, + 4, + ], + "type": "ArrayPattern", + }, + ], + "range": Array [ + 0, + 10, + ], + "type": "ArrowFunctionExpression", + }, "loc": Object { "end": Object { - "column": 36, + "column": 11, "line": 1, }, "start": Object { - "column": 35, + "column": 0, "line": 1, }, }, "range": Array [ - 35, - 36, + 0, + 11, ], - "type": "EmptyStatement", + "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 36, + "column": 11, "line": 1, }, "start": Object { @@ -52044,14 +60016,14 @@ Object { }, "range": Array [ 0, - 36, + 11, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 8, + "column": 1, "line": 1, }, "start": Object { @@ -52061,295 +60033,452 @@ Object { }, "range": Array [ 0, - 8, + 1, + ], + "type": "Punctuator", + "value": "(", + }, + Object { + "loc": Object { + "end": Object { + "column": 2, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "range": Array [ + 1, + 2, ], - "type": "Keyword", - "value": "function", + "type": "Punctuator", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 3, "line": 1, }, "start": Object { - "column": 9, + "column": 2, "line": 1, }, }, "range": Array [ - 9, - 10, + 2, + 3, ], "type": "Identifier", - "value": "a", + "value": "y", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 4, "line": 1, }, "start": Object { - "column": 10, + "column": 3, "line": 1, }, }, "range": Array [ - 10, - 11, + 3, + 4, ], "type": "Punctuator", - "value": "(", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 5, "line": 1, }, "start": Object { - "column": 11, + "column": 4, "line": 1, }, }, "range": Array [ - 11, - 12, + 4, + 5, ], "type": "Punctuator", - "value": "{", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 8, "line": 1, }, "start": Object { - "column": 12, + "column": 6, "line": 1, }, }, "range": Array [ - 12, - 13, + 6, + 8, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": "=>", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 10, "line": 1, }, "start": Object { - "column": 13, + "column": 9, "line": 1, }, }, "range": Array [ - 13, - 14, + 9, + 10, ], - "type": "Punctuator", - "value": ":", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 11, "line": 1, }, "start": Object { - "column": 15, + "column": 10, "line": 1, }, }, "range": Array [ - 15, - 16, + 10, + 11, ], - "type": "Identifier", - "value": "y", + "type": "Punctuator", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/destructuring-and-arrowFunctions/arrow-param-nested-array.src 1`] = ` +Object { + "body": Array [ Object { + "expression": Object { + "async": false, + "body": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 14, + 15, + ], + "type": "Identifier", + }, + "expression": true, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "params": Array [ + Object { + "elements": Array [ + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 1, + }, + "start": Object { + "column": 2, + "line": 1, + }, + }, + "name": "y", + "range": Array [ + 2, + 3, + ], + "type": "Identifier", + }, + Object { + "elements": Array [ + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", + }, + ], + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "range": Array [ + 5, + 8, + ], + "type": "ArrayPattern", + }, + ], + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "range": Array [ + 1, + 9, + ], + "type": "ArrayPattern", + }, + ], + "range": Array [ + 0, + 15, + ], + "type": "ArrowFunctionExpression", + }, "loc": Object { "end": Object { - "column": 17, + "column": 16, "line": 1, }, "start": Object { - "column": 16, + "column": 0, "line": 1, }, }, "range": Array [ + 0, 16, - 17, ], - "type": "Punctuator", - "value": ",", + "type": "ExpressionStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 16, + "line": 1, }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 16, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 19, + "column": 1, "line": 1, }, "start": Object { - "column": 18, + "column": 0, "line": 1, }, }, "range": Array [ - 18, - 19, + 0, + 1, ], - "type": "Identifier", - "value": "z", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 20, + "column": 2, "line": 1, }, "start": Object { - "column": 19, + "column": 1, "line": 1, }, }, "range": Array [ - 19, - 20, + 1, + 2, ], "type": "Punctuator", - "value": ":", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 22, + "column": 3, "line": 1, }, "start": Object { - "column": 21, + "column": 2, "line": 1, }, }, "range": Array [ - 21, - 22, + 2, + 3, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "y", }, Object { "loc": Object { "end": Object { - "column": 24, + "column": 4, "line": 1, }, "start": Object { - "column": 23, + "column": 3, "line": 1, }, }, "range": Array [ - 23, - 24, + 3, + 4, ], - "type": "Identifier", - "value": "a", + "type": "Punctuator", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 25, + "column": 6, "line": 1, }, "start": Object { - "column": 24, + "column": 5, "line": 1, }, }, "range": Array [ - 24, - 25, + 5, + 6, ], "type": "Punctuator", - "value": ":", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 27, + "column": 7, "line": 1, }, "start": Object { - "column": 26, + "column": 6, "line": 1, }, }, "range": Array [ - 26, - 27, + 6, + 7, ], "type": "Identifier", - "value": "b", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 29, + "column": 8, "line": 1, }, "start": Object { - "column": 28, + "column": 7, "line": 1, }, }, "range": Array [ - 28, - 29, + 7, + 8, ], "type": "Punctuator", - "value": "}", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 31, + "column": 9, "line": 1, }, "start": Object { - "column": 30, + "column": 8, "line": 1, }, }, "range": Array [ - 30, - 31, + 8, + 9, ], "type": "Punctuator", - "value": "}", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 32, + "column": 10, "line": 1, }, "start": Object { - "column": 31, + "column": 9, "line": 1, }, }, "range": Array [ - 31, - 32, + 9, + 10, ], "type": "Punctuator", "value": ")", @@ -52357,53 +60486,53 @@ Object { Object { "loc": Object { "end": Object { - "column": 34, + "column": 13, "line": 1, }, "start": Object { - "column": 33, + "column": 11, "line": 1, }, }, "range": Array [ - 33, - 34, + 11, + 13, ], "type": "Punctuator", - "value": "{", + "value": "=>", }, Object { "loc": Object { "end": Object { - "column": 35, + "column": 15, "line": 1, }, "start": Object { - "column": 34, + "column": 14, "line": 1, }, }, "range": Array [ - 34, - 35, + 14, + 15, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 36, + "column": 16, "line": 1, }, "start": Object { - "column": 35, + "column": 15, "line": 1, }, }, "range": Array [ - 35, - 36, + 15, + 16, ], "type": "Punctuator", "value": ";", @@ -52413,221 +60542,262 @@ Object { } `; -exports[`javascript fixtures/destructuring/params-object.src 1`] = ` +exports[`javascript fixtures/destructuring-and-arrowFunctions/arrow-param-nested-object.src 1`] = ` Object { "body": Array [ Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, + "expression": Object { + "async": false, + "body": Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, }, + "name": "x", + "range": Array [ + 16, + 17, + ], + "type": "Identifier", }, - "range": Array [ - 20, - 22, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": Object { + "expression": true, + "generator": false, + "id": null, "loc": Object { "end": Object { - "column": 10, + "column": 17, "line": 1, }, "start": Object { - "column": 9, + "column": 0, "line": 1, }, }, - "name": "x", - "range": Array [ - 9, - 10, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "params": Array [ - Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 13, - 14, - ], - "type": "Identifier", + "params": Array [ + Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, + "start": Object { + "column": 1, + "line": 1, }, - "method": false, - "range": Array [ - 13, - 14, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 1, + }, + "start": Object { + "column": 2, + "line": 1, + }, }, + "name": "y", + "range": Array [ + 2, + 3, + ], + "type": "Identifier", }, - "name": "a", - "range": Array [ - 13, - 14, - ], - "type": "Identifier", - }, - }, - Object { - "computed": false, - "key": Object { + "kind": "init", "loc": Object { "end": Object { - "column": 17, + "column": 3, "line": 1, }, "start": Object { - "column": 16, + "column": 2, "line": 1, }, }, - "name": "b", + "method": false, "range": Array [ - 16, - 17, + 2, + 3, ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 1, + }, + "start": Object { + "column": 2, + "line": 1, + }, + }, + "name": "y", + "range": Array [ + 2, + 3, + ], + "type": "Identifier", }, }, - "method": false, - "range": Array [ - 16, - 17, - ], - "shorthand": true, - "type": "Property", - "value": Object { + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + }, + "kind": "init", "loc": Object { "end": Object { - "column": 17, + "column": 10, "line": 1, }, "start": Object { - "column": 16, + "column": 5, "line": 1, }, }, - "name": "b", + "method": false, "range": Array [ - 16, - 17, + 5, + 10, ], - "type": "Identifier", + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 8, + 9, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 8, + 9, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 8, + 9, + ], + "type": "Identifier", + }, + }, + ], + "range": Array [ + 7, + 10, + ], + "type": "ObjectPattern", + }, }, - }, - ], - "range": Array [ - 11, - 19, - ], - "type": "ObjectPattern", - }, - ], - "range": Array [ - 0, - 22, - ], - "type": "FunctionDeclaration", - }, - Object { + ], + "range": Array [ + 1, + 11, + ], + "type": "ObjectPattern", + }, + ], + "range": Array [ + 0, + 17, + ], + "type": "ArrowFunctionExpression", + }, "loc": Object { "end": Object { - "column": 23, + "column": 18, "line": 1, }, "start": Object { - "column": 22, + "column": 0, "line": 1, }, }, "range": Array [ - 22, - 23, + 0, + 18, ], - "type": "EmptyStatement", + "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 23, + "column": 18, "line": 1, }, "start": Object { @@ -52637,14 +60807,14 @@ Object { }, "range": Array [ 0, - 23, + 18, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 8, + "column": 1, "line": 1, }, "start": Object { @@ -52654,79 +60824,79 @@ Object { }, "range": Array [ 0, - 8, + 1, ], - "type": "Keyword", - "value": "function", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 2, "line": 1, }, "start": Object { - "column": 9, + "column": 1, "line": 1, }, }, "range": Array [ - 9, - 10, + 1, + 2, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 3, "line": 1, }, "start": Object { - "column": 10, + "column": 2, "line": 1, }, }, "range": Array [ - 10, - 11, + 2, + 3, ], - "type": "Punctuator", - "value": "(", + "type": "Identifier", + "value": "y", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 4, "line": 1, }, "start": Object { - "column": 11, + "column": 3, "line": 1, }, }, "range": Array [ - 11, - 12, + 3, + 4, ], "type": "Punctuator", - "value": "{", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 6, "line": 1, }, "start": Object { - "column": 13, + "column": 5, "line": 1, }, }, "range": Array [ - 13, - 14, + 5, + 6, ], "type": "Identifier", "value": "a", @@ -52734,53 +60904,71 @@ Object { Object { "loc": Object { "end": Object { - "column": 15, + "column": 7, "line": 1, }, "start": Object { - "column": 14, + "column": 6, "line": 1, }, }, "range": Array [ - 14, - 15, + 6, + 7, ], "type": "Punctuator", - "value": ",", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 8, "line": 1, }, "start": Object { - "column": 16, + "column": 7, "line": 1, }, }, "range": Array [ - 16, - 17, + 7, + 8, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, + 9, ], "type": "Identifier", - "value": "b", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 19, + "column": 10, "line": 1, }, "start": Object { - "column": 18, + "column": 9, "line": 1, }, }, "range": Array [ - 18, - 19, + 9, + 10, ], "type": "Punctuator", "value": "}", @@ -52788,71 +60976,89 @@ Object { Object { "loc": Object { "end": Object { - "column": 20, + "column": 11, "line": 1, }, "start": Object { - "column": 19, + "column": 10, "line": 1, }, }, "range": Array [ - 19, - 20, + 10, + 11, ], "type": "Punctuator", - "value": ")", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 21, + "column": 12, "line": 1, }, "start": Object { - "column": 20, + "column": 11, "line": 1, }, }, "range": Array [ - 20, - 21, + 11, + 12, ], "type": "Punctuator", - "value": "{", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 22, + "column": 15, "line": 1, }, "start": Object { - "column": 21, + "column": 13, "line": 1, }, }, "range": Array [ - 21, - 22, + 13, + 15, ], "type": "Punctuator", - "value": "}", + "value": "=>", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 17, "line": 1, }, "start": Object { - "column": 22, + "column": 16, "line": 1, }, }, "range": Array [ - 22, - 23, + 16, + 17, + ], + "type": "Identifier", + "value": "x", + }, + Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "range": Array [ + 17, + 18, ], "type": "Punctuator", "value": ";", @@ -52862,57 +61068,40 @@ Object { } `; -exports[`javascript fixtures/destructuring/params-object-wrapped.src 1`] = ` +exports[`javascript fixtures/destructuring-and-arrowFunctions/arrow-param-nested-object-named.src 1`] = ` Object { "body": Array [ Object { "expression": Object { "async": false, "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 21, - "line": 1, - }, - }, - "range": Array [ - 21, - 23, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": Object { "loc": Object { "end": Object { - "column": 11, + "column": 27, "line": 1, }, "start": Object { - "column": 10, + "column": 26, "line": 1, }, }, "name": "x", "range": Array [ - 10, - 11, + 26, + 27, ], "type": "Identifier", }, + "expression": true, + "generator": false, + "id": null, "loc": Object { "end": Object { - "column": 23, + "column": 27, "line": 1, }, "start": Object { - "column": 1, + "column": 0, "line": 1, }, }, @@ -52920,11 +61109,11 @@ Object { Object { "loc": Object { "end": Object { - "column": 20, + "column": 21, "line": 1, }, "start": Object { - "column": 12, + "column": 1, "line": 1, }, }, @@ -52934,54 +61123,54 @@ Object { "key": Object { "loc": Object { "end": Object { - "column": 15, + "column": 5, "line": 1, }, "start": Object { - "column": 14, + "column": 2, "line": 1, }, }, - "name": "a", + "name": "foo", "range": Array [ - 14, - 15, + 2, + 5, ], "type": "Identifier", }, "kind": "init", "loc": Object { "end": Object { - "column": 15, + "column": 8, "line": 1, }, "start": Object { - "column": 14, + "column": 2, "line": 1, }, }, "method": false, "range": Array [ - 14, - 15, + 2, + 8, ], - "shorthand": true, + "shorthand": false, "type": "Property", "value": Object { "loc": Object { "end": Object { - "column": 15, + "column": 8, "line": 1, }, "start": Object { - "column": 14, + "column": 7, "line": 1, }, }, - "name": "a", + "name": "y", "range": Array [ - 14, - 15, + 7, + 8, ], "type": "Identifier", }, @@ -52991,75 +61180,133 @@ Object { "key": Object { "loc": Object { "end": Object { - "column": 18, + "column": 11, "line": 1, }, "start": Object { - "column": 17, + "column": 10, "line": 1, }, }, - "name": "b", + "name": "a", "range": Array [ - 17, - 18, + 10, + 11, ], "type": "Identifier", }, "kind": "init", "loc": Object { "end": Object { - "column": 18, + "column": 20, "line": 1, }, "start": Object { - "column": 17, + "column": 10, "line": 1, }, }, "method": false, "range": Array [ - 17, - 18, + 10, + 20, ], - "shorthand": true, + "shorthand": false, "type": "Property", "value": Object { "loc": Object { "end": Object { - "column": 18, + "column": 20, "line": 1, }, "start": Object { - "column": 17, + "column": 12, "line": 1, }, }, - "name": "b", + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "name": "bar", + "range": Array [ + 13, + 16, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 13, + 19, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 18, + 19, + ], + "type": "Identifier", + }, + }, + ], "range": Array [ - 17, - 18, + 12, + 20, ], - "type": "Identifier", + "type": "ObjectPattern", }, }, ], - "range": Array [ - 12, - 20, + "range": Array [ + 1, + 21, ], "type": "ObjectPattern", }, ], "range": Array [ - 1, - 23, + 0, + 27, ], - "type": "FunctionExpression", + "type": "ArrowFunctionExpression", }, "loc": Object { "end": Object { - "column": 25, + "column": 28, "line": 1, }, "start": Object { @@ -53069,14 +61316,14 @@ Object { }, "range": Array [ 0, - 25, + 28, ], "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 25, + "column": 28, "line": 1, }, "start": Object { @@ -53086,7 +61333,7 @@ Object { }, "range": Array [ 0, - 25, + 28, ], "sourceType": "script", "tokens": Array [ @@ -53111,7 +61358,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 9, + "column": 2, "line": 1, }, "start": Object { @@ -53121,10 +61368,82 @@ Object { }, "range": Array [ 1, + 2, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 2, + "line": 1, + }, + }, + "range": Array [ + 2, + 5, + ], + "type": "Identifier", + "value": "foo", + }, + Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "range": Array [ + 5, + 6, + ], + "type": "Punctuator", + "value": ":", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "range": Array [ + 7, + 8, + ], + "type": "Identifier", + "value": "y", + }, + Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, 9, ], - "type": "Keyword", - "value": "function", + "type": "Punctuator", + "value": ",", }, Object { "loc": Object { @@ -53142,7 +61461,7 @@ Object { 11, ], "type": "Identifier", - "value": "x", + "value": "a", }, Object { "loc": Object { @@ -53160,7 +61479,7 @@ Object { 12, ], "type": "Punctuator", - "value": "(", + "value": ":", }, Object { "loc": Object { @@ -53183,56 +61502,56 @@ Object { Object { "loc": Object { "end": Object { - "column": 15, + "column": 16, "line": 1, }, "start": Object { - "column": 14, + "column": 13, "line": 1, }, }, "range": Array [ - 14, - 15, + 13, + 16, ], "type": "Identifier", - "value": "a", + "value": "bar", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 17, "line": 1, }, "start": Object { - "column": 15, + "column": 16, "line": 1, }, }, "range": Array [ - 15, 16, + 17, ], "type": "Punctuator", - "value": ",", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 19, "line": 1, }, "start": Object { - "column": 17, + "column": 18, "line": 1, }, }, "range": Array [ - 17, 18, + 19, ], "type": "Identifier", - "value": "b", + "value": "x", }, Object { "loc": Object { @@ -53268,7 +61587,7 @@ Object { 21, ], "type": "Punctuator", - "value": ")", + "value": "}", }, Object { "loc": Object { @@ -53286,58 +61605,58 @@ Object { 22, ], "type": "Punctuator", - "value": "{", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 25, "line": 1, }, "start": Object { - "column": 22, + "column": 23, "line": 1, }, }, "range": Array [ - 22, 23, + 25, ], "type": "Punctuator", - "value": "}", + "value": "=>", }, Object { "loc": Object { "end": Object { - "column": 24, + "column": 27, "line": 1, }, "start": Object { - "column": 23, + "column": 26, "line": 1, }, }, "range": Array [ - 23, - 24, + 26, + 27, ], - "type": "Punctuator", - "value": ")", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 25, + "column": 28, "line": 1, }, "start": Object { - "column": 24, + "column": 27, "line": 1, }, }, "range": Array [ - 24, - 25, + 27, + 28, ], "type": "Punctuator", "value": ";", @@ -53347,70 +61666,36 @@ Object { } `; -exports[`javascript fixtures/destructuring/sparse-array.src 1`] = ` +exports[`javascript fixtures/destructuring-and-arrowFunctions/arrow-param-object.src 1`] = ` Object { "body": Array [ Object { "expression": Object { - "left": Object { - "elements": Array [ - Object { - "loc": Object { - "end": Object { - "column": 2, - "line": 1, - }, - "start": Object { - "column": 1, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 1, - 2, - ], - "type": "Identifier", - }, - null, - Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "name": "b", - "range": Array [ - 4, - 5, - ], - "type": "Identifier", - }, - ], + "async": false, + "body": Object { "loc": Object { "end": Object { - "column": 6, + "column": 10, "line": 1, }, "start": Object { - "column": 0, + "column": 9, "line": 1, }, }, + "name": "x", "range": Array [ - 0, - 6, + 9, + 10, ], - "type": "ArrayPattern", + "type": "Identifier", }, + "expression": true, + "generator": false, + "id": null, "loc": Object { "end": Object { - "column": 14, + "column": 10, "line": 1, }, "start": Object { @@ -53418,34 +61703,93 @@ Object { "line": 1, }, }, - "operator": "=", + "params": Array [ + Object { + "loc": Object { + "end": Object { + "column": 4, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 1, + }, + "start": Object { + "column": 2, + "line": 1, + }, + }, + "name": "y", + "range": Array [ + 2, + 3, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 3, + "line": 1, + }, + "start": Object { + "column": 2, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 2, + 3, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 1, + }, + "start": Object { + "column": 2, + "line": 1, + }, + }, + "name": "y", + "range": Array [ + 2, + 3, + ], + "type": "Identifier", + }, + }, + ], + "range": Array [ + 1, + 4, + ], + "type": "ObjectPattern", + }, + ], "range": Array [ 0, - 14, + 10, ], - "right": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "name": "array", - "range": Array [ - 9, - 14, - ], - "type": "Identifier", - }, - "type": "AssignmentExpression", + "type": "ArrowFunctionExpression", }, "loc": Object { "end": Object { - "column": 15, + "column": 11, "line": 1, }, "start": Object { @@ -53455,14 +61799,14 @@ Object { }, "range": Array [ 0, - 15, + 11, ], "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 15, + "column": 11, "line": 1, }, "start": Object { @@ -53472,7 +61816,7 @@ Object { }, "range": Array [ 0, - 15, + 11, ], "sourceType": "script", "tokens": Array [ @@ -53492,7 +61836,7 @@ Object { 1, ], "type": "Punctuator", - "value": "[", + "value": "(", }, Object { "loc": Object { @@ -53509,8 +61853,8 @@ Object { 1, 2, ], - "type": "Identifier", - "value": "a", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { @@ -53527,8 +61871,8 @@ Object { 2, 3, ], - "type": "Punctuator", - "value": ",", + "type": "Identifier", + "value": "y", }, Object { "loc": Object { @@ -53546,7 +61890,7 @@ Object { 4, ], "type": "Punctuator", - "value": ",", + "value": "}", }, Object { "loc": Object { @@ -53563,26 +61907,8 @@ Object { 4, 5, ], - "type": "Identifier", - "value": "b", - }, - Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "range": Array [ - 5, - 6, - ], "type": "Punctuator", - "value": "]", + "value": ")", }, Object { "loc": Object { @@ -53591,21 +61917,21 @@ Object { "line": 1, }, "start": Object { - "column": 7, + "column": 6, "line": 1, }, }, "range": Array [ - 7, + 6, 8, ], "type": "Punctuator", - "value": "=", + "value": "=>", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 10, "line": 1, }, "start": Object { @@ -53615,25 +61941,25 @@ Object { }, "range": Array [ 9, - 14, + 10, ], "type": "Identifier", - "value": "array", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 11, "line": 1, }, "start": Object { - "column": 14, + "column": 10, "line": 1, }, }, "range": Array [ - 14, - 15, + 10, + 11, ], "type": "Punctuator", "value": ";", @@ -53643,7 +61969,7 @@ Object { } `; -exports[`javascript fixtures/destructuring-and-arrowFunctions/arrow-param-array.src 1`] = ` +exports[`javascript fixtures/destructuring-and-arrowFunctions/param-defaults-array.src 1`] = ` Object { "body": Array [ Object { @@ -53652,18 +61978,18 @@ Object { "body": Object { "loc": Object { "end": Object { - "column": 10, + "column": 15, "line": 1, }, "start": Object { - "column": 9, + "column": 14, "line": 1, }, }, "name": "x", "range": Array [ - 9, - 10, + 14, + 15, ], "type": "Identifier", }, @@ -53672,7 +61998,7 @@ Object { "id": null, "loc": Object { "end": Object { - "column": 10, + "column": 15, "line": 1, }, "start": Object { @@ -53684,9 +62010,27 @@ Object { Object { "elements": Array [ Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 1, + }, + "start": Object { + "column": 2, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 2, + 3, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 3, + "column": 8, "line": 1, }, "start": Object { @@ -53694,17 +62038,35 @@ Object { "line": 1, }, }, - "name": "y", "range": Array [ 2, - 3, + 8, ], - "type": "Identifier", + "right": Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "range": Array [ + 6, + 8, + ], + "raw": "10", + "type": "Literal", + "value": 10, + }, + "type": "AssignmentPattern", }, ], "loc": Object { "end": Object { - "column": 4, + "column": 9, "line": 1, }, "start": Object { @@ -53714,20 +62076,20 @@ Object { }, "range": Array [ 1, - 4, + 9, ], "type": "ArrayPattern", }, ], "range": Array [ 0, - 10, + 15, ], "type": "ArrowFunctionExpression", }, "loc": Object { "end": Object { - "column": 11, + "column": 15, "line": 1, }, "start": Object { @@ -53737,14 +62099,14 @@ Object { }, "range": Array [ 0, - 11, + 15, ], "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 11, + "column": 15, "line": 1, }, "start": Object { @@ -53754,7 +62116,7 @@ Object { }, "range": Array [ 0, - 11, + 15, ], "sourceType": "script", "tokens": Array [ @@ -53810,61 +62172,61 @@ Object { 3, ], "type": "Identifier", - "value": "y", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 4, + "column": 5, "line": 1, }, "start": Object { - "column": 3, + "column": 4, "line": 1, }, }, "range": Array [ - 3, 4, + 5, ], "type": "Punctuator", - "value": "]", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 8, "line": 1, }, "start": Object { - "column": 4, + "column": 6, "line": 1, }, }, "range": Array [ - 4, - 5, + 6, + 8, ], - "type": "Punctuator", - "value": ")", + "type": "Numeric", + "value": "10", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 9, "line": 1, }, "start": Object { - "column": 6, + "column": 8, "line": 1, }, }, "range": Array [ - 6, 8, + 9, ], "type": "Punctuator", - "value": "=>", + "value": "]", }, Object { "loc": Object { @@ -53881,33 +62243,51 @@ Object { 9, 10, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 13, "line": 1, }, "start": Object { - "column": 10, + "column": 11, "line": 1, }, }, "range": Array [ - 10, 11, + 13, ], "type": "Punctuator", - "value": ";", + "value": "=>", + }, + Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "range": Array [ + 14, + 15, + ], + "type": "Identifier", + "value": "x", }, ], "type": "Program", } `; -exports[`javascript fixtures/destructuring-and-arrowFunctions/arrow-param-nested-array.src 1`] = ` +exports[`javascript fixtures/destructuring-and-arrowFunctions/param-defaults-object.src 1`] = ` Object { "body": Array [ Object { @@ -53946,11 +62326,41 @@ Object { }, "params": Array [ Object { - "elements": Array [ + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "properties": Array [ Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 1, + }, + "start": Object { + "column": 2, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 2, + 3, + ], + "type": "Identifier", + }, + "kind": "init", "loc": Object { "end": Object { - "column": 3, + "column": 8, "line": 1, }, "start": Object { @@ -53958,66 +62368,74 @@ Object { "line": 1, }, }, - "name": "y", + "method": false, "range": Array [ 2, - 3, + 8, ], - "type": "Identifier", - }, - Object { - "elements": Array [ - Object { + "shorthand": true, + "type": "Property", + "value": Object { + "left": Object { "loc": Object { "end": Object { - "column": 7, + "column": 3, "line": 1, }, "start": Object { - "column": 6, + "column": 2, "line": 1, }, }, "name": "x", "range": Array [ - 6, - 7, + 2, + 3, ], "type": "Identifier", }, - ], - "loc": Object { - "end": Object { - "column": 8, - "line": 1, + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 2, + "line": 1, + }, }, - "start": Object { - "column": 5, - "line": 1, + "range": Array [ + 2, + 8, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "range": Array [ + 6, + 8, + ], + "raw": "10", + "type": "Literal", + "value": 10, }, + "type": "AssignmentPattern", }, - "range": Array [ - 5, - 8, - ], - "type": "ArrayPattern", }, ], - "loc": Object { - "end": Object { - "column": 9, - "line": 1, - }, - "start": Object { - "column": 1, - "line": 1, - }, - }, "range": Array [ 1, 9, ], - "type": "ArrayPattern", + "type": "ObjectPattern", }, ], "range": Array [ @@ -54028,7 +62446,7 @@ Object { }, "loc": Object { "end": Object { - "column": 16, + "column": 15, "line": 1, }, "start": Object { @@ -54038,14 +62456,14 @@ Object { }, "range": Array [ 0, - 16, + 15, ], "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 16, + "column": 15, "line": 1, }, "start": Object { @@ -54055,7 +62473,7 @@ Object { }, "range": Array [ 0, - 16, + 15, ], "sourceType": "script", "tokens": Array [ @@ -54093,7 +62511,7 @@ Object { 2, ], "type": "Punctuator", - "value": "[", + "value": "{", }, Object { "loc": Object { @@ -54111,48 +62529,30 @@ Object { 3, ], "type": "Identifier", - "value": "y", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 4, + "column": 5, "line": 1, }, "start": Object { - "column": 3, + "column": 4, "line": 1, }, }, "range": Array [ - 3, 4, - ], - "type": "Punctuator", - "value": ",", - }, - Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "range": Array [ 5, - 6, ], "type": "Punctuator", - "value": "[", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 8, "line": 1, }, "start": Object { @@ -54162,28 +62562,10 @@ Object { }, "range": Array [ 6, - 7, - ], - "type": "Identifier", - "value": "x", - }, - Object { - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, - }, - "range": Array [ - 7, 8, ], - "type": "Punctuator", - "value": "]", + "type": "Numeric", + "value": "10", }, Object { "loc": Object { @@ -54201,7 +62583,7 @@ Object { 9, ], "type": "Punctuator", - "value": "]", + "value": "}", }, Object { "loc": Object { @@ -54257,59 +62639,78 @@ Object { "type": "Identifier", "value": "x", }, - Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "range": Array [ - 15, - 16, - ], - "type": "Punctuator", - "value": ";", - }, ], "type": "Program", } `; -exports[`javascript fixtures/destructuring-and-arrowFunctions/arrow-param-nested-object.src 1`] = ` +exports[`javascript fixtures/destructuring-and-arrowFunctions/param-defaults-object-nested.src 1`] = ` Object { "body": Array [ Object { "expression": Object { "async": false, "body": Object { + "elements": Array [ + Object { + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 30, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 30, + 31, + ], + "type": "Identifier", + }, + Object { + "loc": Object { + "end": Object { + "column": 34, + "line": 1, + }, + "start": Object { + "column": 33, + "line": 1, + }, + }, + "name": "z", + "range": Array [ + 33, + 34, + ], + "type": "Identifier", + }, + ], "loc": Object { "end": Object { - "column": 17, + "column": 35, "line": 1, }, "start": Object { - "column": 16, + "column": 29, "line": 1, }, }, - "name": "x", "range": Array [ - 16, - 17, + 29, + 35, ], - "type": "Identifier", + "type": "ArrayExpression", }, "expression": true, "generator": false, "id": null, "loc": Object { "end": Object { - "column": 17, + "column": 35, "line": 1, }, "start": Object { @@ -54321,7 +62722,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 11, + "column": 24, "line": 1, }, "start": Object { @@ -54343,7 +62744,7 @@ Object { "line": 1, }, }, - "name": "y", + "name": "x", "range": Array [ 2, 3, @@ -54353,7 +62754,7 @@ Object { "kind": "init", "loc": Object { "end": Object { - "column": 3, + "column": 8, "line": 1, }, "start": Object { @@ -54364,14 +62765,32 @@ Object { "method": false, "range": Array [ 2, - 3, + 8, ], "shorthand": true, "type": "Property", "value": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 1, + }, + "start": Object { + "column": 2, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 2, + 3, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 3, + "column": 8, "line": 1, }, "start": Object { @@ -54379,12 +62798,30 @@ Object { "line": 1, }, }, - "name": "y", "range": Array [ 2, - 3, + 8, ], - "type": "Identifier", + "right": Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "range": Array [ + 6, + 8, + ], + "raw": "10", + "type": "Literal", + "value": 10, + }, + "type": "AssignmentPattern", }, }, Object { @@ -54392,47 +62829,47 @@ Object { "key": Object { "loc": Object { "end": Object { - "column": 6, + "column": 11, "line": 1, }, "start": Object { - "column": 5, + "column": 10, "line": 1, }, }, - "name": "a", + "name": "y", "range": Array [ - 5, - 6, + 10, + 11, ], "type": "Identifier", }, "kind": "init", "loc": Object { "end": Object { - "column": 10, + "column": 23, "line": 1, }, "start": Object { - "column": 5, + "column": 10, "line": 1, }, }, "method": false, "range": Array [ - 5, 10, + 23, ], "shorthand": false, "type": "Property", "value": Object { "loc": Object { "end": Object { - "column": 10, + "column": 23, "line": 1, }, "start": Object { - "column": 7, + "column": 13, "line": 1, }, }, @@ -54442,62 +62879,98 @@ Object { "key": Object { "loc": Object { "end": Object { - "column": 9, + "column": 16, "line": 1, }, "start": Object { - "column": 8, + "column": 15, "line": 1, }, }, - "name": "x", + "name": "z", "range": Array [ - 8, - 9, + 15, + 16, ], "type": "Identifier", }, "kind": "init", "loc": Object { "end": Object { - "column": 9, + "column": 21, "line": 1, }, "start": Object { - "column": 8, + "column": 15, "line": 1, }, }, "method": false, "range": Array [ - 8, - 9, + 15, + 21, ], "shorthand": true, "type": "Property", "value": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "name": "z", + "range": Array [ + 15, + 16, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 9, + "column": 21, "line": 1, }, "start": Object { - "column": 8, + "column": 15, "line": 1, }, }, - "name": "x", "range": Array [ - 8, - 9, + 15, + 21, ], - "type": "Identifier", + "right": Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 19, + "line": 1, + }, + }, + "range": Array [ + 19, + 21, + ], + "raw": "10", + "type": "Literal", + "value": 10, + }, + "type": "AssignmentPattern", }, }, ], "range": Array [ - 7, - 10, + 13, + 23, ], "type": "ObjectPattern", }, @@ -54505,82 +62978,208 @@ Object { ], "range": Array [ 1, - 11, + 24, ], "type": "ObjectPattern", }, ], "range": Array [ 0, - 17, + 35, ], "type": "ArrowFunctionExpression", }, "loc": Object { "end": Object { - "column": 18, + "column": 35, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 35, + ], + "type": "ExpressionStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 35, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 35, + ], + "sourceType": "script", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 1, + ], + "type": "Punctuator", + "value": "(", + }, + Object { + "loc": Object { + "end": Object { + "column": 2, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "range": Array [ + 1, + 2, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 1, + }, + "start": Object { + "column": 2, + "line": 1, + }, + }, + "range": Array [ + 2, + 3, + ], + "type": "Identifier", + "value": "x", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 5, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "range": Array [ + 6, + 8, + ], + "type": "Numeric", + "value": "10", + }, + Object { + "loc": Object { + "end": Object { + "column": 9, "line": 1, }, "start": Object { - "column": 0, + "column": 8, "line": 1, }, }, "range": Array [ - 0, - 18, + 8, + 9, ], - "type": "ExpressionStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 18, - "line": 1, + "type": "Punctuator", + "value": ",", }, - "start": Object { - "column": 0, - "line": 1, + Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "range": Array [ + 10, + 11, + ], + "type": "Identifier", + "value": "y", }, - }, - "range": Array [ - 0, - 18, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, + "column": 12, "line": 1, }, "start": Object { - "column": 0, + "column": 11, "line": 1, }, }, "range": Array [ - 0, - 1, + 11, + 12, ], "type": "Punctuator", - "value": "(", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 2, + "column": 14, "line": 1, }, "start": Object { - "column": 1, + "column": 13, "line": 1, }, }, "range": Array [ - 1, - 2, + 13, + 14, ], "type": "Punctuator", "value": "{", @@ -54588,463 +63187,306 @@ Object { Object { "loc": Object { "end": Object { - "column": 3, + "column": 16, "line": 1, }, "start": Object { - "column": 2, + "column": 15, "line": 1, }, }, "range": Array [ - 2, - 3, + 15, + 16, ], "type": "Identifier", - "value": "y", + "value": "z", }, Object { "loc": Object { "end": Object { - "column": 4, + "column": 18, "line": 1, }, "start": Object { - "column": 3, + "column": 17, "line": 1, }, }, "range": Array [ - 3, - 4, + 17, + 18, ], "type": "Punctuator", - "value": ",", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 6, + "column": 21, "line": 1, }, "start": Object { - "column": 5, + "column": 19, "line": 1, }, }, "range": Array [ - 5, - 6, + 19, + 21, ], - "type": "Identifier", - "value": "a", + "type": "Numeric", + "value": "10", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 23, "line": 1, }, "start": Object { - "column": 6, + "column": 22, "line": 1, }, }, "range": Array [ - 6, - 7, + 22, + 23, ], "type": "Punctuator", - "value": ":", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 24, "line": 1, }, "start": Object { - "column": 7, + "column": 23, "line": 1, }, }, "range": Array [ - 7, - 8, + 23, + 24, ], "type": "Punctuator", - "value": "{", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 25, "line": 1, }, "start": Object { - "column": 8, + "column": 24, "line": 1, }, }, "range": Array [ - 8, - 9, + 24, + 25, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 28, "line": 1, }, "start": Object { - "column": 9, + "column": 26, "line": 1, }, }, "range": Array [ - 9, - 10, + 26, + 28, ], "type": "Punctuator", - "value": "}", + "value": "=>", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 30, "line": 1, }, "start": Object { - "column": 10, + "column": 29, "line": 1, }, }, "range": Array [ - 10, - 11, + 29, + 30, ], "type": "Punctuator", - "value": "}", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 31, "line": 1, }, "start": Object { - "column": 11, + "column": 30, "line": 1, }, }, "range": Array [ - 11, - 12, + 30, + 31, ], - "type": "Punctuator", - "value": ")", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 32, "line": 1, }, "start": Object { - "column": 13, + "column": 31, "line": 1, }, }, "range": Array [ - 13, - 15, + 31, + 32, ], "type": "Punctuator", - "value": "=>", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 34, "line": 1, }, "start": Object { - "column": 16, + "column": 33, "line": 1, }, }, "range": Array [ - 16, - 17, + 33, + 34, ], "type": "Identifier", - "value": "x", + "value": "z", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 35, "line": 1, }, "start": Object { - "column": 17, + "column": 34, "line": 1, }, }, "range": Array [ - 17, - 18, + 34, + 35, ], "type": "Punctuator", - "value": ";", + "value": "]", }, ], "type": "Program", } `; -exports[`javascript fixtures/destructuring-and-arrowFunctions/arrow-param-nested-object-named.src 1`] = ` +exports[`javascript fixtures/destructuring-and-blockBindings/array-const-undefined.src 1`] = ` Object { "body": Array [ Object { - "expression": Object { - "async": false, - "body": Object { - "loc": Object { - "end": Object { - "column": 27, - "line": 1, - }, - "start": Object { - "column": 26, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 26, - 27, - ], - "type": "Identifier", - }, - "expression": true, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 27, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "params": Array [ - Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 1, - "line": 1, - }, - }, - "properties": Array [ + "declarations": Array [ + Object { + "id": Object { + "elements": Array [ Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 1, - }, - "start": Object { - "column": 2, - "line": 1, - }, - }, - "name": "foo", - "range": Array [ - 2, - 5, - ], - "type": "Identifier", - }, - "kind": "init", "loc": Object { "end": Object { "column": 8, "line": 1, }, "start": Object { - "column": 2, + "column": 7, "line": 1, }, }, - "method": false, + "name": "a", "range": Array [ - 2, + 7, 8, ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, - }, - "name": "y", - "range": Array [ - 7, - 8, - ], - "type": "Identifier", - }, + "type": "Identifier", }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 10, - 11, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 10, - 20, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "name": "bar", - "range": Array [ - 13, - 16, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 13, - 19, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 18, - 19, - ], - "type": "Identifier", - }, - }, - ], - "range": Array [ - 12, - 20, - ], - "type": "ObjectPattern", - }, + ], + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, }, + }, + "range": Array [ + 6, + 9, ], + "type": "ArrayPattern", + }, + "init": Object { + "elements": Array [], + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, "range": Array [ - 1, - 21, + 12, + 14, ], - "type": "ObjectPattern", + "type": "ArrayExpression", }, - ], - "range": Array [ - 0, - 27, - ], - "type": "ArrowFunctionExpression", - }, + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "range": Array [ + 6, + 14, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "const", "loc": Object { "end": Object { - "column": 28, + "column": 15, "line": 1, }, "start": Object { @@ -55054,14 +63496,14 @@ Object { }, "range": Array [ 0, - 28, + 15, ], - "type": "ExpressionStatement", + "type": "VariableDeclaration", }, ], "loc": Object { "end": Object { - "column": 28, + "column": 15, "line": 1, }, "start": Object { @@ -55071,14 +63513,14 @@ Object { }, "range": Array [ 0, - 28, + 15, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, + "column": 5, "line": 1, }, "start": Object { @@ -55088,64 +63530,28 @@ Object { }, "range": Array [ 0, - 1, - ], - "type": "Punctuator", - "value": "(", - }, - Object { - "loc": Object { - "end": Object { - "column": 2, - "line": 1, - }, - "start": Object { - "column": 1, - "line": 1, - }, - }, - "range": Array [ - 1, - 2, - ], - "type": "Punctuator", - "value": "{", - }, - Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 1, - }, - "start": Object { - "column": 2, - "line": 1, - }, - }, - "range": Array [ - 2, 5, ], - "type": "Identifier", - "value": "foo", + "type": "Keyword", + "value": "const", }, Object { "loc": Object { "end": Object { - "column": 6, + "column": 7, "line": 1, }, "start": Object { - "column": 5, + "column": 6, "line": 1, }, }, "range": Array [ - 5, 6, + 7, ], "type": "Punctuator", - "value": ":", + "value": "[", }, Object { "loc": Object { @@ -55163,7 +63569,7 @@ Object { 8, ], "type": "Identifier", - "value": "y", + "value": "a", }, Object { "loc": Object { @@ -55181,7 +63587,7 @@ Object { 9, ], "type": "Punctuator", - "value": ",", + "value": "]", }, Object { "loc": Object { @@ -55198,203 +63604,320 @@ Object { 10, 11, ], - "type": "Identifier", - "value": "a", + "type": "Punctuator", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 13, "line": 1, }, "start": Object { - "column": 11, + "column": 12, "line": 1, }, }, "range": Array [ - 11, 12, + 13, ], "type": "Punctuator", - "value": ":", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 14, "line": 1, }, "start": Object { - "column": 12, + "column": 13, "line": 1, }, }, "range": Array [ - 12, 13, + 14, ], "type": "Punctuator", - "value": "{", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 15, "line": 1, }, "start": Object { + "column": 14, + "line": 1, + }, + }, + "range": Array [ + 14, + 15, + ], + "type": "Punctuator", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/destructuring-and-blockBindings/array-let-undefined.src 1`] = ` +Object { + "body": Array [ + Object { + "declarations": Array [ + Object { + "id": Object { + "elements": Array [ + Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + }, + ], + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 7, + ], + "type": "ArrayPattern", + }, + "init": Object { + "elements": Array [], + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "range": Array [ + 10, + 12, + ], + "type": "ArrayExpression", + }, + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 12, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "let", + "loc": Object { + "end": Object { "column": 13, "line": 1, }, + "start": Object { + "column": 0, + "line": 1, + }, }, "range": Array [ + 0, 13, - 16, ], - "type": "Identifier", - "value": "bar", + "type": "VariableDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 13, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 17, + "column": 3, "line": 1, }, "start": Object { - "column": 16, + "column": 0, "line": 1, }, }, "range": Array [ - 16, - 17, + 0, + 3, ], - "type": "Punctuator", - "value": ":", + "type": "Keyword", + "value": "let", }, Object { "loc": Object { "end": Object { - "column": 19, + "column": 5, "line": 1, }, "start": Object { - "column": 18, + "column": 4, "line": 1, }, }, "range": Array [ - 18, - 19, + 4, + 5, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 20, + "column": 6, "line": 1, }, "start": Object { - "column": 19, + "column": 5, "line": 1, }, }, "range": Array [ - 19, - 20, + 5, + 6, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 21, + "column": 7, "line": 1, }, "start": Object { - "column": 20, + "column": 6, "line": 1, }, }, "range": Array [ - 20, - 21, + 6, + 7, ], "type": "Punctuator", - "value": "}", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 22, + "column": 9, "line": 1, }, "start": Object { - "column": 21, + "column": 8, "line": 1, }, }, "range": Array [ - 21, - 22, + 8, + 9, ], "type": "Punctuator", - "value": ")", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 25, + "column": 11, "line": 1, }, "start": Object { - "column": 23, + "column": 10, "line": 1, }, }, "range": Array [ - 23, - 25, + 10, + 11, ], "type": "Punctuator", - "value": "=>", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 27, + "column": 12, "line": 1, }, "start": Object { - "column": 26, + "column": 11, "line": 1, }, }, "range": Array [ - 26, - 27, + 11, + 12, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 28, + "column": 13, "line": 1, }, "start": Object { - "column": 27, + "column": 12, "line": 1, }, }, "range": Array [ - 27, - 28, + 12, + 13, ], "type": "Punctuator", "value": ";", @@ -55404,52 +63927,20 @@ Object { } `; -exports[`javascript fixtures/destructuring-and-arrowFunctions/arrow-param-object.src 1`] = ` +exports[`javascript fixtures/destructuring-and-blockBindings/object-const-named.src 1`] = ` Object { "body": Array [ Object { - "expression": Object { - "async": false, - "body": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 9, - 10, - ], - "type": "Identifier", - }, - "expression": true, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "params": Array [ - Object { + "declarations": Array [ + Object { + "id": Object { "loc": Object { "end": Object { - "column": 4, + "column": 11, "line": 1, }, "start": Object { - "column": 1, + "column": 6, "line": 1, }, }, @@ -55459,75 +63950,104 @@ Object { "key": Object { "loc": Object { "end": Object { - "column": 3, + "column": 8, "line": 1, }, "start": Object { - "column": 2, + "column": 7, "line": 1, }, }, - "name": "y", + "name": "a", "range": Array [ - 2, - 3, + 7, + 8, ], "type": "Identifier", }, "kind": "init", "loc": Object { "end": Object { - "column": 3, + "column": 10, "line": 1, }, "start": Object { - "column": 2, + "column": 7, "line": 1, }, }, "method": false, "range": Array [ - 2, - 3, + 7, + 10, ], - "shorthand": true, + "shorthand": false, "type": "Property", "value": Object { "loc": Object { "end": Object { - "column": 3, + "column": 10, "line": 1, }, "start": Object { - "column": 2, + "column": 9, "line": 1, }, }, - "name": "y", + "name": "b", "range": Array [ - 2, - 3, + 9, + 10, ], "type": "Identifier", }, }, ], "range": Array [ - 1, - 4, + 6, + 11, ], "type": "ObjectPattern", }, - ], - "range": Array [ - 0, - 10, - ], - "type": "ArrowFunctionExpression", - }, + "init": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "properties": Array [], + "range": Array [ + 14, + 16, + ], + "type": "ObjectExpression", + }, + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "range": Array [ + 6, + 16, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "const", "loc": Object { "end": Object { - "column": 11, + "column": 17, "line": 1, }, "start": Object { @@ -55537,14 +64057,14 @@ Object { }, "range": Array [ 0, - 11, + 17, ], - "type": "ExpressionStatement", + "type": "VariableDeclaration", }, ], "loc": Object { "end": Object { - "column": 11, + "column": 17, "line": 1, }, "start": Object { @@ -55554,14 +64074,14 @@ Object { }, "range": Array [ 0, - 11, + 17, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, + "column": 5, "line": 1, }, "start": Object { @@ -55571,25 +64091,25 @@ Object { }, "range": Array [ 0, - 1, + 5, ], - "type": "Punctuator", - "value": "(", + "type": "Keyword", + "value": "const", }, Object { "loc": Object { "end": Object { - "column": 2, + "column": 7, "line": 1, }, "start": Object { - "column": 1, + "column": 6, "line": 1, }, }, "range": Array [ - 1, - 2, + 6, + 7, ], "type": "Punctuator", "value": "{", @@ -55597,234 +64117,270 @@ Object { Object { "loc": Object { "end": Object { - "column": 3, + "column": 8, "line": 1, }, "start": Object { - "column": 2, + "column": 7, "line": 1, }, }, "range": Array [ - 2, - 3, + 7, + 8, ], "type": "Identifier", - "value": "y", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 4, + "column": 9, "line": 1, }, "start": Object { - "column": 3, + "column": 8, "line": 1, }, }, "range": Array [ - 3, - 4, + 8, + 9, ], "type": "Punctuator", - "value": "}", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 10, "line": 1, }, "start": Object { - "column": 4, + "column": 9, "line": 1, }, }, "range": Array [ - 4, - 5, + 9, + 10, ], - "type": "Punctuator", - "value": ")", + "type": "Identifier", + "value": "b", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 11, "line": 1, }, "start": Object { - "column": 6, + "column": 10, "line": 1, }, }, "range": Array [ - 6, - 8, + 10, + 11, ], "type": "Punctuator", - "value": "=>", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 13, "line": 1, }, "start": Object { - "column": 9, + "column": 12, "line": 1, }, }, "range": Array [ - 9, - 10, + 12, + 13, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 15, "line": 1, }, "start": Object { - "column": 10, + "column": 14, "line": 1, }, }, "range": Array [ - 10, - 11, + 14, + 15, ], "type": "Punctuator", - "value": ";", + "value": "{", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/destructuring-and-arrowFunctions/param-defaults-array.src 1`] = ` -Object { - "body": Array [ Object { - "expression": Object { - "async": false, - "body": Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 14, - 15, - ], - "type": "Identifier", + "loc": Object { + "end": Object { + "column": 16, + "line": 1, }, - "expression": true, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "range": Array [ + 15, + 16, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, }, - "params": Array [ - Object { - "elements": Array [ + "start": Object { + "column": 16, + "line": 1, + }, + }, + "range": Array [ + 16, + 17, + ], + "type": "Punctuator", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/destructuring-and-blockBindings/object-const-undefined.src 1`] = ` +Object { + "body": Array [ + Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "properties": Array [ Object { - "left": Object { + "computed": false, + "key": Object { "loc": Object { "end": Object { - "column": 3, + "column": 8, "line": 1, }, "start": Object { - "column": 2, + "column": 7, "line": 1, }, }, - "name": "x", + "name": "a", "range": Array [ - 2, - 3, + 7, + 8, ], "type": "Identifier", }, + "kind": "init", "loc": Object { "end": Object { "column": 8, "line": 1, }, "start": Object { - "column": 2, + "column": 7, "line": 1, }, }, + "method": false, "range": Array [ - 2, + 7, 8, ], - "right": Object { + "shorthand": true, + "type": "Property", + "value": Object { "loc": Object { "end": Object { "column": 8, "line": 1, }, "start": Object { - "column": 6, + "column": 7, "line": 1, }, }, + "name": "a", "range": Array [ - 6, + 7, 8, ], - "raw": "10", - "type": "Literal", - "value": 10, + "type": "Identifier", }, - "type": "AssignmentPattern", }, ], + "range": Array [ + 6, + 9, + ], + "type": "ObjectPattern", + }, + "init": Object { "loc": Object { "end": Object { - "column": 9, + "column": 14, "line": 1, }, "start": Object { - "column": 1, + "column": 12, "line": 1, }, }, + "properties": Array [], "range": Array [ - 1, - 9, + 12, + 14, ], - "type": "ArrayPattern", + "type": "ObjectExpression", }, - ], - "range": Array [ - 0, - 15, - ], - "type": "ArrowFunctionExpression", - }, + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "range": Array [ + 6, + 14, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "const", "loc": Object { "end": Object { "column": 15, @@ -55839,7 +64395,7 @@ Object { 0, 15, ], - "type": "ExpressionStatement", + "type": "VariableDeclaration", }, ], "loc": Object { @@ -55861,7 +64417,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 1, + "column": 5, "line": 1, }, "start": Object { @@ -55871,136 +64427,118 @@ Object { }, "range": Array [ 0, - 1, + 5, ], - "type": "Punctuator", - "value": "(", + "type": "Keyword", + "value": "const", }, Object { "loc": Object { "end": Object { - "column": 2, + "column": 7, "line": 1, }, "start": Object { - "column": 1, + "column": 6, "line": 1, }, }, "range": Array [ - 1, - 2, + 6, + 7, ], "type": "Punctuator", - "value": "[", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 3, + "column": 8, "line": 1, }, "start": Object { - "column": 2, + "column": 7, "line": 1, }, }, "range": Array [ - 2, - 3, + 7, + 8, ], "type": "Identifier", - "value": "x", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 9, "line": 1, }, "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 5, - ], - "type": "Punctuator", - "value": "=", - }, - Object { - "loc": Object { - "end": Object { "column": 8, "line": 1, }, - "start": Object { - "column": 6, - "line": 1, - }, }, "range": Array [ - 6, 8, + 9, ], - "type": "Numeric", - "value": "10", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 11, "line": 1, }, "start": Object { - "column": 8, + "column": 10, "line": 1, }, }, "range": Array [ - 8, - 9, + 10, + 11, ], "type": "Punctuator", - "value": "]", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 13, "line": 1, }, "start": Object { - "column": 9, + "column": 12, "line": 1, }, }, "range": Array [ - 9, - 10, + 12, + 13, ], "type": "Punctuator", - "value": ")", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 14, "line": 1, }, "start": Object { - "column": 11, + "column": 13, "line": 1, }, }, "range": Array [ - 11, 13, + 14, ], "type": "Punctuator", - "value": "=>", + "value": "}", }, Object { "loc": Object { @@ -56017,60 +64555,28 @@ Object { 14, 15, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": ";", }, ], "type": "Program", } `; -exports[`javascript fixtures/destructuring-and-arrowFunctions/param-defaults-object.src 1`] = ` +exports[`javascript fixtures/destructuring-and-blockBindings/object-let-named.src 1`] = ` Object { "body": Array [ Object { - "expression": Object { - "async": false, - "body": Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 14, - 15, - ], - "type": "Identifier", - }, - "expression": true, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "params": Array [ - Object { + "declarations": Array [ + Object { + "id": Object { "loc": Object { "end": Object { "column": 9, "line": 1, }, "start": Object { - "column": 1, + "column": 4, "line": 1, }, }, @@ -56080,18 +64586,18 @@ Object { "key": Object { "loc": Object { "end": Object { - "column": 3, + "column": 6, "line": 1, }, "start": Object { - "column": 2, + "column": 5, "line": 1, }, }, - "name": "x", + "name": "a", "range": Array [ - 2, - 3, + 5, + 6, ], "type": "Identifier", }, @@ -56102,86 +64608,79 @@ Object { "line": 1, }, "start": Object { - "column": 2, + "column": 5, "line": 1, }, }, "method": false, "range": Array [ - 2, + 5, 8, ], - "shorthand": true, + "shorthand": false, "type": "Property", "value": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 3, - "line": 1, - }, - "start": Object { - "column": 2, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 2, - 3, - ], - "type": "Identifier", - }, "loc": Object { "end": Object { "column": 8, "line": 1, }, "start": Object { - "column": 2, + "column": 7, "line": 1, }, }, + "name": "b", "range": Array [ - 2, + 7, 8, ], - "right": Object { - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "range": Array [ - 6, - 8, - ], - "raw": "10", - "type": "Literal", - "value": 10, - }, - "type": "AssignmentPattern", + "type": "Identifier", }, }, ], "range": Array [ - 1, + 4, 9, ], "type": "ObjectPattern", }, - ], - "range": Array [ - 0, - 15, - ], - "type": "ArrowFunctionExpression", - }, + "init": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "properties": Array [], + "range": Array [ + 12, + 14, + ], + "type": "ObjectExpression", + }, + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 14, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "let", "loc": Object { "end": Object { "column": 15, @@ -56196,7 +64695,7 @@ Object { 0, 15, ], - "type": "ExpressionStatement", + "type": "VariableDeclaration", }, ], "loc": Object { @@ -56218,7 +64717,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 1, + "column": 3, "line": 1, }, "start": Object { @@ -56228,25 +64727,25 @@ Object { }, "range": Array [ 0, - 1, + 3, ], - "type": "Punctuator", - "value": "(", + "type": "Keyword", + "value": "let", }, Object { "loc": Object { "end": Object { - "column": 2, + "column": 5, "line": 1, }, "start": Object { - "column": 1, + "column": 4, "line": 1, }, }, "range": Array [ - 1, - 2, + 4, + 5, ], "type": "Punctuator", "value": "{", @@ -56254,38 +64753,38 @@ Object { Object { "loc": Object { "end": Object { - "column": 3, + "column": 6, "line": 1, }, "start": Object { - "column": 2, + "column": 5, "line": 1, }, }, "range": Array [ - 2, - 3, + 5, + 6, ], "type": "Identifier", - "value": "x", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 7, "line": 1, }, "start": Object { - "column": 4, + "column": 6, "line": 1, }, }, "range": Array [ - 4, - 5, + 6, + 7, ], "type": "Punctuator", - "value": "=", + "value": ":", }, Object { "loc": Object { @@ -56294,16 +64793,16 @@ Object { "line": 1, }, "start": Object { - "column": 6, + "column": 7, "line": 1, }, }, "range": Array [ - 6, + 7, 8, ], - "type": "Numeric", - "value": "10", + "type": "Identifier", + "value": "b", }, Object { "loc": Object { @@ -56326,20 +64825,20 @@ Object { Object { "loc": Object { "end": Object { - "column": 10, + "column": 11, "line": 1, }, "start": Object { - "column": 9, + "column": 10, "line": 1, }, }, "range": Array [ - 9, 10, + 11, ], "type": "Punctuator", - "value": ")", + "value": "=", }, Object { "loc": Object { @@ -56348,16 +64847,34 @@ Object { "line": 1, }, "start": Object { - "column": 11, + "column": 12, "line": 1, }, }, "range": Array [ - 11, + 12, 13, ], "type": "Punctuator", - "value": "=>", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 14, + ], + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { @@ -56374,97 +64891,28 @@ Object { 14, 15, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": ";", }, ], "type": "Program", -} -`; - -exports[`javascript fixtures/destructuring-and-arrowFunctions/param-defaults-object-nested.src 1`] = ` -Object { - "body": Array [ - Object { - "expression": Object { - "async": false, - "body": Object { - "elements": Array [ - Object { - "loc": Object { - "end": Object { - "column": 31, - "line": 1, - }, - "start": Object { - "column": 30, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 30, - 31, - ], - "type": "Identifier", - }, - Object { - "loc": Object { - "end": Object { - "column": 34, - "line": 1, - }, - "start": Object { - "column": 33, - "line": 1, - }, - }, - "name": "z", - "range": Array [ - 33, - 34, - ], - "type": "Identifier", - }, - ], - "loc": Object { - "end": Object { - "column": 35, - "line": 1, - }, - "start": Object { - "column": 29, - "line": 1, - }, - }, - "range": Array [ - 29, - 35, - ], - "type": "ArrayExpression", - }, - "expression": true, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 35, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "params": Array [ - Object { +} +`; + +exports[`javascript fixtures/destructuring-and-blockBindings/object-let-undefined.src 1`] = ` +Object { + "body": Array [ + Object { + "declarations": Array [ + Object { + "id": Object { "loc": Object { "end": Object { - "column": 24, + "column": 7, "line": 1, }, "start": Object { - "column": 1, + "column": 4, "line": 1, }, }, @@ -56474,262 +64922,104 @@ Object { "key": Object { "loc": Object { "end": Object { - "column": 3, + "column": 6, "line": 1, }, "start": Object { - "column": 2, + "column": 5, "line": 1, }, }, - "name": "x", + "name": "a", "range": Array [ - 2, - 3, + 5, + 6, ], "type": "Identifier", }, "kind": "init", "loc": Object { "end": Object { - "column": 8, + "column": 6, "line": 1, }, "start": Object { - "column": 2, + "column": 5, "line": 1, }, }, "method": false, "range": Array [ - 2, - 8, + 5, + 6, ], "shorthand": true, "type": "Property", "value": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 3, - "line": 1, - }, - "start": Object { - "column": 2, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 2, - 3, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 2, - "line": 1, - }, - }, - "range": Array [ - 2, - 8, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "range": Array [ - 6, - 8, - ], - "raw": "10", - "type": "Literal", - "value": 10, - }, - "type": "AssignmentPattern", - }, - }, - Object { - "computed": false, - "key": Object { "loc": Object { "end": Object { - "column": 11, + "column": 6, "line": 1, }, "start": Object { - "column": 10, + "column": 5, "line": 1, }, }, - "name": "y", + "name": "a", "range": Array [ - 10, - 11, + 5, + 6, ], "type": "Identifier", }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 10, - 23, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "name": "z", - "range": Array [ - 15, - 16, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 15, - 21, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "name": "z", - "range": Array [ - 15, - 16, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "range": Array [ - 15, - 21, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 19, - "line": 1, - }, - }, - "range": Array [ - 19, - 21, - ], - "raw": "10", - "type": "Literal", - "value": 10, - }, - "type": "AssignmentPattern", - }, - }, - ], - "range": Array [ - 13, - 23, - ], - "type": "ObjectPattern", - }, }, ], "range": Array [ - 1, - 24, + 4, + 7, ], "type": "ObjectPattern", }, - ], - "range": Array [ - 0, - 35, - ], - "type": "ArrowFunctionExpression", - }, + "init": Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "properties": Array [], + "range": Array [ + 10, + 12, + ], + "type": "ObjectExpression", + }, + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 12, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "let", "loc": Object { "end": Object { - "column": 35, + "column": 13, "line": 1, }, "start": Object { @@ -56739,14 +65029,14 @@ Object { }, "range": Array [ 0, - 35, + 13, ], - "type": "ExpressionStatement", + "type": "VariableDeclaration", }, ], "loc": Object { "end": Object { - "column": 35, + "column": 13, "line": 1, }, "start": Object { @@ -56756,14 +65046,14 @@ Object { }, "range": Array [ 0, - 35, + 13, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, + "column": 3, "line": 1, }, "start": Object { @@ -56773,25 +65063,25 @@ Object { }, "range": Array [ 0, - 1, + 3, ], - "type": "Punctuator", - "value": "(", + "type": "Keyword", + "value": "let", }, Object { "loc": Object { "end": Object { - "column": 2, + "column": 5, "line": 1, }, "start": Object { - "column": 1, + "column": 4, "line": 1, }, }, "range": Array [ - 1, - 2, + 4, + 5, ], "type": "Punctuator", "value": "{", @@ -56799,43 +65089,25 @@ Object { Object { "loc": Object { "end": Object { - "column": 3, + "column": 6, "line": 1, }, "start": Object { - "column": 2, - "line": 1, - }, - }, - "range": Array [ - 2, - 3, - ], - "type": "Identifier", - "value": "x", - }, - Object { - "loc": Object { - "end": Object { "column": 5, "line": 1, }, - "start": Object { - "column": 4, - "line": 1, - }, }, "range": Array [ - 4, 5, + 6, ], - "type": "Punctuator", - "value": "=", + "type": "Identifier", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 7, "line": 1, }, "start": Object { @@ -56845,10 +65117,10 @@ Object { }, "range": Array [ 6, - 8, + 7, ], - "type": "Numeric", - "value": "10", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { @@ -56866,7 +65138,7 @@ Object { 9, ], "type": "Punctuator", - "value": ",", + "value": "=", }, Object { "loc": Object { @@ -56883,8 +65155,8 @@ Object { 10, 11, ], - "type": "Identifier", - "value": "y", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { @@ -56902,115 +65174,183 @@ Object { 12, ], "type": "Punctuator", - "value": ":", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 13, "line": 1, }, "start": Object { - "column": 13, + "column": 12, "line": 1, }, }, "range": Array [ + 12, 13, - 14, ], "type": "Punctuator", - "value": "{", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/destructuring-and-defaultParams/param-array.src 1`] = ` +Object { + "body": Array [ Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, }, + "range": Array [ + 22, + 24, + ], + "type": "BlockStatement", }, - "range": Array [ - 15, - 16, - ], - "type": "Identifier", - "value": "z", - }, - Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 17, - "line": 1, + "expression": false, + "generator": false, + "id": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, }, + "name": "f", + "range": Array [ + 9, + 10, + ], + "type": "Identifier", }, - "range": Array [ - 17, - 18, - ], - "type": "Punctuator", - "value": "=", - }, - Object { "loc": Object { "end": Object { - "column": 21, + "column": 24, "line": 1, }, "start": Object { - "column": 19, + "column": 0, "line": 1, }, }, - "range": Array [ - 19, - 21, - ], - "type": "Numeric", - "value": "10", - }, - Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 22, - "line": 1, + "params": Array [ + Object { + "left": Object { + "elements": Array [ + Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 12, + 13, + ], + "type": "Identifier", + }, + ], + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 14, + ], + "type": "ArrayPattern", + }, + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 20, + ], + "right": Object { + "elements": Array [ + Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "range": Array [ + 18, + 19, + ], + "raw": "1", + "type": "Literal", + "value": 1, + }, + ], + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "range": Array [ + 17, + 20, + ], + "type": "ArrayExpression", + }, + "type": "AssignmentPattern", }, - }, - "range": Array [ - 22, - 23, ], - "type": "Punctuator", - "value": "}", - }, - Object { - "loc": Object { - "end": Object { - "column": 24, - "line": 1, - }, - "start": Object { - "column": 23, - "line": 1, - }, - }, "range": Array [ - 23, + 0, 24, ], - "type": "Punctuator", - "value": "}", + "type": "FunctionDeclaration", }, Object { "loc": Object { @@ -57027,266 +65367,165 @@ Object { 24, 25, ], - "type": "Punctuator", - "value": ")", + "type": "EmptyStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 25, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 28, + "column": 8, "line": 1, }, "start": Object { - "column": 26, + "column": 0, "line": 1, }, }, "range": Array [ - 26, - 28, + 0, + 8, ], - "type": "Punctuator", - "value": "=>", + "type": "Keyword", + "value": "function", }, Object { "loc": Object { "end": Object { - "column": 30, + "column": 10, "line": 1, }, "start": Object { - "column": 29, + "column": 9, "line": 1, }, }, "range": Array [ - 29, - 30, + 9, + 10, ], - "type": "Punctuator", - "value": "[", + "type": "Identifier", + "value": "f", }, Object { "loc": Object { "end": Object { - "column": 31, + "column": 11, "line": 1, }, "start": Object { - "column": 30, + "column": 10, "line": 1, }, }, "range": Array [ - 30, - 31, + 10, + 11, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 32, + "column": 12, "line": 1, }, "start": Object { - "column": 31, + "column": 11, "line": 1, }, }, "range": Array [ - 31, - 32, + 11, + 12, ], "type": "Punctuator", - "value": ",", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 34, + "column": 13, "line": 1, }, "start": Object { - "column": 33, + "column": 12, "line": 1, }, }, "range": Array [ - 33, - 34, + 12, + 13, ], "type": "Identifier", - "value": "z", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 35, + "column": 14, "line": 1, }, "start": Object { - "column": 34, + "column": 13, "line": 1, }, }, "range": Array [ - 34, - 35, + 13, + 14, ], "type": "Punctuator", "value": "]", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/destructuring-and-blockBindings/array-const-undefined.src 1`] = ` -Object { - "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "elements": Array [ - Object { - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 7, - 8, - ], - "type": "Identifier", - }, - ], - "loc": Object { - "end": Object { - "column": 9, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "range": Array [ - 6, - 9, - ], - "type": "ArrayPattern", - }, - "init": Object { - "elements": Array [], - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "range": Array [ - 12, - 14, - ], - "type": "ArrayExpression", - }, - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "range": Array [ - 6, - 14, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "const", "loc": Object { "end": Object { - "column": 15, + "column": 16, "line": 1, }, "start": Object { - "column": 0, + "column": 15, "line": 1, }, }, "range": Array [ - 0, 15, + 16, ], - "type": "VariableDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 15, - ], - "sourceType": "script", - "tokens": Array [ - Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 5, - ], - "type": "Keyword", - "value": "const", + "type": "Punctuator", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 18, "line": 1, }, "start": Object { - "column": 6, + "column": 17, "line": 1, }, }, "range": Array [ - 6, - 7, + 17, + 18, ], "type": "Punctuator", "value": "[", @@ -57294,35 +65533,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 8, + "column": 19, "line": 1, }, "start": Object { - "column": 7, + "column": 18, "line": 1, }, }, "range": Array [ - 7, - 8, + 18, + 19, ], - "type": "Identifier", - "value": "a", + "type": "Numeric", + "value": "1", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 20, "line": 1, }, "start": Object { - "column": 8, + "column": 19, "line": 1, }, }, "range": Array [ - 8, - 9, + 19, + 20, ], "type": "Punctuator", "value": "]", @@ -57330,71 +65569,71 @@ Object { Object { "loc": Object { "end": Object { - "column": 11, + "column": 21, "line": 1, }, "start": Object { - "column": 10, + "column": 20, "line": 1, }, }, "range": Array [ - 10, - 11, + 20, + 21, ], "type": "Punctuator", - "value": "=", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 23, "line": 1, }, "start": Object { - "column": 12, + "column": 22, "line": 1, }, }, "range": Array [ - 12, - 13, + 22, + 23, ], "type": "Punctuator", - "value": "[", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 24, "line": 1, }, "start": Object { - "column": 13, + "column": 23, "line": 1, }, }, "range": Array [ - 13, - 14, + 23, + 24, ], "type": "Punctuator", - "value": "]", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 25, "line": 1, }, "start": Object { - "column": 14, + "column": 24, "line": 1, }, }, "range": Array [ - 14, - 15, + 24, + 25, ], "type": "Punctuator", "value": ";", @@ -57404,88 +65643,260 @@ Object { } `; -exports[`javascript fixtures/destructuring-and-blockBindings/array-let-undefined.src 1`] = ` +exports[`javascript fixtures/destructuring-and-defaultParams/param-object.src 1`] = ` Object { "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "elements": Array [ - Object { + "expression": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "name": "f", + "range": Array [ + 0, + 1, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 30, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "operator": "=", + "range": Array [ + 0, + 30, + ], + "right": Object { + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 30, + "line": 1, + }, + "start": Object { + "column": 28, + "line": 1, + }, + }, + "range": Array [ + 28, + 30, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 30, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "params": Array [ + Object { + "left": Object { "loc": Object { "end": Object { - "column": 6, + "column": 16, "line": 1, }, "start": Object { - "column": 5, + "column": 13, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 14, + 15, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 14, + 15, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 14, + 15, + ], + "type": "Identifier", + }, + }, + ], + "range": Array [ + 13, + 16, + ], + "type": "ObjectPattern", + }, + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 26, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 19, "line": 1, }, - }, - "name": "a", + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 20, + 21, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 20, + 25, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "range": Array [ + 23, + 25, + ], + "raw": "10", + "type": "Literal", + "value": 10, + }, + }, + ], "range": Array [ - 5, - 6, + 19, + 26, ], - "type": "Identifier", - }, - ], - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 7, - ], - "type": "ArrayPattern", - }, - "init": Object { - "elements": Array [], - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, + "type": "ObjectExpression", }, + "type": "AssignmentPattern", }, - "range": Array [ - 10, - 12, - ], - "type": "ArrayExpression", - }, - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, + ], "range": Array [ 4, - 12, + 30, ], - "type": "VariableDeclarator", + "type": "FunctionExpression", }, - ], - "kind": "let", + "type": "AssignmentExpression", + }, "loc": Object { "end": Object { - "column": 13, + "column": 31, "line": 1, }, "start": Object { @@ -57495,14 +65906,14 @@ Object { }, "range": Array [ 0, - 13, + 31, ], - "type": "VariableDeclaration", + "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 13, + "column": 31, "line": 1, }, "start": Object { @@ -57512,14 +65923,14 @@ Object { }, "range": Array [ 0, - 13, + 31, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, + "column": 1, "line": 1, }, "start": Object { @@ -57529,325 +65940,151 @@ Object { }, "range": Array [ 0, - 3, + 1, ], - "type": "Keyword", - "value": "let", + "type": "Identifier", + "value": "f", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 3, "line": 1, }, "start": Object { - "column": 4, + "column": 2, "line": 1, }, }, "range": Array [ - 4, - 5, + 2, + 3, ], "type": "Punctuator", - "value": "[", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 6, + "column": 12, "line": 1, }, "start": Object { - "column": 5, + "column": 4, "line": 1, }, }, "range": Array [ - 5, - 6, + 4, + 12, ], - "type": "Identifier", - "value": "a", + "type": "Keyword", + "value": "function", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 13, "line": 1, }, "start": Object { - "column": 6, + "column": 12, "line": 1, }, }, "range": Array [ - 6, - 7, + 12, + 13, ], "type": "Punctuator", - "value": "]", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 14, "line": 1, }, "start": Object { - "column": 8, + "column": 13, "line": 1, }, }, "range": Array [ - 8, - 9, + 13, + 14, ], "type": "Punctuator", - "value": "=", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 15, "line": 1, }, "start": Object { - "column": 10, + "column": 14, "line": 1, }, }, "range": Array [ - 10, - 11, + 14, + 15, ], - "type": "Punctuator", - "value": "[", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 16, "line": 1, }, "start": Object { - "column": 11, + "column": 15, "line": 1, }, }, "range": Array [ - 11, - 12, + 15, + 16, ], "type": "Punctuator", - "value": "]", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 18, "line": 1, }, "start": Object { - "column": 12, - "line": 1, - }, - }, - "range": Array [ - 12, - 13, - ], - "type": "Punctuator", - "value": ";", - }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/destructuring-and-blockBindings/object-const-named.src 1`] = ` -Object { - "body": Array [ - Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 7, - 8, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 7, - 10, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "name": "b", - "range": Array [ - 9, - 10, - ], - "type": "Identifier", - }, - }, - ], - "range": Array [ - 6, - 11, - ], - "type": "ObjectPattern", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "properties": Array [], - "range": Array [ - 14, - 16, - ], - "type": "ObjectExpression", - }, - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "range": Array [ - 6, - 16, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "const", - "loc": Object { - "end": Object { "column": 17, "line": 1, }, - "start": Object { - "column": 0, - "line": 1, - }, }, "range": Array [ - 0, 17, + 18, ], - "type": "VariableDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 17, - ], - "sourceType": "script", - "tokens": Array [ - Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 5, - ], - "type": "Keyword", - "value": "const", + "type": "Punctuator", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 20, "line": 1, }, "start": Object { - "column": 6, + "column": 19, "line": 1, }, }, "range": Array [ - 6, - 7, + 19, + 20, ], "type": "Punctuator", "value": "{", @@ -57855,35 +66092,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 8, + "column": 21, "line": 1, }, "start": Object { - "column": 7, + "column": 20, "line": 1, }, }, "range": Array [ - 7, - 8, + 20, + 21, ], "type": "Identifier", - "value": "a", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 22, "line": 1, }, "start": Object { - "column": 8, + "column": 21, "line": 1, }, }, "range": Array [ - 8, - 9, + 21, + 22, ], "type": "Punctuator", "value": ":", @@ -57891,35 +66128,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 10, + "column": 25, "line": 1, }, "start": Object { - "column": 9, + "column": 23, "line": 1, }, }, "range": Array [ - 9, - 10, + 23, + 25, ], - "type": "Identifier", - "value": "b", + "type": "Numeric", + "value": "10", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 26, "line": 1, }, "start": Object { - "column": 10, + "column": 25, "line": 1, }, }, "range": Array [ - 10, - 11, + 25, + 26, ], "type": "Punctuator", "value": "}", @@ -57927,35 +66164,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 13, + "column": 27, "line": 1, }, "start": Object { - "column": 12, + "column": 26, "line": 1, }, }, "range": Array [ - 12, - 13, + 26, + 27, ], "type": "Punctuator", - "value": "=", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 29, "line": 1, }, "start": Object { - "column": 14, + "column": 28, "line": 1, }, }, "range": Array [ - 14, - 15, + 28, + 29, ], "type": "Punctuator", "value": "{", @@ -57963,17 +66200,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 16, + "column": 30, "line": 1, }, "start": Object { - "column": 15, + "column": 29, "line": 1, }, }, "range": Array [ - 15, - 16, + 29, + 30, ], "type": "Punctuator", "value": "}", @@ -57981,17 +66218,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 17, + "column": 31, "line": 1, }, "start": Object { - "column": 16, + "column": 30, "line": 1, }, }, "range": Array [ - 16, - 17, + 30, + 31, ], "type": "Punctuator", "value": ";", @@ -58001,127 +66238,282 @@ Object { } `; -exports[`javascript fixtures/destructuring-and-blockBindings/object-const-undefined.src 1`] = ` +exports[`javascript fixtures/destructuring-and-defaultParams/param-object-short.src 1`] = ` Object { "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 7, - 8, - ], - "type": "Identifier", + "expression": Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 1, }, - "kind": "init", + "start": Object { + "column": 2, + "line": 1, + }, + }, + "name": "f", + "range": Array [ + 2, + 3, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 2, + "line": 1, + }, + }, + "method": true, + "range": Array [ + 2, + 21, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "async": false, + "body": Object { + "body": Array [], "loc": Object { "end": Object { - "column": 8, + "column": 21, "line": 1, }, "start": Object { - "column": 7, + "column": 19, "line": 1, }, }, - "method": false, "range": Array [ - 7, - 8, + 19, + 21, ], - "shorthand": true, - "type": "Property", - "value": Object { + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 3, + "line": 1, + }, + }, + "params": Array [ + Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 5, + 6, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + }, + }, + ], + "range": Array [ + 4, + 7, + ], + "type": "ObjectPattern", + }, "loc": Object { "end": Object { - "column": 8, + "column": 17, "line": 1, }, "start": Object { - "column": 7, + "column": 4, "line": 1, }, }, - "name": "a", "range": Array [ - 7, - 8, + 4, + 17, ], - "type": "Identifier", + "right": Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 11, + 12, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 11, + 16, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "range": Array [ + 14, + 16, + ], + "raw": "10", + "type": "Literal", + "value": 10, + }, + }, + ], + "range": Array [ + 10, + 17, + ], + "type": "ObjectExpression", + }, + "type": "AssignmentPattern", }, - }, - ], - "range": Array [ - 6, - 9, - ], - "type": "ObjectPattern", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "properties": Array [], - "range": Array [ - 12, - 14, - ], - "type": "ObjectExpression", - }, - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, + ], + "range": Array [ + 3, + 21, + ], + "type": "FunctionExpression", }, }, - "range": Array [ - 6, - 14, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "const", + ], + "range": Array [ + 1, + 22, + ], + "type": "ObjectExpression", + }, "loc": Object { "end": Object { - "column": 15, + "column": 24, "line": 1, }, "start": Object { @@ -58131,14 +66523,14 @@ Object { }, "range": Array [ 0, - 15, + 24, ], - "type": "VariableDeclaration", + "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 15, + "column": 24, "line": 1, }, "start": Object { @@ -58148,14 +66540,14 @@ Object { }, "range": Array [ 0, - 15, + 24, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 1, "line": 1, }, "start": Object { @@ -58165,25 +66557,25 @@ Object { }, "range": Array [ 0, - 5, + 1, ], - "type": "Keyword", - "value": "const", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 2, "line": 1, }, "start": Object { - "column": 6, + "column": 1, "line": 1, }, }, "range": Array [ - 6, - 7, + 1, + 2, ], "type": "Punctuator", "value": "{", @@ -58191,89 +66583,89 @@ Object { Object { "loc": Object { "end": Object { - "column": 8, + "column": 3, "line": 1, }, "start": Object { - "column": 7, + "column": 2, "line": 1, }, }, "range": Array [ - 7, - 8, + 2, + 3, ], "type": "Identifier", - "value": "a", + "value": "f", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 4, "line": 1, }, "start": Object { - "column": 8, + "column": 3, "line": 1, }, }, "range": Array [ - 8, - 9, + 3, + 4, ], "type": "Punctuator", - "value": "}", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 5, "line": 1, }, "start": Object { - "column": 10, + "column": 4, "line": 1, }, }, "range": Array [ - 10, - 11, + 4, + 5, ], "type": "Punctuator", - "value": "=", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 6, "line": 1, }, "start": Object { - "column": 12, + "column": 5, "line": 1, }, }, "range": Array [ - 12, - 13, + 5, + 6, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 7, "line": 1, }, "start": Object { - "column": 13, + "column": 6, "line": 1, }, }, "range": Array [ - 13, - 14, + 6, + 7, ], "type": "Punctuator", "value": "}", @@ -58281,353 +66673,215 @@ Object { Object { "loc": Object { "end": Object { - "column": 15, + "column": 9, "line": 1, }, "start": Object { - "column": 14, + "column": 8, "line": 1, }, }, "range": Array [ - 14, - 15, + 8, + 9, ], "type": "Punctuator", - "value": ";", + "value": "=", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/destructuring-and-blockBindings/object-let-named.src 1`] = ` -Object { - "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 5, - 6, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 5, - 8, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, - }, - "name": "b", - "range": Array [ - 7, - 8, - ], - "type": "Identifier", - }, - }, - ], - "range": Array [ - 4, - 9, - ], - "type": "ObjectPattern", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "properties": Array [], - "range": Array [ - 12, - 14, - ], - "type": "ObjectExpression", - }, - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 14, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "let", "loc": Object { "end": Object { - "column": 15, + "column": 11, "line": 1, }, "start": Object { - "column": 0, + "column": 10, "line": 1, }, }, "range": Array [ - 0, - 15, - ], - "type": "VariableDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 15, - ], - "sourceType": "script", - "tokens": Array [ + 10, + 11, + ], + "type": "Punctuator", + "value": "{", + }, Object { "loc": Object { "end": Object { - "column": 3, + "column": 12, "line": 1, }, "start": Object { - "column": 0, + "column": 11, "line": 1, }, }, "range": Array [ - 0, - 3, + 11, + 12, ], - "type": "Keyword", - "value": "let", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 13, "line": 1, }, "start": Object { - "column": 4, + "column": 12, "line": 1, }, }, "range": Array [ - 4, - 5, + 12, + 13, ], "type": "Punctuator", - "value": "{", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 6, + "column": 16, "line": 1, }, "start": Object { - "column": 5, + "column": 14, "line": 1, }, }, "range": Array [ - 5, - 6, + 14, + 16, ], - "type": "Identifier", - "value": "a", + "type": "Numeric", + "value": "10", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 17, "line": 1, }, "start": Object { - "column": 6, + "column": 16, "line": 1, }, }, "range": Array [ - 6, - 7, + 16, + 17, ], "type": "Punctuator", - "value": ":", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 18, "line": 1, }, "start": Object { - "column": 7, + "column": 17, "line": 1, }, }, "range": Array [ - 7, - 8, + 17, + 18, ], - "type": "Identifier", - "value": "b", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 20, "line": 1, }, "start": Object { - "column": 8, + "column": 19, "line": 1, }, }, "range": Array [ - 8, - 9, + 19, + 20, ], "type": "Punctuator", - "value": "}", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 21, "line": 1, }, "start": Object { - "column": 10, + "column": 20, "line": 1, }, }, "range": Array [ - 10, - 11, + 20, + 21, ], "type": "Punctuator", - "value": "=", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 22, "line": 1, }, "start": Object { - "column": 12, + "column": 21, "line": 1, }, }, "range": Array [ - 12, - 13, + 21, + 22, ], "type": "Punctuator", - "value": "{", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 23, "line": 1, }, "start": Object { - "column": 13, + "column": 22, "line": 1, }, }, "range": Array [ - 13, - 14, + 22, + 23, ], "type": "Punctuator", - "value": "}", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 24, "line": 1, }, "start": Object { - "column": 14, + "column": 23, "line": 1, }, }, "range": Array [ - 14, - 15, + 23, + 24, ], "type": "Punctuator", "value": ";", @@ -58637,189 +66891,434 @@ Object { } `; -exports[`javascript fixtures/destructuring-and-blockBindings/object-let-undefined.src 1`] = ` +exports[`javascript fixtures/destructuring-and-defaultParams/param-object-wrapped.src 1`] = ` Object { "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { + "expression": Object { + "loc": Object { + "end": Object { + "column": 32, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 1, + }, + "start": Object { + "column": 2, + "line": 1, + }, + }, + "name": "f", + "range": Array [ + 2, + 3, + ], + "type": "Identifier", + }, + "kind": "init", "loc": Object { "end": Object { - "column": 7, + "column": 31, "line": 1, }, "start": Object { - "column": 4, + "column": 2, "line": 1, }, }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 5, - 6, - ], - "type": "Identifier", - }, - "kind": "init", + "method": false, + "range": Array [ + 2, + 31, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "async": false, + "body": Object { + "body": Array [], "loc": Object { "end": Object { - "column": 6, + "column": 31, "line": 1, }, "start": Object { - "column": 5, + "column": 29, "line": 1, }, }, - "method": false, "range": Array [ - 5, - 6, + 29, + 31, ], - "shorthand": true, - "type": "Property", - "value": Object { + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "params": Array [ + Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 15, + 16, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 15, + 16, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 15, + 16, + ], + "type": "Identifier", + }, + }, + ], + "range": Array [ + 14, + 17, + ], + "type": "ObjectPattern", + }, "loc": Object { "end": Object { - "column": 6, + "column": 27, "line": 1, }, "start": Object { - "column": 5, + "column": 14, "line": 1, }, }, - "name": "a", "range": Array [ - 5, - 6, + 14, + 27, ], - "type": "Identifier", + "right": Object { + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 21, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 21, + 22, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 21, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 21, + 26, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, + }, + }, + "range": Array [ + 24, + 26, + ], + "raw": "10", + "type": "Literal", + "value": 10, + }, + }, + ], + "range": Array [ + 20, + 27, + ], + "type": "ObjectExpression", + }, + "type": "AssignmentPattern", }, - }, - ], - "range": Array [ - 4, - 7, - ], - "type": "ObjectPattern", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "properties": Array [], - "range": Array [ - 10, - 12, - ], - "type": "ObjectExpression", - }, - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, + ], + "range": Array [ + 5, + 31, + ], + "type": "FunctionExpression", }, }, - "range": Array [ - 4, - 12, - ], - "type": "VariableDeclarator", + ], + "range": Array [ + 1, + 32, + ], + "type": "ObjectExpression", + }, + "loc": Object { + "end": Object { + "column": 34, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 34, + ], + "type": "ExpressionStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 34, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 34, + ], + "sourceType": "script", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 1, + ], + "type": "Punctuator", + "value": "(", + }, + Object { + "loc": Object { + "end": Object { + "column": 2, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "range": Array [ + 1, + 2, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 1, + }, + "start": Object { + "column": 2, + "line": 1, + }, + }, + "range": Array [ + 2, + 3, + ], + "type": "Identifier", + "value": "f", + }, + Object { + "loc": Object { + "end": Object { + "column": 4, + "line": 1, + }, + "start": Object { + "column": 3, + "line": 1, }, + }, + "range": Array [ + 3, + 4, ], - "kind": "let", + "type": "Punctuator", + "value": ":", + }, + Object { "loc": Object { "end": Object { "column": 13, "line": 1, }, "start": Object { - "column": 0, + "column": 5, "line": 1, }, }, "range": Array [ - 0, + 5, 13, ], - "type": "VariableDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Keyword", + "value": "function", }, - }, - "range": Array [ - 0, - 13, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, + "column": 14, "line": 1, }, "start": Object { - "column": 0, + "column": 13, "line": 1, }, }, "range": Array [ - 0, - 3, + 13, + 14, ], - "type": "Keyword", - "value": "let", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 15, "line": 1, }, "start": Object { - "column": 4, + "column": 14, "line": 1, }, }, "range": Array [ - 4, - 5, + 14, + 15, ], "type": "Punctuator", "value": "{", @@ -58827,35 +67326,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 6, + "column": 16, "line": 1, }, "start": Object { - "column": 5, + "column": 15, "line": 1, }, }, "range": Array [ - 5, - 6, + 15, + 16, ], "type": "Identifier", - "value": "a", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 17, "line": 1, }, "start": Object { - "column": 6, + "column": 16, "line": 1, }, }, "range": Array [ - 6, - 7, + 16, + 17, ], "type": "Punctuator", "value": "}", @@ -58863,17 +67362,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 9, + "column": 19, "line": 1, }, "start": Object { - "column": 8, + "column": 18, "line": 1, }, }, "range": Array [ - 8, - 9, + 18, + 19, ], "type": "Punctuator", "value": "=", @@ -58881,17 +67380,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 11, + "column": 21, "line": 1, }, "start": Object { - "column": 10, + "column": 20, "line": 1, }, }, "range": Array [ - 10, - 11, + 20, + 21, ], "type": "Punctuator", "value": "{", @@ -58899,371 +67398,348 @@ Object { Object { "loc": Object { "end": Object { - "column": 12, + "column": 22, "line": 1, }, "start": Object { - "column": 11, + "column": 21, "line": 1, }, }, "range": Array [ - 11, - 12, + 21, + 22, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 23, "line": 1, }, "start": Object { - "column": 12, + "column": 22, "line": 1, }, }, "range": Array [ - 12, - 13, + 22, + 23, ], "type": "Punctuator", - "value": ";", + "value": ":", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/destructuring-and-defaultParams/param-array.src 1`] = ` -Object { - "body": Array [ Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 24, - "line": 1, - }, - "start": Object { - "column": 22, - "line": 1, - }, + "loc": Object { + "end": Object { + "column": 26, + "line": 1, }, - "range": Array [ - 22, - 24, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, + "start": Object { + "column": 24, + "line": 1, }, - "name": "f", - "range": Array [ - 9, - 10, - ], - "type": "Identifier", }, + "range": Array [ + 24, + 26, + ], + "type": "Numeric", + "value": "10", + }, + Object { "loc": Object { "end": Object { - "column": 24, + "column": 27, "line": 1, }, "start": Object { - "column": 0, + "column": 26, "line": 1, }, }, - "params": Array [ - Object { - "left": Object { - "elements": Array [ - Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 12, - 13, - ], - "type": "Identifier", - }, - ], - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "range": Array [ - 11, - 14, - ], - "type": "ArrayPattern", - }, - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "range": Array [ - 11, - 20, - ], - "right": Object { - "elements": Array [ - Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, - }, - "range": Array [ - 18, - 19, - ], - "raw": "1", - "type": "Literal", - "value": 1, - }, - ], - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 17, - "line": 1, - }, - }, - "range": Array [ - 17, - 20, - ], - "type": "ArrayExpression", - }, - "type": "AssignmentPattern", - }, - ], "range": Array [ - 0, - 24, + 26, + 27, ], - "type": "FunctionDeclaration", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 25, + "column": 28, "line": 1, }, "start": Object { - "column": 24, + "column": 27, "line": 1, }, }, "range": Array [ - 24, - 25, + 27, + 28, ], - "type": "EmptyStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 25, - "line": 1, + "type": "Punctuator", + "value": ")", }, - "start": Object { - "column": 0, - "line": 1, + Object { + "loc": Object { + "end": Object { + "column": 30, + "line": 1, + }, + "start": Object { + "column": 29, + "line": 1, + }, + }, + "range": Array [ + 29, + 30, + ], + "type": "Punctuator", + "value": "{", }, - }, - "range": Array [ - 0, - 25, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 8, + "column": 31, "line": 1, }, "start": Object { - "column": 0, + "column": 30, "line": 1, }, }, "range": Array [ - 0, - 8, + 30, + 31, ], - "type": "Keyword", - "value": "function", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 32, "line": 1, }, "start": Object { - "column": 9, + "column": 31, "line": 1, }, }, "range": Array [ - 9, - 10, + 31, + 32, ], - "type": "Identifier", - "value": "f", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 33, "line": 1, }, "start": Object { - "column": 10, + "column": 32, "line": 1, }, }, "range": Array [ - 10, - 11, + 32, + 33, ], "type": "Punctuator", - "value": "(", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 34, "line": 1, }, "start": Object { - "column": 11, + "column": 33, "line": 1, }, }, "range": Array [ - 11, - 12, + 33, + 34, ], "type": "Punctuator", - "value": "[", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/destructuring-and-forOf/loop.src 1`] = ` +Object { + "body": Array [ Object { + "await": false, + "body": Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "range": Array [ + 16, + 17, + ], + "type": "EmptyStatement", + }, + "left": Object { + "elements": Array [ + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", + }, + ], + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "range": Array [ + 5, + 8, + ], + "type": "ArrayPattern", + }, "loc": Object { "end": Object { - "column": 13, + "column": 17, "line": 1, }, "start": Object { - "column": 12, + "column": 0, "line": 1, }, }, "range": Array [ - 12, - 13, + 0, + 17, ], - "type": "Identifier", - "value": "x", + "right": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "name": "foo", + "range": Array [ + 12, + 15, + ], + "type": "Identifier", + }, + "type": "ForOfStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 18, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 14, + "column": 3, "line": 1, }, "start": Object { - "column": 13, + "column": 0, "line": 1, }, }, "range": Array [ - 13, - 14, + 0, + 3, ], - "type": "Punctuator", - "value": "]", + "type": "Keyword", + "value": "for", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 5, "line": 1, }, "start": Object { - "column": 15, + "column": 4, "line": 1, }, }, "range": Array [ - 15, - 16, + 4, + 5, ], "type": "Punctuator", - "value": "=", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 6, "line": 1, }, "start": Object { - "column": 17, + "column": 5, "line": 1, }, }, "range": Array [ - 17, - 18, + 5, + 6, ], "type": "Punctuator", "value": "[", @@ -59271,35 +67747,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 19, + "column": 7, "line": 1, }, "start": Object { - "column": 18, + "column": 6, "line": 1, }, }, "range": Array [ - 18, - 19, + 6, + 7, ], - "type": "Numeric", - "value": "1", + "type": "Identifier", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 20, + "column": 8, "line": 1, }, "start": Object { - "column": 19, + "column": 7, "line": 1, }, }, "range": Array [ - 19, - 20, + 7, + 8, ], "type": "Punctuator", "value": "]", @@ -59307,71 +67783,71 @@ Object { Object { "loc": Object { "end": Object { - "column": 21, + "column": 11, "line": 1, }, "start": Object { - "column": 20, + "column": 9, "line": 1, }, }, "range": Array [ - 20, - 21, + 9, + 11, ], - "type": "Punctuator", - "value": ")", + "type": "Identifier", + "value": "of", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 15, "line": 1, }, "start": Object { - "column": 22, + "column": 12, "line": 1, }, }, "range": Array [ - 22, - 23, + 12, + 15, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 24, + "column": 16, "line": 1, }, "start": Object { - "column": 23, + "column": 15, "line": 1, }, }, "range": Array [ - 23, - 24, + 15, + 16, ], "type": "Punctuator", - "value": "}", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 25, + "column": 17, "line": 1, }, "start": Object { - "column": 24, + "column": 16, "line": 1, }, }, "range": Array [ - 24, - 25, + 16, + 17, ], "type": "Punctuator", "value": ";", @@ -59381,376 +67857,298 @@ Object { } `; -exports[`javascript fixtures/destructuring-and-defaultParams/param-object.src 1`] = ` +exports[`javascript fixtures/destructuring-and-spread/complex-destructured.src 1`] = ` Object { "body": Array [ Object { "expression": Object { "left": Object { - "loc": Object { - "end": Object { - "column": 1, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "name": "f", - "range": Array [ - 0, - 1, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 30, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "operator": "=", - "range": Array [ - 0, - 30, - ], - "right": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 30, - "line": 1, - }, - "start": Object { - "column": 28, - "line": 1, - }, - }, - "range": Array [ - 28, - 30, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 30, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "params": Array [ + "elements": Array [ Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, + "loc": Object { + "end": Object { + "column": 9, + "line": 1, }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 14, - 15, - ], - "type": "Identifier", - }, - "kind": "init", + "start": Object { + "column": 1, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { "loc": Object { "end": Object { - "column": 15, + "column": 4, "line": 1, }, "start": Object { - "column": 14, + "column": 3, "line": 1, }, }, - "method": false, + "name": "a", "range": Array [ - 14, - 15, + 3, + 4, ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 14, - 15, - ], - "type": "Identifier", - }, - }, - ], - "range": Array [ - 13, - 16, - ], - "type": "ObjectPattern", - }, - "loc": Object { - "end": Object { - "column": 26, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "range": Array [ - 13, - 26, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 26, - "line": 1, + "type": "Identifier", }, - "start": Object { - "column": 19, - "line": 1, + "kind": "init", + "loc": Object { + "end": Object { + "column": 4, + "line": 1, + }, + "start": Object { + "column": 3, + "line": 1, + }, }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, + "method": false, + "range": Array [ + 3, + 4, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 4, + "line": 1, + }, + "start": Object { + "column": 3, + "line": 1, }, - "name": "x", - "range": Array [ - 20, - 21, - ], - "type": "Identifier", }, - "kind": "init", + "name": "a", + "range": Array [ + 3, + 4, + ], + "type": "Identifier", + }, + }, + Object { + "computed": false, + "key": Object { "loc": Object { "end": Object { - "column": 25, + "column": 7, "line": 1, }, "start": Object { - "column": 20, + "column": 6, "line": 1, }, }, - "method": false, + "name": "b", "range": Array [ - 20, - 25, + 6, + 7, ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 25, - "line": 1, - }, - "start": Object { - "column": 23, - "line": 1, - }, + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 6, + 7, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, }, - "range": Array [ - 23, - 25, - ], - "raw": "10", - "type": "Literal", - "value": 10, }, + "name": "b", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", }, - ], + }, + ], + "range": Array [ + 1, + 9, + ], + "type": "ObjectPattern", + }, + Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "name": "c", "range": Array [ - 19, - 26, + 14, + 15, ], - "type": "ObjectExpression", + "type": "Identifier", }, - "type": "AssignmentPattern", + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 15, + ], + "type": "RestElement", }, ], + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, "range": Array [ - 4, - 30, + 0, + 16, ], - "type": "FunctionExpression", - }, - "type": "AssignmentExpression", - }, - "loc": Object { - "end": Object { - "column": 31, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 31, - ], - "type": "ExpressionStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 31, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 31, - ], - "sourceType": "script", - "tokens": Array [ - Object { - "loc": Object { - "end": Object { - "column": 1, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "ArrayPattern", }, - }, - "range": Array [ - 0, - 1, - ], - "type": "Identifier", - "value": "f", - }, - Object { - "loc": Object { - "end": Object { - "column": 3, - "line": 1, + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, }, - "start": Object { - "column": 2, - "line": 1, + "operator": "=", + "range": Array [ + 0, + 20, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 19, + "line": 1, + }, + }, + "name": "d", + "range": Array [ + 19, + 20, + ], + "type": "Identifier", }, + "type": "AssignmentExpression", }, - "range": Array [ - 2, - 3, - ], - "type": "Punctuator", - "value": "=", - }, - Object { "loc": Object { "end": Object { - "column": 12, + "column": 21, "line": 1, }, "start": Object { - "column": 4, + "column": 0, "line": 1, }, }, "range": Array [ - 4, - 12, + 0, + 21, ], - "type": "Keyword", - "value": "function", + "type": "ExpressionStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 21, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 13, + "column": 1, "line": 1, }, "start": Object { - "column": 12, + "column": 0, "line": 1, }, }, "range": Array [ - 12, - 13, + 0, + 1, ], "type": "Punctuator", - "value": "(", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 2, "line": 1, }, "start": Object { - "column": 13, + "column": 1, "line": 1, }, }, "range": Array [ - 13, - 14, + 1, + 2, ], "type": "Punctuator", "value": "{", @@ -59758,215 +68156,197 @@ Object { Object { "loc": Object { "end": Object { - "column": 15, + "column": 4, "line": 1, }, "start": Object { - "column": 14, + "column": 3, "line": 1, }, }, "range": Array [ - 14, - 15, + 3, + 4, ], "type": "Identifier", - "value": "x", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 5, "line": 1, }, "start": Object { - "column": 15, + "column": 4, "line": 1, }, }, "range": Array [ - 15, - 16, + 4, + 5, ], "type": "Punctuator", - "value": "}", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 7, "line": 1, }, "start": Object { - "column": 17, + "column": 6, "line": 1, }, }, "range": Array [ - 17, - 18, + 6, + 7, ], - "type": "Punctuator", - "value": "=", + "type": "Identifier", + "value": "b", }, Object { "loc": Object { "end": Object { - "column": 20, + "column": 9, "line": 1, }, "start": Object { - "column": 19, + "column": 8, "line": 1, }, }, "range": Array [ - 19, - 20, + 8, + 9, ], "type": "Punctuator", - "value": "{", - }, - Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, - }, - "range": Array [ - 20, - 21, - ], - "type": "Identifier", - "value": "x", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 22, + "column": 10, "line": 1, }, "start": Object { - "column": 21, + "column": 9, "line": 1, }, }, "range": Array [ - 21, - 22, + 9, + 10, ], "type": "Punctuator", - "value": ":", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 25, + "column": 14, "line": 1, }, "start": Object { - "column": 23, + "column": 11, "line": 1, }, }, "range": Array [ - 23, - 25, + 11, + 14, ], - "type": "Numeric", - "value": "10", + "type": "Punctuator", + "value": "...", }, Object { "loc": Object { "end": Object { - "column": 26, + "column": 15, "line": 1, }, "start": Object { - "column": 25, + "column": 14, "line": 1, }, }, "range": Array [ - 25, - 26, + 14, + 15, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "c", }, Object { "loc": Object { "end": Object { - "column": 27, + "column": 16, "line": 1, }, "start": Object { - "column": 26, + "column": 15, "line": 1, }, }, "range": Array [ - 26, - 27, + 15, + 16, ], "type": "Punctuator", - "value": ")", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 29, + "column": 18, "line": 1, }, "start": Object { - "column": 28, + "column": 17, "line": 1, }, }, "range": Array [ - 28, - 29, + 17, + 18, ], "type": "Punctuator", - "value": "{", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 30, + "column": 20, "line": 1, }, "start": Object { - "column": 29, + "column": 19, "line": 1, }, }, "range": Array [ - 29, - 30, + 19, + 20, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "d", }, Object { "loc": Object { "end": Object { - "column": 31, + "column": 21, "line": 1, }, "start": Object { - "column": 30, + "column": 20, "line": 1, }, }, "range": Array [ - 30, - 31, + 20, + 21, ], "type": "Punctuator", "value": ";", @@ -59976,282 +68356,158 @@ Object { } `; -exports[`javascript fixtures/destructuring-and-defaultParams/param-object-short.src 1`] = ` +exports[`javascript fixtures/destructuring-and-spread/destructured-array-literal.src 1`] = ` Object { "body": Array [ Object { "expression": Object { - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 1, - "line": 1, - }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { + "left": Object { + "elements": Array [ + Object { "loc": Object { "end": Object { - "column": 3, + "column": 2, "line": 1, }, "start": Object { - "column": 2, + "column": 1, "line": 1, }, }, - "name": "f", + "name": "a", "range": Array [ + 1, 2, - 3, ], "type": "Identifier", }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 2, - "line": 1, - }, - }, - "method": true, - "range": Array [ - 2, - 21, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 19, - "line": 1, - }, - }, - "range": Array [ - 19, - 21, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 3, - "line": 1, - }, - }, - "params": Array [ - Object { - "left": Object { + Object { + "argument": Object { + "elements": Array [ + Object { "loc": Object { "end": Object { - "column": 7, + "column": 9, "line": 1, }, "start": Object { - "column": 4, + "column": 8, "line": 1, }, }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 5, - 6, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 5, - 6, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 5, - 6, - ], - "type": "Identifier", - }, - }, - ], + "name": "b", "range": Array [ - 4, - 7, + 8, + 9, ], - "type": "ObjectPattern", - }, - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, + "type": "Identifier", }, - "range": Array [ - 4, - 17, - ], - "right": Object { + Object { "loc": Object { "end": Object { - "column": 17, + "column": 12, "line": 1, }, "start": Object { - "column": 10, + "column": 11, "line": 1, }, }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 11, - 12, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 11, - 16, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "range": Array [ - 14, - 16, - ], - "raw": "10", - "type": "Literal", - "value": 10, - }, - }, - ], + "name": "c", "range": Array [ - 10, - 17, + 11, + 12, ], - "type": "ObjectExpression", + "type": "Identifier", + }, + ], + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, }, - "type": "AssignmentPattern", }, - ], + "range": Array [ + 7, + 13, + ], + "type": "ArrayPattern", + }, + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, "range": Array [ - 3, - 21, + 4, + 13, ], - "type": "FunctionExpression", + "type": "RestElement", + }, + ], + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, }, }, - ], + "range": Array [ + 0, + 14, + ], + "type": "ArrayPattern", + }, + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "operator": "=", "range": Array [ - 1, - 22, + 0, + 18, ], - "type": "ObjectExpression", + "right": Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "name": "d", + "range": Array [ + 17, + 18, + ], + "type": "Identifier", + }, + "type": "AssignmentExpression", }, "loc": Object { "end": Object { - "column": 24, + "column": 19, "line": 1, }, "start": Object { @@ -60261,15 +68517,15 @@ Object { }, "range": Array [ 0, - 24, + 19, ], "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 24, - "line": 1, + "column": 0, + "line": 2, }, "start": Object { "column": 0, @@ -60278,7 +68534,7 @@ Object { }, "range": Array [ 0, - 24, + 20, ], "sourceType": "script", "tokens": Array [ @@ -60298,7 +68554,7 @@ Object { 1, ], "type": "Punctuator", - "value": "(", + "value": "[", }, Object { "loc": Object { @@ -60315,8 +68571,8 @@ Object { 1, 2, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "a", }, Object { "loc": Object { @@ -60333,31 +68589,13 @@ Object { 2, 3, ], - "type": "Identifier", - "value": "f", - }, - Object { - "loc": Object { - "end": Object { - "column": 4, - "line": 1, - }, - "start": Object { - "column": 3, - "line": 1, - }, - }, - "range": Array [ - 3, - 4, - ], "type": "Punctuator", - "value": "(", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 7, "line": 1, }, "start": Object { @@ -60367,46 +68605,28 @@ Object { }, "range": Array [ 4, - 5, + 7, ], "type": "Punctuator", - "value": "{", + "value": "...", }, Object { "loc": Object { "end": Object { - "column": 6, + "column": 8, "line": 1, }, "start": Object { - "column": 5, - "line": 1, - }, - }, - "range": Array [ - 5, - 6, - ], - "type": "Identifier", - "value": "x", - }, - Object { - "loc": Object { - "end": Object { "column": 7, "line": 1, }, - "start": Object { - "column": 6, - "line": 1, - }, }, "range": Array [ - 6, 7, + 8, ], "type": "Punctuator", - "value": "}", + "value": "[", }, Object { "loc": Object { @@ -60423,26 +68643,26 @@ Object { 8, 9, ], - "type": "Punctuator", - "value": "=", + "type": "Identifier", + "value": "b", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 10, "line": 1, }, "start": Object { - "column": 10, + "column": 9, "line": 1, }, }, "range": Array [ + 9, 10, - 11, ], "type": "Punctuator", - "value": "{", + "value": ",", }, Object { "loc": Object { @@ -60460,7 +68680,7 @@ Object { 12, ], "type": "Identifier", - "value": "x", + "value": "c", }, Object { "loc": Object { @@ -60478,43 +68698,43 @@ Object { 13, ], "type": "Punctuator", - "value": ":", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 14, "line": 1, }, "start": Object { - "column": 14, + "column": 13, "line": 1, }, }, "range": Array [ + 13, 14, - 16, ], - "type": "Numeric", - "value": "10", + "type": "Punctuator", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 16, "line": 1, }, "start": Object { - "column": 16, + "column": 15, "line": 1, }, }, "range": Array [ + 15, 16, - 17, ], "type": "Punctuator", - "value": "}", + "value": "=", }, Object { "loc": Object { @@ -60531,95 +68751,23 @@ Object { 17, 18, ], - "type": "Punctuator", - "value": ")", + "type": "Identifier", + "value": "d", }, Object { "loc": Object { "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { "column": 19, "line": 1, }, - }, - "range": Array [ - 19, - 20, - ], - "type": "Punctuator", - "value": "{", - }, - Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, "start": Object { - "column": 20, - "line": 1, - }, - }, - "range": Array [ - 20, - 21, - ], - "type": "Punctuator", - "value": "}", - }, - Object { - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 21, - "line": 1, - }, - }, - "range": Array [ - 21, - 22, - ], - "type": "Punctuator", - "value": "}", - }, - Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 22, - "line": 1, - }, - }, - "range": Array [ - 22, - 23, - ], - "type": "Punctuator", - "value": ")", - }, - Object { - "loc": Object { - "end": Object { - "column": 24, - "line": 1, - }, - "start": Object { - "column": 23, + "column": 18, "line": 1, }, }, "range": Array [ - 23, - 24, + 18, + 19, ], "type": "Punctuator", "value": ";", @@ -60629,299 +68777,197 @@ Object { } `; -exports[`javascript fixtures/destructuring-and-defaultParams/param-object-wrapped.src 1`] = ` +exports[`javascript fixtures/destructuring-and-spread/destructuring-param.src 1`] = ` Object { "body": Array [ Object { - "expression": Object { + "async": false, + "body": Object { + "body": Array [], "loc": Object { "end": Object { - "column": 32, + "column": 30, "line": 1, }, "start": Object { - "column": 1, + "column": 28, "line": 1, }, }, - "properties": Array [ - Object { - "computed": false, - "key": Object { + "range": Array [ + 28, + 30, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 9, + 10, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 30, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "params": Array [ + Object { + "elements": Array [ + Object { "loc": Object { "end": Object { - "column": 3, + "column": 13, "line": 1, }, "start": Object { - "column": 2, + "column": 12, "line": 1, }, }, - "name": "f", + "name": "a", "range": Array [ - 2, - 3, + 12, + 13, ], "type": "Identifier", }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 31, - "line": 1, - }, - "start": Object { - "column": 2, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 2, - 31, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 31, - "line": 1, - }, - "start": Object { - "column": 29, - "line": 1, - }, - }, - "range": Array [ - 29, - 31, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, + Object { "loc": Object { "end": Object { - "column": 31, + "column": 16, "line": 1, }, "start": Object { - "column": 5, + "column": 15, "line": 1, }, }, - "params": Array [ - Object { - "left": Object { + "name": "b", + "range": Array [ + 15, + 16, + ], + "type": "Identifier", + }, + Object { + "argument": Object { + "elements": Array [ + Object { "loc": Object { "end": Object { - "column": 17, + "column": 24, "line": 1, }, "start": Object { - "column": 14, + "column": 22, "line": 1, }, }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 15, - 16, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 15, - 16, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 15, - 16, - ], - "type": "Identifier", - }, - }, - ], + "name": "ok", "range": Array [ - 14, - 17, + 22, + 24, ], - "type": "ObjectPattern", + "type": "Identifier", }, - "loc": Object { - "end": Object { - "column": 27, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, + ], + "loc": Object { + "end": Object { + "column": 25, + "line": 1, }, - "range": Array [ - 14, - 27, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 27, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 21, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 21, - 22, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 26, - "line": 1, - }, - "start": Object { - "column": 21, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 21, - 26, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 26, - "line": 1, - }, - "start": Object { - "column": 24, - "line": 1, - }, - }, - "range": Array [ - 24, - 26, - ], - "raw": "10", - "type": "Literal", - "value": 10, - }, - }, - ], - "range": Array [ - 20, - 27, - ], - "type": "ObjectExpression", + "start": Object { + "column": 21, + "line": 1, }, - "type": "AssignmentPattern", }, - ], + "range": Array [ + 21, + 25, + ], + "type": "ArrayPattern", + }, + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, "range": Array [ - 5, - 31, + 18, + 25, ], - "type": "FunctionExpression", + "type": "RestElement", + }, + ], + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, }, }, - ], - "range": Array [ - 1, - 32, - ], - "type": "ObjectExpression", - }, + "range": Array [ + 11, + 26, + ], + "type": "ArrayPattern", + }, + ], + "range": Array [ + 0, + 30, + ], + "type": "FunctionDeclaration", + }, + Object { "loc": Object { "end": Object { - "column": 34, + "column": 31, "line": 1, }, "start": Object { - "column": 0, + "column": 30, "line": 1, }, }, "range": Array [ - 0, - 34, + 30, + 31, ], - "type": "ExpressionStatement", + "type": "EmptyStatement", }, ], "loc": Object { "end": Object { - "column": 34, + "column": 31, "line": 1, }, "start": Object { @@ -60931,14 +68977,14 @@ Object { }, "range": Array [ 0, - 34, + 31, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, + "column": 8, "line": 1, }, "start": Object { @@ -60948,64 +68994,64 @@ Object { }, "range": Array [ 0, - 1, + 8, ], - "type": "Punctuator", - "value": "(", + "type": "Keyword", + "value": "function", }, Object { "loc": Object { "end": Object { - "column": 2, + "column": 10, "line": 1, }, "start": Object { - "column": 1, + "column": 9, "line": 1, }, }, "range": Array [ - 1, - 2, + 9, + 10, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 3, + "column": 11, "line": 1, }, "start": Object { - "column": 2, + "column": 10, "line": 1, }, }, "range": Array [ - 2, - 3, + 10, + 11, ], - "type": "Identifier", - "value": "f", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 4, + "column": 12, "line": 1, }, "start": Object { - "column": 3, + "column": 11, "line": 1, }, }, "range": Array [ - 3, - 4, + 11, + 12, ], "type": "Punctuator", - "value": ":", + "value": "[", }, Object { "loc": Object { @@ -61014,16 +69060,16 @@ Object { "line": 1, }, "start": Object { - "column": 5, + "column": 12, "line": 1, }, }, "range": Array [ - 5, + 12, 13, ], - "type": "Keyword", - "value": "function", + "type": "Identifier", + "value": "a", }, Object { "loc": Object { @@ -61041,25 +69087,7 @@ Object { 14, ], "type": "Punctuator", - "value": "(", - }, - Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "range": Array [ - 14, - 15, - ], - "type": "Punctuator", - "value": "{", + "value": ",", }, Object { "loc": Object { @@ -61077,7 +69105,7 @@ Object { 16, ], "type": "Identifier", - "value": "x", + "value": "b", }, Object { "loc": Object { @@ -61095,12 +69123,12 @@ Object { 17, ], "type": "Punctuator", - "value": "}", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 19, + "column": 21, "line": 1, }, "start": Object { @@ -61110,64 +69138,64 @@ Object { }, "range": Array [ 18, - 19, + 21, ], "type": "Punctuator", - "value": "=", + "value": "...", }, Object { "loc": Object { "end": Object { - "column": 21, + "column": 22, "line": 1, }, "start": Object { - "column": 20, + "column": 21, "line": 1, }, }, "range": Array [ - 20, 21, + 22, ], "type": "Punctuator", - "value": "{", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 22, + "column": 24, "line": 1, }, "start": Object { - "column": 21, + "column": 22, "line": 1, }, }, "range": Array [ - 21, 22, + 24, ], "type": "Identifier", - "value": "x", + "value": "ok", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 25, "line": 1, }, "start": Object { - "column": 22, + "column": 24, "line": 1, }, }, "range": Array [ - 22, - 23, + 24, + 25, ], "type": "Punctuator", - "value": ":", + "value": "]", }, Object { "loc": Object { @@ -61176,16 +69204,16 @@ Object { "line": 1, }, "start": Object { - "column": 24, + "column": 25, "line": 1, }, }, "range": Array [ - 24, + 25, 26, ], - "type": "Numeric", - "value": "10", + "type": "Punctuator", + "value": "]", }, Object { "loc": Object { @@ -61203,25 +69231,25 @@ Object { 27, ], "type": "Punctuator", - "value": "}", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 28, + "column": 29, "line": 1, }, "start": Object { - "column": 27, + "column": 28, "line": 1, }, }, "range": Array [ - 27, 28, + 29, ], "type": "Punctuator", - "value": ")", + "value": "{", }, Object { "loc": Object { @@ -61239,7 +69267,7 @@ Object { 30, ], "type": "Punctuator", - "value": "{", + "value": "}", }, Object { "loc": Object { @@ -61257,337 +69285,6 @@ Object { 31, ], "type": "Punctuator", - "value": "}", - }, - Object { - "loc": Object { - "end": Object { - "column": 32, - "line": 1, - }, - "start": Object { - "column": 31, - "line": 1, - }, - }, - "range": Array [ - 31, - 32, - ], - "type": "Punctuator", - "value": "}", - }, - Object { - "loc": Object { - "end": Object { - "column": 33, - "line": 1, - }, - "start": Object { - "column": 32, - "line": 1, - }, - }, - "range": Array [ - 32, - 33, - ], - "type": "Punctuator", - "value": ")", - }, - Object { - "loc": Object { - "end": Object { - "column": 34, - "line": 1, - }, - "start": Object { - "column": 33, - "line": 1, - }, - }, - "range": Array [ - 33, - 34, - ], - "type": "Punctuator", - "value": ";", - }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/destructuring-and-forOf/loop.src 1`] = ` -Object { - "body": Array [ - Object { - "await": false, - "body": Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "range": Array [ - 16, - 17, - ], - "type": "EmptyStatement", - }, - "left": Object { - "elements": Array [ - Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 6, - 7, - ], - "type": "Identifier", - }, - ], - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "range": Array [ - 5, - 8, - ], - "type": "ArrayPattern", - }, - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 17, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "name": "foo", - "range": Array [ - 12, - 15, - ], - "type": "Identifier", - }, - "type": "ForOfStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 18, - ], - "sourceType": "script", - "tokens": Array [ - Object { - "loc": Object { - "end": Object { - "column": 3, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 3, - ], - "type": "Keyword", - "value": "for", - }, - Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 5, - ], - "type": "Punctuator", - "value": "(", - }, - Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "range": Array [ - 5, - 6, - ], - "type": "Punctuator", - "value": "[", - }, - Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "range": Array [ - 6, - 7, - ], - "type": "Identifier", - "value": "a", - }, - Object { - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, - }, - "range": Array [ - 7, - 8, - ], - "type": "Punctuator", - "value": "]", - }, - Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 11, - ], - "type": "Identifier", - "value": "of", - }, - Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "range": Array [ - 12, - 15, - ], - "type": "Identifier", - "value": "foo", - }, - Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "range": Array [ - 15, - 16, - ], - "type": "Punctuator", - "value": ")", - }, - Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "range": Array [ - 16, - 17, - ], - "type": "Punctuator", "value": ";", }, ], @@ -61595,7 +69292,7 @@ Object { } `; -exports[`javascript fixtures/destructuring-and-spread/complex-destructured.src 1`] = ` +exports[`javascript fixtures/destructuring-and-spread/error-complex-destructured-spread-first.src 1`] = ` Object { "body": Array [ Object { @@ -61603,9 +69300,27 @@ Object { "left": Object { "elements": Array [ Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "name": "c", + "range": Array [ + 4, + 5, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 9, + "column": 5, "line": 1, }, "start": Object { @@ -61613,60 +69328,77 @@ Object { "line": 1, }, }, + "range": Array [ + 1, + 5, + ], + "type": "RestElement", + }, + Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, "properties": Array [ Object { "computed": false, "key": Object { "loc": Object { "end": Object { - "column": 4, + "column": 10, "line": 1, }, "start": Object { - "column": 3, + "column": 9, "line": 1, }, }, "name": "a", "range": Array [ - 3, - 4, + 9, + 10, ], "type": "Identifier", }, "kind": "init", "loc": Object { "end": Object { - "column": 4, + "column": 10, "line": 1, }, "start": Object { - "column": 3, + "column": 9, "line": 1, }, }, "method": false, "range": Array [ - 3, - 4, + 9, + 10, ], "shorthand": true, "type": "Property", "value": Object { "loc": Object { "end": Object { - "column": 4, + "column": 10, "line": 1, }, "start": Object { - "column": 3, + "column": 9, "line": 1, }, }, "name": "a", "range": Array [ - 3, - 4, + 9, + 10, ], "type": "Identifier", }, @@ -61676,99 +69408,64 @@ Object { "key": Object { "loc": Object { "end": Object { - "column": 7, + "column": 13, "line": 1, }, "start": Object { - "column": 6, + "column": 12, "line": 1, }, }, "name": "b", "range": Array [ - 6, - 7, + 12, + 13, ], "type": "Identifier", }, "kind": "init", "loc": Object { "end": Object { - "column": 7, + "column": 13, "line": 1, }, "start": Object { - "column": 6, + "column": 12, "line": 1, }, }, "method": false, "range": Array [ - 6, - 7, + 12, + 13, ], "shorthand": true, "type": "Property", "value": Object { "loc": Object { "end": Object { - "column": 7, + "column": 13, "line": 1, }, "start": Object { - "column": 6, + "column": 12, "line": 1, }, }, "name": "b", "range": Array [ - 6, - 7, + 12, + 13, ], "type": "Identifier", }, }, ], "range": Array [ - 1, - 9, - ], - "type": "ObjectPattern", - }, - Object { - "argument": Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "name": "c", - "range": Array [ - 14, - 15, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "range": Array [ - 11, + 7, 15, ], - "type": "RestElement", + "type": "ObjectPattern", }, ], "loc": Object { @@ -61841,8 +69538,8 @@ Object { ], "loc": Object { "end": Object { - "column": 21, - "line": 1, + "column": 0, + "line": 2, }, "start": Object { "column": 0, @@ -61851,7 +69548,7 @@ Object { }, "range": Array [ 0, - 21, + 22, ], "sourceType": "script", "tokens": Array [ @@ -61876,7 +69573,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 2, + "column": 4, "line": 1, }, "start": Object { @@ -61886,43 +69583,43 @@ Object { }, "range": Array [ 1, - 2, + 4, ], "type": "Punctuator", - "value": "{", + "value": "...", }, Object { "loc": Object { "end": Object { - "column": 4, + "column": 5, "line": 1, }, "start": Object { - "column": 3, + "column": 4, "line": 1, }, }, "range": Array [ - 3, 4, + 5, ], "type": "Identifier", - "value": "a", + "value": "c", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 6, "line": 1, }, "start": Object { - "column": 4, + "column": 5, "line": 1, }, }, "range": Array [ - 4, 5, + 6, ], "type": "Punctuator", "value": ",", @@ -61930,53 +69627,53 @@ Object { Object { "loc": Object { "end": Object { - "column": 7, + "column": 8, "line": 1, }, "start": Object { - "column": 6, + "column": 7, "line": 1, }, }, "range": Array [ - 6, 7, + 8, ], - "type": "Identifier", - "value": "b", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 10, "line": 1, }, "start": Object { - "column": 8, + "column": 9, "line": 1, }, }, "range": Array [ - 8, 9, + 10, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 11, "line": 1, }, "start": Object { - "column": 9, + "column": 10, "line": 1, }, }, "range": Array [ - 9, 10, + 11, ], "type": "Punctuator", "value": ",", @@ -61984,20 +69681,20 @@ Object { Object { "loc": Object { "end": Object { - "column": 14, + "column": 13, "line": 1, }, "start": Object { - "column": 11, + "column": 12, "line": 1, }, }, "range": Array [ - 11, - 14, + 12, + 13, ], - "type": "Punctuator", - "value": "...", + "type": "Identifier", + "value": "b", }, Object { "loc": Object { @@ -62014,8 +69711,8 @@ Object { 14, 15, ], - "type": "Identifier", - "value": "c", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { @@ -62094,7 +69791,283 @@ Object { } `; -exports[`javascript fixtures/destructuring-and-spread/destructured-array-literal.src 1`] = ` +exports[`javascript fixtures/destructuring-and-spread/invalid-not-final-array-empty.src 1`] = ` +Object { + "body": Array [ + Object { + "expression": Object { + "left": Object { + "elements": Array [ + Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 4, + 5, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "range": Array [ + 1, + 5, + ], + "type": "RestElement", + }, + ], + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 8, + ], + "type": "ArrayPattern", + }, + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "operator": "=", + "range": Array [ + 0, + 12, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "name": "b", + "range": Array [ + 11, + 12, + ], + "type": "Identifier", + }, + "type": "AssignmentExpression", + }, + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 13, + ], + "type": "ExpressionStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 13, + ], + "sourceType": "script", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 1, + ], + "type": "Punctuator", + "value": "[", + }, + Object { + "loc": Object { + "end": Object { + "column": 4, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "range": Array [ + 1, + 4, + ], + "type": "Punctuator", + "value": "...", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 5, + ], + "type": "Identifier", + "value": "a", + }, + Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "range": Array [ + 5, + 6, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "range": Array [ + 7, + 8, + ], + "type": "Punctuator", + "value": "]", + }, + Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 10, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 12, + ], + "type": "Identifier", + "value": "b", + }, + Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "range": Array [ + 12, + 13, + ], + "type": "Punctuator", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/destructuring-and-spread/multi-destructured.src 1`] = ` Object { "body": Array [ Object { @@ -62121,47 +70094,9 @@ Object { }, Object { "argument": Object { - "elements": Array [ - Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "name": "b", - "range": Array [ - 8, - 9, - ], - "type": "Identifier", - }, - Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "name": "c", - "range": Array [ - 11, - 12, - ], - "type": "Identifier", - }, - ], "loc": Object { "end": Object { - "column": 13, + "column": 8, "line": 1, }, "start": Object { @@ -62169,15 +70104,16 @@ Object { "line": 1, }, }, + "name": "b", "range": Array [ 7, - 13, + 8, ], - "type": "ArrayPattern", + "type": "Identifier", }, "loc": Object { "end": Object { - "column": 13, + "column": 8, "line": 1, }, "start": Object { @@ -62187,14 +70123,14 @@ Object { }, "range": Array [ 4, - 13, + 8, ], "type": "RestElement", }, ], "loc": Object { "end": Object { - "column": 14, + "column": 9, "line": 1, }, "start": Object { @@ -62204,13 +70140,13 @@ Object { }, "range": Array [ 0, - 14, + 9, ], "type": "ArrayPattern", }, "loc": Object { "end": Object { - "column": 18, + "column": 13, "line": 1, }, "start": Object { @@ -62221,23 +70157,23 @@ Object { "operator": "=", "range": Array [ 0, - 18, + 13, ], "right": Object { "loc": Object { "end": Object { - "column": 18, + "column": 13, "line": 1, }, "start": Object { - "column": 17, + "column": 12, "line": 1, }, }, - "name": "d", + "name": "c", "range": Array [ - 17, - 18, + 12, + 13, ], "type": "Identifier", }, @@ -62245,7 +70181,7 @@ Object { }, "loc": Object { "end": Object { - "column": 19, + "column": 14, "line": 1, }, "start": Object { @@ -62255,15 +70191,15 @@ Object { }, "range": Array [ 0, - 19, + 14, ], "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 0, - "line": 2, + "column": 14, + "line": 1, }, "start": Object { "column": 0, @@ -62272,7 +70208,7 @@ Object { }, "range": Array [ 0, - 20, + 14, ], "sourceType": "script", "tokens": Array [ @@ -62363,8 +70299,8 @@ Object { 7, 8, ], - "type": "Punctuator", - "value": "[", + "type": "Identifier", + "value": "b", }, Object { "loc": Object { @@ -62381,44 +70317,26 @@ Object { 8, 9, ], - "type": "Identifier", - "value": "b", - }, - Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 10, - ], "type": "Punctuator", - "value": ",", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 11, "line": 1, }, "start": Object { - "column": 11, + "column": 10, "line": 1, }, }, "range": Array [ + 10, 11, - 12, ], - "type": "Identifier", - "value": "c", + "type": "Punctuator", + "value": "=", }, Object { "loc": Object { @@ -62435,8 +70353,8 @@ Object { 12, 13, ], - "type": "Punctuator", - "value": "]", + "type": "Identifier", + "value": "c", }, Object { "loc": Object { @@ -62454,60 +70372,6 @@ Object { 14, ], "type": "Punctuator", - "value": "]", - }, - Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "range": Array [ - 15, - 16, - ], - "type": "Punctuator", - "value": "=", - }, - Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 17, - "line": 1, - }, - }, - "range": Array [ - 17, - 18, - ], - "type": "Identifier", - "value": "d", - }, - Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, - }, - "range": Array [ - 18, - 19, - ], - "type": "Punctuator", "value": ";", }, ], @@ -62515,197 +70379,138 @@ Object { } `; -exports[`javascript fixtures/destructuring-and-spread/destructuring-param.src 1`] = ` +exports[`javascript fixtures/destructuring-and-spread/not-final-array.src 1`] = ` Object { "body": Array [ Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 30, - "line": 1, - }, - "start": Object { - "column": 28, - "line": 1, - }, - }, - "range": Array [ - 28, - 30, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 9, - 10, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 30, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "params": Array [ - Object { + "expression": Object { + "left": Object { "elements": Array [ Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, + "argument": Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, }, + "name": "a", + "range": Array [ + 4, + 5, + ], + "type": "Identifier", }, - "name": "a", - "range": Array [ - 12, - 13, - ], - "type": "Identifier", - }, - Object { "loc": Object { "end": Object { - "column": 16, + "column": 5, "line": 1, }, "start": Object { - "column": 15, + "column": 1, "line": 1, }, }, - "name": "b", "range": Array [ - 15, - 16, + 1, + 5, ], - "type": "Identifier", + "type": "RestElement", }, Object { - "argument": Object { - "elements": Array [ - Object { - "loc": Object { - "end": Object { - "column": 24, - "line": 1, - }, - "start": Object { - "column": 22, - "line": 1, - }, - }, - "name": "ok", - "range": Array [ - 22, - 24, - ], - "type": "Identifier", - }, - ], - "loc": Object { - "end": Object { - "column": 25, - "line": 1, - }, - "start": Object { - "column": 21, - "line": 1, - }, - }, - "range": Array [ - 21, - 25, - ], - "type": "ArrayPattern", - }, "loc": Object { "end": Object { - "column": 25, + "column": 8, "line": 1, }, "start": Object { - "column": 18, + "column": 7, "line": 1, }, }, + "name": "b", "range": Array [ - 18, - 25, + 7, + 8, ], - "type": "RestElement", + "type": "Identifier", }, ], "loc": Object { "end": Object { - "column": 26, + "column": 9, "line": 1, }, "start": Object { - "column": 11, + "column": 0, "line": 1, }, }, "range": Array [ - 11, - 26, + 0, + 9, ], "type": "ArrayPattern", }, - ], - "range": Array [ - 0, - 30, - ], - "type": "FunctionDeclaration", - }, - Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "operator": "=", + "range": Array [ + 0, + 13, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "name": "c", + "range": Array [ + 12, + 13, + ], + "type": "Identifier", + }, + "type": "AssignmentExpression", + }, "loc": Object { "end": Object { - "column": 31, + "column": 14, "line": 1, }, "start": Object { - "column": 30, + "column": 0, "line": 1, }, }, "range": Array [ - 30, - 31, + 0, + 14, ], - "type": "EmptyStatement", + "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 31, + "column": 14, "line": 1, }, "start": Object { @@ -62715,14 +70520,14 @@ Object { }, "range": Array [ 0, - 31, + 14, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 8, + "column": 1, "line": 1, }, "start": Object { @@ -62732,25 +70537,43 @@ Object { }, "range": Array [ 0, - 8, + 1, ], - "type": "Keyword", - "value": "function", + "type": "Punctuator", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 4, "line": 1, }, "start": Object { - "column": 9, + "column": 1, "line": 1, }, }, "range": Array [ - 9, - 10, + 1, + 4, + ], + "type": "Punctuator", + "value": "...", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 5, ], "type": "Identifier", "value": "a", @@ -62758,38 +70581,74 @@ Object { Object { "loc": Object { "end": Object { - "column": 11, + "column": 6, "line": 1, }, "start": Object { - "column": 10, + "column": 5, "line": 1, }, }, "range": Array [ - 10, - 11, + 5, + 6, ], "type": "Punctuator", - "value": "(", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 8, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "range": Array [ + 7, + 8, + ], + "type": "Identifier", + "value": "b", + }, + Object { + "loc": Object { + "end": Object { + "column": 9, "line": 1, }, "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, + 9, + ], + "type": "Punctuator", + "value": "]", + }, + Object { + "loc": Object { + "end": Object { "column": 11, "line": 1, }, + "start": Object { + "column": 10, + "line": 1, + }, }, "range": Array [ + 10, 11, - 12, ], "type": "Punctuator", - "value": "[", + "value": "=", }, Object { "loc": Object { @@ -62807,7 +70666,7 @@ Object { 13, ], "type": "Identifier", - "value": "a", + "value": "c", }, Object { "loc": Object { @@ -62825,76 +70684,154 @@ Object { 14, ], "type": "Punctuator", - "value": ",", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/destructuring-and-spread/single-destructured.src 1`] = ` +Object { + "body": Array [ Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, + "expression": Object { + "left": Object { + "elements": Array [ + Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 4, + 5, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "range": Array [ + 1, + 5, + ], + "type": "RestElement", + }, + ], + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 6, + ], + "type": "ArrayPattern", }, - "start": Object { - "column": 15, - "line": 1, + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "operator": "=", + "range": Array [ + 0, + 10, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "name": "b", + "range": Array [ + 9, + 10, + ], + "type": "Identifier", }, + "type": "AssignmentExpression", }, - "range": Array [ - 15, - 16, - ], - "type": "Identifier", - "value": "b", - }, - Object { "loc": Object { "end": Object { - "column": 17, + "column": 11, "line": 1, }, "start": Object { - "column": 16, + "column": 0, "line": 1, }, }, "range": Array [ - 16, - 17, + 0, + 11, ], - "type": "Punctuator", - "value": ",", + "type": "ExpressionStatement", }, - Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, - }, - "range": Array [ - 18, - 21, - ], - "type": "Punctuator", - "value": "...", + ], + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 11, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 22, + "column": 1, "line": 1, }, "start": Object { - "column": 21, + "column": 0, "line": 1, }, }, "range": Array [ - 21, - 22, + 0, + 1, ], "type": "Punctuator", "value": "[", @@ -62902,125 +70839,107 @@ Object { Object { "loc": Object { "end": Object { - "column": 24, - "line": 1, - }, - "start": Object { - "column": 22, - "line": 1, - }, - }, - "range": Array [ - 22, - 24, - ], - "type": "Identifier", - "value": "ok", - }, - Object { - "loc": Object { - "end": Object { - "column": 25, + "column": 4, "line": 1, }, "start": Object { - "column": 24, + "column": 1, "line": 1, }, }, "range": Array [ - 24, - 25, + 1, + 4, ], "type": "Punctuator", - "value": "]", + "value": "...", }, Object { "loc": Object { "end": Object { - "column": 26, + "column": 5, "line": 1, }, "start": Object { - "column": 25, + "column": 4, "line": 1, }, }, "range": Array [ - 25, - 26, + 4, + 5, ], - "type": "Punctuator", - "value": "]", + "type": "Identifier", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 27, + "column": 6, "line": 1, }, "start": Object { - "column": 26, + "column": 5, "line": 1, }, }, "range": Array [ - 26, - 27, + 5, + 6, ], "type": "Punctuator", - "value": ")", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 29, + "column": 8, "line": 1, }, "start": Object { - "column": 28, + "column": 7, "line": 1, }, }, "range": Array [ - 28, - 29, + 7, + 8, ], "type": "Punctuator", - "value": "{", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 30, + "column": 10, "line": 1, }, "start": Object { - "column": 29, + "column": 9, "line": 1, }, }, "range": Array [ - 29, - 30, + 9, + 10, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "b", }, Object { "loc": Object { "end": Object { - "column": 31, + "column": 11, "line": 1, }, "start": Object { - "column": 30, + "column": 10, "line": 1, }, }, "range": Array [ - 30, - 31, + 10, + 11, ], "type": "Punctuator", "value": ";", @@ -63030,236 +70949,238 @@ Object { } `; -exports[`javascript fixtures/destructuring-and-spread/error-complex-destructured-spread-first.src 1`] = ` +exports[`javascript fixtures/destructuring-and-spread/var-complex-destructured.src 1`] = ` Object { "body": Array [ Object { - "expression": Object { - "left": Object { - "elements": Array [ - Object { - "argument": Object { + "declarations": Array [ + Object { + "id": Object { + "elements": Array [ + Object { "loc": Object { "end": Object { - "column": 5, + "column": 13, "line": 1, }, "start": Object { - "column": 4, + "column": 5, "line": 1, }, }, - "name": "c", - "range": Array [ - 4, - 5, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 5, - "line": 1, - }, - "start": Object { - "column": 1, - "line": 1, - }, - }, - "range": Array [ - 1, - 5, - ], - "type": "RestElement", - }, - Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 7, + 8, + ], + "type": "Identifier", + }, + "kind": "init", "loc": Object { "end": Object { - "column": 10, + "column": 8, "line": 1, }, "start": Object { - "column": 9, + "column": 7, "line": 1, }, }, - "name": "a", + "method": false, "range": Array [ - 9, - 10, + 7, + 8, ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 7, + 8, + ], + "type": "Identifier", }, }, - "method": false, - "range": Array [ - 9, - 10, - ], - "shorthand": true, - "type": "Property", - "value": Object { + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "name": "b", + "range": Array [ + 10, + 11, + ], + "type": "Identifier", + }, + "kind": "init", "loc": Object { "end": Object { - "column": 10, + "column": 11, "line": 1, }, "start": Object { - "column": 9, + "column": 10, "line": 1, }, }, - "name": "a", + "method": false, "range": Array [ - 9, 10, + 11, ], - "type": "Identifier", - }, - }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, }, + "name": "b", + "range": Array [ + 10, + 11, + ], + "type": "Identifier", }, - "name": "b", - "range": Array [ - 12, - 13, - ], - "type": "Identifier", }, - "kind": "init", + ], + "range": Array [ + 5, + 13, + ], + "type": "ObjectPattern", + }, + Object { + "argument": Object { "loc": Object { "end": Object { - "column": 13, + "column": 19, "line": 1, }, "start": Object { - "column": 12, + "column": 18, "line": 1, }, }, - "method": false, + "name": "c", "range": Array [ - 12, - 13, + 18, + 19, ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "name": "b", - "range": Array [ - 12, - 13, - ], - "type": "Identifier", + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, }, }, - ], - "range": Array [ - 7, - 15, - ], - "type": "ObjectPattern", - }, - ], - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, + "range": Array [ + 15, + 19, + ], + "type": "RestElement", + }, + ], + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, }, + "range": Array [ + 4, + 20, + ], + "type": "ArrayPattern", }, - "range": Array [ - 0, - 16, - ], - "type": "ArrayPattern", - }, - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, + "init": Object { + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "name": "d", + "range": Array [ + 23, + 24, + ], + "type": "Identifier", }, - }, - "operator": "=", - "range": Array [ - 0, - 20, - ], - "right": Object { "loc": Object { "end": Object { - "column": 20, + "column": 24, "line": 1, }, "start": Object { - "column": 19, + "column": 4, "line": 1, }, }, - "name": "d", "range": Array [ - 19, - 20, + 4, + 24, ], - "type": "Identifier", + "type": "VariableDeclarator", }, - "type": "AssignmentExpression", - }, + ], + "kind": "var", "loc": Object { "end": Object { - "column": 21, + "column": 25, "line": 1, }, "start": Object { @@ -63269,15 +71190,15 @@ Object { }, "range": Array [ 0, - 21, + 25, ], - "type": "ExpressionStatement", + "type": "VariableDeclaration", }, ], "loc": Object { "end": Object { - "column": 0, - "line": 2, + "column": 25, + "line": 1, }, "start": Object { "column": 0, @@ -63286,14 +71207,14 @@ Object { }, "range": Array [ 0, - 22, + 25, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, + "column": 3, "line": 1, }, "start": Object { @@ -63303,28 +71224,10 @@ Object { }, "range": Array [ 0, - 1, - ], - "type": "Punctuator", - "value": "[", - }, - Object { - "loc": Object { - "end": Object { - "column": 4, - "line": 1, - }, - "start": Object { - "column": 1, - "line": 1, - }, - }, - "range": Array [ - 1, - 4, + 3, ], - "type": "Punctuator", - "value": "...", + "type": "Keyword", + "value": "var", }, Object { "loc": Object { @@ -63341,8 +71244,8 @@ Object { 4, 5, ], - "type": "Identifier", - "value": "c", + "type": "Punctuator", + "value": "[", }, Object { "loc": Object { @@ -63360,7 +71263,7 @@ Object { 6, ], "type": "Punctuator", - "value": ",", + "value": "{", }, Object { "loc": Object { @@ -63377,26 +71280,26 @@ Object { 7, 8, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 9, "line": 1, }, "start": Object { - "column": 9, + "column": 8, "line": 1, }, }, "range": Array [ + 8, 9, - 10, ], - "type": "Identifier", - "value": "a", + "type": "Punctuator", + "value": ",", }, Object { "loc": Object { @@ -63413,8 +71316,8 @@ Object { 10, 11, ], - "type": "Punctuator", - "value": ",", + "type": "Identifier", + "value": "b", }, Object { "loc": Object { @@ -63431,31 +71334,31 @@ Object { 12, 13, ], - "type": "Identifier", - "value": "b", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 14, "line": 1, }, "start": Object { - "column": 14, + "column": 13, "line": 1, }, }, "range": Array [ + 13, 14, - 15, ], "type": "Punctuator", - "value": "}", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 18, "line": 1, }, "start": Object { @@ -63465,28 +71368,28 @@ Object { }, "range": Array [ 15, - 16, + 18, ], "type": "Punctuator", - "value": "]", + "value": "...", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 19, "line": 1, }, "start": Object { - "column": 17, + "column": 18, "line": 1, }, }, "range": Array [ - 17, 18, + 19, ], - "type": "Punctuator", - "value": "=", + "type": "Identifier", + "value": "c", }, Object { "loc": Object { @@ -63503,23 +71406,59 @@ Object { 19, 20, ], + "type": "Punctuator", + "value": "]", + }, + Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 21, + "line": 1, + }, + }, + "range": Array [ + 21, + 22, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "range": Array [ + 23, + 24, + ], "type": "Identifier", "value": "d", }, Object { "loc": Object { "end": Object { - "column": 21, + "column": 25, "line": 1, }, "start": Object { - "column": 20, + "column": 24, "line": 1, }, }, "range": Array [ - 20, - 21, + 24, + 25, ], "type": "Punctuator", "value": ";", @@ -63529,103 +71468,160 @@ Object { } `; -exports[`javascript fixtures/destructuring-and-spread/invalid-not-final-array-empty.src 1`] = ` +exports[`javascript fixtures/destructuring-and-spread/var-destructured-array-literal.src 1`] = ` Object { "body": Array [ Object { - "expression": Object { - "left": Object { - "elements": Array [ - Object { - "argument": Object { + "declarations": Array [ + Object { + "id": Object { + "elements": Array [ + Object { "loc": Object { "end": Object { - "column": 5, + "column": 6, "line": 1, }, "start": Object { - "column": 4, + "column": 5, "line": 1, }, }, "name": "a", "range": Array [ - 4, 5, + 6, ], "type": "Identifier", }, - "loc": Object { - "end": Object { - "column": 5, - "line": 1, + Object { + "argument": Object { + "elements": Array [ + Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "name": "b", + "range": Array [ + 12, + 13, + ], + "type": "Identifier", + }, + Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "name": "c", + "range": Array [ + 15, + 16, + ], + "type": "Identifier", + }, + ], + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 17, + ], + "type": "ArrayPattern", }, - "start": Object { - "column": 1, - "line": 1, + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, }, + "range": Array [ + 8, + 17, + ], + "type": "RestElement", + }, + ], + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, }, - "range": Array [ - 1, - 5, - ], - "type": "RestElement", - }, - ], - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, }, + "range": Array [ + 4, + 18, + ], + "type": "ArrayPattern", }, - "range": Array [ - 0, - 8, - ], - "type": "ArrayPattern", - }, - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, + "init": Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 21, + "line": 1, + }, + }, + "name": "d", + "range": Array [ + 21, + 22, + ], + "type": "Identifier", }, - }, - "operator": "=", - "range": Array [ - 0, - 12, - ], - "right": Object { "loc": Object { "end": Object { - "column": 12, + "column": 22, "line": 1, }, "start": Object { - "column": 11, + "column": 4, "line": 1, }, }, - "name": "b", "range": Array [ - 11, - 12, + 4, + 22, ], - "type": "Identifier", + "type": "VariableDeclarator", }, - "type": "AssignmentExpression", - }, + ], + "kind": "var", "loc": Object { "end": Object { - "column": 13, + "column": 23, "line": 1, }, "start": Object { @@ -63635,14 +71631,14 @@ Object { }, "range": Array [ 0, - 13, + 23, ], - "type": "ExpressionStatement", + "type": "VariableDeclaration", }, ], "loc": Object { "end": Object { - "column": 13, + "column": 23, "line": 1, }, "start": Object { @@ -63652,14 +71648,14 @@ Object { }, "range": Array [ 0, - 13, + 23, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, + "column": 3, "line": 1, }, "start": Object { @@ -63669,28 +71665,10 @@ Object { }, "range": Array [ 0, - 1, - ], - "type": "Punctuator", - "value": "[", - }, - Object { - "loc": Object { - "end": Object { - "column": 4, - "line": 1, - }, - "start": Object { - "column": 1, - "line": 1, - }, - }, - "range": Array [ - 1, - 4, + 3, ], - "type": "Punctuator", - "value": "...", + "type": "Keyword", + "value": "var", }, Object { "loc": Object { @@ -63707,263 +71685,77 @@ Object { 4, 5, ], - "type": "Identifier", - "value": "a", - }, - Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "range": Array [ - 5, - 6, - ], - "type": "Punctuator", - "value": ",", - }, - Object { - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, - }, - "range": Array [ - 7, - 8, - ], - "type": "Punctuator", - "value": "]", - }, - Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 10, - ], - "type": "Punctuator", - "value": "=", - }, - Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "range": Array [ - 11, - 12, - ], - "type": "Identifier", - "value": "b", - }, - Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "range": Array [ - 12, - 13, - ], "type": "Punctuator", - "value": ";", - }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/destructuring-and-spread/multi-destructured.src 1`] = ` -Object { - "body": Array [ - Object { - "expression": Object { - "left": Object { - "elements": Array [ - Object { - "loc": Object { - "end": Object { - "column": 2, - "line": 1, - }, - "start": Object { - "column": 1, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 1, - 2, - ], - "type": "Identifier", - }, - Object { - "argument": Object { - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, - }, - "name": "b", - "range": Array [ - 7, - 8, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 8, - ], - "type": "RestElement", - }, - ], - "loc": Object { - "end": Object { - "column": 9, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 9, - ], - "type": "ArrayPattern", - }, - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "operator": "=", - "range": Array [ - 0, - 13, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "name": "c", - "range": Array [ - 12, - 13, - ], - "type": "Identifier", + "value": "[", + }, + Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, }, - "type": "AssignmentExpression", }, + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + "value": "a", + }, + Object { "loc": Object { "end": Object { - "column": 14, + "column": 7, "line": 1, }, "start": Object { - "column": 0, + "column": 6, "line": 1, }, }, "range": Array [ - 0, - 14, + 6, + 7, ], - "type": "ExpressionStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 14, - "line": 1, + "type": "Punctuator", + "value": ",", }, - "start": Object { - "column": 0, - "line": 1, + Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, + 11, + ], + "type": "Punctuator", + "value": "...", }, - }, - "range": Array [ - 0, - 14, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, + "column": 12, "line": 1, }, "start": Object { - "column": 0, + "column": 11, "line": 1, }, }, "range": Array [ - 0, - 1, + 11, + 12, ], "type": "Punctuator", "value": "[", @@ -63971,35 +71763,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 2, + "column": 13, "line": 1, }, "start": Object { - "column": 1, + "column": 12, "line": 1, }, }, "range": Array [ - 1, - 2, + 12, + 13, ], "type": "Identifier", - "value": "a", + "value": "b", }, Object { "loc": Object { "end": Object { - "column": 3, + "column": 14, "line": 1, }, "start": Object { - "column": 2, + "column": 13, "line": 1, }, }, "range": Array [ - 2, - 3, + 13, + 14, ], "type": "Punctuator", "value": ",", @@ -64007,53 +71799,53 @@ Object { Object { "loc": Object { "end": Object { - "column": 7, + "column": 16, "line": 1, }, "start": Object { - "column": 4, + "column": 15, "line": 1, }, }, "range": Array [ - 4, - 7, + 15, + 16, ], - "type": "Punctuator", - "value": "...", + "type": "Identifier", + "value": "c", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 17, "line": 1, }, "start": Object { - "column": 7, + "column": 16, "line": 1, }, }, "range": Array [ - 7, - 8, + 16, + 17, ], - "type": "Identifier", - "value": "b", + "type": "Punctuator", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 18, "line": 1, }, "start": Object { - "column": 8, + "column": 17, "line": 1, }, }, "range": Array [ - 8, - 9, + 17, + 18, ], "type": "Punctuator", "value": "]", @@ -64061,17 +71853,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 11, + "column": 20, "line": 1, }, "start": Object { - "column": 10, + "column": 19, "line": 1, }, }, "range": Array [ - 10, - 11, + 19, + 20, ], "type": "Punctuator", "value": "=", @@ -64079,35 +71871,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 13, + "column": 22, "line": 1, }, "start": Object { - "column": 12, + "column": 21, "line": 1, }, }, "range": Array [ - 12, - 13, + 21, + 22, ], "type": "Identifier", - "value": "c", + "value": "d", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 23, "line": 1, }, "start": Object { - "column": 13, + "column": 22, "line": 1, }, }, "range": Array [ - 13, - 14, + 22, + 23, ], "type": "Punctuator", "value": ";", @@ -64117,121 +71909,123 @@ Object { } `; -exports[`javascript fixtures/destructuring-and-spread/not-final-array.src 1`] = ` +exports[`javascript fixtures/destructuring-and-spread/var-multi-destructured.src 1`] = ` Object { "body": Array [ Object { - "expression": Object { - "left": Object { - "elements": Array [ - Object { - "argument": Object { + "declarations": Array [ + Object { + "id": Object { + "elements": Array [ + Object { "loc": Object { "end": Object { - "column": 5, + "column": 6, "line": 1, }, "start": Object { - "column": 4, + "column": 5, "line": 1, }, }, "name": "a", "range": Array [ - 4, 5, + 6, ], "type": "Identifier", }, - "loc": Object { - "end": Object { - "column": 5, - "line": 1, + Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "name": "b", + "range": Array [ + 11, + 12, + ], + "type": "Identifier", }, - "start": Object { - "column": 1, - "line": 1, + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, }, + "range": Array [ + 8, + 12, + ], + "type": "RestElement", }, - "range": Array [ - 1, - 5, - ], - "type": "RestElement", - }, - Object { - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, + ], + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, }, - "name": "b", - "range": Array [ - 7, - 8, - ], - "type": "Identifier", - }, - ], - "loc": Object { - "end": Object { - "column": 9, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, }, + "range": Array [ + 4, + 13, + ], + "type": "ArrayPattern", }, - "range": Array [ - 0, - 9, - ], - "type": "ArrayPattern", - }, - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, + "init": Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "name": "c", + "range": Array [ + 16, + 17, + ], + "type": "Identifier", }, - }, - "operator": "=", - "range": Array [ - 0, - 13, - ], - "right": Object { "loc": Object { "end": Object { - "column": 13, + "column": 17, "line": 1, }, "start": Object { - "column": 12, + "column": 4, "line": 1, }, }, - "name": "c", "range": Array [ - 12, - 13, + 4, + 17, ], - "type": "Identifier", + "type": "VariableDeclarator", }, - "type": "AssignmentExpression", - }, + ], + "kind": "var", "loc": Object { "end": Object { - "column": 14, + "column": 18, "line": 1, }, "start": Object { @@ -64241,14 +72035,14 @@ Object { }, "range": Array [ 0, - 14, + 18, ], - "type": "ExpressionStatement", + "type": "VariableDeclaration", }, ], "loc": Object { "end": Object { - "column": 14, + "column": 18, "line": 1, }, "start": Object { @@ -64258,14 +72052,14 @@ Object { }, "range": Array [ 0, - 14, + 18, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, + "column": 3, "line": 1, }, "start": Object { @@ -64275,43 +72069,43 @@ Object { }, "range": Array [ 0, - 1, + 3, ], - "type": "Punctuator", - "value": "[", + "type": "Keyword", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 4, + "column": 5, "line": 1, }, "start": Object { - "column": 1, + "column": 4, "line": 1, }, }, "range": Array [ - 1, 4, + 5, ], "type": "Punctuator", - "value": "...", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 6, "line": 1, }, "start": Object { - "column": 4, + "column": 5, "line": 1, }, }, "range": Array [ - 4, 5, + 6, ], "type": "Identifier", "value": "a", @@ -64319,17 +72113,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 6, + "column": 7, "line": 1, }, "start": Object { - "column": 5, + "column": 6, "line": 1, }, }, "range": Array [ - 5, 6, + 7, ], "type": "Punctuator", "value": ",", @@ -64337,17 +72131,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 8, + "column": 11, "line": 1, }, "start": Object { - "column": 7, + "column": 8, "line": 1, }, }, "range": Array [ - 7, 8, + 11, + ], + "type": "Punctuator", + "value": "...", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 12, ], "type": "Identifier", "value": "b", @@ -64355,17 +72167,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 9, + "column": 13, "line": 1, }, "start": Object { - "column": 8, + "column": 12, "line": 1, }, }, "range": Array [ - 8, - 9, + 12, + 13, ], "type": "Punctuator", "value": "]", @@ -64373,17 +72185,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 11, + "column": 15, "line": 1, }, "start": Object { - "column": 10, + "column": 14, "line": 1, }, }, "range": Array [ - 10, - 11, + 14, + 15, ], "type": "Punctuator", "value": "=", @@ -64391,17 +72203,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 13, + "column": 17, "line": 1, }, "start": Object { - "column": 12, + "column": 16, "line": 1, }, }, "range": Array [ - 12, - 13, + 16, + 17, ], "type": "Identifier", "value": "c", @@ -64409,17 +72221,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 14, + "column": 18, "line": 1, }, "start": Object { - "column": 13, + "column": 17, "line": 1, }, }, "range": Array [ - 13, - 14, + 17, + 18, ], "type": "Punctuator", "value": ";", @@ -64429,103 +72241,105 @@ Object { } `; -exports[`javascript fixtures/destructuring-and-spread/single-destructured.src 1`] = ` +exports[`javascript fixtures/destructuring-and-spread/var-single-destructured.src 1`] = ` Object { "body": Array [ Object { - "expression": Object { - "left": Object { - "elements": Array [ - Object { - "argument": Object { + "declarations": Array [ + Object { + "id": Object { + "elements": Array [ + Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 8, + 9, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 5, + "column": 9, "line": 1, }, "start": Object { - "column": 4, + "column": 5, "line": 1, }, }, - "name": "a", "range": Array [ - 4, 5, + 9, ], - "type": "Identifier", + "type": "RestElement", }, - "loc": Object { - "end": Object { - "column": 5, - "line": 1, - }, - "start": Object { - "column": 1, - "line": 1, - }, + ], + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, }, - "range": Array [ - 1, - 5, - ], - "type": "RestElement", - }, - ], - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, }, + "range": Array [ + 4, + 10, + ], + "type": "ArrayPattern", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "name": "b", + "range": Array [ + 13, + 14, + ], + "type": "Identifier", }, - "range": Array [ - 0, - 6, - ], - "type": "ArrayPattern", - }, - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "operator": "=", - "range": Array [ - 0, - 10, - ], - "right": Object { "loc": Object { "end": Object { - "column": 10, + "column": 14, "line": 1, }, "start": Object { - "column": 9, + "column": 4, "line": 1, }, }, - "name": "b", "range": Array [ - 9, - 10, + 4, + 14, ], - "type": "Identifier", + "type": "VariableDeclarator", }, - "type": "AssignmentExpression", - }, + ], + "kind": "var", "loc": Object { "end": Object { - "column": 11, + "column": 15, "line": 1, }, "start": Object { @@ -64535,14 +72349,14 @@ Object { }, "range": Array [ 0, - 11, + 15, ], - "type": "ExpressionStatement", + "type": "VariableDeclaration", }, ], "loc": Object { "end": Object { - "column": 11, + "column": 15, "line": 1, }, "start": Object { @@ -64552,14 +72366,14 @@ Object { }, "range": Array [ 0, - 11, + 15, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, + "column": 3, "line": 1, }, "start": Object { @@ -64569,7 +72383,25 @@ Object { }, "range": Array [ 0, - 1, + 3, + ], + "type": "Keyword", + "value": "var", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 5, ], "type": "Punctuator", "value": "[", @@ -64577,17 +72409,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 4, + "column": 8, "line": 1, }, "start": Object { - "column": 1, + "column": 5, "line": 1, }, }, "range": Array [ - 1, - 4, + 5, + 8, ], "type": "Punctuator", "value": "...", @@ -64595,17 +72427,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 5, + "column": 9, "line": 1, }, "start": Object { - "column": 4, + "column": 8, "line": 1, }, }, "range": Array [ - 4, - 5, + 8, + 9, ], "type": "Identifier", "value": "a", @@ -64613,17 +72445,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 6, + "column": 10, "line": 1, }, "start": Object { - "column": 5, + "column": 9, "line": 1, }, }, "range": Array [ - 5, - 6, + 9, + 10, ], "type": "Punctuator", "value": "]", @@ -64631,17 +72463,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 8, + "column": 12, "line": 1, }, "start": Object { - "column": 7, + "column": 11, "line": 1, }, }, "range": Array [ - 7, - 8, + 11, + 12, ], "type": "Punctuator", "value": "=", @@ -64649,17 +72481,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 10, + "column": 14, "line": 1, }, "start": Object { - "column": 9, + "column": 13, "line": 1, }, }, "range": Array [ - 9, - 10, + 13, + 14, ], "type": "Identifier", "value": "b", @@ -64667,17 +72499,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 11, + "column": 15, "line": 1, }, "start": Object { - "column": 10, + "column": 14, "line": 1, }, }, "range": Array [ - 10, - 11, + 14, + 15, ], "type": "Punctuator", "value": ";", @@ -64687,256 +72519,219 @@ Object { } `; -exports[`javascript fixtures/destructuring-and-spread/var-complex-destructured.src 1`] = ` +exports[`javascript fixtures/directives/block.src 1`] = ` Object { "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "elements": Array [ - Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, + "async": false, + "body": Object { + "body": Array [ + Object { + "directive": "use strict", + "expression": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 2, }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 7, - 8, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 7, - 8, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 7, - 8, - ], - "type": "Identifier", - }, - }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "name": "b", - "range": Array [ - 10, - 11, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 10, - 11, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "name": "b", - "range": Array [ - 10, - 11, - ], - "type": "Identifier", - }, - }, - ], - "range": Array [ - 5, - 13, - ], - "type": "ObjectPattern", + "start": Object { + "column": 2, + "line": 2, + }, + }, + "range": Array [ + 19, + 31, + ], + "raw": "\\"use strict\\"", + "type": "Literal", + "value": "use strict", + }, + "loc": Object { + "end": Object { + "column": 15, + "line": 2, + }, + "start": Object { + "column": 2, + "line": 2, }, + }, + "range": Array [ + 19, + 32, + ], + "type": "ExpressionStatement", + }, + Object { + "declarations": Array [ Object { - "argument": Object { + "id": Object { "loc": Object { "end": Object { - "column": 19, - "line": 1, + "column": 7, + "line": 3, }, "start": Object { - "column": 18, - "line": 1, + "column": 6, + "line": 3, }, }, - "name": "c", + "name": "a", "range": Array [ - 18, - 19, + 39, + 40, ], "type": "Identifier", }, + "init": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 3, + }, + "start": Object { + "column": 10, + "line": 3, + }, + }, + "range": Array [ + 43, + 44, + ], + "raw": "1", + "type": "Literal", + "value": 1, + }, "loc": Object { "end": Object { - "column": 19, - "line": 1, + "column": 11, + "line": 3, }, "start": Object { - "column": 15, - "line": 1, + "column": 6, + "line": 3, }, }, "range": Array [ - 15, - 19, + 39, + 44, ], - "type": "RestElement", + "type": "VariableDeclarator", }, ], + "kind": "var", "loc": Object { "end": Object { - "column": 20, - "line": 1, + "column": 12, + "line": 3, }, "start": Object { - "column": 4, - "line": 1, + "column": 2, + "line": 3, }, }, "range": Array [ - 4, - 20, + 35, + 45, ], - "type": "ArrayPattern", + "type": "VariableDeclaration", }, - "init": Object { + Object { + "expression": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 4, + }, + "start": Object { + "column": 2, + "line": 4, + }, + }, + "range": Array [ + 48, + 60, + ], + "raw": "\\"use strict\\"", + "type": "Literal", + "value": "use strict", + }, "loc": Object { "end": Object { - "column": 24, - "line": 1, + "column": 15, + "line": 4, }, "start": Object { - "column": 23, - "line": 1, + "column": 2, + "line": 4, }, }, - "name": "d", "range": Array [ - 23, - 24, + 48, + 61, ], - "type": "Identifier", + "type": "ExpressionStatement", }, - "loc": Object { - "end": Object { - "column": 24, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, + ], + "loc": Object { + "end": Object { + "column": 1, + "line": 5, + }, + "start": Object { + "column": 15, + "line": 1, }, - "range": Array [ - 4, - 24, - ], - "type": "VariableDeclarator", }, - ], - "kind": "var", + "range": Array [ + 15, + 63, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "name": "foo", + "range": Array [ + 9, + 12, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 25, - "line": 1, + "column": 1, + "line": 5, }, "start": Object { "column": 0, "line": 1, }, }, + "params": Array [], "range": Array [ 0, - 25, + 63, ], - "type": "VariableDeclaration", + "type": "FunctionDeclaration", }, ], "loc": Object { "end": Object { - "column": 25, - "line": 1, + "column": 0, + "line": 6, }, "start": Object { "column": 0, @@ -64945,14 +72740,14 @@ Object { }, "range": Array [ 0, - 25, + 64, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, + "column": 8, "line": 1, }, "start": Object { @@ -64962,422 +72757,851 @@ Object { }, "range": Array [ 0, - 3, + 8, ], "type": "Keyword", - "value": "var", + "value": "function", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 12, "line": 1, }, "start": Object { - "column": 4, + "column": 9, "line": 1, }, }, "range": Array [ - 4, - 5, + 9, + 12, + ], + "type": "Identifier", + "value": "foo", + }, + Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "range": Array [ + 12, + 13, ], "type": "Punctuator", - "value": "[", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 6, + "column": 14, "line": 1, }, "start": Object { - "column": 5, + "column": 13, "line": 1, }, }, "range": Array [ - 5, - 6, + 13, + 14, ], "type": "Punctuator", - "value": "{", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 16, "line": 1, }, "start": Object { - "column": 7, + "column": 15, "line": 1, }, }, "range": Array [ - 7, - 8, + 15, + 16, ], - "type": "Identifier", - "value": "a", + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 2, + }, + "start": Object { + "column": 2, + "line": 2, + }, + }, + "range": Array [ + 19, + 31, + ], + "type": "String", + "value": "\\"use strict\\"", }, Object { "loc": Object { "end": Object { - "column": 9, - "line": 1, + "column": 15, + "line": 2, }, "start": Object { - "column": 8, - "line": 1, + "column": 14, + "line": 2, }, }, "range": Array [ - 8, - 9, + 31, + 32, ], "type": "Punctuator", - "value": ",", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 11, - "line": 1, + "column": 5, + "line": 3, }, "start": Object { - "column": 10, - "line": 1, + "column": 2, + "line": 3, }, }, "range": Array [ - 10, - 11, + 35, + 38, ], - "type": "Identifier", - "value": "b", + "type": "Keyword", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 13, - "line": 1, + "column": 7, + "line": 3, }, "start": Object { - "column": 12, - "line": 1, + "column": 6, + "line": 3, }, }, "range": Array [ - 12, - 13, + 39, + 40, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 14, - "line": 1, + "column": 9, + "line": 3, }, "start": Object { - "column": 13, - "line": 1, + "column": 8, + "line": 3, }, }, "range": Array [ - 13, - 14, + 41, + 42, ], "type": "Punctuator", - "value": ",", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 18, - "line": 1, + "column": 11, + "line": 3, }, "start": Object { - "column": 15, - "line": 1, + "column": 10, + "line": 3, }, }, "range": Array [ - 15, - 18, + 43, + 44, ], - "type": "Punctuator", - "value": "...", + "type": "Numeric", + "value": "1", }, Object { "loc": Object { "end": Object { - "column": 19, - "line": 1, + "column": 12, + "line": 3, }, "start": Object { - "column": 18, - "line": 1, + "column": 11, + "line": 3, }, }, "range": Array [ - 18, - 19, + 44, + 45, ], - "type": "Identifier", - "value": "c", + "type": "Punctuator", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 20, - "line": 1, + "column": 14, + "line": 4, }, "start": Object { - "column": 19, - "line": 1, + "column": 2, + "line": 4, }, }, "range": Array [ - 19, - 20, + 48, + 60, ], - "type": "Punctuator", - "value": "]", + "type": "String", + "value": "\\"use strict\\"", }, Object { "loc": Object { "end": Object { - "column": 22, - "line": 1, + "column": 15, + "line": 4, }, "start": Object { - "column": 21, - "line": 1, + "column": 14, + "line": 4, }, }, "range": Array [ - 21, - 22, + 60, + 61, ], "type": "Punctuator", - "value": "=", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 24, - "line": 1, + "column": 1, + "line": 5, }, "start": Object { - "column": 23, - "line": 1, + "column": 0, + "line": 5, }, }, "range": Array [ - 23, - 24, + 62, + 63, ], - "type": "Identifier", - "value": "d", + "type": "Punctuator", + "value": "}", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/directives/directive-in-class.src 1`] = ` +Object { + "body": Array [ Object { + "directive": "use strict", + "expression": Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 12, + ], + "raw": "\\"use strict\\"", + "type": "Literal", + "value": "use strict", + }, "loc": Object { "end": Object { - "column": 25, + "column": 13, "line": 1, }, "start": Object { - "column": 24, + "column": 0, "line": 1, }, }, "range": Array [ - 24, - 25, + 0, + 13, ], - "type": "Punctuator", - "value": ";", + "type": "ExpressionStatement", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/destructuring-and-spread/var-destructured-array-literal.src 1`] = ` -Object { - "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "elements": Array [ - Object { + "body": Object { + "body": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 4, + }, + "start": Object { + "column": 4, + "line": 4, + }, + }, + "name": "constructor", + "range": Array [ + 31, + 42, + ], + "type": "Identifier", + }, + "kind": "constructor", + "loc": Object { + "end": Object { + "column": 5, + "line": 6, + }, + "start": Object { + "column": 4, + "line": 4, + }, + }, + "range": Array [ + 31, + 75, + ], + "static": false, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [ + Object { + "directive": "use strict", + "expression": Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 5, + }, + "start": Object { + "column": 8, + "line": 5, + }, + }, + "range": Array [ + 56, + 68, + ], + "raw": "\\"use strict\\"", + "type": "Literal", + "value": "use strict", + }, + "loc": Object { + "end": Object { + "column": 21, + "line": 5, + }, + "start": Object { + "column": 8, + "line": 5, + }, + }, + "range": Array [ + 56, + 69, + ], + "type": "ExpressionStatement", + }, + ], "loc": Object { "end": Object { - "column": 6, - "line": 1, + "column": 5, + "line": 6, + }, + "start": Object { + "column": 19, + "line": 4, + }, + }, + "range": Array [ + 46, + 75, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 5, + "line": 6, + }, + "start": Object { + "column": 16, + "line": 4, + }, + }, + "params": Array [], + "range": Array [ + 43, + 75, + ], + "type": "FunctionExpression", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 8, + }, + "start": Object { + "column": 8, + "line": 8, + }, + }, + "name": "foo", + "range": Array [ + 85, + 88, + ], + "type": "Identifier", + }, + "kind": "get", + "loc": Object { + "end": Object { + "column": 5, + "line": 10, + }, + "start": Object { + "column": 4, + "line": 8, + }, + }, + "range": Array [ + 81, + 121, + ], + "static": false, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [ + Object { + "directive": "use strict", + "expression": Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 9, + }, + "start": Object { + "column": 8, + "line": 9, + }, + }, + "range": Array [ + 102, + 114, + ], + "raw": "\\"use strict\\"", + "type": "Literal", + "value": "use strict", + }, + "loc": Object { + "end": Object { + "column": 21, + "line": 9, + }, + "start": Object { + "column": 8, + "line": 9, + }, + }, + "range": Array [ + 102, + 115, + ], + "type": "ExpressionStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 5, + "line": 10, }, "start": Object { + "column": 15, + "line": 8, + }, + }, + "range": Array [ + 92, + 121, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 5, + "line": 10, + }, + "start": Object { + "column": 12, + "line": 8, + }, + }, + "params": Array [], + "range": Array [ + 89, + 121, + ], + "type": "FunctionExpression", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 12, + }, + "start": Object { + "column": 8, + "line": 12, + }, + }, + "name": "foo", + "range": Array [ + 131, + 134, + ], + "type": "Identifier", + }, + "kind": "set", + "loc": Object { + "end": Object { + "column": 5, + "line": 14, + }, + "start": Object { + "column": 4, + "line": 12, + }, + }, + "range": Array [ + 127, + 172, + ], + "static": false, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [ + Object { + "directive": "use strict", + "expression": Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 13, + }, + "start": Object { + "column": 8, + "line": 13, + }, + }, + "range": Array [ + 153, + 165, + ], + "raw": "\\"use strict\\"", + "type": "Literal", + "value": "use strict", + }, + "loc": Object { + "end": Object { + "column": 21, + "line": 13, + }, + "start": Object { + "column": 8, + "line": 13, + }, + }, + "range": Array [ + 153, + 166, + ], + "type": "ExpressionStatement", + }, + ], + "loc": Object { + "end": Object { "column": 5, - "line": 1, + "line": 14, + }, + "start": Object { + "column": 20, + "line": 12, }, }, - "name": "a", "range": Array [ - 5, - 6, + 143, + 172, ], - "type": "Identifier", + "type": "BlockStatement", }, - Object { - "argument": Object { - "elements": Array [ - Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "name": "b", - "range": Array [ - 12, - 13, - ], - "type": "Identifier", + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 5, + "line": 14, + }, + "start": Object { + "column": 12, + "line": 12, + }, + }, + "params": Array [ + Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 12, }, - Object { + "start": Object { + "column": 13, + "line": 12, + }, + }, + "name": "value", + "range": Array [ + 136, + 141, + ], + "type": "Identifier", + }, + ], + "range": Array [ + 135, + 172, + ], + "type": "FunctionExpression", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 16, + }, + "start": Object { + "column": 4, + "line": 16, + }, + }, + "name": "method", + "range": Array [ + 178, + 184, + ], + "type": "Identifier", + }, + "kind": "method", + "loc": Object { + "end": Object { + "column": 5, + "line": 18, + }, + "start": Object { + "column": 4, + "line": 16, + }, + }, + "range": Array [ + 178, + 217, + ], + "static": false, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [ + Object { + "directive": "use strict", + "expression": Object { "loc": Object { "end": Object { - "column": 16, - "line": 1, + "column": 20, + "line": 17, }, "start": Object { - "column": 15, - "line": 1, + "column": 8, + "line": 17, }, }, - "name": "c", "range": Array [ - 15, - 16, + 198, + 210, ], - "type": "Identifier", - }, - ], - "loc": Object { - "end": Object { - "column": 17, - "line": 1, + "raw": "\\"use strict\\"", + "type": "Literal", + "value": "use strict", }, - "start": Object { - "column": 11, - "line": 1, + "loc": Object { + "end": Object { + "column": 21, + "line": 17, + }, + "start": Object { + "column": 8, + "line": 17, + }, }, + "range": Array [ + 198, + 211, + ], + "type": "ExpressionStatement", }, - "range": Array [ - 11, - 17, - ], - "type": "ArrayPattern", - }, + ], "loc": Object { "end": Object { - "column": 17, - "line": 1, + "column": 5, + "line": 18, }, "start": Object { - "column": 8, - "line": 1, + "column": 14, + "line": 16, }, }, "range": Array [ - 8, - 17, + 188, + 217, ], - "type": "RestElement", - }, - ], - "loc": Object { - "end": Object { - "column": 18, - "line": 1, + "type": "BlockStatement", }, - "start": Object { - "column": 4, - "line": 1, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 5, + "line": 18, + }, + "start": Object { + "column": 11, + "line": 16, + }, }, + "params": Array [], + "range": Array [ + 185, + 217, + ], + "type": "FunctionExpression", }, - "range": Array [ - 4, - 18, - ], - "type": "ArrayPattern", }, - "init": Object { - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 21, - "line": 1, - }, - }, - "name": "d", - "range": Array [ - 21, - 22, - ], - "type": "Identifier", + ], + "loc": Object { + "end": Object { + "column": 1, + "line": 19, }, - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, + "start": Object { + "column": 10, + "line": 3, }, - "range": Array [ - 4, - 22, - ], - "type": "VariableDeclarator", }, - ], - "kind": "var", + "range": Array [ + 25, + 219, + ], + "type": "ClassBody", + }, + "id": Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 3, + }, + "start": Object { + "column": 6, + "line": 3, + }, + }, + "name": "Foo", + "range": Array [ + 21, + 24, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 23, - "line": 1, + "column": 1, + "line": 19, }, "start": Object { "column": 0, - "line": 1, + "line": 3, }, }, "range": Array [ - 0, - 23, + 15, + 219, ], - "type": "VariableDeclaration", + "superClass": null, + "type": "ClassDeclaration", }, ], "loc": Object { "end": Object { - "column": 23, - "line": 1, + "column": 0, + "line": 20, }, "start": Object { "column": 0, @@ -65386,14 +73610,14 @@ Object { }, "range": Array [ 0, - 23, + 220, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, + "column": 12, "line": 1, }, "start": Object { @@ -65403,861 +73627,665 @@ Object { }, "range": Array [ 0, - 3, + 12, ], - "type": "Keyword", - "value": "var", + "type": "String", + "value": "\\"use strict\\"", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 13, "line": 1, }, "start": Object { - "column": 4, + "column": 12, "line": 1, }, }, "range": Array [ - 4, - 5, + 12, + 13, ], "type": "Punctuator", - "value": "[", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 6, - "line": 1, + "column": 5, + "line": 3, }, "start": Object { - "column": 5, - "line": 1, + "column": 0, + "line": 3, }, }, "range": Array [ - 5, - 6, + 15, + 20, ], - "type": "Identifier", - "value": "a", + "type": "Keyword", + "value": "class", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 1, + "column": 9, + "line": 3, }, "start": Object { "column": 6, - "line": 1, + "line": 3, }, }, "range": Array [ - 6, - 7, + 21, + 24, ], - "type": "Punctuator", - "value": ",", + "type": "Identifier", + "value": "Foo", }, Object { "loc": Object { "end": Object { "column": 11, - "line": 1, + "line": 3, }, "start": Object { - "column": 8, - "line": 1, + "column": 10, + "line": 3, }, }, "range": Array [ - 8, - 11, + 25, + 26, ], "type": "Punctuator", - "value": "...", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 12, - "line": 1, + "column": 15, + "line": 4, }, "start": Object { - "column": 11, - "line": 1, + "column": 4, + "line": 4, }, }, "range": Array [ - 11, - 12, + 31, + 42, + ], + "type": "Identifier", + "value": "constructor", + }, + Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 4, + }, + "start": Object { + "column": 16, + "line": 4, + }, + }, + "range": Array [ + 43, + 44, ], "type": "Punctuator", - "value": "[", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 13, - "line": 1, + "column": 18, + "line": 4, }, "start": Object { - "column": 12, - "line": 1, + "column": 17, + "line": 4, }, }, "range": Array [ - 12, - 13, + 44, + 45, ], - "type": "Identifier", - "value": "b", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 14, - "line": 1, + "column": 20, + "line": 4, }, "start": Object { - "column": 13, - "line": 1, + "column": 19, + "line": 4, }, }, "range": Array [ - 13, - 14, + 46, + 47, ], "type": "Punctuator", - "value": ",", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 16, - "line": 1, + "column": 20, + "line": 5, }, "start": Object { - "column": 15, - "line": 1, + "column": 8, + "line": 5, }, }, "range": Array [ - 15, - 16, + 56, + 68, ], - "type": "Identifier", - "value": "c", + "type": "String", + "value": "\\"use strict\\"", }, Object { "loc": Object { "end": Object { - "column": 17, - "line": 1, + "column": 21, + "line": 5, }, "start": Object { - "column": 16, - "line": 1, + "column": 20, + "line": 5, }, }, "range": Array [ - 16, - 17, + 68, + 69, ], "type": "Punctuator", - "value": "]", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 18, - "line": 1, + "column": 5, + "line": 6, }, "start": Object { - "column": 17, - "line": 1, + "column": 4, + "line": 6, }, }, "range": Array [ - 17, - 18, + 74, + 75, ], "type": "Punctuator", - "value": "]", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 20, - "line": 1, + "column": 7, + "line": 8, }, "start": Object { - "column": 19, - "line": 1, + "column": 4, + "line": 8, }, }, "range": Array [ - 19, - 20, + 81, + 84, + ], + "type": "Identifier", + "value": "get", + }, + Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 8, + }, + "start": Object { + "column": 8, + "line": 8, + }, + }, + "range": Array [ + 85, + 88, + ], + "type": "Identifier", + "value": "foo", + }, + Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 8, + }, + "start": Object { + "column": 12, + "line": 8, + }, + }, + "range": Array [ + 89, + 90, ], "type": "Punctuator", - "value": "=", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 22, - "line": 1, + "column": 14, + "line": 8, }, "start": Object { - "column": 21, - "line": 1, + "column": 13, + "line": 8, }, }, "range": Array [ - 21, - 22, + 90, + 91, ], - "type": "Identifier", - "value": "d", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 23, - "line": 1, + "column": 16, + "line": 8, }, "start": Object { - "column": 22, - "line": 1, + "column": 15, + "line": 8, }, }, "range": Array [ - 22, - 23, + 92, + 93, ], "type": "Punctuator", - "value": ";", + "value": "{", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/destructuring-and-spread/var-multi-destructured.src 1`] = ` -Object { - "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "elements": Array [ - Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 5, - 6, - ], - "type": "Identifier", - }, - Object { - "argument": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "name": "b", - "range": Array [ - 11, - 12, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "range": Array [ - 8, - 12, - ], - "type": "RestElement", - }, - ], - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 13, - ], - "type": "ArrayPattern", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "name": "c", - "range": Array [ - 16, - 17, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 17, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "var", "loc": Object { "end": Object { - "column": 18, - "line": 1, + "column": 20, + "line": 9, }, "start": Object { - "column": 0, - "line": 1, + "column": 8, + "line": 9, }, }, "range": Array [ - 0, - 18, + 102, + 114, ], - "type": "VariableDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "String", + "value": "\\"use strict\\"", }, - }, - "range": Array [ - 0, - 18, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, - "line": 1, + "column": 21, + "line": 9, }, "start": Object { - "column": 0, - "line": 1, + "column": 20, + "line": 9, }, }, "range": Array [ - 0, - 3, + 114, + 115, ], - "type": "Keyword", - "value": "var", + "type": "Punctuator", + "value": ";", }, Object { "loc": Object { "end": Object { "column": 5, - "line": 1, + "line": 10, }, "start": Object { "column": 4, - "line": 1, + "line": 10, }, }, "range": Array [ - 4, - 5, + 120, + 121, ], "type": "Punctuator", - "value": "[", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 6, - "line": 1, + "column": 7, + "line": 12, }, "start": Object { - "column": 5, - "line": 1, + "column": 4, + "line": 12, }, }, "range": Array [ - 5, - 6, + 127, + 130, ], "type": "Identifier", - "value": "a", + "value": "set", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 1, + "column": 11, + "line": 12, }, "start": Object { - "column": 6, - "line": 1, + "column": 8, + "line": 12, }, }, "range": Array [ - 6, - 7, + 131, + 134, ], - "type": "Punctuator", - "value": ",", + "type": "Identifier", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 11, - "line": 1, + "column": 13, + "line": 12, }, "start": Object { - "column": 8, - "line": 1, + "column": 12, + "line": 12, }, }, "range": Array [ - 8, - 11, + 135, + 136, ], "type": "Punctuator", - "value": "...", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 12, - "line": 1, + "column": 18, + "line": 12, }, "start": Object { - "column": 11, - "line": 1, + "column": 13, + "line": 12, }, }, "range": Array [ - 11, - 12, + 136, + 141, ], "type": "Identifier", - "value": "b", + "value": "value", }, Object { "loc": Object { "end": Object { - "column": 13, - "line": 1, + "column": 19, + "line": 12, }, "start": Object { - "column": 12, - "line": 1, + "column": 18, + "line": 12, }, }, "range": Array [ - 12, - 13, + 141, + 142, ], "type": "Punctuator", - "value": "]", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 15, - "line": 1, + "column": 21, + "line": 12, }, "start": Object { - "column": 14, - "line": 1, + "column": 20, + "line": 12, }, }, "range": Array [ - 14, - 15, + 143, + 144, ], "type": "Punctuator", - "value": "=", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 17, - "line": 1, + "column": 20, + "line": 13, }, "start": Object { - "column": 16, - "line": 1, + "column": 8, + "line": 13, }, }, "range": Array [ - 16, - 17, + 153, + 165, ], - "type": "Identifier", - "value": "c", + "type": "String", + "value": "\\"use strict\\"", }, Object { "loc": Object { "end": Object { - "column": 18, - "line": 1, + "column": 21, + "line": 13, }, "start": Object { - "column": 17, - "line": 1, + "column": 20, + "line": 13, }, }, "range": Array [ - 17, - 18, + 165, + 166, ], "type": "Punctuator", "value": ";", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/destructuring-and-spread/var-single-destructured.src 1`] = ` -Object { - "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "elements": Array [ - Object { - "argument": Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 8, - 9, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 9, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "range": Array [ - 5, - 9, - ], - "type": "RestElement", - }, - ], - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 10, - ], - "type": "ArrayPattern", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "name": "b", - "range": Array [ - 13, - 14, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 14, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "var", "loc": Object { "end": Object { - "column": 15, - "line": 1, + "column": 5, + "line": 14, }, "start": Object { - "column": 0, - "line": 1, + "column": 4, + "line": 14, }, }, "range": Array [ - 0, - 15, + 171, + 172, ], - "type": "VariableDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Punctuator", + "value": "}", }, - }, - "range": Array [ - 0, - 15, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, - "line": 1, + "column": 10, + "line": 16, }, "start": Object { - "column": 0, - "line": 1, + "column": 4, + "line": 16, }, }, "range": Array [ - 0, - 3, + 178, + 184, ], - "type": "Keyword", - "value": "var", + "type": "Identifier", + "value": "method", }, Object { "loc": Object { "end": Object { - "column": 5, - "line": 1, + "column": 12, + "line": 16, }, "start": Object { - "column": 4, - "line": 1, + "column": 11, + "line": 16, }, }, "range": Array [ - 4, - 5, + 185, + 186, ], "type": "Punctuator", - "value": "[", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 8, - "line": 1, + "column": 13, + "line": 16, }, "start": Object { - "column": 5, - "line": 1, + "column": 12, + "line": 16, }, }, "range": Array [ - 5, - 8, + 186, + 187, ], "type": "Punctuator", - "value": "...", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 9, - "line": 1, + "column": 15, + "line": 16, }, "start": Object { - "column": 8, - "line": 1, + "column": 14, + "line": 16, }, }, "range": Array [ - 8, - 9, + 188, + 189, ], - "type": "Identifier", - "value": "a", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 10, - "line": 1, + "column": 20, + "line": 17, }, "start": Object { - "column": 9, - "line": 1, + "column": 8, + "line": 17, }, }, "range": Array [ - 9, - 10, + 198, + 210, ], - "type": "Punctuator", - "value": "]", + "type": "String", + "value": "\\"use strict\\"", }, Object { "loc": Object { "end": Object { - "column": 12, - "line": 1, + "column": 21, + "line": 17, }, "start": Object { - "column": 11, - "line": 1, + "column": 20, + "line": 17, }, }, "range": Array [ - 11, - 12, + 210, + 211, ], "type": "Punctuator", - "value": "=", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 14, - "line": 1, + "column": 5, + "line": 18, }, "start": Object { - "column": 13, - "line": 1, + "column": 4, + "line": 18, }, }, "range": Array [ - 13, - 14, + 216, + 217, ], - "type": "Identifier", - "value": "b", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 15, - "line": 1, + "column": 1, + "line": 19, }, "start": Object { - "column": 14, - "line": 1, + "column": 0, + "line": 19, }, }, "range": Array [ - 14, - 15, + 218, + 219, ], "type": "Punctuator", - "value": ";", + "value": "}", }, ], "type": "Program", } `; -exports[`javascript fixtures/directives/block.src 1`] = ` +exports[`javascript fixtures/directives/function-non-strict.src 1`] = ` Object { "body": Array [ Object { @@ -66265,11 +74293,11 @@ Object { "body": Object { "body": Array [ Object { - "directive": "use strict", + "directive": "use smth", "expression": Object { "loc": Object { "end": Object { - "column": 14, + "column": 12, "line": 2, }, "start": Object { @@ -66278,16 +74306,16 @@ Object { }, }, "range": Array [ - 19, - 31, + 20, + 30, ], - "raw": "\\"use strict\\"", + "raw": "\\"use smth\\"", "type": "Literal", - "value": "use strict", + "value": "use smth", }, "loc": Object { "end": Object { - "column": 15, + "column": 12, "line": 2, }, "start": Object { @@ -66296,118 +74324,81 @@ Object { }, }, "range": Array [ - 19, - 32, + 20, + 30, ], "type": "ExpressionStatement", }, Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 3, - }, - "start": Object { - "column": 6, - "line": 3, - }, - }, - "name": "a", - "range": Array [ - 39, - 40, - ], - "type": "Identifier", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 3, - }, - "start": Object { - "column": 10, - "line": 3, - }, - }, - "range": Array [ - 43, - 44, - ], - "raw": "1", - "type": "Literal", - "value": 1, - }, + "expression": Object { + "left": Object { "loc": Object { "end": Object { - "column": 11, + "column": 3, "line": 3, }, "start": Object { - "column": 6, + "column": 2, "line": 3, }, }, "range": Array [ - 39, - 44, + 33, + 34, ], - "type": "VariableDeclarator", - }, - ], - "kind": "var", - "loc": Object { - "end": Object { - "column": 12, - "line": 3, - }, - "start": Object { - "column": 2, - "line": 3, + "raw": "1", + "type": "Literal", + "value": 1, }, - }, - "range": Array [ - 35, - 45, - ], - "type": "VariableDeclaration", - }, - Object { - "expression": Object { "loc": Object { "end": Object { - "column": 14, - "line": 4, + "column": 5, + "line": 3, }, "start": Object { "column": 2, - "line": 4, + "line": 3, }, }, + "operator": "+", "range": Array [ - 48, - 60, + 33, + 36, ], - "raw": "\\"use strict\\"", - "type": "Literal", - "value": "use strict", + "right": Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 3, + }, + }, + "range": Array [ + 35, + 36, + ], + "raw": "1", + "type": "Literal", + "value": 1, + }, + "type": "BinaryExpression", }, "loc": Object { "end": Object { - "column": 15, - "line": 4, + "column": 6, + "line": 3, }, "start": Object { "column": 2, - "line": 4, + "line": 3, }, }, "range": Array [ - 48, - 61, + 33, + 37, ], "type": "ExpressionStatement", }, @@ -66415,16 +74406,16 @@ Object { "loc": Object { "end": Object { "column": 1, - "line": 5, + "line": 4, }, "start": Object { - "column": 15, + "column": 16, "line": 1, }, }, "range": Array [ - 15, - 63, + 16, + 39, ], "type": "BlockStatement", }, @@ -66451,7 +74442,7 @@ Object { "loc": Object { "end": Object { "column": 1, - "line": 5, + "line": 4, }, "start": Object { "column": 0, @@ -66461,7 +74452,7 @@ Object { "params": Array [], "range": Array [ 0, - 63, + 39, ], "type": "FunctionDeclaration", }, @@ -66469,7 +74460,7 @@ Object { "loc": Object { "end": Object { "column": 0, - "line": 6, + "line": 5, }, "start": Object { "column": 0, @@ -66478,7 +74469,7 @@ Object { }, "range": Array [ 0, - 64, + 40, ], "sourceType": "script", "tokens": Array [ @@ -66521,17 +74512,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 13, + "column": 14, "line": 1, }, "start": Object { - "column": 12, + "column": 13, "line": 1, }, }, "range": Array [ - 12, 13, + 14, ], "type": "Punctuator", "value": "(", @@ -66539,17 +74530,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 14, + "column": 15, "line": 1, }, "start": Object { - "column": 13, + "column": 14, "line": 1, }, }, "range": Array [ - 13, 14, + 15, ], "type": "Punctuator", "value": ")", @@ -66557,17 +74548,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 16, + "column": 17, "line": 1, }, "start": Object { - "column": 15, + "column": 16, "line": 1, }, }, "range": Array [ - 15, 16, + 17, ], "type": "Punctuator", "value": "{", @@ -66575,7 +74566,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 14, + "column": 12, "line": 2, }, "start": Object { @@ -66584,34 +74575,16 @@ Object { }, }, "range": Array [ - 19, - 31, + 20, + 30, ], "type": "String", - "value": "\\"use strict\\"", - }, - Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 2, - }, - "start": Object { - "column": 14, - "line": 2, - }, - }, - "range": Array [ - 31, - 32, - ], - "type": "Punctuator", - "value": ";", + "value": "\\"use smth\\"", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 3, "line": 3, }, "start": Object { @@ -66620,62 +74593,44 @@ Object { }, }, "range": Array [ - 35, - 38, - ], - "type": "Keyword", - "value": "var", - }, - Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 3, - }, - "start": Object { - "column": 6, - "line": 3, - }, - }, - "range": Array [ - 39, - 40, + 33, + 34, ], - "type": "Identifier", - "value": "a", + "type": "Numeric", + "value": "1", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 4, "line": 3, }, "start": Object { - "column": 8, + "column": 3, "line": 3, }, }, "range": Array [ - 41, - 42, + 34, + 35, ], "type": "Punctuator", - "value": "=", + "value": "+", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 5, "line": 3, }, "start": Object { - "column": 10, + "column": 4, "line": 3, }, }, "range": Array [ - 43, - 44, + 35, + 36, ], "type": "Numeric", "value": "1", @@ -66683,53 +74638,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 12, + "column": 6, "line": 3, }, "start": Object { - "column": 11, + "column": 5, "line": 3, }, }, "range": Array [ - 44, - 45, - ], - "type": "Punctuator", - "value": ";", - }, - Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 4, - }, - "start": Object { - "column": 2, - "line": 4, - }, - }, - "range": Array [ - 48, - 60, - ], - "type": "String", - "value": "\\"use strict\\"", - }, - Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 4, - }, - "start": Object { - "column": 14, - "line": 4, - }, - }, - "range": Array [ - 60, - 61, + 36, + 37, ], "type": "Punctuator", "value": ";", @@ -66738,16 +74657,16 @@ Object { "loc": Object { "end": Object { "column": 1, - "line": 5, + "line": 4, }, "start": Object { "column": 0, - "line": 5, + "line": 4, }, }, "range": Array [ - 62, - 63, + 38, + 39, ], "type": "Punctuator", "value": "}", @@ -66757,589 +74676,403 @@ Object { } `; -exports[`javascript fixtures/directives/directive-in-class.src 1`] = ` +exports[`javascript fixtures/directives/non-directive-string.src 1`] = ` Object { "body": Array [ Object { - "directive": "use strict", - "expression": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 12, - ], - "raw": "\\"use strict\\"", - "type": "Literal", - "value": "use strict", - }, - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 13, - ], - "type": "ExpressionStatement", - }, - Object { - "body": Object { + "alternate": null, + "consequent": Object { "body": Array [ Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 4, - }, - "start": Object { - "column": 4, - "line": 4, - }, - }, - "name": "constructor", - "range": Array [ - 31, - 42, - ], - "type": "Identifier", - }, - "kind": "constructor", - "loc": Object { - "end": Object { - "column": 5, - "line": 6, - }, - "start": Object { - "column": 4, - "line": 4, - }, - }, - "range": Array [ - 31, - 75, - ], - "static": false, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [ - Object { - "directive": "use strict", - "expression": Object { - "loc": Object { - "end": Object { - "column": 20, - "line": 5, - }, - "start": Object { - "column": 8, - "line": 5, - }, - }, - "range": Array [ - 56, - 68, - ], - "raw": "\\"use strict\\"", - "type": "Literal", - "value": "use strict", - }, - "loc": Object { - "end": Object { - "column": 21, - "line": 5, - }, - "start": Object { - "column": 8, - "line": 5, - }, - }, - "range": Array [ - 56, - 69, - ], - "type": "ExpressionStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 5, - "line": 6, - }, - "start": Object { - "column": 19, - "line": 4, - }, - }, - "range": Array [ - 46, - 75, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, + "expression": Object { "loc": Object { "end": Object { - "column": 5, - "line": 6, - }, - "start": Object { "column": 16, - "line": 4, - }, - }, - "params": Array [], - "range": Array [ - 43, - 75, - ], - "type": "FunctionExpression", - }, - }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 8, + "line": 2, }, "start": Object { - "column": 8, - "line": 8, + "column": 4, + "line": 2, }, }, - "name": "foo", "range": Array [ - 85, - 88, + 16, + 28, ], - "type": "Identifier", + "raw": "\\"use strict\\"", + "type": "Literal", + "value": "use strict", }, - "kind": "get", "loc": Object { "end": Object { - "column": 5, - "line": 10, + "column": 16, + "line": 2, }, "start": Object { "column": 4, - "line": 8, + "line": 2, }, }, "range": Array [ - 81, - 121, + 16, + 28, ], - "static": false, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [ - Object { - "directive": "use strict", - "expression": Object { - "loc": Object { - "end": Object { - "column": 20, - "line": 9, - }, - "start": Object { - "column": 8, - "line": 9, - }, - }, - "range": Array [ - 102, - 114, - ], - "raw": "\\"use strict\\"", - "type": "Literal", - "value": "use strict", - }, + "type": "ExpressionStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 1, + "line": 3, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "range": Array [ + 10, + 30, + ], + "type": "BlockStatement", + }, + "loc": Object { + "end": Object { + "column": 1, + "line": 3, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 30, + ], + "test": Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 8, + ], + "raw": "true", + "type": "Literal", + "value": true, + }, + "type": "IfStatement", + }, + Object { + "cases": Array [ + Object { + "consequent": Array [ + Object { + "body": Array [ + Object { + "expression": Object { "loc": Object { "end": Object { - "column": 21, - "line": 9, + "column": 20, + "line": 7, }, "start": Object { "column": 8, - "line": 9, + "line": 7, }, }, "range": Array [ - 102, - 115, + 74, + 86, ], - "type": "ExpressionStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 5, - "line": 10, + "raw": "\\"use strict\\"", + "type": "Literal", + "value": "use strict", }, - "start": Object { - "column": 15, - "line": 8, + "loc": Object { + "end": Object { + "column": 20, + "line": 7, + }, + "start": Object { + "column": 8, + "line": 7, + }, }, + "range": Array [ + 74, + 86, + ], + "type": "ExpressionStatement", }, - "range": Array [ - 92, - 121, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, + ], "loc": Object { "end": Object { "column": 5, - "line": 10, - }, - "start": Object { - "column": 12, "line": 8, }, - }, - "params": Array [], - "range": Array [ - 89, - 121, - ], - "type": "FunctionExpression", - }, - }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 12, - }, "start": Object { - "column": 8, - "line": 12, + "column": 16, + "line": 6, }, }, - "name": "foo", "range": Array [ - 131, - 134, + 64, + 92, ], - "type": "Identifier", + "type": "BlockStatement", }, - "kind": "set", + ], + "loc": Object { + "end": Object { + "column": 5, + "line": 8, + }, + "start": Object { + "column": 4, + "line": 6, + }, + }, + "range": Array [ + 52, + 92, + ], + "test": Object { "loc": Object { "end": Object { - "column": 5, - "line": 14, + "column": 14, + "line": 6, }, "start": Object { - "column": 4, - "line": 12, + "column": 9, + "line": 6, }, }, "range": Array [ - 127, - 172, + 57, + 62, ], - "static": false, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [ - Object { - "directive": "use strict", - "expression": Object { - "loc": Object { - "end": Object { - "column": 20, - "line": 13, - }, - "start": Object { - "column": 8, - "line": 13, - }, - }, - "range": Array [ - 153, - 165, - ], - "raw": "\\"use strict\\"", - "type": "Literal", - "value": "use strict", - }, + "raw": "false", + "type": "Literal", + "value": false, + }, + "type": "SwitchCase", + }, + Object { + "consequent": Array [ + Object { + "body": Array [ + Object { + "expression": Object { "loc": Object { "end": Object { - "column": 21, - "line": 13, + "column": 20, + "line": 10, }, "start": Object { "column": 8, - "line": 13, + "line": 10, }, }, "range": Array [ - 153, - 166, + 116, + 128, ], - "type": "ExpressionStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 5, - "line": 14, - }, - "start": Object { - "column": 20, - "line": 12, + "raw": "\\"use strict\\"", + "type": "Literal", + "value": "use strict", }, - }, - "range": Array [ - 143, - 172, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 5, - "line": 14, - }, - "start": Object { - "column": 12, - "line": 12, - }, - }, - "params": Array [ - Object { "loc": Object { "end": Object { - "column": 18, - "line": 12, + "column": 20, + "line": 10, }, "start": Object { - "column": 13, - "line": 12, + "column": 8, + "line": 10, }, }, - "name": "value", "range": Array [ - 136, - 141, + 116, + 128, ], - "type": "Identifier", + "type": "ExpressionStatement", }, ], + "loc": Object { + "end": Object { + "column": 5, + "line": 11, + }, + "start": Object { + "column": 13, + "line": 9, + }, + }, "range": Array [ - 135, - 172, + 106, + 134, ], - "type": "FunctionExpression", + "type": "BlockStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 5, + "line": 11, + }, + "start": Object { + "column": 4, + "line": 9, }, }, + "range": Array [ + 97, + 134, + ], + "test": null, + "type": "SwitchCase", + }, + ], + "discriminant": Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 5, + }, + "start": Object { + "column": 8, + "line": 5, + }, + }, + "range": Array [ + 40, + 44, + ], + "raw": "true", + "type": "Literal", + "value": true, + }, + "loc": Object { + "end": Object { + "column": 1, + "line": 12, + }, + "start": Object { + "column": 0, + "line": 5, + }, + }, + "range": Array [ + 32, + 136, + ], + "type": "SwitchStatement", + }, + Object { + "body": Object { + "body": Array [ Object { - "computed": false, - "key": Object { + "expression": Object { "loc": Object { "end": Object { - "column": 10, - "line": 16, + "column": 16, + "line": 15, }, "start": Object { "column": 4, - "line": 16, + "line": 15, }, }, - "name": "method", "range": Array [ - 178, - 184, + 157, + 169, ], - "type": "Identifier", + "raw": "\\"use strict\\"", + "type": "Literal", + "value": "use strict", }, - "kind": "method", "loc": Object { "end": Object { - "column": 5, - "line": 18, + "column": 16, + "line": 15, }, "start": Object { "column": 4, - "line": 16, - }, - }, - "range": Array [ - 178, - 217, - ], - "static": false, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [ - Object { - "directive": "use strict", - "expression": Object { - "loc": Object { - "end": Object { - "column": 20, - "line": 17, - }, - "start": Object { - "column": 8, - "line": 17, - }, - }, - "range": Array [ - 198, - 210, - ], - "raw": "\\"use strict\\"", - "type": "Literal", - "value": "use strict", - }, - "loc": Object { - "end": Object { - "column": 21, - "line": 17, - }, - "start": Object { - "column": 8, - "line": 17, - }, - }, - "range": Array [ - 198, - 211, - ], - "type": "ExpressionStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 5, - "line": 18, - }, - "start": Object { - "column": 14, - "line": 16, - }, - }, - "range": Array [ - 188, - 217, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 5, - "line": 18, - }, - "start": Object { - "column": 11, - "line": 16, - }, - }, - "params": Array [], - "range": Array [ - 185, - 217, - ], - "type": "FunctionExpression", - }, - }, - ], - "loc": Object { - "end": Object { - "column": 1, - "line": 19, - }, - "start": Object { - "column": 10, - "line": 3, + "line": 15, + }, + }, + "range": Array [ + 157, + 169, + ], + "type": "ExpressionStatement", }, - }, - "range": Array [ - 25, - 219, ], - "type": "ClassBody", - }, - "id": Object { "loc": Object { "end": Object { - "column": 9, - "line": 3, + "column": 1, + "line": 16, }, "start": Object { - "column": 6, - "line": 3, + "column": 13, + "line": 14, }, }, - "name": "Foo", "range": Array [ - 21, - 24, + 151, + 171, ], - "type": "Identifier", + "type": "BlockStatement", }, "loc": Object { "end": Object { "column": 1, - "line": 19, + "line": 16, }, "start": Object { "column": 0, - "line": 3, + "line": 14, }, }, "range": Array [ - 15, - 219, + 138, + 171, ], - "superClass": null, - "type": "ClassDeclaration", + "test": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 14, + }, + "start": Object { + "column": 7, + "line": 14, + }, + }, + "range": Array [ + 145, + 149, + ], + "raw": "true", + "type": "Literal", + "value": true, + }, + "type": "WhileStatement", }, ], "loc": Object { "end": Object { "column": 0, - "line": 20, + "line": 17, }, "start": Object { "column": 0, @@ -67348,14 +75081,14 @@ Object { }, "range": Array [ 0, - 220, + 172, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 12, + "column": 2, "line": 1, }, "start": Object { @@ -67365,115 +75098,25 @@ Object { }, "range": Array [ 0, - 12, - ], - "type": "String", - "value": "\\"use strict\\"", - }, - Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "range": Array [ - 12, - 13, - ], - "type": "Punctuator", - "value": ";", - }, - Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 3, - }, - "start": Object { - "column": 0, - "line": 3, - }, - }, - "range": Array [ - 15, - 20, + 2, ], "type": "Keyword", - "value": "class", - }, - Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 3, - }, - "start": Object { - "column": 6, - "line": 3, - }, - }, - "range": Array [ - 21, - 24, - ], - "type": "Identifier", - "value": "Foo", - }, - Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 3, - }, - "start": Object { - "column": 10, - "line": 3, - }, - }, - "range": Array [ - 25, - 26, - ], - "type": "Punctuator", - "value": "{", + "value": "if", }, Object { "loc": Object { "end": Object { - "column": 15, - "line": 4, - }, - "start": Object { "column": 4, - "line": 4, - }, - }, - "range": Array [ - 31, - 42, - ], - "type": "Identifier", - "value": "constructor", - }, - Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 4, + "line": 1, }, "start": Object { - "column": 16, - "line": 4, + "column": 3, + "line": 1, }, }, "range": Array [ - 43, - 44, + 3, + 4, ], "type": "Punctuator", "value": "(", @@ -67481,161 +75124,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 18, - "line": 4, - }, - "start": Object { - "column": 17, - "line": 4, - }, - }, - "range": Array [ - 44, - 45, - ], - "type": "Punctuator", - "value": ")", - }, - Object { - "loc": Object { - "end": Object { - "column": 20, - "line": 4, - }, - "start": Object { - "column": 19, - "line": 4, - }, - }, - "range": Array [ - 46, - 47, - ], - "type": "Punctuator", - "value": "{", - }, - Object { - "loc": Object { - "end": Object { - "column": 20, - "line": 5, - }, - "start": Object { "column": 8, - "line": 5, - }, - }, - "range": Array [ - 56, - 68, - ], - "type": "String", - "value": "\\"use strict\\"", - }, - Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 5, - }, - "start": Object { - "column": 20, - "line": 5, - }, - }, - "range": Array [ - 68, - 69, - ], - "type": "Punctuator", - "value": ";", - }, - Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 6, - }, - "start": Object { - "column": 4, - "line": 6, - }, - }, - "range": Array [ - 74, - 75, - ], - "type": "Punctuator", - "value": "}", - }, - Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 8, + "line": 1, }, "start": Object { "column": 4, - "line": 8, + "line": 1, }, }, "range": Array [ - 81, - 84, + 4, + 8, ], - "type": "Identifier", - "value": "get", + "type": "Boolean", + "value": "true", }, Object { "loc": Object { "end": Object { - "column": 11, - "line": 8, + "column": 9, + "line": 1, }, "start": Object { "column": 8, - "line": 8, - }, - }, - "range": Array [ - 85, - 88, - ], - "type": "Identifier", - "value": "foo", - }, - Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 8, - }, - "start": Object { - "column": 12, - "line": 8, - }, - }, - "range": Array [ - 89, - 90, - ], - "type": "Punctuator", - "value": "(", - }, - Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 8, - }, - "start": Object { - "column": 13, - "line": 8, + "line": 1, }, }, "range": Array [ - 90, - 91, + 8, + 9, ], "type": "Punctuator", "value": ")", @@ -67643,17 +75160,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 16, - "line": 8, + "column": 11, + "line": 1, }, "start": Object { - "column": 15, - "line": 8, + "column": 10, + "line": 1, }, }, "range": Array [ - 92, - 93, + 10, + 11, ], "type": "Punctuator", "value": "{", @@ -67661,17 +75178,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 20, - "line": 9, + "column": 16, + "line": 2, }, "start": Object { - "column": 8, - "line": 9, + "column": 4, + "line": 2, }, }, "range": Array [ - 102, - 114, + 16, + 28, ], "type": "String", "value": "\\"use strict\\"", @@ -67679,35 +75196,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 21, - "line": 9, - }, - "start": Object { - "column": 20, - "line": 9, - }, - }, - "range": Array [ - 114, - 115, - ], - "type": "Punctuator", - "value": ";", - }, - Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 10, + "column": 1, + "line": 3, }, "start": Object { - "column": 4, - "line": 10, + "column": 0, + "line": 3, }, }, "range": Array [ - 120, - 121, + 29, + 30, ], "type": "Punctuator", "value": "}", @@ -67715,53 +75214,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 7, - "line": 12, + "column": 6, + "line": 5, }, "start": Object { - "column": 4, - "line": 12, + "column": 0, + "line": 5, }, }, "range": Array [ - 127, - 130, + 32, + 38, ], - "type": "Identifier", - "value": "set", + "type": "Keyword", + "value": "switch", }, Object { "loc": Object { "end": Object { - "column": 11, - "line": 12, - }, - "start": Object { "column": 8, - "line": 12, - }, - }, - "range": Array [ - 131, - 134, - ], - "type": "Identifier", - "value": "foo", - }, - Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 12, + "line": 5, }, "start": Object { - "column": 12, - "line": 12, + "column": 7, + "line": 5, }, }, "range": Array [ - 135, - 136, + 39, + 40, ], "type": "Punctuator", "value": "(", @@ -67769,233 +75250,161 @@ Object { Object { "loc": Object { "end": Object { - "column": 18, - "line": 12, - }, - "start": Object { - "column": 13, - "line": 12, - }, - }, - "range": Array [ - 136, - 141, - ], - "type": "Identifier", - "value": "value", - }, - Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 12, - }, - "start": Object { - "column": 18, - "line": 12, - }, - }, - "range": Array [ - 141, - 142, - ], - "type": "Punctuator", - "value": ")", - }, - Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 12, - }, - "start": Object { - "column": 20, - "line": 12, - }, - }, - "range": Array [ - 143, - 144, - ], - "type": "Punctuator", - "value": "{", - }, - Object { - "loc": Object { - "end": Object { - "column": 20, - "line": 13, + "column": 12, + "line": 5, }, "start": Object { "column": 8, - "line": 13, - }, - }, - "range": Array [ - 153, - 165, - ], - "type": "String", - "value": "\\"use strict\\"", - }, - Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 13, - }, - "start": Object { - "column": 20, - "line": 13, + "line": 5, }, }, "range": Array [ - 165, - 166, + 40, + 44, ], - "type": "Punctuator", - "value": ";", + "type": "Boolean", + "value": "true", }, Object { "loc": Object { "end": Object { - "column": 5, - "line": 14, + "column": 13, + "line": 5, }, "start": Object { - "column": 4, - "line": 14, + "column": 12, + "line": 5, }, }, "range": Array [ - 171, - 172, + 44, + 45, ], "type": "Punctuator", - "value": "}", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 10, - "line": 16, + "column": 15, + "line": 5, }, "start": Object { - "column": 4, - "line": 16, + "column": 14, + "line": 5, }, }, "range": Array [ - 178, - 184, + 46, + 47, ], - "type": "Identifier", - "value": "method", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 12, - "line": 16, + "column": 8, + "line": 6, }, "start": Object { - "column": 11, - "line": 16, + "column": 4, + "line": 6, }, }, "range": Array [ - 185, - 186, + 52, + 56, ], - "type": "Punctuator", - "value": "(", + "type": "Keyword", + "value": "case", }, Object { "loc": Object { "end": Object { - "column": 13, - "line": 16, + "column": 14, + "line": 6, }, "start": Object { - "column": 12, - "line": 16, + "column": 9, + "line": 6, }, }, "range": Array [ - 186, - 187, + 57, + 62, ], - "type": "Punctuator", - "value": ")", + "type": "Boolean", + "value": "false", }, Object { "loc": Object { "end": Object { "column": 15, - "line": 16, + "line": 6, }, "start": Object { "column": 14, - "line": 16, + "line": 6, }, }, "range": Array [ - 188, - 189, + 62, + 63, ], "type": "Punctuator", - "value": "{", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 20, - "line": 17, + "column": 17, + "line": 6, }, "start": Object { - "column": 8, - "line": 17, + "column": 16, + "line": 6, }, }, "range": Array [ - 198, - 210, + 64, + 65, ], - "type": "String", - "value": "\\"use strict\\"", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 21, - "line": 17, + "column": 20, + "line": 7, }, "start": Object { - "column": 20, - "line": 17, + "column": 8, + "line": 7, }, }, "range": Array [ - 210, - 211, + 74, + 86, ], - "type": "Punctuator", - "value": ";", + "type": "String", + "value": "\\"use strict\\"", }, Object { "loc": Object { "end": Object { "column": 5, - "line": 18, + "line": 8, }, "start": Object { "column": 4, - "line": 18, + "line": 8, }, }, "range": Array [ - 216, - 217, + 91, + 92, ], "type": "Punctuator", "value": "}", @@ -68003,408 +75412,233 @@ Object { Object { "loc": Object { "end": Object { - "column": 1, - "line": 19, + "column": 11, + "line": 9, }, "start": Object { - "column": 0, - "line": 19, + "column": 4, + "line": 9, }, }, "range": Array [ - 218, - 219, + 97, + 104, ], - "type": "Punctuator", - "value": "}", + "type": "Keyword", + "value": "default", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/directives/function-non-strict.src 1`] = ` -Object { - "body": Array [ Object { - "async": false, - "body": Object { - "body": Array [ - Object { - "directive": "use smth", - "expression": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 2, - }, - "start": Object { - "column": 2, - "line": 2, - }, - }, - "range": Array [ - 20, - 30, - ], - "raw": "\\"use smth\\"", - "type": "Literal", - "value": "use smth", - }, - "loc": Object { - "end": Object { - "column": 12, - "line": 2, - }, - "start": Object { - "column": 2, - "line": 2, - }, - }, - "range": Array [ - 20, - 30, - ], - "type": "ExpressionStatement", - }, - Object { - "expression": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 3, - "line": 3, - }, - "start": Object { - "column": 2, - "line": 3, - }, - }, - "range": Array [ - 33, - 34, - ], - "raw": "1", - "type": "Literal", - "value": 1, - }, - "loc": Object { - "end": Object { - "column": 5, - "line": 3, - }, - "start": Object { - "column": 2, - "line": 3, - }, - }, - "operator": "+", - "range": Array [ - 33, - 36, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 3, - }, - "start": Object { - "column": 4, - "line": 3, - }, - }, - "range": Array [ - 35, - 36, - ], - "raw": "1", - "type": "Literal", - "value": 1, - }, - "type": "BinaryExpression", - }, - "loc": Object { - "end": Object { - "column": 6, - "line": 3, - }, - "start": Object { - "column": 2, - "line": 3, - }, - }, - "range": Array [ - 33, - 37, - ], - "type": "ExpressionStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 1, - "line": 4, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "range": Array [ - 16, - 39, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "name": "foo", - "range": Array [ - 9, - 12, - ], - "type": "Identifier", - }, "loc": Object { "end": Object { - "column": 1, - "line": 4, + "column": 12, + "line": 9, }, "start": Object { - "column": 0, - "line": 1, + "column": 11, + "line": 9, }, }, - "params": Array [], "range": Array [ - 0, - 39, + 104, + 105, ], - "type": "FunctionDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 5, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Punctuator", + "value": ":", }, - }, - "range": Array [ - 0, - 40, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 8, - "line": 1, + "column": 14, + "line": 9, }, "start": Object { - "column": 0, - "line": 1, + "column": 13, + "line": 9, }, }, "range": Array [ - 0, - 8, + 106, + 107, ], - "type": "Keyword", - "value": "function", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 12, - "line": 1, + "column": 20, + "line": 10, }, "start": Object { - "column": 9, - "line": 1, + "column": 8, + "line": 10, }, }, "range": Array [ - 9, - 12, + 116, + 128, ], - "type": "Identifier", - "value": "foo", + "type": "String", + "value": "\\"use strict\\"", }, Object { "loc": Object { "end": Object { - "column": 14, - "line": 1, + "column": 5, + "line": 11, }, "start": Object { - "column": 13, - "line": 1, + "column": 4, + "line": 11, }, }, "range": Array [ - 13, - 14, + 133, + 134, ], "type": "Punctuator", - "value": "(", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 15, - "line": 1, + "column": 1, + "line": 12, }, "start": Object { - "column": 14, - "line": 1, + "column": 0, + "line": 12, }, }, "range": Array [ - 14, - 15, + 135, + 136, ], "type": "Punctuator", - "value": ")", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 17, - "line": 1, + "column": 5, + "line": 14, }, "start": Object { - "column": 16, - "line": 1, + "column": 0, + "line": 14, }, }, "range": Array [ - 16, - 17, + 138, + 143, ], - "type": "Punctuator", - "value": "{", + "type": "Keyword", + "value": "while", }, Object { "loc": Object { "end": Object { - "column": 12, - "line": 2, + "column": 7, + "line": 14, }, "start": Object { - "column": 2, - "line": 2, + "column": 6, + "line": 14, }, }, "range": Array [ - 20, - 30, + 144, + 145, ], - "type": "String", - "value": "\\"use smth\\"", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 3, - "line": 3, + "column": 11, + "line": 14, }, "start": Object { - "column": 2, - "line": 3, + "column": 7, + "line": 14, }, }, "range": Array [ - 33, - 34, + 145, + 149, ], - "type": "Numeric", - "value": "1", + "type": "Boolean", + "value": "true", }, Object { "loc": Object { "end": Object { - "column": 4, - "line": 3, + "column": 12, + "line": 14, }, "start": Object { - "column": 3, - "line": 3, + "column": 11, + "line": 14, }, }, "range": Array [ - 34, - 35, + 149, + 150, ], "type": "Punctuator", - "value": "+", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 5, - "line": 3, + "column": 14, + "line": 14, }, "start": Object { - "column": 4, - "line": 3, + "column": 13, + "line": 14, }, }, "range": Array [ - 35, - 36, + 151, + 152, ], - "type": "Numeric", - "value": "1", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 6, - "line": 3, + "column": 16, + "line": 15, }, "start": Object { - "column": 5, - "line": 3, + "column": 4, + "line": 15, }, }, "range": Array [ - 36, - 37, + 157, + 169, ], - "type": "Punctuator", - "value": ";", + "type": "String", + "value": "\\"use strict\\"", }, Object { "loc": Object { "end": Object { "column": 1, - "line": 4, + "line": 16, }, "start": Object { "column": 0, - "line": 4, + "line": 16, }, }, "range": Array [ - 38, - 39, + 170, + 171, ], "type": "Punctuator", "value": "}", @@ -68414,70 +75648,34 @@ Object { } `; -exports[`javascript fixtures/directives/non-directive-string.src 1`] = ` +exports[`javascript fixtures/directives/program.src 1`] = ` Object { "body": Array [ Object { - "alternate": null, - "consequent": Object { - "body": Array [ - Object { - "expression": Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "range": Array [ - 16, - 28, - ], - "raw": "\\"use strict\\"", - "type": "Literal", - "value": "use strict", - }, - "loc": Object { - "end": Object { - "column": 16, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "range": Array [ - 16, - 28, - ], - "type": "ExpressionStatement", - }, - ], + "directive": "use strict", + "expression": Object { "loc": Object { "end": Object { - "column": 1, - "line": 3, + "column": 12, + "line": 1, }, "start": Object { - "column": 10, + "column": 0, "line": 1, }, }, "range": Array [ - 10, - 30, + 0, + 12, ], - "type": "BlockStatement", + "raw": "\\"use strict\\"", + "type": "Literal", + "value": "use strict", }, "loc": Object { "end": Object { - "column": 1, - "line": 3, + "column": 13, + "line": 1, }, "start": Object { "column": 0, @@ -68486,331 +75684,125 @@ Object { }, "range": Array [ 0, - 30, + 13, ], - "test": Object { - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 8, - ], - "raw": "true", - "type": "Literal", - "value": true, - }, - "type": "IfStatement", + "type": "ExpressionStatement", }, Object { - "cases": Array [ + "declarations": Array [ Object { - "consequent": Array [ - Object { - "body": Array [ - Object { - "expression": Object { - "loc": Object { - "end": Object { - "column": 20, - "line": 7, - }, - "start": Object { - "column": 8, - "line": 7, - }, - }, - "range": Array [ - 74, - 86, - ], - "raw": "\\"use strict\\"", - "type": "Literal", - "value": "use strict", - }, - "loc": Object { - "end": Object { - "column": 20, - "line": 7, - }, - "start": Object { - "column": 8, - "line": 7, - }, - }, - "range": Array [ - 74, - 86, - ], - "type": "ExpressionStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 5, - "line": 8, - }, - "start": Object { - "column": 16, - "line": 6, - }, + "id": Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, }, - "range": Array [ - 64, - 92, - ], - "type": "BlockStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 5, - "line": 8, - }, - "start": Object { - "column": 4, - "line": 6, }, + "name": "a", + "range": Array [ + 18, + 19, + ], + "type": "Identifier", }, - "range": Array [ - 52, - 92, - ], - "test": Object { + "init": Object { "loc": Object { "end": Object { - "column": 14, - "line": 6, + "column": 9, + "line": 2, }, "start": Object { - "column": 9, - "line": 6, + "column": 8, + "line": 2, }, }, "range": Array [ - 57, - 62, + 22, + 23, ], - "raw": "false", + "raw": "1", "type": "Literal", - "value": false, + "value": 1, }, - "type": "SwitchCase", - }, - Object { - "consequent": Array [ - Object { - "body": Array [ - Object { - "expression": Object { - "loc": Object { - "end": Object { - "column": 20, - "line": 10, - }, - "start": Object { - "column": 8, - "line": 10, - }, - }, - "range": Array [ - 116, - 128, - ], - "raw": "\\"use strict\\"", - "type": "Literal", - "value": "use strict", - }, - "loc": Object { - "end": Object { - "column": 20, - "line": 10, - }, - "start": Object { - "column": 8, - "line": 10, - }, - }, - "range": Array [ - 116, - 128, - ], - "type": "ExpressionStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 5, - "line": 11, - }, - "start": Object { - "column": 13, - "line": 9, - }, - }, - "range": Array [ - 106, - 134, - ], - "type": "BlockStatement", - }, - ], "loc": Object { "end": Object { - "column": 5, - "line": 11, + "column": 9, + "line": 2, }, "start": Object { "column": 4, - "line": 9, + "line": 2, }, }, "range": Array [ - 97, - 134, + 18, + 23, ], - "test": null, - "type": "SwitchCase", + "type": "VariableDeclarator", }, ], - "discriminant": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 5, - }, - "start": Object { - "column": 8, - "line": 5, - }, - }, - "range": Array [ - 40, - 44, - ], - "raw": "true", - "type": "Literal", - "value": true, - }, + "kind": "var", "loc": Object { "end": Object { - "column": 1, - "line": 12, + "column": 10, + "line": 2, }, "start": Object { "column": 0, - "line": 5, + "line": 2, }, }, "range": Array [ - 32, - 136, + 14, + 24, ], - "type": "SwitchStatement", + "type": "VariableDeclaration", }, Object { - "body": Object { - "body": Array [ - Object { - "expression": Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 15, - }, - "start": Object { - "column": 4, - "line": 15, - }, - }, - "range": Array [ - 157, - 169, - ], - "raw": "\\"use strict\\"", - "type": "Literal", - "value": "use strict", - }, - "loc": Object { - "end": Object { - "column": 16, - "line": 15, - }, - "start": Object { - "column": 4, - "line": 15, - }, - }, - "range": Array [ - 157, - 169, - ], - "type": "ExpressionStatement", - }, - ], + "expression": Object { "loc": Object { "end": Object { - "column": 1, - "line": 16, + "column": 12, + "line": 3, }, "start": Object { - "column": 13, - "line": 14, + "column": 0, + "line": 3, }, }, "range": Array [ - 151, - 171, + 25, + 37, ], - "type": "BlockStatement", + "raw": "\\"use strict\\"", + "type": "Literal", + "value": "use strict", }, "loc": Object { "end": Object { - "column": 1, - "line": 16, + "column": 13, + "line": 3, }, "start": Object { "column": 0, - "line": 14, + "line": 3, }, }, "range": Array [ - 138, - 171, + 25, + 38, ], - "test": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 14, - }, - "start": Object { - "column": 7, - "line": 14, - }, - }, - "range": Array [ - 145, - 149, - ], - "raw": "true", - "type": "Literal", - "value": true, - }, - "type": "WhileStatement", + "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { "column": 0, - "line": 17, + "line": 4, }, "start": Object { "column": 0, @@ -68819,14 +75811,14 @@ Object { }, "range": Array [ 0, - 172, + 39, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 2, + "column": 12, "line": 1, }, "start": Object { @@ -68836,711 +75828,941 @@ Object { }, "range": Array [ 0, - 2, + 12, ], - "type": "Keyword", - "value": "if", + "type": "String", + "value": "\\"use strict\\"", }, Object { "loc": Object { "end": Object { - "column": 4, + "column": 13, "line": 1, }, "start": Object { - "column": 3, + "column": 12, "line": 1, }, }, "range": Array [ - 3, - 4, + 12, + 13, ], "type": "Punctuator", - "value": "(", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 8, - "line": 1, + "column": 3, + "line": 2, }, "start": Object { - "column": 4, - "line": 1, + "column": 0, + "line": 2, }, }, "range": Array [ - 4, - 8, + 14, + 17, ], - "type": "Boolean", - "value": "true", + "type": "Keyword", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 9, - "line": 1, + "column": 5, + "line": 2, }, "start": Object { - "column": 8, - "line": 1, + "column": 4, + "line": 2, }, }, "range": Array [ - 8, - 9, + 18, + 19, ], - "type": "Punctuator", - "value": ")", + "type": "Identifier", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 11, - "line": 1, + "column": 7, + "line": 2, }, "start": Object { - "column": 10, - "line": 1, + "column": 6, + "line": 2, }, }, "range": Array [ - 10, - 11, + 20, + 21, ], "type": "Punctuator", - "value": "{", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 9, "line": 2, }, "start": Object { - "column": 4, + "column": 8, "line": 2, }, }, "range": Array [ - 16, - 28, + 22, + 23, ], - "type": "String", - "value": "\\"use strict\\"", + "type": "Numeric", + "value": "1", }, Object { "loc": Object { "end": Object { - "column": 1, - "line": 3, + "column": 10, + "line": 2, }, "start": Object { - "column": 0, - "line": 3, + "column": 9, + "line": 2, }, }, "range": Array [ - 29, - 30, + 23, + 24, ], "type": "Punctuator", - "value": "}", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 6, - "line": 5, + "column": 12, + "line": 3, }, "start": Object { "column": 0, - "line": 5, + "line": 3, }, }, "range": Array [ - 32, - 38, + 25, + 37, ], - "type": "Keyword", - "value": "switch", + "type": "String", + "value": "\\"use strict\\"", }, Object { "loc": Object { "end": Object { - "column": 8, - "line": 5, + "column": 13, + "line": 3, }, "start": Object { - "column": 7, - "line": 5, + "column": 12, + "line": 3, }, }, "range": Array [ - 39, - 40, + 37, + 38, ], "type": "Punctuator", - "value": "(", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/directives/program-order.src 1`] = ` +Object { + "body": Array [ Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 5, - }, - "start": Object { - "column": 8, - "line": 5, + "directive": "use strict", + "expression": Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, }, + "range": Array [ + 0, + 12, + ], + "raw": "\\"use strict\\"", + "type": "Literal", + "value": "use strict", }, - "range": Array [ - 40, - 44, - ], - "type": "Boolean", - "value": "true", - }, - Object { "loc": Object { "end": Object { "column": 13, - "line": 5, + "line": 1, }, "start": Object { - "column": 12, - "line": 5, + "column": 0, + "line": 1, }, }, "range": Array [ - 44, - 45, + 0, + 13, ], - "type": "Punctuator", - "value": ")", + "type": "ExpressionStatement", }, Object { + "directive": "use loose", + "expression": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 2, + }, + }, + "range": Array [ + 14, + 25, + ], + "raw": "\\"use loose\\"", + "type": "Literal", + "value": "use loose", + }, "loc": Object { "end": Object { - "column": 15, - "line": 5, + "column": 12, + "line": 2, }, "start": Object { - "column": 14, - "line": 5, + "column": 0, + "line": 2, }, }, "range": Array [ - 46, - 47, + 14, + 26, ], - "type": "Punctuator", - "value": "{", + "type": "ExpressionStatement", }, Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 3, + }, + }, + "name": "a", + "range": Array [ + 31, + 32, + ], + "type": "Identifier", + }, + "init": null, + "loc": Object { + "end": Object { + "column": 5, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 3, + }, + }, + "range": Array [ + 31, + 32, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", "loc": Object { "end": Object { - "column": 8, - "line": 6, + "column": 6, + "line": 3, }, "start": Object { - "column": 4, - "line": 6, + "column": 0, + "line": 3, }, }, "range": Array [ - 52, - 56, + 27, + 33, ], - "type": "Keyword", - "value": "case", + "type": "VariableDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 4, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 34, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 14, - "line": 6, + "column": 12, + "line": 1, }, "start": Object { - "column": 9, - "line": 6, + "column": 0, + "line": 1, }, }, "range": Array [ - 57, - 62, + 0, + 12, ], - "type": "Boolean", - "value": "false", + "type": "String", + "value": "\\"use strict\\"", }, Object { "loc": Object { "end": Object { - "column": 15, - "line": 6, + "column": 13, + "line": 1, }, "start": Object { - "column": 14, - "line": 6, + "column": 12, + "line": 1, }, }, "range": Array [ - 62, - 63, + 12, + 13, ], "type": "Punctuator", - "value": ":", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 17, - "line": 6, + "column": 11, + "line": 2, }, "start": Object { - "column": 16, - "line": 6, + "column": 0, + "line": 2, }, }, "range": Array [ - 64, - 65, + 14, + 25, ], - "type": "Punctuator", - "value": "{", + "type": "String", + "value": "\\"use loose\\"", }, Object { "loc": Object { "end": Object { - "column": 20, - "line": 7, + "column": 12, + "line": 2, }, "start": Object { - "column": 8, - "line": 7, + "column": 11, + "line": 2, }, }, "range": Array [ - 74, - 86, + 25, + 26, ], - "type": "String", - "value": "\\"use strict\\"", + "type": "Punctuator", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 5, - "line": 8, + "column": 3, + "line": 3, }, "start": Object { - "column": 4, - "line": 8, + "column": 0, + "line": 3, }, }, "range": Array [ - 91, - 92, + 27, + 30, ], - "type": "Punctuator", - "value": "}", + "type": "Keyword", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 11, - "line": 9, + "column": 5, + "line": 3, }, "start": Object { "column": 4, - "line": 9, + "line": 3, }, }, "range": Array [ - 97, - 104, + 31, + 32, ], - "type": "Keyword", - "value": "default", + "type": "Identifier", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 12, - "line": 9, + "column": 6, + "line": 3, }, "start": Object { - "column": 11, - "line": 9, + "column": 5, + "line": 3, }, }, "range": Array [ - 104, - 105, + 32, + 33, ], "type": "Punctuator", - "value": ":", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/directives/raw.src 1`] = ` +Object { + "body": Array [ Object { + "directive": "use\\\\x20strict", + "expression": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 15, + ], + "raw": "\\"use\\\\x20strict\\"", + "type": "Literal", + "value": "use strict", + }, "loc": Object { "end": Object { - "column": 14, - "line": 9, + "column": 16, + "line": 1, }, "start": Object { - "column": 13, - "line": 9, + "column": 0, + "line": 1, }, }, "range": Array [ - 106, - 107, + 0, + 16, ], - "type": "Punctuator", - "value": "{", + "type": "ExpressionStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 17, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 20, - "line": 10, + "column": 15, + "line": 1, }, "start": Object { - "column": 8, - "line": 10, + "column": 0, + "line": 1, }, }, "range": Array [ - 116, - 128, + 0, + 15, ], "type": "String", - "value": "\\"use strict\\"", + "value": "\\"use\\\\x20strict\\"", }, Object { "loc": Object { "end": Object { - "column": 5, - "line": 11, + "column": 16, + "line": 1, }, "start": Object { - "column": 4, - "line": 11, + "column": 15, + "line": 1, }, }, "range": Array [ - 133, - 134, + 15, + 16, ], "type": "Punctuator", - "value": "}", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/experimentalAsyncIteration/async-generators.src 1`] = ` +Object { + "body": Array [ Object { + "async": true, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 1, + "line": 3, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "range": Array [ + 22, + 26, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": true, + "id": Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "name": "foo", + "range": Array [ + 16, + 19, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { "column": 1, - "line": 12, + "line": 3, }, "start": Object { "column": 0, - "line": 12, + "line": 1, }, }, + "params": Array [], "range": Array [ - 135, - 136, + 0, + 26, ], - "type": "Punctuator", - "value": "}", + "type": "FunctionDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 4, }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 27, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { "column": 5, - "line": 14, + "line": 1, }, "start": Object { "column": 0, - "line": 14, + "line": 1, }, }, "range": Array [ - 138, - 143, + 0, + 5, ], - "type": "Keyword", - "value": "while", + "type": "Identifier", + "value": "async", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 14, + "column": 14, + "line": 1, }, "start": Object { "column": 6, - "line": 14, + "line": 1, }, }, "range": Array [ - 144, - 145, + 6, + 14, ], - "type": "Punctuator", - "value": "(", + "type": "Keyword", + "value": "function", }, Object { "loc": Object { "end": Object { - "column": 11, - "line": 14, + "column": 15, + "line": 1, }, "start": Object { - "column": 7, - "line": 14, + "column": 14, + "line": 1, }, }, "range": Array [ - 145, - 149, + 14, + 15, ], - "type": "Boolean", - "value": "true", + "type": "Punctuator", + "value": "*", }, Object { "loc": Object { "end": Object { - "column": 12, - "line": 14, + "column": 19, + "line": 1, }, "start": Object { - "column": 11, - "line": 14, + "column": 16, + "line": 1, }, }, "range": Array [ - 149, - 150, + 16, + 19, ], - "type": "Punctuator", - "value": ")", + "type": "Identifier", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 14, - "line": 14, + "column": 20, + "line": 1, }, "start": Object { - "column": 13, - "line": 14, + "column": 19, + "line": 1, }, }, "range": Array [ - 151, - 152, + 19, + 20, ], "type": "Punctuator", - "value": "{", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 16, - "line": 15, + "column": 21, + "line": 1, }, "start": Object { - "column": 4, - "line": 15, + "column": 20, + "line": 1, }, }, "range": Array [ - 157, - 169, + 20, + 21, ], - "type": "String", - "value": "\\"use strict\\"", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 1, - "line": 16, + "column": 23, + "line": 1, }, "start": Object { - "column": 0, - "line": 16, + "column": 22, + "line": 1, }, }, "range": Array [ - 170, - 171, + 22, + 23, ], "type": "Punctuator", - "value": "}", + "value": "{", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/directives/program.src 1`] = ` -Object { - "body": Array [ Object { - "directive": "use strict", - "expression": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 12, - ], - "raw": "\\"use strict\\"", - "type": "Literal", - "value": "use strict", - }, "loc": Object { - "end": Object { - "column": 13, - "line": 1, + "end": Object { + "column": 1, + "line": 3, }, "start": Object { "column": 0, - "line": 1, + "line": 3, }, }, "range": Array [ - 0, - 13, + 25, + 26, ], - "type": "ExpressionStatement", + "type": "Punctuator", + "value": "}", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/experimentalAsyncIteration/async-iterator.src 1`] = ` +Object { + "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { + "async": true, + "body": Object { + "body": Array [ + Object { + "await": true, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 5, + "line": 4, + }, + "start": Object { + "column": 36, + "line": 2, + }, + }, + "range": Array [ + 59, + 67, + ], + "type": "BlockStatement", + }, + "left": Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 25, + "line": 2, + }, + "start": Object { + "column": 21, + "line": 2, + }, + }, + "name": "item", + "range": Array [ + 44, + 48, + ], + "type": "Identifier", + }, + "init": null, + "loc": Object { + "end": Object { + "column": 25, + "line": 2, + }, + "start": Object { + "column": 21, + "line": 2, + }, + }, + "range": Array [ + 44, + 48, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "const", + "loc": Object { + "end": Object { + "column": 25, + "line": 2, + }, + "start": Object { + "column": 15, + "line": 2, + }, + }, + "range": Array [ + 38, + 48, + ], + "type": "VariableDeclaration", + }, "loc": Object { "end": Object { "column": 5, - "line": 2, + "line": 4, }, "start": Object { "column": 4, "line": 2, }, }, - "name": "a", "range": Array [ - 18, - 19, + 27, + 67, ], - "type": "Identifier", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 2, - }, - "start": Object { - "column": 8, - "line": 2, + "right": Object { + "loc": Object { + "end": Object { + "column": 34, + "line": 2, + }, + "start": Object { + "column": 29, + "line": 2, + }, }, + "name": "items", + "range": Array [ + 52, + 57, + ], + "type": "Identifier", }, - "range": Array [ - 22, - 23, - ], - "raw": "1", - "type": "Literal", - "value": 1, + "type": "ForOfStatement", }, - "loc": Object { - "end": Object { - "column": 9, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, + ], + "loc": Object { + "end": Object { + "column": 1, + "line": 5, + }, + "start": Object { + "column": 21, + "line": 1, }, - "range": Array [ - 18, - 23, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "var", - "loc": Object { - "end": Object { - "column": 10, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 2, }, + "range": Array [ + 21, + 69, + ], + "type": "BlockStatement", }, - "range": Array [ - 14, - 24, - ], - "type": "VariableDeclaration", - }, - Object { - "expression": Object { + "expression": false, + "generator": false, + "id": Object { "loc": Object { "end": Object { - "column": 12, - "line": 3, + "column": 18, + "line": 1, }, "start": Object { - "column": 0, - "line": 3, + "column": 15, + "line": 1, }, }, + "name": "foo", "range": Array [ - 25, - 37, + 15, + 18, ], - "raw": "\\"use strict\\"", - "type": "Literal", - "value": "use strict", + "type": "Identifier", }, "loc": Object { "end": Object { - "column": 13, - "line": 3, + "column": 1, + "line": 5, }, "start": Object { "column": 0, - "line": 3, + "line": 1, }, }, + "params": Array [], "range": Array [ - 25, - 38, + 0, + 69, ], - "type": "ExpressionStatement", + "type": "FunctionDeclaration", }, ], "loc": Object { "end": Object { "column": 0, - "line": 4, + "line": 6, }, "start": Object { "column": 0, @@ -69549,14 +76771,14 @@ Object { }, "range": Array [ 0, - 39, + 70, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 12, + "column": 5, "line": 1, }, "start": Object { @@ -69566,146 +76788,146 @@ Object { }, "range": Array [ 0, - 12, + 5, ], - "type": "String", - "value": "\\"use strict\\"", + "type": "Identifier", + "value": "async", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 14, "line": 1, }, "start": Object { - "column": 12, + "column": 6, "line": 1, }, }, "range": Array [ - 12, - 13, + 6, + 14, ], - "type": "Punctuator", - "value": ";", + "type": "Keyword", + "value": "function", }, Object { "loc": Object { "end": Object { - "column": 3, - "line": 2, + "column": 18, + "line": 1, }, "start": Object { - "column": 0, - "line": 2, + "column": 15, + "line": 1, }, }, "range": Array [ - 14, - 17, + 15, + 18, ], - "type": "Keyword", - "value": "var", + "type": "Identifier", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 5, - "line": 2, + "column": 19, + "line": 1, }, "start": Object { - "column": 4, - "line": 2, + "column": 18, + "line": 1, }, }, "range": Array [ 18, 19, ], - "type": "Identifier", - "value": "a", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 2, + "column": 20, + "line": 1, }, "start": Object { - "column": 6, - "line": 2, + "column": 19, + "line": 1, }, }, "range": Array [ + 19, 20, - 21, ], "type": "Punctuator", - "value": "=", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 9, - "line": 2, + "column": 22, + "line": 1, }, "start": Object { - "column": 8, - "line": 2, + "column": 21, + "line": 1, }, }, "range": Array [ + 21, 22, - 23, ], - "type": "Numeric", - "value": "1", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 7, "line": 2, }, "start": Object { - "column": 9, + "column": 4, "line": 2, }, }, "range": Array [ - 23, - 24, + 27, + 30, ], - "type": "Punctuator", - "value": ";", + "type": "Keyword", + "value": "for", }, Object { "loc": Object { "end": Object { - "column": 12, - "line": 3, + "column": 13, + "line": 2, }, "start": Object { - "column": 0, - "line": 3, + "column": 8, + "line": 2, }, }, "range": Array [ - 25, - 37, + 31, + 36, ], - "type": "String", - "value": "\\"use strict\\"", + "type": "Identifier", + "value": "await", }, Object { "loc": Object { "end": Object { - "column": 13, - "line": 3, + "column": 15, + "line": 2, }, "start": Object { - "column": 12, - "line": 3, + "column": 14, + "line": 2, }, }, "range": Array [ @@ -69713,303 +76935,276 @@ Object { 38, ], "type": "Punctuator", - "value": ";", - }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/directives/program-order.src 1`] = ` -Object { - "body": Array [ - Object { - "directive": "use strict", - "expression": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 12, - ], - "raw": "\\"use strict\\"", - "type": "Literal", - "value": "use strict", - }, - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 13, - ], - "type": "ExpressionStatement", + "value": "(", }, Object { - "directive": "use loose", - "expression": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 2, - }, - }, - "range": Array [ - 14, - 25, - ], - "raw": "\\"use loose\\"", - "type": "Literal", - "value": "use loose", - }, "loc": Object { "end": Object { - "column": 12, + "column": 20, "line": 2, }, "start": Object { - "column": 0, + "column": 15, "line": 2, }, }, "range": Array [ - 14, - 26, - ], - "type": "ExpressionStatement", - }, - Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 3, - }, - "start": Object { - "column": 4, - "line": 3, - }, - }, - "name": "a", - "range": Array [ - 31, - 32, - ], - "type": "Identifier", - }, - "init": null, - "loc": Object { - "end": Object { - "column": 5, - "line": 3, - }, - "start": Object { - "column": 4, - "line": 3, - }, - }, - "range": Array [ - 31, - 32, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "var", - "loc": Object { - "end": Object { - "column": 6, - "line": 3, - }, - "start": Object { - "column": 0, - "line": 3, - }, - }, - "range": Array [ - 27, - 33, + 38, + 43, ], - "type": "VariableDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 4, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Keyword", + "value": "const", }, - }, - "range": Array [ - 0, - 34, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 12, - "line": 1, + "column": 25, + "line": 2, }, "start": Object { - "column": 0, - "line": 1, + "column": 21, + "line": 2, }, }, "range": Array [ - 0, - 12, + 44, + 48, ], - "type": "String", - "value": "\\"use strict\\"", + "type": "Identifier", + "value": "item", }, Object { "loc": Object { "end": Object { - "column": 13, - "line": 1, + "column": 28, + "line": 2, }, "start": Object { - "column": 12, - "line": 1, + "column": 26, + "line": 2, }, }, "range": Array [ - 12, - 13, + 49, + 51, ], - "type": "Punctuator", - "value": ";", + "type": "Identifier", + "value": "of", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 34, "line": 2, }, "start": Object { - "column": 0, + "column": 29, "line": 2, }, }, "range": Array [ - 14, - 25, + 52, + 57, ], - "type": "String", - "value": "\\"use loose\\"", + "type": "Identifier", + "value": "items", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 35, "line": 2, }, "start": Object { - "column": 11, + "column": 34, "line": 2, }, }, "range": Array [ - 25, - 26, + 57, + 58, ], "type": "Punctuator", - "value": ";", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 3, - "line": 3, + "column": 37, + "line": 2, }, "start": Object { - "column": 0, - "line": 3, + "column": 36, + "line": 2, }, }, "range": Array [ - 27, - 30, + 59, + 60, ], - "type": "Keyword", - "value": "var", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { "column": 5, - "line": 3, + "line": 4, }, "start": Object { "column": 4, - "line": 3, + "line": 4, }, }, "range": Array [ - 31, - 32, + 66, + 67, ], - "type": "Identifier", - "value": "a", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 6, - "line": 3, + "column": 1, + "line": 5, }, "start": Object { - "column": 5, - "line": 3, + "column": 0, + "line": 5, }, }, "range": Array [ - 32, - 33, + 68, + 69, ], "type": "Punctuator", - "value": ";", + "value": "}", }, ], "type": "Program", } `; -exports[`javascript fixtures/directives/raw.src 1`] = ` +exports[`javascript fixtures/experimentalDynamicImport/dynamic-import.src 1`] = ` Object { "body": Array [ Object { - "directive": "use\\\\x20strict", "expression": Object { + "arguments": Array [ + Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 19, + "line": 1, + }, + }, + "name": "main", + "range": Array [ + 19, + 23, + ], + "type": "Identifier", + }, + ], + "callee": Object { + "computed": false, + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "object": Object { + "arguments": Array [ + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "range": Array [ + 7, + 12, + ], + "raw": "'foo'", + "type": "Literal", + "value": "foo", + }, + ], + "callee": Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 6, + ], + "type": "Import", + }, + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 13, + ], + "type": "CallExpression", + }, + "property": Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "name": "then", + "range": Array [ + 14, + 18, + ], + "type": "Identifier", + }, + "range": Array [ + 0, + 18, + ], + "type": "MemberExpression", + }, "loc": Object { "end": Object { - "column": 15, + "column": 24, "line": 1, }, "start": Object { @@ -70019,15 +77214,13 @@ Object { }, "range": Array [ 0, - 15, + 24, ], - "raw": "\\"use\\\\x20strict\\"", - "type": "Literal", - "value": "use strict", + "type": "CallExpression", }, "loc": Object { "end": Object { - "column": 16, + "column": 25, "line": 1, }, "start": Object { @@ -70037,7 +77230,7 @@ Object { }, "range": Array [ 0, - 16, + 25, ], "type": "ExpressionStatement", }, @@ -70054,14 +77247,14 @@ Object { }, "range": Array [ 0, - 17, + 26, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 15, + "column": 6, "line": 1, }, "start": Object { @@ -70071,128 +77264,64 @@ Object { }, "range": Array [ 0, - 15, + 6, ], - "type": "String", - "value": "\\"use\\\\x20strict\\"", + "type": "Keyword", + "value": "import", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 7, "line": 1, }, "start": Object { - "column": 15, + "column": 6, "line": 1, }, }, "range": Array [ - 15, - 16, + 6, + 7, ], "type": "Punctuator", - "value": ";", + "value": "(", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/experimentalAsyncIteration/async-generators.src 1`] = ` -Object { - "body": Array [ Object { - "async": true, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 1, - "line": 3, - }, - "start": Object { - "column": 22, - "line": 1, - }, - }, - "range": Array [ - 22, - 26, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": true, - "id": Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "name": "foo", - "range": Array [ - 16, - 19, - ], - "type": "Identifier", - }, "loc": Object { "end": Object { - "column": 1, - "line": 3, + "column": 12, + "line": 1, }, "start": Object { - "column": 0, + "column": 7, "line": 1, }, }, - "params": Array [], "range": Array [ - 0, - 26, + 7, + 12, ], - "type": "FunctionDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 4, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "String", + "value": "'foo'", }, - }, - "range": Array [ - 0, - 27, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 13, "line": 1, }, "start": Object { - "column": 0, + "column": 12, "line": 1, }, }, "range": Array [ - 0, - 5, + 12, + 13, ], - "type": "Identifier", - "value": "async", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { @@ -70201,21 +77330,21 @@ Object { "line": 1, }, "start": Object { - "column": 6, + "column": 13, "line": 1, }, }, "range": Array [ - 6, + 13, 14, ], - "type": "Keyword", - "value": "function", + "type": "Punctuator", + "value": ".", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 18, "line": 1, }, "start": Object { @@ -70225,65 +77354,29 @@ Object { }, "range": Array [ 14, - 15, - ], - "type": "Punctuator", - "value": "*", - }, - Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "range": Array [ - 16, - 19, + 18, ], "type": "Identifier", - "value": "foo", + "value": "then", }, Object { "loc": Object { "end": Object { - "column": 20, + "column": 19, "line": 1, }, "start": Object { - "column": 19, + "column": 18, "line": 1, }, }, "range": Array [ + 18, 19, - 20, ], "type": "Punctuator", "value": "(", }, - Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, - }, - "range": Array [ - 20, - 21, - ], - "type": "Punctuator", - "value": ")", - }, Object { "loc": Object { "end": Object { @@ -70291,171 +77384,78 @@ Object { "line": 1, }, "start": Object { - "column": 22, + "column": 19, "line": 1, }, }, "range": Array [ - 22, + 19, 23, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "main", }, Object { "loc": Object { "end": Object { - "column": 1, - "line": 3, - }, - "start": Object { - "column": 0, - "line": 3, - }, - }, - "range": Array [ - 25, - 26, - ], - "type": "Punctuator", - "value": "}", - }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/experimentalAsyncIteration/async-iterator.src 1`] = ` -Object { - "body": Array [ - Object { - "async": true, - "body": Object { - "body": Array [ - Object { - "await": true, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 5, - "line": 4, - }, - "start": Object { - "column": 36, - "line": 2, - }, - }, - "range": Array [ - 59, - 67, - ], - "type": "BlockStatement", - }, - "left": Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 25, - "line": 2, - }, - "start": Object { - "column": 21, - "line": 2, - }, - }, - "name": "item", - "range": Array [ - 44, - 48, - ], - "type": "Identifier", - }, - "init": null, - "loc": Object { - "end": Object { - "column": 25, - "line": 2, - }, - "start": Object { - "column": 21, - "line": 2, - }, - }, - "range": Array [ - 44, - 48, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "const", - "loc": Object { - "end": Object { - "column": 25, - "line": 2, - }, - "start": Object { - "column": 15, - "line": 2, - }, - }, - "range": Array [ - 38, - 48, - ], - "type": "VariableDeclaration", - }, - "loc": Object { - "end": Object { - "column": 5, - "line": 4, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "range": Array [ - 27, - 67, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 34, - "line": 2, - }, - "start": Object { - "column": 29, - "line": 2, - }, - }, - "name": "items", - "range": Array [ - 52, - 57, - ], - "type": "Identifier", - }, - "type": "ForOfStatement", - }, - ], + "column": 24, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "range": Array [ + 23, + 24, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, + }, + }, + "range": Array [ + 24, + 25, + ], + "type": "Punctuator", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/experimentalObjectRestSpread/arg-spread.src 1`] = ` +Object { + "body": Array [ + Object { + "async": false, + "body": Object { + "body": Array [], "loc": Object { "end": Object { - "column": 1, - "line": 5, + "column": 24, + "line": 1, }, "start": Object { - "column": 21, + "column": 22, "line": 1, }, }, "range": Array [ - 21, - 69, + 22, + 24, ], "type": "BlockStatement", }, @@ -70464,35 +77464,147 @@ Object { "id": Object { "loc": Object { "end": Object { - "column": 18, + "column": 10, "line": 1, }, "start": Object { - "column": 15, + "column": 9, "line": 1, }, }, - "name": "foo", + "name": "c", "range": Array [ - 15, - 18, + 9, + 10, ], "type": "Identifier", }, "loc": Object { "end": Object { - "column": 1, - "line": 5, + "column": 24, + "line": 1, }, "start": Object { "column": 0, "line": 1, }, }, - "params": Array [], + "params": Array [ + Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 12, + 13, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 12, + 13, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 12, + 13, + ], + "type": "Identifier", + }, + }, + Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "name": "b", + "range": Array [ + 18, + 19, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "range": Array [ + 15, + 19, + ], + "type": "RestElement", + }, + ], + "range": Array [ + 11, + 20, + ], + "type": "ObjectPattern", + }, + ], "range": Array [ 0, - 69, + 24, ], "type": "FunctionDeclaration", }, @@ -70500,7 +77612,7 @@ Object { "loc": Object { "end": Object { "column": 0, - "line": 6, + "line": 2, }, "start": Object { "column": 0, @@ -70509,14 +77621,14 @@ Object { }, "range": Array [ 0, - 70, + 25, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 8, "line": 1, }, "start": Object { @@ -70526,25 +77638,7 @@ Object { }, "range": Array [ 0, - 5, - ], - "type": "Identifier", - "value": "async", - }, - Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "range": Array [ - 6, - 14, + 8, ], "type": "Keyword", "value": "function", @@ -70552,35 +77646,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 18, + "column": 10, "line": 1, }, "start": Object { - "column": 15, + "column": 9, "line": 1, }, }, "range": Array [ - 15, - 18, + 9, + 10, ], "type": "Identifier", - "value": "foo", + "value": "c", }, Object { "loc": Object { "end": Object { - "column": 19, + "column": 11, "line": 1, }, "start": Object { - "column": 18, + "column": 10, "line": 1, }, }, "range": Array [ - 18, - 19, + 10, + 11, ], "type": "Punctuator", "value": "(", @@ -70588,179 +77682,125 @@ Object { Object { "loc": Object { "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 19, - "line": 1, - }, - }, - "range": Array [ - 19, - 20, - ], - "type": "Punctuator", - "value": ")", - }, - Object { - "loc": Object { - "end": Object { - "column": 22, + "column": 12, "line": 1, }, "start": Object { - "column": 21, + "column": 11, "line": 1, }, }, "range": Array [ - 21, - 22, + 11, + 12, ], "type": "Punctuator", "value": "{", }, - Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "range": Array [ - 27, - 30, - ], - "type": "Keyword", - "value": "for", - }, Object { "loc": Object { "end": Object { "column": 13, - "line": 2, + "line": 1, }, "start": Object { - "column": 8, - "line": 2, + "column": 12, + "line": 1, }, }, "range": Array [ - 31, - 36, + 12, + 13, ], "type": "Identifier", - "value": "await", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 15, - "line": 2, + "column": 14, + "line": 1, }, "start": Object { - "column": 14, - "line": 2, + "column": 13, + "line": 1, }, }, "range": Array [ - 37, - 38, + 13, + 14, ], "type": "Punctuator", - "value": "(", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 20, - "line": 2, + "column": 18, + "line": 1, }, "start": Object { "column": 15, - "line": 2, - }, - }, - "range": Array [ - 38, - 43, - ], - "type": "Keyword", - "value": "const", - }, - Object { - "loc": Object { - "end": Object { - "column": 25, - "line": 2, - }, - "start": Object { - "column": 21, - "line": 2, + "line": 1, }, }, "range": Array [ - 44, - 48, + 15, + 18, ], - "type": "Identifier", - "value": "item", + "type": "Punctuator", + "value": "...", }, Object { "loc": Object { "end": Object { - "column": 28, - "line": 2, + "column": 19, + "line": 1, }, "start": Object { - "column": 26, - "line": 2, + "column": 18, + "line": 1, }, }, "range": Array [ - 49, - 51, + 18, + 19, ], "type": "Identifier", - "value": "of", + "value": "b", }, Object { "loc": Object { "end": Object { - "column": 34, - "line": 2, + "column": 20, + "line": 1, }, "start": Object { - "column": 29, - "line": 2, + "column": 19, + "line": 1, }, }, "range": Array [ - 52, - 57, + 19, + 20, ], - "type": "Identifier", - "value": "items", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 35, - "line": 2, + "column": 21, + "line": 1, }, "start": Object { - "column": 34, - "line": 2, + "column": 20, + "line": 1, }, }, "range": Array [ - 57, - 58, + 20, + 21, ], "type": "Punctuator", "value": ")", @@ -70768,17 +77808,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 37, - "line": 2, + "column": 23, + "line": 1, }, "start": Object { - "column": 36, - "line": 2, + "column": 22, + "line": 1, }, }, "range": Array [ - 59, - 60, + 22, + 23, ], "type": "Punctuator", "value": "{", @@ -70786,35 +77826,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 5, - "line": 4, - }, - "start": Object { - "column": 4, - "line": 4, - }, - }, - "range": Array [ - 66, - 67, - ], - "type": "Punctuator", - "value": "}", - }, - Object { - "loc": Object { - "end": Object { - "column": 1, - "line": 5, + "column": 24, + "line": 1, }, "start": Object { - "column": 0, - "line": 5, + "column": 23, + "line": 1, }, }, "range": Array [ - 68, - 69, + 23, + 24, ], "type": "Punctuator", "value": "}", @@ -70824,141 +77846,253 @@ Object { } `; -exports[`javascript fixtures/experimentalDynamicImport/dynamic-import.src 1`] = ` +exports[`javascript fixtures/experimentalObjectRestSpread/destructuring-assign-mirror.src 1`] = ` Object { "body": Array [ Object { "expression": Object { - "arguments": Array [ - Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 1, + "left": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 1, + }, + "start": Object { + "column": 2, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 2, + 3, + ], + "type": "Identifier", }, - "start": Object { - "column": 19, - "line": 1, + "kind": "init", + "loc": Object { + "end": Object { + "column": 3, + "line": 1, + }, + "start": Object { + "column": 2, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 2, + 3, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 1, + }, + "start": Object { + "column": 2, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 2, + 3, + ], + "type": "Identifier", + }, + }, + Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "name": "b", + "range": Array [ + 8, + 9, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, }, + "range": Array [ + 5, + 9, + ], + "type": "RestElement", }, - "name": "main", - "range": Array [ - 19, - 23, - ], - "type": "Identifier", + ], + "range": Array [ + 1, + 10, + ], + "type": "ObjectPattern", + }, + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, }, + }, + "operator": "=", + "range": Array [ + 1, + 22, ], - "callee": Object { - "computed": false, + "right": Object { "loc": Object { "end": Object { - "column": 18, + "column": 22, "line": 1, }, "start": Object { - "column": 0, + "column": 13, "line": 1, }, }, - "object": Object { - "arguments": Array [ - Object { + "properties": Array [ + Object { + "computed": false, + "key": Object { "loc": Object { "end": Object { - "column": 12, + "column": 15, "line": 1, }, "start": Object { - "column": 7, + "column": 14, "line": 1, }, }, + "name": "a", "range": Array [ - 7, - 12, + 14, + 15, ], - "raw": "'foo'", - "type": "Literal", - "value": "foo", + "type": "Identifier", }, - ], - "callee": Object { + "kind": "init", "loc": Object { "end": Object { - "column": 6, + "column": 15, "line": 1, }, "start": Object { - "column": 0, + "column": 14, "line": 1, }, }, + "method": false, "range": Array [ - 0, - 6, + 14, + 15, ], - "type": "Import", - }, - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 14, + 15, + ], + "type": "Identifier", }, }, - "range": Array [ - 0, - 13, - ], - "type": "CallExpression", - }, - "property": Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 1, + Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "name": "b", + "range": Array [ + 20, + 21, + ], + "type": "Identifier", }, - "start": Object { - "column": 14, - "line": 1, + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, }, + "range": Array [ + 17, + 21, + ], + "type": "SpreadElement", }, - "name": "then", - "range": Array [ - 14, - 18, - ], - "type": "Identifier", - }, + ], "range": Array [ - 0, - 18, + 13, + 22, ], - "type": "MemberExpression", - }, - "loc": Object { - "end": Object { - "column": 24, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, + "type": "ObjectExpression", }, - "range": Array [ - 0, - 24, - ], - "type": "CallExpression", + "type": "AssignmentExpression", }, "loc": Object { "end": Object { - "column": 25, + "column": 23, "line": 1, }, "start": Object { @@ -70968,7 +78102,7 @@ Object { }, "range": Array [ 0, - 25, + 23, ], "type": "ExpressionStatement", }, @@ -70985,14 +78119,14 @@ Object { }, "range": Array [ 0, - 26, + 24, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 6, + "column": 1, "line": 1, }, "start": Object { @@ -71002,64 +78136,136 @@ Object { }, "range": Array [ 0, - 6, + 1, ], - "type": "Keyword", - "value": "import", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 2, "line": 1, }, "start": Object { - "column": 6, + "column": 1, "line": 1, }, }, "range": Array [ - 6, - 7, + 1, + 2, ], "type": "Punctuator", - "value": "(", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 3, "line": 1, }, "start": Object { - "column": 7, + "column": 2, "line": 1, }, }, "range": Array [ - 7, - 12, + 2, + 3, ], - "type": "String", - "value": "'foo'", + "type": "Identifier", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 4, + "line": 1, + }, + "start": Object { + "column": 3, + "line": 1, + }, + }, + "range": Array [ + 3, + 4, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "range": Array [ + 5, + 8, + ], + "type": "Punctuator", + "value": "...", + }, + Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, + 9, + ], + "type": "Identifier", + "value": "b", + }, + Object { + "loc": Object { + "end": Object { + "column": 10, "line": 1, }, "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 10, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { "column": 12, "line": 1, }, + "start": Object { + "column": 11, + "line": 1, + }, }, "range": Array [ + 11, 12, - 13, ], "type": "Punctuator", - "value": ")", + "value": "=", }, Object { "loc": Object { @@ -71077,12 +78283,12 @@ Object { 14, ], "type": "Punctuator", - "value": ".", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 15, "line": 1, }, "start": Object { @@ -71092,89 +78298,107 @@ Object { }, "range": Array [ 14, - 18, + 15, ], "type": "Identifier", - "value": "then", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 19, + "column": 16, "line": 1, }, "start": Object { - "column": 18, + "column": 15, "line": 1, }, }, "range": Array [ - 18, - 19, + 15, + 16, ], "type": "Punctuator", - "value": "(", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 20, "line": 1, }, "start": Object { - "column": 19, + "column": 17, "line": 1, }, }, "range": Array [ - 19, - 23, + 17, + 20, + ], + "type": "Punctuator", + "value": "...", + }, + Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "range": Array [ + 20, + 21, ], "type": "Identifier", - "value": "main", + "value": "b", }, Object { "loc": Object { "end": Object { - "column": 24, + "column": 22, "line": 1, }, "start": Object { - "column": 23, + "column": 21, "line": 1, }, }, "range": Array [ - 23, - 24, + 21, + 22, ], "type": "Punctuator", - "value": ")", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 25, + "column": 23, "line": 1, }, "start": Object { - "column": 24, + "column": 22, "line": 1, }, }, "range": Array [ - 24, - 25, + 22, + 23, ], "type": "Punctuator", - "value": ";", + "value": ")", }, ], "type": "Program", } `; -exports[`javascript fixtures/experimentalObjectRestSpread/arg-spread.src 1`] = ` +exports[`javascript fixtures/experimentalObjectRestSpread/function-parameter-object-spread.src 1`] = ` Object { "body": Array [ Object { @@ -71183,17 +78407,17 @@ Object { "body": Array [], "loc": Object { "end": Object { - "column": 24, + "column": 26, "line": 1, }, "start": Object { - "column": 22, + "column": 23, "line": 1, }, }, "range": Array [ - 22, - 24, + 23, + 26, ], "type": "BlockStatement", }, @@ -71202,7 +78426,7 @@ Object { "id": Object { "loc": Object { "end": Object { - "column": 10, + "column": 12, "line": 1, }, "start": Object { @@ -71210,16 +78434,16 @@ Object { "line": 1, }, }, - "name": "c", + "name": "foo", "range": Array [ 9, - 10, + 12, ], "type": "Identifier", }, "loc": Object { "end": Object { - "column": 24, + "column": 26, "line": 1, }, "start": Object { @@ -71231,118 +78455,61 @@ Object { Object { "loc": Object { "end": Object { - "column": 20, + "column": 21, "line": 1, }, "start": Object { - "column": 11, + "column": 13, "line": 1, }, }, "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 12, - 13, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 12, - 13, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 12, - 13, - ], - "type": "Identifier", - }, - }, Object { "argument": Object { "loc": Object { "end": Object { - "column": 19, + "column": 20, "line": 1, }, "start": Object { - "column": 18, + "column": 17, "line": 1, }, }, - "name": "b", + "name": "bar", "range": Array [ - 18, - 19, + 17, + 20, ], "type": "Identifier", }, "loc": Object { "end": Object { - "column": 19, + "column": 20, "line": 1, }, "start": Object { - "column": 15, + "column": 14, "line": 1, }, }, "range": Array [ - 15, - 19, + 14, + 20, ], "type": "RestElement", }, ], "range": Array [ - 11, - 20, + 13, + 21, ], "type": "ObjectPattern", }, ], "range": Array [ 0, - 24, + 26, ], "type": "FunctionDeclaration", }, @@ -71353,69 +78520,33 @@ Object { "line": 2, }, "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 25, - ], - "sourceType": "script", - "tokens": Array [ - Object { - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 8, - ], - "type": "Keyword", - "value": "function", - }, - Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 10, - ], - "type": "Identifier", - "value": "c", + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 27, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 11, + "column": 8, "line": 1, }, "start": Object { - "column": 10, + "column": 0, "line": 1, }, }, "range": Array [ - 10, - 11, + 0, + 8, ], - "type": "Punctuator", - "value": "(", + "type": "Keyword", + "value": "function", }, Object { "loc": Object { @@ -71424,16 +78555,16 @@ Object { "line": 1, }, "start": Object { - "column": 11, + "column": 9, "line": 1, }, }, "range": Array [ - 11, + 9, 12, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "foo", }, Object { "loc": Object { @@ -71450,8 +78581,8 @@ Object { 12, 13, ], - "type": "Identifier", - "value": "a", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { @@ -71469,22 +78600,22 @@ Object { 14, ], "type": "Punctuator", - "value": ",", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 17, "line": 1, }, "start": Object { - "column": 15, + "column": 14, "line": 1, }, }, "range": Array [ - 15, - 18, + 14, + 17, ], "type": "Punctuator", "value": "...", @@ -71492,35 +78623,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 19, + "column": 20, "line": 1, }, "start": Object { - "column": 18, + "column": 17, "line": 1, }, }, "range": Array [ - 18, - 19, + 17, + 20, ], "type": "Identifier", - "value": "b", + "value": "bar", }, Object { "loc": Object { "end": Object { - "column": 20, + "column": 21, "line": 1, }, "start": Object { - "column": 19, + "column": 20, "line": 1, }, }, "range": Array [ - 19, 20, + 21, ], "type": "Punctuator", "value": "}", @@ -71528,17 +78659,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 21, + "column": 22, "line": 1, }, "start": Object { - "column": 20, + "column": 21, "line": 1, }, }, "range": Array [ - 20, 21, + 22, ], "type": "Punctuator", "value": ")", @@ -71546,17 +78677,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 23, + "column": 24, "line": 1, }, "start": Object { - "column": 22, + "column": 23, "line": 1, }, }, "range": Array [ - 22, 23, + 24, ], "type": "Punctuator", "value": "{", @@ -71564,17 +78695,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 24, + "column": 26, "line": 1, }, "start": Object { - "column": 23, + "column": 25, "line": 1, }, }, "range": Array [ - 23, - 24, + 25, + 26, ], "type": "Punctuator", "value": "}", @@ -71584,253 +78715,221 @@ Object { } `; -exports[`javascript fixtures/experimentalObjectRestSpread/destructuring-assign-mirror.src 1`] = ` +exports[`javascript fixtures/experimentalObjectRestSpread/invalid-rest.src 1`] = `"',' expected."`; + +exports[`javascript fixtures/experimentalObjectRestSpread/invalid-rest-trailing-comma.src 1`] = ` Object { "body": Array [ Object { - "expression": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 1, - "line": 1, + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", + }, + "kind": "init", "loc": Object { "end": Object { - "column": 3, + "column": 7, "line": 1, }, "start": Object { - "column": 2, + "column": 6, "line": 1, }, }, - "name": "a", + "method": false, "range": Array [ - 2, - 3, + 6, + 7, ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 3, - "line": 1, - }, - "start": Object { - "column": 2, - "line": 1, + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", }, }, - "method": false, - "range": Array [ - 2, - 3, - ], - "shorthand": true, - "type": "Property", - "value": Object { + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "name": "y", + "range": Array [ + 9, + 10, + ], + "type": "Identifier", + }, + "kind": "init", "loc": Object { "end": Object { - "column": 3, + "column": 10, "line": 1, }, "start": Object { - "column": 2, + "column": 9, "line": 1, }, }, - "name": "a", + "method": false, "range": Array [ - 2, - 3, + 9, + 10, ], - "type": "Identifier", + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "name": "y", + "range": Array [ + 9, + 10, + ], + "type": "Identifier", + }, }, - }, - Object { - "argument": Object { + Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "name": "z", + "range": Array [ + 15, + 16, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 9, + "column": 16, "line": 1, }, "start": Object { - "column": 8, + "column": 12, "line": 1, }, }, - "name": "b", "range": Array [ - 8, - 9, + 12, + 16, ], - "type": "Identifier", + "type": "RestElement", }, - "loc": Object { - "end": Object { - "column": 9, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, + ], + "range": Array [ + 4, + 19, + ], + "type": "ObjectPattern", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, }, - "range": Array [ - 5, - 9, - ], - "type": "RestElement", }, - ], - "range": Array [ - 1, - 10, - ], - "type": "ObjectPattern", - }, - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 1, - "line": 1, + "name": "foo", + "range": Array [ + 22, + 25, + ], + "type": "Identifier", }, - }, - "operator": "=", - "range": Array [ - 1, - 22, - ], - "right": Object { "loc": Object { "end": Object { - "column": 22, + "column": 25, "line": 1, }, "start": Object { - "column": 13, + "column": 4, "line": 1, }, }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 14, - 15, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 14, - 15, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 14, - 15, - ], - "type": "Identifier", - }, - }, - Object { - "argument": Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, - }, - "name": "b", - "range": Array [ - 20, - 21, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 17, - "line": 1, - }, - }, - "range": Array [ - 17, - 21, - ], - "type": "SpreadElement", - }, - ], "range": Array [ - 13, - 22, + 4, + 25, ], - "type": "ObjectExpression", + "type": "VariableDeclarator", }, - "type": "AssignmentExpression", - }, + ], + "kind": "var", "loc": Object { "end": Object { - "column": 23, + "column": 26, "line": 1, }, "start": Object { @@ -71840,9 +78939,9 @@ Object { }, "range": Array [ 0, - 23, + 26, ], - "type": "ExpressionStatement", + "type": "VariableDeclaration", }, ], "loc": Object { @@ -71857,14 +78956,14 @@ Object { }, "range": Array [ 0, - 24, + 27, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, + "column": 3, "line": 1, }, "start": Object { @@ -71874,25 +78973,25 @@ Object { }, "range": Array [ 0, - 1, + 3, ], - "type": "Punctuator", - "value": "(", + "type": "Keyword", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 2, + "column": 5, "line": 1, }, "start": Object { - "column": 1, + "column": 4, "line": 1, }, }, "range": Array [ - 1, - 2, + 4, + 5, ], "type": "Punctuator", "value": "{", @@ -71900,35 +78999,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 3, + "column": 7, "line": 1, }, "start": Object { - "column": 2, + "column": 6, "line": 1, }, }, "range": Array [ - 2, - 3, + 6, + 7, ], "type": "Identifier", - "value": "a", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 4, + "column": 8, "line": 1, }, "start": Object { - "column": 3, + "column": 7, "line": 1, }, }, "range": Array [ - 3, - 4, + 7, + 8, ], "type": "Punctuator", "value": ",", @@ -71936,338 +79035,700 @@ Object { Object { "loc": Object { "end": Object { - "column": 8, + "column": 10, "line": 1, }, "start": Object { - "column": 5, + "column": 9, "line": 1, }, }, "range": Array [ - 5, - 8, + 9, + 10, ], - "type": "Punctuator", - "value": "...", + "type": "Identifier", + "value": "y", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 11, "line": 1, }, "start": Object { - "column": 8, + "column": 10, "line": 1, }, }, "range": Array [ - 8, - 9, + 10, + 11, ], - "type": "Identifier", - "value": "b", + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "range": Array [ + 12, + 15, + ], + "type": "Punctuator", + "value": "...", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 16, "line": 1, }, "start": Object { - "column": 9, + "column": 15, "line": 1, }, }, "range": Array [ - 9, - 10, + 15, + 16, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "z", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 17, "line": 1, }, "start": Object { - "column": 11, + "column": 16, "line": 1, }, }, "range": Array [ - 11, - 12, + 16, + 17, ], "type": "Punctuator", - "value": "=", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 19, "line": 1, }, "start": Object { - "column": 13, + "column": 18, "line": 1, }, }, "range": Array [ - 13, - 14, + 18, + 19, ], "type": "Punctuator", - "value": "{", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 21, "line": 1, }, "start": Object { - "column": 14, + "column": 20, "line": 1, }, }, "range": Array [ - 14, - 15, + 20, + 21, ], - "type": "Identifier", - "value": "a", + "type": "Punctuator", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 25, "line": 1, }, "start": Object { - "column": 15, + "column": 22, "line": 1, }, }, "range": Array [ - 15, - 16, + 22, + 25, ], - "type": "Punctuator", - "value": ",", + "type": "Identifier", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 20, + "column": 26, "line": 1, }, "start": Object { - "column": 17, + "column": 25, "line": 1, }, }, "range": Array [ - 17, - 20, + 25, + 26, ], "type": "Punctuator", - "value": "...", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/experimentalObjectRestSpread/object-rest.src 1`] = ` +Object { + "body": Array [ Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 6, + 7, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "name": "y", + "range": Array [ + 9, + 10, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 9, + 10, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "name": "y", + "range": Array [ + 9, + 10, + ], + "type": "Identifier", + }, + }, + Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "name": "z", + "range": Array [ + 15, + 16, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "range": Array [ + 12, + 16, + ], + "type": "RestElement", + }, + ], + "range": Array [ + 4, + 18, + ], + "type": "ObjectPattern", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 47, + "line": 1, + }, + "start": Object { + "column": 21, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 23, + 24, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 23, + 27, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 26, + "line": 1, + }, + }, + "range": Array [ + 26, + 27, + ], + "raw": "1", + "type": "Literal", + "value": 1, + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 30, + "line": 1, + }, + "start": Object { + "column": 29, + "line": 1, + }, + }, + "name": "y", + "range": Array [ + 29, + 30, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 33, + "line": 1, + }, + "start": Object { + "column": 29, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 29, + 33, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 33, + "line": 1, + }, + "start": Object { + "column": 32, + "line": 1, + }, + }, + "range": Array [ + 32, + 33, + ], + "raw": "2", + "type": "Literal", + "value": 2, + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 36, + "line": 1, + }, + "start": Object { + "column": 35, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 35, + 36, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 39, + "line": 1, + }, + "start": Object { + "column": 35, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 35, + 39, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 39, + "line": 1, + }, + "start": Object { + "column": 38, + "line": 1, + }, + }, + "range": Array [ + 38, + 39, + ], + "raw": "3", + "type": "Literal", + "value": 3, + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 42, + "line": 1, + }, + "start": Object { + "column": 41, + "line": 1, + }, + }, + "name": "b", + "range": Array [ + 41, + 42, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 45, + "line": 1, + }, + "start": Object { + "column": 41, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 41, + 45, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 45, + "line": 1, + }, + "start": Object { + "column": 44, + "line": 1, + }, + }, + "range": Array [ + 44, + 45, + ], + "raw": "4", + "type": "Literal", + "value": 4, + }, + }, + ], + "range": Array [ + 21, + 47, + ], + "type": "ObjectExpression", + }, + "loc": Object { + "end": Object { + "column": 47, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 47, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", "loc": Object { "end": Object { - "column": 21, + "column": 48, "line": 1, }, "start": Object { - "column": 20, + "column": 0, "line": 1, }, }, "range": Array [ - 20, - 21, + 0, + 48, ], - "type": "Identifier", - "value": "b", + "type": "VariableDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 49, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 22, + "column": 3, "line": 1, }, "start": Object { - "column": 21, + "column": 0, "line": 1, }, }, "range": Array [ - 21, - 22, + 0, + 3, ], - "type": "Punctuator", - "value": "}", + "type": "Keyword", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 5, "line": 1, }, "start": Object { - "column": 22, + "column": 4, "line": 1, }, }, "range": Array [ - 22, - 23, + 4, + 5, ], "type": "Punctuator", - "value": ")", + "value": "{", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/experimentalObjectRestSpread/function-parameter-object-spread.src 1`] = ` -Object { - "body": Array [ Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 26, - "line": 1, - }, - "start": Object { - "column": 23, - "line": 1, - }, - }, - "range": Array [ - 23, - 26, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "name": "foo", - "range": Array [ - 9, - 12, - ], - "type": "Identifier", - }, "loc": Object { "end": Object { - "column": 26, + "column": 7, "line": 1, }, "start": Object { - "column": 0, + "column": 6, "line": 1, }, }, - "params": Array [ - Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "properties": Array [ - Object { - "argument": Object { - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 17, - "line": 1, - }, - }, - "name": "bar", - "range": Array [ - 17, - 20, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "range": Array [ - 14, - 20, - ], - "type": "RestElement", - }, - ], - "range": Array [ - 13, - 21, - ], - "type": "ObjectPattern", - }, - ], "range": Array [ - 0, - 26, + 6, + 7, ], - "type": "FunctionDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Identifier", + "value": "x", }, - }, - "range": Array [ - 0, - 27, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { @@ -72275,21 +79736,21 @@ Object { "line": 1, }, "start": Object { - "column": 0, + "column": 7, "line": 1, }, }, "range": Array [ - 0, + 7, 8, ], - "type": "Keyword", - "value": "function", + "type": "Punctuator", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 10, "line": 1, }, "start": Object { @@ -72299,69 +79760,69 @@ Object { }, "range": Array [ 9, - 12, + 10, ], "type": "Identifier", - "value": "foo", + "value": "y", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 11, "line": 1, }, "start": Object { - "column": 12, + "column": 10, "line": 1, }, }, "range": Array [ - 12, - 13, + 10, + 11, ], "type": "Punctuator", - "value": "(", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 15, "line": 1, }, "start": Object { - "column": 13, + "column": 12, "line": 1, }, }, "range": Array [ - 13, - 14, + 12, + 15, ], "type": "Punctuator", - "value": "{", + "value": "...", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 16, "line": 1, }, "start": Object { - "column": 14, + "column": 15, "line": 1, }, }, "range": Array [ - 14, - 17, + 15, + 16, ], - "type": "Punctuator", - "value": "...", + "type": "Identifier", + "value": "z", }, Object { "loc": Object { "end": Object { - "column": 20, + "column": 18, "line": 1, }, "start": Object { @@ -72371,28 +79832,28 @@ Object { }, "range": Array [ 17, - 20, + 18, ], - "type": "Identifier", - "value": "bar", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 21, + "column": 20, "line": 1, }, "start": Object { - "column": 20, + "column": 19, "line": 1, }, }, "range": Array [ + 19, 20, - 21, ], "type": "Punctuator", - "value": "}", + "value": "=", }, Object { "loc": Object { @@ -72410,7 +79871,7 @@ Object { 22, ], "type": "Punctuator", - "value": ")", + "value": "{", }, Object { "loc": Object { @@ -72427,345 +79888,131 @@ Object { 23, 24, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 26, + "column": 25, "line": 1, }, "start": Object { - "column": 25, + "column": 24, "line": 1, }, }, "range": Array [ + 24, 25, - 26, ], "type": "Punctuator", - "value": "}", + "value": ":", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/experimentalObjectRestSpread/invalid-rest.src 1`] = `"',' expected."`; - -exports[`javascript fixtures/experimentalObjectRestSpread/invalid-rest-trailing-comma.src 1`] = ` -Object { - "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 6, - 7, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 6, - 7, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 6, - 7, - ], - "type": "Identifier", - }, - }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "name": "y", - "range": Array [ - 9, - 10, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 9, - 10, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "name": "y", - "range": Array [ - 9, - 10, - ], - "type": "Identifier", - }, - }, - Object { - "argument": Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "name": "z", - "range": Array [ - 15, - 16, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "range": Array [ - 12, - 16, - ], - "type": "RestElement", - }, - ], - "range": Array [ - 4, - 19, - ], - "type": "ObjectPattern", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 25, - "line": 1, - }, - "start": Object { - "column": 22, - "line": 1, - }, - }, - "name": "foo", - "range": Array [ - 22, - 25, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 25, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 25, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "var", "loc": Object { "end": Object { - "column": 26, + "column": 27, "line": 1, }, "start": Object { - "column": 0, + "column": 26, "line": 1, }, }, "range": Array [ - 0, 26, + 27, ], - "type": "VariableDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, + "type": "Numeric", + "value": "1", }, - "start": Object { - "column": 0, - "line": 1, + Object { + "loc": Object { + "end": Object { + "column": 28, + "line": 1, + }, + "start": Object { + "column": 27, + "line": 1, + }, + }, + "range": Array [ + 27, + 28, + ], + "type": "Punctuator", + "value": ",", }, - }, - "range": Array [ - 0, - 27, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, + "column": 30, "line": 1, }, "start": Object { - "column": 0, + "column": 29, "line": 1, }, }, "range": Array [ - 0, - 3, + 29, + 30, ], - "type": "Keyword", - "value": "var", + "type": "Identifier", + "value": "y", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 31, "line": 1, }, "start": Object { - "column": 4, + "column": 30, "line": 1, }, }, "range": Array [ - 4, - 5, + 30, + 31, ], "type": "Punctuator", - "value": "{", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 33, "line": 1, }, "start": Object { - "column": 6, + "column": 32, "line": 1, }, }, "range": Array [ - 6, - 7, + 32, + 33, ], - "type": "Identifier", - "value": "x", + "type": "Numeric", + "value": "2", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 34, "line": 1, }, "start": Object { - "column": 7, + "column": 33, "line": 1, }, }, "range": Array [ - 7, - 8, + 33, + 34, ], "type": "Punctuator", "value": ",", @@ -72773,161 +80020,161 @@ Object { Object { "loc": Object { "end": Object { - "column": 10, + "column": 36, "line": 1, }, "start": Object { - "column": 9, + "column": 35, "line": 1, }, }, "range": Array [ - 9, - 10, + 35, + 36, ], "type": "Identifier", - "value": "y", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 37, "line": 1, }, "start": Object { - "column": 10, + "column": 36, "line": 1, }, }, "range": Array [ - 10, - 11, + 36, + 37, ], "type": "Punctuator", - "value": ",", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 39, "line": 1, }, "start": Object { - "column": 12, + "column": 38, "line": 1, }, }, "range": Array [ - 12, - 15, + 38, + 39, ], - "type": "Punctuator", - "value": "...", + "type": "Numeric", + "value": "3", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 40, "line": 1, }, "start": Object { - "column": 15, + "column": 39, "line": 1, }, }, "range": Array [ - 15, - 16, + 39, + 40, ], - "type": "Identifier", - "value": "z", + "type": "Punctuator", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 42, "line": 1, }, "start": Object { - "column": 16, + "column": 41, "line": 1, }, }, "range": Array [ - 16, - 17, + 41, + 42, ], - "type": "Punctuator", - "value": ",", + "type": "Identifier", + "value": "b", }, Object { "loc": Object { "end": Object { - "column": 19, + "column": 43, "line": 1, }, "start": Object { - "column": 18, + "column": 42, "line": 1, }, }, "range": Array [ - 18, - 19, + 42, + 43, ], "type": "Punctuator", - "value": "}", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 21, + "column": 45, "line": 1, }, "start": Object { - "column": 20, + "column": 44, "line": 1, }, }, "range": Array [ - 20, - 21, + 44, + 45, ], - "type": "Punctuator", - "value": "=", + "type": "Numeric", + "value": "4", }, Object { "loc": Object { "end": Object { - "column": 25, + "column": 47, "line": 1, }, "start": Object { - "column": 22, + "column": 46, "line": 1, }, }, "range": Array [ - 22, - 25, + 46, + 47, ], - "type": "Identifier", - "value": "foo", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 26, + "column": 48, "line": 1, }, "start": Object { - "column": 25, + "column": 47, "line": 1, }, }, "range": Array [ - 25, - 26, + 47, + 48, ], "type": "Punctuator", "value": ";", @@ -72937,7 +80184,7 @@ Object { } `; -exports[`javascript fixtures/experimentalObjectRestSpread/object-rest.src 1`] = ` +exports[`javascript fixtures/experimentalObjectRestSpread/property-spread.src 1`] = ` Object { "body": Array [ Object { @@ -72946,7 +80193,7 @@ Object { "id": Object { "loc": Object { "end": Object { - "column": 18, + "column": 7, "line": 1, }, "start": Object { @@ -72954,172 +80201,150 @@ Object { "line": 1, }, }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 6, - 7, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 6, - 7, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 6, - 7, - ], - "type": "Identifier", - }, + "name": "foo", + "range": Array [ + 4, + 7, + ], + "type": "Identifier", + }, + "init": null, + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 7, + ], + "type": "VariableDeclarator", + }, + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 2, }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "name": "y", - "range": Array [ - 9, - 10, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 9, - 10, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "name": "y", - "range": Array [ - 9, - 10, - ], - "type": "Identifier", - }, + "start": Object { + "column": 4, + "line": 2, }, - Object { - "argument": Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "name": "z", - "range": Array [ - 15, - 16, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "range": Array [ - 12, - 16, - ], - "type": "RestElement", + }, + "name": "get", + "range": Array [ + 13, + 16, + ], + "type": "Identifier", + }, + "init": null, + "loc": Object { + "end": Object { + "column": 7, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "range": Array [ + 13, + 16, + ], + "type": "VariableDeclarator", + }, + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 3, }, + }, + "name": "set", + "range": Array [ + 22, + 25, ], + "type": "Identifier", + }, + "init": null, + "loc": Object { + "end": Object { + "column": 7, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 3, + }, + }, + "range": Array [ + 22, + 25, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", + "loc": Object { + "end": Object { + "column": 8, + "line": 3, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 26, + ], + "type": "VariableDeclaration", + }, + Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 5, + }, + "start": Object { + "column": 4, + "line": 5, + }, + }, + "name": "x", "range": Array [ - 4, - 18, + 32, + 33, ], - "type": "ObjectPattern", + "type": "Identifier", }, "init": Object { "loc": Object { "end": Object { - "column": 47, - "line": 1, + "column": 1, + "line": 9, }, "start": Object { - "column": 21, - "line": 1, + "column": 8, + "line": 5, }, }, "properties": Array [ @@ -73128,115 +80353,56 @@ Object { "key": Object { "loc": Object { "end": Object { - "column": 24, - "line": 1, - }, - "start": Object { - "column": 23, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 23, - 24, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 27, - "line": 1, - }, - "start": Object { - "column": 23, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 23, - 27, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 27, - "line": 1, - }, - "start": Object { - "column": 26, - "line": 1, - }, - }, - "range": Array [ - 26, - 27, - ], - "raw": "1", - "type": "Literal", - "value": 1, - }, - }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 30, - "line": 1, + "column": 7, + "line": 6, }, "start": Object { - "column": 29, - "line": 1, + "column": 4, + "line": 6, }, }, - "name": "y", + "name": "foo", "range": Array [ - 29, - 30, + 42, + 45, ], "type": "Identifier", }, "kind": "init", "loc": Object { "end": Object { - "column": 33, - "line": 1, + "column": 12, + "line": 6, }, "start": Object { - "column": 29, - "line": 1, + "column": 4, + "line": 6, }, }, "method": false, "range": Array [ - 29, - 33, + 42, + 50, ], "shorthand": false, "type": "Property", "value": Object { "loc": Object { "end": Object { - "column": 33, - "line": 1, + "column": 12, + "line": 6, }, "start": Object { - "column": 32, - "line": 1, + "column": 9, + "line": 6, }, }, + "name": "foo", "range": Array [ - 32, - 33, + 47, + 50, ], - "raw": "2", - "type": "Literal", - "value": 2, + "type": "Identifier", }, }, Object { @@ -73244,137 +80410,149 @@ Object { "key": Object { "loc": Object { "end": Object { - "column": 36, - "line": 1, + "column": 7, + "line": 7, }, "start": Object { - "column": 35, - "line": 1, + "column": 4, + "line": 7, }, }, - "name": "a", + "name": "get", "range": Array [ - 35, - 36, + 56, + 59, ], "type": "Identifier", }, "kind": "init", "loc": Object { "end": Object { - "column": 39, - "line": 1, + "column": 12, + "line": 7, }, "start": Object { - "column": 35, - "line": 1, + "column": 4, + "line": 7, }, }, "method": false, "range": Array [ - 35, - 39, + 56, + 64, ], "shorthand": false, "type": "Property", "value": Object { "loc": Object { "end": Object { - "column": 39, - "line": 1, + "column": 12, + "line": 7, }, "start": Object { - "column": 38, - "line": 1, + "column": 9, + "line": 7, }, }, + "name": "get", "range": Array [ - 38, - 39, + 61, + 64, ], - "raw": "3", - "type": "Literal", - "value": 3, + "type": "Identifier", }, }, Object { - "computed": false, - "key": Object { + "argument": Object { + "computed": false, "loc": Object { "end": Object { - "column": 42, - "line": 1, + "column": 14, + "line": 8, }, "start": Object { - "column": 41, - "line": 1, + "column": 7, + "line": 8, }, }, - "name": "b", + "object": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 8, + }, + "start": Object { + "column": 7, + "line": 8, + }, + }, + "name": "set", + "range": Array [ + 73, + 76, + ], + "type": "Identifier", + }, + "property": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 8, + }, + "start": Object { + "column": 11, + "line": 8, + }, + }, + "name": "foo", + "range": Array [ + 77, + 80, + ], + "type": "Identifier", + }, "range": Array [ - 41, - 42, + 73, + 80, ], - "type": "Identifier", + "type": "MemberExpression", }, - "kind": "init", "loc": Object { "end": Object { - "column": 45, - "line": 1, + "column": 14, + "line": 8, }, "start": Object { - "column": 41, - "line": 1, + "column": 4, + "line": 8, }, }, - "method": false, "range": Array [ - 41, - 45, + 70, + 80, ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 45, - "line": 1, - }, - "start": Object { - "column": 44, - "line": 1, - }, - }, - "range": Array [ - 44, - 45, - ], - "raw": "4", - "type": "Literal", - "value": 4, - }, + "type": "SpreadElement", }, ], "range": Array [ - 21, - 47, + 36, + 82, ], "type": "ObjectExpression", }, "loc": Object { "end": Object { - "column": 47, - "line": 1, + "column": 1, + "line": 9, }, "start": Object { "column": 4, - "line": 1, + "line": 5, }, }, "range": Array [ - 4, - 47, + 32, + 82, ], "type": "VariableDeclarator", }, @@ -73382,17 +80560,17 @@ Object { "kind": "var", "loc": Object { "end": Object { - "column": 48, - "line": 1, + "column": 2, + "line": 9, }, "start": Object { "column": 0, - "line": 1, + "line": 5, }, }, "range": Array [ - 0, - 48, + 28, + 83, ], "type": "VariableDeclaration", }, @@ -73400,7 +80578,7 @@ Object { "loc": Object { "end": Object { "column": 0, - "line": 2, + "line": 10, }, "start": Object { "column": 0, @@ -73409,7 +80587,7 @@ Object { }, "range": Array [ 0, - 49, + 84, ], "sourceType": "script", "tokens": Array [ @@ -73434,7 +80612,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 5, + "column": 7, "line": 1, }, "start": Object { @@ -73444,28 +80622,10 @@ Object { }, "range": Array [ 4, - 5, - ], - "type": "Punctuator", - "value": "{", - }, - Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "range": Array [ - 6, 7, ], "type": "Identifier", - "value": "x", + "value": "foo", }, Object { "loc": Object { @@ -73488,35 +80648,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 10, - "line": 1, + "column": 7, + "line": 2, }, "start": Object { - "column": 9, - "line": 1, + "column": 4, + "line": 2, }, }, "range": Array [ - 9, - 10, + 13, + 16, ], "type": "Identifier", - "value": "y", + "value": "get", }, Object { "loc": Object { "end": Object { - "column": 11, - "line": 1, + "column": 8, + "line": 2, }, "start": Object { - "column": 10, - "line": 1, + "column": 7, + "line": 2, }, }, "range": Array [ - 10, - 11, + 16, + 17, ], "type": "Punctuator", "value": ",", @@ -73524,377 +80684,341 @@ Object { Object { "loc": Object { "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "range": Array [ - 12, - 15, - ], - "type": "Punctuator", - "value": "...", - }, - Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, + "column": 7, + "line": 3, }, "start": Object { - "column": 15, - "line": 1, + "column": 4, + "line": 3, }, }, "range": Array [ - 15, - 16, + 22, + 25, ], "type": "Identifier", - "value": "z", + "value": "set", }, Object { "loc": Object { "end": Object { - "column": 18, - "line": 1, + "column": 8, + "line": 3, }, "start": Object { - "column": 17, - "line": 1, + "column": 7, + "line": 3, }, }, "range": Array [ - 17, - 18, + 25, + 26, ], "type": "Punctuator", - "value": "}", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 20, - "line": 1, + "column": 3, + "line": 5, }, "start": Object { - "column": 19, - "line": 1, + "column": 0, + "line": 5, }, }, "range": Array [ - 19, - 20, + 28, + 31, ], - "type": "Punctuator", - "value": "=", + "type": "Keyword", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 22, - "line": 1, + "column": 5, + "line": 5, }, "start": Object { - "column": 21, - "line": 1, + "column": 4, + "line": 5, }, }, "range": Array [ - 21, - 22, + 32, + 33, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 24, - "line": 1, + "column": 7, + "line": 5, }, "start": Object { - "column": 23, - "line": 1, + "column": 6, + "line": 5, }, }, "range": Array [ - 23, - 24, + 34, + 35, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 25, - "line": 1, + "column": 9, + "line": 5, }, "start": Object { - "column": 24, - "line": 1, + "column": 8, + "line": 5, }, }, "range": Array [ - 24, - 25, + 36, + 37, ], "type": "Punctuator", - "value": ":", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 27, - "line": 1, + "column": 7, + "line": 6, }, "start": Object { - "column": 26, - "line": 1, + "column": 4, + "line": 6, }, }, "range": Array [ - 26, - 27, + 42, + 45, ], - "type": "Numeric", - "value": "1", + "type": "Identifier", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 28, - "line": 1, + "column": 8, + "line": 6, }, "start": Object { - "column": 27, - "line": 1, + "column": 7, + "line": 6, }, }, "range": Array [ - 27, - 28, + 45, + 46, ], "type": "Punctuator", - "value": ",", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 30, - "line": 1, + "column": 12, + "line": 6, }, "start": Object { - "column": 29, - "line": 1, + "column": 9, + "line": 6, }, }, "range": Array [ - 29, - 30, + 47, + 50, ], "type": "Identifier", - "value": "y", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 31, - "line": 1, + "column": 13, + "line": 6, }, "start": Object { - "column": 30, - "line": 1, + "column": 12, + "line": 6, }, }, "range": Array [ - 30, - 31, + 50, + 51, ], "type": "Punctuator", - "value": ":", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 33, - "line": 1, + "column": 7, + "line": 7, }, "start": Object { - "column": 32, - "line": 1, + "column": 4, + "line": 7, }, }, "range": Array [ - 32, - 33, + 56, + 59, ], - "type": "Numeric", - "value": "2", + "type": "Identifier", + "value": "get", }, Object { "loc": Object { "end": Object { - "column": 34, - "line": 1, + "column": 8, + "line": 7, }, "start": Object { - "column": 33, - "line": 1, + "column": 7, + "line": 7, }, }, "range": Array [ - 33, - 34, + 59, + 60, ], "type": "Punctuator", - "value": ",", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 36, - "line": 1, + "column": 12, + "line": 7, }, "start": Object { - "column": 35, - "line": 1, + "column": 9, + "line": 7, }, }, "range": Array [ - 35, - 36, + 61, + 64, ], "type": "Identifier", - "value": "a", + "value": "get", }, Object { "loc": Object { "end": Object { - "column": 37, - "line": 1, + "column": 13, + "line": 7, }, "start": Object { - "column": 36, - "line": 1, + "column": 12, + "line": 7, }, }, "range": Array [ - 36, - 37, + 64, + 65, ], "type": "Punctuator", - "value": ":", - }, - Object { - "loc": Object { - "end": Object { - "column": 39, - "line": 1, - }, - "start": Object { - "column": 38, - "line": 1, - }, - }, - "range": Array [ - 38, - 39, - ], - "type": "Numeric", - "value": "3", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 40, - "line": 1, + "column": 7, + "line": 8, }, "start": Object { - "column": 39, - "line": 1, + "column": 4, + "line": 8, }, }, "range": Array [ - 39, - 40, + 70, + 73, ], "type": "Punctuator", - "value": ",", + "value": "...", }, Object { "loc": Object { "end": Object { - "column": 42, - "line": 1, + "column": 10, + "line": 8, }, "start": Object { - "column": 41, - "line": 1, + "column": 7, + "line": 8, }, }, "range": Array [ - 41, - 42, + 73, + 76, ], "type": "Identifier", - "value": "b", + "value": "set", }, Object { "loc": Object { "end": Object { - "column": 43, - "line": 1, + "column": 11, + "line": 8, }, "start": Object { - "column": 42, - "line": 1, + "column": 10, + "line": 8, }, }, "range": Array [ - 42, - 43, + 76, + 77, ], "type": "Punctuator", - "value": ":", + "value": ".", }, Object { "loc": Object { "end": Object { - "column": 45, - "line": 1, + "column": 14, + "line": 8, }, "start": Object { - "column": 44, - "line": 1, + "column": 11, + "line": 8, }, }, "range": Array [ - 44, - 45, + 77, + 80, ], - "type": "Numeric", - "value": "4", + "type": "Identifier", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 47, - "line": 1, + "column": 1, + "line": 9, }, "start": Object { - "column": 46, - "line": 1, + "column": 0, + "line": 9, }, }, "range": Array [ - 46, - 47, + 81, + 82, ], "type": "Punctuator", "value": "}", @@ -73902,17 +81026,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 48, - "line": 1, + "column": 2, + "line": 9, }, "start": Object { - "column": 47, - "line": 1, + "column": 1, + "line": 9, }, }, "range": Array [ - 47, - 48, + 82, + 83, ], "type": "Punctuator", "value": ";", @@ -73922,401 +81046,298 @@ Object { } `; -exports[`javascript fixtures/experimentalObjectRestSpread/property-spread.src 1`] = ` +exports[`javascript fixtures/experimentalObjectRestSpread/shorthand-method-args.src 1`] = ` Object { "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "name": "foo", - "range": Array [ - 4, - 7, - ], - "type": "Identifier", - }, - "init": null, - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 7, - ], - "type": "VariableDeclarator", - }, - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "name": "get", - "range": Array [ - 13, - 16, - ], - "type": "Identifier", + "expression": Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 5, }, - "init": null, - "loc": Object { - "end": Object { - "column": 7, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, + "start": Object { + "column": 1, + "line": 1, }, - "range": Array [ - 13, - 16, - ], - "type": "VariableDeclarator", }, - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 3, - }, - "start": Object { - "column": 4, - "line": 3, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, + }, }, + "name": "initialize", + "range": Array [ + 7, + 17, + ], + "type": "Identifier", }, - "name": "set", - "range": Array [ - 22, - 25, - ], - "type": "Identifier", - }, - "init": null, - "loc": Object { - "end": Object { - "column": 7, - "line": 3, - }, - "start": Object { - "column": 4, - "line": 3, - }, - }, - "range": Array [ - 22, - 25, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "var", - "loc": Object { - "end": Object { - "column": 8, - "line": 3, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 26, - ], - "type": "VariableDeclaration", - }, - Object { - "declarations": Array [ - Object { - "id": Object { + "kind": "init", "loc": Object { "end": Object { "column": 5, - "line": 5, + "line": 4, }, "start": Object { "column": 4, - "line": 5, + "line": 2, }, }, - "name": "x", + "method": true, "range": Array [ - 32, - 33, + 7, + 104, ], - "type": "Identifier", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 1, - "line": 9, - }, - "start": Object { - "column": 8, - "line": 5, - }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 6, - }, - "start": Object { - "column": 4, - "line": 6, - }, - }, - "name": "foo", - "range": Array [ - 42, - 45, - ], - "type": "Identifier", - }, - "kind": "init", + "shorthand": false, + "type": "Property", + "value": Object { + "async": false, + "body": Object { + "body": Array [], "loc": Object { "end": Object { - "column": 12, - "line": 6, + "column": 5, + "line": 4, }, "start": Object { - "column": 4, - "line": 6, + "column": 48, + "line": 2, }, }, - "method": false, "range": Array [ - 42, - 50, + 51, + 104, ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 6, - }, - "start": Object { - "column": 9, - "line": 6, - }, - }, - "name": "foo", - "range": Array [ - 47, - 50, - ], - "type": "Identifier", - }, + "type": "BlockStatement", }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 7, - }, - "start": Object { - "column": 4, - "line": 7, - }, - }, - "name": "get", - "range": Array [ - 56, - 59, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 12, - "line": 7, - }, - "start": Object { - "column": 4, - "line": 7, - }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 5, + "line": 4, }, - "method": false, - "range": Array [ - 56, - 64, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 7, - }, - "start": Object { - "column": 9, - "line": 7, - }, - }, - "name": "get", - "range": Array [ - 61, - 64, - ], - "type": "Identifier", + "start": Object { + "column": 14, + "line": 2, }, }, - Object { - "argument": Object { - "computed": false, + "params": Array [ + Object { "loc": Object { "end": Object { - "column": 14, - "line": 8, + "column": 46, + "line": 2, }, "start": Object { - "column": 7, - "line": 8, + "column": 15, + "line": 2, }, }, - "object": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 8, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 2, + }, + "start": Object { + "column": 16, + "line": 2, + }, + }, + "name": "someVar", + "range": Array [ + 19, + 26, + ], + "type": "Identifier", }, - "start": Object { - "column": 7, - "line": 8, + "kind": "init", + "loc": Object { + "end": Object { + "column": 23, + "line": 2, + }, + "start": Object { + "column": 16, + "line": 2, + }, + }, + "method": false, + "range": Array [ + 19, + 26, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 2, + }, + "start": Object { + "column": 16, + "line": 2, + }, + }, + "name": "someVar", + "range": Array [ + 19, + 26, + ], + "type": "Identifier", }, }, - "name": "set", - "range": Array [ - 73, - 76, - ], - "type": "Identifier", - }, - "property": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 8, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 33, + "line": 2, + }, + "start": Object { + "column": 25, + "line": 2, + }, + }, + "name": "otherVar", + "range": Array [ + 28, + 36, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 33, + "line": 2, + }, + "start": Object { + "column": 25, + "line": 2, + }, + }, + "method": false, + "range": Array [ + 28, + 36, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 33, + "line": 2, + }, + "start": Object { + "column": 25, + "line": 2, + }, + }, + "name": "otherVar", + "range": Array [ + 28, + 36, + ], + "type": "Identifier", + }, + }, + Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 45, + "line": 2, + }, + "start": Object { + "column": 38, + "line": 2, + }, + }, + "name": "options", + "range": Array [ + 41, + 48, + ], + "type": "Identifier", }, - "start": Object { - "column": 11, - "line": 8, + "loc": Object { + "end": Object { + "column": 45, + "line": 2, + }, + "start": Object { + "column": 35, + "line": 2, + }, }, + "range": Array [ + 38, + 48, + ], + "type": "RestElement", }, - "name": "foo", - "range": Array [ - 77, - 80, - ], - "type": "Identifier", - }, + ], "range": Array [ - 73, - 80, + 18, + 49, ], - "type": "MemberExpression", - }, - "loc": Object { - "end": Object { - "column": 14, - "line": 8, - }, - "start": Object { - "column": 4, - "line": 8, - }, + "type": "ObjectPattern", }, - "range": Array [ - 70, - 80, - ], - "type": "SpreadElement", - }, - ], - "range": Array [ - 36, - 82, - ], - "type": "ObjectExpression", - }, - "loc": Object { - "end": Object { - "column": 1, - "line": 9, - }, - "start": Object { - "column": 4, - "line": 5, + ], + "range": Array [ + 17, + 104, + ], + "type": "FunctionExpression", }, }, - "range": Array [ - 32, - 82, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "var", + ], + "range": Array [ + 1, + 106, + ], + "type": "ObjectExpression", + }, "loc": Object { "end": Object { - "column": 2, - "line": 9, + "column": 3, + "line": 5, }, "start": Object { "column": 0, - "line": 5, + "line": 1, }, }, "range": Array [ - 28, - 83, + 0, + 108, ], - "type": "VariableDeclaration", + "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { "column": 0, - "line": 10, + "line": 6, }, "start": Object { "column": 0, @@ -74325,14 +81346,14 @@ Object { }, "range": Array [ 0, - 84, + 109, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, + "column": 1, "line": 1, }, "start": Object { @@ -74342,51 +81363,33 @@ Object { }, "range": Array [ 0, - 3, - ], - "type": "Keyword", - "value": "var", - }, - Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 7, + 1, ], - "type": "Identifier", - "value": "foo", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 2, "line": 1, }, "start": Object { - "column": 7, + "column": 1, "line": 1, }, }, "range": Array [ - 7, - 8, + 1, + 2, ], "type": "Punctuator", - "value": ",", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 14, "line": 2, }, "start": Object { @@ -74395,386 +81398,278 @@ Object { }, }, "range": Array [ - 13, - 16, + 7, + 17, ], "type": "Identifier", - "value": "get", + "value": "initialize", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 15, "line": 2, }, "start": Object { - "column": 7, + "column": 14, "line": 2, }, }, "range": Array [ - 16, 17, + 18, ], "type": "Punctuator", - "value": ",", - }, - Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 3, - }, - "start": Object { - "column": 4, - "line": 3, - }, - }, - "range": Array [ - 22, - 25, - ], - "type": "Identifier", - "value": "set", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 8, - "line": 3, + "column": 16, + "line": 2, }, "start": Object { - "column": 7, - "line": 3, + "column": 15, + "line": 2, }, }, "range": Array [ - 25, - 26, + 18, + 19, ], "type": "Punctuator", - "value": ";", - }, - Object { - "loc": Object { - "end": Object { - "column": 3, - "line": 5, - }, - "start": Object { - "column": 0, - "line": 5, - }, - }, - "range": Array [ - 28, - 31, - ], - "type": "Keyword", - "value": "var", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 5, - "line": 5, + "column": 23, + "line": 2, }, "start": Object { - "column": 4, - "line": 5, + "column": 16, + "line": 2, }, }, "range": Array [ - 32, - 33, + 19, + 26, ], "type": "Identifier", - "value": "x", + "value": "someVar", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 5, + "column": 24, + "line": 2, }, "start": Object { - "column": 6, - "line": 5, + "column": 23, + "line": 2, }, }, "range": Array [ - 34, - 35, + 26, + 27, ], "type": "Punctuator", - "value": "=", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 9, - "line": 5, + "column": 33, + "line": 2, }, "start": Object { - "column": 8, - "line": 5, + "column": 25, + "line": 2, }, }, "range": Array [ + 28, 36, - 37, - ], - "type": "Punctuator", - "value": "{", - }, - Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 6, - }, - "start": Object { - "column": 4, - "line": 6, - }, - }, - "range": Array [ - 42, - 45, ], "type": "Identifier", - "value": "foo", + "value": "otherVar", }, Object { "loc": Object { "end": Object { - "column": 8, - "line": 6, + "column": 34, + "line": 2, }, "start": Object { - "column": 7, - "line": 6, + "column": 33, + "line": 2, }, }, "range": Array [ - 45, - 46, + 36, + 37, ], "type": "Punctuator", - "value": ":", - }, - Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 6, - }, - "start": Object { - "column": 9, - "line": 6, - }, - }, - "range": Array [ - 47, - 50, - ], - "type": "Identifier", - "value": "foo", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 13, - "line": 6, + "column": 38, + "line": 2, }, "start": Object { - "column": 12, - "line": 6, + "column": 35, + "line": 2, }, }, "range": Array [ - 50, - 51, + 38, + 41, ], "type": "Punctuator", - "value": ",", + "value": "...", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 7, + "column": 45, + "line": 2, }, "start": Object { - "column": 4, - "line": 7, + "column": 38, + "line": 2, }, }, "range": Array [ - 56, - 59, + 41, + 48, ], "type": "Identifier", - "value": "get", + "value": "options", }, Object { "loc": Object { "end": Object { - "column": 8, - "line": 7, + "column": 46, + "line": 2, }, "start": Object { - "column": 7, - "line": 7, + "column": 45, + "line": 2, }, }, "range": Array [ - 59, - 60, + 48, + 49, ], "type": "Punctuator", - "value": ":", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 12, - "line": 7, + "column": 47, + "line": 2, }, "start": Object { - "column": 9, - "line": 7, + "column": 46, + "line": 2, }, }, "range": Array [ - 61, - 64, + 49, + 50, ], - "type": "Identifier", - "value": "get", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 13, - "line": 7, + "column": 49, + "line": 2, }, "start": Object { - "column": 12, - "line": 7, + "column": 48, + "line": 2, }, }, "range": Array [ - 64, - 65, + 51, + 52, ], "type": "Punctuator", - "value": ",", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 8, + "column": 5, + "line": 4, }, "start": Object { "column": 4, - "line": 8, + "line": 4, }, }, "range": Array [ - 70, - 73, + 103, + 104, ], "type": "Punctuator", - "value": "...", - }, - Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 8, - }, - "start": Object { - "column": 7, - "line": 8, - }, - }, - "range": Array [ - 73, - 76, - ], - "type": "Identifier", - "value": "set", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 11, - "line": 8, + "column": 1, + "line": 5, }, "start": Object { - "column": 10, - "line": 8, + "column": 0, + "line": 5, }, }, "range": Array [ - 76, - 77, + 105, + 106, ], "type": "Punctuator", - "value": ".", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 14, - "line": 8, + "column": 2, + "line": 5, }, "start": Object { - "column": 11, - "line": 8, - }, - }, - "range": Array [ - 77, - 80, - ], - "type": "Identifier", - "value": "foo", - }, - Object { - "loc": Object { - "end": Object { "column": 1, - "line": 9, - }, - "start": Object { - "column": 0, - "line": 9, + "line": 5, }, }, "range": Array [ - 81, - 82, + 106, + 107, ], "type": "Punctuator", - "value": "}", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 2, - "line": 9, + "column": 3, + "line": 5, }, "start": Object { - "column": 1, - "line": 9, + "column": 2, + "line": 5, }, }, "range": Array [ - 82, - 83, + 107, + 108, ], "type": "Punctuator", "value": ";", @@ -74784,280 +81679,318 @@ Object { } `; -exports[`javascript fixtures/experimentalObjectRestSpread/shorthand-method-args.src 1`] = ` +exports[`javascript fixtures/experimentalObjectRestSpread/shorthand-methods.src 1`] = ` Object { "body": Array [ Object { - "expression": Object { - "loc": Object { - "end": Object { - "column": 1, - "line": 5, - }, - "start": Object { - "column": 1, - "line": 1, - }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "name": "initialize", - "range": Array [ - 7, - 17, - ], - "type": "Identifier", - }, - "kind": "init", + "declarations": Array [ + Object { + "id": Object { "loc": Object { "end": Object { "column": 5, - "line": 4, + "line": 1, }, "start": Object { "column": 4, - "line": 2, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 4, + 5, + ], + "type": "Identifier", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 5, + }, + "start": Object { + "column": 8, + "line": 1, }, }, - "method": true, - "range": Array [ - 7, - 104, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "async": false, - "body": Object { - "body": Array [], + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "name": "initialize", + "range": Array [ + 14, + 24, + ], + "type": "Identifier", + }, + "kind": "init", "loc": Object { "end": Object { "column": 5, "line": 4, }, "start": Object { - "column": 48, + "column": 4, "line": 2, }, }, + "method": true, "range": Array [ - 51, - 104, + 14, + 111, ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 5, - "line": 4, - }, - "start": Object { - "column": 14, - "line": 2, - }, - }, - "params": Array [ - Object { + "shorthand": false, + "type": "Property", + "value": Object { + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 5, + "line": 4, + }, + "start": Object { + "column": 48, + "line": 2, + }, + }, + "range": Array [ + 58, + 111, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, "loc": Object { "end": Object { - "column": 46, - "line": 2, + "column": 5, + "line": 4, }, "start": Object { - "column": 15, + "column": 14, "line": 2, }, }, - "properties": Array [ + "params": Array [ Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 2, - }, - "start": Object { - "column": 16, - "line": 2, - }, - }, - "name": "someVar", - "range": Array [ - 19, - 26, - ], - "type": "Identifier", - }, - "kind": "init", "loc": Object { "end": Object { - "column": 23, + "column": 46, "line": 2, }, "start": Object { - "column": 16, + "column": 15, "line": 2, }, }, - "method": false, - "range": Array [ - 19, - 26, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 2, - }, - "start": Object { - "column": 16, - "line": 2, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 2, + }, + "start": Object { + "column": 16, + "line": 2, + }, + }, + "name": "someVar", + "range": Array [ + 26, + 33, + ], + "type": "Identifier", }, - }, - "name": "someVar", - "range": Array [ - 19, - 26, - ], - "type": "Identifier", - }, - }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 33, - "line": 2, + "kind": "init", + "loc": Object { + "end": Object { + "column": 23, + "line": 2, + }, + "start": Object { + "column": 16, + "line": 2, + }, }, - "start": Object { - "column": 25, - "line": 2, + "method": false, + "range": Array [ + 26, + 33, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 2, + }, + "start": Object { + "column": 16, + "line": 2, + }, + }, + "name": "someVar", + "range": Array [ + 26, + 33, + ], + "type": "Identifier", }, }, - "name": "otherVar", - "range": Array [ - 28, - 36, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 33, - "line": 2, - }, - "start": Object { - "column": 25, - "line": 2, - }, - }, - "method": false, - "range": Array [ - 28, - 36, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 33, - "line": 2, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 33, + "line": 2, + }, + "start": Object { + "column": 25, + "line": 2, + }, + }, + "name": "otherVar", + "range": Array [ + 35, + 43, + ], + "type": "Identifier", }, - "start": Object { - "column": 25, - "line": 2, + "kind": "init", + "loc": Object { + "end": Object { + "column": 33, + "line": 2, + }, + "start": Object { + "column": 25, + "line": 2, + }, + }, + "method": false, + "range": Array [ + 35, + 43, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 33, + "line": 2, + }, + "start": Object { + "column": 25, + "line": 2, + }, + }, + "name": "otherVar", + "range": Array [ + 35, + 43, + ], + "type": "Identifier", }, }, - "name": "otherVar", - "range": Array [ - 28, - 36, - ], - "type": "Identifier", - }, - }, - Object { - "argument": Object { - "loc": Object { - "end": Object { - "column": 45, - "line": 2, + Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 45, + "line": 2, + }, + "start": Object { + "column": 38, + "line": 2, + }, + }, + "name": "options", + "range": Array [ + 48, + 55, + ], + "type": "Identifier", }, - "start": Object { - "column": 38, - "line": 2, + "loc": Object { + "end": Object { + "column": 45, + "line": 2, + }, + "start": Object { + "column": 35, + "line": 2, + }, }, + "range": Array [ + 45, + 55, + ], + "type": "RestElement", }, - "name": "options", - "range": Array [ - 41, - 48, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 45, - "line": 2, - }, - "start": Object { - "column": 35, - "line": 2, - }, - }, + ], "range": Array [ - 38, - 48, + 25, + 56, ], - "type": "RestElement", + "type": "ObjectPattern", }, ], "range": Array [ - 18, - 49, + 24, + 111, ], - "type": "ObjectPattern", + "type": "FunctionExpression", }, - ], - "range": Array [ - 17, - 104, - ], - "type": "FunctionExpression", + }, + ], + "range": Array [ + 8, + 113, + ], + "type": "ObjectExpression", + }, + "loc": Object { + "end": Object { + "column": 1, + "line": 5, + }, + "start": Object { + "column": 4, + "line": 1, }, }, - ], - "range": Array [ - 1, - 106, - ], - "type": "ObjectExpression", - }, + "range": Array [ + 4, + 113, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", "loc": Object { "end": Object { - "column": 3, + "column": 2, "line": 5, }, "start": Object { @@ -75067,15 +82000,15 @@ Object { }, "range": Array [ 0, - 108, + 114, ], - "type": "ExpressionStatement", + "type": "VariableDeclaration", }, ], "loc": Object { "end": Object { - "column": 0, - "line": 6, + "column": 2, + "line": 5, }, "start": Object { "column": 0, @@ -75084,14 +82017,14 @@ Object { }, "range": Array [ 0, - 109, + 114, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, + "column": 3, "line": 1, }, "start": Object { @@ -75101,25 +82034,61 @@ Object { }, "range": Array [ 0, - 1, + 3, + ], + "type": "Keyword", + "value": "var", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 5, + ], + "type": "Identifier", + "value": "x", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "range": Array [ + 6, + 7, ], "type": "Punctuator", - "value": "(", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 2, + "column": 9, "line": 1, }, "start": Object { - "column": 1, + "column": 8, "line": 1, }, }, "range": Array [ - 1, - 2, + 8, + 9, ], "type": "Punctuator", "value": "{", @@ -75136,8 +82105,8 @@ Object { }, }, "range": Array [ - 7, - 17, + 14, + 24, ], "type": "Identifier", "value": "initialize", @@ -75154,8 +82123,8 @@ Object { }, }, "range": Array [ - 17, - 18, + 24, + 25, ], "type": "Punctuator", "value": "(", @@ -75172,8 +82141,8 @@ Object { }, }, "range": Array [ - 18, - 19, + 25, + 26, ], "type": "Punctuator", "value": "{", @@ -75190,8 +82159,8 @@ Object { }, }, "range": Array [ - 19, 26, + 33, ], "type": "Identifier", "value": "someVar", @@ -75208,8 +82177,8 @@ Object { }, }, "range": Array [ - 26, - 27, + 33, + 34, ], "type": "Punctuator", "value": ",", @@ -75226,8 +82195,8 @@ Object { }, }, "range": Array [ - 28, - 36, + 35, + 43, ], "type": "Identifier", "value": "otherVar", @@ -75244,8 +82213,8 @@ Object { }, }, "range": Array [ - 36, - 37, + 43, + 44, ], "type": "Punctuator", "value": ",", @@ -75262,8 +82231,8 @@ Object { }, }, "range": Array [ - 38, - 41, + 45, + 48, ], "type": "Punctuator", "value": "...", @@ -75280,8 +82249,8 @@ Object { }, }, "range": Array [ - 41, 48, + 55, ], "type": "Identifier", "value": "options", @@ -75298,8 +82267,8 @@ Object { }, }, "range": Array [ - 48, - 49, + 55, + 56, ], "type": "Punctuator", "value": "}", @@ -75316,8 +82285,8 @@ Object { }, }, "range": Array [ - 49, - 50, + 56, + 57, ], "type": "Punctuator", "value": ")", @@ -75334,8 +82303,8 @@ Object { }, }, "range": Array [ - 51, - 52, + 58, + 59, ], "type": "Punctuator", "value": "{", @@ -75352,8 +82321,8 @@ Object { }, }, "range": Array [ - 103, - 104, + 110, + 111, ], "type": "Punctuator", "value": "}", @@ -75370,8 +82339,8 @@ Object { }, }, "range": Array [ - 105, - 106, + 112, + 113, ], "type": "Punctuator", "value": "}", @@ -75388,38 +82357,148 @@ Object { }, }, "range": Array [ - 106, - 107, + 113, + 114, ], "type": "Punctuator", - "value": ")", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/experimentalObjectRestSpread/shorthand-properties.src 1`] = ` +Object { + "body": Array [ Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "name": "foo", + "range": Array [ + 4, + 7, + ], + "type": "Identifier", + }, + "init": null, + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 7, + ], + "type": "VariableDeclarator", + }, + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "name": "get", + "range": Array [ + 13, + 16, + ], + "type": "Identifier", + }, + "init": null, + "loc": Object { + "end": Object { + "column": 7, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "range": Array [ + 13, + 16, + ], + "type": "VariableDeclarator", + }, + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 3, + }, + }, + "name": "set", + "range": Array [ + 22, + 25, + ], + "type": "Identifier", + }, + "init": null, + "loc": Object { + "end": Object { + "column": 7, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 3, + }, + }, + "range": Array [ + 22, + 25, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", "loc": Object { "end": Object { - "column": 3, - "line": 5, + "column": 8, + "line": 3, }, "start": Object { - "column": 2, - "line": 5, + "column": 0, + "line": 1, }, }, "range": Array [ - 107, - 108, + 0, + 26, ], - "type": "Punctuator", - "value": ";", + "type": "VariableDeclaration", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/experimentalObjectRestSpread/shorthand-methods.src 1`] = ` -Object { - "body": Array [ Object { "declarations": Array [ Object { @@ -75427,17 +82506,17 @@ Object { "loc": Object { "end": Object { "column": 5, - "line": 1, + "line": 5, }, "start": Object { "column": 4, - "line": 1, + "line": 5, }, }, "name": "x", "range": Array [ - 4, - 5, + 32, + 33, ], "type": "Identifier", }, @@ -75445,11 +82524,11 @@ Object { "loc": Object { "end": Object { "column": 1, - "line": 5, + "line": 9, }, "start": Object { "column": 8, - "line": 1, + "line": 5, }, }, "properties": Array [ @@ -75458,269 +82537,170 @@ Object { "key": Object { "loc": Object { "end": Object { - "column": 14, - "line": 2, + "column": 7, + "line": 6, }, "start": Object { "column": 4, - "line": 2, + "line": 6, }, }, - "name": "initialize", + "name": "foo", "range": Array [ - 14, - 24, + 42, + 45, ], "type": "Identifier", }, "kind": "init", "loc": Object { "end": Object { - "column": 5, - "line": 4, + "column": 7, + "line": 6, }, "start": Object { "column": 4, - "line": 2, + "line": 6, }, }, - "method": true, + "method": false, "range": Array [ - 14, - 111, + 42, + 45, ], - "shorthand": false, + "shorthand": true, "type": "Property", "value": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 5, - "line": 4, - }, - "start": Object { - "column": 48, - "line": 2, - }, + "loc": Object { + "end": Object { + "column": 7, + "line": 6, + }, + "start": Object { + "column": 4, + "line": 6, }, - "range": Array [ - 58, - 111, - ], - "type": "BlockStatement", }, - "expression": false, - "generator": false, - "id": null, + "name": "foo", + "range": Array [ + 42, + 45, + ], + "type": "Identifier", + }, + }, + Object { + "computed": false, + "key": Object { "loc": Object { "end": Object { - "column": 5, - "line": 4, + "column": 7, + "line": 7, }, "start": Object { - "column": 14, - "line": 2, + "column": 4, + "line": 7, }, }, - "params": Array [ - Object { - "loc": Object { - "end": Object { - "column": 46, - "line": 2, - }, - "start": Object { - "column": 15, - "line": 2, - }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 2, - }, - "start": Object { - "column": 16, - "line": 2, - }, - }, - "name": "someVar", - "range": Array [ - 26, - 33, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 23, - "line": 2, - }, - "start": Object { - "column": 16, - "line": 2, - }, - }, - "method": false, - "range": Array [ - 26, - 33, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 2, - }, - "start": Object { - "column": 16, - "line": 2, - }, - }, - "name": "someVar", - "range": Array [ - 26, - 33, - ], - "type": "Identifier", - }, - }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 33, - "line": 2, - }, - "start": Object { - "column": 25, - "line": 2, - }, - }, - "name": "otherVar", - "range": Array [ - 35, - 43, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 33, - "line": 2, - }, - "start": Object { - "column": 25, - "line": 2, - }, - }, - "method": false, - "range": Array [ - 35, - 43, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 33, - "line": 2, - }, - "start": Object { - "column": 25, - "line": 2, - }, - }, - "name": "otherVar", - "range": Array [ - 35, - 43, - ], - "type": "Identifier", - }, - }, - Object { - "argument": Object { - "loc": Object { - "end": Object { - "column": 45, - "line": 2, - }, - "start": Object { - "column": 38, - "line": 2, - }, - }, - "name": "options", - "range": Array [ - 48, - 55, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 45, - "line": 2, - }, - "start": Object { - "column": 35, - "line": 2, - }, - }, - "range": Array [ - 45, - 55, - ], - "type": "RestElement", - }, - ], - "range": Array [ - 25, - 56, - ], - "type": "ObjectPattern", + "name": "get", + "range": Array [ + 51, + 54, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 7, + "line": 7, + }, + "start": Object { + "column": 4, + "line": 7, + }, + }, + "method": false, + "range": Array [ + 51, + 54, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 7, }, + "start": Object { + "column": 4, + "line": 7, + }, + }, + "name": "get", + "range": Array [ + 51, + 54, ], + "type": "Identifier", + }, + }, + Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 8, + }, + "start": Object { + "column": 7, + "line": 8, + }, + }, + "name": "set", "range": Array [ - 24, - 111, + 63, + 66, ], - "type": "FunctionExpression", + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 10, + "line": 8, + }, + "start": Object { + "column": 4, + "line": 8, + }, }, + "range": Array [ + 60, + 66, + ], + "type": "SpreadElement", }, ], "range": Array [ - 8, - 113, + 36, + 68, ], "type": "ObjectExpression", }, "loc": Object { "end": Object { "column": 1, - "line": 5, + "line": 9, }, "start": Object { "column": 4, - "line": 1, + "line": 5, }, }, "range": Array [ - 4, - 113, + 32, + 68, ], "type": "VariableDeclarator", }, @@ -75729,24 +82709,24 @@ Object { "loc": Object { "end": Object { "column": 2, - "line": 5, + "line": 9, }, "start": Object { "column": 0, - "line": 1, + "line": 5, }, }, "range": Array [ - 0, - 114, + 28, + 69, ], "type": "VariableDeclaration", }, ], "loc": Object { "end": Object { - "column": 2, - "line": 5, + "column": 0, + "line": 10, }, "start": Object { "column": 0, @@ -75755,7 +82735,7 @@ Object { }, "range": Array [ 0, - 114, + 70, ], "sourceType": "script", "tokens": Array [ @@ -75780,7 +82760,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 5, + "column": 7, "line": 1, }, "start": Object { @@ -75790,92 +82770,92 @@ Object { }, "range": Array [ 4, - 5, + 7, ], "type": "Identifier", - "value": "x", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 8, "line": 1, }, "start": Object { - "column": 6, + "column": 7, "line": 1, }, }, "range": Array [ - 6, 7, + 8, ], "type": "Punctuator", - "value": "=", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 9, - "line": 1, + "column": 7, + "line": 2, }, "start": Object { - "column": 8, - "line": 1, + "column": 4, + "line": 2, }, }, "range": Array [ - 8, - 9, + 13, + 16, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "get", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 8, "line": 2, }, "start": Object { - "column": 4, + "column": 7, "line": 2, }, }, "range": Array [ - 14, - 24, + 16, + 17, ], - "type": "Identifier", - "value": "initialize", + "type": "Punctuator", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 15, - "line": 2, + "column": 7, + "line": 3, }, "start": Object { - "column": 14, - "line": 2, + "column": 4, + "line": 3, }, }, "range": Array [ - 24, + 22, 25, ], - "type": "Punctuator", - "value": "(", + "type": "Identifier", + "value": "set", }, Object { "loc": Object { "end": Object { - "column": 16, - "line": 2, + "column": 8, + "line": 3, }, "start": Object { - "column": 15, - "line": 2, + "column": 7, + "line": 3, }, }, "range": Array [ @@ -75883,202 +82863,202 @@ Object { 26, ], "type": "Punctuator", - "value": "{", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 23, - "line": 2, + "column": 3, + "line": 5, }, "start": Object { - "column": 16, - "line": 2, + "column": 0, + "line": 5, }, }, "range": Array [ - 26, - 33, + 28, + 31, ], - "type": "Identifier", - "value": "someVar", + "type": "Keyword", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 24, - "line": 2, + "column": 5, + "line": 5, }, "start": Object { - "column": 23, - "line": 2, + "column": 4, + "line": 5, }, }, "range": Array [ + 32, 33, - 34, ], - "type": "Punctuator", - "value": ",", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 33, - "line": 2, + "column": 7, + "line": 5, }, "start": Object { - "column": 25, - "line": 2, + "column": 6, + "line": 5, }, }, "range": Array [ + 34, 35, - 43, ], - "type": "Identifier", - "value": "otherVar", + "type": "Punctuator", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 34, - "line": 2, + "column": 9, + "line": 5, }, "start": Object { - "column": 33, - "line": 2, + "column": 8, + "line": 5, }, }, "range": Array [ - 43, - 44, + 36, + 37, ], "type": "Punctuator", - "value": ",", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 38, - "line": 2, + "column": 7, + "line": 6, }, "start": Object { - "column": 35, - "line": 2, + "column": 4, + "line": 6, }, }, "range": Array [ + 42, 45, - 48, ], - "type": "Punctuator", - "value": "...", + "type": "Identifier", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 45, - "line": 2, + "column": 8, + "line": 6, }, "start": Object { - "column": 38, - "line": 2, + "column": 7, + "line": 6, }, }, "range": Array [ - 48, - 55, + 45, + 46, ], - "type": "Identifier", - "value": "options", + "type": "Punctuator", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 46, - "line": 2, + "column": 7, + "line": 7, }, "start": Object { - "column": 45, - "line": 2, + "column": 4, + "line": 7, }, }, "range": Array [ - 55, - 56, + 51, + 54, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "get", }, Object { "loc": Object { "end": Object { - "column": 47, - "line": 2, + "column": 8, + "line": 7, }, "start": Object { - "column": 46, - "line": 2, + "column": 7, + "line": 7, }, }, "range": Array [ - 56, - 57, + 54, + 55, ], "type": "Punctuator", - "value": ")", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 49, - "line": 2, + "column": 7, + "line": 8, }, "start": Object { - "column": 48, - "line": 2, + "column": 4, + "line": 8, }, }, "range": Array [ - 58, - 59, + 60, + 63, ], "type": "Punctuator", - "value": "{", + "value": "...", }, Object { "loc": Object { "end": Object { - "column": 5, - "line": 4, + "column": 10, + "line": 8, }, "start": Object { - "column": 4, - "line": 4, + "column": 7, + "line": 8, }, }, "range": Array [ - 110, - 111, + 63, + 66, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "set", }, Object { "loc": Object { "end": Object { "column": 1, - "line": 5, + "line": 9, }, "start": Object { "column": 0, - "line": 5, + "line": 9, }, }, "range": Array [ - 112, - 113, + 67, + 68, ], "type": "Punctuator", "value": "}", @@ -76087,16 +83067,16 @@ Object { "loc": Object { "end": Object { "column": 2, - "line": 5, + "line": 9, }, "start": Object { "column": 1, - "line": 5, + "line": 9, }, }, "range": Array [ - 113, - 114, + 68, + 69, ], "type": "Punctuator", "value": ";", @@ -76106,7 +83086,7 @@ Object { } `; -exports[`javascript fixtures/experimentalObjectRestSpread/shorthand-properties.src 1`] = ` +exports[`javascript fixtures/experimentalObjectRestSpread/single-spread.src 1`] = ` Object { "body": Array [ Object { @@ -76293,7 +83273,7 @@ Object { "kind": "init", "loc": Object { "end": Object { - "column": 7, + "column": 12, "line": 6, }, "start": Object { @@ -76304,25 +83284,25 @@ Object { "method": false, "range": Array [ 42, - 45, + 50, ], - "shorthand": true, + "shorthand": false, "type": "Property", "value": Object { "loc": Object { "end": Object { - "column": 7, + "column": 12, "line": 6, }, "start": Object { - "column": 4, + "column": 9, "line": 6, }, }, "name": "foo", "range": Array [ - 42, - 45, + 47, + 50, ], "type": "Identifier", }, @@ -76342,15 +83322,15 @@ Object { }, "name": "get", "range": Array [ - 51, - 54, + 56, + 59, ], "type": "Identifier", }, "kind": "init", "loc": Object { "end": Object { - "column": 7, + "column": 12, "line": 7, }, "start": Object { @@ -76360,26 +83340,26 @@ Object { }, "method": false, "range": Array [ - 51, - 54, + 56, + 64, ], - "shorthand": true, + "shorthand": false, "type": "Property", "value": Object { "loc": Object { "end": Object { - "column": 7, + "column": 12, "line": 7, }, "start": Object { - "column": 4, + "column": 9, "line": 7, }, }, "name": "get", "range": Array [ - 51, - 54, + 61, + 64, ], "type": "Identifier", }, @@ -76398,8 +83378,8 @@ Object { }, "name": "set", "range": Array [ - 63, - 66, + 73, + 76, ], "type": "Identifier", }, @@ -76414,15 +83394,15 @@ Object { }, }, "range": Array [ - 60, - 66, + 70, + 76, ], "type": "SpreadElement", }, ], "range": Array [ 36, - 68, + 78, ], "type": "ObjectExpression", }, @@ -76438,7 +83418,7 @@ Object { }, "range": Array [ 32, - 68, + 78, ], "type": "VariableDeclarator", }, @@ -76456,7 +83436,7 @@ Object { }, "range": Array [ 28, - 69, + 79, ], "type": "VariableDeclaration", }, @@ -76473,7 +83453,7 @@ Object { }, "range": Array [ 0, - 70, + 80, ], "sourceType": "script", "tokens": Array [ @@ -76709,6 +83689,42 @@ Object { 46, ], "type": "Punctuator", + "value": ":", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 6, + }, + "start": Object { + "column": 9, + "line": 6, + }, + }, + "range": Array [ + 47, + 50, + ], + "type": "Identifier", + "value": "foo", + }, + Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 6, + }, + "start": Object { + "column": 12, + "line": 6, + }, + }, + "range": Array [ + 50, + 51, + ], + "type": "Punctuator", "value": ",", }, Object { @@ -76723,8 +83739,8 @@ Object { }, }, "range": Array [ - 51, - 54, + 56, + 59, ], "type": "Identifier", "value": "get", @@ -76741,8 +83757,44 @@ Object { }, }, "range": Array [ - 54, - 55, + 59, + 60, + ], + "type": "Punctuator", + "value": ":", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 7, + }, + "start": Object { + "column": 9, + "line": 7, + }, + }, + "range": Array [ + 61, + 64, + ], + "type": "Identifier", + "value": "get", + }, + Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 7, + }, + "start": Object { + "column": 12, + "line": 7, + }, + }, + "range": Array [ + 64, + 65, ], "type": "Punctuator", "value": ",", @@ -76759,8 +83811,8 @@ Object { }, }, "range": Array [ - 60, - 63, + 70, + 73, ], "type": "Punctuator", "value": "...", @@ -76777,8 +83829,8 @@ Object { }, }, "range": Array [ - 63, - 66, + 73, + 76, ], "type": "Identifier", "value": "set", @@ -76795,8 +83847,8 @@ Object { }, }, "range": Array [ - 67, - 68, + 77, + 78, ], "type": "Punctuator", "value": "}", @@ -76813,8 +83865,8 @@ Object { }, }, "range": Array [ - 68, - 69, + 78, + 79, ], "type": "Punctuator", "value": ";", @@ -76824,7 +83876,415 @@ Object { } `; -exports[`javascript fixtures/experimentalObjectRestSpread/single-spread.src 1`] = ` +exports[`javascript fixtures/experimentalObjectRestSpread/spread-trailing-comma.src 1`] = ` +Object { + "body": Array [ + Object { + "expression": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 4, + "line": 1, + }, + "start": Object { + "column": 3, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 3, + 4, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 4, + "line": 1, + }, + "start": Object { + "column": 3, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 3, + 4, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 4, + "line": 1, + }, + "start": Object { + "column": 3, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 3, + 4, + ], + "type": "Identifier", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "b", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 6, + 7, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "b", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", + }, + }, + Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "name": "c", + "range": Array [ + 12, + 13, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 13, + ], + "type": "SpreadElement", + }, + ], + "range": Array [ + 1, + 16, + ], + "type": "ObjectExpression", + }, + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 17, + ], + "type": "ExpressionStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 18, + ], + "sourceType": "script", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 1, + ], + "type": "Punctuator", + "value": "(", + }, + Object { + "loc": Object { + "end": Object { + "column": 2, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "range": Array [ + 1, + 2, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 4, + "line": 1, + }, + "start": Object { + "column": 3, + "line": 1, + }, + }, + "range": Array [ + 3, + 4, + ], + "type": "Identifier", + "value": "a", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 5, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "range": Array [ + 6, + 7, + ], + "type": "Identifier", + "value": "b", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "range": Array [ + 7, + 8, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 12, + ], + "type": "Punctuator", + "value": "...", + }, + Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "range": Array [ + 12, + 13, + ], + "type": "Identifier", + "value": "c", + }, + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 14, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "range": Array [ + 15, + 16, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "range": Array [ + 16, + 17, + ], + "type": "Punctuator", + "value": ")", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/experimentalObjectRestSpread/two-spread.src 1`] = ` Object { "body": Array [ Object { @@ -77046,29 +84506,27 @@ Object { }, }, Object { - "computed": false, - "key": Object { + "argument": Object { "loc": Object { "end": Object { - "column": 7, + "column": 10, "line": 7, }, "start": Object { - "column": 4, + "column": 7, "line": 7, }, }, "name": "get", "range": Array [ - 56, 59, + 62, ], "type": "Identifier", }, - "kind": "init", "loc": Object { "end": Object { - "column": 12, + "column": 10, "line": 7, }, "start": Object { @@ -77076,31 +84534,11 @@ Object { "line": 7, }, }, - "method": false, "range": Array [ 56, - 64, + 62, ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 7, - }, - "start": Object { - "column": 9, - "line": 7, - }, - }, - "name": "get", - "range": Array [ - 61, - 64, - ], - "type": "Identifier", - }, + "type": "SpreadElement", }, Object { "argument": Object { @@ -77116,8 +84554,8 @@ Object { }, "name": "set", "range": Array [ - 73, - 76, + 71, + 74, ], "type": "Identifier", }, @@ -77132,15 +84570,15 @@ Object { }, }, "range": Array [ - 70, - 76, + 68, + 74, ], "type": "SpreadElement", }, ], "range": Array [ 36, - 78, + 76, ], "type": "ObjectExpression", }, @@ -77156,7 +84594,7 @@ Object { }, "range": Array [ 32, - 78, + 76, ], "type": "VariableDeclarator", }, @@ -77174,7 +84612,7 @@ Object { }, "range": Array [ 28, - 79, + 77, ], "type": "VariableDeclaration", }, @@ -77191,7 +84629,7 @@ Object { }, "range": Array [ 0, - 80, + 78, ], "sourceType": "script", "tokens": Array [ @@ -77480,13 +84918,13 @@ Object { 56, 59, ], - "type": "Identifier", - "value": "get", + "type": "Punctuator", + "value": "...", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 10, "line": 7, }, "start": Object { @@ -77496,25 +84934,7 @@ Object { }, "range": Array [ 59, - 60, - ], - "type": "Punctuator", - "value": ":", - }, - Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 7, - }, - "start": Object { - "column": 9, - "line": 7, - }, - }, - "range": Array [ - 61, - 64, + 62, ], "type": "Identifier", "value": "get", @@ -77522,17 +84942,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 13, + "column": 11, "line": 7, }, "start": Object { - "column": 12, + "column": 10, "line": 7, }, }, "range": Array [ - 64, - 65, + 62, + 63, ], "type": "Punctuator", "value": ",", @@ -77549,8 +84969,8 @@ Object { }, }, "range": Array [ - 70, - 73, + 68, + 71, ], "type": "Punctuator", "value": "...", @@ -77567,8 +84987,8 @@ Object { }, }, "range": Array [ - 73, - 76, + 71, + 74, ], "type": "Identifier", "value": "set", @@ -77585,8 +85005,8 @@ Object { }, }, "range": Array [ - 77, - 78, + 75, + 76, ], "type": "Punctuator", "value": "}", @@ -77603,8 +85023,8 @@ Object { }, }, "range": Array [ - 78, - 79, + 76, + 77, ], "type": "Punctuator", "value": ";", @@ -77614,181 +85034,68 @@ Object { } `; -exports[`javascript fixtures/experimentalObjectRestSpread/spread-trailing-comma.src 1`] = ` +exports[`javascript fixtures/experimentalOptionalCatchBinding/optional-catch-binding.src 1`] = ` Object { "body": Array [ Object { - "expression": Object { + "block": Object { + "body": Array [], "loc": Object { "end": Object { - "column": 16, + "column": 6, "line": 1, }, "start": Object { - "column": 1, + "column": 4, "line": 1, }, }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 4, - "line": 1, - }, - "start": Object { - "column": 3, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 3, - 4, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 4, - "line": 1, - }, - "start": Object { - "column": 3, - "line": 1, - }, + "range": Array [ + 4, + 6, + ], + "type": "BlockStatement", + }, + "finalizer": null, + "handler": Object { + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 15, + "line": 1, }, - "method": false, - "range": Array [ - 3, - 4, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 4, - "line": 1, - }, - "start": Object { - "column": 3, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 3, - 4, - ], - "type": "Identifier", + "start": Object { + "column": 13, + "line": 1, }, }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "name": "b", - "range": Array [ - 6, - 7, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 6, - 7, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "name": "b", - "range": Array [ - 6, - 7, - ], - "type": "Identifier", - }, + "range": Array [ + 13, + 15, + ], + "type": "BlockStatement", + }, + "loc": Object { + "end": Object { + "column": 15, + "line": 1, }, - Object { - "argument": Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "name": "c", - "range": Array [ - 12, - 13, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 13, - ], - "type": "SpreadElement", + "start": Object { + "column": 7, + "line": 1, }, - ], + }, + "param": null, "range": Array [ - 1, - 16, + 7, + 15, ], - "type": "ObjectExpression", + "type": "CatchClause", }, "loc": Object { "end": Object { - "column": 17, + "column": 15, "line": 1, }, "start": Object { @@ -77798,9 +85105,9 @@ Object { }, "range": Array [ 0, - 17, + 15, ], - "type": "ExpressionStatement", + "type": "TryStatement", }, ], "loc": Object { @@ -77815,14 +85122,14 @@ Object { }, "range": Array [ 0, - 18, + 16, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, + "column": 3, "line": 1, }, "start": Object { @@ -77832,46 +85139,232 @@ Object { }, "range": Array [ 0, - 1, + 3, + ], + "type": "Keyword", + "value": "try", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 5, ], "type": "Punctuator", - "value": "(", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 2, + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "range": Array [ + 5, + 6, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "range": Array [ + 7, + 12, + ], + "type": "Keyword", + "value": "catch", + }, + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 14, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "range": Array [ + 14, + 15, + ], + "type": "Punctuator", + "value": "}", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/experimentalOptionalCatchBinding/optional-catch-binding-finally.src 1`] = ` +Object { + "body": Array [ + Object { + "block": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 6, + ], + "type": "BlockStatement", + }, + "finalizer": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, + }, + }, + "range": Array [ + 24, + 26, + ], + "type": "BlockStatement", + }, + "handler": Object { + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 15, + ], + "type": "BlockStatement", + }, + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "param": null, + "range": Array [ + 7, + 15, + ], + "type": "CatchClause", + }, + "loc": Object { + "end": Object { + "column": 26, "line": 1, }, "start": Object { - "column": 1, + "column": 0, "line": 1, }, }, "range": Array [ - 1, - 2, + 0, + 26, ], - "type": "Punctuator", - "value": "{", + "type": "TryStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 27, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 4, + "column": 3, "line": 1, }, "start": Object { - "column": 3, + "column": 0, "line": 1, }, }, "range": Array [ + 0, 3, - 4, ], - "type": "Identifier", - "value": "a", + "type": "Keyword", + "value": "try", }, Object { "loc": Object { @@ -77889,30 +85382,30 @@ Object { 5, ], "type": "Punctuator", - "value": ",", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 6, "line": 1, }, "start": Object { - "column": 6, + "column": 5, "line": 1, }, }, "range": Array [ + 5, 6, - 7, ], - "type": "Identifier", - "value": "b", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 12, "line": 1, }, "start": Object { @@ -77922,107 +85415,107 @@ Object { }, "range": Array [ 7, - 8, + 12, ], - "type": "Punctuator", - "value": ",", + "type": "Keyword", + "value": "catch", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 14, "line": 1, }, "start": Object { - "column": 9, + "column": 13, "line": 1, }, }, "range": Array [ - 9, - 12, + 13, + 14, ], "type": "Punctuator", - "value": "...", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 15, "line": 1, }, "start": Object { - "column": 12, + "column": 14, "line": 1, }, }, "range": Array [ - 12, - 13, + 14, + 15, ], - "type": "Identifier", - "value": "c", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 23, "line": 1, }, "start": Object { - "column": 13, + "column": 16, "line": 1, }, }, "range": Array [ - 13, - 14, + 16, + 23, ], - "type": "Punctuator", - "value": ",", + "type": "Keyword", + "value": "finally", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 25, "line": 1, }, "start": Object { - "column": 15, + "column": 24, "line": 1, }, }, "range": Array [ - 15, - 16, + 24, + 25, ], "type": "Punctuator", - "value": "}", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 26, "line": 1, }, "start": Object { - "column": 16, + "column": 25, "line": 1, }, }, "range": Array [ - 16, - 17, + 25, + 26, ], "type": "Punctuator", - "value": ")", + "value": "}", }, ], "type": "Program", } `; -exports[`javascript fixtures/experimentalObjectRestSpread/two-spread.src 1`] = ` +exports[`javascript fixtures/exponentiationOperators/exponential-operators.src 1`] = ` Object { "body": Array [ Object { @@ -78031,7 +85524,7 @@ Object { "id": Object { "loc": Object { "end": Object { - "column": 7, + "column": 5, "line": 1, }, "start": Object { @@ -78039,17 +85532,72 @@ Object { "line": 1, }, }, - "name": "foo", + "name": "x", "range": Array [ 4, - 7, + 5, ], "type": "Identifier", }, - "init": null, + "init": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, + 9, + ], + "raw": "2", + "type": "Literal", + "value": 2, + }, + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "operator": "**", + "range": Array [ + 8, + 14, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 14, + ], + "raw": "3", + "type": "Literal", + "value": 3, + }, + "type": "BinaryExpression", + }, "loc": Object { "end": Object { - "column": 7, + "column": 14, "line": 1, }, "start": Object { @@ -78059,88 +85607,122 @@ Object { }, "range": Array [ 4, - 7, + 14, ], "type": "VariableDeclarator", }, - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "name": "get", - "range": Array [ - 13, - 16, - ], - "type": "Identifier", - }, - "init": null, + ], + "kind": "var", + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 15, + ], + "type": "VariableDeclaration", + }, + Object { + "expression": Object { + "left": Object { "loc": Object { "end": Object { - "column": 7, + "column": 1, "line": 2, }, "start": Object { - "column": 4, + "column": 0, "line": 2, }, }, + "name": "x", "range": Array [ - 13, 16, + 17, ], - "type": "VariableDeclarator", + "type": "Identifier", }, - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 3, - }, - "start": Object { - "column": 4, - "line": 3, - }, - }, - "name": "set", - "range": Array [ - 22, - 25, - ], - "type": "Identifier", + "loc": Object { + "end": Object { + "column": 7, + "line": 2, }, - "init": null, + "start": Object { + "column": 0, + "line": 2, + }, + }, + "operator": "**=", + "range": Array [ + 16, + 23, + ], + "right": Object { "loc": Object { "end": Object { "column": 7, - "line": 3, + "line": 2, }, "start": Object { - "column": 4, - "line": 3, + "column": 6, + "line": 2, }, }, "range": Array [ 22, - 25, + 23, ], - "type": "VariableDeclarator", + "raw": "4", + "type": "Literal", + "value": 4, }, - ], - "kind": "var", + "type": "AssignmentExpression", + }, "loc": Object { "end": Object { "column": 8, - "line": 3, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 2, + }, + }, + "range": Array [ + 16, + 24, + ], + "type": "ExpressionStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 3, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 25, + ], + "sourceType": "script", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 1, }, "start": Object { "column": 0, @@ -78149,216 +85731,241 @@ Object { }, "range": Array [ 0, - 26, + 3, ], - "type": "VariableDeclaration", + "type": "Keyword", + "value": "var", }, Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 5, - }, - "start": Object { - "column": 4, - "line": 5, - }, - }, - "name": "x", - "range": Array [ - 32, - 33, - ], - "type": "Identifier", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 1, - "line": 9, - }, - "start": Object { - "column": 8, - "line": 5, - }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 6, - }, - "start": Object { - "column": 4, - "line": 6, - }, - }, - "name": "foo", - "range": Array [ - 42, - 45, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 12, - "line": 6, - }, - "start": Object { - "column": 4, - "line": 6, - }, - }, - "method": false, - "range": Array [ - 42, - 50, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 6, - }, - "start": Object { - "column": 9, - "line": 6, - }, - }, - "name": "foo", - "range": Array [ - 47, - 50, - ], - "type": "Identifier", - }, - }, - Object { - "argument": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 7, - }, - "start": Object { - "column": 7, - "line": 7, - }, - }, - "name": "get", - "range": Array [ - 59, - 62, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 10, - "line": 7, - }, - "start": Object { - "column": 4, - "line": 7, - }, - }, - "range": Array [ - 56, - 62, - ], - "type": "SpreadElement", - }, - Object { - "argument": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 8, - }, - "start": Object { - "column": 7, - "line": 8, - }, - }, - "name": "set", - "range": Array [ - 71, - 74, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 10, - "line": 8, - }, - "start": Object { - "column": 4, - "line": 8, - }, - }, - "range": Array [ - 68, - 74, - ], - "type": "SpreadElement", - }, - ], - "range": Array [ - 36, - 76, - ], - "type": "ObjectExpression", - }, - "loc": Object { - "end": Object { - "column": 1, - "line": 9, - }, - "start": Object { - "column": 4, - "line": 5, - }, - }, - "range": Array [ - 32, - 76, - ], - "type": "VariableDeclarator", + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 5, + ], + "type": "Identifier", + "value": "x", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, }, + }, + "range": Array [ + 6, + 7, ], - "kind": "var", + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, + 9, + ], + "type": "Numeric", + "value": "2", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "range": Array [ + 10, + 12, + ], + "type": "Punctuator", + "value": "**", + }, + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 14, + ], + "type": "Numeric", + "value": "3", + }, + Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "range": Array [ + 14, + 15, + ], + "type": "Punctuator", + "value": ";", + }, + Object { "loc": Object { "end": Object { + "column": 1, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 2, + }, + }, + "range": Array [ + 16, + 17, + ], + "type": "Identifier", + "value": "x", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 2, + }, + "start": Object { "column": 2, - "line": 9, + "line": 2, + }, + }, + "range": Array [ + 18, + 21, + ], + "type": "Punctuator", + "value": "**=", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 2, + }, + "start": Object { + "column": 6, + "line": 2, + }, + }, + "range": Array [ + 22, + 23, + ], + "type": "Numeric", + "value": "4", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 2, + }, + "start": Object { + "column": 7, + "line": 2, + }, + }, + "range": Array [ + 23, + 24, + ], + "type": "Punctuator", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/for/for-empty.src 1`] = ` +Object { + "body": Array [ + Object { + "body": Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, + 9, + ], + "type": "EmptyStatement", + }, + "init": null, + "loc": Object { + "end": Object { + "column": 9, + "line": 1, }, "start": Object { "column": 0, - "line": 5, + "line": 1, }, }, "range": Array [ - 28, - 77, + 0, + 9, ], - "type": "VariableDeclaration", + "test": null, + "type": "ForStatement", + "update": null, }, ], "loc": Object { "end": Object { "column": 0, - "line": 10, + "line": 2, }, "start": Object { "column": 0, @@ -78367,7 +85974,7 @@ Object { }, "range": Array [ 0, - 78, + 10, ], "sourceType": "script", "tokens": Array [ @@ -78387,12 +85994,12 @@ Object { 3, ], "type": "Keyword", - "value": "var", + "value": "for", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 5, "line": 1, }, "start": Object { @@ -78402,456 +86009,920 @@ Object { }, "range": Array [ 4, - 7, + 5, ], - "type": "Identifier", - "value": "foo", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 6, "line": 1, }, "start": Object { - "column": 7, + "column": 5, "line": 1, }, }, "range": Array [ - 7, - 8, + 5, + 6, ], "type": "Punctuator", - "value": ",", + "value": ";", }, Object { "loc": Object { "end": Object { "column": 7, - "line": 2, + "line": 1, }, "start": Object { - "column": 4, - "line": 2, + "column": 6, + "line": 1, }, }, "range": Array [ - 13, - 16, + 6, + 7, ], - "type": "Identifier", - "value": "get", + "type": "Punctuator", + "value": ";", }, Object { "loc": Object { "end": Object { "column": 8, - "line": 2, + "line": 1, }, "start": Object { "column": 7, - "line": 2, + "line": 1, }, }, "range": Array [ - 16, - 17, + 7, + 8, ], "type": "Punctuator", - "value": ",", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 3, + "column": 9, + "line": 1, }, "start": Object { - "column": 4, - "line": 3, + "column": 8, + "line": 1, }, }, "range": Array [ - 22, - 25, + 8, + 9, ], - "type": "Identifier", - "value": "set", + "type": "Punctuator", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/for/for-loop.src 1`] = ` +Object { + "body": Array [ Object { + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 30, + "line": 1, + }, + "start": Object { + "column": 28, + "line": 1, + }, + }, + "range": Array [ + 28, + 30, + ], + "type": "BlockStatement", + }, + "init": Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "name": "i", + "range": Array [ + 8, + 9, + ], + "type": "Identifier", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "range": Array [ + 12, + 13, + ], + "raw": "0", + "type": "Literal", + "value": 0, + }, + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, + 13, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 13, + ], + "type": "VariableDeclaration", + }, "loc": Object { "end": Object { - "column": 8, - "line": 3, + "column": 30, + "line": 1, }, "start": Object { - "column": 7, - "line": 3, + "column": 0, + "line": 1, }, }, "range": Array [ - 25, - 26, + 0, + 30, ], - "type": "Punctuator", - "value": ";", + "test": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "name": "i", + "range": Array [ + 15, + 16, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "operator": "<", + "range": Array [ + 15, + 21, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 19, + "line": 1, + }, + }, + "range": Array [ + 19, + 21, + ], + "raw": "10", + "type": "Literal", + "value": 10, + }, + "type": "BinaryExpression", + }, + "type": "ForStatement", + "update": Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "name": "i", + "range": Array [ + 23, + 24, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "operator": "++", + "prefix": false, + "range": Array [ + 23, + 26, + ], + "type": "UpdateExpression", + }, + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 31, + ], + "sourceType": "script", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 3, + ], + "type": "Keyword", + "value": "for", }, Object { "loc": Object { "end": Object { - "column": 3, - "line": 5, + "column": 4, + "line": 1, }, "start": Object { - "column": 0, - "line": 5, + "column": 3, + "line": 1, }, }, "range": Array [ - 28, - 31, + 3, + 4, ], - "type": "Keyword", - "value": "var", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 5, - "line": 5, + "column": 7, + "line": 1, }, "start": Object { "column": 4, - "line": 5, + "line": 1, }, }, "range": Array [ - 32, - 33, + 4, + 7, ], - "type": "Identifier", - "value": "x", + "type": "Keyword", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 5, + "column": 9, + "line": 1, }, "start": Object { - "column": 6, - "line": 5, + "column": 8, + "line": 1, }, }, "range": Array [ - 34, - 35, + 8, + 9, ], - "type": "Punctuator", - "value": "=", + "type": "Identifier", + "value": "i", }, Object { "loc": Object { "end": Object { - "column": 9, - "line": 5, + "column": 11, + "line": 1, }, "start": Object { - "column": 8, - "line": 5, + "column": 10, + "line": 1, }, }, "range": Array [ - 36, - 37, + 10, + 11, ], "type": "Punctuator", - "value": "{", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 6, + "column": 13, + "line": 1, }, "start": Object { - "column": 4, - "line": 6, + "column": 12, + "line": 1, }, }, "range": Array [ - 42, - 45, + 12, + 13, ], - "type": "Identifier", - "value": "foo", + "type": "Numeric", + "value": "0", }, Object { "loc": Object { "end": Object { - "column": 8, - "line": 6, + "column": 14, + "line": 1, }, "start": Object { - "column": 7, - "line": 6, + "column": 13, + "line": 1, }, }, "range": Array [ - 45, - 46, + 13, + 14, ], "type": "Punctuator", - "value": ":", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 12, - "line": 6, + "column": 16, + "line": 1, }, "start": Object { - "column": 9, - "line": 6, + "column": 15, + "line": 1, }, }, "range": Array [ - 47, - 50, + 15, + 16, ], "type": "Identifier", - "value": "foo", + "value": "i", }, Object { "loc": Object { "end": Object { - "column": 13, - "line": 6, + "column": 18, + "line": 1, }, "start": Object { - "column": 12, - "line": 6, + "column": 17, + "line": 1, }, }, "range": Array [ - 50, - 51, + 17, + 18, ], "type": "Punctuator", - "value": ",", + "value": "<", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 7, + "column": 21, + "line": 1, }, "start": Object { - "column": 4, - "line": 7, + "column": 19, + "line": 1, }, }, "range": Array [ - 56, - 59, + 19, + 21, ], - "type": "Punctuator", - "value": "...", + "type": "Numeric", + "value": "10", }, Object { "loc": Object { "end": Object { - "column": 10, - "line": 7, + "column": 22, + "line": 1, }, "start": Object { - "column": 7, - "line": 7, + "column": 21, + "line": 1, }, }, "range": Array [ - 59, - 62, + 21, + 22, ], - "type": "Identifier", - "value": "get", + "type": "Punctuator", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 11, - "line": 7, + "column": 24, + "line": 1, }, "start": Object { - "column": 10, - "line": 7, + "column": 23, + "line": 1, }, }, "range": Array [ - 62, - 63, + 23, + 24, ], - "type": "Punctuator", - "value": ",", + "type": "Identifier", + "value": "i", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 8, + "column": 26, + "line": 1, }, "start": Object { - "column": 4, - "line": 8, + "column": 24, + "line": 1, }, }, "range": Array [ - 68, - 71, + 24, + 26, ], "type": "Punctuator", - "value": "...", + "value": "++", }, Object { "loc": Object { "end": Object { - "column": 10, - "line": 8, + "column": 27, + "line": 1, }, "start": Object { - "column": 7, - "line": 8, + "column": 26, + "line": 1, }, }, "range": Array [ - 71, - 74, + 26, + 27, ], - "type": "Identifier", - "value": "set", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 1, - "line": 9, + "column": 29, + "line": 1, }, "start": Object { - "column": 0, - "line": 9, + "column": 28, + "line": 1, }, }, "range": Array [ - 75, - 76, + 28, + 29, ], "type": "Punctuator", - "value": "}", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 2, - "line": 9, + "column": 30, + "line": 1, }, "start": Object { - "column": 1, - "line": 9, + "column": 29, + "line": 1, }, }, "range": Array [ - 76, - 77, + 29, + 30, ], "type": "Punctuator", - "value": ";", + "value": "}", }, ], "type": "Program", } `; -exports[`javascript fixtures/experimentalOptionalCatchBinding/optional-catch-binding.src 1`] = ` +exports[`javascript fixtures/for/for-with-coma.src 1`] = ` Object { "body": Array [ Object { - "block": Object { + "body": Object { "body": Array [], "loc": Object { "end": Object { - "column": 6, + "column": 1, + "line": 3, + }, + "start": Object { + "column": 0, + "line": 2, + }, + }, + "range": Array [ + 41, + 44, + ], + "type": "BlockStatement", + }, + "init": Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "name": "i", + "range": Array [ + 9, + 10, + ], + "type": "Identifier", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 14, + ], + "raw": "0", + "type": "Literal", + "value": 0, + }, + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 14, + ], + "type": "VariableDeclarator", + }, + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "name": "j", + "range": Array [ + 16, + 17, + ], + "type": "Identifier", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "range": Array [ + 20, + 22, + ], + "raw": "10", + "type": "Literal", + "value": 10, + }, + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "range": Array [ + 16, + 22, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", + "loc": Object { + "end": Object { + "column": 22, "line": 1, }, "start": Object { - "column": 4, + "column": 5, "line": 1, }, }, "range": Array [ - 4, - 6, + 5, + 22, ], - "type": "BlockStatement", + "type": "VariableDeclaration", }, - "finalizer": null, - "handler": Object { - "body": Object { - "body": Array [], + "loc": Object { + "end": Object { + "column": 1, + "line": 3, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 44, + ], + "test": Object { + "left": Object { "loc": Object { "end": Object { - "column": 15, + "column": 25, "line": 1, }, "start": Object { - "column": 13, + "column": 24, "line": 1, }, }, + "name": "i", "range": Array [ - 13, - 15, + 24, + 25, ], - "type": "BlockStatement", + "type": "Identifier", }, "loc": Object { "end": Object { - "column": 15, + "column": 29, "line": 1, }, "start": Object { - "column": 7, + "column": 24, "line": 1, }, }, - "param": null, + "operator": "<", "range": Array [ - 7, - 15, + 24, + 29, ], - "type": "CatchClause", - }, - "loc": Object { - "end": Object { - "column": 15, - "line": 1, + "right": Object { + "loc": Object { + "end": Object { + "column": 29, + "line": 1, + }, + "start": Object { + "column": 28, + "line": 1, + }, + }, + "name": "j", + "range": Array [ + 28, + 29, + ], + "type": "Identifier", }, - "start": Object { - "column": 0, - "line": 1, + "type": "BinaryExpression", + }, + "type": "ForStatement", + "update": Object { + "expressions": Array [ + Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 32, + "line": 1, + }, + "start": Object { + "column": 31, + "line": 1, + }, + }, + "name": "i", + "range": Array [ + 31, + 32, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 34, + "line": 1, + }, + "start": Object { + "column": 31, + "line": 1, + }, + }, + "operator": "++", + "prefix": false, + "range": Array [ + 31, + 34, + ], + "type": "UpdateExpression", + }, + Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 37, + "line": 1, + }, + "start": Object { + "column": 36, + "line": 1, + }, + }, + "name": "j", + "range": Array [ + 36, + 37, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 39, + "line": 1, + }, + "start": Object { + "column": 36, + "line": 1, + }, + }, + "operator": "--", + "prefix": false, + "range": Array [ + 36, + 39, + ], + "type": "UpdateExpression", + }, + ], + "loc": Object { + "end": Object { + "column": 39, + "line": 1, + }, + "start": Object { + "column": 31, + "line": 1, + }, }, + "range": Array [ + 31, + 39, + ], + "type": "SequenceExpression", }, - "range": Array [ - 0, - 15, - ], - "type": "TryStatement", }, ], "loc": Object { "end": Object { "column": 0, - "line": 2, + "line": 5, }, "start": Object { "column": 0, @@ -78860,7 +86931,7 @@ Object { }, "range": Array [ 0, - 16, + 46, ], "sourceType": "script", "tokens": Array [ @@ -78880,7 +86951,7 @@ Object { 3, ], "type": "Keyword", - "value": "try", + "value": "for", }, Object { "loc": Object { @@ -78898,12 +86969,12 @@ Object { 5, ], "type": "Punctuator", - "value": "{", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 6, + "column": 8, "line": 1, }, "start": Object { @@ -78913,10 +86984,28 @@ Object { }, "range": Array [ 5, - 6, + 8, ], - "type": "Punctuator", - "value": "}", + "type": "Keyword", + "value": "var", + }, + Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 10, + ], + "type": "Identifier", + "value": "i", }, Object { "loc": Object { @@ -78925,16 +87014,16 @@ Object { "line": 1, }, "start": Object { - "column": 7, + "column": 11, "line": 1, }, }, "range": Array [ - 7, + 11, 12, ], - "type": "Keyword", - "value": "catch", + "type": "Punctuator", + "value": "=", }, Object { "loc": Object { @@ -78951,8 +87040,8 @@ Object { 13, 14, ], - "type": "Punctuator", - "value": "{", + "type": "Numeric", + "value": "0", }, Object { "loc": Object { @@ -78970,280 +87059,292 @@ Object { 15, ], "type": "Punctuator", - "value": "}", + "value": ",", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/experimentalOptionalCatchBinding/optional-catch-binding-finally.src 1`] = ` -Object { - "body": Array [ Object { - "block": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, + "loc": Object { + "end": Object { + "column": 17, + "line": 1, }, - "range": Array [ - 4, - 6, - ], - "type": "BlockStatement", - }, - "finalizer": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 26, - "line": 1, - }, - "start": Object { - "column": 24, - "line": 1, - }, + "start": Object { + "column": 16, + "line": 1, }, - "range": Array [ - 24, - 26, - ], - "type": "BlockStatement", }, - "handler": Object { - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "range": Array [ - 13, - 15, - ], - "type": "BlockStatement", + "range": Array [ + 16, + 17, + ], + "type": "Identifier", + "value": "j", + }, + Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, }, - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, + "start": Object { + "column": 18, + "line": 1, }, - "param": null, - "range": Array [ - 7, - 15, - ], - "type": "CatchClause", }, + "range": Array [ + 18, + 19, + ], + "type": "Punctuator", + "value": "=", + }, + Object { "loc": Object { "end": Object { - "column": 26, + "column": 22, "line": 1, }, "start": Object { - "column": 0, + "column": 20, "line": 1, }, }, "range": Array [ - 0, - 26, + 20, + 22, ], - "type": "TryStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, + "type": "Numeric", + "value": "10", }, - "start": Object { - "column": 0, - "line": 1, + Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "range": Array [ + 22, + 23, + ], + "type": "Punctuator", + "value": ";", }, - }, - "range": Array [ - 0, - 27, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, + "column": 25, "line": 1, }, "start": Object { - "column": 0, + "column": 24, "line": 1, }, }, "range": Array [ - 0, - 3, + 24, + 25, ], - "type": "Keyword", - "value": "try", + "type": "Identifier", + "value": "i", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 27, "line": 1, }, "start": Object { - "column": 4, + "column": 26, "line": 1, }, }, "range": Array [ - 4, - 5, + 26, + 27, ], "type": "Punctuator", - "value": "{", + "value": "<", }, Object { "loc": Object { "end": Object { - "column": 6, + "column": 29, "line": 1, }, "start": Object { - "column": 5, + "column": 28, "line": 1, }, }, "range": Array [ - 5, - 6, + 28, + 29, + ], + "type": "Identifier", + "value": "j", + }, + Object { + "loc": Object { + "end": Object { + "column": 30, + "line": 1, + }, + "start": Object { + "column": 29, + "line": 1, + }, + }, + "range": Array [ + 29, + 30, ], "type": "Punctuator", - "value": "}", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 32, "line": 1, }, "start": Object { - "column": 7, + "column": 31, "line": 1, }, }, "range": Array [ - 7, - 12, + 31, + 32, ], - "type": "Keyword", - "value": "catch", + "type": "Identifier", + "value": "i", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 34, "line": 1, }, "start": Object { - "column": 13, + "column": 32, "line": 1, }, }, "range": Array [ - 13, - 14, + 32, + 34, ], "type": "Punctuator", - "value": "{", + "value": "++", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 35, "line": 1, }, "start": Object { - "column": 14, + "column": 34, "line": 1, }, }, "range": Array [ - 14, - 15, + 34, + 35, ], "type": "Punctuator", - "value": "}", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 37, "line": 1, }, "start": Object { - "column": 16, + "column": 36, "line": 1, }, }, "range": Array [ - 16, - 23, + 36, + 37, ], - "type": "Keyword", - "value": "finally", + "type": "Identifier", + "value": "j", }, Object { "loc": Object { "end": Object { - "column": 25, + "column": 39, "line": 1, }, "start": Object { - "column": 24, + "column": 37, "line": 1, }, }, "range": Array [ - 24, - 25, + 37, + 39, ], "type": "Punctuator", - "value": "{", + "value": "--", }, Object { "loc": Object { "end": Object { - "column": 26, + "column": 40, "line": 1, }, "start": Object { - "column": 25, + "column": 39, "line": 1, }, }, "range": Array [ - 25, - 26, + 39, + 40, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 2, + }, + }, + "range": Array [ + 41, + 42, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 3, + }, + "start": Object { + "column": 0, + "line": 3, + }, + }, + "range": Array [ + 43, + 44, ], "type": "Punctuator", "value": "}", @@ -79253,108 +87354,106 @@ Object { } `; -exports[`javascript fixtures/exponentiationOperators/exponential-operators.src 1`] = ` +exports[`javascript fixtures/for/for-with-const.src 1`] = ` Object { "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 4, - 5, - ], - "type": "Identifier", + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 1, + "line": 3, }, - "init": Object { - "left": Object { + "start": Object { + "column": 0, + "line": 2, + }, + }, + "range": Array [ + 26, + 29, + ], + "type": "BlockStatement", + }, + "init": Object { + "declarations": Array [ + Object { + "id": Object { "loc": Object { "end": Object { - "column": 9, + "column": 12, "line": 1, }, "start": Object { - "column": 8, + "column": 11, "line": 1, }, }, + "name": "i", "range": Array [ - 8, - 9, + 11, + 12, ], - "raw": "2", - "type": "Literal", - "value": 2, - }, - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, + "type": "Identifier", }, - "operator": "**", - "range": Array [ - 8, - 14, - ], - "right": Object { + "init": Object { "loc": Object { "end": Object { - "column": 14, + "column": 16, "line": 1, }, "start": Object { - "column": 13, + "column": 15, "line": 1, }, }, "range": Array [ - 13, - 14, + 15, + 16, ], - "raw": "3", + "raw": "0", "type": "Literal", - "value": 3, - }, - "type": "BinaryExpression", - }, - "loc": Object { - "end": Object { - "column": 14, - "line": 1, + "value": 0, }, - "start": Object { - "column": 4, - "line": 1, + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, }, + "range": Array [ + 11, + 16, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "const", + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, }, - "range": Array [ - 4, - 14, - ], - "type": "VariableDeclarator", }, - ], - "kind": "var", + "range": Array [ + 5, + 16, + ], + "type": "VariableDeclaration", + }, "loc": Object { "end": Object { - "column": 15, - "line": 1, + "column": 1, + "line": 3, }, "start": Object { "column": 0, @@ -79363,87 +87462,70 @@ Object { }, "range": Array [ 0, - 15, + 29, ], - "type": "VariableDeclaration", - }, - Object { - "expression": Object { + "test": Object { "left": Object { "loc": Object { - "end": Object { - "column": 1, - "line": 2, + "end": Object { + "column": 19, + "line": 1, }, "start": Object { - "column": 0, - "line": 2, + "column": 18, + "line": 1, }, }, - "name": "x", + "name": "i", "range": Array [ - 16, - 17, + 18, + 19, ], "type": "Identifier", }, "loc": Object { "end": Object { - "column": 7, - "line": 2, + "column": 23, + "line": 1, }, "start": Object { - "column": 0, - "line": 2, + "column": 18, + "line": 1, }, }, - "operator": "**=", + "operator": "<", "range": Array [ - 16, + 18, 23, ], "right": Object { "loc": Object { "end": Object { - "column": 7, - "line": 2, + "column": 23, + "line": 1, }, "start": Object { - "column": 6, - "line": 2, + "column": 22, + "line": 1, }, }, + "name": "j", "range": Array [ 22, 23, ], - "raw": "4", - "type": "Literal", - "value": 4, - }, - "type": "AssignmentExpression", - }, - "loc": Object { - "end": Object { - "column": 8, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 2, + "type": "Identifier", }, + "type": "BinaryExpression", }, - "range": Array [ - 16, - 24, - ], - "type": "ExpressionStatement", + "type": "ForStatement", + "update": null, }, ], "loc": Object { "end": Object { "column": 0, - "line": 3, + "line": 4, }, "start": Object { "column": 0, @@ -79452,7 +87534,7 @@ Object { }, "range": Array [ 0, - 25, + 30, ], "sourceType": "script", "tokens": Array [ @@ -79472,7 +87554,7 @@ Object { 3, ], "type": "Keyword", - "value": "var", + "value": "for", }, Object { "loc": Object { @@ -79489,44 +87571,26 @@ Object { 4, 5, ], - "type": "Identifier", - "value": "x", - }, - Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "range": Array [ - 6, - 7, - ], "type": "Punctuator", - "value": "=", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 10, "line": 1, }, "start": Object { - "column": 8, + "column": 5, "line": 1, }, }, "range": Array [ - 8, - 9, + 5, + 10, ], - "type": "Numeric", - "value": "2", + "type": "Keyword", + "value": "const", }, Object { "loc": Object { @@ -79535,16 +87599,16 @@ Object { "line": 1, }, "start": Object { - "column": 10, + "column": 11, "line": 1, }, }, "range": Array [ - 10, + 11, 12, ], - "type": "Punctuator", - "value": "**", + "type": "Identifier", + "value": "i", }, Object { "loc": Object { @@ -79561,211 +87625,113 @@ Object { 13, 14, ], - "type": "Numeric", - "value": "3", + "type": "Punctuator", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 16, "line": 1, }, "start": Object { - "column": 14, + "column": 15, "line": 1, }, }, "range": Array [ - 14, 15, - ], - "type": "Punctuator", - "value": ";", - }, - Object { - "loc": Object { - "end": Object { - "column": 1, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 2, - }, - }, - "range": Array [ 16, - 17, - ], - "type": "Identifier", - "value": "x", - }, - Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 2, - }, - "start": Object { - "column": 2, - "line": 2, - }, - }, - "range": Array [ - 18, - 21, - ], - "type": "Punctuator", - "value": "**=", - }, - Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 2, - }, - "start": Object { - "column": 6, - "line": 2, - }, - }, - "range": Array [ - 22, - 23, ], "type": "Numeric", - "value": "4", + "value": "0", }, Object { "loc": Object { "end": Object { - "column": 8, - "line": 2, + "column": 17, + "line": 1, }, "start": Object { - "column": 7, - "line": 2, + "column": 16, + "line": 1, }, }, "range": Array [ - 23, - 24, + 16, + 17, ], "type": "Punctuator", "value": ";", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/for/for-empty.src 1`] = ` -Object { - "body": Array [ Object { - "body": Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "range": Array [ - 8, - 9, - ], - "type": "EmptyStatement", - }, - "init": null, "loc": Object { "end": Object { - "column": 9, + "column": 19, "line": 1, }, "start": Object { - "column": 0, + "column": 18, "line": 1, }, }, "range": Array [ - 0, - 9, + 18, + 19, ], - "test": null, - "type": "ForStatement", - "update": null, - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Identifier", + "value": "i", }, - }, - "range": Array [ - 0, - 10, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, + "column": 21, "line": 1, }, "start": Object { - "column": 0, + "column": 20, "line": 1, }, }, "range": Array [ - 0, - 3, + 20, + 21, ], - "type": "Keyword", - "value": "for", + "type": "Punctuator", + "value": "<", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 23, "line": 1, }, "start": Object { - "column": 4, + "column": 22, "line": 1, }, }, "range": Array [ - 4, - 5, + 22, + 23, ], - "type": "Punctuator", - "value": "(", + "type": "Identifier", + "value": "j", }, Object { "loc": Object { "end": Object { - "column": 6, + "column": 24, "line": 1, }, "start": Object { - "column": 5, + "column": 23, "line": 1, }, }, "range": Array [ - 5, - 6, + 23, + 24, ], "type": "Punctuator", "value": ";", @@ -79773,161 +87739,141 @@ Object { Object { "loc": Object { "end": Object { - "column": 7, + "column": 25, "line": 1, }, "start": Object { - "column": 6, + "column": 24, "line": 1, }, }, "range": Array [ - 6, - 7, + 24, + 25, ], "type": "Punctuator", - "value": ";", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 8, - "line": 1, + "column": 1, + "line": 2, }, "start": Object { - "column": 7, - "line": 1, + "column": 0, + "line": 2, }, }, "range": Array [ - 7, - 8, + 26, + 27, ], "type": "Punctuator", - "value": ")", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 9, - "line": 1, + "column": 1, + "line": 3, }, "start": Object { - "column": 8, - "line": 1, + "column": 0, + "line": 3, }, }, "range": Array [ - 8, - 9, + 28, + 29, ], "type": "Punctuator", - "value": ";", + "value": "}", }, ], "type": "Program", } `; -exports[`javascript fixtures/for/for-loop.src 1`] = ` +exports[`javascript fixtures/for/for-with-function.src 1`] = ` Object { "body": Array [ Object { "body": Object { - "body": Array [], "loc": Object { "end": Object { - "column": 30, + "column": 42, "line": 1, }, "start": Object { - "column": 28, + "column": 41, "line": 1, }, }, "range": Array [ - 28, - 30, + 41, + 42, ], - "type": "BlockStatement", + "type": "EmptyStatement", }, "init": Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "name": "i", - "range": Array [ - 8, - 9, - ], - "type": "Identifier", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "range": Array [ - 12, - 13, - ], - "raw": "0", - "type": "Literal", - "value": 0, + "left": Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, }, - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, + "start": Object { + "column": 5, + "line": 1, }, - "range": Array [ - 8, - 13, - ], - "type": "VariableDeclarator", }, - ], - "kind": "var", + "name": "x", + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 13, + "column": 10, "line": 1, }, "start": Object { - "column": 4, + "column": 5, "line": 1, }, }, + "operator": "=", "range": Array [ - 4, - 13, + 5, + 10, ], - "type": "VariableDeclaration", + "right": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 10, + ], + "raw": "5", + "type": "Literal", + "value": 5, + }, + "type": "AssignmentExpression", }, "loc": Object { "end": Object { - "column": 30, + "column": 42, "line": 1, }, "start": Object { @@ -79937,100 +87883,171 @@ Object { }, "range": Array [ 0, - 30, + 42, ], "test": Object { "left": Object { "loc": Object { "end": Object { - "column": 16, + "column": 13, "line": 1, }, "start": Object { - "column": 15, + "column": 12, "line": 1, }, }, - "name": "i", + "name": "x", "range": Array [ - 15, - 16, + 12, + 13, ], "type": "Identifier", }, "loc": Object { "end": Object { - "column": 21, + "column": 33, "line": 1, }, "start": Object { - "column": 15, + "column": 12, "line": 1, }, }, - "operator": "<", + "operator": "=", "range": Array [ - 15, - 21, + 12, + 33, ], "right": Object { + "arguments": Array [], + "callee": Object { + "computed": false, + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "object": Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 16, + 17, + ], + "type": "Identifier", + }, + "property": Object { + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "name": "toExponential", + "range": Array [ + 18, + 31, + ], + "type": "Identifier", + }, + "range": Array [ + 16, + 31, + ], + "type": "MemberExpression", + }, "loc": Object { "end": Object { - "column": 21, + "column": 33, "line": 1, }, "start": Object { - "column": 19, + "column": 16, "line": 1, }, }, "range": Array [ - 19, - 21, + 16, + 33, ], - "raw": "10", - "type": "Literal", - "value": 10, + "type": "CallExpression", }, - "type": "BinaryExpression", + "type": "AssignmentExpression", }, "type": "ForStatement", "update": Object { - "argument": Object { + "left": Object { "loc": Object { "end": Object { - "column": 24, + "column": 36, "line": 1, }, "start": Object { - "column": 23, + "column": 35, "line": 1, }, }, - "name": "i", + "name": "x", "range": Array [ - 23, - 24, + 35, + 36, ], "type": "Identifier", }, "loc": Object { "end": Object { - "column": 26, + "column": 40, "line": 1, }, "start": Object { - "column": 23, + "column": 35, "line": 1, }, }, - "operator": "++", - "prefix": false, + "operator": "=", "range": Array [ - 23, - 26, + 35, + 40, ], - "type": "UpdateExpression", + "right": Object { + "loc": Object { + "end": Object { + "column": 40, + "line": 1, + }, + "start": Object { + "column": 39, + "line": 1, + }, + }, + "range": Array [ + 39, + 40, + ], + "raw": "5", + "type": "Literal", + "value": 5, + }, + "type": "AssignmentExpression", }, }, ], @@ -80046,7 +88063,7 @@ Object { }, "range": Array [ 0, - 31, + 43, ], "sourceType": "script", "tokens": Array [ @@ -80071,17 +88088,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 4, + "column": 5, "line": 1, }, "start": Object { - "column": 3, + "column": 4, "line": 1, }, }, "range": Array [ - 3, 4, + 5, ], "type": "Punctuator", "value": "(", @@ -80089,38 +88106,56 @@ Object { Object { "loc": Object { "end": Object { - "column": 7, + "column": 6, "line": 1, }, "start": Object { - "column": 4, + "column": 5, "line": 1, }, }, "range": Array [ - 4, - 7, + 5, + 6, ], - "type": "Keyword", - "value": "var", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 8, "line": 1, }, "start": Object { - "column": 8, + "column": 7, "line": 1, }, }, "range": Array [ + 7, 8, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ 9, + 10, ], - "type": "Identifier", - "value": "i", + "type": "Numeric", + "value": "5", }, Object { "loc": Object { @@ -80138,7 +88173,7 @@ Object { 11, ], "type": "Punctuator", - "value": "=", + "value": ";", }, Object { "loc": Object { @@ -80155,44 +88190,44 @@ Object { 12, 13, ], - "type": "Numeric", - "value": "0", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 15, "line": 1, }, "start": Object { - "column": 13, + "column": 14, "line": 1, }, }, "range": Array [ - 13, 14, + 15, ], "type": "Punctuator", - "value": ";", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 17, "line": 1, }, "start": Object { - "column": 15, + "column": 16, "line": 1, }, }, "range": Array [ - 15, 16, + 17, ], "type": "Identifier", - "value": "i", + "value": "x", }, Object { "loc": Object { @@ -80210,40 +88245,76 @@ Object { 18, ], "type": "Punctuator", - "value": "<", + "value": ".", }, Object { "loc": Object { "end": Object { - "column": 21, + "column": 31, "line": 1, }, "start": Object { - "column": 19, + "column": 18, "line": 1, }, }, "range": Array [ - 19, - 21, + 18, + 31, ], - "type": "Numeric", - "value": "10", + "type": "Identifier", + "value": "toExponential", }, Object { "loc": Object { "end": Object { - "column": 22, + "column": 32, "line": 1, }, "start": Object { - "column": 21, + "column": 31, "line": 1, }, }, "range": Array [ - 21, - 22, + 31, + 32, + ], + "type": "Punctuator", + "value": "(", + }, + Object { + "loc": Object { + "end": Object { + "column": 33, + "line": 1, + }, + "start": Object { + "column": 32, + "line": 1, + }, + }, + "range": Array [ + 32, + 33, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 34, + "line": 1, + }, + "start": Object { + "column": 33, + "line": 1, + }, + }, + "range": Array [ + 33, + 34, ], "type": "Punctuator", "value": ";", @@ -80251,99 +88322,99 @@ Object { Object { "loc": Object { "end": Object { - "column": 24, + "column": 36, "line": 1, }, "start": Object { - "column": 23, + "column": 35, "line": 1, }, }, "range": Array [ - 23, - 24, + 35, + 36, ], "type": "Identifier", - "value": "i", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 26, + "column": 38, "line": 1, }, "start": Object { - "column": 24, + "column": 37, "line": 1, }, }, "range": Array [ - 24, - 26, + 37, + 38, ], "type": "Punctuator", - "value": "++", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 27, + "column": 40, "line": 1, }, "start": Object { - "column": 26, + "column": 39, "line": 1, }, }, "range": Array [ - 26, - 27, + 39, + 40, ], - "type": "Punctuator", - "value": ")", + "type": "Numeric", + "value": "5", }, Object { "loc": Object { "end": Object { - "column": 29, + "column": 41, "line": 1, }, "start": Object { - "column": 28, + "column": 40, "line": 1, }, }, "range": Array [ - 28, - 29, + 40, + 41, ], "type": "Punctuator", - "value": "{", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 30, + "column": 42, "line": 1, }, "start": Object { - "column": 29, + "column": 41, "line": 1, }, }, "range": Array [ - 29, - 30, + 41, + 42, ], "type": "Punctuator", - "value": "}", + "value": ";", }, ], "type": "Program", } `; -exports[`javascript fixtures/for/for-with-coma.src 1`] = ` +exports[`javascript fixtures/for/for-with-let.src 1`] = ` Object { "body": Array [ Object { @@ -80360,8 +88431,8 @@ Object { }, }, "range": Array [ - 41, - 44, + 26, + 29, ], "type": "BlockStatement", }, @@ -80371,35 +88442,35 @@ Object { "id": Object { "loc": Object { "end": Object { - "column": 10, + "column": 12, "line": 1, }, "start": Object { - "column": 9, + "column": 11, "line": 1, }, }, "name": "i", "range": Array [ - 9, - 10, + 11, + 12, ], "type": "Identifier", }, "init": Object { "loc": Object { "end": Object { - "column": 14, + "column": 16, "line": 1, }, "start": Object { - "column": 13, + "column": 15, "line": 1, }, }, "range": Array [ - 13, - 14, + 15, + 16, ], "raw": "0", "type": "Literal", @@ -80407,79 +88478,25 @@ Object { }, "loc": Object { "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 14, - ], - "type": "VariableDeclarator", - }, - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "name": "j", - "range": Array [ - 16, - 17, - ], - "type": "Identifier", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, - }, - "range": Array [ - 20, - 22, - ], - "raw": "10", - "type": "Literal", - "value": 10, - }, - "loc": Object { - "end": Object { - "column": 22, + "column": 16, "line": 1, }, "start": Object { - "column": 16, + "column": 11, "line": 1, }, }, "range": Array [ + 11, 16, - 22, ], "type": "VariableDeclarator", }, ], - "kind": "var", + "kind": "const", "loc": Object { "end": Object { - "column": 22, + "column": 16, "line": 1, }, "start": Object { @@ -80489,7 +88506,7 @@ Object { }, "range": Array [ 5, - 22, + 16, ], "type": "VariableDeclaration", }, @@ -80505,162 +88522,70 @@ Object { }, "range": Array [ 0, - 44, + 29, ], "test": Object { "left": Object { "loc": Object { "end": Object { - "column": 25, + "column": 19, "line": 1, }, "start": Object { - "column": 24, + "column": 18, "line": 1, }, }, "name": "i", "range": Array [ - 24, - 25, + 18, + 19, ], "type": "Identifier", }, "loc": Object { "end": Object { - "column": 29, + "column": 23, "line": 1, }, "start": Object { - "column": 24, + "column": 18, "line": 1, }, }, "operator": "<", "range": Array [ - 24, - 29, + 18, + 23, ], "right": Object { "loc": Object { "end": Object { - "column": 29, + "column": 23, "line": 1, }, "start": Object { - "column": 28, + "column": 22, "line": 1, }, }, "name": "j", "range": Array [ - 28, - 29, + 22, + 23, ], "type": "Identifier", }, "type": "BinaryExpression", }, "type": "ForStatement", - "update": Object { - "expressions": Array [ - Object { - "argument": Object { - "loc": Object { - "end": Object { - "column": 32, - "line": 1, - }, - "start": Object { - "column": 31, - "line": 1, - }, - }, - "name": "i", - "range": Array [ - 31, - 32, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 34, - "line": 1, - }, - "start": Object { - "column": 31, - "line": 1, - }, - }, - "operator": "++", - "prefix": false, - "range": Array [ - 31, - 34, - ], - "type": "UpdateExpression", - }, - Object { - "argument": Object { - "loc": Object { - "end": Object { - "column": 37, - "line": 1, - }, - "start": Object { - "column": 36, - "line": 1, - }, - }, - "name": "j", - "range": Array [ - 36, - 37, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 39, - "line": 1, - }, - "start": Object { - "column": 36, - "line": 1, - }, - }, - "operator": "--", - "prefix": false, - "range": Array [ - 36, - 39, - ], - "type": "UpdateExpression", - }, - ], - "loc": Object { - "end": Object { - "column": 39, - "line": 1, - }, - "start": Object { - "column": 31, - "line": 1, - }, - }, - "range": Array [ - 31, - 39, - ], - "type": "SequenceExpression", - }, + "update": null, }, ], "loc": Object { "end": Object { "column": 0, - "line": 5, + "line": 4, }, "start": Object { "column": 0, @@ -80669,7 +88594,7 @@ Object { }, "range": Array [ 0, - 46, + 30, ], "sourceType": "script", "tokens": Array [ @@ -80712,7 +88637,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 8, + "column": 10, "line": 1, }, "start": Object { @@ -80722,25 +88647,97 @@ Object { }, "range": Array [ 5, - 8, + 10, ], "type": "Keyword", - "value": "var", + "value": "const", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 12, + ], + "type": "Identifier", + "value": "i", + }, + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 14, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "range": Array [ + 15, + 16, + ], + "type": "Numeric", + "value": "0", + }, + Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "range": Array [ + 16, + 17, + ], + "type": "Punctuator", + "value": ";", + }, + Object { + "loc": Object { + "end": Object { + "column": 19, "line": 1, }, "start": Object { - "column": 9, + "column": 18, "line": 1, }, }, "range": Array [ - 9, - 10, + 18, + 19, ], "type": "Identifier", "value": "i", @@ -80748,313 +88745,512 @@ Object { Object { "loc": Object { "end": Object { - "column": 12, + "column": 21, "line": 1, }, "start": Object { - "column": 11, + "column": 20, "line": 1, }, }, "range": Array [ - 11, - 12, + 20, + 21, ], "type": "Punctuator", - "value": "=", + "value": "<", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 23, "line": 1, }, "start": Object { - "column": 13, + "column": 22, "line": 1, }, }, "range": Array [ - 13, - 14, + 22, + 23, ], - "type": "Numeric", - "value": "0", + "type": "Identifier", + "value": "j", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 24, "line": 1, }, "start": Object { - "column": 14, + "column": 23, "line": 1, }, }, "range": Array [ - 14, - 15, + 23, + 24, ], "type": "Punctuator", - "value": ",", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 25, "line": 1, }, "start": Object { - "column": 16, + "column": 24, "line": 1, }, }, "range": Array [ - 16, - 17, + 24, + 25, ], - "type": "Identifier", - "value": "j", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 19, - "line": 1, + "column": 1, + "line": 2, }, "start": Object { - "column": 18, - "line": 1, + "column": 0, + "line": 2, }, }, "range": Array [ - 18, - 19, + 26, + 27, ], "type": "Punctuator", - "value": "=", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 22, - "line": 1, + "column": 1, + "line": 3, }, "start": Object { - "column": 20, - "line": 1, + "column": 0, + "line": 3, }, }, "range": Array [ - 20, - 22, + 28, + 29, ], - "type": "Numeric", - "value": "10", + "type": "Punctuator", + "value": "}", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/forIn/for-in-array.src 1`] = ` +Object { + "body": Array [ Object { + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "range": Array [ + 14, + 16, + ], + "type": "BlockStatement", + }, + "left": Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "name": "i", + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 23, + "column": 16, "line": 1, }, "start": Object { - "column": 22, + "column": 0, "line": 1, }, }, "range": Array [ - 22, - 23, + 0, + 16, ], - "type": "Punctuator", - "value": ";", + "right": Object { + "elements": Array [], + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "range": Array [ + 10, + 12, + ], + "type": "ArrayPattern", + }, + "type": "ForInStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 17, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 25, + "column": 3, "line": 1, }, "start": Object { - "column": 24, + "column": 0, "line": 1, }, }, "range": Array [ - 24, - 25, + 0, + 3, ], - "type": "Identifier", - "value": "i", + "type": "Keyword", + "value": "for", }, Object { "loc": Object { "end": Object { - "column": 27, + "column": 5, "line": 1, }, "start": Object { - "column": 26, + "column": 4, "line": 1, }, }, "range": Array [ - 26, - 27, + 4, + 5, ], "type": "Punctuator", - "value": "<", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 29, + "column": 6, "line": 1, }, "start": Object { - "column": 28, + "column": 5, "line": 1, }, }, "range": Array [ - 28, - 29, + 5, + 6, ], "type": "Identifier", - "value": "j", + "value": "i", }, Object { "loc": Object { "end": Object { - "column": 30, + "column": 9, "line": 1, }, "start": Object { - "column": 29, + "column": 7, "line": 1, }, }, "range": Array [ - 29, - 30, + 7, + 9, ], - "type": "Punctuator", - "value": ";", + "type": "Keyword", + "value": "in", }, Object { "loc": Object { "end": Object { - "column": 32, + "column": 11, "line": 1, }, "start": Object { - "column": 31, + "column": 10, "line": 1, }, }, "range": Array [ - 31, - 32, + 10, + 11, ], - "type": "Identifier", - "value": "i", + "type": "Punctuator", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 34, + "column": 12, "line": 1, }, "start": Object { - "column": 32, + "column": 11, "line": 1, }, }, "range": Array [ - 32, - 34, + 11, + 12, ], "type": "Punctuator", - "value": "++", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 35, + "column": 13, "line": 1, }, "start": Object { - "column": 34, + "column": 12, "line": 1, }, }, "range": Array [ - 34, - 35, + 12, + 13, ], "type": "Punctuator", - "value": ",", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 37, + "column": 15, "line": 1, }, "start": Object { - "column": 36, + "column": 14, "line": 1, }, }, "range": Array [ - 36, - 37, + 14, + 15, ], - "type": "Identifier", - "value": "j", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 39, + "column": 16, "line": 1, }, "start": Object { - "column": 37, + "column": 15, "line": 1, }, }, "range": Array [ - 37, - 39, + 15, + 16, ], "type": "Punctuator", - "value": "--", + "value": "}", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/forIn/for-in-bare-nonstrict.src 1`] = ` +Object { + "body": Array [ Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "name": "effects", + "range": Array [ + 4, + 11, + ], + "type": "Identifier", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "range": Array [ + 14, + 15, + ], + "raw": "0", + "type": "Literal", + "value": 0, + }, + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 15, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", "loc": Object { "end": Object { - "column": 40, + "column": 16, "line": 1, }, "start": Object { - "column": 39, + "column": 0, "line": 1, }, }, "range": Array [ - 39, - 40, + 0, + 16, ], - "type": "Punctuator", - "value": ")", + "type": "VariableDeclaration", }, Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "name": "iterations", + "range": Array [ + 21, + 31, + ], + "type": "Identifier", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 2, + }, + "start": Object { + "column": 17, + "line": 2, + }, + }, + "range": Array [ + 34, + 35, + ], + "raw": "0", + "type": "Literal", + "value": 0, + }, + "loc": Object { + "end": Object { + "column": 18, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "range": Array [ + 21, + 35, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", "loc": Object { "end": Object { - "column": 1, + "column": 19, "line": 2, }, "start": Object { @@ -81063,16 +89259,54 @@ Object { }, }, "range": Array [ - 41, - 42, + 17, + 36, ], - "type": "Punctuator", - "value": "{", + "type": "VariableDeclaration", }, Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 3, + }, + }, + "name": "stored", + "range": Array [ + 41, + 47, + ], + "type": "Identifier", + }, + "init": null, + "loc": Object { + "end": Object { + "column": 10, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 3, + }, + }, + "range": Array [ + 41, + 47, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", "loc": Object { "end": Object { - "column": 1, + "column": 11, "line": 3, }, "start": Object { @@ -81081,189 +89315,521 @@ Object { }, }, "range": Array [ - 43, - 44, + 37, + 48, ], - "type": "Punctuator", - "value": "}", + "type": "VariableDeclaration", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/for/for-with-const.src 1`] = ` -Object { - "body": Array [ Object { "body": Object { - "body": Array [], + "body": Array [ + Object { + "expression": Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 5, + }, + "start": Object { + "column": 4, + "line": 5, + }, + }, + "name": "iterations", + "range": Array [ + 119, + 129, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 14, + "line": 5, + }, + "start": Object { + "column": 2, + "line": 5, + }, + }, + "operator": "++", + "prefix": true, + "range": Array [ + 117, + 129, + ], + "type": "UpdateExpression", + }, + "loc": Object { + "end": Object { + "column": 15, + "line": 5, + }, + "start": Object { + "column": 2, + "line": 5, + }, + }, + "range": Array [ + 117, + 130, + ], + "type": "ExpressionStatement", + }, + ], "loc": Object { "end": Object { "column": 1, - "line": 3, + "line": 6, }, "start": Object { - "column": 0, - "line": 2, + "column": 64, + "line": 4, }, }, "range": Array [ - 26, - 29, + 113, + 132, ], "type": "BlockStatement", }, - "init": Object { + "left": Object { "declarations": Array [ Object { "id": Object { "loc": Object { "end": Object { - "column": 12, - "line": 1, + "column": 10, + "line": 4, }, "start": Object { - "column": 11, - "line": 1, + "column": 9, + "line": 4, }, }, - "name": "i", + "name": "a", "range": Array [ - 11, - 12, + 58, + 59, ], "type": "Identifier", }, "init": Object { + "expressions": Array [ + Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 4, + }, + "start": Object { + "column": 16, + "line": 4, + }, + }, + "name": "effects", + "range": Array [ + 65, + 72, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 23, + "line": 4, + }, + "start": Object { + "column": 14, + "line": 4, + }, + }, + "operator": "++", + "prefix": true, + "range": Array [ + 63, + 72, + ], + "type": "UpdateExpression", + }, + Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 27, + "line": 4, + }, + "start": Object { + "column": 26, + "line": 4, + }, + }, + "range": Array [ + 75, + 76, + ], + "raw": "1", + "type": "Literal", + "value": 1, + }, + "loc": Object { + "end": Object { + "column": 27, + "line": 4, + }, + "start": Object { + "column": 25, + "line": 4, + }, + }, + "operator": "-", + "prefix": true, + "range": Array [ + 74, + 76, + ], + "type": "UnaryExpression", + }, + ], "loc": Object { "end": Object { - "column": 16, - "line": 1, + "column": 27, + "line": 4, }, "start": Object { - "column": 15, - "line": 1, + "column": 14, + "line": 4, }, }, "range": Array [ - 15, - 16, + 63, + 76, ], - "raw": "0", - "type": "Literal", - "value": 0, + "type": "SequenceExpression", }, "loc": Object { "end": Object { - "column": 16, - "line": 1, + "column": 28, + "line": 4, }, "start": Object { - "column": 11, - "line": 1, + "column": 9, + "line": 4, }, }, "range": Array [ - 11, - 16, + 58, + 77, ], "type": "VariableDeclarator", }, ], - "kind": "const", + "kind": "var", "loc": Object { "end": Object { - "column": 16, - "line": 1, + "column": 28, + "line": 4, }, "start": Object { "column": 5, - "line": 1, + "line": 4, }, }, "range": Array [ - 5, - 16, + 54, + 77, ], "type": "VariableDeclaration", }, "loc": Object { "end": Object { "column": 1, - "line": 3, + "line": 6, }, "start": Object { "column": 0, - "line": 1, + "line": 4, }, }, "range": Array [ - 0, - 29, + 49, + 132, ], - "test": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 1, + "right": Object { + "expressions": Array [ + Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 38, + "line": 4, + }, + "start": Object { + "column": 32, + "line": 4, + }, + }, + "name": "stored", + "range": Array [ + 81, + 87, + ], + "type": "Identifier", }, - "start": Object { - "column": 18, - "line": 1, + "loc": Object { + "end": Object { + "column": 42, + "line": 4, + }, + "start": Object { + "column": 32, + "line": 4, + }, + }, + "operator": "=", + "range": Array [ + 81, + 91, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 42, + "line": 4, + }, + "start": Object { + "column": 41, + "line": 4, + }, + }, + "name": "a", + "range": Array [ + 90, + 91, + ], + "type": "Identifier", }, + "type": "AssignmentExpression", }, - "name": "i", - "range": Array [ - 18, - 19, - ], - "type": "Identifier", - }, + Object { + "loc": Object { + "end": Object { + "column": 62, + "line": 4, + }, + "start": Object { + "column": 44, + "line": 4, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 46, + "line": 4, + }, + "start": Object { + "column": 45, + "line": 4, + }, + }, + "name": "a", + "range": Array [ + 94, + 95, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 49, + "line": 4, + }, + "start": Object { + "column": 45, + "line": 4, + }, + }, + "method": false, + "range": Array [ + 94, + 98, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 49, + "line": 4, + }, + "start": Object { + "column": 48, + "line": 4, + }, + }, + "range": Array [ + 97, + 98, + ], + "raw": "0", + "type": "Literal", + "value": 0, + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 52, + "line": 4, + }, + "start": Object { + "column": 51, + "line": 4, + }, + }, + "name": "b", + "range": Array [ + 100, + 101, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 55, + "line": 4, + }, + "start": Object { + "column": 51, + "line": 4, + }, + }, + "method": false, + "range": Array [ + 100, + 104, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 55, + "line": 4, + }, + "start": Object { + "column": 54, + "line": 4, + }, + }, + "range": Array [ + 103, + 104, + ], + "raw": "1", + "type": "Literal", + "value": 1, + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 58, + "line": 4, + }, + "start": Object { + "column": 57, + "line": 4, + }, + }, + "name": "c", + "range": Array [ + 106, + 107, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 61, + "line": 4, + }, + "start": Object { + "column": 57, + "line": 4, + }, + }, + "method": false, + "range": Array [ + 106, + 110, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 61, + "line": 4, + }, + "start": Object { + "column": 60, + "line": 4, + }, + }, + "range": Array [ + 109, + 110, + ], + "raw": "2", + "type": "Literal", + "value": 2, + }, + }, + ], + "range": Array [ + 93, + 111, + ], + "type": "ObjectExpression", + }, + ], "loc": Object { "end": Object { - "column": 23, - "line": 1, + "column": 62, + "line": 4, }, "start": Object { - "column": 18, - "line": 1, + "column": 32, + "line": 4, }, }, - "operator": "<", "range": Array [ - 18, - 23, + 81, + 111, ], - "right": Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 22, - "line": 1, - }, - }, - "name": "j", - "range": Array [ - 22, - 23, - ], - "type": "Identifier", - }, - "type": "BinaryExpression", + "type": "SequenceExpression", }, - "type": "ForStatement", - "update": null, + "type": "ForInStatement", }, ], "loc": Object { "end": Object { "column": 0, - "line": 4, + "line": 7, }, "start": Object { "column": 0, @@ -81272,7 +89838,7 @@ Object { }, "range": Array [ 0, - 30, + 133, ], "sourceType": "script", "tokens": Array [ @@ -81292,12 +89858,12 @@ Object { 3, ], "type": "Keyword", - "value": "for", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 11, "line": 1, }, "start": Object { @@ -81307,61 +89873,25 @@ Object { }, "range": Array [ 4, - 5, - ], - "type": "Punctuator", - "value": "(", - }, - Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "range": Array [ - 5, - 10, - ], - "type": "Keyword", - "value": "const", - }, - Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "range": Array [ 11, - 12, ], "type": "Identifier", - "value": "i", + "value": "effects", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 13, "line": 1, }, "start": Object { - "column": 13, + "column": 12, "line": 1, }, }, "range": Array [ + 12, 13, - 14, ], "type": "Punctuator", "value": "=", @@ -81369,17 +89899,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 16, + "column": 15, "line": 1, }, "start": Object { - "column": 15, + "column": 14, "line": 1, }, }, "range": Array [ + 14, 15, - 16, ], "type": "Numeric", "value": "0", @@ -81387,17 +89917,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 17, + "column": 16, "line": 1, }, "start": Object { - "column": 16, + "column": 15, "line": 1, }, }, "range": Array [ + 15, 16, - 17, ], "type": "Punctuator", "value": ";", @@ -81405,420 +89935,161 @@ Object { Object { "loc": Object { "end": Object { - "column": 19, - "line": 1, + "column": 3, + "line": 2, }, "start": Object { - "column": 18, - "line": 1, + "column": 0, + "line": 2, }, }, "range": Array [ - 18, - 19, + 17, + 20, ], - "type": "Identifier", - "value": "i", + "type": "Keyword", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 21, - "line": 1, + "column": 14, + "line": 2, }, "start": Object { - "column": 20, - "line": 1, + "column": 4, + "line": 2, }, }, "range": Array [ - 20, 21, + 31, ], - "type": "Punctuator", - "value": "<", + "type": "Identifier", + "value": "iterations", }, Object { "loc": Object { "end": Object { - "column": 23, - "line": 1, + "column": 16, + "line": 2, }, "start": Object { - "column": 22, - "line": 1, + "column": 15, + "line": 2, }, }, "range": Array [ - 22, - 23, + 32, + 33, ], - "type": "Identifier", - "value": "j", + "type": "Punctuator", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 24, - "line": 1, + "column": 18, + "line": 2, }, "start": Object { - "column": 23, - "line": 1, + "column": 17, + "line": 2, }, }, "range": Array [ - 23, - 24, + 34, + 35, ], - "type": "Punctuator", - "value": ";", + "type": "Numeric", + "value": "0", }, Object { "loc": Object { "end": Object { - "column": 25, - "line": 1, + "column": 19, + "line": 2, }, "start": Object { - "column": 24, - "line": 1, + "column": 18, + "line": 2, }, }, "range": Array [ - 24, - 25, + 35, + 36, ], "type": "Punctuator", - "value": ")", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 1, - "line": 2, + "column": 3, + "line": 3, }, "start": Object { "column": 0, - "line": 2, + "line": 3, }, }, "range": Array [ - 26, - 27, + 37, + 40, ], - "type": "Punctuator", - "value": "{", + "type": "Keyword", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 1, + "column": 10, "line": 3, }, "start": Object { - "column": 0, + "column": 4, "line": 3, }, }, "range": Array [ - 28, - 29, + 41, + 47, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "stored", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/for/for-with-function.src 1`] = ` -Object { - "body": Array [ Object { - "body": Object { - "loc": Object { - "end": Object { - "column": 42, - "line": 1, - }, - "start": Object { - "column": 41, - "line": 1, - }, - }, - "range": Array [ - 41, - 42, - ], - "type": "EmptyStatement", - }, - "init": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 5, - 6, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "operator": "=", - "range": Array [ - 5, - 10, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 10, - ], - "raw": "5", - "type": "Literal", - "value": 5, - }, - "type": "AssignmentExpression", - }, "loc": Object { "end": Object { - "column": 42, - "line": 1, + "column": 11, + "line": 3, }, "start": Object { - "column": 0, - "line": 1, + "column": 10, + "line": 3, }, }, "range": Array [ - 0, - 42, + 47, + 48, ], - "test": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 12, - 13, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 33, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "operator": "=", - "range": Array [ - 12, - 33, - ], - "right": Object { - "arguments": Array [], - "callee": Object { - "computed": false, - "loc": Object { - "end": Object { - "column": 31, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "object": Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 16, - 17, - ], - "type": "Identifier", - }, - "property": Object { - "loc": Object { - "end": Object { - "column": 31, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, - }, - "name": "toExponential", - "range": Array [ - 18, - 31, - ], - "type": "Identifier", - }, - "range": Array [ - 16, - 31, - ], - "type": "MemberExpression", - }, - "loc": Object { - "end": Object { - "column": 33, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "range": Array [ - 16, - 33, - ], - "type": "CallExpression", - }, - "type": "AssignmentExpression", - }, - "type": "ForStatement", - "update": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 36, - "line": 1, - }, - "start": Object { - "column": 35, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 35, - 36, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 40, - "line": 1, - }, - "start": Object { - "column": 35, - "line": 1, - }, - }, - "operator": "=", - "range": Array [ - 35, - 40, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 40, - "line": 1, - }, - "start": Object { - "column": 39, - "line": 1, - }, - }, - "range": Array [ - 39, - 40, - ], - "raw": "5", - "type": "Literal", - "value": 5, - }, - "type": "AssignmentExpression", - }, - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Punctuator", + "value": ";", }, - }, - "range": Array [ - 0, - 43, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { "column": 3, - "line": 1, + "line": 4, }, "start": Object { "column": 0, - "line": 1, + "line": 4, }, }, "range": Array [ - 0, - 3, + 49, + 52, ], "type": "Keyword", "value": "for", @@ -81827,16 +90098,16 @@ Object { "loc": Object { "end": Object { "column": 5, - "line": 1, + "line": 4, }, "start": Object { "column": 4, - "line": 1, + "line": 4, }, }, "range": Array [ - 4, - 5, + 53, + 54, ], "type": "Punctuator", "value": "(", @@ -81844,35 +90115,53 @@ Object { Object { "loc": Object { "end": Object { - "column": 6, - "line": 1, + "column": 8, + "line": 4, }, "start": Object { "column": 5, - "line": 1, + "line": 4, }, }, "range": Array [ - 5, - 6, + 54, + 57, + ], + "type": "Keyword", + "value": "var", + }, + Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 4, + }, + "start": Object { + "column": 9, + "line": 4, + }, + }, + "range": Array [ + 58, + 59, ], "type": "Identifier", - "value": "x", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 8, - "line": 1, + "column": 12, + "line": 4, }, "start": Object { - "column": 7, - "line": 1, + "column": 11, + "line": 4, }, }, "range": Array [ - 7, - 8, + 60, + 61, ], "type": "Punctuator", "value": "=", @@ -81880,710 +90169,557 @@ Object { Object { "loc": Object { "end": Object { - "column": 10, - "line": 1, + "column": 14, + "line": 4, }, "start": Object { - "column": 9, - "line": 1, + "column": 13, + "line": 4, }, }, "range": Array [ - 9, - 10, + 62, + 63, ], - "type": "Numeric", - "value": "5", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 11, - "line": 1, + "column": 16, + "line": 4, }, "start": Object { - "column": 10, - "line": 1, + "column": 14, + "line": 4, }, }, "range": Array [ - 10, - 11, + 63, + 65, ], "type": "Punctuator", - "value": ";", + "value": "++", }, Object { "loc": Object { "end": Object { - "column": 13, - "line": 1, + "column": 23, + "line": 4, }, "start": Object { - "column": 12, - "line": 1, + "column": 16, + "line": 4, }, }, "range": Array [ - 12, - 13, + 65, + 72, ], "type": "Identifier", - "value": "x", + "value": "effects", }, Object { "loc": Object { "end": Object { - "column": 15, - "line": 1, + "column": 24, + "line": 4, + }, + "start": Object { + "column": 23, + "line": 4, + }, + }, + "range": Array [ + 72, + 73, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 26, + "line": 4, }, "start": Object { - "column": 14, - "line": 1, + "column": 25, + "line": 4, }, }, "range": Array [ - 14, - 15, + 74, + 75, ], "type": "Punctuator", - "value": "=", + "value": "-", }, Object { "loc": Object { "end": Object { - "column": 17, - "line": 1, + "column": 27, + "line": 4, }, "start": Object { - "column": 16, - "line": 1, + "column": 26, + "line": 4, }, }, "range": Array [ - 16, - 17, + 75, + 76, ], - "type": "Identifier", - "value": "x", + "type": "Numeric", + "value": "1", }, Object { "loc": Object { "end": Object { - "column": 18, - "line": 1, + "column": 28, + "line": 4, }, "start": Object { - "column": 17, - "line": 1, + "column": 27, + "line": 4, }, }, "range": Array [ - 17, - 18, + 76, + 77, ], "type": "Punctuator", - "value": ".", + "value": ")", }, Object { "loc": Object { "end": Object { "column": 31, - "line": 1, + "line": 4, }, "start": Object { - "column": 18, - "line": 1, + "column": 29, + "line": 4, }, }, "range": Array [ - 18, - 31, + 78, + 80, ], - "type": "Identifier", - "value": "toExponential", + "type": "Keyword", + "value": "in", }, Object { "loc": Object { "end": Object { - "column": 32, - "line": 1, + "column": 38, + "line": 4, }, "start": Object { - "column": 31, - "line": 1, + "column": 32, + "line": 4, }, }, "range": Array [ - 31, - 32, + 81, + 87, ], - "type": "Punctuator", - "value": "(", + "type": "Identifier", + "value": "stored", }, Object { "loc": Object { "end": Object { - "column": 33, - "line": 1, + "column": 40, + "line": 4, }, "start": Object { - "column": 32, - "line": 1, + "column": 39, + "line": 4, }, }, "range": Array [ - 32, - 33, + 88, + 89, ], "type": "Punctuator", - "value": ")", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 34, - "line": 1, + "column": 42, + "line": 4, }, "start": Object { - "column": 33, - "line": 1, + "column": 41, + "line": 4, }, }, "range": Array [ - 33, - 34, + 90, + 91, ], - "type": "Punctuator", - "value": ";", + "type": "Identifier", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 36, - "line": 1, + "column": 43, + "line": 4, }, "start": Object { - "column": 35, - "line": 1, + "column": 42, + "line": 4, }, }, "range": Array [ - 35, - 36, + 91, + 92, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 38, - "line": 1, + "column": 45, + "line": 4, }, "start": Object { - "column": 37, - "line": 1, + "column": 44, + "line": 4, }, }, "range": Array [ - 37, - 38, + 93, + 94, ], "type": "Punctuator", - "value": "=", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 40, - "line": 1, + "column": 46, + "line": 4, }, "start": Object { - "column": 39, - "line": 1, + "column": 45, + "line": 4, }, }, "range": Array [ - 39, - 40, + 94, + 95, ], - "type": "Numeric", - "value": "5", + "type": "Identifier", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 41, - "line": 1, + "column": 47, + "line": 4, }, "start": Object { - "column": 40, - "line": 1, + "column": 46, + "line": 4, }, }, "range": Array [ - 40, - 41, + 95, + 96, ], "type": "Punctuator", - "value": ")", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 42, - "line": 1, + "column": 49, + "line": 4, }, "start": Object { - "column": 41, - "line": 1, + "column": 48, + "line": 4, }, }, "range": Array [ - 41, - 42, + 97, + 98, ], - "type": "Punctuator", - "value": ";", + "type": "Numeric", + "value": "0", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/for/for-with-let.src 1`] = ` -Object { - "body": Array [ Object { - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 1, - "line": 3, - }, - "start": Object { - "column": 0, - "line": 2, - }, - }, - "range": Array [ - 26, - 29, - ], - "type": "BlockStatement", - }, - "init": Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "name": "i", - "range": Array [ - 11, - 12, - ], - "type": "Identifier", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "range": Array [ - 15, - 16, - ], - "raw": "0", - "type": "Literal", - "value": 0, - }, - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "range": Array [ - 11, - 16, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "const", - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "range": Array [ - 5, - 16, - ], - "type": "VariableDeclaration", - }, "loc": Object { "end": Object { - "column": 1, - "line": 3, + "column": 50, + "line": 4, }, "start": Object { - "column": 0, - "line": 1, + "column": 49, + "line": 4, }, }, "range": Array [ - 0, - 29, + 98, + 99, ], - "test": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, - }, - "name": "i", - "range": Array [ - 18, - 19, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, - }, - "operator": "<", - "range": Array [ - 18, - 23, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 22, - "line": 1, - }, - }, - "name": "j", - "range": Array [ - 22, - 23, - ], - "type": "Identifier", - }, - "type": "BinaryExpression", - }, - "type": "ForStatement", - "update": null, - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 4, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Punctuator", + "value": ",", }, - }, - "range": Array [ - 0, - 30, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, - "line": 1, + "column": 52, + "line": 4, }, "start": Object { - "column": 0, - "line": 1, + "column": 51, + "line": 4, }, }, "range": Array [ - 0, - 3, + 100, + 101, ], - "type": "Keyword", - "value": "for", + "type": "Identifier", + "value": "b", }, Object { "loc": Object { "end": Object { - "column": 5, - "line": 1, + "column": 53, + "line": 4, }, "start": Object { - "column": 4, - "line": 1, + "column": 52, + "line": 4, }, }, "range": Array [ - 4, - 5, + 101, + 102, ], "type": "Punctuator", - "value": "(", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 10, - "line": 1, + "column": 55, + "line": 4, }, "start": Object { - "column": 5, - "line": 1, + "column": 54, + "line": 4, }, }, "range": Array [ - 5, - 10, + 103, + 104, ], - "type": "Keyword", - "value": "const", + "type": "Numeric", + "value": "1", }, Object { "loc": Object { "end": Object { - "column": 12, - "line": 1, + "column": 56, + "line": 4, }, "start": Object { - "column": 11, - "line": 1, + "column": 55, + "line": 4, }, }, "range": Array [ - 11, - 12, + 104, + 105, ], - "type": "Identifier", - "value": "i", + "type": "Punctuator", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 14, - "line": 1, + "column": 58, + "line": 4, }, "start": Object { - "column": 13, - "line": 1, + "column": 57, + "line": 4, }, }, "range": Array [ - 13, - 14, + 106, + 107, ], - "type": "Punctuator", - "value": "=", + "type": "Identifier", + "value": "c", }, Object { "loc": Object { "end": Object { - "column": 16, - "line": 1, + "column": 59, + "line": 4, }, "start": Object { - "column": 15, - "line": 1, + "column": 58, + "line": 4, }, }, "range": Array [ - 15, - 16, + 107, + 108, ], - "type": "Numeric", - "value": "0", + "type": "Punctuator", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 17, - "line": 1, + "column": 61, + "line": 4, }, "start": Object { - "column": 16, - "line": 1, + "column": 60, + "line": 4, }, }, "range": Array [ - 16, - 17, + 109, + 110, ], - "type": "Punctuator", - "value": ";", + "type": "Numeric", + "value": "2", }, Object { "loc": Object { "end": Object { - "column": 19, - "line": 1, + "column": 62, + "line": 4, }, "start": Object { - "column": 18, - "line": 1, + "column": 61, + "line": 4, }, }, "range": Array [ - 18, - 19, + 110, + 111, ], - "type": "Identifier", - "value": "i", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 21, - "line": 1, + "column": 63, + "line": 4, }, "start": Object { - "column": 20, - "line": 1, + "column": 62, + "line": 4, }, }, "range": Array [ - 20, - 21, + 111, + 112, ], "type": "Punctuator", - "value": "<", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 23, - "line": 1, + "column": 65, + "line": 4, }, "start": Object { - "column": 22, - "line": 1, + "column": 64, + "line": 4, }, }, "range": Array [ - 22, - 23, + 113, + 114, ], - "type": "Identifier", - "value": "j", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 24, - "line": 1, + "column": 4, + "line": 5, }, "start": Object { - "column": 23, - "line": 1, + "column": 2, + "line": 5, }, }, "range": Array [ - 23, - 24, + 117, + 119, ], "type": "Punctuator", - "value": ";", + "value": "++", }, Object { "loc": Object { "end": Object { - "column": 25, - "line": 1, + "column": 14, + "line": 5, }, "start": Object { - "column": 24, - "line": 1, + "column": 4, + "line": 5, }, }, "range": Array [ - 24, - 25, + 119, + 129, ], - "type": "Punctuator", - "value": ")", + "type": "Identifier", + "value": "iterations", }, Object { "loc": Object { "end": Object { - "column": 1, - "line": 2, + "column": 15, + "line": 5, }, "start": Object { - "column": 0, - "line": 2, + "column": 14, + "line": 5, }, }, "range": Array [ - 26, - 27, + 129, + 130, ], "type": "Punctuator", - "value": "{", + "value": ";", }, Object { "loc": Object { "end": Object { "column": 1, - "line": 3, + "line": 6, }, "start": Object { "column": 0, - "line": 3, + "line": 6, }, }, "range": Array [ - 28, - 29, + 131, + 132, ], "type": "Punctuator", "value": "}", @@ -82593,7 +90729,7 @@ Object { } `; -exports[`javascript fixtures/forIn/for-in-array.src 1`] = ` +exports[`javascript fixtures/forIn/for-in-destruction.src 1`] = ` Object { "body": Array [ Object { @@ -82601,24 +90737,100 @@ Object { "body": Array [], "loc": Object { "end": Object { - "column": 16, + "column": 33, "line": 1, }, "start": Object { - "column": 14, + "column": 31, "line": 1, }, }, "range": Array [ - 14, - 16, + 31, + 33, ], "type": "BlockStatement", }, "left": Object { + "declarations": Array [ + Object { + "id": Object { + "elements": Array [ + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "name": "name", + "range": Array [ + 10, + 14, + ], + "type": "Identifier", + }, + Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "name": "value", + "range": Array [ + 16, + 21, + ], + "type": "Identifier", + }, + ], + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 22, + ], + "type": "ArrayPattern", + }, + "init": null, + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 22, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", "loc": Object { "end": Object { - "column": 6, + "column": 22, "line": 1, }, "start": Object { @@ -82626,16 +90838,15 @@ Object { "line": 1, }, }, - "name": "i", "range": Array [ 5, - 6, + 22, ], - "type": "Identifier", + "type": "VariableDeclaration", }, "loc": Object { "end": Object { - "column": 16, + "column": 33, "line": 1, }, "start": Object { @@ -82645,25 +90856,25 @@ Object { }, "range": Array [ 0, - 16, + 33, ], "right": Object { - "elements": Array [], "loc": Object { "end": Object { - "column": 12, + "column": 29, "line": 1, }, "start": Object { - "column": 10, + "column": 26, "line": 1, }, }, + "name": "obj", "range": Array [ - 10, - 12, + 26, + 29, ], - "type": "ArrayPattern", + "type": "Identifier", }, "type": "ForInStatement", }, @@ -82680,7 +90891,7 @@ Object { }, "range": Array [ 0, - 17, + 34, ], "sourceType": "script", "tokens": Array [ @@ -82723,7 +90934,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 6, + "column": 8, "line": 1, }, "start": Object { @@ -82733,33 +90944,33 @@ Object { }, "range": Array [ 5, - 6, + 8, ], - "type": "Identifier", - "value": "i", + "type": "Keyword", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 10, "line": 1, }, "start": Object { - "column": 7, + "column": 9, "line": 1, }, }, "range": Array [ - 7, 9, + 10, ], - "type": "Keyword", - "value": "in", + "type": "Punctuator", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 14, "line": 1, }, "start": Object { @@ -82769,366 +90980,179 @@ Object { }, "range": Array [ 10, - 11, + 14, ], - "type": "Punctuator", - "value": "[", + "type": "Identifier", + "value": "name", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 15, "line": 1, }, "start": Object { - "column": 11, + "column": 14, "line": 1, }, }, "range": Array [ - 11, - 12, + 14, + 15, ], "type": "Punctuator", - "value": "]", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 21, "line": 1, }, "start": Object { - "column": 12, + "column": 16, "line": 1, }, }, "range": Array [ - 12, - 13, + 16, + 21, ], - "type": "Punctuator", - "value": ")", + "type": "Identifier", + "value": "value", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 22, "line": 1, }, "start": Object { - "column": 14, + "column": 21, "line": 1, }, }, "range": Array [ - 14, - 15, + 21, + 22, ], "type": "Punctuator", - "value": "{", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 25, "line": 1, }, "start": Object { - "column": 15, + "column": 23, "line": 1, }, }, "range": Array [ - 15, - 16, + 23, + 25, ], - "type": "Punctuator", - "value": "}", + "type": "Keyword", + "value": "in", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/forIn/for-in-bare-nonstrict.src 1`] = ` -Object { - "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "name": "effects", - "range": Array [ - 4, - 11, - ], - "type": "Identifier", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "range": Array [ - 14, - 15, - ], - "raw": "0", - "type": "Literal", - "value": 0, - }, - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 15, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "var", "loc": Object { "end": Object { - "column": 16, + "column": 29, "line": 1, }, "start": Object { - "column": 0, + "column": 26, "line": 1, }, }, "range": Array [ - 0, - 16, + 26, + 29, ], - "type": "VariableDeclaration", + "type": "Identifier", + "value": "obj", }, Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "name": "iterations", - "range": Array [ - 21, - 31, - ], - "type": "Identifier", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 2, - }, - "start": Object { - "column": 17, - "line": 2, - }, - }, - "range": Array [ - 34, - 35, - ], - "raw": "0", - "type": "Literal", - "value": 0, - }, - "loc": Object { - "end": Object { - "column": 18, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "range": Array [ - 21, - 35, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "var", "loc": Object { "end": Object { - "column": 19, - "line": 2, + "column": 30, + "line": 1, }, "start": Object { - "column": 0, - "line": 2, + "column": 29, + "line": 1, }, }, "range": Array [ - 17, - 36, + 29, + 30, ], - "type": "VariableDeclaration", + "type": "Punctuator", + "value": ")", }, Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 3, - }, - "start": Object { - "column": 4, - "line": 3, - }, - }, - "name": "stored", - "range": Array [ - 41, - 47, - ], - "type": "Identifier", - }, - "init": null, - "loc": Object { - "end": Object { - "column": 10, - "line": 3, - }, - "start": Object { - "column": 4, - "line": 3, - }, - }, - "range": Array [ - 41, - 47, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "var", "loc": Object { "end": Object { - "column": 11, - "line": 3, + "column": 32, + "line": 1, }, "start": Object { - "column": 0, - "line": 3, + "column": 31, + "line": 1, }, }, "range": Array [ - 37, - 48, + 31, + 32, ], - "type": "VariableDeclaration", + "type": "Punctuator", + "value": "{", }, Object { - "body": Object { - "body": Array [ - Object { - "expression": Object { - "argument": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 5, - }, - "start": Object { - "column": 4, - "line": 5, - }, - }, - "name": "iterations", - "range": Array [ - 119, - 129, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 14, - "line": 5, - }, - "start": Object { - "column": 2, - "line": 5, - }, - }, - "operator": "++", - "prefix": true, - "range": Array [ - 117, - 129, - ], - "type": "UpdateExpression", - }, - "loc": Object { - "end": Object { - "column": 15, - "line": 5, - }, - "start": Object { - "column": 2, - "line": 5, - }, - }, - "range": Array [ - 117, - 130, - ], - "type": "ExpressionStatement", - }, - ], + "loc": Object { + "end": Object { + "column": 33, + "line": 1, + }, + "start": Object { + "column": 32, + "line": 1, + }, + }, + "range": Array [ + 32, + 33, + ], + "type": "Punctuator", + "value": "}", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/forIn/for-in-destruction-object.src 1`] = ` +Object { + "body": Array [ + Object { + "body": Object { + "body": Array [], "loc": Object { "end": Object { - "column": 1, - "line": 6, + "column": 33, + "line": 1, }, "start": Object { - "column": 64, - "line": 4, + "column": 31, + "line": 1, }, }, "range": Array [ - 113, - 132, + 31, + 33, ], "type": "BlockStatement", }, @@ -83138,128 +91162,150 @@ Object { "id": Object { "loc": Object { "end": Object { - "column": 10, - "line": 4, + "column": 22, + "line": 1, }, "start": Object { "column": 9, - "line": 4, + "line": 1, }, }, - "name": "a", - "range": Array [ - 58, - 59, - ], - "type": "Identifier", - }, - "init": Object { - "expressions": Array [ + "properties": Array [ Object { - "argument": Object { + "computed": false, + "key": Object { "loc": Object { "end": Object { - "column": 23, - "line": 4, + "column": 14, + "line": 1, }, "start": Object { - "column": 16, - "line": 4, + "column": 10, + "line": 1, }, }, - "name": "effects", + "name": "name", "range": Array [ - 65, - 72, + 10, + 14, ], "type": "Identifier", }, + "kind": "init", "loc": Object { "end": Object { - "column": 23, - "line": 4, + "column": 14, + "line": 1, }, "start": Object { - "column": 14, - "line": 4, + "column": 10, + "line": 1, }, }, - "operator": "++", - "prefix": true, + "method": false, "range": Array [ - 63, - 72, + 10, + 14, ], - "type": "UpdateExpression", + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "name": "name", + "range": Array [ + 10, + 14, + ], + "type": "Identifier", + }, }, Object { - "argument": Object { + "computed": false, + "key": Object { "loc": Object { "end": Object { - "column": 27, - "line": 4, + "column": 21, + "line": 1, }, "start": Object { - "column": 26, - "line": 4, + "column": 16, + "line": 1, }, }, + "name": "value", "range": Array [ - 75, - 76, + 16, + 21, ], - "raw": "1", - "type": "Literal", - "value": 1, + "type": "Identifier", }, + "kind": "init", "loc": Object { "end": Object { - "column": 27, - "line": 4, + "column": 21, + "line": 1, }, "start": Object { - "column": 25, - "line": 4, + "column": 16, + "line": 1, }, }, - "operator": "-", - "prefix": true, + "method": false, "range": Array [ - 74, - 76, + 16, + 21, ], - "type": "UnaryExpression", + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "name": "value", + "range": Array [ + 16, + 21, + ], + "type": "Identifier", + }, }, ], - "loc": Object { - "end": Object { - "column": 27, - "line": 4, - }, - "start": Object { - "column": 14, - "line": 4, - }, - }, "range": Array [ - 63, - 76, + 9, + 22, ], - "type": "SequenceExpression", + "type": "ObjectPattern", }, + "init": null, "loc": Object { "end": Object { - "column": 28, - "line": 4, + "column": 22, + "line": 1, }, "start": Object { "column": 9, - "line": 4, + "line": 1, }, }, "range": Array [ - 58, - 77, + 9, + 22, ], "type": "VariableDeclarator", }, @@ -83267,299 +91313,51 @@ Object { "kind": "var", "loc": Object { "end": Object { - "column": 28, - "line": 4, + "column": 22, + "line": 1, }, "start": Object { "column": 5, - "line": 4, + "line": 1, }, }, "range": Array [ - 54, - 77, + 5, + 22, ], "type": "VariableDeclaration", }, "loc": Object { "end": Object { - "column": 1, - "line": 6, + "column": 33, + "line": 1, }, "start": Object { "column": 0, - "line": 4, + "line": 1, }, }, "range": Array [ - 49, - 132, + 0, + 33, ], "right": Object { - "expressions": Array [ - Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 38, - "line": 4, - }, - "start": Object { - "column": 32, - "line": 4, - }, - }, - "name": "stored", - "range": Array [ - 81, - 87, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 42, - "line": 4, - }, - "start": Object { - "column": 32, - "line": 4, - }, - }, - "operator": "=", - "range": Array [ - 81, - 91, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 42, - "line": 4, - }, - "start": Object { - "column": 41, - "line": 4, - }, - }, - "name": "a", - "range": Array [ - 90, - 91, - ], - "type": "Identifier", - }, - "type": "AssignmentExpression", - }, - Object { - "loc": Object { - "end": Object { - "column": 62, - "line": 4, - }, - "start": Object { - "column": 44, - "line": 4, - }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 46, - "line": 4, - }, - "start": Object { - "column": 45, - "line": 4, - }, - }, - "name": "a", - "range": Array [ - 94, - 95, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 49, - "line": 4, - }, - "start": Object { - "column": 45, - "line": 4, - }, - }, - "method": false, - "range": Array [ - 94, - 98, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 49, - "line": 4, - }, - "start": Object { - "column": 48, - "line": 4, - }, - }, - "range": Array [ - 97, - 98, - ], - "raw": "0", - "type": "Literal", - "value": 0, - }, - }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 52, - "line": 4, - }, - "start": Object { - "column": 51, - "line": 4, - }, - }, - "name": "b", - "range": Array [ - 100, - 101, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 55, - "line": 4, - }, - "start": Object { - "column": 51, - "line": 4, - }, - }, - "method": false, - "range": Array [ - 100, - 104, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 55, - "line": 4, - }, - "start": Object { - "column": 54, - "line": 4, - }, - }, - "range": Array [ - 103, - 104, - ], - "raw": "1", - "type": "Literal", - "value": 1, - }, - }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 58, - "line": 4, - }, - "start": Object { - "column": 57, - "line": 4, - }, - }, - "name": "c", - "range": Array [ - 106, - 107, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 61, - "line": 4, - }, - "start": Object { - "column": 57, - "line": 4, - }, - }, - "method": false, - "range": Array [ - 106, - 110, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 61, - "line": 4, - }, - "start": Object { - "column": 60, - "line": 4, - }, - }, - "range": Array [ - 109, - 110, - ], - "raw": "2", - "type": "Literal", - "value": 2, - }, - }, - ], - "range": Array [ - 93, - 111, - ], - "type": "ObjectExpression", - }, - ], "loc": Object { "end": Object { - "column": 62, - "line": 4, + "column": 29, + "line": 1, }, "start": Object { - "column": 32, - "line": 4, + "column": 26, + "line": 1, }, }, + "name": "obj", "range": Array [ - 81, - 111, + 26, + 29, ], - "type": "SequenceExpression", + "type": "Identifier", }, "type": "ForInStatement", }, @@ -83567,7 +91365,7 @@ Object { "loc": Object { "end": Object { "column": 0, - "line": 7, + "line": 2, }, "start": Object { "column": 0, @@ -83576,7 +91374,7 @@ Object { }, "range": Array [ 0, - 133, + 34, ], "sourceType": "script", "tokens": Array [ @@ -83596,12 +91394,12 @@ Object { 3, ], "type": "Keyword", - "value": "var", + "value": "for", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 5, "line": 1, }, "start": Object { @@ -83611,313 +91409,339 @@ Object { }, "range": Array [ 4, - 11, - ], - "type": "Identifier", - "value": "effects", - }, - Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "range": Array [ - 12, - 13, - ], - "type": "Punctuator", - "value": "=", - }, - Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "range": Array [ - 14, - 15, + 5, ], - "type": "Numeric", - "value": "0", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 8, "line": 1, }, "start": Object { - "column": 15, + "column": 5, "line": 1, }, }, "range": Array [ - 15, - 16, + 5, + 8, ], - "type": "Punctuator", - "value": ";", + "type": "Keyword", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 3, - "line": 2, + "column": 10, + "line": 1, }, "start": Object { - "column": 0, - "line": 2, + "column": 9, + "line": 1, }, }, "range": Array [ - 17, - 20, + 9, + 10, ], - "type": "Keyword", - "value": "var", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { "column": 14, - "line": 2, + "line": 1, }, "start": Object { - "column": 4, - "line": 2, + "column": 10, + "line": 1, }, }, "range": Array [ - 21, - 31, + 10, + 14, ], "type": "Identifier", - "value": "iterations", + "value": "name", }, Object { "loc": Object { "end": Object { - "column": 16, - "line": 2, + "column": 15, + "line": 1, }, "start": Object { - "column": 15, - "line": 2, + "column": 14, + "line": 1, }, }, "range": Array [ - 32, - 33, + 14, + 15, ], "type": "Punctuator", - "value": "=", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 18, - "line": 2, + "column": 21, + "line": 1, }, "start": Object { - "column": 17, - "line": 2, + "column": 16, + "line": 1, }, }, "range": Array [ - 34, - 35, + 16, + 21, ], - "type": "Numeric", - "value": "0", + "type": "Identifier", + "value": "value", }, Object { "loc": Object { "end": Object { - "column": 19, - "line": 2, + "column": 22, + "line": 1, }, "start": Object { - "column": 18, - "line": 2, + "column": 21, + "line": 1, }, }, "range": Array [ - 35, - 36, + 21, + 22, ], "type": "Punctuator", - "value": ";", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 3, - "line": 3, + "column": 25, + "line": 1, }, "start": Object { - "column": 0, - "line": 3, + "column": 23, + "line": 1, }, }, "range": Array [ - 37, - 40, + 23, + 25, ], "type": "Keyword", - "value": "var", + "value": "in", }, Object { "loc": Object { "end": Object { - "column": 10, - "line": 3, + "column": 29, + "line": 1, }, "start": Object { - "column": 4, - "line": 3, + "column": 26, + "line": 1, }, }, "range": Array [ - 41, - 47, + 26, + 29, ], "type": "Identifier", - "value": "stored", + "value": "obj", }, Object { "loc": Object { "end": Object { - "column": 11, - "line": 3, + "column": 30, + "line": 1, }, "start": Object { - "column": 10, - "line": 3, + "column": 29, + "line": 1, }, }, "range": Array [ - 47, - 48, + 29, + 30, ], "type": "Punctuator", - "value": ";", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 3, - "line": 4, + "column": 32, + "line": 1, }, "start": Object { - "column": 0, - "line": 4, + "column": 31, + "line": 1, }, }, "range": Array [ - 49, - 52, + 31, + 32, ], - "type": "Keyword", - "value": "for", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 5, - "line": 4, + "column": 33, + "line": 1, }, "start": Object { - "column": 4, - "line": 4, + "column": 32, + "line": 1, }, }, "range": Array [ - 53, - 54, + 32, + 33, ], "type": "Punctuator", - "value": "(", + "value": "}", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/forIn/for-in-object.src 1`] = `"';' expected."`; + +exports[`javascript fixtures/forIn/for-in-object-with-body.src 1`] = ` +Object { + "body": Array [ Object { - "loc": Object { - "end": Object { - "column": 8, - "line": 4, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, }, - "start": Object { - "column": 5, - "line": 4, + "range": Array [ + 14, + 16, + ], + "type": "BlockStatement", + }, + "left": Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, }, + "name": "i", + "range": Array [ + 5, + 6, + ], + "type": "Identifier", }, - "range": Array [ - 54, - 57, - ], - "type": "Keyword", - "value": "var", - }, - Object { "loc": Object { "end": Object { - "column": 10, - "line": 4, + "column": 16, + "line": 1, }, "start": Object { - "column": 9, - "line": 4, + "column": 0, + "line": 1, }, }, "range": Array [ - 58, - 59, + 0, + 16, ], - "type": "Identifier", - "value": "a", + "right": Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "properties": Array [], + "range": Array [ + 10, + 12, + ], + "type": "ObjectExpression", + }, + "type": "ForInStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 17, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 12, - "line": 4, + "column": 3, + "line": 1, }, "start": Object { - "column": 11, - "line": 4, + "column": 0, + "line": 1, }, }, "range": Array [ - 60, - 61, + 0, + 3, ], - "type": "Punctuator", - "value": "=", + "type": "Keyword", + "value": "for", }, Object { "loc": Object { "end": Object { - "column": 14, - "line": 4, + "column": 5, + "line": 1, }, "start": Object { - "column": 13, - "line": 4, + "column": 4, + "line": 1, }, }, "range": Array [ - 62, - 63, + 4, + 5, ], "type": "Punctuator", "value": "(", @@ -83925,449 +91749,493 @@ Object { Object { "loc": Object { "end": Object { - "column": 16, - "line": 4, + "column": 6, + "line": 1, }, "start": Object { - "column": 14, - "line": 4, + "column": 5, + "line": 1, }, }, "range": Array [ - 63, - 65, + 5, + 6, ], - "type": "Punctuator", - "value": "++", + "type": "Identifier", + "value": "i", }, Object { "loc": Object { "end": Object { - "column": 23, - "line": 4, + "column": 9, + "line": 1, }, "start": Object { - "column": 16, - "line": 4, + "column": 7, + "line": 1, }, }, "range": Array [ - 65, - 72, + 7, + 9, ], - "type": "Identifier", - "value": "effects", + "type": "Keyword", + "value": "in", }, Object { "loc": Object { "end": Object { - "column": 24, - "line": 4, + "column": 11, + "line": 1, }, "start": Object { - "column": 23, - "line": 4, + "column": 10, + "line": 1, }, }, "range": Array [ - 72, - 73, + 10, + 11, ], "type": "Punctuator", - "value": ",", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 26, - "line": 4, + "column": 12, + "line": 1, }, "start": Object { - "column": 25, - "line": 4, + "column": 11, + "line": 1, }, }, "range": Array [ - 74, - 75, + 11, + 12, ], "type": "Punctuator", - "value": "-", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 27, - "line": 4, + "column": 13, + "line": 1, }, "start": Object { - "column": 26, - "line": 4, + "column": 12, + "line": 1, }, }, "range": Array [ - 75, - 76, + 12, + 13, ], - "type": "Numeric", - "value": "1", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 28, - "line": 4, + "column": 15, + "line": 1, }, "start": Object { - "column": 27, - "line": 4, + "column": 14, + "line": 1, }, }, "range": Array [ - 76, - 77, + 14, + 15, ], "type": "Punctuator", - "value": ")", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 31, - "line": 4, + "column": 16, + "line": 1, }, "start": Object { - "column": 29, - "line": 4, + "column": 15, + "line": 1, }, }, "range": Array [ - 78, - 80, + 15, + 16, ], - "type": "Keyword", - "value": "in", + "type": "Punctuator", + "value": "}", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/forIn/for-in-with-assigment.src 1`] = ` +Object { + "body": Array [ Object { - "loc": Object { - "end": Object { - "column": 38, - "line": 4, + "body": Object { + "expression": Object { + "arguments": Array [ + Object { + "loc": Object { + "end": Object { + "column": 34, + "line": 1, + }, + "start": Object { + "column": 33, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 33, + 34, + ], + "type": "Identifier", + }, + ], + "callee": Object { + "loc": Object { + "end": Object { + "column": 32, + "line": 1, + }, + "start": Object { + "column": 25, + "line": 1, + }, + }, + "name": "process", + "range": Array [ + 25, + 32, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 35, + "line": 1, + }, + "start": Object { + "column": 25, + "line": 1, + }, + }, + "range": Array [ + 25, + 35, + ], + "type": "CallExpression", }, - "start": Object { - "column": 32, - "line": 4, + "loc": Object { + "end": Object { + "column": 36, + "line": 1, + }, + "start": Object { + "column": 25, + "line": 1, + }, + }, + "range": Array [ + 25, + 36, + ], + "type": "ExpressionStatement", + }, + "left": Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 9, + 10, + ], + "type": "Identifier", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 15, + ], + "raw": "42", + "type": "Literal", + "value": 42, + }, + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 15, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "let", + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, }, + "range": Array [ + 5, + 15, + ], + "type": "VariableDeclaration", }, - "range": Array [ - 81, - 87, - ], - "type": "Identifier", - "value": "stored", - }, - Object { "loc": Object { "end": Object { - "column": 40, - "line": 4, + "column": 36, + "line": 1, }, "start": Object { - "column": 39, - "line": 4, + "column": 0, + "line": 1, }, }, "range": Array [ - 88, - 89, + 0, + 36, ], - "type": "Punctuator", - "value": "=", - }, - Object { - "loc": Object { - "end": Object { - "column": 42, - "line": 4, - }, - "start": Object { - "column": 41, - "line": 4, + "right": Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 19, + "line": 1, + }, }, + "name": "list", + "range": Array [ + 19, + 23, + ], + "type": "Identifier", }, - "range": Array [ - 90, - 91, - ], - "type": "Identifier", - "value": "a", + "type": "ForInStatement", }, - Object { - "loc": Object { - "end": Object { - "column": 43, - "line": 4, - }, - "start": Object { - "column": 42, - "line": 4, - }, - }, - "range": Array [ - 91, - 92, - ], - "type": "Punctuator", - "value": ",", + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, }, - Object { - "loc": Object { - "end": Object { - "column": 45, - "line": 4, - }, - "start": Object { - "column": 44, - "line": 4, - }, - }, - "range": Array [ - 93, - 94, - ], - "type": "Punctuator", - "value": "{", + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 37, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 46, - "line": 4, + "column": 3, + "line": 1, }, "start": Object { - "column": 45, - "line": 4, + "column": 0, + "line": 1, }, }, "range": Array [ - 94, - 95, + 0, + 3, ], - "type": "Identifier", - "value": "a", + "type": "Keyword", + "value": "for", }, Object { "loc": Object { "end": Object { - "column": 47, - "line": 4, + "column": 5, + "line": 1, }, "start": Object { - "column": 46, - "line": 4, + "column": 4, + "line": 1, }, }, "range": Array [ - 95, - 96, + 4, + 5, ], "type": "Punctuator", - "value": ":", - }, - Object { - "loc": Object { - "end": Object { - "column": 49, - "line": 4, - }, - "start": Object { - "column": 48, - "line": 4, - }, - }, - "range": Array [ - 97, - 98, - ], - "type": "Numeric", - "value": "0", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 50, - "line": 4, + "column": 8, + "line": 1, }, "start": Object { - "column": 49, - "line": 4, + "column": 5, + "line": 1, }, }, "range": Array [ - 98, - 99, + 5, + 8, ], - "type": "Punctuator", - "value": ",", + "type": "Keyword", + "value": "let", }, Object { "loc": Object { "end": Object { - "column": 52, - "line": 4, + "column": 10, + "line": 1, }, "start": Object { - "column": 51, - "line": 4, + "column": 9, + "line": 1, }, }, "range": Array [ - 100, - 101, + 9, + 10, ], "type": "Identifier", - "value": "b", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 53, - "line": 4, + "column": 12, + "line": 1, }, "start": Object { - "column": 52, - "line": 4, + "column": 11, + "line": 1, }, }, "range": Array [ - 101, - 102, + 11, + 12, ], "type": "Punctuator", - "value": ":", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 55, - "line": 4, + "column": 15, + "line": 1, }, "start": Object { - "column": 54, - "line": 4, + "column": 13, + "line": 1, }, }, "range": Array [ - 103, - 104, + 13, + 15, ], "type": "Numeric", - "value": "1", + "value": "42", }, Object { "loc": Object { "end": Object { - "column": 56, - "line": 4, + "column": 18, + "line": 1, }, "start": Object { - "column": 55, - "line": 4, + "column": 16, + "line": 1, }, }, "range": Array [ - 104, - 105, + 16, + 18, ], - "type": "Punctuator", - "value": ",", + "type": "Keyword", + "value": "in", }, Object { "loc": Object { "end": Object { - "column": 58, - "line": 4, + "column": 23, + "line": 1, }, "start": Object { - "column": 57, - "line": 4, + "column": 19, + "line": 1, }, }, "range": Array [ - 106, - 107, + 19, + 23, ], "type": "Identifier", - "value": "c", - }, - Object { - "loc": Object { - "end": Object { - "column": 59, - "line": 4, - }, - "start": Object { - "column": 58, - "line": 4, - }, - }, - "range": Array [ - 107, - 108, - ], - "type": "Punctuator", - "value": ":", - }, - Object { - "loc": Object { - "end": Object { - "column": 61, - "line": 4, - }, - "start": Object { - "column": 60, - "line": 4, - }, - }, - "range": Array [ - 109, - 110, - ], - "type": "Numeric", - "value": "2", - }, - Object { - "loc": Object { - "end": Object { - "column": 62, - "line": 4, - }, - "start": Object { - "column": 61, - "line": 4, - }, - }, - "range": Array [ - 110, - 111, - ], - "type": "Punctuator", - "value": "}", + "value": "list", }, Object { "loc": Object { "end": Object { - "column": 63, - "line": 4, + "column": 24, + "line": 1, }, "start": Object { - "column": 62, - "line": 4, + "column": 23, + "line": 1, }, }, "range": Array [ - 111, - 112, + 23, + 24, ], "type": "Punctuator", "value": ")", @@ -84375,200 +92243,141 @@ Object { Object { "loc": Object { "end": Object { - "column": 65, - "line": 4, + "column": 32, + "line": 1, }, "start": Object { - "column": 64, - "line": 4, + "column": 25, + "line": 1, }, }, "range": Array [ - 113, - 114, + 25, + 32, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "process", }, Object { "loc": Object { "end": Object { - "column": 4, - "line": 5, + "column": 33, + "line": 1, }, "start": Object { - "column": 2, - "line": 5, + "column": 32, + "line": 1, }, }, "range": Array [ - 117, - 119, + 32, + 33, ], "type": "Punctuator", - "value": "++", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 14, - "line": 5, + "column": 34, + "line": 1, }, "start": Object { - "column": 4, - "line": 5, + "column": 33, + "line": 1, }, }, "range": Array [ - 119, - 129, + 33, + 34, ], "type": "Identifier", - "value": "iterations", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 15, - "line": 5, + "column": 35, + "line": 1, }, "start": Object { - "column": 14, - "line": 5, + "column": 34, + "line": 1, }, }, "range": Array [ - 129, - 130, + 34, + 35, ], "type": "Punctuator", - "value": ";", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 1, - "line": 6, + "column": 36, + "line": 1, }, "start": Object { - "column": 0, - "line": 6, + "column": 35, + "line": 1, }, }, "range": Array [ - 131, - 132, + 35, + 36, ], "type": "Punctuator", - "value": "}", + "value": ";", }, ], "type": "Program", } `; -exports[`javascript fixtures/forIn/for-in-destruction.src 1`] = ` +exports[`javascript fixtures/forIn/for-in-with-bare-assigment.src 1`] = ` Object { "body": Array [ Object { "body": Object { - "body": Array [], "loc": Object { "end": Object { - "column": 33, + "column": 19, "line": 1, }, "start": Object { - "column": 31, + "column": 18, "line": 1, }, }, "range": Array [ - 31, - 33, + 18, + 19, ], - "type": "BlockStatement", + "type": "EmptyStatement", }, "left": Object { - "declarations": Array [ - Object { - "id": Object { - "elements": Array [ - Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "name": "name", - "range": Array [ - 10, - 14, - ], - "type": "Identifier", - }, - Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "name": "value", - "range": Array [ - 16, - 21, - ], - "type": "Identifier", - }, - ], - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 22, - ], - "type": "ArrayPattern", - }, - "init": null, - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, + "left": Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, }, - "range": Array [ - 9, - 22, - ], - "type": "VariableDeclarator", }, - ], - "kind": "var", + "name": "x", + "range": Array [ + 5, + 6, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 22, + "column": 10, "line": 1, }, "start": Object { @@ -84576,15 +92385,35 @@ Object { "line": 1, }, }, + "operator": "=", "range": Array [ 5, - 22, + 10, ], - "type": "VariableDeclaration", + "right": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 10, + ], + "raw": "0", + "type": "Literal", + "value": 0, + }, + "type": "AssignmentExpression", }, "loc": Object { "end": Object { - "column": 33, + "column": 19, "line": 1, }, "start": Object { @@ -84594,23 +92423,23 @@ Object { }, "range": Array [ 0, - 33, + 19, ], "right": Object { "loc": Object { "end": Object { - "column": 29, + "column": 17, "line": 1, }, "start": Object { - "column": 26, + "column": 14, "line": 1, }, }, - "name": "obj", + "name": "arr", "range": Array [ - 26, - 29, + 14, + 17, ], "type": "Identifier", }, @@ -84629,7 +92458,7 @@ Object { }, "range": Array [ 0, - 34, + 20, ], "sourceType": "script", "tokens": Array [ @@ -84672,7 +92501,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 8, + "column": 6, "line": 1, }, "start": Object { @@ -84682,115 +92511,61 @@ Object { }, "range": Array [ 5, - 8, - ], - "type": "Keyword", - "value": "var", - }, - Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 10, - ], - "type": "Punctuator", - "value": "[", - }, - Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "range": Array [ - 10, - 14, + 6, ], "type": "Identifier", - "value": "name", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 8, "line": 1, }, "start": Object { - "column": 14, + "column": 7, "line": 1, }, }, "range": Array [ - 14, - 15, + 7, + 8, ], "type": "Punctuator", - "value": ",", - }, - Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "range": Array [ - 16, - 21, - ], - "type": "Identifier", - "value": "value", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 22, + "column": 10, "line": 1, }, "start": Object { - "column": 21, + "column": 9, "line": 1, }, }, "range": Array [ - 21, - 22, + 9, + 10, ], - "type": "Punctuator", - "value": "]", + "type": "Numeric", + "value": "0", }, Object { "loc": Object { "end": Object { - "column": 25, + "column": 13, "line": 1, }, "start": Object { - "column": 23, + "column": 11, "line": 1, }, }, "range": Array [ - 23, - 25, + 11, + 13, ], "type": "Keyword", "value": "in", @@ -84798,35 +92573,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 29, + "column": 17, "line": 1, }, "start": Object { - "column": 26, + "column": 14, "line": 1, }, }, "range": Array [ - 26, - 29, + 14, + 17, ], "type": "Identifier", - "value": "obj", + "value": "arr", }, Object { "loc": Object { "end": Object { - "column": 30, + "column": 18, "line": 1, }, "start": Object { - "column": 29, + "column": 17, "line": 1, }, }, "range": Array [ - 29, - 30, + 17, + 18, ], "type": "Punctuator", "value": ")", @@ -84834,65 +92609,101 @@ Object { Object { "loc": Object { "end": Object { - "column": 32, - "line": 1, - }, - "start": Object { - "column": 31, - "line": 1, - }, - }, - "range": Array [ - 31, - 32, - ], - "type": "Punctuator", - "value": "{", - }, - Object { - "loc": Object { - "end": Object { - "column": 33, + "column": 19, "line": 1, }, "start": Object { - "column": 32, + "column": 18, "line": 1, }, }, "range": Array [ - 32, - 33, + 18, + 19, ], "type": "Punctuator", - "value": "}", + "value": ";", }, ], "type": "Program", } `; -exports[`javascript fixtures/forIn/for-in-destruction-object.src 1`] = ` +exports[`javascript fixtures/forIn/for-in-with-const.src 1`] = ` Object { "body": Array [ Object { "body": Object { - "body": Array [], + "expression": Object { + "arguments": Array [ + Object { + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 30, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 30, + 31, + ], + "type": "Identifier", + }, + ], + "callee": Object { + "loc": Object { + "end": Object { + "column": 29, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "name": "process", + "range": Array [ + 22, + 29, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 32, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "range": Array [ + 22, + 32, + ], + "type": "CallExpression", + }, "loc": Object { "end": Object { "column": 33, "line": 1, }, "start": Object { - "column": 31, + "column": 22, "line": 1, }, }, "range": Array [ - 31, + 22, 33, ], - "type": "BlockStatement", + "type": "ExpressionStatement", }, "left": Object { "declarations": Array [ @@ -84900,158 +92711,43 @@ Object { "id": Object { "loc": Object { "end": Object { - "column": 22, + "column": 12, "line": 1, }, "start": Object { - "column": 9, + "column": 11, "line": 1, }, }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "name": "name", - "range": Array [ - 10, - 14, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 10, - 14, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "name": "name", - "range": Array [ - 10, - 14, - ], - "type": "Identifier", - }, - }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "name": "value", - "range": Array [ - 16, - 21, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 16, - 21, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "name": "value", - "range": Array [ - 16, - 21, - ], - "type": "Identifier", - }, - }, - ], + "name": "x", "range": Array [ - 9, - 22, + 11, + 12, ], - "type": "ObjectPattern", + "type": "Identifier", }, "init": null, "loc": Object { "end": Object { - "column": 22, + "column": 12, "line": 1, }, "start": Object { - "column": 9, + "column": 11, "line": 1, }, }, "range": Array [ - 9, - 22, + 11, + 12, ], "type": "VariableDeclarator", }, ], - "kind": "var", + "kind": "const", "loc": Object { "end": Object { - "column": 22, + "column": 12, "line": 1, }, "start": Object { @@ -85061,7 +92757,7 @@ Object { }, "range": Array [ 5, - 22, + 12, ], "type": "VariableDeclaration", }, @@ -85082,18 +92778,18 @@ Object { "right": Object { "loc": Object { "end": Object { - "column": 29, + "column": 20, "line": 1, }, "start": Object { - "column": 26, + "column": 16, "line": 1, }, }, - "name": "obj", + "name": "list", "range": Array [ - 26, - 29, + 16, + 20, ], "type": "Identifier", }, @@ -85155,7 +92851,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 8, + "column": 10, "line": 1, }, "start": Object { @@ -85165,46 +92861,28 @@ Object { }, "range": Array [ 5, - 8, - ], - "type": "Keyword", - "value": "var", - }, - Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, 10, ], - "type": "Punctuator", - "value": "{", + "type": "Keyword", + "value": "const", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 12, "line": 1, }, "start": Object { - "column": 10, + "column": 11, "line": 1, }, }, "range": Array [ - 10, - 14, + 11, + 12, ], "type": "Identifier", - "value": "name", + "value": "x", }, Object { "loc": Object { @@ -85213,21 +92891,21 @@ Object { "line": 1, }, "start": Object { - "column": 14, + "column": 13, "line": 1, }, }, "range": Array [ - 14, + 13, 15, ], - "type": "Punctuator", - "value": ",", + "type": "Keyword", + "value": "in", }, Object { "loc": Object { "end": Object { - "column": 21, + "column": 20, "line": 1, }, "start": Object { @@ -85237,82 +92915,82 @@ Object { }, "range": Array [ 16, - 21, + 20, ], "type": "Identifier", - "value": "value", + "value": "list", }, Object { "loc": Object { "end": Object { - "column": 22, + "column": 21, "line": 1, }, "start": Object { - "column": 21, + "column": 20, "line": 1, }, }, "range": Array [ + 20, 21, - 22, ], "type": "Punctuator", - "value": "}", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 25, + "column": 29, "line": 1, }, "start": Object { - "column": 23, + "column": 22, "line": 1, }, }, "range": Array [ - 23, - 25, + 22, + 29, ], - "type": "Keyword", - "value": "in", + "type": "Identifier", + "value": "process", }, Object { "loc": Object { "end": Object { - "column": 29, + "column": 30, "line": 1, }, "start": Object { - "column": 26, + "column": 29, "line": 1, }, }, "range": Array [ - 26, 29, + 30, ], - "type": "Identifier", - "value": "obj", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 30, + "column": 31, "line": 1, }, "start": Object { - "column": 29, + "column": 30, "line": 1, }, }, "range": Array [ - 29, 30, + 31, ], - "type": "Punctuator", - "value": ")", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { @@ -85330,7 +93008,7 @@ Object { 32, ], "type": "Punctuator", - "value": "{", + "value": ")", }, Object { "loc": Object { @@ -85348,41 +93026,130 @@ Object { 33, ], "type": "Punctuator", - "value": "}", + "value": ";", }, ], "type": "Program", } `; -exports[`javascript fixtures/forIn/for-in-object.src 1`] = `"';' expected."`; - -exports[`javascript fixtures/forIn/for-in-object-with-body.src 1`] = ` +exports[`javascript fixtures/forIn/for-in-with-milti-asigment.src 1`] = ` Object { "body": Array [ Object { "body": Object { - "body": Array [], "loc": Object { "end": Object { - "column": 16, + "column": 25, "line": 1, }, "start": Object { - "column": 14, + "column": 24, "line": 1, }, }, "range": Array [ - 14, - 16, + 24, + 25, ], - "type": "BlockStatement", + "type": "EmptyStatement", }, "left": Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 9, + 10, + ], + "type": "Identifier", + }, + "init": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "name": "y", + "range": Array [ + 13, + 14, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "operator": "=", + "range": Array [ + 13, + 18, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "name": "z", + "range": Array [ + 17, + 18, + ], + "type": "Identifier", + }, + "type": "AssignmentExpression", + }, + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 18, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", "loc": Object { "end": Object { - "column": 6, + "column": 18, "line": 1, }, "start": Object { @@ -85390,16 +93157,15 @@ Object { "line": 1, }, }, - "name": "i", "range": Array [ 5, - 6, + 18, ], - "type": "Identifier", + "type": "VariableDeclaration", }, "loc": Object { "end": Object { - "column": 16, + "column": 25, "line": 1, }, "start": Object { @@ -85409,25 +93175,25 @@ Object { }, "range": Array [ 0, - 16, + 25, ], "right": Object { "loc": Object { "end": Object { - "column": 12, + "column": 23, "line": 1, }, "start": Object { - "column": 10, + "column": 22, "line": 1, }, }, - "properties": Array [], + "name": "q", "range": Array [ - 10, - 12, + 22, + 23, ], - "type": "ObjectExpression", + "type": "Identifier", }, "type": "ForInStatement", }, @@ -85444,7 +93210,7 @@ Object { }, "range": Array [ 0, - 17, + 26, ], "sourceType": "script", "tokens": Array [ @@ -85487,7 +93253,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 6, + "column": 8, "line": 1, }, "start": Object { @@ -85497,278 +93263,315 @@ Object { }, "range": Array [ 5, - 6, + 8, ], - "type": "Identifier", - "value": "i", + "type": "Keyword", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 10, "line": 1, }, "start": Object { - "column": 7, + "column": 9, "line": 1, }, }, "range": Array [ - 7, 9, + 10, ], - "type": "Keyword", - "value": "in", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 12, "line": 1, }, "start": Object { - "column": 10, + "column": 11, "line": 1, }, }, "range": Array [ - 10, 11, + 12, ], "type": "Punctuator", - "value": "{", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 14, "line": 1, }, "start": Object { - "column": 11, + "column": 13, "line": 1, }, }, "range": Array [ - 11, - 12, + 13, + 14, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "y", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 16, "line": 1, }, "start": Object { - "column": 12, + "column": 15, "line": 1, }, }, "range": Array [ - 12, - 13, + 15, + 16, ], "type": "Punctuator", - "value": ")", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 18, "line": 1, }, "start": Object { - "column": 14, + "column": 17, "line": 1, }, }, "range": Array [ - 14, - 15, + 17, + 18, + ], + "type": "Identifier", + "value": "z", + }, + Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 19, + "line": 1, + }, + }, + "range": Array [ + 19, + 21, + ], + "type": "Keyword", + "value": "in", + }, + Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "range": Array [ + 22, + 23, + ], + "type": "Identifier", + "value": "q", + }, + Object { + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "range": Array [ + 23, + 24, ], "type": "Punctuator", - "value": "{", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 25, "line": 1, }, "start": Object { - "column": 15, + "column": 24, "line": 1, }, }, "range": Array [ - 15, - 16, + 24, + 25, ], "type": "Punctuator", - "value": "}", + "value": ";", }, ], "type": "Program", } `; -exports[`javascript fixtures/forIn/for-in-with-assigment.src 1`] = ` +exports[`javascript fixtures/forIn/for-in-with-rest.src 1`] = ` Object { "body": Array [ Object { "body": Object { - "expression": Object { - "arguments": Array [ - Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 1, + "line": 2, + }, + "start": Object { + "column": 38, + "line": 1, + }, + }, + "range": Array [ + 38, + 41, + ], + "type": "BlockStatement", + }, + "left": Object { + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { "loc": Object { "end": Object { - "column": 34, + "column": 8, "line": 1, }, "start": Object { - "column": 33, + "column": 7, "line": 1, }, }, "name": "x", "range": Array [ - 33, - 34, + 7, + 8, ], "type": "Identifier", }, - ], - "callee": Object { + "kind": "init", "loc": Object { "end": Object { - "column": 32, + "column": 12, "line": 1, }, "start": Object { - "column": 25, + "column": 7, "line": 1, }, }, - "name": "process", + "method": false, "range": Array [ - 25, - 32, + 7, + 12, ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 35, - "line": 1, - }, - "start": Object { - "column": 25, - "line": 1, - }, - }, - "range": Array [ - 25, - 35, - ], - "type": "CallExpression", - }, - "loc": Object { - "end": Object { - "column": 36, - "line": 1, - }, - "start": Object { - "column": 25, - "line": 1, - }, - }, - "range": Array [ - 25, - 36, - ], - "type": "ExpressionStatement", - }, - "left": Object { - "declarations": Array [ - Object { - "id": Object { + "shorthand": false, + "type": "Property", + "value": Object { "loc": Object { "end": Object { - "column": 10, + "column": 12, "line": 1, }, "start": Object { - "column": 9, + "column": 10, "line": 1, }, }, - "name": "x", + "name": "xx", "range": Array [ - 9, 10, + 12, ], "type": "Identifier", }, - "init": Object { + }, + Object { + "argument": Object { "loc": Object { "end": Object { - "column": 15, + "column": 25, "line": 1, }, "start": Object { - "column": 13, + "column": 17, "line": 1, }, }, + "name": "rrestOff", "range": Array [ - 13, - 15, + 17, + 25, ], - "raw": "42", - "type": "Literal", - "value": 42, + "type": "Identifier", }, "loc": Object { "end": Object { - "column": 15, + "column": 25, "line": 1, }, "start": Object { - "column": 9, + "column": 14, "line": 1, }, }, "range": Array [ - 9, - 15, + 14, + 25, ], - "type": "VariableDeclarator", + "type": "SpreadElement", }, ], - "kind": "let", - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, "range": Array [ 5, - 15, + 27, ], - "type": "VariableDeclaration", + "type": "ObjectExpression", }, "loc": Object { "end": Object { - "column": 36, - "line": 1, + "column": 1, + "line": 2, }, "start": Object { "column": 0, @@ -85777,23 +93580,23 @@ Object { }, "range": Array [ 0, - 36, + 41, ], "right": Object { "loc": Object { "end": Object { - "column": 23, + "column": 36, "line": 1, }, "start": Object { - "column": 19, + "column": 31, "line": 1, }, }, - "name": "list", + "name": "array", "range": Array [ - 19, - 23, + 31, + 36, ], "type": "Identifier", }, @@ -85803,7 +93606,7 @@ Object { "loc": Object { "end": Object { "column": 0, - "line": 2, + "line": 3, }, "start": Object { "column": 0, @@ -85812,7 +93615,7 @@ Object { }, "range": Array [ 0, - 37, + 42, ], "sourceType": "script", "tokens": Array [ @@ -85855,7 +93658,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 8, + "column": 6, "line": 1, }, "start": Object { @@ -85865,25 +93668,25 @@ Object { }, "range": Array [ 5, - 8, + 6, ], - "type": "Keyword", - "value": "let", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 8, "line": 1, }, "start": Object { - "column": 9, + "column": 7, "line": 1, }, }, "range": Array [ - 9, - 10, + 7, + 8, ], "type": "Identifier", "value": "x", @@ -85891,228 +93694,322 @@ Object { Object { "loc": Object { "end": Object { - "column": 12, + "column": 9, "line": 1, }, "start": Object { - "column": 11, + "column": 8, "line": 1, }, }, "range": Array [ - 11, - 12, + 8, + 9, ], "type": "Punctuator", - "value": "=", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 12, "line": 1, }, "start": Object { + "column": 10, + "line": 1, + }, + }, + "range": Array [ + 10, + 12, + ], + "type": "Identifier", + "value": "xx", + }, + Object { + "loc": Object { + "end": Object { "column": 13, "line": 1, }, + "start": Object { + "column": 12, + "line": 1, + }, }, "range": Array [ + 12, 13, - 15, ], - "type": "Numeric", - "value": "42", + "type": "Punctuator", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 17, "line": 1, }, "start": Object { - "column": 16, + "column": 14, "line": 1, }, }, "range": Array [ - 16, - 18, + 14, + 17, ], - "type": "Keyword", - "value": "in", + "type": "Punctuator", + "value": "...", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 25, "line": 1, }, "start": Object { - "column": 19, + "column": 17, "line": 1, }, }, "range": Array [ - 19, - 23, + 17, + 25, ], "type": "Identifier", - "value": "list", + "value": "rrestOff", }, Object { "loc": Object { "end": Object { - "column": 24, + "column": 27, "line": 1, }, "start": Object { - "column": 23, + "column": 26, "line": 1, }, }, "range": Array [ - 23, - 24, + 26, + 27, ], "type": "Punctuator", - "value": ")", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 32, + "column": 30, "line": 1, }, "start": Object { - "column": 25, + "column": 28, "line": 1, }, }, "range": Array [ - 25, - 32, + 28, + 30, ], - "type": "Identifier", - "value": "process", + "type": "Keyword", + "value": "in", }, Object { "loc": Object { "end": Object { - "column": 33, + "column": 36, "line": 1, }, "start": Object { - "column": 32, + "column": 31, "line": 1, }, }, "range": Array [ - 32, - 33, + 31, + 36, ], - "type": "Punctuator", - "value": "(", + "type": "Identifier", + "value": "array", }, Object { "loc": Object { "end": Object { - "column": 34, + "column": 37, "line": 1, }, "start": Object { - "column": 33, + "column": 36, "line": 1, }, }, "range": Array [ - 33, - 34, + 36, + 37, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 35, + "column": 39, "line": 1, }, "start": Object { - "column": 34, + "column": 38, "line": 1, }, }, "range": Array [ - 34, - 35, + 38, + 39, ], "type": "Punctuator", - "value": ")", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 36, - "line": 1, + "column": 1, + "line": 2, }, "start": Object { - "column": 35, - "line": 1, + "column": 0, + "line": 2, }, }, "range": Array [ - 35, - 36, + 40, + 41, ], "type": "Punctuator", - "value": ";", + "value": "}", }, ], "type": "Program", } `; -exports[`javascript fixtures/forIn/for-in-with-bare-assigment.src 1`] = ` +exports[`javascript fixtures/forIn/for-in-with-var.src 1`] = ` Object { "body": Array [ Object { "body": Object { + "expression": Object { + "arguments": Array [ + Object { + "loc": Object { + "end": Object { + "column": 29, + "line": 1, + }, + "start": Object { + "column": 28, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 28, + 29, + ], + "type": "Identifier", + }, + ], + "callee": Object { + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "name": "process", + "range": Array [ + 20, + 27, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 30, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "range": Array [ + 20, + 30, + ], + "type": "CallExpression", + }, "loc": Object { "end": Object { - "column": 19, + "column": 31, "line": 1, }, "start": Object { - "column": 18, + "column": 20, "line": 1, }, }, "range": Array [ - 18, - 19, + 20, + 31, ], - "type": "EmptyStatement", + "type": "ExpressionStatement", }, "left": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 9, + 10, + ], + "type": "Identifier", }, - "start": Object { - "column": 5, - "line": 1, + "init": null, + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, }, + "range": Array [ + 9, + 10, + ], + "type": "VariableDeclarator", }, - "name": "x", - "range": Array [ - 5, - 6, - ], - "type": "Identifier", - }, + ], + "kind": "var", "loc": Object { "end": Object { "column": 10, @@ -86123,35 +94020,15 @@ Object { "line": 1, }, }, - "operator": "=", "range": Array [ 5, 10, ], - "right": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 10, - ], - "raw": "0", - "type": "Literal", - "value": 0, - }, - "type": "AssignmentExpression", + "type": "VariableDeclaration", }, "loc": Object { "end": Object { - "column": 19, + "column": 31, "line": 1, }, "start": Object { @@ -86161,12 +94038,12 @@ Object { }, "range": Array [ 0, - 19, + 31, ], "right": Object { "loc": Object { "end": Object { - "column": 17, + "column": 18, "line": 1, }, "start": Object { @@ -86174,10 +94051,10 @@ Object { "line": 1, }, }, - "name": "arr", + "name": "list", "range": Array [ 14, - 17, + 18, ], "type": "Identifier", }, @@ -86196,7 +94073,7 @@ Object { }, "range": Array [ 0, - 20, + 32, ], "sourceType": "script", "tokens": Array [ @@ -86239,7 +94116,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 6, + "column": 8, "line": 1, }, "start": Object { @@ -86249,7 +94126,25 @@ Object { }, "range": Array [ 5, - 6, + 8, + ], + "type": "Keyword", + "value": "var", + }, + Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 10, ], "type": "Identifier", "value": "x", @@ -86257,89 +94152,125 @@ Object { Object { "loc": Object { "end": Object { - "column": 8, + "column": 13, "line": 1, }, "start": Object { - "column": 7, + "column": 11, "line": 1, }, }, "range": Array [ - 7, - 8, + 11, + 13, + ], + "type": "Keyword", + "value": "in", + }, + Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "range": Array [ + 14, + 18, + ], + "type": "Identifier", + "value": "list", + }, + Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "range": Array [ + 18, + 19, ], "type": "Punctuator", - "value": "=", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 27, "line": 1, }, "start": Object { - "column": 9, + "column": 20, "line": 1, }, }, "range": Array [ - 9, - 10, + 20, + 27, ], - "type": "Numeric", - "value": "0", + "type": "Identifier", + "value": "process", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 28, "line": 1, }, "start": Object { - "column": 11, + "column": 27, "line": 1, }, }, "range": Array [ - 11, - 13, + 27, + 28, ], - "type": "Keyword", - "value": "in", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 29, "line": 1, }, "start": Object { - "column": 14, + "column": 28, "line": 1, }, }, "range": Array [ - 14, - 17, + 28, + 29, ], "type": "Identifier", - "value": "arr", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 30, "line": 1, }, "start": Object { - "column": 17, + "column": 29, "line": 1, }, }, "range": Array [ - 17, - 18, + 29, + 30, ], "type": "Punctuator", "value": ")", @@ -86347,17 +94278,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 19, + "column": 31, "line": 1, }, "start": Object { - "column": 18, + "column": 30, "line": 1, }, }, "range": Array [ - 18, - 19, + 30, + 31, ], "type": "Punctuator", "value": ";", @@ -86367,79 +94298,61 @@ Object { } `; -exports[`javascript fixtures/forIn/for-in-with-const.src 1`] = ` +exports[`javascript fixtures/forOf/for-of-array.src 1`] = ` Object { "body": Array [ Object { + "await": false, "body": Object { "expression": Object { - "arguments": Array [ - Object { - "loc": Object { - "end": Object { - "column": 31, - "line": 1, - }, - "start": Object { - "column": 30, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 30, - 31, - ], - "type": "Identifier", - }, - ], + "arguments": Array [], "callee": Object { "loc": Object { "end": Object { - "column": 29, - "line": 1, + "column": 15, + "line": 2, }, "start": Object { - "column": 22, - "line": 1, + "column": 4, + "line": 2, }, }, - "name": "process", + "name": "doSomething", "range": Array [ 22, - 29, + 33, ], "type": "Identifier", }, "loc": Object { "end": Object { - "column": 32, - "line": 1, + "column": 17, + "line": 2, }, "start": Object { - "column": 22, - "line": 1, + "column": 4, + "line": 2, }, }, "range": Array [ 22, - 32, + 35, ], "type": "CallExpression", }, "loc": Object { "end": Object { - "column": 33, - "line": 1, + "column": 18, + "line": 2, }, "start": Object { - "column": 22, - "line": 1, + "column": 4, + "line": 2, }, }, "range": Array [ 22, - 33, + 36, ], "type": "ExpressionStatement", }, @@ -86449,43 +94362,43 @@ Object { "id": Object { "loc": Object { "end": Object { - "column": 12, + "column": 10, "line": 1, }, "start": Object { - "column": 11, + "column": 9, "line": 1, }, }, "name": "x", "range": Array [ - 11, - 12, + 9, + 10, ], "type": "Identifier", }, "init": null, "loc": Object { "end": Object { - "column": 12, + "column": 10, "line": 1, }, "start": Object { - "column": 11, + "column": 9, "line": 1, }, }, "range": Array [ - 11, - 12, + 9, + 10, ], "type": "VariableDeclarator", }, ], - "kind": "const", + "kind": "let", "loc": Object { "end": Object { - "column": 12, + "column": 10, "line": 1, }, "start": Object { @@ -86495,14 +94408,14 @@ Object { }, "range": Array [ 5, - 12, + 10, ], "type": "VariableDeclaration", }, "loc": Object { "end": Object { - "column": 33, - "line": 1, + "column": 18, + "line": 2, }, "start": Object { "column": 0, @@ -86511,33 +94424,33 @@ Object { }, "range": Array [ 0, - 33, + 36, ], "right": Object { + "elements": Array [], "loc": Object { "end": Object { - "column": 20, + "column": 16, "line": 1, }, "start": Object { - "column": 16, + "column": 14, "line": 1, }, }, - "name": "list", "range": Array [ + 14, 16, - 20, ], - "type": "Identifier", + "type": "ArrayPattern", }, - "type": "ForInStatement", + "type": "ForOfStatement", }, ], "loc": Object { "end": Object { "column": 0, - "line": 2, + "line": 3, }, "start": Object { "column": 0, @@ -86546,7 +94459,7 @@ Object { }, "range": Array [ 0, - 34, + 37, ], "sourceType": "script", "tokens": Array [ @@ -86589,7 +94502,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 10, + "column": 8, "line": 1, }, "start": Object { @@ -86599,25 +94512,25 @@ Object { }, "range": Array [ 5, - 10, + 8, ], "type": "Keyword", - "value": "const", + "value": "let", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 10, "line": 1, }, "start": Object { - "column": 11, + "column": 9, "line": 1, }, }, "range": Array [ - 11, - 12, + 9, + 10, ], "type": "Identifier", "value": "x", @@ -86625,125 +94538,125 @@ Object { Object { "loc": Object { "end": Object { - "column": 15, + "column": 13, "line": 1, }, "start": Object { - "column": 13, + "column": 11, "line": 1, }, }, "range": Array [ + 11, 13, - 15, ], - "type": "Keyword", - "value": "in", + "type": "Identifier", + "value": "of", }, Object { "loc": Object { "end": Object { - "column": 20, + "column": 15, "line": 1, }, "start": Object { - "column": 16, + "column": 14, "line": 1, }, }, "range": Array [ - 16, - 20, + 14, + 15, ], - "type": "Identifier", - "value": "list", + "type": "Punctuator", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 21, + "column": 16, "line": 1, }, "start": Object { - "column": 20, + "column": 15, "line": 1, }, }, "range": Array [ - 20, - 21, + 15, + 16, ], "type": "Punctuator", - "value": ")", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 29, + "column": 17, "line": 1, }, "start": Object { - "column": 22, + "column": 16, "line": 1, }, }, "range": Array [ - 22, - 29, + 16, + 17, ], - "type": "Identifier", - "value": "process", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 30, - "line": 1, + "column": 15, + "line": 2, }, "start": Object { - "column": 29, - "line": 1, + "column": 4, + "line": 2, }, }, "range": Array [ - 29, - 30, + 22, + 33, ], - "type": "Punctuator", - "value": "(", + "type": "Identifier", + "value": "doSomething", }, Object { "loc": Object { "end": Object { - "column": 31, - "line": 1, + "column": 16, + "line": 2, }, "start": Object { - "column": 30, - "line": 1, + "column": 15, + "line": 2, }, }, "range": Array [ - 30, - 31, + 33, + 34, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 32, - "line": 1, + "column": 17, + "line": 2, }, "start": Object { - "column": 31, - "line": 1, + "column": 16, + "line": 2, }, }, "range": Array [ - 31, - 32, + 34, + 35, ], "type": "Punctuator", "value": ")", @@ -86751,17 +94664,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 33, - "line": 1, + "column": 18, + "line": 2, }, "start": Object { - "column": 32, - "line": 1, + "column": 17, + "line": 2, }, }, "range": Array [ - 32, - 33, + 35, + 36, ], "type": "Punctuator", "value": ";", @@ -86771,105 +94684,91 @@ Object { } `; -exports[`javascript fixtures/forIn/for-in-with-milti-asigment.src 1`] = ` +exports[`javascript fixtures/forOf/for-of-destruction.src 1`] = ` Object { "body": Array [ Object { + "await": false, "body": Object { + "body": Array [], "loc": Object { "end": Object { - "column": 25, + "column": 33, "line": 1, }, "start": Object { - "column": 24, + "column": 31, "line": 1, }, }, "range": Array [ - 24, - 25, + 31, + 33, ], - "type": "EmptyStatement", + "type": "BlockStatement", }, "left": Object { "declarations": Array [ Object { "id": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 9, - 10, - ], - "type": "Identifier", - }, - "init": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, + "elements": Array [ + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, }, - "start": Object { - "column": 13, - "line": 1, + "name": "name", + "range": Array [ + 10, + 14, + ], + "type": "Identifier", + }, + Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, }, + "name": "value", + "range": Array [ + 16, + 21, + ], + "type": "Identifier", }, - "name": "y", - "range": Array [ - 13, - 14, - ], - "type": "Identifier", - }, + ], "loc": Object { "end": Object { - "column": 18, + "column": 22, "line": 1, }, "start": Object { - "column": 13, + "column": 9, "line": 1, }, }, - "operator": "=", "range": Array [ - 13, - 18, + 9, + 22, ], - "right": Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 17, - "line": 1, - }, - }, - "name": "z", - "range": Array [ - 17, - 18, - ], - "type": "Identifier", - }, - "type": "AssignmentExpression", + "type": "ArrayPattern", }, + "init": null, "loc": Object { "end": Object { - "column": 18, + "column": 22, "line": 1, }, "start": Object { @@ -86879,7 +94778,7 @@ Object { }, "range": Array [ 9, - 18, + 22, ], "type": "VariableDeclarator", }, @@ -86887,7 +94786,7 @@ Object { "kind": "var", "loc": Object { "end": Object { - "column": 18, + "column": 22, "line": 1, }, "start": Object { @@ -86897,13 +94796,13 @@ Object { }, "range": Array [ 5, - 18, + 22, ], "type": "VariableDeclaration", }, "loc": Object { "end": Object { - "column": 25, + "column": 33, "line": 1, }, "start": Object { @@ -86913,27 +94812,27 @@ Object { }, "range": Array [ 0, - 25, + 33, ], "right": Object { "loc": Object { "end": Object { - "column": 23, + "column": 29, "line": 1, }, "start": Object { - "column": 22, + "column": 26, "line": 1, }, }, - "name": "q", + "name": "obj", "range": Array [ - 22, - 23, + 26, + 29, ], "type": "Identifier", }, - "type": "ForInStatement", + "type": "ForOfStatement", }, ], "loc": Object { @@ -86948,7 +94847,7 @@ Object { }, "range": Array [ 0, - 26, + 34, ], "sourceType": "script", "tokens": Array [ @@ -87021,233 +94920,198 @@ Object { 9, 10, ], + "type": "Punctuator", + "value": "[", + }, + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "range": Array [ + 10, + 14, + ], "type": "Identifier", - "value": "x", + "value": "name", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 15, "line": 1, }, "start": Object { - "column": 11, + "column": 14, "line": 1, }, }, "range": Array [ - 11, - 12, + 14, + 15, ], "type": "Punctuator", - "value": "=", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 21, "line": 1, }, "start": Object { - "column": 13, + "column": 16, "line": 1, }, }, "range": Array [ - 13, - 14, + 16, + 21, ], "type": "Identifier", - "value": "y", + "value": "value", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 22, "line": 1, }, "start": Object { - "column": 15, + "column": 21, "line": 1, }, }, "range": Array [ - 15, - 16, + 21, + 22, ], "type": "Punctuator", - "value": "=", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 25, "line": 1, }, "start": Object { - "column": 17, + "column": 23, "line": 1, }, }, "range": Array [ - 17, - 18, + 23, + 25, ], "type": "Identifier", - "value": "z", + "value": "of", }, Object { "loc": Object { "end": Object { - "column": 21, + "column": 29, "line": 1, }, "start": Object { - "column": 19, + "column": 26, "line": 1, }, }, "range": Array [ - 19, - 21, + 26, + 29, ], - "type": "Keyword", - "value": "in", + "type": "Identifier", + "value": "obj", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 30, "line": 1, }, "start": Object { - "column": 22, + "column": 29, "line": 1, }, }, "range": Array [ - 22, - 23, + 29, + 30, ], - "type": "Identifier", - "value": "q", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 24, + "column": 32, "line": 1, }, "start": Object { - "column": 23, + "column": 31, "line": 1, }, }, "range": Array [ - 23, - 24, + 31, + 32, ], "type": "Punctuator", - "value": ")", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 25, + "column": 33, "line": 1, }, "start": Object { - "column": 24, + "column": 32, "line": 1, }, }, "range": Array [ - 24, - 25, + 32, + 33, ], "type": "Punctuator", - "value": ";", + "value": "}", }, ], "type": "Program", } `; -exports[`javascript fixtures/forIn/for-in-with-var.src 1`] = ` +exports[`javascript fixtures/forOf/for-of-destruction-object.src 1`] = ` Object { "body": Array [ Object { + "await": false, "body": Object { - "expression": Object { - "arguments": Array [ - Object { - "loc": Object { - "end": Object { - "column": 29, - "line": 1, - }, - "start": Object { - "column": 28, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 28, - 29, - ], - "type": "Identifier", - }, - ], - "callee": Object { - "loc": Object { - "end": Object { - "column": 27, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, - }, - "name": "process", - "range": Array [ - 20, - 27, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 30, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, - }, - "range": Array [ - 20, - 30, - ], - "type": "CallExpression", - }, + "body": Array [], "loc": Object { "end": Object { - "column": 31, + "column": 33, "line": 1, }, "start": Object { - "column": 20, + "column": 31, "line": 1, }, }, "range": Array [ - 20, 31, + 33, ], - "type": "ExpressionStatement", + "type": "BlockStatement", }, "left": Object { "declarations": Array [ @@ -87255,7 +95119,7 @@ Object { "id": Object { "loc": Object { "end": Object { - "column": 10, + "column": 22, "line": 1, }, "start": Object { @@ -87263,17 +95127,132 @@ Object { "line": 1, }, }, - "name": "x", + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "name": "name", + "range": Array [ + 10, + 14, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 10, + 14, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "name": "name", + "range": Array [ + 10, + 14, + ], + "type": "Identifier", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "name": "value", + "range": Array [ + 16, + 21, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 16, + 21, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "name": "value", + "range": Array [ + 16, + 21, + ], + "type": "Identifier", + }, + }, + ], "range": Array [ 9, - 10, + 22, ], - "type": "Identifier", + "type": "ObjectPattern", }, "init": null, "loc": Object { "end": Object { - "column": 10, + "column": 22, "line": 1, }, "start": Object { @@ -87283,7 +95262,7 @@ Object { }, "range": Array [ 9, - 10, + 22, ], "type": "VariableDeclarator", }, @@ -87291,7 +95270,7 @@ Object { "kind": "var", "loc": Object { "end": Object { - "column": 10, + "column": 22, "line": 1, }, "start": Object { @@ -87301,13 +95280,13 @@ Object { }, "range": Array [ 5, - 10, + 22, ], "type": "VariableDeclaration", }, "loc": Object { "end": Object { - "column": 31, + "column": 33, "line": 1, }, "start": Object { @@ -87317,27 +95296,27 @@ Object { }, "range": Array [ 0, - 31, + 33, ], "right": Object { "loc": Object { "end": Object { - "column": 18, + "column": 29, "line": 1, }, "start": Object { - "column": 14, + "column": 26, "line": 1, }, }, - "name": "list", + "name": "obj", "range": Array [ - 14, - 18, + 26, + 29, ], "type": "Identifier", }, - "type": "ForInStatement", + "type": "ForOfStatement", }, ], "loc": Object { @@ -87352,7 +95331,7 @@ Object { }, "range": Array [ 0, - 32, + 34, ], "sourceType": "script", "tokens": Array [ @@ -87425,31 +95404,31 @@ Object { 9, 10, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 14, "line": 1, }, "start": Object { - "column": 11, + "column": 10, "line": 1, }, }, "range": Array [ - 11, - 13, + 10, + 14, ], - "type": "Keyword", - "value": "in", + "type": "Identifier", + "value": "name", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 15, "line": 1, }, "start": Object { @@ -87459,125 +95438,143 @@ Object { }, "range": Array [ 14, - 18, + 15, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "range": Array [ + 16, + 21, ], "type": "Identifier", - "value": "list", + "value": "value", }, Object { "loc": Object { "end": Object { - "column": 19, + "column": 22, "line": 1, }, "start": Object { - "column": 18, + "column": 21, "line": 1, }, }, "range": Array [ - 18, - 19, + 21, + 22, ], "type": "Punctuator", - "value": ")", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 27, + "column": 25, "line": 1, }, "start": Object { - "column": 20, + "column": 23, "line": 1, }, }, "range": Array [ - 20, - 27, + 23, + 25, ], "type": "Identifier", - "value": "process", + "value": "of", }, Object { "loc": Object { "end": Object { - "column": 28, + "column": 29, "line": 1, }, "start": Object { - "column": 27, + "column": 26, "line": 1, }, }, "range": Array [ - 27, - 28, + 26, + 29, ], - "type": "Punctuator", - "value": "(", + "type": "Identifier", + "value": "obj", }, Object { "loc": Object { "end": Object { - "column": 29, + "column": 30, "line": 1, }, "start": Object { - "column": 28, + "column": 29, "line": 1, }, }, "range": Array [ - 28, 29, + 30, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 30, + "column": 32, "line": 1, }, "start": Object { - "column": 29, + "column": 31, "line": 1, }, }, "range": Array [ - 29, - 30, + 31, + 32, ], "type": "Punctuator", - "value": ")", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 31, + "column": 33, "line": 1, }, "start": Object { - "column": 30, + "column": 32, "line": 1, }, }, "range": Array [ - 30, - 31, + 32, + 33, ], "type": "Punctuator", - "value": ";", + "value": "}", }, ], "type": "Program", } `; -exports[`javascript fixtures/forOf/for-of-array.src 1`] = ` +exports[`javascript fixtures/forOf/for-of-object.src 1`] = ` Object { "body": Array [ Object { @@ -87706,7 +95703,6 @@ Object { 36, ], "right": Object { - "elements": Array [], "loc": Object { "end": Object { "column": 16, @@ -87717,11 +95713,12 @@ Object { "line": 1, }, }, + "properties": Array [], "range": Array [ 14, 16, ], - "type": "ArrayPattern", + "type": "ObjectExpression", }, "type": "ForOfStatement", }, @@ -87848,7 +95845,7 @@ Object { 15, ], "type": "Punctuator", - "value": "[", + "value": "{", }, Object { "loc": Object { @@ -87866,7 +95863,7 @@ Object { 16, ], "type": "Punctuator", - "value": "]", + "value": "}", }, Object { "loc": Object { @@ -87963,91 +95960,220 @@ Object { } `; -exports[`javascript fixtures/forOf/for-of-destruction.src 1`] = ` +exports[`javascript fixtures/forOf/for-of-with-function-initializer.src 1`] = ` Object { "body": Array [ Object { "await": false, "body": Object { - "body": Array [], + "expression": Object { + "arguments": Array [ + Object { + "loc": Object { + "end": Object { + "column": 62, + "line": 1, + }, + "start": Object { + "column": 61, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 61, + 62, + ], + "type": "Identifier", + }, + ], + "callee": Object { + "loc": Object { + "end": Object { + "column": 60, + "line": 1, + }, + "start": Object { + "column": 53, + "line": 1, + }, + }, + "name": "process", + "range": Array [ + 53, + 60, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 63, + "line": 1, + }, + "start": Object { + "column": 53, + "line": 1, + }, + }, + "range": Array [ + 53, + 63, + ], + "type": "CallExpression", + }, "loc": Object { "end": Object { - "column": 33, + "column": 64, "line": 1, }, "start": Object { - "column": 31, + "column": 53, "line": 1, }, }, "range": Array [ - 31, - 33, + 53, + 64, ], - "type": "BlockStatement", + "type": "ExpressionStatement", }, "left": Object { "declarations": Array [ Object { "id": Object { - "elements": Array [ - Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "name": "name", - "range": Array [ - 10, - 14, - ], - "type": "Identifier", + "loc": Object { + "end": Object { + "column": 10, + "line": 1, }, - Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "name": "i", + "range": Array [ + 9, + 10, + ], + "type": "Identifier", + }, + "init": Object { + "async": false, + "body": Object { + "body": Array [ + Object { + "argument": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 35, + "line": 1, + }, + "start": Object { + "column": 33, + "line": 1, + }, + }, + "range": Array [ + 33, + 35, + ], + "raw": "10", + "type": "Literal", + "value": 10, + }, + "loc": Object { + "end": Object { + "column": 41, + "line": 1, + }, + "start": Object { + "column": 33, + "line": 1, + }, + }, + "operator": "in", + "range": Array [ + 33, + 41, + ], + "right": Object { + "elements": Array [], + "loc": Object { + "end": Object { + "column": 41, + "line": 1, + }, + "start": Object { + "column": 39, + "line": 1, + }, + }, + "range": Array [ + 39, + 41, + ], + "type": "ArrayExpression", + }, + "type": "BinaryExpression", }, - "start": Object { - "column": 16, - "line": 1, + "loc": Object { + "end": Object { + "column": 41, + "line": 1, + }, + "start": Object { + "column": 26, + "line": 1, + }, }, + "range": Array [ + 26, + 41, + ], + "type": "ReturnStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 43, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, }, - "name": "value", - "range": Array [ - 16, - 21, - ], - "type": "Identifier", }, - ], + "range": Array [ + 24, + 43, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, "loc": Object { "end": Object { - "column": 22, + "column": 43, "line": 1, }, "start": Object { - "column": 9, + "column": 13, "line": 1, }, }, + "params": Array [], "range": Array [ - 9, - 22, + 13, + 43, ], - "type": "ArrayPattern", + "type": "FunctionExpression", }, - "init": null, "loc": Object { "end": Object { - "column": 22, + "column": 43, "line": 1, }, "start": Object { @@ -88057,7 +96183,7 @@ Object { }, "range": Array [ 9, - 22, + 43, ], "type": "VariableDeclarator", }, @@ -88065,7 +96191,7 @@ Object { "kind": "var", "loc": Object { "end": Object { - "column": 22, + "column": 43, "line": 1, }, "start": Object { @@ -88075,13 +96201,13 @@ Object { }, "range": Array [ 5, - 22, + 43, ], "type": "VariableDeclaration", }, "loc": Object { "end": Object { - "column": 33, + "column": 64, "line": 1, }, "start": Object { @@ -88091,23 +96217,23 @@ Object { }, "range": Array [ 0, - 33, + 64, ], "right": Object { "loc": Object { "end": Object { - "column": 29, + "column": 51, "line": 1, }, "start": Object { - "column": 26, + "column": 47, "line": 1, }, }, - "name": "obj", + "name": "list", "range": Array [ - 26, - 29, + 47, + 51, ], "type": "Identifier", }, @@ -88126,7 +96252,7 @@ Object { }, "range": Array [ 0, - 34, + 65, ], "sourceType": "script", "tokens": Array [ @@ -88199,177 +96325,357 @@ Object { 9, 10, ], + "type": "Identifier", + "value": "i", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 12, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 21, + ], + "type": "Keyword", + "value": "function", + }, + Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 21, + "line": 1, + }, + }, + "range": Array [ + 21, + 22, + ], + "type": "Punctuator", + "value": "(", + }, + Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "range": Array [ + 22, + 23, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, + }, + }, + "range": Array [ + 24, + 25, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 32, + "line": 1, + }, + "start": Object { + "column": 26, + "line": 1, + }, + }, + "range": Array [ + 26, + 32, + ], + "type": "Keyword", + "value": "return", + }, + Object { + "loc": Object { + "end": Object { + "column": 35, + "line": 1, + }, + "start": Object { + "column": 33, + "line": 1, + }, + }, + "range": Array [ + 33, + 35, + ], + "type": "Numeric", + "value": "10", + }, + Object { + "loc": Object { + "end": Object { + "column": 38, + "line": 1, + }, + "start": Object { + "column": 36, + "line": 1, + }, + }, + "range": Array [ + 36, + 38, + ], + "type": "Keyword", + "value": "in", + }, + Object { + "loc": Object { + "end": Object { + "column": 40, + "line": 1, + }, + "start": Object { + "column": 39, + "line": 1, + }, + }, + "range": Array [ + 39, + 40, + ], "type": "Punctuator", "value": "[", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 41, "line": 1, }, "start": Object { - "column": 10, + "column": 40, "line": 1, }, }, "range": Array [ - 10, - 14, + 40, + 41, ], - "type": "Identifier", - "value": "name", + "type": "Punctuator", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 43, "line": 1, }, "start": Object { - "column": 14, + "column": 42, "line": 1, }, }, "range": Array [ - 14, - 15, + 42, + 43, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 46, + "line": 1, + }, + "start": Object { + "column": 44, + "line": 1, + }, + }, + "range": Array [ + 44, + 46, ], - "type": "Punctuator", - "value": ",", + "type": "Identifier", + "value": "of", }, Object { "loc": Object { "end": Object { - "column": 21, + "column": 51, "line": 1, }, "start": Object { - "column": 16, + "column": 47, "line": 1, }, }, "range": Array [ - 16, - 21, + 47, + 51, ], "type": "Identifier", - "value": "value", + "value": "list", }, Object { "loc": Object { "end": Object { - "column": 22, + "column": 52, "line": 1, }, "start": Object { - "column": 21, + "column": 51, "line": 1, }, }, "range": Array [ - 21, - 22, + 51, + 52, ], "type": "Punctuator", - "value": "]", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 25, + "column": 60, "line": 1, }, "start": Object { - "column": 23, + "column": 53, "line": 1, }, }, "range": Array [ - 23, - 25, + 53, + 60, ], "type": "Identifier", - "value": "of", + "value": "process", }, Object { "loc": Object { "end": Object { - "column": 29, + "column": 61, "line": 1, }, "start": Object { - "column": 26, + "column": 60, "line": 1, }, }, "range": Array [ - 26, - 29, + 60, + 61, ], - "type": "Identifier", - "value": "obj", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 30, + "column": 62, "line": 1, }, "start": Object { - "column": 29, + "column": 61, "line": 1, }, }, "range": Array [ - 29, - 30, + 61, + 62, ], - "type": "Punctuator", - "value": ")", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 32, + "column": 63, "line": 1, }, "start": Object { - "column": 31, + "column": 62, "line": 1, }, }, "range": Array [ - 31, - 32, + 62, + 63, ], "type": "Punctuator", - "value": "{", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 33, + "column": 64, "line": 1, }, "start": Object { - "column": 32, + "column": 63, "line": 1, }, }, "range": Array [ - 32, - 33, + 63, + 64, ], "type": "Punctuator", - "value": "}", + "value": ";", }, ], "type": "Program", } `; -exports[`javascript fixtures/forOf/for-of-destruction-object.src 1`] = ` +exports[`javascript fixtures/forOf/for-of-with-rest.src 1`] = ` Object { "body": Array [ Object { @@ -88378,195 +96684,135 @@ Object { "body": Array [], "loc": Object { "end": Object { - "column": 33, - "line": 1, + "column": 1, + "line": 2, }, "start": Object { - "column": 31, + "column": 38, "line": 1, }, }, "range": Array [ - 31, - 33, + 38, + 41, ], "type": "BlockStatement", }, "left": Object { - "declarations": Array [ + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "properties": Array [ Object { - "id": Object { + "computed": false, + "key": Object { "loc": Object { "end": Object { - "column": 22, + "column": 8, "line": 1, }, "start": Object { - "column": 9, + "column": 7, "line": 1, }, }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "name": "name", - "range": Array [ - 10, - 14, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 10, - 14, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "name": "name", - "range": Array [ - 10, - 14, - ], - "type": "Identifier", - }, + "name": "x", + "range": Array [ + 7, + 8, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 7, + 12, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "name": "value", - "range": Array [ - 16, - 21, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 16, - 21, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "name": "value", - "range": Array [ - 16, - 21, - ], - "type": "Identifier", - }, + "start": Object { + "column": 10, + "line": 1, }, + }, + "name": "xx", + "range": Array [ + 10, + 12, ], + "type": "Identifier", + }, + }, + Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "name": "rrestOff", "range": Array [ - 9, - 22, + 17, + 25, ], - "type": "ObjectPattern", + "type": "Identifier", }, - "init": null, "loc": Object { "end": Object { - "column": 22, + "column": 25, "line": 1, }, "start": Object { - "column": 9, + "column": 14, "line": 1, }, }, "range": Array [ - 9, - 22, + 14, + 25, ], - "type": "VariableDeclarator", + "type": "SpreadElement", }, ], - "kind": "var", - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, "range": Array [ 5, - 22, + 27, ], - "type": "VariableDeclaration", + "type": "ObjectExpression", }, "loc": Object { "end": Object { - "column": 33, - "line": 1, + "column": 1, + "line": 2, }, "start": Object { "column": 0, @@ -88575,23 +96821,23 @@ Object { }, "range": Array [ 0, - 33, + 41, ], "right": Object { "loc": Object { "end": Object { - "column": 29, + "column": 36, "line": 1, }, "start": Object { - "column": 26, + "column": 31, "line": 1, }, }, - "name": "obj", + "name": "array", "range": Array [ - 26, - 29, + 31, + 36, ], "type": "Identifier", }, @@ -88601,7 +96847,7 @@ Object { "loc": Object { "end": Object { "column": 0, - "line": 2, + "line": 3, }, "start": Object { "column": 0, @@ -88610,7 +96856,7 @@ Object { }, "range": Array [ 0, - 34, + 42, ], "sourceType": "script", "tokens": Array [ @@ -88653,7 +96899,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 8, + "column": 6, "line": 1, }, "start": Object { @@ -88663,33 +96909,51 @@ Object { }, "range": Array [ 5, - 8, + 6, ], - "type": "Keyword", - "value": "var", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 8, "line": 1, }, "start": Object { + "column": 7, + "line": 1, + }, + }, + "range": Array [ + 7, + 8, + ], + "type": "Identifier", + "value": "x", + }, + Object { + "loc": Object { + "end": Object { "column": 9, "line": 1, }, + "start": Object { + "column": 8, + "line": 1, + }, }, "range": Array [ + 8, 9, - 10, ], "type": "Punctuator", - "value": "{", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 12, "line": 1, }, "start": Object { @@ -88699,15 +96963,33 @@ Object { }, "range": Array [ 10, - 14, + 12, ], "type": "Identifier", - "value": "name", + "value": "xx", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 13, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "range": Array [ + 12, + 13, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 17, "line": 1, }, "start": Object { @@ -88717,43 +96999,43 @@ Object { }, "range": Array [ 14, - 15, + 17, ], "type": "Punctuator", - "value": ",", + "value": "...", }, Object { "loc": Object { "end": Object { - "column": 21, + "column": 25, "line": 1, }, "start": Object { - "column": 16, + "column": 17, "line": 1, }, }, "range": Array [ - 16, - 21, + 17, + 25, ], "type": "Identifier", - "value": "value", + "value": "rrestOff", }, Object { "loc": Object { "end": Object { - "column": 22, + "column": 27, "line": 1, }, "start": Object { - "column": 21, + "column": 26, "line": 1, }, }, "range": Array [ - 21, - 22, + 26, + 27, ], "type": "Punctuator", "value": "}", @@ -88761,17 +97043,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 25, + "column": 30, "line": 1, }, "start": Object { - "column": 23, + "column": 28, "line": 1, }, }, "range": Array [ - 23, - 25, + 28, + 30, ], "type": "Identifier", "value": "of", @@ -88779,35 +97061,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 29, + "column": 36, "line": 1, }, "start": Object { - "column": 26, + "column": 31, "line": 1, }, }, "range": Array [ - 26, - 29, + 31, + 36, ], "type": "Identifier", - "value": "obj", + "value": "array", }, Object { "loc": Object { "end": Object { - "column": 30, + "column": 37, "line": 1, }, "start": Object { - "column": 29, + "column": 36, "line": 1, }, }, "range": Array [ - 29, - 30, + 36, + 37, ], "type": "Punctuator", "value": ")", @@ -88815,17 +97097,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 32, + "column": 39, "line": 1, }, "start": Object { - "column": 31, + "column": 38, "line": 1, }, }, "range": Array [ - 31, - 32, + 38, + 39, ], "type": "Punctuator", "value": "{", @@ -88833,17 +97115,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 33, - "line": 1, + "column": 1, + "line": 2, }, "start": Object { - "column": 32, - "line": 1, + "column": 0, + "line": 2, }, }, "range": Array [ - 32, - 33, + 40, + 41, ], "type": "Punctuator", "value": "}", @@ -88853,18 +97135,53 @@ Object { } `; -exports[`javascript fixtures/forOf/for-of-object.src 1`] = ` +exports[`javascript fixtures/forOf/for-of-with-var-and-braces.src 1`] = ` Object { "body": Array [ Object { "await": false, "body": Object { - "expression": Object { - "arguments": Array [], - "callee": Object { + "body": Array [ + Object { + "expression": Object { + "arguments": Array [], + "callee": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "name": "doSomething", + "range": Array [ + 25, + 36, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 17, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "range": Array [ + 25, + 38, + ], + "type": "CallExpression", + }, "loc": Object { "end": Object { - "column": 15, + "column": 18, "line": 2, }, "start": Object { @@ -88872,44 +97189,28 @@ Object { "line": 2, }, }, - "name": "doSomething", "range": Array [ - 22, - 33, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 17, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, + 25, + 39, + ], + "type": "ExpressionStatement", }, - "range": Array [ - 22, - 35, - ], - "type": "CallExpression", - }, + ], "loc": Object { "end": Object { - "column": 18, - "line": 2, + "column": 1, + "line": 3, }, "start": Object { - "column": 4, - "line": 2, + "column": 19, + "line": 1, }, }, "range": Array [ - 22, - 36, + 19, + 41, ], - "type": "ExpressionStatement", + "type": "BlockStatement", }, "left": Object { "declarations": Array [ @@ -88950,7 +97251,7 @@ Object { "type": "VariableDeclarator", }, ], - "kind": "let", + "kind": "var", "loc": Object { "end": Object { "column": 10, @@ -88969,8 +97270,8 @@ Object { }, "loc": Object { "end": Object { - "column": 18, - "line": 2, + "column": 1, + "line": 3, }, "start": Object { "column": 0, @@ -88979,12 +97280,12 @@ Object { }, "range": Array [ 0, - 36, + 41, ], "right": Object { "loc": Object { "end": Object { - "column": 16, + "column": 17, "line": 1, }, "start": Object { @@ -88992,12 +97293,12 @@ Object { "line": 1, }, }, - "properties": Array [], + "name": "foo", "range": Array [ 14, - 16, + 17, ], - "type": "ObjectExpression", + "type": "Identifier", }, "type": "ForOfStatement", }, @@ -89005,7 +97306,7 @@ Object { "loc": Object { "end": Object { "column": 0, - "line": 3, + "line": 4, }, "start": Object { "column": 0, @@ -89014,7 +97315,7 @@ Object { }, "range": Array [ 0, - 37, + 42, ], "sourceType": "script", "tokens": Array [ @@ -89070,7 +97371,7 @@ Object { 8, ], "type": "Keyword", - "value": "let", + "value": "var", }, Object { "loc": Object { @@ -89111,7 +97412,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 15, + "column": 17, "line": 1, }, "start": Object { @@ -89121,46 +97422,46 @@ Object { }, "range": Array [ 14, - 15, + 17, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 18, "line": 1, }, "start": Object { - "column": 15, + "column": 17, "line": 1, }, }, "range": Array [ - 15, - 16, + 17, + 18, ], "type": "Punctuator", - "value": "}", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 20, "line": 1, }, "start": Object { - "column": 16, + "column": 19, "line": 1, }, }, "range": Array [ - 16, - 17, + 19, + 20, ], "type": "Punctuator", - "value": ")", + "value": "{", }, Object { "loc": Object { @@ -89174,8 +97475,8 @@ Object { }, }, "range": Array [ - 22, - 33, + 25, + 36, ], "type": "Identifier", "value": "doSomething", @@ -89192,8 +97493,8 @@ Object { }, }, "range": Array [ - 33, - 34, + 36, + 37, ], "type": "Punctuator", "value": "(", @@ -89210,8 +97511,8 @@ Object { }, }, "range": Array [ - 34, - 35, + 37, + 38, ], "type": "Punctuator", "value": ")", @@ -89228,91 +97529,90 @@ Object { }, }, "range": Array [ - 35, - 36, + 38, + 39, ], "type": "Punctuator", "value": ";", }, + Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 3, + }, + "start": Object { + "column": 0, + "line": 3, + }, + }, + "range": Array [ + 40, + 41, + ], + "type": "Punctuator", + "value": "}", + }, ], "type": "Program", } `; -exports[`javascript fixtures/forOf/for-of-with-function-initializer.src 1`] = ` +exports[`javascript fixtures/forOf/for-of-with-var-and-no-braces.src 1`] = ` Object { "body": Array [ Object { "await": false, "body": Object { "expression": Object { - "arguments": Array [ - Object { - "loc": Object { - "end": Object { - "column": 62, - "line": 1, - }, - "start": Object { - "column": 61, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 61, - 62, - ], - "type": "Identifier", - }, - ], + "arguments": Array [], "callee": Object { "loc": Object { "end": Object { - "column": 60, - "line": 1, + "column": 15, + "line": 2, }, "start": Object { - "column": 53, - "line": 1, + "column": 4, + "line": 2, }, }, - "name": "process", + "name": "doSomething", "range": Array [ - 53, - 60, + 23, + 34, ], "type": "Identifier", }, "loc": Object { "end": Object { - "column": 63, - "line": 1, + "column": 17, + "line": 2, }, "start": Object { - "column": 53, - "line": 1, + "column": 4, + "line": 2, }, }, "range": Array [ - 53, - 63, + 23, + 36, ], "type": "CallExpression", }, "loc": Object { "end": Object { - "column": 64, - "line": 1, + "column": 18, + "line": 2, }, "start": Object { - "column": 53, - "line": 1, + "column": 4, + "line": 2, }, }, "range": Array [ - 53, - 64, + 23, + 37, ], "type": "ExpressionStatement", }, @@ -89330,129 +97630,17 @@ Object { "line": 1, }, }, - "name": "i", + "name": "x", "range": Array [ 9, 10, ], "type": "Identifier", }, - "init": Object { - "async": false, - "body": Object { - "body": Array [ - Object { - "argument": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 35, - "line": 1, - }, - "start": Object { - "column": 33, - "line": 1, - }, - }, - "range": Array [ - 33, - 35, - ], - "raw": "10", - "type": "Literal", - "value": 10, - }, - "loc": Object { - "end": Object { - "column": 41, - "line": 1, - }, - "start": Object { - "column": 33, - "line": 1, - }, - }, - "operator": "in", - "range": Array [ - 33, - 41, - ], - "right": Object { - "elements": Array [], - "loc": Object { - "end": Object { - "column": 41, - "line": 1, - }, - "start": Object { - "column": 39, - "line": 1, - }, - }, - "range": Array [ - 39, - 41, - ], - "type": "ArrayExpression", - }, - "type": "BinaryExpression", - }, - "loc": Object { - "end": Object { - "column": 41, - "line": 1, - }, - "start": Object { - "column": 26, - "line": 1, - }, - }, - "range": Array [ - 26, - 41, - ], - "type": "ReturnStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 43, - "line": 1, - }, - "start": Object { - "column": 24, - "line": 1, - }, - }, - "range": Array [ - 24, - 43, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 43, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "params": Array [], - "range": Array [ - 13, - 43, - ], - "type": "FunctionExpression", - }, + "init": null, "loc": Object { "end": Object { - "column": 43, + "column": 10, "line": 1, }, "start": Object { @@ -89462,7 +97650,7 @@ Object { }, "range": Array [ 9, - 43, + 10, ], "type": "VariableDeclarator", }, @@ -89470,7 +97658,7 @@ Object { "kind": "var", "loc": Object { "end": Object { - "column": 43, + "column": 10, "line": 1, }, "start": Object { @@ -89480,14 +97668,14 @@ Object { }, "range": Array [ 5, - 43, + 10, ], "type": "VariableDeclaration", }, "loc": Object { "end": Object { - "column": 64, - "line": 1, + "column": 18, + "line": 2, }, "start": Object { "column": 0, @@ -89496,23 +97684,23 @@ Object { }, "range": Array [ 0, - 64, + 37, ], "right": Object { "loc": Object { "end": Object { - "column": 51, + "column": 17, "line": 1, }, "start": Object { - "column": 47, + "column": 14, "line": 1, }, }, - "name": "list", + "name": "foo", "range": Array [ - 47, - 51, + 14, + 17, ], "type": "Identifier", }, @@ -89522,7 +97710,7 @@ Object { "loc": Object { "end": Object { "column": 0, - "line": 2, + "line": 3, }, "start": Object { "column": 0, @@ -89531,294 +97719,96 @@ Object { }, "range": Array [ 0, - 65, + 38, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 3, - ], - "type": "Keyword", - "value": "for", - }, - Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 5, - ], - "type": "Punctuator", - "value": "(", - }, - Object { - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 5, - "line": 1, - }, - }, - "range": Array [ - 5, - 8, - ], - "type": "Keyword", - "value": "var", - }, - Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 10, - ], - "type": "Identifier", - "value": "i", - }, - Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "range": Array [ - 11, - 12, - ], - "type": "Punctuator", - "value": "=", - }, - Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "range": Array [ - 13, - 21, - ], - "type": "Keyword", - "value": "function", - }, - Object { - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 21, - "line": 1, - }, - }, - "range": Array [ - 21, - 22, - ], - "type": "Punctuator", - "value": "(", - }, - Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 22, - "line": 1, - }, - }, - "range": Array [ - 22, - 23, - ], - "type": "Punctuator", - "value": ")", - }, - Object { - "loc": Object { - "end": Object { - "column": 25, - "line": 1, - }, - "start": Object { - "column": 24, - "line": 1, - }, - }, - "range": Array [ - 24, - 25, - ], - "type": "Punctuator", - "value": "{", - }, - Object { - "loc": Object { - "end": Object { - "column": 32, - "line": 1, - }, - "start": Object { - "column": 26, - "line": 1, - }, - }, - "range": Array [ - 26, - 32, - ], - "type": "Keyword", - "value": "return", - }, - Object { - "loc": Object { - "end": Object { - "column": 35, - "line": 1, - }, - "start": Object { - "column": 33, - "line": 1, - }, - }, - "range": Array [ - 33, - 35, - ], - "type": "Numeric", - "value": "10", - }, - Object { - "loc": Object { - "end": Object { - "column": 38, + "column": 3, "line": 1, }, "start": Object { - "column": 36, + "column": 0, "line": 1, }, }, "range": Array [ - 36, - 38, + 0, + 3, ], "type": "Keyword", - "value": "in", + "value": "for", }, Object { "loc": Object { "end": Object { - "column": 40, + "column": 5, "line": 1, }, "start": Object { - "column": 39, + "column": 4, "line": 1, }, }, "range": Array [ - 39, - 40, + 4, + 5, ], "type": "Punctuator", - "value": "[", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 41, + "column": 8, "line": 1, }, "start": Object { - "column": 40, + "column": 5, "line": 1, }, }, "range": Array [ - 40, - 41, + 5, + 8, ], - "type": "Punctuator", - "value": "]", + "type": "Keyword", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 43, + "column": 10, "line": 1, }, "start": Object { - "column": 42, + "column": 9, "line": 1, }, }, "range": Array [ - 42, - 43, + 9, + 10, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 46, + "column": 13, "line": 1, }, "start": Object { - "column": 44, + "column": 11, "line": 1, }, }, "range": Array [ - 44, - 46, + 11, + 13, ], "type": "Identifier", "value": "of", @@ -89826,35 +97816,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 51, + "column": 17, "line": 1, }, "start": Object { - "column": 47, + "column": 14, "line": 1, }, }, "range": Array [ - 47, - 51, + 14, + 17, ], "type": "Identifier", - "value": "list", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 52, + "column": 18, "line": 1, }, "start": Object { - "column": 51, + "column": 17, "line": 1, }, }, "range": Array [ - 51, - 52, + 17, + 18, ], "type": "Punctuator", "value": ")", @@ -89862,35 +97852,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 60, - "line": 1, + "column": 15, + "line": 2, }, "start": Object { - "column": 53, - "line": 1, + "column": 4, + "line": 2, }, }, "range": Array [ - 53, - 60, + 23, + 34, ], "type": "Identifier", - "value": "process", + "value": "doSomething", }, Object { "loc": Object { "end": Object { - "column": 61, - "line": 1, + "column": 16, + "line": 2, }, "start": Object { - "column": 60, - "line": 1, + "column": 15, + "line": 2, }, }, "range": Array [ - 60, - 61, + 34, + 35, ], "type": "Punctuator", "value": "(", @@ -89898,35 +97888,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 62, - "line": 1, - }, - "start": Object { - "column": 61, - "line": 1, - }, - }, - "range": Array [ - 61, - 62, - ], - "type": "Identifier", - "value": "x", - }, - Object { - "loc": Object { - "end": Object { - "column": 63, - "line": 1, + "column": 17, + "line": 2, }, "start": Object { - "column": 62, - "line": 1, + "column": 16, + "line": 2, }, }, "range": Array [ - 62, - 63, + 35, + 36, ], "type": "Punctuator", "value": ")", @@ -89934,17 +97906,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 64, - "line": 1, + "column": 18, + "line": 2, }, "start": Object { - "column": 63, - "line": 1, + "column": 17, + "line": 2, }, }, "range": Array [ - 63, - 64, + 36, + 37, ], "type": "Punctuator", "value": ";", @@ -89954,53 +97926,18 @@ Object { } `; -exports[`javascript fixtures/forOf/for-of-with-var-and-braces.src 1`] = ` +exports[`javascript fixtures/forOf/invalid-for-of-with-const-and-no-braces.src 1`] = ` Object { "body": Array [ Object { "await": false, "body": Object { - "body": Array [ - Object { - "expression": Object { - "arguments": Array [], - "callee": Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "name": "doSomething", - "range": Array [ - 25, - 36, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 17, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "range": Array [ - 25, - 38, - ], - "type": "CallExpression", - }, + "expression": Object { + "arguments": Array [], + "callee": Object { "loc": Object { "end": Object { - "column": 18, + "column": 15, "line": 2, }, "start": Object { @@ -90008,28 +97945,44 @@ Object { "line": 2, }, }, + "name": "doSomething", "range": Array [ 25, - 39, + 36, ], - "type": "ExpressionStatement", + "type": "Identifier", }, - ], + "loc": Object { + "end": Object { + "column": 17, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "range": Array [ + 25, + 38, + ], + "type": "CallExpression", + }, "loc": Object { "end": Object { - "column": 1, - "line": 3, + "column": 18, + "line": 2, }, "start": Object { - "column": 19, - "line": 1, + "column": 4, + "line": 2, }, }, "range": Array [ - 19, - 41, + 25, + 39, ], - "type": "BlockStatement", + "type": "ExpressionStatement", }, "left": Object { "declarations": Array [ @@ -90037,43 +97990,43 @@ Object { "id": Object { "loc": Object { "end": Object { - "column": 10, + "column": 12, "line": 1, }, "start": Object { - "column": 9, + "column": 11, "line": 1, }, }, "name": "x", "range": Array [ - 9, - 10, + 11, + 12, ], "type": "Identifier", }, "init": null, "loc": Object { "end": Object { - "column": 10, + "column": 12, "line": 1, }, "start": Object { - "column": 9, + "column": 11, "line": 1, }, }, "range": Array [ - 9, - 10, + 11, + 12, ], "type": "VariableDeclarator", }, ], - "kind": "var", + "kind": "const", "loc": Object { "end": Object { - "column": 10, + "column": 12, "line": 1, }, "start": Object { @@ -90083,14 +98036,14 @@ Object { }, "range": Array [ 5, - 10, + 12, ], "type": "VariableDeclaration", }, "loc": Object { "end": Object { - "column": 1, - "line": 3, + "column": 18, + "line": 2, }, "start": Object { "column": 0, @@ -90099,23 +98052,23 @@ Object { }, "range": Array [ 0, - 41, + 39, ], "right": Object { "loc": Object { "end": Object { - "column": 17, + "column": 19, "line": 1, }, "start": Object { - "column": 14, + "column": 16, "line": 1, }, }, "name": "foo", "range": Array [ - 14, - 17, + 16, + 19, ], "type": "Identifier", }, @@ -90125,7 +98078,7 @@ Object { "loc": Object { "end": Object { "column": 0, - "line": 4, + "line": 3, }, "start": Object { "column": 0, @@ -90134,7 +98087,7 @@ Object { }, "range": Array [ 0, - 42, + 40, ], "sourceType": "script", "tokens": Array [ @@ -90177,7 +98130,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 8, + "column": 10, "line": 1, }, "start": Object { @@ -90187,25 +98140,25 @@ Object { }, "range": Array [ 5, - 8, + 10, ], "type": "Keyword", - "value": "var", + "value": "const", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 12, "line": 1, }, "start": Object { - "column": 9, + "column": 11, "line": 1, }, }, "range": Array [ - 9, - 10, + 11, + 12, ], "type": "Identifier", "value": "x", @@ -90213,17 +98166,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 13, + "column": 15, "line": 1, }, "start": Object { - "column": 11, + "column": 13, "line": 1, }, }, "range": Array [ - 11, 13, + 15, ], "type": "Identifier", "value": "of", @@ -90231,39 +98184,21 @@ Object { Object { "loc": Object { "end": Object { - "column": 17, + "column": 19, "line": 1, }, "start": Object { - "column": 14, + "column": 16, "line": 1, }, }, "range": Array [ - 14, - 17, + 16, + 19, ], "type": "Identifier", "value": "foo", }, - Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 17, - "line": 1, - }, - }, - "range": Array [ - 17, - 18, - ], - "type": "Punctuator", - "value": ")", - }, Object { "loc": Object { "end": Object { @@ -90280,7 +98215,7 @@ Object { 20, ], "type": "Punctuator", - "value": "{", + "value": ")", }, Object { "loc": Object { @@ -90354,30 +98289,12 @@ Object { "type": "Punctuator", "value": ";", }, - Object { - "loc": Object { - "end": Object { - "column": 1, - "line": 3, - }, - "start": Object { - "column": 0, - "line": 3, - }, - }, - "range": Array [ - 40, - 41, - ], - "type": "Punctuator", - "value": "}", - }, ], "type": "Program", } `; -exports[`javascript fixtures/forOf/for-of-with-var-and-no-braces.src 1`] = ` +exports[`javascript fixtures/forOf/invalid-for-of-with-let-and-no-braces.src 1`] = ` Object { "body": Array [ Object { @@ -90474,7 +98391,7 @@ Object { "type": "VariableDeclarator", }, ], - "kind": "var", + "kind": "let", "loc": Object { "end": Object { "column": 10, @@ -90594,7 +98511,7 @@ Object { 8, ], "type": "Keyword", - "value": "var", + "value": "let", }, Object { "loc": Object { @@ -90745,159 +98662,125 @@ Object { } `; -exports[`javascript fixtures/forOf/invalid-for-of-with-const-and-no-braces.src 1`] = ` +exports[`javascript fixtures/generators/anonymous-generator.src 1`] = ` Object { "body": Array [ Object { - "await": false, - "body": Object { - "expression": Object { - "arguments": Array [], - "callee": Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, + "expression": Object { + "async": false, + "body": Object { + "body": Array [ + Object { + "expression": Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "name": "v", + "range": Array [ + 22, + 23, + ], + "type": "Identifier", + }, + "delegate": false, + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "range": Array [ + 16, + 23, + ], + "type": "YieldExpression", }, - }, - "name": "doSomething", - "range": Array [ - 25, - 36, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 17, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "range": Array [ - 25, - 38, - ], - "type": "CallExpression", - }, - "loc": Object { - "end": Object { - "column": 18, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "range": Array [ - 25, - 39, - ], - "type": "ExpressionStatement", - }, - "left": Object { - "declarations": Array [ - Object { - "id": Object { "loc": Object { "end": Object { - "column": 12, + "column": 23, "line": 1, }, "start": Object { - "column": 11, + "column": 16, "line": 1, }, }, - "name": "x", "range": Array [ - 11, - 12, + 16, + 23, ], - "type": "Identifier", + "type": "ExpressionStatement", }, - "init": null, - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, + ], + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, }, - "range": Array [ - 11, - 12, - ], - "type": "VariableDeclarator", }, - ], - "kind": "const", + "range": Array [ + 14, + 25, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": true, + "id": null, "loc": Object { "end": Object { - "column": 12, + "column": 25, "line": 1, }, "start": Object { - "column": 5, + "column": 1, "line": 1, }, }, + "params": Array [], "range": Array [ - 5, - 12, + 1, + 25, ], - "type": "VariableDeclaration", + "type": "FunctionExpression", }, "loc": Object { "end": Object { - "column": 18, - "line": 2, + "column": 27, + "line": 1, }, "start": Object { "column": 0, "line": 1, }, }, - "range": Array [ - 0, - 39, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "name": "foo", - "range": Array [ - 16, - 19, - ], - "type": "Identifier", - }, - "type": "ForOfStatement", + "range": Array [ + 0, + 27, + ], + "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 0, - "line": 3, + "column": 27, + "line": 1, }, "start": Object { "column": 0, @@ -90906,14 +98789,14 @@ Object { }, "range": Array [ 0, - 40, + 27, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, + "column": 1, "line": 1, }, "start": Object { @@ -90923,28 +98806,28 @@ Object { }, "range": Array [ 0, - 3, + 1, ], - "type": "Keyword", - "value": "for", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 9, "line": 1, }, "start": Object { - "column": 4, + "column": 1, "line": 1, }, }, "range": Array [ - 4, - 5, + 1, + 9, ], - "type": "Punctuator", - "value": "(", + "type": "Keyword", + "value": "function", }, Object { "loc": Object { @@ -90953,16 +98836,16 @@ Object { "line": 1, }, "start": Object { - "column": 5, + "column": 9, "line": 1, }, }, "range": Array [ - 5, + 9, 10, ], - "type": "Keyword", - "value": "const", + "type": "Punctuator", + "value": "*", }, Object { "loc": Object { @@ -90979,113 +98862,113 @@ Object { 11, 12, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 13, "line": 1, }, "start": Object { - "column": 13, + "column": 12, "line": 1, }, }, "range": Array [ + 12, 13, - 15, ], - "type": "Identifier", - "value": "of", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 19, + "column": 15, "line": 1, }, "start": Object { - "column": 16, + "column": 14, "line": 1, }, }, "range": Array [ - 16, - 19, + 14, + 15, ], - "type": "Identifier", - "value": "foo", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 20, + "column": 21, "line": 1, }, "start": Object { - "column": 19, + "column": 16, "line": 1, }, }, "range": Array [ - 19, - 20, + 16, + 21, ], - "type": "Punctuator", - "value": ")", + "type": "Keyword", + "value": "yield", }, Object { "loc": Object { "end": Object { - "column": 15, - "line": 2, + "column": 23, + "line": 1, }, "start": Object { - "column": 4, - "line": 2, + "column": 22, + "line": 1, }, }, "range": Array [ - 25, - 36, + 22, + 23, ], "type": "Identifier", - "value": "doSomething", + "value": "v", }, Object { "loc": Object { "end": Object { - "column": 16, - "line": 2, + "column": 25, + "line": 1, }, "start": Object { - "column": 15, - "line": 2, + "column": 24, + "line": 1, }, }, "range": Array [ - 36, - 37, + 24, + 25, ], "type": "Punctuator", - "value": "(", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 17, - "line": 2, + "column": 26, + "line": 1, }, "start": Object { - "column": 16, - "line": 2, + "column": 25, + "line": 1, }, }, "range": Array [ - 37, - 38, + 25, + 26, ], "type": "Punctuator", "value": ")", @@ -91093,17 +98976,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 18, - "line": 2, + "column": 27, + "line": 1, }, "start": Object { - "column": 17, - "line": 2, + "column": 26, + "line": 1, }, }, "range": Array [ - 38, - 39, + 26, + 27, ], "type": "Punctuator", "value": ";", @@ -91113,275 +98996,151 @@ Object { } `; -exports[`javascript fixtures/forOf/invalid-for-of-with-let-and-no-braces.src 1`] = ` +exports[`javascript fixtures/generators/async-generator-function.src 1`] = ` Object { "body": Array [ Object { - "await": false, + "async": true, "body": Object { - "expression": Object { - "arguments": Array [], - "callee": Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "name": "doSomething", - "range": Array [ - 23, - 34, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 17, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "range": Array [ - 23, - 36, - ], - "type": "CallExpression", - }, + "body": Array [], "loc": Object { "end": Object { - "column": 18, - "line": 2, + "column": 1, + "line": 4, }, "start": Object { - "column": 4, + "column": 22, "line": 2, }, }, "range": Array [ 23, - 37, + 27, ], - "type": "ExpressionStatement", + "type": "BlockStatement", }, - "left": Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 9, - 10, - ], - "type": "Identifier", - }, - "init": null, - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 10, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "let", + "expression": false, + "generator": true, + "id": Object { "loc": Object { "end": Object { - "column": 10, - "line": 1, + "column": 19, + "line": 2, }, "start": Object { - "column": 5, - "line": 1, + "column": 16, + "line": 2, }, }, + "name": "foo", "range": Array [ - 5, - 10, + 17, + 20, ], - "type": "VariableDeclaration", + "type": "Identifier", }, "loc": Object { "end": Object { - "column": 18, - "line": 2, + "column": 1, + "line": 4, }, "start": Object { "column": 0, - "line": 1, + "line": 2, }, }, + "params": Array [], "range": Array [ - 0, - 37, + 1, + 27, ], - "right": Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "name": "foo", - "range": Array [ - 14, - 17, - ], - "type": "Identifier", - }, - "type": "ForOfStatement", + "type": "FunctionDeclaration", }, ], "loc": Object { "end": Object { "column": 0, - "line": 3, + "line": 5, }, "start": Object { "column": 0, - "line": 1, + "line": 2, }, }, "range": Array [ - 0, - 38, + 1, + 28, ], "sourceType": "script", "tokens": Array [ - Object { - "loc": Object { - "end": Object { - "column": 3, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 3, - ], - "type": "Keyword", - "value": "for", - }, Object { "loc": Object { "end": Object { "column": 5, - "line": 1, + "line": 2, }, "start": Object { - "column": 4, - "line": 1, + "column": 0, + "line": 2, }, }, "range": Array [ - 4, - 5, + 1, + 6, ], - "type": "Punctuator", - "value": "(", + "type": "Identifier", + "value": "async", }, Object { "loc": Object { "end": Object { - "column": 8, - "line": 1, + "column": 14, + "line": 2, }, "start": Object { - "column": 5, - "line": 1, + "column": 6, + "line": 2, }, }, "range": Array [ - 5, - 8, + 7, + 15, ], "type": "Keyword", - "value": "let", - }, - Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 10, - ], - "type": "Identifier", - "value": "x", + "value": "function", }, Object { "loc": Object { "end": Object { - "column": 13, - "line": 1, + "column": 16, + "line": 2, }, "start": Object { - "column": 11, - "line": 1, + "column": 15, + "line": 2, }, }, "range": Array [ - 11, - 13, + 16, + 17, ], - "type": "Identifier", - "value": "of", + "type": "Punctuator", + "value": "*", }, Object { "loc": Object { "end": Object { - "column": 17, - "line": 1, + "column": 19, + "line": 2, }, "start": Object { - "column": 14, - "line": 1, + "column": 16, + "line": 2, }, }, "range": Array [ - 14, 17, + 20, ], "type": "Identifier", "value": "foo", @@ -91389,200 +99148,313 @@ Object { Object { "loc": Object { "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 17, - "line": 1, - }, - }, - "range": Array [ - 17, - 18, - ], - "type": "Punctuator", - "value": ")", - }, - Object { - "loc": Object { - "end": Object { - "column": 15, + "column": 20, "line": 2, }, "start": Object { - "column": 4, + "column": 19, "line": 2, }, }, "range": Array [ - 23, - 34, + 20, + 21, ], - "type": "Identifier", - "value": "doSomething", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 21, "line": 2, }, "start": Object { - "column": 15, + "column": 20, "line": 2, }, }, "range": Array [ - 34, - 35, + 21, + 22, ], "type": "Punctuator", - "value": "(", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 23, "line": 2, }, "start": Object { - "column": 16, + "column": 22, "line": 2, }, }, "range": Array [ - 35, - 36, + 23, + 24, ], "type": "Punctuator", - "value": ")", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 18, - "line": 2, + "column": 1, + "line": 4, }, "start": Object { - "column": 17, - "line": 2, + "column": 0, + "line": 4, }, }, "range": Array [ - 36, - 37, + 26, + 27, ], "type": "Punctuator", - "value": ";", + "value": "}", }, ], "type": "Program", } `; -exports[`javascript fixtures/generators/anonymous-generator.src 1`] = ` +exports[`javascript fixtures/generators/async-generator-method.src 1`] = ` Object { "body": Array [ Object { - "expression": Object { - "async": false, - "body": Object { - "body": Array [ - Object { - "expression": Object { - "argument": Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 22, - "line": 1, + "body": Object { + "body": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 2, + }, + "start": Object { + "column": 12, + "line": 2, + }, + }, + "name": "f", + "range": Array [ + 22, + 23, + ], + "type": "Identifier", + }, + "kind": "method", + "loc": Object { + "end": Object { + "column": 5, + "line": 4, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "range": Array [ + 14, + 63, + ], + "static": false, + "type": "MethodDefinition", + "value": Object { + "async": true, + "body": Object { + "body": Array [ + Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 3, + }, + "start": Object { + "column": 14, + "line": 3, + }, + }, + "name": "x", + "range": Array [ + 42, + 43, + ], + "type": "Identifier", + }, + "init": Object { + "argument": Object { + "arguments": Array [], + "callee": Object { + "loc": Object { + "end": Object { + "column": 26, + "line": 3, + }, + "start": Object { + "column": 25, + "line": 3, + }, + }, + "name": "g", + "range": Array [ + 53, + 54, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 28, + "line": 3, + }, + "start": Object { + "column": 25, + "line": 3, + }, + }, + "range": Array [ + 53, + 56, + ], + "type": "CallExpression", + }, + "delegate": true, + "loc": Object { + "end": Object { + "column": 28, + "line": 3, + }, + "start": Object { + "column": 18, + "line": 3, + }, + }, + "range": Array [ + 46, + 56, + ], + "type": "YieldExpression", + }, + "loc": Object { + "end": Object { + "column": 28, + "line": 3, + }, + "start": Object { + "column": 14, + "line": 3, + }, + }, + "range": Array [ + 42, + 56, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "const", + "loc": Object { + "end": Object { + "column": 29, + "line": 3, + }, + "start": Object { + "column": 8, + "line": 3, + }, }, + "range": Array [ + 36, + 57, + ], + "type": "VariableDeclaration", }, - "name": "v", - "range": Array [ - 22, - 23, - ], - "type": "Identifier", - }, - "delegate": false, + ], "loc": Object { "end": Object { - "column": 23, - "line": 1, + "column": 5, + "line": 4, }, "start": Object { "column": 16, - "line": 1, + "line": 2, }, }, "range": Array [ - 16, - 23, + 26, + 63, ], - "type": "YieldExpression", + "type": "BlockStatement", }, + "expression": false, + "generator": true, + "id": null, "loc": Object { "end": Object { - "column": 23, - "line": 1, + "column": 5, + "line": 4, }, "start": Object { - "column": 16, - "line": 1, + "column": 13, + "line": 2, }, }, + "params": Array [], "range": Array [ - 16, 23, + 63, ], - "type": "ExpressionStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 25, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, + "type": "FunctionExpression", }, }, - "range": Array [ - 14, - 25, - ], - "type": "BlockStatement", + ], + "loc": Object { + "end": Object { + "column": 1, + "line": 5, + }, + "start": Object { + "column": 8, + "line": 1, + }, }, - "expression": false, - "generator": true, - "id": null, + "range": Array [ + 8, + 65, + ], + "type": "ClassBody", + }, + "id": Object { "loc": Object { "end": Object { - "column": 25, + "column": 7, "line": 1, }, "start": Object { - "column": 1, + "column": 6, "line": 1, }, }, - "params": Array [], + "name": "C", "range": Array [ - 1, - 25, + 6, + 7, ], - "type": "FunctionExpression", + "type": "Identifier", }, "loc": Object { "end": Object { - "column": 27, - "line": 1, + "column": 1, + "line": 5, }, "start": Object { "column": 0, @@ -91591,15 +99463,16 @@ Object { }, "range": Array [ 0, - 27, + 65, ], - "type": "ExpressionStatement", + "superClass": null, + "type": "ClassDeclaration", }, ], "loc": Object { "end": Object { - "column": 27, - "line": 1, + "column": 0, + "line": 6, }, "start": Object { "column": 0, @@ -91608,14 +99481,14 @@ Object { }, "range": Array [ 0, - 27, + 66, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, + "column": 5, "line": 1, }, "start": Object { @@ -91625,146 +99498,128 @@ Object { }, "range": Array [ 0, - 1, - ], - "type": "Punctuator", - "value": "(", - }, - Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 1, - }, - "start": Object { - "column": 1, - "line": 1, - }, - }, - "range": Array [ - 1, - 9, + 5, ], "type": "Keyword", - "value": "function", + "value": "class", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 7, "line": 1, }, "start": Object { - "column": 9, + "column": 6, "line": 1, }, }, "range": Array [ - 9, - 10, + 6, + 7, ], - "type": "Punctuator", - "value": "*", + "type": "Identifier", + "value": "C", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 9, "line": 1, }, "start": Object { - "column": 11, + "column": 8, "line": 1, }, }, "range": Array [ - 11, - 12, + 8, + 9, ], "type": "Punctuator", - "value": "(", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 13, - "line": 1, + "column": 9, + "line": 2, }, "start": Object { - "column": 12, - "line": 1, + "column": 4, + "line": 2, }, }, "range": Array [ - 12, - 13, + 14, + 19, ], - "type": "Punctuator", - "value": ")", + "type": "Identifier", + "value": "async", }, Object { "loc": Object { "end": Object { - "column": 15, - "line": 1, + "column": 11, + "line": 2, }, "start": Object { - "column": 14, - "line": 1, + "column": 10, + "line": 2, }, }, "range": Array [ - 14, - 15, + 20, + 21, ], "type": "Punctuator", - "value": "{", + "value": "*", }, Object { "loc": Object { "end": Object { - "column": 21, - "line": 1, + "column": 13, + "line": 2, }, "start": Object { - "column": 16, - "line": 1, + "column": 12, + "line": 2, }, }, "range": Array [ - 16, - 21, + 22, + 23, ], - "type": "Keyword", - "value": "yield", + "type": "Identifier", + "value": "f", }, Object { "loc": Object { "end": Object { - "column": 23, - "line": 1, + "column": 14, + "line": 2, }, "start": Object { - "column": 22, - "line": 1, + "column": 13, + "line": 2, }, }, "range": Array [ - 22, 23, + 24, ], - "type": "Identifier", - "value": "v", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 25, - "line": 1, + "column": 15, + "line": 2, }, "start": Object { - "column": 24, - "line": 1, + "column": 14, + "line": 2, }, }, "range": Array [ @@ -91772,176 +99627,112 @@ Object { 25, ], "type": "Punctuator", - "value": "}", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 26, - "line": 1, + "column": 17, + "line": 2, }, "start": Object { - "column": 25, - "line": 1, + "column": 16, + "line": 2, }, }, "range": Array [ - 25, 26, + 27, ], "type": "Punctuator", - "value": ")", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 27, - "line": 1, + "column": 13, + "line": 3, }, "start": Object { - "column": 26, - "line": 1, + "column": 8, + "line": 3, }, }, "range": Array [ - 26, - 27, + 36, + 41, ], - "type": "Punctuator", - "value": ";", + "type": "Keyword", + "value": "const", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/generators/async-generator-function.src 1`] = ` -Object { - "body": Array [ Object { - "async": true, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 1, - "line": 4, - }, - "start": Object { - "column": 22, - "line": 2, - }, - }, - "range": Array [ - 23, - 27, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": true, - "id": Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 2, - }, - "start": Object { - "column": 16, - "line": 2, - }, - }, - "name": "foo", - "range": Array [ - 17, - 20, - ], - "type": "Identifier", - }, "loc": Object { "end": Object { - "column": 1, - "line": 4, + "column": 15, + "line": 3, }, "start": Object { - "column": 0, - "line": 2, + "column": 14, + "line": 3, }, }, - "params": Array [], "range": Array [ - 1, - 27, + 42, + 43, ], - "type": "FunctionDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 5, - }, - "start": Object { - "column": 0, - "line": 2, + "type": "Identifier", + "value": "x", }, - }, - "range": Array [ - 1, - 28, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, - "line": 2, + "column": 17, + "line": 3, }, "start": Object { - "column": 0, - "line": 2, + "column": 16, + "line": 3, }, }, "range": Array [ - 1, - 6, + 44, + 45, ], - "type": "Identifier", - "value": "async", + "type": "Punctuator", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 14, - "line": 2, + "column": 23, + "line": 3, }, "start": Object { - "column": 6, - "line": 2, + "column": 18, + "line": 3, }, }, "range": Array [ - 7, - 15, + 46, + 51, ], "type": "Keyword", - "value": "function", + "value": "yield", }, Object { "loc": Object { "end": Object { - "column": 16, - "line": 2, + "column": 24, + "line": 3, }, "start": Object { - "column": 15, - "line": 2, + "column": 23, + "line": 3, }, }, "range": Array [ - 16, - 17, + 51, + 52, ], "type": "Punctuator", "value": "*", @@ -91949,35 +99740,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 19, - "line": 2, + "column": 26, + "line": 3, }, "start": Object { - "column": 16, - "line": 2, + "column": 25, + "line": 3, }, }, "range": Array [ - 17, - 20, + 53, + 54, ], "type": "Identifier", - "value": "foo", + "value": "g", }, Object { "loc": Object { "end": Object { - "column": 20, - "line": 2, + "column": 27, + "line": 3, }, "start": Object { - "column": 19, - "line": 2, + "column": 26, + "line": 3, }, }, "range": Array [ - 20, - 21, + 54, + 55, ], "type": "Punctuator", "value": "(", @@ -91985,17 +99776,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 21, - "line": 2, + "column": 28, + "line": 3, }, "start": Object { - "column": 20, - "line": 2, + "column": 27, + "line": 3, }, }, "range": Array [ - 21, - 22, + 55, + 56, ], "type": "Punctuator", "value": ")", @@ -92003,35 +99794,53 @@ Object { Object { "loc": Object { "end": Object { - "column": 23, - "line": 2, + "column": 29, + "line": 3, + }, + "start": Object { + "column": 28, + "line": 3, + }, + }, + "range": Array [ + 56, + 57, + ], + "type": "Punctuator", + "value": ";", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 4, }, "start": Object { - "column": 22, - "line": 2, + "column": 4, + "line": 4, }, }, "range": Array [ - 23, - 24, + 62, + 63, ], "type": "Punctuator", - "value": "{", + "value": "}", }, Object { "loc": Object { "end": Object { "column": 1, - "line": 4, + "line": 5, }, "start": Object { "column": 0, - "line": 4, + "line": 5, }, }, "range": Array [ - 26, - 27, + 64, + 65, ], "type": "Punctuator", "value": "}", @@ -92041,239 +99850,127 @@ Object { } `; -exports[`javascript fixtures/generators/async-generator-method.src 1`] = ` +exports[`javascript fixtures/generators/double-yield.src 1`] = ` Object { "body": Array [ Object { - "body": Object { - "body": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 2, - }, - "start": Object { - "column": 12, - "line": 2, - }, - }, - "name": "f", - "range": Array [ - 22, - 23, - ], - "type": "Identifier", - }, - "kind": "method", - "loc": Object { - "end": Object { - "column": 5, - "line": 4, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "range": Array [ - 14, - 63, - ], - "static": false, - "type": "MethodDefinition", - "value": Object { - "async": true, - "body": Object { - "body": Array [ - Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 3, - }, - "start": Object { - "column": 14, - "line": 3, - }, - }, - "name": "x", - "range": Array [ - 42, - 43, - ], - "type": "Identifier", - }, - "init": Object { - "argument": Object { - "arguments": Array [], - "callee": Object { - "loc": Object { - "end": Object { - "column": 26, - "line": 3, - }, - "start": Object { - "column": 25, - "line": 3, - }, - }, - "name": "g", - "range": Array [ - 53, - 54, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 28, - "line": 3, - }, - "start": Object { - "column": 25, - "line": 3, - }, - }, - "range": Array [ - 53, - 56, - ], - "type": "CallExpression", - }, - "delegate": true, - "loc": Object { - "end": Object { - "column": 28, - "line": 3, - }, - "start": Object { - "column": 18, - "line": 3, - }, - }, - "range": Array [ - 46, - 56, - ], - "type": "YieldExpression", - }, - "loc": Object { - "end": Object { - "column": 28, - "line": 3, - }, - "start": Object { - "column": 14, - "line": 3, - }, - }, - "range": Array [ - 42, - 56, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "const", + "expression": Object { + "async": false, + "body": Object { + "body": Array [ + Object { + "expression": Object { + "argument": Object { + "argument": Object { "loc": Object { "end": Object { - "column": 29, - "line": 3, + "column": 30, + "line": 1, }, "start": Object { - "column": 8, - "line": 3, + "column": 28, + "line": 1, }, }, "range": Array [ - 36, - 57, + 28, + 30, ], - "type": "VariableDeclaration", + "raw": "10", + "type": "Literal", + "value": 10, }, - ], + "delegate": false, + "loc": Object { + "end": Object { + "column": 30, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "range": Array [ + 22, + 30, + ], + "type": "YieldExpression", + }, + "delegate": false, "loc": Object { "end": Object { - "column": 5, - "line": 4, + "column": 30, + "line": 1, }, "start": Object { "column": 16, - "line": 2, + "line": 1, }, }, "range": Array [ - 26, - 63, + 16, + 30, ], - "type": "BlockStatement", + "type": "YieldExpression", }, - "expression": false, - "generator": true, - "id": null, "loc": Object { "end": Object { - "column": 5, - "line": 4, + "column": 30, + "line": 1, }, "start": Object { - "column": 13, - "line": 2, + "column": 16, + "line": 1, }, }, - "params": Array [], "range": Array [ - 23, - 63, + 16, + 30, ], - "type": "FunctionExpression", + "type": "ExpressionStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 32, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, }, }, - ], - "loc": Object { - "end": Object { - "column": 1, - "line": 5, - }, - "start": Object { - "column": 8, - "line": 1, - }, + "range": Array [ + 14, + 32, + ], + "type": "BlockStatement", }, - "range": Array [ - 8, - 65, - ], - "type": "ClassBody", - }, - "id": Object { + "expression": false, + "generator": true, + "id": null, "loc": Object { "end": Object { - "column": 7, + "column": 32, "line": 1, }, "start": Object { - "column": 6, + "column": 1, "line": 1, }, }, - "name": "C", + "params": Array [], "range": Array [ - 6, - 7, + 1, + 32, ], - "type": "Identifier", + "type": "FunctionExpression", }, "loc": Object { "end": Object { - "column": 1, - "line": 5, + "column": 34, + "line": 1, }, "start": Object { "column": 0, @@ -92282,16 +99979,15 @@ Object { }, "range": Array [ 0, - 65, + 34, ], - "superClass": null, - "type": "ClassDeclaration", + "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 0, - "line": 6, + "column": 34, + "line": 1, }, "start": Object { "column": 0, @@ -92300,14 +99996,14 @@ Object { }, "range": Array [ 0, - 66, + 34, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 1, "line": 1, }, "start": Object { @@ -92317,241 +100013,340 @@ Object { }, "range": Array [ 0, - 5, + 1, ], - "type": "Keyword", - "value": "class", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 9, "line": 1, }, "start": Object { - "column": 6, + "column": 1, "line": 1, }, }, "range": Array [ - 6, - 7, + 1, + 9, ], - "type": "Identifier", - "value": "C", + "type": "Keyword", + "value": "function", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 10, "line": 1, }, "start": Object { - "column": 8, + "column": 9, "line": 1, }, }, "range": Array [ - 8, 9, + 10, ], "type": "Punctuator", - "value": "{", + "value": "*", }, Object { "loc": Object { "end": Object { - "column": 9, - "line": 2, + "column": 12, + "line": 1, }, "start": Object { - "column": 4, - "line": 2, + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 12, + ], + "type": "Punctuator", + "value": "(", + }, + Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "range": Array [ + 12, + 13, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, }, }, "range": Array [ 14, - 19, + 15, ], - "type": "Identifier", - "value": "async", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 11, - "line": 2, + "column": 21, + "line": 1, }, "start": Object { - "column": 10, - "line": 2, + "column": 16, + "line": 1, }, }, "range": Array [ - 20, + 16, 21, ], - "type": "Punctuator", - "value": "*", + "type": "Keyword", + "value": "yield", }, Object { "loc": Object { "end": Object { - "column": 13, - "line": 2, + "column": 27, + "line": 1, }, "start": Object { - "column": 12, - "line": 2, + "column": 22, + "line": 1, }, }, "range": Array [ 22, - 23, + 27, ], - "type": "Identifier", - "value": "f", + "type": "Keyword", + "value": "yield", }, Object { "loc": Object { "end": Object { - "column": 14, - "line": 2, + "column": 30, + "line": 1, }, "start": Object { - "column": 13, - "line": 2, + "column": 28, + "line": 1, }, }, "range": Array [ - 23, - 24, + 28, + 30, ], - "type": "Punctuator", - "value": "(", + "type": "Numeric", + "value": "10", }, Object { "loc": Object { "end": Object { - "column": 15, - "line": 2, + "column": 32, + "line": 1, }, "start": Object { - "column": 14, - "line": 2, + "column": 31, + "line": 1, }, }, "range": Array [ - 24, - 25, + 31, + 32, ], "type": "Punctuator", - "value": ")", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 17, - "line": 2, + "column": 33, + "line": 1, }, "start": Object { - "column": 16, - "line": 2, + "column": 32, + "line": 1, }, }, "range": Array [ - 26, - 27, + 32, + 33, ], "type": "Punctuator", - "value": "{", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 13, - "line": 3, + "column": 34, + "line": 1, }, "start": Object { - "column": 8, - "line": 3, + "column": 33, + "line": 1, }, }, "range": Array [ - 36, - 41, + 33, + 34, ], - "type": "Keyword", - "value": "const", + "type": "Punctuator", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/generators/empty-generator-declaration.src 1`] = ` +Object { + "body": Array [ Object { + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "range": Array [ + 14, + 16, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": true, + "id": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "name": "t", + "range": Array [ + 10, + 11, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 15, - "line": 3, + "column": 16, + "line": 1, }, "start": Object { - "column": 14, - "line": 3, + "column": 0, + "line": 1, }, }, + "params": Array [], "range": Array [ - 42, - 43, + 0, + 16, ], - "type": "Identifier", - "value": "x", + "type": "FunctionDeclaration", }, Object { "loc": Object { "end": Object { "column": 17, - "line": 3, + "line": 1, }, "start": Object { "column": 16, - "line": 3, + "line": 1, }, }, "range": Array [ - 44, - 45, + 16, + 17, ], - "type": "Punctuator", - "value": "=", + "type": "EmptyStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 17, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 23, - "line": 3, + "column": 8, + "line": 1, }, "start": Object { - "column": 18, - "line": 3, + "column": 0, + "line": 1, }, }, "range": Array [ - 46, - 51, + 0, + 8, ], "type": "Keyword", - "value": "yield", + "value": "function", }, Object { "loc": Object { "end": Object { - "column": 24, - "line": 3, + "column": 9, + "line": 1, }, "start": Object { - "column": 23, - "line": 3, + "column": 8, + "line": 1, }, }, "range": Array [ - 51, - 52, + 8, + 9, ], "type": "Punctuator", "value": "*", @@ -92559,35 +100354,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 26, - "line": 3, + "column": 11, + "line": 1, }, "start": Object { - "column": 25, - "line": 3, + "column": 10, + "line": 1, }, }, "range": Array [ - 53, - 54, + 10, + 11, ], "type": "Identifier", - "value": "g", + "value": "t", }, Object { "loc": Object { "end": Object { - "column": 27, - "line": 3, + "column": 12, + "line": 1, }, "start": Object { - "column": 26, - "line": 3, + "column": 11, + "line": 1, }, }, "range": Array [ - 54, - 55, + 11, + 12, ], "type": "Punctuator", "value": "(", @@ -92595,17 +100390,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 28, - "line": 3, + "column": 13, + "line": 1, }, "start": Object { - "column": 27, - "line": 3, + "column": 12, + "line": 1, }, }, "range": Array [ - 55, - 56, + 12, + 13, ], "type": "Punctuator", "value": ")", @@ -92613,35 +100408,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 29, - "line": 3, + "column": 15, + "line": 1, }, "start": Object { - "column": 28, - "line": 3, + "column": 14, + "line": 1, }, }, "range": Array [ - 56, - 57, + 14, + 15, ], "type": "Punctuator", - "value": ";", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 5, - "line": 4, + "column": 16, + "line": 1, }, "start": Object { - "column": 4, - "line": 4, + "column": 15, + "line": 1, }, }, "range": Array [ - 62, - 63, + 15, + 16, ], "type": "Punctuator", "value": "}", @@ -92649,146 +100444,126 @@ Object { Object { "loc": Object { "end": Object { - "column": 1, - "line": 5, + "column": 17, + "line": 1, }, "start": Object { - "column": 0, - "line": 5, + "column": 16, + "line": 1, }, }, "range": Array [ - 64, - 65, + 16, + 17, ], "type": "Punctuator", - "value": "}", + "value": ";", }, ], "type": "Program", } `; -exports[`javascript fixtures/generators/double-yield.src 1`] = ` +exports[`javascript fixtures/generators/generator-declaration.src 1`] = ` Object { "body": Array [ Object { - "expression": Object { - "async": false, - "body": Object { - "body": Array [ - Object { - "expression": Object { - "argument": Object { - "argument": Object { - "loc": Object { - "end": Object { - "column": 30, - "line": 1, - }, - "start": Object { - "column": 28, - "line": 1, - }, - }, - "range": Array [ - 28, - 30, - ], - "raw": "10", - "type": "Literal", - "value": 10, - }, - "delegate": false, - "loc": Object { - "end": Object { - "column": 30, - "line": 1, - }, - "start": Object { - "column": 22, - "line": 1, - }, - }, - "range": Array [ - 22, - 30, - ], - "type": "YieldExpression", - }, - "delegate": false, + "async": false, + "body": Object { + "body": Array [ + Object { + "expression": Object { + "argument": Object { "loc": Object { "end": Object { - "column": 30, + "column": 28, "line": 1, }, "start": Object { - "column": 16, + "column": 27, "line": 1, }, }, + "name": "v", "range": Array [ - 16, - 30, + 27, + 28, ], - "type": "YieldExpression", + "type": "Identifier", }, + "delegate": true, "loc": Object { "end": Object { - "column": 30, + "column": 28, "line": 1, }, "start": Object { - "column": 16, + "column": 20, "line": 1, }, }, "range": Array [ - 16, - 30, + 20, + 28, ], - "type": "ExpressionStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 32, - "line": 1, + "type": "YieldExpression", }, - "start": Object { - "column": 14, - "line": 1, + "loc": Object { + "end": Object { + "column": 28, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, }, + "range": Array [ + 20, + 28, + ], + "type": "ExpressionStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 30, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, }, - "range": Array [ - 14, - 32, - ], - "type": "BlockStatement", }, - "expression": false, - "generator": true, - "id": null, + "range": Array [ + 18, + 30, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": true, + "id": Object { "loc": Object { "end": Object { - "column": 32, + "column": 14, "line": 1, }, "start": Object { - "column": 1, + "column": 10, "line": 1, }, }, - "params": Array [], + "name": "test", "range": Array [ - 1, - 32, + 10, + 14, ], - "type": "FunctionExpression", + "type": "Identifier", }, "loc": Object { "end": Object { - "column": 34, + "column": 30, "line": 1, }, "start": Object { @@ -92796,16 +100571,34 @@ Object { "line": 1, }, }, + "params": Array [], "range": Array [ 0, - 34, + 30, ], - "type": "ExpressionStatement", + "type": "FunctionDeclaration", + }, + Object { + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 30, + "line": 1, + }, + }, + "range": Array [ + 30, + 31, + ], + "type": "EmptyStatement", }, ], "loc": Object { "end": Object { - "column": 34, + "column": 31, "line": 1, }, "start": Object { @@ -92815,14 +100608,14 @@ Object { }, "range": Array [ 0, - 34, + 31, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, + "column": 8, "line": 1, }, "start": Object { @@ -92832,10 +100625,10 @@ Object { }, "range": Array [ 0, - 1, + 8, ], - "type": "Punctuator", - "value": "(", + "type": "Keyword", + "value": "function", }, Object { "loc": Object { @@ -92844,49 +100637,49 @@ Object { "line": 1, }, "start": Object { - "column": 1, + "column": 8, "line": 1, }, }, "range": Array [ - 1, + 8, 9, ], - "type": "Keyword", - "value": "function", + "type": "Punctuator", + "value": "*", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 14, "line": 1, }, "start": Object { - "column": 9, + "column": 10, "line": 1, }, }, "range": Array [ - 9, 10, + 14, ], - "type": "Punctuator", - "value": "*", + "type": "Identifier", + "value": "test", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 16, "line": 1, }, "start": Object { - "column": 11, + "column": 15, "line": 1, }, }, "range": Array [ - 11, - 12, + 15, + 16, ], "type": "Punctuator", "value": "(", @@ -92894,17 +100687,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 13, + "column": 17, "line": 1, }, "start": Object { - "column": 12, + "column": 16, "line": 1, }, }, "range": Array [ - 12, - 13, + 16, + 17, ], "type": "Punctuator", "value": ")", @@ -92912,17 +100705,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 15, + "column": 19, "line": 1, }, "start": Object { - "column": 14, + "column": 18, "line": 1, }, }, "range": Array [ - 14, - 15, + 18, + 19, ], "type": "Punctuator", "value": "{", @@ -92930,17 +100723,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 21, + "column": 25, "line": 1, }, "start": Object { - "column": 16, + "column": 20, "line": 1, }, }, "range": Array [ - 16, - 21, + 20, + 25, ], "type": "Keyword", "value": "yield", @@ -92952,49 +100745,49 @@ Object { "line": 1, }, "start": Object { - "column": 22, + "column": 26, "line": 1, }, }, "range": Array [ - 22, + 26, 27, ], - "type": "Keyword", - "value": "yield", + "type": "Punctuator", + "value": "*", }, Object { "loc": Object { "end": Object { - "column": 30, + "column": 28, "line": 1, }, "start": Object { - "column": 28, + "column": 27, "line": 1, }, }, "range": Array [ + 27, 28, - 30, ], - "type": "Numeric", - "value": "10", + "type": "Identifier", + "value": "v", }, Object { "loc": Object { "end": Object { - "column": 32, + "column": 30, "line": 1, }, "start": Object { - "column": 31, + "column": 29, "line": 1, }, }, "range": Array [ - 31, - 32, + 29, + 30, ], "type": "Punctuator", "value": "}", @@ -93002,35 +100795,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 33, - "line": 1, - }, - "start": Object { - "column": 32, - "line": 1, - }, - }, - "range": Array [ - 32, - 33, - ], - "type": "Punctuator", - "value": ")", - }, - Object { - "loc": Object { - "end": Object { - "column": 34, + "column": 31, "line": 1, }, "start": Object { - "column": 33, + "column": 30, "line": 1, }, }, "range": Array [ - 33, - 34, + 30, + 31, ], "type": "Punctuator", "value": ";", @@ -93040,52 +100815,107 @@ Object { } `; -exports[`javascript fixtures/generators/empty-generator-declaration.src 1`] = ` +exports[`javascript fixtures/generators/yield-delegation.src 1`] = ` Object { "body": Array [ Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, + "expression": Object { + "async": false, + "body": Object { + "body": Array [ + Object { + "expression": Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "name": "v", + "range": Array [ + 23, + 24, + ], + "type": "Identifier", + }, + "delegate": true, + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "range": Array [ + 16, + 24, + ], + "type": "YieldExpression", + }, + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "range": Array [ + 16, + 24, + ], + "type": "ExpressionStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, }, + "range": Array [ + 14, + 26, + ], + "type": "BlockStatement", }, - "range": Array [ - 14, - 16, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": true, - "id": Object { + "expression": false, + "generator": true, + "id": null, "loc": Object { "end": Object { - "column": 11, + "column": 26, "line": 1, }, "start": Object { - "column": 10, + "column": 1, "line": 1, }, }, - "name": "t", + "params": Array [], "range": Array [ - 10, - 11, + 1, + 26, ], - "type": "Identifier", + "type": "FunctionExpression", }, "loc": Object { "end": Object { - "column": 16, + "column": 28, "line": 1, }, "start": Object { @@ -93093,34 +100923,16 @@ Object { "line": 1, }, }, - "params": Array [], "range": Array [ 0, - 16, - ], - "type": "FunctionDeclaration", - }, - Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "range": Array [ - 16, - 17, + 28, ], - "type": "EmptyStatement", + "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 17, + "column": 28, "line": 1, }, "start": Object { @@ -93130,14 +100942,14 @@ Object { }, "range": Array [ 0, - 17, + 28, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 8, + "column": 1, "line": 1, }, "start": Object { @@ -93147,10 +100959,10 @@ Object { }, "range": Array [ 0, - 8, + 1, ], - "type": "Keyword", - "value": "function", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { @@ -93159,34 +100971,34 @@ Object { "line": 1, }, "start": Object { - "column": 8, + "column": 1, "line": 1, }, }, "range": Array [ - 8, + 1, 9, ], - "type": "Punctuator", - "value": "*", + "type": "Keyword", + "value": "function", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 10, "line": 1, }, "start": Object { - "column": 10, + "column": 9, "line": 1, }, }, "range": Array [ + 9, 10, - 11, ], - "type": "Identifier", - "value": "t", + "type": "Punctuator", + "value": "*", }, Object { "loc": Object { @@ -93245,17 +101057,71 @@ Object { Object { "loc": Object { "end": Object { - "column": 16, + "column": 21, "line": 1, }, "start": Object { - "column": 15, + "column": 16, "line": 1, }, }, "range": Array [ - 15, 16, + 21, + ], + "type": "Keyword", + "value": "yield", + }, + Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "range": Array [ + 22, + 23, + ], + "type": "Punctuator", + "value": "*", + }, + Object { + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "range": Array [ + 23, + 24, + ], + "type": "Identifier", + "value": "v", + }, + Object { + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 25, + "line": 1, + }, + }, + "range": Array [ + 25, + 26, ], "type": "Punctuator", "value": "}", @@ -93263,17 +101129,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 17, + "column": 27, "line": 1, }, "start": Object { - "column": 16, + "column": 26, "line": 1, }, }, "range": Array [ - 16, - 17, + 26, + 27, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 28, + "line": 1, + }, + "start": Object { + "column": 27, + "line": 1, + }, + }, + "range": Array [ + 27, + 28, ], "type": "Punctuator", "value": ";", @@ -93283,106 +101167,90 @@ Object { } `; -exports[`javascript fixtures/generators/generator-declaration.src 1`] = ` +exports[`javascript fixtures/generators/yield-without-value.src 1`] = ` Object { "body": Array [ Object { - "async": false, - "body": Object { - "body": Array [ - Object { - "expression": Object { - "argument": Object { + "expression": Object { + "async": false, + "body": Object { + "body": Array [ + Object { + "expression": Object { + "argument": null, + "delegate": false, "loc": Object { "end": Object { - "column": 28, + "column": 21, "line": 1, }, "start": Object { - "column": 27, + "column": 16, "line": 1, }, }, - "name": "v", "range": Array [ - 27, - 28, + 16, + 21, ], - "type": "Identifier", + "type": "YieldExpression", }, - "delegate": true, "loc": Object { "end": Object { - "column": 28, + "column": 22, "line": 1, }, "start": Object { - "column": 20, + "column": 16, "line": 1, }, }, "range": Array [ - 20, - 28, + 16, + 22, ], - "type": "YieldExpression", + "type": "ExpressionStatement", }, - "loc": Object { - "end": Object { - "column": 28, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, + ], + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, }, - "range": Array [ - 20, - 28, - ], - "type": "ExpressionStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 30, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, }, + "range": Array [ + 14, + 24, + ], + "type": "BlockStatement", }, - "range": Array [ - 18, - 30, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": true, - "id": Object { + "expression": false, + "generator": true, + "id": null, "loc": Object { "end": Object { - "column": 14, + "column": 24, "line": 1, }, "start": Object { - "column": 10, + "column": 1, "line": 1, }, }, - "name": "test", + "params": Array [], "range": Array [ - 10, - 14, + 1, + 24, ], - "type": "Identifier", + "type": "FunctionExpression", }, "loc": Object { "end": Object { - "column": 30, + "column": 26, "line": 1, }, "start": Object { @@ -93390,35 +101258,17 @@ Object { "line": 1, }, }, - "params": Array [], "range": Array [ 0, - 30, - ], - "type": "FunctionDeclaration", - }, - Object { - "loc": Object { - "end": Object { - "column": 31, - "line": 1, - }, - "start": Object { - "column": 30, - "line": 1, - }, - }, - "range": Array [ - 30, - 31, + 26, ], - "type": "EmptyStatement", + "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 31, - "line": 1, + "column": 0, + "line": 2, }, "start": Object { "column": 0, @@ -93427,14 +101277,14 @@ Object { }, "range": Array [ 0, - 31, + 27, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 8, + "column": 1, "line": 1, }, "start": Object { @@ -93444,10 +101294,10 @@ Object { }, "range": Array [ 0, - 8, + 1, ], - "type": "Keyword", - "value": "function", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { @@ -93456,49 +101306,49 @@ Object { "line": 1, }, "start": Object { - "column": 8, + "column": 1, "line": 1, }, }, "range": Array [ - 8, + 1, 9, ], - "type": "Punctuator", - "value": "*", + "type": "Keyword", + "value": "function", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 10, "line": 1, }, "start": Object { - "column": 10, + "column": 9, "line": 1, }, }, "range": Array [ + 9, 10, - 14, ], - "type": "Identifier", - "value": "test", + "type": "Punctuator", + "value": "*", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 12, "line": 1, }, "start": Object { - "column": 15, + "column": 11, "line": 1, }, }, "range": Array [ - 15, - 16, + 11, + 12, ], "type": "Punctuator", "value": "(", @@ -93506,17 +101356,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 17, + "column": 13, "line": 1, }, "start": Object { - "column": 16, + "column": 12, "line": 1, }, }, "range": Array [ - 16, - 17, + 12, + 13, ], "type": "Punctuator", "value": ")", @@ -93524,17 +101374,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 19, + "column": 15, "line": 1, }, "start": Object { - "column": 18, + "column": 14, "line": 1, }, }, "range": Array [ - 18, - 19, + 14, + 15, ], "type": "Punctuator", "value": "{", @@ -93542,17 +101392,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 25, + "column": 21, "line": 1, }, "start": Object { - "column": 20, + "column": 16, "line": 1, }, }, "range": Array [ - 20, - 25, + 16, + 21, ], "type": "Keyword", "value": "yield", @@ -93560,71 +101410,71 @@ Object { Object { "loc": Object { "end": Object { - "column": 27, + "column": 22, "line": 1, }, "start": Object { - "column": 26, + "column": 21, "line": 1, }, }, "range": Array [ - 26, - 27, + 21, + 22, ], "type": "Punctuator", - "value": "*", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 28, + "column": 24, "line": 1, }, "start": Object { - "column": 27, + "column": 23, "line": 1, }, }, "range": Array [ - 27, - 28, + 23, + 24, ], - "type": "Identifier", - "value": "v", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 30, + "column": 25, "line": 1, }, "start": Object { - "column": 29, + "column": 24, "line": 1, }, }, "range": Array [ - 29, - 30, + 24, + 25, ], "type": "Punctuator", - "value": "}", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 31, + "column": 26, "line": 1, }, "start": Object { - "column": 30, + "column": 25, "line": 1, }, }, "range": Array [ - 30, - 31, + 25, + 26, ], "type": "Punctuator", "value": ";", @@ -93634,7 +101484,7 @@ Object { } `; -exports[`javascript fixtures/generators/yield-delegation.src 1`] = ` +exports[`javascript fixtures/generators/yield-without-value-in-call.src 1`] = ` Object { "body": Array [ Object { @@ -93644,28 +101494,48 @@ Object { "body": Array [ Object { "expression": Object { - "argument": Object { + "arguments": Array [ + Object { + "argument": null, + "delegate": false, + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 19, + "line": 1, + }, + }, + "range": Array [ + 19, + 24, + ], + "type": "YieldExpression", + }, + ], + "callee": Object { "loc": Object { "end": Object { - "column": 24, + "column": 18, "line": 1, }, "start": Object { - "column": 23, + "column": 16, "line": 1, }, }, - "name": "v", + "name": "fn", "range": Array [ - 23, - 24, + 16, + 18, ], "type": "Identifier", }, - "delegate": true, "loc": Object { "end": Object { - "column": 24, + "column": 25, "line": 1, }, "start": Object { @@ -93675,13 +101545,13 @@ Object { }, "range": Array [ 16, - 24, + 25, ], - "type": "YieldExpression", + "type": "CallExpression", }, "loc": Object { "end": Object { - "column": 24, + "column": 26, "line": 1, }, "start": Object { @@ -93691,14 +101561,14 @@ Object { }, "range": Array [ 16, - 24, + 26, ], "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 26, + "column": 28, "line": 1, }, "start": Object { @@ -93708,7 +101578,7 @@ Object { }, "range": Array [ 14, - 26, + 28, ], "type": "BlockStatement", }, @@ -93717,7 +101587,7 @@ Object { "id": null, "loc": Object { "end": Object { - "column": 26, + "column": 28, "line": 1, }, "start": Object { @@ -93728,13 +101598,13 @@ Object { "params": Array [], "range": Array [ 1, - 26, + 28, ], "type": "FunctionExpression", }, "loc": Object { "end": Object { - "column": 28, + "column": 30, "line": 1, }, "start": Object { @@ -93744,15 +101614,15 @@ Object { }, "range": Array [ 0, - 28, + 30, ], "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 28, - "line": 1, + "column": 0, + "line": 2, }, "start": Object { "column": 0, @@ -93761,7 +101631,7 @@ Object { }, "range": Array [ 0, - 28, + 31, ], "sourceType": "script", "tokens": Array [ @@ -93876,7 +101746,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 21, + "column": 18, "line": 1, }, "start": Object { @@ -93886,28 +101756,28 @@ Object { }, "range": Array [ 16, - 21, + 18, ], - "type": "Keyword", - "value": "yield", + "type": "Identifier", + "value": "fn", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 19, "line": 1, }, "start": Object { - "column": 22, + "column": 18, "line": 1, }, }, "range": Array [ - 22, - 23, + 18, + 19, ], "type": "Punctuator", - "value": "*", + "value": "(", }, Object { "loc": Object { @@ -93916,16 +101786,34 @@ Object { "line": 1, }, "start": Object { - "column": 23, + "column": 19, "line": 1, }, }, "range": Array [ - 23, + 19, 24, ], - "type": "Identifier", - "value": "v", + "type": "Keyword", + "value": "yield", + }, + Object { + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, + }, + }, + "range": Array [ + 24, + 25, + ], + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { @@ -93943,22 +101831,40 @@ Object { 26, ], "type": "Punctuator", - "value": "}", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 27, + "column": 28, "line": 1, }, "start": Object { - "column": 26, + "column": 27, "line": 1, }, }, "range": Array [ - 26, 27, + 28, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 29, + "line": 1, + }, + "start": Object { + "column": 28, + "line": 1, + }, + }, + "range": Array [ + 28, + 29, ], "type": "Punctuator", "value": ")", @@ -93966,17 +101872,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 28, + "column": 30, "line": 1, }, "start": Object { - "column": 27, + "column": 29, "line": 1, }, }, "range": Array [ - 27, - 28, + 29, + 30, ], "type": "Punctuator", "value": ";", @@ -93986,7 +101892,7 @@ Object { } `; -exports[`javascript fixtures/generators/yield-without-value.src 1`] = ` +exports[`javascript fixtures/generators/yield-without-value-no-semi.src 1`] = ` Object { "body": Array [ Object { @@ -94016,7 +101922,7 @@ Object { }, "loc": Object { "end": Object { - "column": 22, + "column": 21, "line": 1, }, "start": Object { @@ -94026,14 +101932,14 @@ Object { }, "range": Array [ 16, - 22, + 21, ], "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 24, + "column": 23, "line": 1, }, "start": Object { @@ -94043,7 +101949,7 @@ Object { }, "range": Array [ 14, - 24, + 23, ], "type": "BlockStatement", }, @@ -94052,7 +101958,7 @@ Object { "id": null, "loc": Object { "end": Object { - "column": 24, + "column": 23, "line": 1, }, "start": Object { @@ -94063,13 +101969,13 @@ Object { "params": Array [], "range": Array [ 1, - 24, + 23, ], "type": "FunctionExpression", }, "loc": Object { "end": Object { - "column": 26, + "column": 25, "line": 1, }, "start": Object { @@ -94079,7 +101985,7 @@ Object { }, "range": Array [ 0, - 26, + 25, ], "type": "ExpressionStatement", }, @@ -94096,7 +102002,7 @@ Object { }, "range": Array [ 0, - 27, + 26, ], "sourceType": "script", "tokens": Array [ @@ -94229,20 +102135,20 @@ Object { Object { "loc": Object { "end": Object { - "column": 22, + "column": 23, "line": 1, }, "start": Object { - "column": 21, + "column": 22, "line": 1, }, }, "range": Array [ - 21, 22, + 23, ], "type": "Punctuator", - "value": ";", + "value": "}", }, Object { "loc": Object { @@ -94260,7 +102166,7 @@ Object { 24, ], "type": "Punctuator", - "value": "}", + "value": ")", }, Object { "loc": Object { @@ -94278,24 +102184,6 @@ Object { 25, ], "type": "Punctuator", - "value": ")", - }, - Object { - "loc": Object { - "end": Object { - "column": 26, - "line": 1, - }, - "start": Object { - "column": 25, - "line": 1, - }, - }, - "range": Array [ - 25, - 26, - ], - "type": "Punctuator", "value": ";", }, ], @@ -94303,127 +102191,31 @@ Object { } `; -exports[`javascript fixtures/generators/yield-without-value-in-call.src 1`] = ` +exports[`javascript fixtures/globalReturn/return-identifier.src 1`] = ` Object { "body": Array [ Object { - "expression": Object { - "async": false, - "body": Object { - "body": Array [ - Object { - "expression": Object { - "arguments": Array [ - Object { - "argument": null, - "delegate": false, - "loc": Object { - "end": Object { - "column": 24, - "line": 1, - }, - "start": Object { - "column": 19, - "line": 1, - }, - }, - "range": Array [ - 19, - 24, - ], - "type": "YieldExpression", - }, - ], - "callee": Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "name": "fn", - "range": Array [ - 16, - 18, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 25, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "range": Array [ - 16, - 25, - ], - "type": "CallExpression", - }, - "loc": Object { - "end": Object { - "column": 26, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "range": Array [ - 16, - 26, - ], - "type": "ExpressionStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 28, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "range": Array [ - 14, - 28, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": true, - "id": null, + "argument": Object { "loc": Object { "end": Object { - "column": 28, + "column": 11, "line": 1, }, "start": Object { - "column": 1, + "column": 7, "line": 1, }, }, - "params": Array [], + "name": "fooz", "range": Array [ - 1, - 28, + 7, + 11, ], - "type": "FunctionExpression", + "type": "Identifier", }, "loc": Object { "end": Object { - "column": 30, + "column": 12, "line": 1, }, "start": Object { @@ -94433,9 +102225,9 @@ Object { }, "range": Array [ 0, - 30, + 12, ], - "type": "ExpressionStatement", + "type": "ReturnStatement", }, ], "loc": Object { @@ -94450,14 +102242,14 @@ Object { }, "range": Array [ 0, - 31, + 13, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, + "column": 6, "line": 1, }, "start": Object { @@ -94467,241 +102259,476 @@ Object { }, "range": Array [ 0, - 1, + 6, + ], + "type": "Keyword", + "value": "return", + }, + Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "range": Array [ + 7, + 11, + ], + "type": "Identifier", + "value": "fooz", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 12, ], "type": "Punctuator", - "value": "(", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/globalReturn/return-no-arg.src 1`] = ` +Object { + "body": Array [ Object { + "argument": null, "loc": Object { "end": Object { - "column": 9, + "column": 7, "line": 1, }, "start": Object { - "column": 1, + "column": 0, "line": 1, }, }, "range": Array [ - 1, - 9, + 0, + 7, + ], + "type": "ReturnStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 8, + ], + "sourceType": "script", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 6, ], "type": "Keyword", - "value": "function", + "value": "return", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 7, "line": 1, }, "start": Object { - "column": 9, + "column": 6, "line": 1, }, }, "range": Array [ - 9, - 10, + 6, + 7, ], "type": "Punctuator", - "value": "*", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/globalReturn/return-true.src 1`] = ` +Object { + "body": Array [ Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "range": Array [ + 7, + 11, + ], + "raw": "true", + "type": "Literal", + "value": true, + }, "loc": Object { "end": Object { "column": 12, "line": 1, }, "start": Object { - "column": 11, + "column": 0, "line": 1, }, }, "range": Array [ - 11, + 0, 12, ], - "type": "Punctuator", - "value": "(", + "type": "ReturnStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 13, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 13, + "column": 6, "line": 1, }, "start": Object { - "column": 12, + "column": 0, "line": 1, }, }, "range": Array [ - 12, - 13, + 0, + 6, ], - "type": "Punctuator", - "value": ")", + "type": "Keyword", + "value": "return", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 11, "line": 1, }, "start": Object { - "column": 14, + "column": 7, "line": 1, }, }, "range": Array [ - 14, - 15, + 7, + 11, ], - "type": "Punctuator", - "value": "{", + "type": "Boolean", + "value": "true", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 12, "line": 1, }, "start": Object { - "column": 16, + "column": 11, "line": 1, }, }, "range": Array [ - 16, - 18, + 11, + 12, ], - "type": "Identifier", - "value": "fn", + "type": "Punctuator", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/importMeta/simple-import-meta.src 1`] = ` +Object { + "body": Array [ Object { + "expression": Object { + "computed": false, + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "object": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "meta": Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "name": "import", + "range": Array [ + 0, + 6, + ], + "type": "Identifier", + }, + "property": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "name": "meta", + "range": Array [ + 7, + 11, + ], + "type": "Identifier", + }, + "range": Array [ + 0, + 11, + ], + "type": "MetaProperty", + }, + "property": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "name": "url", + "range": Array [ + 12, + 15, + ], + "type": "Identifier", + }, + "range": Array [ + 0, + 15, + ], + "type": "MemberExpression", + }, "loc": Object { "end": Object { - "column": 19, + "column": 16, "line": 1, }, "start": Object { - "column": 18, + "column": 0, "line": 1, }, }, "range": Array [ - 18, - 19, + 0, + 16, ], - "type": "Punctuator", - "value": "(", + "type": "ExpressionStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 17, + ], + "sourceType": "module", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 24, + "column": 6, "line": 1, }, "start": Object { - "column": 19, + "column": 0, "line": 1, }, }, "range": Array [ - 19, - 24, + 0, + 6, ], "type": "Keyword", - "value": "yield", + "value": "import", }, Object { "loc": Object { "end": Object { - "column": 25, + "column": 7, "line": 1, }, "start": Object { - "column": 24, + "column": 6, "line": 1, }, }, "range": Array [ - 24, - 25, + 6, + 7, ], "type": "Punctuator", - "value": ")", + "value": ".", }, Object { "loc": Object { "end": Object { - "column": 26, + "column": 11, "line": 1, }, "start": Object { - "column": 25, + "column": 7, "line": 1, }, }, "range": Array [ - 25, - 26, + 7, + 11, ], - "type": "Punctuator", - "value": ";", + "type": "Identifier", + "value": "meta", }, Object { "loc": Object { "end": Object { - "column": 28, + "column": 12, "line": 1, }, "start": Object { - "column": 27, + "column": 11, "line": 1, }, }, "range": Array [ - 27, - 28, + 11, + 12, ], "type": "Punctuator", - "value": "}", + "value": ".", }, Object { "loc": Object { "end": Object { - "column": 29, + "column": 15, "line": 1, }, "start": Object { - "column": 28, + "column": 12, "line": 1, }, }, "range": Array [ - 28, - 29, + 12, + 15, ], - "type": "Punctuator", - "value": ")", + "type": "Identifier", + "value": "url", }, Object { "loc": Object { "end": Object { - "column": 30, + "column": 16, "line": 1, }, "start": Object { - "column": 29, + "column": 15, "line": 1, }, }, "range": Array [ - 29, - 30, + 15, + 16, ], "type": "Punctuator", "value": ";", @@ -94711,91 +102738,140 @@ Object { } `; -exports[`javascript fixtures/generators/yield-without-value-no-semi.src 1`] = ` +exports[`javascript fixtures/labels/label-break.src 1`] = ` Object { "body": Array [ Object { - "expression": Object { - "async": false, + "body": Object { "body": Object { "body": Array [ Object { - "expression": Object { - "argument": null, - "delegate": false, + "label": Object { "loc": Object { "end": Object { - "column": 21, - "line": 1, + "column": 15, + "line": 3, }, "start": Object { - "column": 16, - "line": 1, + "column": 10, + "line": 3, }, }, + "name": "loop1", "range": Array [ - 16, - 21, + 33, + 38, ], - "type": "YieldExpression", + "type": "Identifier", }, "loc": Object { "end": Object { - "column": 21, - "line": 1, + "column": 16, + "line": 3, }, "start": Object { - "column": 16, - "line": 1, + "column": 4, + "line": 3, }, }, "range": Array [ - 16, - 21, + 27, + 39, ], - "type": "ExpressionStatement", + "type": "BreakStatement", + }, + Object { + "label": null, + "loc": Object { + "end": Object { + "column": 10, + "line": 4, + }, + "start": Object { + "column": 4, + "line": 4, + }, + }, + "range": Array [ + 44, + 50, + ], + "type": "BreakStatement", }, ], "loc": Object { "end": Object { - "column": 23, - "line": 1, + "column": 3, + "line": 5, }, "start": Object { "column": 14, - "line": 1, + "line": 2, }, }, "range": Array [ - 14, - 23, + 21, + 54, ], "type": "BlockStatement", }, - "expression": false, - "generator": true, - "id": null, "loc": Object { "end": Object { - "column": 23, + "column": 3, + "line": 5, + }, + "start": Object { + "column": 2, + "line": 2, + }, + }, + "range": Array [ + 9, + 54, + ], + "test": Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 2, + }, + "start": Object { + "column": 8, + "line": 2, + }, + }, + "range": Array [ + 15, + 19, + ], + "raw": "true", + "type": "Literal", + "value": true, + }, + "type": "WhileStatement", + }, + "label": Object { + "loc": Object { + "end": Object { + "column": 5, "line": 1, }, "start": Object { - "column": 1, + "column": 0, "line": 1, }, }, - "params": Array [], + "name": "loop1", "range": Array [ - 1, - 23, + 0, + 5, ], - "type": "FunctionExpression", + "type": "Identifier", }, "loc": Object { "end": Object { - "column": 25, - "line": 1, + "column": 3, + "line": 5, }, "start": Object { "column": 0, @@ -94804,15 +102880,15 @@ Object { }, "range": Array [ 0, - 25, + 54, ], - "type": "ExpressionStatement", + "type": "LabeledStatement", }, ], "loc": Object { "end": Object { "column": 0, - "line": 2, + "line": 6, }, "start": Object { "column": 0, @@ -94821,14 +102897,14 @@ Object { }, "range": Array [ 0, - 26, + 55, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, + "column": 5, "line": 1, }, "start": Object { @@ -94838,79 +102914,97 @@ Object { }, "range": Array [ 0, - 1, + 5, ], - "type": "Punctuator", - "value": "(", + "type": "Identifier", + "value": "loop1", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 6, "line": 1, }, "start": Object { - "column": 1, + "column": 5, "line": 1, }, }, "range": Array [ - 1, + 5, + 6, + ], + "type": "Punctuator", + "value": ":", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 2, + }, + "start": Object { + "column": 2, + "line": 2, + }, + }, + "range": Array [ 9, + 14, ], "type": "Keyword", - "value": "function", + "value": "while", }, Object { "loc": Object { "end": Object { - "column": 10, - "line": 1, + "column": 8, + "line": 2, }, "start": Object { - "column": 9, - "line": 1, + "column": 7, + "line": 2, }, }, "range": Array [ - 9, - 10, + 14, + 15, ], "type": "Punctuator", - "value": "*", + "value": "(", }, Object { "loc": Object { "end": Object { "column": 12, - "line": 1, + "line": 2, }, "start": Object { - "column": 11, - "line": 1, + "column": 8, + "line": 2, }, }, "range": Array [ - 11, - 12, + 15, + 19, ], - "type": "Punctuator", - "value": "(", + "type": "Boolean", + "value": "true", }, Object { "loc": Object { "end": Object { "column": 13, - "line": 1, + "line": 2, }, "start": Object { "column": 12, - "line": 1, + "line": 2, }, }, "range": Array [ - 12, - 13, + 19, + 20, ], "type": "Punctuator", "value": ")", @@ -94919,16 +103013,16 @@ Object { "loc": Object { "end": Object { "column": 15, - "line": 1, + "line": 2, }, "start": Object { "column": 14, - "line": 1, + "line": 2, }, }, "range": Array [ - 14, - 15, + 21, + 22, ], "type": "Punctuator", "value": "{", @@ -94936,106 +103030,250 @@ Object { Object { "loc": Object { "end": Object { - "column": 21, - "line": 1, + "column": 9, + "line": 3, }, "start": Object { - "column": 16, - "line": 1, + "column": 4, + "line": 3, }, }, "range": Array [ - 16, - 21, + 27, + 32, ], "type": "Keyword", - "value": "yield", + "value": "break", }, Object { "loc": Object { "end": Object { - "column": 23, - "line": 1, + "column": 15, + "line": 3, }, "start": Object { - "column": 22, - "line": 1, + "column": 10, + "line": 3, }, }, "range": Array [ - 22, - 23, + 33, + 38, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "loop1", }, Object { "loc": Object { "end": Object { - "column": 24, - "line": 1, + "column": 16, + "line": 3, }, "start": Object { - "column": 23, - "line": 1, + "column": 15, + "line": 3, }, }, "range": Array [ - 23, - 24, + 38, + 39, ], "type": "Punctuator", - "value": ")", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 25, - "line": 1, + "column": 9, + "line": 4, }, "start": Object { - "column": 24, - "line": 1, + "column": 4, + "line": 4, }, }, "range": Array [ - 24, - 25, + 44, + 49, + ], + "type": "Keyword", + "value": "break", + }, + Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 4, + }, + "start": Object { + "column": 9, + "line": 4, + }, + }, + "range": Array [ + 49, + 50, ], "type": "Punctuator", "value": ";", }, + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 5, + }, + "start": Object { + "column": 2, + "line": 5, + }, + }, + "range": Array [ + 53, + 54, + ], + "type": "Punctuator", + "value": "}", + }, ], "type": "Program", } `; -exports[`javascript fixtures/globalReturn/return-identifier.src 1`] = ` +exports[`javascript fixtures/labels/label-continue.src 1`] = ` Object { "body": Array [ Object { - "argument": Object { + "body": Object { + "body": Object { + "body": Array [ + Object { + "label": Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 3, + }, + "start": Object { + "column": 13, + "line": 3, + }, + }, + "name": "loop1", + "range": Array [ + 36, + 41, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 19, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 3, + }, + }, + "range": Array [ + 27, + 42, + ], + "type": "ContinueStatement", + }, + Object { + "label": null, + "loc": Object { + "end": Object { + "column": 13, + "line": 4, + }, + "start": Object { + "column": 4, + "line": 4, + }, + }, + "range": Array [ + 47, + 56, + ], + "type": "ContinueStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 3, + "line": 5, + }, + "start": Object { + "column": 14, + "line": 2, + }, + }, + "range": Array [ + 21, + 60, + ], + "type": "BlockStatement", + }, "loc": Object { "end": Object { - "column": 11, + "column": 3, + "line": 5, + }, + "start": Object { + "column": 2, + "line": 2, + }, + }, + "range": Array [ + 9, + 60, + ], + "test": Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 2, + }, + "start": Object { + "column": 8, + "line": 2, + }, + }, + "range": Array [ + 15, + 19, + ], + "raw": "true", + "type": "Literal", + "value": true, + }, + "type": "WhileStatement", + }, + "label": Object { + "loc": Object { + "end": Object { + "column": 5, "line": 1, }, "start": Object { - "column": 7, + "column": 0, "line": 1, }, }, - "name": "fooz", + "name": "loop1", "range": Array [ - 7, - 11, + 0, + 5, ], "type": "Identifier", }, "loc": Object { "end": Object { - "column": 12, - "line": 1, + "column": 3, + "line": 5, }, "start": Object { "column": 0, @@ -95044,15 +103282,15 @@ Object { }, "range": Array [ 0, - 12, + 60, ], - "type": "ReturnStatement", + "type": "LabeledStatement", }, ], "loc": Object { "end": Object { "column": 0, - "line": 2, + "line": 6, }, "start": Object { "column": 0, @@ -95061,312 +103299,302 @@ Object { }, "range": Array [ 0, - 13, + 61, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 6, - "line": 1, + "column": 5, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 5, + ], + "type": "Identifier", + "value": "loop1", + }, + Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "range": Array [ + 5, + 6, + ], + "type": "Punctuator", + "value": ":", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 2, }, "start": Object { - "column": 0, - "line": 1, + "column": 2, + "line": 2, }, }, "range": Array [ - 0, - 6, + 9, + 14, ], "type": "Keyword", - "value": "return", + "value": "while", }, Object { "loc": Object { "end": Object { - "column": 11, - "line": 1, + "column": 8, + "line": 2, }, "start": Object { "column": 7, - "line": 1, + "line": 2, }, }, "range": Array [ - 7, - 11, + 14, + 15, ], - "type": "Identifier", - "value": "fooz", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { "column": 12, - "line": 1, + "line": 2, }, "start": Object { - "column": 11, - "line": 1, + "column": 8, + "line": 2, }, }, "range": Array [ - 11, - 12, + 15, + 19, ], - "type": "Punctuator", - "value": ";", + "type": "Boolean", + "value": "true", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/globalReturn/return-no-arg.src 1`] = ` -Object { - "body": Array [ Object { - "argument": null, "loc": Object { "end": Object { - "column": 7, - "line": 1, + "column": 13, + "line": 2, }, "start": Object { - "column": 0, - "line": 1, + "column": 12, + "line": 2, }, }, "range": Array [ - 0, - 7, + 19, + 20, ], - "type": "ReturnStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Punctuator", + "value": ")", }, - }, - "range": Array [ - 0, - 8, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 6, - "line": 1, + "column": 15, + "line": 2, }, "start": Object { - "column": 0, - "line": 1, + "column": 14, + "line": 2, }, }, "range": Array [ - 0, - 6, + 21, + 22, ], - "type": "Keyword", - "value": "return", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 1, + "column": 12, + "line": 3, }, "start": Object { - "column": 6, - "line": 1, + "column": 4, + "line": 3, }, }, "range": Array [ - 6, - 7, + 27, + 35, ], - "type": "Punctuator", - "value": ";", + "type": "Keyword", + "value": "continue", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/globalReturn/return-true.src 1`] = ` -Object { - "body": Array [ Object { - "argument": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, + "loc": Object { + "end": Object { + "column": 18, + "line": 3, + }, + "start": Object { + "column": 13, + "line": 3, }, - "range": Array [ - 7, - 11, - ], - "raw": "true", - "type": "Literal", - "value": true, }, + "range": Array [ + 36, + 41, + ], + "type": "Identifier", + "value": "loop1", + }, + Object { "loc": Object { "end": Object { - "column": 12, - "line": 1, + "column": 19, + "line": 3, }, "start": Object { - "column": 0, - "line": 1, + "column": 18, + "line": 3, }, }, "range": Array [ - 0, - 12, + 41, + 42, ], - "type": "ReturnStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Punctuator", + "value": ";", }, - }, - "range": Array [ - 0, - 13, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 6, - "line": 1, + "column": 12, + "line": 4, }, "start": Object { - "column": 0, - "line": 1, + "column": 4, + "line": 4, }, }, "range": Array [ - 0, - 6, + 47, + 55, ], "type": "Keyword", - "value": "return", + "value": "continue", }, Object { "loc": Object { "end": Object { - "column": 11, - "line": 1, + "column": 13, + "line": 4, }, "start": Object { - "column": 7, - "line": 1, + "column": 12, + "line": 4, }, }, "range": Array [ - 7, - 11, + 55, + 56, ], - "type": "Boolean", - "value": "true", + "type": "Punctuator", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 12, - "line": 1, + "column": 3, + "line": 5, }, "start": Object { - "column": 11, - "line": 1, + "column": 2, + "line": 5, }, }, "range": Array [ - 11, - 12, + 59, + 60, ], "type": "Punctuator", - "value": ";", + "value": "}", }, ], "type": "Program", } `; -exports[`javascript fixtures/importMeta/simple-import-meta.src 1`] = ` +exports[`javascript fixtures/modules/error-delete.src 1`] = ` Object { "body": Array [ Object { - "expression": Object { - "computed": false, + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 18, + ], + "source": Object { "loc": Object { "end": Object { - "column": 15, + "column": 17, "line": 1, }, "start": Object { - "column": 0, + "column": 14, "line": 1, }, }, - "object": Object { + "range": Array [ + 14, + 17, + ], + "raw": "\\"x\\"", + "type": "Literal", + "value": "x", + }, + "specifiers": Array [ + Object { "loc": Object { "end": Object { - "column": 11, + "column": 8, "line": 1, }, "start": Object { - "column": 0, + "column": 7, "line": 1, }, }, - "meta": Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "name": "import", - "range": Array [ - 0, - 6, - ], - "type": "Identifier", - }, - "property": Object { + "local": Object { "loc": Object { "end": Object { - "column": 11, + "column": 8, "line": 1, }, "start": Object { @@ -95374,56 +103602,73 @@ Object { "line": 1, }, }, - "name": "meta", + "name": "x", "range": Array [ 7, - 11, + 8, ], "type": "Identifier", }, "range": Array [ - 0, - 11, + 7, + 8, ], - "type": "MetaProperty", + "type": "ImportDefaultSpecifier", }, - "property": Object { + ], + "type": "ImportDeclaration", + }, + Object { + "expression": Object { + "argument": Object { "loc": Object { "end": Object { - "column": 15, - "line": 1, + "column": 8, + "line": 2, }, "start": Object { - "column": 12, - "line": 1, + "column": 7, + "line": 2, }, }, - "name": "url", + "name": "x", "range": Array [ - 12, - 15, + 26, + 27, ], "type": "Identifier", }, + "loc": Object { + "end": Object { + "column": 8, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 2, + }, + }, + "operator": "delete", + "prefix": true, "range": Array [ - 0, - 15, + 19, + 27, ], - "type": "MemberExpression", + "type": "UnaryExpression", }, "loc": Object { "end": Object { - "column": 16, - "line": 1, + "column": 9, + "line": 2, }, "start": Object { "column": 0, - "line": 1, + "line": 2, }, }, "range": Array [ - 0, - 16, + 19, + 28, ], "type": "ExpressionStatement", }, @@ -95431,7 +103676,7 @@ Object { "loc": Object { "end": Object { "column": 0, - "line": 2, + "line": 3, }, "start": Object { "column": 0, @@ -95440,7 +103685,7 @@ Object { }, "range": Array [ 0, - 17, + 29, ], "sourceType": "module", "tokens": Array [ @@ -95465,89 +103710,125 @@ Object { Object { "loc": Object { "end": Object { - "column": 7, + "column": 8, "line": 1, }, "start": Object { - "column": 6, + "column": 7, "line": 1, }, }, "range": Array [ - 6, 7, + 8, ], - "type": "Punctuator", - "value": ".", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 13, "line": 1, }, "start": Object { - "column": 7, + "column": 9, "line": 1, }, }, "range": Array [ - 7, - 11, + 9, + 13, ], "type": "Identifier", - "value": "meta", + "value": "from", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 17, "line": 1, }, "start": Object { - "column": 11, + "column": 14, "line": 1, }, }, "range": Array [ - 11, - 12, + 14, + 17, ], - "type": "Punctuator", - "value": ".", + "type": "String", + "value": "\\"x\\"", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 18, "line": 1, }, "start": Object { - "column": 12, + "column": 17, "line": 1, }, }, "range": Array [ - 12, - 15, + 17, + 18, + ], + "type": "Punctuator", + "value": ";", + }, + Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 2, + }, + }, + "range": Array [ + 19, + 25, + ], + "type": "Keyword", + "value": "delete", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 2, + }, + "start": Object { + "column": 7, + "line": 2, + }, + }, + "range": Array [ + 26, + 27, ], "type": "Identifier", - "value": "url", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 16, - "line": 1, + "column": 9, + "line": 2, }, "start": Object { - "column": 15, - "line": 1, + "column": 8, + "line": 2, }, }, "range": Array [ - 15, - 16, + 27, + 28, ], "type": "Punctuator", "value": ";", @@ -95557,157 +103838,107 @@ Object { } `; -exports[`javascript fixtures/labels/label-break.src 1`] = ` +exports[`javascript fixtures/modules/error-function.src 1`] = ` Object { "body": Array [ Object { + "async": false, "body": Object { - "body": Object { - "body": Array [ - Object { - "label": Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 3, - }, - "start": Object { - "column": 10, - "line": 3, - }, - }, - "name": "loop1", - "range": Array [ - 33, - 38, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 16, - "line": 3, - }, - "start": Object { - "column": 4, - "line": 3, - }, - }, - "range": Array [ - 27, - 39, - ], - "type": "BreakStatement", - }, - Object { - "label": null, + "body": Array [ + Object { + "declaration": Object { "loc": Object { "end": Object { - "column": 10, - "line": 4, + "column": 23, + "line": 2, }, "start": Object { - "column": 4, - "line": 4, + "column": 16, + "line": 2, }, }, + "name": "friends", "range": Array [ - 44, - 50, + 31, + 38, ], - "type": "BreakStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 3, - "line": 5, + "type": "Identifier", }, - "start": Object { - "column": 14, - "line": 2, + "loc": Object { + "end": Object { + "column": 24, + "line": 2, + }, + "start": Object { + "column": 1, + "line": 2, + }, }, + "range": Array [ + 16, + 39, + ], + "type": "ExportDefaultDeclaration", }, - "range": Array [ - 21, - 54, - ], - "type": "BlockStatement", - }, + ], "loc": Object { "end": Object { - "column": 3, - "line": 5, + "column": 1, + "line": 3, }, "start": Object { - "column": 2, - "line": 2, + "column": 13, + "line": 1, }, }, "range": Array [ - 9, - 54, + 13, + 41, ], - "test": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 2, - }, - "start": Object { - "column": 8, - "line": 2, - }, - }, - "range": Array [ - 15, - 19, - ], - "raw": "true", - "type": "Literal", - "value": true, - }, - "type": "WhileStatement", + "type": "BlockStatement", }, - "label": Object { + "expression": false, + "generator": false, + "id": Object { "loc": Object { "end": Object { - "column": 5, + "column": 10, "line": 1, }, "start": Object { - "column": 0, + "column": 9, "line": 1, }, }, - "name": "loop1", + "name": "x", "range": Array [ - 0, - 5, + 9, + 10, ], "type": "Identifier", }, "loc": Object { "end": Object { - "column": 3, - "line": 5, + "column": 1, + "line": 3, }, "start": Object { "column": 0, "line": 1, }, }, + "params": Array [], "range": Array [ 0, - 54, + 41, ], - "type": "LabeledStatement", + "type": "FunctionDeclaration", }, ], "loc": Object { "end": Object { "column": 0, - "line": 6, + "line": 5, }, "start": Object { "column": 0, @@ -95716,14 +103947,14 @@ Object { }, "range": Array [ 0, - 55, + 43, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 8, "line": 1, }, "start": Object { @@ -95733,61 +103964,43 @@ Object { }, "range": Array [ 0, - 5, + 8, ], - "type": "Identifier", - "value": "loop1", + "type": "Keyword", + "value": "function", }, Object { "loc": Object { "end": Object { - "column": 6, + "column": 10, "line": 1, }, "start": Object { - "column": 5, + "column": 9, "line": 1, }, }, - "range": Array [ - 5, - 6, - ], - "type": "Punctuator", - "value": ":", - }, - Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 2, - }, - "start": Object { - "column": 2, - "line": 2, - }, - }, "range": Array [ 9, - 14, + 10, ], - "type": "Keyword", - "value": "while", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 8, - "line": 2, + "column": 11, + "line": 1, }, "start": Object { - "column": 7, - "line": 2, + "column": 10, + "line": 1, }, }, "range": Array [ - 14, - 15, + 10, + 11, ], "type": "Punctuator", "value": "(", @@ -95796,101 +104009,101 @@ Object { "loc": Object { "end": Object { "column": 12, - "line": 2, + "line": 1, }, "start": Object { - "column": 8, - "line": 2, + "column": 11, + "line": 1, }, }, "range": Array [ - 15, - 19, + 11, + 12, ], - "type": "Boolean", - "value": "true", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 13, - "line": 2, + "column": 14, + "line": 1, }, "start": Object { - "column": 12, - "line": 2, + "column": 13, + "line": 1, }, }, "range": Array [ - 19, - 20, + 13, + 14, ], "type": "Punctuator", - "value": ")", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 7, "line": 2, }, "start": Object { - "column": 14, + "column": 1, "line": 2, }, }, "range": Array [ - 21, + 16, 22, ], - "type": "Punctuator", - "value": "{", + "type": "Keyword", + "value": "export", }, Object { "loc": Object { "end": Object { - "column": 9, - "line": 3, + "column": 15, + "line": 2, }, "start": Object { - "column": 4, - "line": 3, + "column": 8, + "line": 2, }, }, "range": Array [ - 27, - 32, + 23, + 30, ], "type": "Keyword", - "value": "break", + "value": "default", }, Object { "loc": Object { "end": Object { - "column": 15, - "line": 3, + "column": 23, + "line": 2, }, "start": Object { - "column": 10, - "line": 3, + "column": 16, + "line": 2, }, }, "range": Array [ - 33, + 31, 38, ], "type": "Identifier", - "value": "loop1", + "value": "friends", }, Object { "loc": Object { "end": Object { - "column": 16, - "line": 3, + "column": 24, + "line": 2, }, "start": Object { - "column": 15, - "line": 3, + "column": 23, + "line": 2, }, }, "range": Array [ @@ -95903,207 +104116,263 @@ Object { Object { "loc": Object { "end": Object { - "column": 9, - "line": 4, + "column": 1, + "line": 3, }, "start": Object { - "column": 4, - "line": 4, + "column": 0, + "line": 3, }, }, "range": Array [ - 44, - 49, + 40, + 41, ], - "type": "Keyword", - "value": "break", + "type": "Punctuator", + "value": "}", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/modules/error-strict.src 1`] = ` +Object { + "body": Array [ Object { "loc": Object { "end": Object { - "column": 10, - "line": 4, + "column": 26, + "line": 1, }, "start": Object { - "column": 9, - "line": 4, + "column": 0, + "line": 1, }, }, "range": Array [ - 49, - 50, + 0, + 26, ], - "type": "Punctuator", - "value": ";", - }, - Object { - "loc": Object { - "end": Object { - "column": 3, - "line": 5, - }, - "start": Object { - "column": 2, - "line": 5, + "source": Object { + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, }, + "range": Array [ + 18, + 25, + ], + "raw": "\\"house\\"", + "type": "Literal", + "value": "house", }, - "range": Array [ - 53, - 54, + "specifiers": Array [ + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "local": Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "name": "house", + "range": Array [ + 7, + 12, + ], + "type": "Identifier", + }, + "range": Array [ + 7, + 12, + ], + "type": "ImportDefaultSpecifier", + }, ], - "type": "Punctuator", - "value": "}", + "type": "ImportDeclaration", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/labels/label-continue.src 1`] = ` -Object { - "body": Array [ Object { "body": Object { - "body": Object { - "body": Array [ - Object { - "label": Object { + "body": Array [ + Object { + "expression": Object { + "arguments": Array [ + Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 4, + }, + "start": Object { + "column": 13, + "line": 4, + }, + }, + "name": "roof", + "range": Array [ + 56, + 60, + ], + "type": "Identifier", + }, + ], + "callee": Object { + "computed": false, "loc": Object { "end": Object { - "column": 18, - "line": 3, + "column": 12, + "line": 4, }, "start": Object { - "column": 13, - "line": 3, + "column": 1, + "line": 4, }, }, - "name": "loop1", - "range": Array [ - 36, - 41, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 19, - "line": 3, + "object": Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 4, + }, + "start": Object { + "column": 1, + "line": 4, + }, + }, + "name": "console", + "range": Array [ + 44, + 51, + ], + "type": "Identifier", }, - "start": Object { - "column": 4, - "line": 3, + "property": Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 4, + }, + "start": Object { + "column": 9, + "line": 4, + }, + }, + "name": "log", + "range": Array [ + 52, + 55, + ], + "type": "Identifier", }, + "range": Array [ + 44, + 55, + ], + "type": "MemberExpression", }, - "range": Array [ - 27, - 42, - ], - "type": "ContinueStatement", - }, - Object { - "label": null, "loc": Object { "end": Object { - "column": 13, + "column": 18, "line": 4, }, "start": Object { - "column": 4, + "column": 1, "line": 4, }, }, "range": Array [ - 47, - 56, + 44, + 61, ], - "type": "ContinueStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 3, - "line": 5, + "type": "CallExpression", }, - "start": Object { - "column": 14, - "line": 2, + "loc": Object { + "end": Object { + "column": 19, + "line": 4, + }, + "start": Object { + "column": 1, + "line": 4, + }, }, + "range": Array [ + 44, + 62, + ], + "type": "ExpressionStatement", }, - "range": Array [ - 21, - 60, - ], - "type": "BlockStatement", - }, + ], "loc": Object { "end": Object { - "column": 3, + "column": 1, "line": 5, }, "start": Object { - "column": 2, - "line": 2, + "column": 13, + "line": 3, }, }, "range": Array [ - 9, - 60, + 41, + 64, ], - "test": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 2, - }, - "start": Object { - "column": 8, - "line": 2, - }, - }, - "range": Array [ - 15, - 19, - ], - "raw": "true", - "type": "Literal", - "value": true, + "type": "BlockStatement", + }, + "loc": Object { + "end": Object { + "column": 1, + "line": 5, + }, + "start": Object { + "column": 0, + "line": 3, }, - "type": "WhileStatement", }, - "label": Object { + "object": Object { "loc": Object { "end": Object { - "column": 5, - "line": 1, + "column": 11, + "line": 3, }, "start": Object { - "column": 0, - "line": 1, + "column": 6, + "line": 3, }, }, - "name": "loop1", + "name": "house", "range": Array [ - 0, - 5, + 34, + 39, ], "type": "Identifier", }, - "loc": Object { - "end": Object { - "column": 3, - "line": 5, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, "range": Array [ - 0, - 60, + 28, + 64, ], - "type": "LabeledStatement", + "type": "WithStatement", }, ], "loc": Object { @@ -96118,14 +104387,14 @@ Object { }, "range": Array [ 0, - 61, + 65, ], - "sourceType": "script", + "sourceType": "module", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 6, "line": 1, }, "start": Object { @@ -96135,118 +104404,136 @@ Object { }, "range": Array [ 0, - 5, + 6, + ], + "type": "Keyword", + "value": "import", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "range": Array [ + 7, + 12, ], "type": "Identifier", - "value": "loop1", + "value": "house", }, Object { "loc": Object { "end": Object { - "column": 6, + "column": 17, "line": 1, }, "start": Object { - "column": 5, + "column": 13, "line": 1, }, }, "range": Array [ - 5, - 6, + 13, + 17, ], - "type": "Punctuator", - "value": ":", + "type": "Identifier", + "value": "from", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 2, + "column": 25, + "line": 1, }, "start": Object { - "column": 2, - "line": 2, + "column": 18, + "line": 1, }, }, "range": Array [ - 9, - 14, + 18, + 25, ], - "type": "Keyword", - "value": "while", + "type": "String", + "value": "\\"house\\"", }, Object { "loc": Object { "end": Object { - "column": 8, - "line": 2, + "column": 26, + "line": 1, }, "start": Object { - "column": 7, - "line": 2, + "column": 25, + "line": 1, }, }, "range": Array [ - 14, - 15, + 25, + 26, ], "type": "Punctuator", - "value": "(", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 12, - "line": 2, + "column": 4, + "line": 3, }, "start": Object { - "column": 8, - "line": 2, + "column": 0, + "line": 3, }, }, "range": Array [ - 15, - 19, + 28, + 32, ], - "type": "Boolean", - "value": "true", + "type": "Keyword", + "value": "with", }, Object { "loc": Object { "end": Object { - "column": 13, - "line": 2, + "column": 6, + "line": 3, }, "start": Object { - "column": 12, - "line": 2, + "column": 5, + "line": 3, }, }, "range": Array [ - 19, - 20, + 33, + 34, ], "type": "Punctuator", - "value": ")", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 15, - "line": 2, + "column": 11, + "line": 3, }, "start": Object { - "column": 14, - "line": 2, + "column": 6, + "line": 3, }, }, "range": Array [ - 21, - 22, + 34, + 39, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "house", }, Object { "loc": Object { @@ -96255,21 +104542,21 @@ Object { "line": 3, }, "start": Object { - "column": 4, + "column": 11, "line": 3, }, }, "range": Array [ - 27, - 35, + 39, + 40, ], - "type": "Keyword", - "value": "continue", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 14, "line": 3, }, "start": Object { @@ -96278,29 +104565,47 @@ Object { }, }, "range": Array [ - 36, 41, + 42, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 4, + }, + "start": Object { + "column": 1, + "line": 4, + }, + }, + "range": Array [ + 44, + 51, ], "type": "Identifier", - "value": "loop1", + "value": "console", }, Object { "loc": Object { "end": Object { - "column": 19, - "line": 3, + "column": 9, + "line": 4, }, "start": Object { - "column": 18, - "line": 3, + "column": 8, + "line": 4, }, }, "range": Array [ - 41, - 42, + 51, + 52, ], "type": "Punctuator", - "value": ";", + "value": ".", }, Object { "loc": Object { @@ -96309,16 +104614,16 @@ Object { "line": 4, }, "start": Object { - "column": 4, + "column": 9, "line": 4, }, }, "range": Array [ - 47, + 52, 55, ], - "type": "Keyword", - "value": "continue", + "type": "Identifier", + "value": "log", }, Object { "loc": Object { @@ -96336,166 +104641,128 @@ Object { 56, ], "type": "Punctuator", - "value": ";", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 3, - "line": 5, + "column": 17, + "line": 4, }, "start": Object { - "column": 2, - "line": 5, + "column": 13, + "line": 4, }, }, "range": Array [ - 59, + 56, 60, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "roof", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/modules/error-delete.src 1`] = ` -Object { - "body": Array [ Object { "loc": Object { "end": Object { "column": 18, - "line": 1, + "line": 4, }, "start": Object { - "column": 0, - "line": 1, + "column": 17, + "line": 4, }, }, "range": Array [ - 0, - 18, + 60, + 61, ], - "source": Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 4, }, - "range": Array [ - 14, - 17, - ], - "raw": "\\"x\\"", - "type": "Literal", - "value": "x", - }, - "specifiers": Array [ - Object { - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, - }, - "local": Object { - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 7, - 8, - ], - "type": "Identifier", - }, - "range": Array [ - 7, - 8, - ], - "type": "ImportDefaultSpecifier", + "start": Object { + "column": 18, + "line": 4, }, + }, + "range": Array [ + 61, + 62, ], - "type": "ImportDeclaration", + "type": "Punctuator", + "value": ";", }, Object { - "expression": Object { - "argument": Object { - "loc": Object { - "end": Object { - "column": 8, - "line": 2, - }, - "start": Object { - "column": 7, - "line": 2, - }, - }, - "name": "x", - "range": Array [ - 26, - 27, - ], - "type": "Identifier", + "loc": Object { + "end": Object { + "column": 1, + "line": 5, + }, + "start": Object { + "column": 0, + "line": 5, }, + }, + "range": Array [ + 63, + 64, + ], + "type": "Punctuator", + "value": "}", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/modules/export-default-array.src 1`] = ` +Object { + "body": Array [ + Object { + "declaration": Object { + "elements": Array [], "loc": Object { "end": Object { - "column": 8, - "line": 2, + "column": 17, + "line": 1, }, "start": Object { - "column": 0, - "line": 2, + "column": 15, + "line": 1, }, }, - "operator": "delete", - "prefix": true, "range": Array [ - 19, - 27, + 15, + 17, ], - "type": "UnaryExpression", + "type": "ArrayExpression", }, "loc": Object { "end": Object { - "column": 9, - "line": 2, + "column": 18, + "line": 1, }, "start": Object { "column": 0, - "line": 2, + "line": 1, }, }, "range": Array [ - 19, - 28, + 0, + 18, ], - "type": "ExpressionStatement", + "type": "ExportDefaultDeclaration", }, ], "loc": Object { "end": Object { "column": 0, - "line": 3, + "line": 2, }, "start": Object { "column": 0, @@ -96504,7 +104771,7 @@ Object { }, "range": Array [ 0, - 29, + 19, ], "sourceType": "module", "tokens": Array [ @@ -96524,12 +104791,12 @@ Object { 6, ], "type": "Keyword", - "value": "import", + "value": "export", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 14, "line": 1, }, "start": Object { @@ -96539,28 +104806,28 @@ Object { }, "range": Array [ 7, - 8, + 14, ], - "type": "Identifier", - "value": "x", + "type": "Keyword", + "value": "default", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 16, "line": 1, }, "start": Object { - "column": 9, + "column": 15, "line": 1, }, }, "range": Array [ - 9, - 13, + 15, + 16, ], - "type": "Identifier", - "value": "from", + "type": "Punctuator", + "value": "[", }, Object { "loc": Object { @@ -96569,16 +104836,16 @@ Object { "line": 1, }, "start": Object { - "column": 14, + "column": 16, "line": 1, }, }, "range": Array [ - 14, + 16, 17, ], - "type": "String", - "value": "\\"x\\"", + "type": "Punctuator", + "value": "]", }, Object { "loc": Object { @@ -96598,166 +104865,261 @@ Object { "type": "Punctuator", "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/modules/export-default-class.src 1`] = ` +Object { + "body": Array [ + Object { + "declaration": Object { + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 1, + "line": 3, + }, + "start": Object { + "column": 21, + "line": 1, + }, + }, + "range": Array [ + 21, + 25, + ], + "type": "ClassBody", + }, + "id": null, + "loc": Object { + "end": Object { + "column": 1, + "line": 3, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "range": Array [ + 15, + 25, + ], + "superClass": null, + "type": "ClassDeclaration", + }, + "loc": Object { + "end": Object { + "column": 1, + "line": 3, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 25, + ], + "type": "ExportDefaultDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 4, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 26, + ], + "sourceType": "module", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 6, + ], + "type": "Keyword", + "value": "export", + }, + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "range": Array [ + 7, + 14, + ], + "type": "Keyword", + "value": "default", + }, Object { "loc": Object { "end": Object { - "column": 6, - "line": 2, + "column": 20, + "line": 1, }, "start": Object { - "column": 0, - "line": 2, + "column": 15, + "line": 1, }, }, "range": Array [ - 19, - 25, + 15, + 20, ], "type": "Keyword", - "value": "delete", + "value": "class", }, Object { "loc": Object { "end": Object { - "column": 8, - "line": 2, + "column": 22, + "line": 1, }, "start": Object { - "column": 7, - "line": 2, + "column": 21, + "line": 1, }, }, "range": Array [ - 26, - 27, + 21, + 22, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 9, - "line": 2, + "column": 1, + "line": 3, }, "start": Object { - "column": 8, - "line": 2, + "column": 0, + "line": 3, }, }, "range": Array [ - 27, - 28, + 24, + 25, ], "type": "Punctuator", - "value": ";", + "value": "}", }, ], "type": "Program", } `; -exports[`javascript fixtures/modules/error-function.src 1`] = ` +exports[`javascript fixtures/modules/export-default-expression.src 1`] = ` Object { "body": Array [ Object { - "async": false, - "body": Object { - "body": Array [ - Object { - "declaration": Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 2, - }, - "start": Object { - "column": 16, - "line": 2, - }, - }, - "name": "friends", - "range": Array [ - 31, - 38, - ], - "type": "Identifier", + "declaration": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, }, - "loc": Object { - "end": Object { - "column": 24, - "line": 2, - }, - "start": Object { - "column": 1, - "line": 2, - }, + "start": Object { + "column": 16, + "line": 1, }, - "range": Array [ - 16, - 39, - ], - "type": "ExportDefaultDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 1, - "line": 3, - }, - "start": Object { - "column": 13, - "line": 1, }, + "range": Array [ + 16, + 17, + ], + "raw": "1", + "type": "Literal", + "value": 1, }, - "range": Array [ - 13, - 41, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": Object { "loc": Object { "end": Object { - "column": 10, + "column": 21, "line": 1, }, "start": Object { - "column": 9, + "column": 16, "line": 1, }, }, - "name": "x", + "operator": "+", "range": Array [ - 9, - 10, + 16, + 21, ], - "type": "Identifier", + "right": Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "range": Array [ + 20, + 21, + ], + "raw": "2", + "type": "Literal", + "value": 2, + }, + "type": "BinaryExpression", }, "loc": Object { "end": Object { - "column": 1, - "line": 3, + "column": 23, + "line": 1, }, "start": Object { "column": 0, "line": 1, }, }, - "params": Array [], "range": Array [ 0, - 41, + 23, ], - "type": "FunctionDeclaration", + "type": "ExportDefaultDeclaration", }, ], "loc": Object { "end": Object { "column": 0, - "line": 5, + "line": 2, }, "start": Object { "column": 0, @@ -96766,14 +105128,14 @@ Object { }, "range": Array [ 0, - 43, + 24, ], - "sourceType": "script", + "sourceType": "module", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 8, + "column": 6, "line": 1, }, "start": Object { @@ -96783,43 +105145,43 @@ Object { }, "range": Array [ 0, - 8, + 6, ], "type": "Keyword", - "value": "function", + "value": "export", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 14, "line": 1, }, "start": Object { - "column": 9, + "column": 7, "line": 1, }, }, "range": Array [ - 9, - 10, + 7, + 14, ], - "type": "Identifier", - "value": "x", + "type": "Keyword", + "value": "default", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 16, "line": 1, }, "start": Object { - "column": 10, + "column": 15, "line": 1, }, }, "range": Array [ - 10, - 11, + 15, + 16, ], "type": "Punctuator", "value": "(", @@ -96827,377 +105189,163 @@ Object { Object { "loc": Object { "end": Object { - "column": 12, + "column": 17, "line": 1, }, "start": Object { - "column": 11, + "column": 16, "line": 1, }, }, "range": Array [ - 11, - 12, + 16, + 17, ], - "type": "Punctuator", - "value": ")", + "type": "Numeric", + "value": "1", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 19, "line": 1, }, "start": Object { - "column": 13, + "column": 18, "line": 1, }, }, "range": Array [ - 13, - 14, + 18, + 19, ], "type": "Punctuator", - "value": "{", + "value": "+", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 2, + "column": 21, + "line": 1, }, "start": Object { - "column": 1, - "line": 2, + "column": 20, + "line": 1, }, }, "range": Array [ - 16, - 22, + 20, + 21, ], - "type": "Keyword", - "value": "export", + "type": "Numeric", + "value": "2", }, Object { "loc": Object { "end": Object { - "column": 15, - "line": 2, + "column": 22, + "line": 1, }, "start": Object { - "column": 8, - "line": 2, + "column": 21, + "line": 1, }, }, "range": Array [ - 23, - 30, + 21, + 22, ], - "type": "Keyword", - "value": "default", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { "column": 23, - "line": 2, - }, - "start": Object { - "column": 16, - "line": 2, - }, - }, - "range": Array [ - 31, - 38, - ], - "type": "Identifier", - "value": "friends", - }, - Object { - "loc": Object { - "end": Object { - "column": 24, - "line": 2, + "line": 1, }, "start": Object { - "column": 23, - "line": 2, + "column": 22, + "line": 1, }, }, "range": Array [ - 38, - 39, + 22, + 23, ], "type": "Punctuator", "value": ";", }, - Object { - "loc": Object { - "end": Object { - "column": 1, - "line": 3, - }, - "start": Object { - "column": 0, - "line": 3, - }, - }, - "range": Array [ - 40, - 41, - ], - "type": "Punctuator", - "value": "}", - }, ], "type": "Program", } `; -exports[`javascript fixtures/modules/error-strict.src 1`] = ` +exports[`javascript fixtures/modules/export-default-function.src 1`] = ` Object { "body": Array [ Object { - "loc": Object { - "end": Object { - "column": 26, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 26, - ], - "source": Object { - "loc": Object { - "end": Object { - "column": 25, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, - }, - "range": Array [ - 18, - 25, - ], - "raw": "\\"house\\"", - "type": "Literal", - "value": "house", - }, - "specifiers": Array [ - Object { + "declaration": Object { + "async": false, + "body": Object { + "body": Array [], "loc": Object { "end": Object { - "column": 12, + "column": 29, "line": 1, }, "start": Object { - "column": 7, + "column": 27, "line": 1, }, }, - "local": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, - }, - "name": "house", - "range": Array [ - 7, - 12, - ], - "type": "Identifier", - }, "range": Array [ - 7, - 12, + 27, + 29, ], - "type": "ImportDefaultSpecifier", + "type": "BlockStatement", }, - ], - "type": "ImportDeclaration", - }, - Object { - "body": Object { - "body": Array [ - Object { - "expression": Object { - "arguments": Array [ - Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 4, - }, - "start": Object { - "column": 13, - "line": 4, - }, - }, - "name": "roof", - "range": Array [ - 56, - 60, - ], - "type": "Identifier", - }, - ], - "callee": Object { - "computed": false, - "loc": Object { - "end": Object { - "column": 12, - "line": 4, - }, - "start": Object { - "column": 1, - "line": 4, - }, - }, - "object": Object { - "loc": Object { - "end": Object { - "column": 8, - "line": 4, - }, - "start": Object { - "column": 1, - "line": 4, - }, - }, - "name": "console", - "range": Array [ - 44, - 51, - ], - "type": "Identifier", - }, - "property": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 4, - }, - "start": Object { - "column": 9, - "line": 4, - }, - }, - "name": "log", - "range": Array [ - 52, - 55, - ], - "type": "Identifier", - }, - "range": Array [ - 44, - 55, - ], - "type": "MemberExpression", - }, - "loc": Object { - "end": Object { - "column": 18, - "line": 4, - }, - "start": Object { - "column": 1, - "line": 4, - }, - }, - "range": Array [ - 44, - 61, - ], - "type": "CallExpression", - }, - "loc": Object { - "end": Object { - "column": 19, - "line": 4, - }, - "start": Object { - "column": 1, - "line": 4, - }, - }, - "range": Array [ - 44, - 62, - ], - "type": "ExpressionStatement", - }, - ], + "expression": false, + "generator": false, + "id": null, "loc": Object { "end": Object { - "column": 1, - "line": 5, + "column": 29, + "line": 1, }, "start": Object { - "column": 13, - "line": 3, + "column": 15, + "line": 1, }, }, + "params": Array [], "range": Array [ - 41, - 64, + 15, + 29, ], - "type": "BlockStatement", + "type": "FunctionDeclaration", }, "loc": Object { "end": Object { - "column": 1, - "line": 5, - }, - "start": Object { - "column": 0, - "line": 3, + "column": 29, + "line": 1, }, - }, - "object": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 3, - }, - "start": Object { - "column": 6, - "line": 3, - }, + "start": Object { + "column": 0, + "line": 1, }, - "name": "house", - "range": Array [ - 34, - 39, - ], - "type": "Identifier", }, "range": Array [ - 28, - 64, + 0, + 29, ], - "type": "WithStatement", + "type": "ExportDefaultDeclaration", }, ], "loc": Object { "end": Object { "column": 0, - "line": 6, + "line": 2, }, "start": Object { "column": 0, @@ -97206,7 +105354,7 @@ Object { }, "range": Array [ 0, - 65, + 30, ], "sourceType": "module", "tokens": Array [ @@ -97226,12 +105374,12 @@ Object { 6, ], "type": "Keyword", - "value": "import", + "value": "export", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 14, "line": 1, }, "start": Object { @@ -97241,28 +105389,28 @@ Object { }, "range": Array [ 7, - 12, + 14, ], - "type": "Identifier", - "value": "house", + "type": "Keyword", + "value": "default", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 23, "line": 1, }, "start": Object { - "column": 13, + "column": 15, "line": 1, }, }, "range": Array [ - 13, - 17, + 15, + 23, ], - "type": "Identifier", - "value": "from", + "type": "Keyword", + "value": "function", }, Object { "loc": Object { @@ -97271,16 +105419,16 @@ Object { "line": 1, }, "start": Object { - "column": 18, + "column": 24, "line": 1, }, }, "range": Array [ - 18, + 24, 25, ], - "type": "String", - "value": "\\"house\\"", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { @@ -97298,238 +105446,244 @@ Object { 26, ], "type": "Punctuator", - "value": ";", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 4, - "line": 3, + "column": 28, + "line": 1, }, "start": Object { - "column": 0, - "line": 3, + "column": 27, + "line": 1, }, }, "range": Array [ + 27, 28, - 32, ], - "type": "Keyword", - "value": "with", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 6, - "line": 3, + "column": 29, + "line": 1, }, "start": Object { - "column": 5, - "line": 3, + "column": 28, + "line": 1, }, }, "range": Array [ - 33, - 34, + 28, + 29, ], "type": "Punctuator", - "value": "(", + "value": "}", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/modules/export-default-named-class.src 1`] = ` +Object { + "body": Array [ Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 3, - }, - "start": Object { - "column": 6, - "line": 3, + "declaration": Object { + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 1, + "line": 3, + }, + "start": Object { + "column": 26, + "line": 1, + }, + }, + "range": Array [ + 26, + 30, + ], + "type": "ClassBody", }, - }, - "range": Array [ - 34, - 39, - ], - "type": "Identifier", - "value": "house", - }, - Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 3, + "id": Object { + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 21, + "line": 1, + }, + }, + "name": "Test", + "range": Array [ + 21, + 25, + ], + "type": "Identifier", }, - "start": Object { - "column": 11, - "line": 3, + "loc": Object { + "end": Object { + "column": 1, + "line": 3, + }, + "start": Object { + "column": 15, + "line": 1, + }, }, + "range": Array [ + 15, + 30, + ], + "superClass": null, + "type": "ClassDeclaration", }, - "range": Array [ - 39, - 40, - ], - "type": "Punctuator", - "value": ")", - }, - Object { "loc": Object { "end": Object { - "column": 14, + "column": 1, "line": 3, }, "start": Object { - "column": 13, - "line": 3, + "column": 0, + "line": 1, }, }, "range": Array [ - 41, - 42, + 0, + 30, ], - "type": "Punctuator", - "value": "{", + "type": "ExportDefaultDeclaration", }, - Object { - "loc": Object { - "end": Object { - "column": 8, - "line": 4, - }, - "start": Object { - "column": 1, - "line": 4, - }, - }, - "range": Array [ - 44, - 51, - ], - "type": "Identifier", - "value": "console", + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 4, }, - Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 4, - }, - "start": Object { - "column": 8, - "line": 4, - }, - }, - "range": Array [ - 51, - 52, - ], - "type": "Punctuator", - "value": ".", + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 31, + ], + "sourceType": "module", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 12, - "line": 4, + "column": 6, + "line": 1, }, "start": Object { - "column": 9, - "line": 4, + "column": 0, + "line": 1, }, }, "range": Array [ - 52, - 55, + 0, + 6, ], - "type": "Identifier", - "value": "log", + "type": "Keyword", + "value": "export", }, Object { "loc": Object { "end": Object { - "column": 13, - "line": 4, + "column": 14, + "line": 1, }, "start": Object { - "column": 12, - "line": 4, + "column": 7, + "line": 1, }, }, "range": Array [ - 55, - 56, + 7, + 14, ], - "type": "Punctuator", - "value": "(", + "type": "Keyword", + "value": "default", }, Object { "loc": Object { "end": Object { - "column": 17, - "line": 4, + "column": 20, + "line": 1, }, "start": Object { - "column": 13, - "line": 4, + "column": 15, + "line": 1, }, }, "range": Array [ - 56, - 60, + 15, + 20, ], - "type": "Identifier", - "value": "roof", + "type": "Keyword", + "value": "class", }, Object { "loc": Object { "end": Object { - "column": 18, - "line": 4, + "column": 25, + "line": 1, }, "start": Object { - "column": 17, - "line": 4, + "column": 21, + "line": 1, }, }, "range": Array [ - 60, - 61, + 21, + 25, ], - "type": "Punctuator", - "value": ")", + "type": "Identifier", + "value": "Test", }, Object { "loc": Object { "end": Object { - "column": 19, - "line": 4, + "column": 27, + "line": 1, }, "start": Object { - "column": 18, - "line": 4, + "column": 26, + "line": 1, }, }, "range": Array [ - 61, - 62, + 26, + 27, ], "type": "Punctuator", - "value": ";", + "value": "{", }, Object { "loc": Object { "end": Object { "column": 1, - "line": 5, + "line": 3, }, "start": Object { "column": 0, - "line": 5, + "line": 3, }, }, "range": Array [ - 63, - 64, + 29, + 30, ], "type": "Punctuator", "value": "}", @@ -97539,15 +105693,53 @@ Object { } `; -exports[`javascript fixtures/modules/export-default-array.src 1`] = ` +exports[`javascript fixtures/modules/export-default-named-function.src 1`] = ` Object { "body": Array [ Object { "declaration": Object { - "elements": Array [], + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 32, + "line": 1, + }, + "start": Object { + "column": 30, + "line": 1, + }, + }, + "range": Array [ + 30, + 32, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": Object { + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, + }, + }, + "name": "foo", + "range": Array [ + 24, + 27, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 17, + "column": 32, "line": 1, }, "start": Object { @@ -97555,15 +105747,16 @@ Object { "line": 1, }, }, + "params": Array [], "range": Array [ 15, - 17, + 32, ], - "type": "ArrayExpression", + "type": "FunctionDeclaration", }, "loc": Object { "end": Object { - "column": 18, + "column": 32, "line": 1, }, "start": Object { @@ -97573,7 +105766,7 @@ Object { }, "range": Array [ 0, - 18, + 32, ], "type": "ExportDefaultDeclaration", }, @@ -97590,7 +105783,7 @@ Object { }, "range": Array [ 0, - 19, + 33, ], "sourceType": "module", "tokens": Array [ @@ -97633,7 +105826,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 16, + "column": 23, "line": 1, }, "start": Object { @@ -97643,80 +105836,115 @@ Object { }, "range": Array [ 15, - 16, + 23, + ], + "type": "Keyword", + "value": "function", + }, + Object { + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, + }, + }, + "range": Array [ + 24, + 27, + ], + "type": "Identifier", + "value": "foo", + }, + Object { + "loc": Object { + "end": Object { + "column": 28, + "line": 1, + }, + "start": Object { + "column": 27, + "line": 1, + }, + }, + "range": Array [ + 27, + 28, ], "type": "Punctuator", - "value": "[", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 29, "line": 1, }, "start": Object { - "column": 16, + "column": 28, "line": 1, }, }, "range": Array [ - 16, - 17, + 28, + 29, ], "type": "Punctuator", - "value": "]", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 31, "line": 1, }, "start": Object { - "column": 17, + "column": 30, "line": 1, }, }, "range": Array [ - 17, - 18, + 30, + 31, ], "type": "Punctuator", - "value": ";", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 32, + "line": 1, + }, + "start": Object { + "column": 31, + "line": 1, + }, + }, + "range": Array [ + 31, + 32, + ], + "type": "Punctuator", + "value": "}", }, ], "type": "Program", } `; -exports[`javascript fixtures/modules/export-default-class.src 1`] = ` +exports[`javascript fixtures/modules/export-default-number.src 1`] = ` Object { "body": Array [ Object { "declaration": Object { - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 1, - "line": 3, - }, - "start": Object { - "column": 21, - "line": 1, - }, - }, - "range": Array [ - 21, - 25, - ], - "type": "ClassBody", - }, - "id": null, "loc": Object { "end": Object { - "column": 1, - "line": 3, + "column": 17, + "line": 1, }, "start": Object { "column": 15, @@ -97725,15 +105953,16 @@ Object { }, "range": Array [ 15, - 25, + 17, ], - "superClass": null, - "type": "ClassDeclaration", + "raw": "42", + "type": "Literal", + "value": 42, }, "loc": Object { "end": Object { - "column": 1, - "line": 3, + "column": 18, + "line": 1, }, "start": Object { "column": 0, @@ -97742,7 +105971,7 @@ Object { }, "range": Array [ 0, - 25, + 18, ], "type": "ExportDefaultDeclaration", }, @@ -97750,7 +105979,7 @@ Object { "loc": Object { "end": Object { "column": 0, - "line": 4, + "line": 2, }, "start": Object { "column": 0, @@ -97759,7 +105988,7 @@ Object { }, "range": Array [ 0, - 26, + 19, ], "sourceType": "module", "tokens": Array [ @@ -97797,130 +106026,133 @@ Object { 14, ], "type": "Keyword", - "value": "default", - }, - Object { - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "range": Array [ - 15, - 20, - ], - "type": "Keyword", - "value": "class", + "value": "default", }, Object { "loc": Object { "end": Object { - "column": 22, + "column": 17, "line": 1, }, "start": Object { - "column": 21, + "column": 15, "line": 1, }, }, "range": Array [ - 21, - 22, + 15, + 17, ], - "type": "Punctuator", - "value": "{", + "type": "Numeric", + "value": "42", }, Object { "loc": Object { "end": Object { - "column": 1, - "line": 3, + "column": 18, + "line": 1, }, "start": Object { - "column": 0, - "line": 3, + "column": 17, + "line": 1, }, }, "range": Array [ - 24, - 25, + 17, + 18, ], "type": "Punctuator", - "value": "}", + "value": ";", }, ], "type": "Program", } `; -exports[`javascript fixtures/modules/export-default-expression.src 1`] = ` +exports[`javascript fixtures/modules/export-default-object.src 1`] = ` Object { "body": Array [ Object { "declaration": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "range": Array [ - 16, - 17, - ], - "raw": "1", - "type": "Literal", - "value": 1, - }, "loc": Object { "end": Object { - "column": 21, + "column": 25, "line": 1, }, "start": Object { - "column": 16, + "column": 15, "line": 1, }, }, - "operator": "+", - "range": Array [ - 16, - 21, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "name": "foo", + "range": Array [ + 17, + 20, + ], + "type": "Identifier", }, - "start": Object { - "column": 20, - "line": 1, + "kind": "init", + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 17, + 23, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "range": Array [ + 22, + 23, + ], + "raw": "1", + "type": "Literal", + "value": 1, }, }, - "range": Array [ - 20, - 21, - ], - "raw": "2", - "type": "Literal", - "value": 2, - }, - "type": "BinaryExpression", + ], + "range": Array [ + 15, + 25, + ], + "type": "ObjectExpression", }, "loc": Object { "end": Object { - "column": 23, + "column": 26, "line": 1, }, "start": Object { @@ -97930,7 +106162,7 @@ Object { }, "range": Array [ 0, - 23, + 26, ], "type": "ExportDefaultDeclaration", }, @@ -97947,7 +106179,7 @@ Object { }, "range": Array [ 0, - 24, + 27, ], "sourceType": "module", "tokens": Array [ @@ -98003,94 +106235,94 @@ Object { 16, ], "type": "Punctuator", - "value": "(", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 20, "line": 1, }, "start": Object { - "column": 16, + "column": 17, "line": 1, }, }, "range": Array [ - 16, 17, + 20, ], - "type": "Numeric", - "value": "1", + "type": "Identifier", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 19, + "column": 21, "line": 1, }, "start": Object { - "column": 18, + "column": 20, "line": 1, }, }, "range": Array [ - 18, - 19, + 20, + 21, ], "type": "Punctuator", - "value": "+", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 21, + "column": 23, "line": 1, }, "start": Object { - "column": 20, + "column": 22, "line": 1, }, }, "range": Array [ - 20, - 21, + 22, + 23, ], "type": "Numeric", - "value": "2", + "value": "1", }, Object { "loc": Object { "end": Object { - "column": 22, + "column": 25, "line": 1, }, "start": Object { - "column": 21, + "column": 24, "line": 1, }, }, "range": Array [ - 21, - 22, + 24, + 25, ], "type": "Punctuator", - "value": ")", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 26, "line": 1, }, "start": Object { - "column": 22, + "column": 25, "line": 1, }, }, "range": Array [ - 22, - 23, + 25, + 26, ], "type": "Punctuator", "value": ";", @@ -98100,36 +106332,14 @@ Object { } `; -exports[`javascript fixtures/modules/export-default-function.src 1`] = ` +exports[`javascript fixtures/modules/export-default-value.src 1`] = ` Object { "body": Array [ Object { "declaration": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 29, - "line": 1, - }, - "start": Object { - "column": 27, - "line": 1, - }, - }, - "range": Array [ - 27, - 29, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, "loc": Object { "end": Object { - "column": 29, + "column": 18, "line": 1, }, "start": Object { @@ -98137,16 +106347,16 @@ Object { "line": 1, }, }, - "params": Array [], + "name": "foo", "range": Array [ 15, - 29, + 18, ], - "type": "FunctionDeclaration", + "type": "Identifier", }, "loc": Object { "end": Object { - "column": 29, + "column": 19, "line": 1, }, "start": Object { @@ -98156,7 +106366,7 @@ Object { }, "range": Array [ 0, - 29, + 19, ], "type": "ExportDefaultDeclaration", }, @@ -98173,7 +106383,7 @@ Object { }, "range": Array [ 0, - 30, + 20, ], "sourceType": "module", "tokens": Array [ @@ -98216,7 +106426,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 23, + "column": 18, "line": 1, }, "start": Object { @@ -98226,167 +106436,78 @@ Object { }, "range": Array [ 15, - 23, - ], - "type": "Keyword", - "value": "function", - }, - Object { - "loc": Object { - "end": Object { - "column": 25, - "line": 1, - }, - "start": Object { - "column": 24, - "line": 1, - }, - }, - "range": Array [ - 24, - 25, - ], - "type": "Punctuator", - "value": "(", - }, - Object { - "loc": Object { - "end": Object { - "column": 26, - "line": 1, - }, - "start": Object { - "column": 25, - "line": 1, - }, - }, - "range": Array [ - 25, - 26, + 18, ], - "type": "Punctuator", - "value": ")", + "type": "Identifier", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 28, + "column": 19, "line": 1, }, "start": Object { - "column": 27, + "column": 18, "line": 1, }, }, "range": Array [ - 27, - 28, + 18, + 19, ], "type": "Punctuator", - "value": "{", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/modules/export-from-batch.src 1`] = ` +Object { + "body": Array [ Object { "loc": Object { "end": Object { - "column": 29, + "column": 20, "line": 1, }, "start": Object { - "column": 28, + "column": 0, "line": 1, }, }, "range": Array [ - 28, - 29, + 0, + 20, ], - "type": "Punctuator", - "value": "}", - }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/modules/export-default-named-class.src 1`] = ` -Object { - "body": Array [ - Object { - "declaration": Object { - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 1, - "line": 3, - }, - "start": Object { - "column": 26, - "line": 1, - }, - }, - "range": Array [ - 26, - 30, - ], - "type": "ClassBody", - }, - "id": Object { - "loc": Object { - "end": Object { - "column": 25, - "line": 1, - }, - "start": Object { - "column": 21, - "line": 1, - }, - }, - "name": "Test", - "range": Array [ - 21, - 25, - ], - "type": "Identifier", - }, + "source": Object { "loc": Object { "end": Object { - "column": 1, - "line": 3, + "column": 19, + "line": 1, }, "start": Object { - "column": 15, + "column": 14, "line": 1, }, }, "range": Array [ - 15, - 30, + 14, + 19, ], - "superClass": null, - "type": "ClassDeclaration", - }, - "loc": Object { - "end": Object { - "column": 1, - "line": 3, - }, - "start": Object { - "column": 0, - "line": 1, - }, + "raw": "\\"foo\\"", + "type": "Literal", + "value": "foo", }, - "range": Array [ - 0, - 30, - ], - "type": "ExportDefaultDeclaration", + "type": "ExportAllDeclaration", }, ], "loc": Object { "end": Object { "column": 0, - "line": 4, + "line": 2, }, "start": Object { "column": 0, @@ -98395,7 +106516,7 @@ Object { }, "range": Array [ 0, - 31, + 21, ], "sourceType": "module", "tokens": Array [ @@ -98420,7 +106541,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 14, + "column": 8, "line": 1, }, "start": Object { @@ -98430,164 +106551,164 @@ Object { }, "range": Array [ 7, - 14, + 8, ], - "type": "Keyword", - "value": "default", + "type": "Punctuator", + "value": "*", }, Object { "loc": Object { "end": Object { - "column": 20, + "column": 13, "line": 1, }, "start": Object { - "column": 15, + "column": 9, "line": 1, }, }, "range": Array [ - 15, - 20, + 9, + 13, ], - "type": "Keyword", - "value": "class", + "type": "Identifier", + "value": "from", }, Object { "loc": Object { "end": Object { - "column": 25, + "column": 19, "line": 1, }, "start": Object { - "column": 21, + "column": 14, "line": 1, }, }, "range": Array [ - 21, - 25, + 14, + 19, ], - "type": "Identifier", - "value": "Test", + "type": "String", + "value": "\\"foo\\"", }, Object { "loc": Object { "end": Object { - "column": 27, + "column": 20, "line": 1, }, "start": Object { - "column": 26, + "column": 19, "line": 1, }, }, "range": Array [ - 26, - 27, + 19, + 20, ], "type": "Punctuator", - "value": "{", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/modules/export-from-default.src 1`] = ` +Object { + "body": Array [ Object { + "declaration": null, "loc": Object { "end": Object { - "column": 1, - "line": 3, + "column": 28, + "line": 1, }, "start": Object { "column": 0, - "line": 3, + "line": 1, }, }, "range": Array [ - 29, - 30, + 0, + 28, ], - "type": "Punctuator", - "value": "}", - }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/modules/export-default-named-function.src 1`] = ` -Object { - "body": Array [ - Object { - "declaration": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 32, - "line": 1, - }, - "start": Object { - "column": 30, - "line": 1, - }, + "source": Object { + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, }, - "range": Array [ - 30, - 32, - ], - "type": "BlockStatement", }, - "expression": false, - "generator": false, - "id": Object { + "range": Array [ + 22, + 27, + ], + "raw": "\\"foo\\"", + "type": "Literal", + "value": "foo", + }, + "specifiers": Array [ + Object { + "exported": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "name": "default", + "range": Array [ + 8, + 15, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 27, + "column": 15, "line": 1, }, "start": Object { - "column": 24, + "column": 8, "line": 1, }, }, - "name": "foo", + "local": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "name": "default", + "range": Array [ + 8, + 15, + ], + "type": "Identifier", + }, "range": Array [ - 24, - 27, + 8, + 15, ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 32, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "params": Array [], - "range": Array [ - 15, - 32, - ], - "type": "FunctionDeclaration", - }, - "loc": Object { - "end": Object { - "column": 32, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "ExportSpecifier", }, - }, - "range": Array [ - 0, - 32, ], - "type": "ExportDefaultDeclaration", + "type": "ExportNamedDeclaration", }, ], "loc": Object { @@ -98602,7 +106723,7 @@ Object { }, "range": Array [ 0, - 33, + 29, ], "sourceType": "module", "tokens": Array [ @@ -98627,7 +106748,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 14, + "column": 8, "line": 1, }, "start": Object { @@ -98637,162 +106758,200 @@ Object { }, "range": Array [ 7, - 14, + 8, ], - "type": "Keyword", - "value": "default", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 15, "line": 1, }, "start": Object { - "column": 15, + "column": 8, "line": 1, }, }, "range": Array [ + 8, 15, - 23, ], "type": "Keyword", - "value": "function", + "value": "default", }, Object { "loc": Object { "end": Object { - "column": 27, + "column": 16, "line": 1, }, "start": Object { - "column": 24, + "column": 15, "line": 1, }, }, "range": Array [ - 24, - 27, + 15, + 16, ], - "type": "Identifier", - "value": "foo", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 28, + "column": 21, "line": 1, }, "start": Object { - "column": 27, + "column": 17, "line": 1, }, }, "range": Array [ - 27, - 28, + 17, + 21, ], - "type": "Punctuator", - "value": "(", + "type": "Identifier", + "value": "from", }, Object { "loc": Object { "end": Object { - "column": 29, + "column": 27, "line": 1, }, "start": Object { - "column": 28, + "column": 22, "line": 1, }, }, "range": Array [ - 28, - 29, + 22, + 27, ], - "type": "Punctuator", - "value": ")", + "type": "String", + "value": "\\"foo\\"", }, Object { "loc": Object { "end": Object { - "column": 31, + "column": 28, "line": 1, }, "start": Object { - "column": 30, + "column": 27, "line": 1, }, }, "range": Array [ - 30, - 31, + 27, + 28, ], "type": "Punctuator", - "value": "{", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/modules/export-from-named-as-default.src 1`] = ` +Object { + "body": Array [ Object { + "declaration": null, "loc": Object { "end": Object { - "column": 32, + "column": 35, "line": 1, }, "start": Object { - "column": 31, + "column": 0, "line": 1, }, }, "range": Array [ - 31, - 32, + 0, + 35, ], - "type": "Punctuator", - "value": "}", - }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/modules/export-default-number.src 1`] = ` -Object { - "body": Array [ - Object { - "declaration": Object { + "source": Object { "loc": Object { "end": Object { - "column": 17, + "column": 34, "line": 1, }, "start": Object { - "column": 15, + "column": 29, "line": 1, }, }, "range": Array [ - 15, - 17, + 29, + 34, ], - "raw": "42", + "raw": "\\"foo\\"", "type": "Literal", - "value": 42, + "value": "foo", }, - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, + "specifiers": Array [ + Object { + "exported": Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "name": "default", + "range": Array [ + 15, + 22, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "local": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "name": "foo", + "range": Array [ + 8, + 11, + ], + "type": "Identifier", + }, + "range": Array [ + 8, + 22, + ], + "type": "ExportSpecifier", }, - }, - "range": Array [ - 0, - 18, ], - "type": "ExportDefaultDeclaration", + "type": "ExportNamedDeclaration", }, ], "loc": Object { @@ -98807,7 +106966,7 @@ Object { }, "range": Array [ 0, - 19, + 36, ], "sourceType": "module", "tokens": Array [ @@ -98832,7 +106991,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 14, + "column": 8, "line": 1, }, "start": Object { @@ -98842,15 +107001,51 @@ Object { }, "range": Array [ 7, + 8, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, + 11, + ], + "type": "Identifier", + "value": "foo", + }, + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "range": Array [ + 12, 14, ], - "type": "Keyword", - "value": "default", + "type": "Identifier", + "value": "as", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 22, "line": 1, }, "start": Object { @@ -98860,25 +107055,79 @@ Object { }, "range": Array [ 15, - 17, + 22, ], - "type": "Numeric", - "value": "42", + "type": "Keyword", + "value": "default", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 23, "line": 1, }, "start": Object { - "column": 17, + "column": 22, "line": 1, }, }, "range": Array [ - 17, - 18, + 22, + 23, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 28, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, + }, + }, + "range": Array [ + 24, + 28, + ], + "type": "Identifier", + "value": "from", + }, + Object { + "loc": Object { + "end": Object { + "column": 34, + "line": 1, + }, + "start": Object { + "column": 29, + "line": 1, + }, + }, + "range": Array [ + 29, + 34, + ], + "type": "String", + "value": "\\"foo\\"", + }, + Object { + "loc": Object { + "end": Object { + "column": 35, + "line": 1, + }, + "start": Object { + "column": 34, + "line": 1, + }, + }, + "range": Array [ + 34, + 35, ], "type": "Punctuator", "value": ";", @@ -98888,102 +107137,100 @@ Object { } `; -exports[`javascript fixtures/modules/export-default-object.src 1`] = ` +exports[`javascript fixtures/modules/export-from-named-as-specifier.src 1`] = ` Object { "body": Array [ Object { - "declaration": Object { + "declaration": null, + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 31, + ], + "source": Object { "loc": Object { "end": Object { - "column": 25, + "column": 30, "line": 1, }, "start": Object { - "column": 15, + "column": 25, "line": 1, }, }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 17, - "line": 1, - }, - }, - "name": "foo", - "range": Array [ - 17, - 20, - ], - "type": "Identifier", - }, - "kind": "init", + "range": Array [ + 25, + 30, + ], + "raw": "\\"foo\\"", + "type": "Literal", + "value": "foo", + }, + "specifiers": Array [ + Object { + "exported": Object { "loc": Object { "end": Object { - "column": 23, + "column": 18, "line": 1, }, "start": Object { - "column": 17, + "column": 15, "line": 1, }, }, - "method": false, + "name": "bar", "range": Array [ - 17, - 23, + 15, + 18, ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 22, - "line": 1, - }, + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "local": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, }, - "range": Array [ - 22, - 23, - ], - "raw": "1", - "type": "Literal", - "value": 1, }, + "name": "foo", + "range": Array [ + 8, + 11, + ], + "type": "Identifier", }, - ], - "range": Array [ - 15, - 25, - ], - "type": "ObjectExpression", - }, - "loc": Object { - "end": Object { - "column": 26, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, + "range": Array [ + 8, + 18, + ], + "type": "ExportSpecifier", }, - }, - "range": Array [ - 0, - 26, ], - "type": "ExportDefaultDeclaration", + "type": "ExportNamedDeclaration", }, ], "loc": Object { @@ -98998,7 +107245,7 @@ Object { }, "range": Array [ 0, - 27, + 32, ], "sourceType": "module", "tokens": Array [ @@ -99014,134 +107261,152 @@ Object { }, }, "range": Array [ - 0, - 6, + 0, + 6, + ], + "type": "Keyword", + "value": "export", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "range": Array [ + 7, + 8, ], - "type": "Keyword", - "value": "export", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 11, "line": 1, }, "start": Object { - "column": 7, + "column": 8, "line": 1, }, }, "range": Array [ - 7, - 14, + 8, + 11, ], - "type": "Keyword", - "value": "default", + "type": "Identifier", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 14, "line": 1, }, "start": Object { - "column": 15, + "column": 12, "line": 1, }, }, "range": Array [ - 15, - 16, + 12, + 14, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "as", }, Object { "loc": Object { "end": Object { - "column": 20, + "column": 18, "line": 1, }, "start": Object { - "column": 17, + "column": 15, "line": 1, }, }, "range": Array [ - 17, - 20, + 15, + 18, ], "type": "Identifier", - "value": "foo", + "value": "bar", }, Object { "loc": Object { "end": Object { - "column": 21, + "column": 19, "line": 1, }, "start": Object { - "column": 20, + "column": 18, "line": 1, }, }, "range": Array [ - 20, - 21, + 18, + 19, ], "type": "Punctuator", - "value": ":", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 24, "line": 1, }, "start": Object { - "column": 22, + "column": 20, "line": 1, }, }, "range": Array [ - 22, - 23, + 20, + 24, ], - "type": "Numeric", - "value": "1", + "type": "Identifier", + "value": "from", }, Object { "loc": Object { "end": Object { - "column": 25, + "column": 30, "line": 1, }, "start": Object { - "column": 24, + "column": 25, "line": 1, }, }, "range": Array [ - 24, 25, + 30, ], - "type": "Punctuator", - "value": "}", + "type": "String", + "value": "\\"foo\\"", }, Object { "loc": Object { "end": Object { - "column": 26, + "column": 31, "line": 1, }, "start": Object { - "column": 25, + "column": 30, "line": 1, }, }, "range": Array [ - 25, - 26, + 30, + 31, ], "type": "Punctuator", "value": ";", @@ -99151,43 +107416,153 @@ Object { } `; -exports[`javascript fixtures/modules/export-default-value.src 1`] = ` +exports[`javascript fixtures/modules/export-from-named-as-specifiers.src 1`] = ` Object { "body": Array [ Object { - "declaration": Object { + "declaration": null, + "loc": Object { + "end": Object { + "column": 40, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 40, + ], + "source": Object { "loc": Object { "end": Object { - "column": 18, + "column": 39, "line": 1, }, "start": Object { - "column": 15, + "column": 34, "line": 1, }, }, - "name": "foo", "range": Array [ - 15, - 18, + 34, + 39, ], - "type": "Identifier", + "raw": "\\"foo\\"", + "type": "Literal", + "value": "foo", }, - "loc": Object { - "end": Object { - "column": 19, - "line": 1, + "specifiers": Array [ + Object { + "exported": Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "name": "default", + "range": Array [ + 15, + 22, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "local": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "name": "foo", + "range": Array [ + 8, + 11, + ], + "type": "Identifier", + }, + "range": Array [ + 8, + 22, + ], + "type": "ExportSpecifier", }, - "start": Object { - "column": 0, - "line": 1, + Object { + "exported": Object { + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, + }, + }, + "name": "bar", + "range": Array [ + 24, + 27, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, + }, + }, + "local": Object { + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, + }, + }, + "name": "bar", + "range": Array [ + 24, + 27, + ], + "type": "Identifier", + }, + "range": Array [ + 24, + 27, + ], + "type": "ExportSpecifier", }, - }, - "range": Array [ - 0, - 19, ], - "type": "ExportDefaultDeclaration", + "type": "ExportNamedDeclaration", }, ], "loc": Object { @@ -99202,7 +107577,7 @@ Object { }, "range": Array [ 0, - 20, + 41, ], "sourceType": "module", "tokens": Array [ @@ -99227,7 +107602,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 14, + "column": 8, "line": 1, }, "start": Object { @@ -99237,25 +107612,25 @@ Object { }, "range": Array [ 7, - 14, + 8, ], - "type": "Keyword", - "value": "default", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 11, "line": 1, }, "start": Object { - "column": 15, + "column": 8, "line": 1, }, }, "range": Array [ - 15, - 18, + 8, + 11, ], "type": "Identifier", "value": "foo", @@ -99263,132 +107638,107 @@ Object { Object { "loc": Object { "end": Object { - "column": 19, + "column": 14, "line": 1, }, "start": Object { - "column": 18, + "column": 12, "line": 1, }, }, "range": Array [ - 18, - 19, + 12, + 14, ], - "type": "Punctuator", - "value": ";", + "type": "Identifier", + "value": "as", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/modules/export-from-batch.src 1`] = ` -Object { - "body": Array [ Object { "loc": Object { "end": Object { - "column": 20, + "column": 22, "line": 1, }, "start": Object { - "column": 0, + "column": 15, "line": 1, }, }, "range": Array [ - 0, - 20, + 15, + 22, ], - "source": Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, + "type": "Keyword", + "value": "default", + }, + Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, }, - "range": Array [ - 14, - 19, - ], - "raw": "\\"foo\\"", - "type": "Literal", - "value": "foo", }, - "type": "ExportAllDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 1, + "range": Array [ + 22, + 23, + ], + "type": "Punctuator", + "value": ",", }, - }, - "range": Array [ - 0, - 21, - ], - "sourceType": "module", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 6, + "column": 27, "line": 1, }, "start": Object { - "column": 0, + "column": 24, "line": 1, }, }, "range": Array [ - 0, - 6, + 24, + 27, ], - "type": "Keyword", - "value": "export", + "type": "Identifier", + "value": "bar", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 28, "line": 1, }, "start": Object { - "column": 7, + "column": 27, "line": 1, }, }, "range": Array [ - 7, - 8, + 27, + 28, ], "type": "Punctuator", - "value": "*", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 33, "line": 1, }, "start": Object { - "column": 9, + "column": 29, "line": 1, }, }, "range": Array [ - 9, - 13, + 29, + 33, ], "type": "Identifier", "value": "from", @@ -99396,17 +107746,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 19, + "column": 39, "line": 1, }, "start": Object { - "column": 14, + "column": 34, "line": 1, }, }, "range": Array [ - 14, - 19, + 34, + 39, ], "type": "String", "value": "\\"foo\\"", @@ -99414,17 +107764,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 20, + "column": 40, "line": 1, }, "start": Object { - "column": 19, + "column": 39, "line": 1, }, }, "range": Array [ - 19, - 20, + 39, + 40, ], "type": "Punctuator", "value": ";", @@ -99434,14 +107784,14 @@ Object { } `; -exports[`javascript fixtures/modules/export-from-default.src 1`] = ` +exports[`javascript fixtures/modules/export-from-specifier.src 1`] = ` Object { "body": Array [ Object { "declaration": null, "loc": Object { "end": Object { - "column": 28, + "column": 24, "line": 1, }, "start": Object { @@ -99451,22 +107801,22 @@ Object { }, "range": Array [ 0, - 28, + 24, ], "source": Object { "loc": Object { "end": Object { - "column": 27, + "column": 23, "line": 1, }, "start": Object { - "column": 22, + "column": 18, "line": 1, }, }, "range": Array [ - 22, - 27, + 18, + 23, ], "raw": "\\"foo\\"", "type": "Literal", @@ -99477,7 +107827,7 @@ Object { "exported": Object { "loc": Object { "end": Object { - "column": 15, + "column": 11, "line": 1, }, "start": Object { @@ -99485,16 +107835,16 @@ Object { "line": 1, }, }, - "name": "default", + "name": "foo", "range": Array [ 8, - 15, + 11, ], "type": "Identifier", }, "loc": Object { "end": Object { - "column": 15, + "column": 11, "line": 1, }, "start": Object { @@ -99505,7 +107855,7 @@ Object { "local": Object { "loc": Object { "end": Object { - "column": 15, + "column": 11, "line": 1, }, "start": Object { @@ -99513,16 +107863,16 @@ Object { "line": 1, }, }, - "name": "default", + "name": "foo", "range": Array [ 8, - 15, + 11, ], "type": "Identifier", }, "range": Array [ 8, - 15, + 11, ], "type": "ExportSpecifier", }, @@ -99542,7 +107892,7 @@ Object { }, "range": Array [ 0, - 29, + 25, ], "sourceType": "module", "tokens": Array [ @@ -99585,7 +107935,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 15, + "column": 11, "line": 1, }, "start": Object { @@ -99595,25 +107945,25 @@ Object { }, "range": Array [ 8, - 15, + 11, ], - "type": "Keyword", - "value": "default", + "type": "Identifier", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 12, "line": 1, }, "start": Object { - "column": 15, + "column": 11, "line": 1, }, }, "range": Array [ - 15, - 16, + 11, + 12, ], "type": "Punctuator", "value": "}", @@ -99621,17 +107971,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 21, + "column": 17, "line": 1, }, "start": Object { - "column": 17, + "column": 13, "line": 1, }, }, "range": Array [ + 13, 17, - 21, ], "type": "Identifier", "value": "from", @@ -99639,17 +107989,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 27, + "column": 23, "line": 1, }, "start": Object { - "column": 22, + "column": 18, "line": 1, }, }, "range": Array [ - 22, - 27, + 18, + 23, ], "type": "String", "value": "\\"foo\\"", @@ -99657,17 +108007,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 28, + "column": 24, "line": 1, }, "start": Object { - "column": 27, + "column": 23, "line": 1, }, }, "range": Array [ - 27, - 28, + 23, + 24, ], "type": "Punctuator", "value": ";", @@ -99677,14 +108027,14 @@ Object { } `; -exports[`javascript fixtures/modules/export-from-named-as-default.src 1`] = ` +exports[`javascript fixtures/modules/export-from-specifiers.src 1`] = ` Object { "body": Array [ Object { "declaration": null, "loc": Object { "end": Object { - "column": 35, + "column": 29, "line": 1, }, "start": Object { @@ -99694,78 +108044,131 @@ Object { }, "range": Array [ 0, - 35, + 29, ], "source": Object { "loc": Object { "end": Object { - "column": 34, + "column": 28, "line": 1, }, "start": Object { - "column": 29, + "column": 23, "line": 1, }, }, - "range": Array [ - 29, - 34, - ], - "raw": "\\"foo\\"", - "type": "Literal", - "value": "foo", - }, - "specifiers": Array [ + "range": Array [ + 23, + 28, + ], + "raw": "\\"foo\\"", + "type": "Literal", + "value": "foo", + }, + "specifiers": Array [ + Object { + "exported": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "name": "foo", + "range": Array [ + 8, + 11, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "local": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "name": "foo", + "range": Array [ + 8, + 11, + ], + "type": "Identifier", + }, + "range": Array [ + 8, + 11, + ], + "type": "ExportSpecifier", + }, Object { "exported": Object { "loc": Object { "end": Object { - "column": 22, + "column": 16, "line": 1, }, "start": Object { - "column": 15, + "column": 13, "line": 1, }, }, - "name": "default", + "name": "bar", "range": Array [ - 15, - 22, + 13, + 16, ], "type": "Identifier", }, "loc": Object { "end": Object { - "column": 22, + "column": 16, "line": 1, }, "start": Object { - "column": 8, + "column": 13, "line": 1, }, }, "local": Object { "loc": Object { "end": Object { - "column": 11, + "column": 16, "line": 1, }, "start": Object { - "column": 8, + "column": 13, "line": 1, }, }, - "name": "foo", + "name": "bar", "range": Array [ - 8, - 11, + 13, + 16, ], "type": "Identifier", }, "range": Array [ - 8, - 22, + 13, + 16, ], "type": "ExportSpecifier", }, @@ -99785,7 +108188,7 @@ Object { }, "range": Array [ 0, - 36, + 30, ], "sourceType": "module", "tokens": Array [ @@ -99846,53 +108249,53 @@ Object { Object { "loc": Object { "end": Object { - "column": 14, + "column": 12, "line": 1, }, "start": Object { - "column": 12, + "column": 11, "line": 1, }, }, "range": Array [ + 11, 12, - 14, ], - "type": "Identifier", - "value": "as", + "type": "Punctuator", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 22, + "column": 16, "line": 1, }, "start": Object { - "column": 15, + "column": 13, "line": 1, }, }, "range": Array [ - 15, - 22, + 13, + 16, ], - "type": "Keyword", - "value": "default", + "type": "Identifier", + "value": "bar", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 17, "line": 1, }, "start": Object { - "column": 22, + "column": 16, "line": 1, }, }, "range": Array [ - 22, - 23, + 16, + 17, ], "type": "Punctuator", "value": "}", @@ -99900,17 +108303,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 28, + "column": 22, "line": 1, }, "start": Object { - "column": 24, + "column": 18, "line": 1, }, }, "range": Array [ - 24, - 28, + 18, + 22, ], "type": "Identifier", "value": "from", @@ -99918,17 +108321,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 34, + "column": 28, "line": 1, }, "start": Object { - "column": 29, + "column": 23, "line": 1, }, }, "range": Array [ - 29, - 34, + 23, + 28, ], "type": "String", "value": "\\"foo\\"", @@ -99936,17 +108339,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 35, + "column": 29, "line": 1, }, "start": Object { - "column": 34, + "column": 28, "line": 1, }, }, "range": Array [ - 34, - 35, + 28, + 29, ], "type": "Punctuator", "value": ";", @@ -99956,99 +108359,83 @@ Object { } `; -exports[`javascript fixtures/modules/export-from-named-as-specifier.src 1`] = ` +exports[`javascript fixtures/modules/export-function.src 1`] = ` Object { "body": Array [ Object { - "declaration": null, - "loc": Object { - "end": Object { - "column": 31, - "line": 1, + "declaration": Object { + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "range": Array [ + 23, + 25, + ], + "type": "BlockStatement", }, - "start": Object { - "column": 0, - "line": 1, + "expression": false, + "generator": false, + "id": Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "name": "foo", + "range": Array [ + 16, + 19, + ], + "type": "Identifier", }, - }, - "range": Array [ - 0, - 31, - ], - "source": Object { "loc": Object { "end": Object { - "column": 30, + "column": 25, "line": 1, }, "start": Object { - "column": 25, + "column": 7, "line": 1, }, }, + "params": Array [], "range": Array [ + 7, 25, - 30, ], - "raw": "\\"foo\\"", - "type": "Literal", - "value": "foo", + "type": "FunctionDeclaration", }, - "specifiers": Array [ - Object { - "exported": Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "name": "bar", - "range": Array [ - 15, - 18, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "local": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "name": "foo", - "range": Array [ - 8, - 11, - ], - "type": "Identifier", - }, - "range": Array [ - 8, - 18, - ], - "type": "ExportSpecifier", + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 25, ], + "source": null, + "specifiers": Array [], "type": "ExportNamedDeclaration", }, ], @@ -100064,7 +108451,7 @@ Object { }, "range": Array [ 0, - 32, + 26, ], "sourceType": "module", "tokens": Array [ @@ -100089,7 +108476,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 8, + "column": 15, "line": 1, }, "start": Object { @@ -100099,25 +108486,25 @@ Object { }, "range": Array [ 7, - 8, + 15, ], - "type": "Punctuator", - "value": "{", + "type": "Keyword", + "value": "function", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 19, "line": 1, }, "start": Object { - "column": 8, + "column": 16, "line": 1, }, }, "range": Array [ - 8, - 11, + 16, + 19, ], "type": "Identifier", "value": "foo", @@ -100125,56 +108512,38 @@ Object { Object { "loc": Object { "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "range": Array [ - 12, - 14, - ], - "type": "Identifier", - "value": "as", - }, - Object { - "loc": Object { - "end": Object { - "column": 18, + "column": 21, "line": 1, }, "start": Object { - "column": 15, + "column": 20, "line": 1, }, }, "range": Array [ - 15, - 18, + 20, + 21, ], - "type": "Identifier", - "value": "bar", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 19, + "column": 22, "line": 1, }, "start": Object { - "column": 18, + "column": 21, "line": 1, }, }, "range": Array [ - 18, - 19, + 21, + 22, ], "type": "Punctuator", - "value": "}", + "value": ")", }, Object { "loc": Object { @@ -100183,66 +108552,48 @@ Object { "line": 1, }, "start": Object { - "column": 20, + "column": 23, "line": 1, }, }, "range": Array [ - 20, + 23, 24, ], - "type": "Identifier", - "value": "from", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 30, - "line": 1, - }, - "start": Object { "column": 25, "line": 1, }, - }, - "range": Array [ - 25, - 30, - ], - "type": "String", - "value": "\\"foo\\"", - }, - Object { - "loc": Object { - "end": Object { - "column": 31, - "line": 1, - }, "start": Object { - "column": 30, + "column": 24, "line": 1, }, }, "range": Array [ - 30, - 31, + 24, + 25, ], "type": "Punctuator", - "value": ";", + "value": "}", }, ], "type": "Program", } `; -exports[`javascript fixtures/modules/export-from-named-as-specifiers.src 1`] = ` +exports[`javascript fixtures/modules/export-named-as-default.src 1`] = ` Object { "body": Array [ Object { "declaration": null, "loc": Object { "end": Object { - "column": 40, + "column": 24, "line": 1, }, "start": Object { @@ -100252,27 +108603,9 @@ Object { }, "range": Array [ 0, - 40, + 24, ], - "source": Object { - "loc": Object { - "end": Object { - "column": 39, - "line": 1, - }, - "start": Object { - "column": 34, - "line": 1, - }, - }, - "range": Array [ - 34, - 39, - ], - "raw": "\\"foo\\"", - "type": "Literal", - "value": "foo", - }, + "source": null, "specifiers": Array [ Object { "exported": Object { @@ -100327,59 +108660,6 @@ Object { ], "type": "ExportSpecifier", }, - Object { - "exported": Object { - "loc": Object { - "end": Object { - "column": 27, - "line": 1, - }, - "start": Object { - "column": 24, - "line": 1, - }, - }, - "name": "bar", - "range": Array [ - 24, - 27, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 27, - "line": 1, - }, - "start": Object { - "column": 24, - "line": 1, - }, - }, - "local": Object { - "loc": Object { - "end": Object { - "column": 27, - "line": 1, - }, - "start": Object { - "column": 24, - "line": 1, - }, - }, - "name": "bar", - "range": Array [ - 24, - 27, - ], - "type": "Identifier", - }, - "range": Array [ - 24, - 27, - ], - "type": "ExportSpecifier", - }, ], "type": "ExportNamedDeclaration", }, @@ -100396,7 +108676,7 @@ Object { }, "range": Array [ 0, - 41, + 25, ], "sourceType": "module", "tokens": Array [ @@ -100506,94 +108786,22 @@ Object { 23, ], "type": "Punctuator", - "value": ",", - }, - Object { - "loc": Object { - "end": Object { - "column": 27, - "line": 1, - }, - "start": Object { - "column": 24, - "line": 1, - }, - }, - "range": Array [ - 24, - 27, - ], - "type": "Identifier", - "value": "bar", - }, - Object { - "loc": Object { - "end": Object { - "column": 28, - "line": 1, - }, - "start": Object { - "column": 27, - "line": 1, - }, - }, - "range": Array [ - 27, - 28, - ], - "type": "Punctuator", "value": "}", }, Object { "loc": Object { "end": Object { - "column": 33, - "line": 1, - }, - "start": Object { - "column": 29, - "line": 1, - }, - }, - "range": Array [ - 29, - 33, - ], - "type": "Identifier", - "value": "from", - }, - Object { - "loc": Object { - "end": Object { - "column": 39, - "line": 1, - }, - "start": Object { - "column": 34, - "line": 1, - }, - }, - "range": Array [ - 34, - 39, - ], - "type": "String", - "value": "\\"foo\\"", - }, - Object { - "loc": Object { - "end": Object { - "column": 40, + "column": 24, "line": 1, }, "start": Object { - "column": 39, + "column": 23, "line": 1, }, }, "range": Array [ - 39, - 40, + 23, + 24, ], "type": "Punctuator", "value": ";", @@ -100603,67 +108811,49 @@ Object { } `; -exports[`javascript fixtures/modules/export-from-specifier.src 1`] = ` +exports[`javascript fixtures/modules/export-named-as-specifier.src 1`] = ` Object { "body": Array [ Object { - "declaration": null, - "loc": Object { - "end": Object { - "column": 24, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 24, - ], - "source": Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, + "declaration": null, + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, }, - "range": Array [ - 18, - 23, - ], - "raw": "\\"foo\\"", - "type": "Literal", - "value": "foo", }, + "range": Array [ + 0, + 20, + ], + "source": null, "specifiers": Array [ Object { "exported": Object { "loc": Object { "end": Object { - "column": 11, + "column": 18, "line": 1, }, "start": Object { - "column": 8, + "column": 15, "line": 1, }, }, - "name": "foo", + "name": "bar", "range": Array [ - 8, - 11, + 15, + 18, ], "type": "Identifier", }, "loc": Object { "end": Object { - "column": 11, + "column": 18, "line": 1, }, "start": Object { @@ -100691,7 +108881,7 @@ Object { }, "range": Array [ 8, - 11, + 18, ], "type": "ExportSpecifier", }, @@ -100711,7 +108901,7 @@ Object { }, "range": Array [ 0, - 25, + 21, ], "sourceType": "module", "tokens": Array [ @@ -100772,43 +108962,43 @@ Object { Object { "loc": Object { "end": Object { - "column": 12, + "column": 14, "line": 1, }, "start": Object { - "column": 11, + "column": 12, "line": 1, }, }, "range": Array [ - 11, 12, + 14, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "as", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 18, "line": 1, }, "start": Object { - "column": 13, + "column": 15, "line": 1, }, }, "range": Array [ - 13, - 17, + 15, + 18, ], "type": "Identifier", - "value": "from", + "value": "bar", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 19, "line": 1, }, "start": Object { @@ -100818,25 +109008,25 @@ Object { }, "range": Array [ 18, - 23, + 19, ], - "type": "String", - "value": "\\"foo\\"", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 24, + "column": 20, "line": 1, }, "start": Object { - "column": 23, + "column": 19, "line": 1, }, }, "range": Array [ - 23, - 24, + 19, + 20, ], "type": "Punctuator", "value": ";", @@ -100846,7 +109036,7 @@ Object { } `; -exports[`javascript fixtures/modules/export-from-specifiers.src 1`] = ` +exports[`javascript fixtures/modules/export-named-as-specifiers.src 1`] = ` Object { "body": Array [ Object { @@ -100865,48 +109055,30 @@ Object { 0, 29, ], - "source": Object { - "loc": Object { - "end": Object { - "column": 28, - "line": 1, - }, - "start": Object { - "column": 23, - "line": 1, - }, - }, - "range": Array [ - 23, - 28, - ], - "raw": "\\"foo\\"", - "type": "Literal", - "value": "foo", - }, + "source": null, "specifiers": Array [ Object { "exported": Object { "loc": Object { "end": Object { - "column": 11, + "column": 22, "line": 1, }, "start": Object { - "column": 8, + "column": 15, "line": 1, }, }, - "name": "foo", + "name": "default", "range": Array [ - 8, - 11, + 15, + 22, ], "type": "Identifier", }, "loc": Object { "end": Object { - "column": 11, + "column": 22, "line": 1, }, "start": Object { @@ -100934,7 +109106,7 @@ Object { }, "range": Array [ 8, - 11, + 22, ], "type": "ExportSpecifier", }, @@ -100942,52 +109114,52 @@ Object { "exported": Object { "loc": Object { "end": Object { - "column": 16, + "column": 27, "line": 1, }, "start": Object { - "column": 13, + "column": 24, "line": 1, }, }, "name": "bar", "range": Array [ - 13, - 16, + 24, + 27, ], "type": "Identifier", }, "loc": Object { "end": Object { - "column": 16, + "column": 27, "line": 1, }, "start": Object { - "column": 13, + "column": 24, "line": 1, }, }, "local": Object { "loc": Object { "end": Object { - "column": 16, + "column": 27, "line": 1, }, "start": Object { - "column": 13, + "column": 24, "line": 1, }, }, "name": "bar", "range": Array [ - 13, - 16, + 24, + 27, ], "type": "Identifier", }, "range": Array [ - 13, - 16, + 24, + 27, ], "type": "ExportSpecifier", }, @@ -101068,74 +109240,74 @@ Object { Object { "loc": Object { "end": Object { - "column": 12, + "column": 14, "line": 1, }, "start": Object { - "column": 11, + "column": 12, "line": 1, }, }, "range": Array [ - 11, 12, + 14, ], - "type": "Punctuator", - "value": ",", + "type": "Identifier", + "value": "as", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 22, "line": 1, }, "start": Object { - "column": 13, + "column": 15, "line": 1, }, }, "range": Array [ - 13, - 16, + 15, + 22, ], - "type": "Identifier", - "value": "bar", + "type": "Keyword", + "value": "default", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 23, "line": 1, }, "start": Object { - "column": 16, + "column": 22, "line": 1, }, }, "range": Array [ - 16, - 17, + 22, + 23, ], "type": "Punctuator", - "value": "}", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 22, + "column": 27, "line": 1, }, "start": Object { - "column": 18, + "column": 24, "line": 1, }, }, "range": Array [ - 18, - 22, + 24, + 27, ], "type": "Identifier", - "value": "from", + "value": "bar", }, Object { "loc": Object { @@ -101144,16 +109316,16 @@ Object { "line": 1, }, "start": Object { - "column": 23, + "column": 27, "line": 1, }, }, "range": Array [ - 23, + 27, 28, ], - "type": "String", - "value": "\\"foo\\"", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { @@ -101178,71 +109350,68 @@ Object { } `; -exports[`javascript fixtures/modules/export-function.src 1`] = ` +exports[`javascript fixtures/modules/export-named-class.src 1`] = ` Object { "body": Array [ Object { "declaration": Object { - "async": false, "body": Object { "body": Array [], "loc": Object { "end": Object { - "column": 25, - "line": 1, + "column": 1, + "line": 3, }, "start": Object { - "column": 23, + "column": 18, "line": 1, }, }, "range": Array [ - 23, - 25, + 18, + 22, ], - "type": "BlockStatement", + "type": "ClassBody", }, - "expression": false, - "generator": false, "id": Object { "loc": Object { "end": Object { - "column": 19, + "column": 17, "line": 1, }, "start": Object { - "column": 16, + "column": 13, "line": 1, }, }, - "name": "foo", + "name": "Test", "range": Array [ - 16, - 19, + 13, + 17, ], "type": "Identifier", }, "loc": Object { "end": Object { - "column": 25, - "line": 1, + "column": 1, + "line": 3, }, "start": Object { "column": 7, "line": 1, }, }, - "params": Array [], "range": Array [ 7, - 25, + 22, ], - "type": "FunctionDeclaration", + "superClass": null, + "type": "ClassDeclaration", }, "loc": Object { "end": Object { - "column": 25, - "line": 1, + "column": 1, + "line": 3, }, "start": Object { "column": 0, @@ -101251,7 +109420,7 @@ Object { }, "range": Array [ 0, - 25, + 22, ], "source": null, "specifiers": Array [], @@ -101261,7 +109430,7 @@ Object { "loc": Object { "end": Object { "column": 0, - "line": 2, + "line": 4, }, "start": Object { "column": 0, @@ -101270,7 +109439,7 @@ Object { }, "range": Array [ 0, - 26, + 23, ], "sourceType": "module", "tokens": Array [ @@ -101295,7 +109464,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 15, + "column": 12, "line": 1, }, "start": Object { @@ -101305,10 +109474,28 @@ Object { }, "range": Array [ 7, - 15, + 12, ], "type": "Keyword", - "value": "function", + "value": "class", + }, + Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 17, + ], + "type": "Identifier", + "value": "Test", }, Object { "loc": Object { @@ -101317,102 +109504,354 @@ Object { "line": 1, }, "start": Object { - "column": 16, + "column": 18, "line": 1, }, }, "range": Array [ - 16, + 18, 19, ], - "type": "Identifier", - "value": "foo", + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 3, + }, + "start": Object { + "column": 0, + "line": 3, + }, + }, + "range": Array [ + 21, + 22, + ], + "type": "Punctuator", + "value": "}", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/modules/export-named-empty.src 1`] = ` +Object { + "body": Array [ + Object { + "declaration": null, + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 10, + ], + "source": null, + "specifiers": Array [], + "type": "ExportNamedDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 11, + ], + "sourceType": "module", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 6, + ], + "type": "Keyword", + "value": "export", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "range": Array [ + 7, + 8, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, + 9, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 10, + ], + "type": "Punctuator", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/modules/export-named-specifier.src 1`] = ` +Object { + "body": Array [ + Object { + "declaration": null, + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 13, + ], + "source": null, + "specifiers": Array [ + Object { + "exported": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "name": "foo", + "range": Array [ + 8, + 11, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "local": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "name": "foo", + "range": Array [ + 8, + 11, + ], + "type": "Identifier", + }, + "range": Array [ + 8, + 11, + ], + "type": "ExportSpecifier", + }, + ], + "type": "ExportNamedDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 14, + ], + "sourceType": "module", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 6, + ], + "type": "Keyword", + "value": "export", }, Object { "loc": Object { "end": Object { - "column": 21, + "column": 8, "line": 1, }, "start": Object { - "column": 20, + "column": 7, "line": 1, }, }, "range": Array [ - 20, - 21, + 7, + 8, ], "type": "Punctuator", - "value": "(", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 22, + "column": 11, "line": 1, }, "start": Object { - "column": 21, + "column": 8, "line": 1, }, }, "range": Array [ - 21, - 22, + 8, + 11, ], - "type": "Punctuator", - "value": ")", + "type": "Identifier", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 24, + "column": 12, "line": 1, }, "start": Object { - "column": 23, + "column": 11, "line": 1, }, }, "range": Array [ - 23, - 24, + 11, + 12, ], "type": "Punctuator", - "value": "{", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 25, + "column": 13, "line": 1, }, "start": Object { - "column": 24, + "column": 12, "line": 1, }, }, "range": Array [ - 24, - 25, + 12, + 13, ], "type": "Punctuator", - "value": "}", + "value": ";", }, ], "type": "Program", } `; -exports[`javascript fixtures/modules/export-named-as-default.src 1`] = ` +exports[`javascript fixtures/modules/export-named-specifiers.src 1`] = ` Object { "body": Array [ Object { "declaration": null, "loc": Object { "end": Object { - "column": 24, + "column": 18, "line": 1, }, "start": Object { @@ -101422,7 +109861,7 @@ Object { }, "range": Array [ 0, - 24, + 18, ], "source": null, "specifiers": Array [ @@ -101430,24 +109869,24 @@ Object { "exported": Object { "loc": Object { "end": Object { - "column": 22, + "column": 11, "line": 1, }, "start": Object { - "column": 15, + "column": 8, "line": 1, }, }, - "name": "default", + "name": "foo", "range": Array [ - 15, - 22, + 8, + 11, ], "type": "Identifier", }, "loc": Object { "end": Object { - "column": 22, + "column": 11, "line": 1, }, "start": Object { @@ -101475,7 +109914,60 @@ Object { }, "range": Array [ 8, - 22, + 11, + ], + "type": "ExportSpecifier", + }, + Object { + "exported": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "name": "bar", + "range": Array [ + 13, + 16, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "local": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "name": "bar", + "range": Array [ + 13, + 16, + ], + "type": "Identifier", + }, + "range": Array [ + 13, + 16, ], "type": "ExportSpecifier", }, @@ -101495,7 +109987,7 @@ Object { }, "range": Array [ 0, - 25, + 19, ], "sourceType": "module", "tokens": Array [ @@ -101556,53 +110048,53 @@ Object { Object { "loc": Object { "end": Object { - "column": 14, + "column": 12, "line": 1, }, "start": Object { - "column": 12, + "column": 11, "line": 1, }, }, "range": Array [ + 11, 12, - 14, ], - "type": "Identifier", - "value": "as", + "type": "Punctuator", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 22, + "column": 16, "line": 1, }, "start": Object { - "column": 15, + "column": 13, "line": 1, }, }, "range": Array [ - 15, - 22, + 13, + 16, ], - "type": "Keyword", - "value": "default", + "type": "Identifier", + "value": "bar", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 17, "line": 1, }, "start": Object { - "column": 22, + "column": 16, "line": 1, }, }, "range": Array [ - 22, - 23, + 16, + 17, ], "type": "Punctuator", "value": "}", @@ -101610,17 +110102,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 24, + "column": 18, "line": 1, }, "start": Object { - "column": 23, + "column": 17, "line": 1, }, }, "range": Array [ - 23, - 24, + 17, + 18, ], "type": "Punctuator", "value": ";", @@ -101630,14 +110122,14 @@ Object { } `; -exports[`javascript fixtures/modules/export-named-as-specifier.src 1`] = ` +exports[`javascript fixtures/modules/export-named-specifiers-comma.src 1`] = ` Object { "body": Array [ Object { "declaration": null, "loc": Object { "end": Object { - "column": 20, + "column": 19, "line": 1, }, "start": Object { @@ -101647,7 +110139,7 @@ Object { }, "range": Array [ 0, - 20, + 19, ], "source": null, "specifiers": Array [ @@ -101655,24 +110147,24 @@ Object { "exported": Object { "loc": Object { "end": Object { - "column": 18, + "column": 11, "line": 1, }, "start": Object { - "column": 15, + "column": 8, "line": 1, }, }, - "name": "bar", + "name": "foo", "range": Array [ - 15, - 18, + 8, + 11, ], "type": "Identifier", }, "loc": Object { "end": Object { - "column": 18, + "column": 11, "line": 1, }, "start": Object { @@ -101700,7 +110192,60 @@ Object { }, "range": Array [ 8, - 18, + 11, + ], + "type": "ExportSpecifier", + }, + Object { + "exported": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "name": "bar", + "range": Array [ + 13, + 16, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "local": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "name": "bar", + "range": Array [ + 13, + 16, + ], + "type": "Identifier", + }, + "range": Array [ + 13, + 16, ], "type": "ExportSpecifier", }, @@ -101720,7 +110265,7 @@ Object { }, "range": Array [ 0, - 21, + 20, ], "sourceType": "module", "tokens": Array [ @@ -101781,35 +110326,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 14, + "column": 12, "line": 1, }, "start": Object { - "column": 12, + "column": 11, "line": 1, }, }, "range": Array [ + 11, 12, - 14, ], - "type": "Identifier", - "value": "as", + "type": "Punctuator", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 16, "line": 1, }, "start": Object { - "column": 15, + "column": 13, "line": 1, }, }, "range": Array [ - 15, - 18, + 13, + 16, ], "type": "Identifier", "value": "bar", @@ -101817,17 +110362,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 19, + "column": 17, "line": 1, }, "start": Object { + "column": 16, + "line": 1, + }, + }, + "range": Array [ + 16, + 17, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { "column": 18, "line": 1, }, + "start": Object { + "column": 17, + "line": 1, + }, }, "range": Array [ + 17, 18, - 19, ], "type": "Punctuator", "value": "}", @@ -101835,17 +110398,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 20, + "column": 19, "line": 1, }, "start": Object { - "column": 19, + "column": 18, "line": 1, }, }, "range": Array [ + 18, 19, - 20, ], "type": "Punctuator", "value": ";", @@ -101855,14 +110418,69 @@ Object { } `; -exports[`javascript fixtures/modules/export-named-as-specifiers.src 1`] = ` +exports[`javascript fixtures/modules/export-var.src 1`] = ` Object { "body": Array [ Object { - "declaration": null, + "declaration": Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "name": "bar", + "range": Array [ + 11, + 14, + ], + "type": "Identifier", + }, + "init": null, + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 14, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "range": Array [ + 7, + 15, + ], + "type": "VariableDeclaration", + }, "loc": Object { "end": Object { - "column": 29, + "column": 15, "line": 1, }, "start": Object { @@ -101872,117 +110490,221 @@ Object { }, "range": Array [ 0, - 29, + 15, ], "source": null, - "specifiers": Array [ - Object { - "exported": Object { - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, + "specifiers": Array [], + "type": "ExportNamedDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 16, + ], + "sourceType": "module", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 6, + ], + "type": "Keyword", + "value": "export", + }, + Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "range": Array [ + 7, + 10, + ], + "type": "Keyword", + "value": "var", + }, + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 14, + ], + "type": "Identifier", + "value": "bar", + }, + Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "range": Array [ + 14, + 15, + ], + "type": "Punctuator", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/modules/export-var-anonymous-function.src 1`] = ` +Object { + "body": Array [ + Object { + "declaration": Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, }, + "name": "foo", + "range": Array [ + 11, + 14, + ], + "type": "Identifier", }, - "name": "default", - "range": Array [ - 15, - 22, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "local": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, + "init": Object { + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 29, + "line": 1, + }, + }, + "range": Array [ + 29, + 31, + ], + "type": "BlockStatement", }, - "start": Object { - "column": 8, - "line": 1, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, }, + "params": Array [], + "range": Array [ + 17, + 31, + ], + "type": "FunctionExpression", }, - "name": "foo", - "range": Array [ - 8, - 11, - ], - "type": "Identifier", - }, - "range": Array [ - 8, - 22, - ], - "type": "ExportSpecifier", - }, - Object { - "exported": Object { "loc": Object { "end": Object { - "column": 27, + "column": 31, "line": 1, }, "start": Object { - "column": 24, + "column": 11, "line": 1, }, }, - "name": "bar", "range": Array [ - 24, - 27, + 11, + 31, ], - "type": "Identifier", + "type": "VariableDeclarator", }, - "loc": Object { - "end": Object { - "column": 27, - "line": 1, - }, - "start": Object { - "column": 24, - "line": 1, - }, + ], + "kind": "var", + "loc": Object { + "end": Object { + "column": 32, + "line": 1, }, - "local": Object { - "loc": Object { - "end": Object { - "column": 27, - "line": 1, - }, - "start": Object { - "column": 24, - "line": 1, - }, - }, - "name": "bar", - "range": Array [ - 24, - 27, - ], - "type": "Identifier", + "start": Object { + "column": 7, + "line": 1, }, - "range": Array [ - 24, - 27, - ], - "type": "ExportSpecifier", }, + "range": Array [ + 7, + 32, + ], + "type": "VariableDeclaration", + }, + "loc": Object { + "end": Object { + "column": 32, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 32, ], + "source": null, + "specifiers": Array [], "type": "ExportNamedDeclaration", }, ], @@ -101998,7 +110720,7 @@ Object { }, "range": Array [ 0, - 30, + 33, ], "sourceType": "module", "tokens": Array [ @@ -102023,7 +110745,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 8, + "column": 10, "line": 1, }, "start": Object { @@ -102033,25 +110755,25 @@ Object { }, "range": Array [ 7, - 8, + 10, ], - "type": "Punctuator", - "value": "{", + "type": "Keyword", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 14, "line": 1, }, "start": Object { - "column": 8, + "column": 11, "line": 1, }, }, "range": Array [ - 8, 11, + 14, ], "type": "Identifier", "value": "foo", @@ -102059,89 +110781,107 @@ Object { Object { "loc": Object { "end": Object { - "column": 14, + "column": 16, "line": 1, }, "start": Object { - "column": 12, + "column": 15, "line": 1, }, }, "range": Array [ - 12, - 14, + 15, + 16, ], - "type": "Identifier", - "value": "as", + "type": "Punctuator", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 22, + "column": 25, "line": 1, }, "start": Object { - "column": 15, + "column": 17, "line": 1, }, }, "range": Array [ - 15, - 22, + 17, + 25, ], "type": "Keyword", - "value": "default", + "value": "function", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 27, "line": 1, }, "start": Object { - "column": 22, + "column": 26, "line": 1, }, }, "range": Array [ - 22, - 23, + 26, + 27, ], "type": "Punctuator", - "value": ",", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 27, + "column": 28, "line": 1, }, "start": Object { - "column": 24, + "column": 27, "line": 1, }, }, "range": Array [ - 24, 27, + 28, ], - "type": "Identifier", - "value": "bar", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 28, + "column": 30, "line": 1, }, "start": Object { - "column": 27, + "column": 29, "line": 1, }, }, "range": Array [ - 27, - 28, + 29, + 30, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 30, + "line": 1, + }, + }, + "range": Array [ + 30, + 31, ], "type": "Punctuator", "value": "}", @@ -102149,17 +110889,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 29, + "column": 32, "line": 1, }, "start": Object { - "column": 28, + "column": 31, "line": 1, }, }, "range": Array [ - 28, - 29, + 31, + 32, ], "type": "Punctuator", "value": ";", @@ -102169,51 +110909,72 @@ Object { } `; -exports[`javascript fixtures/modules/export-named-class.src 1`] = ` +exports[`javascript fixtures/modules/export-var-number.src 1`] = ` Object { "body": Array [ Object { "declaration": Object { - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 1, - "line": 3, - }, - "start": Object { - "column": 18, - "line": 1, + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "name": "foo", + "range": Array [ + 11, + 14, + ], + "type": "Identifier", }, - }, - "range": Array [ - 18, - 22, - ], - "type": "ClassBody", - }, - "id": Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 1, + "init": Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "range": Array [ + 17, + 18, + ], + "raw": "1", + "type": "Literal", + "value": 1, }, - "start": Object { - "column": 13, - "line": 1, + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, }, + "range": Array [ + 11, + 18, + ], + "type": "VariableDeclarator", }, - "name": "Test", - "range": Array [ - 13, - 17, - ], - "type": "Identifier", - }, + ], + "kind": "var", "loc": Object { "end": Object { - "column": 1, - "line": 3, + "column": 19, + "line": 1, }, "start": Object { "column": 7, @@ -102222,15 +110983,14 @@ Object { }, "range": Array [ 7, - 22, + 19, ], - "superClass": null, - "type": "ClassDeclaration", + "type": "VariableDeclaration", }, "loc": Object { "end": Object { - "column": 1, - "line": 3, + "column": 19, + "line": 1, }, "start": Object { "column": 0, @@ -102239,7 +110999,7 @@ Object { }, "range": Array [ 0, - 22, + 19, ], "source": null, "specifiers": Array [], @@ -102249,7 +111009,7 @@ Object { "loc": Object { "end": Object { "column": 0, - "line": 4, + "line": 2, }, "start": Object { "column": 0, @@ -102258,7 +111018,7 @@ Object { }, "range": Array [ 0, - 23, + 20, ], "sourceType": "module", "tokens": Array [ @@ -102283,7 +111043,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 12, + "column": 10, "line": 1, }, "start": Object { @@ -102293,178 +111053,79 @@ Object { }, "range": Array [ 7, - 12, + 10, ], "type": "Keyword", - "value": "class", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 14, "line": 1, }, "start": Object { - "column": 13, + "column": 11, "line": 1, }, }, "range": Array [ - 13, - 17, + 11, + 14, ], "type": "Identifier", - "value": "Test", - }, - Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, - }, - "range": Array [ - 18, - 19, - ], - "type": "Punctuator", - "value": "{", - }, - Object { - "loc": Object { - "end": Object { - "column": 1, - "line": 3, - }, - "start": Object { - "column": 0, - "line": 3, - }, - }, - "range": Array [ - 21, - 22, - ], - "type": "Punctuator", - "value": "}", - }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/modules/export-named-empty.src 1`] = ` -Object { - "body": Array [ - Object { - "declaration": null, - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 10, - ], - "source": null, - "specifiers": Array [], - "type": "ExportNamedDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 11, - ], - "sourceType": "module", - "tokens": Array [ - Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 6, - ], - "type": "Keyword", - "value": "export", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 16, "line": 1, }, "start": Object { - "column": 7, + "column": 15, "line": 1, }, }, "range": Array [ - 7, - 8, + 15, + 16, ], "type": "Punctuator", - "value": "{", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 18, "line": 1, }, "start": Object { - "column": 8, + "column": 17, "line": 1, }, }, "range": Array [ - 8, - 9, + 17, + 18, ], - "type": "Punctuator", - "value": "}", + "type": "Numeric", + "value": "1", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 19, "line": 1, }, "start": Object { - "column": 9, + "column": 18, "line": 1, }, }, "range": Array [ - 9, - 10, + 18, + 19, ], "type": "Punctuator", "value": ";", @@ -102474,14 +111135,13 @@ Object { } `; -exports[`javascript fixtures/modules/export-named-specifier.src 1`] = ` +exports[`javascript fixtures/modules/import-default.src 1`] = ` Object { "body": Array [ Object { - "declaration": null, "loc": Object { "end": Object { - "column": 13, + "column": 22, "line": 1, }, "start": Object { @@ -102491,65 +111151,65 @@ Object { }, "range": Array [ 0, - 13, + 22, ], - "source": null, + "source": Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "range": Array [ + 16, + 21, + ], + "raw": "\\"foo\\"", + "type": "Literal", + "value": "foo", + }, "specifiers": Array [ Object { - "exported": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "name": "foo", - "range": Array [ - 8, - 11, - ], - "type": "Identifier", - }, "loc": Object { "end": Object { - "column": 11, + "column": 10, "line": 1, }, "start": Object { - "column": 8, + "column": 7, "line": 1, }, }, "local": Object { "loc": Object { "end": Object { - "column": 11, + "column": 10, "line": 1, }, "start": Object { - "column": 8, + "column": 7, "line": 1, }, }, "name": "foo", "range": Array [ - 8, - 11, + 7, + 10, ], "type": "Identifier", }, "range": Array [ - 8, - 11, + 7, + 10, ], - "type": "ExportSpecifier", + "type": "ImportDefaultSpecifier", }, ], - "type": "ExportNamedDeclaration", + "type": "ImportDeclaration", }, ], "loc": Object { @@ -102564,7 +111224,7 @@ Object { }, "range": Array [ 0, - 14, + 23, ], "sourceType": "module", "tokens": Array [ @@ -102584,12 +111244,12 @@ Object { 6, ], "type": "Keyword", - "value": "export", + "value": "import", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 10, "line": 1, }, "start": Object { @@ -102599,61 +111259,61 @@ Object { }, "range": Array [ 7, - 8, + 10, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 15, "line": 1, }, "start": Object { - "column": 8, + "column": 11, "line": 1, }, }, "range": Array [ - 8, 11, + 15, ], "type": "Identifier", - "value": "foo", + "value": "from", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 21, "line": 1, }, "start": Object { - "column": 11, + "column": 16, "line": 1, }, }, "range": Array [ - 11, - 12, + 16, + 21, ], - "type": "Punctuator", - "value": "}", + "type": "String", + "value": "\\"foo\\"", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 22, "line": 1, }, "start": Object { - "column": 12, + "column": 21, "line": 1, }, }, "range": Array [ - 12, - 13, + 21, + 22, ], "type": "Punctuator", "value": ";", @@ -102663,14 +111323,13 @@ Object { } `; -exports[`javascript fixtures/modules/export-named-specifiers.src 1`] = ` +exports[`javascript fixtures/modules/import-default-and-named-specifiers.src 1`] = ` Object { "body": Array [ Object { - "declaration": null, "loc": Object { "end": Object { - "column": 18, + "column": 29, "line": 1, }, "start": Object { @@ -102680,65 +111339,65 @@ Object { }, "range": Array [ 0, - 18, + 29, ], - "source": null, + "source": Object { + "loc": Object { + "end": Object { + "column": 28, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "range": Array [ + 23, + 28, + ], + "raw": "\\"foo\\"", + "type": "Literal", + "value": "foo", + }, "specifiers": Array [ Object { - "exported": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "name": "foo", - "range": Array [ - 8, - 11, - ], - "type": "Identifier", - }, "loc": Object { "end": Object { - "column": 11, + "column": 10, "line": 1, }, "start": Object { - "column": 8, + "column": 7, "line": 1, }, }, "local": Object { "loc": Object { "end": Object { - "column": 11, + "column": 10, "line": 1, }, "start": Object { - "column": 8, + "column": 7, "line": 1, }, }, "name": "foo", "range": Array [ - 8, - 11, + 7, + 10, ], "type": "Identifier", }, "range": Array [ - 8, - 11, + 7, + 10, ], - "type": "ExportSpecifier", + "type": "ImportDefaultSpecifier", }, Object { - "exported": Object { + "imported": Object { "loc": Object { "end": Object { "column": 16, @@ -102788,10 +111447,10 @@ Object { 13, 16, ], - "type": "ExportSpecifier", + "type": "ImportSpecifier", }, ], - "type": "ExportNamedDeclaration", + "type": "ImportDeclaration", }, ], "loc": Object { @@ -102806,7 +111465,7 @@ Object { }, "range": Array [ 0, - 19, + 30, ], "sourceType": "module", "tokens": Array [ @@ -102826,12 +111485,12 @@ Object { 6, ], "type": "Keyword", - "value": "export", + "value": "import", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 10, "line": 1, }, "start": Object { @@ -102841,10 +111500,10 @@ Object { }, "range": Array [ 7, - 8, + 10, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "foo", }, Object { "loc": Object { @@ -102853,34 +111512,34 @@ Object { "line": 1, }, "start": Object { - "column": 8, + "column": 10, "line": 1, }, }, "range": Array [ - 8, + 10, 11, ], - "type": "Identifier", - "value": "foo", + "type": "Punctuator", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 13, "line": 1, }, "start": Object { - "column": 11, + "column": 12, "line": 1, }, }, "range": Array [ - 11, 12, + 13, ], "type": "Punctuator", - "value": ",", + "value": "{", }, Object { "loc": Object { @@ -102921,17 +111580,53 @@ Object { Object { "loc": Object { "end": Object { - "column": 18, + "column": 22, "line": 1, }, "start": Object { - "column": 17, + "column": 18, "line": 1, }, }, "range": Array [ - 17, 18, + 22, + ], + "type": "Identifier", + "value": "from", + }, + Object { + "loc": Object { + "end": Object { + "column": 28, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "range": Array [ + 23, + 28, + ], + "type": "String", + "value": "\\"foo\\"", + }, + Object { + "loc": Object { + "end": Object { + "column": 29, + "line": 1, + }, + "start": Object { + "column": 28, + "line": 1, + }, + }, + "range": Array [ + 28, + 29, ], "type": "Punctuator", "value": ";", @@ -102941,14 +111636,13 @@ Object { } `; -exports[`javascript fixtures/modules/export-named-specifiers-comma.src 1`] = ` +exports[`javascript fixtures/modules/import-default-and-namespace-specifiers.src 1`] = ` Object { "body": Array [ Object { - "declaration": null, "loc": Object { "end": Object { - "column": 19, + "column": 32, "line": 1, }, "start": Object { @@ -102958,118 +111652,100 @@ Object { }, "range": Array [ 0, - 19, + 32, ], - "source": null, + "source": Object { + "loc": Object { + "end": Object { + "column": 31, + "line": 1, + }, + "start": Object { + "column": 26, + "line": 1, + }, + }, + "range": Array [ + 26, + 31, + ], + "raw": "\\"foo\\"", + "type": "Literal", + "value": "foo", + }, "specifiers": Array [ Object { - "exported": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "name": "foo", - "range": Array [ - 8, - 11, - ], - "type": "Identifier", - }, "loc": Object { "end": Object { - "column": 11, + "column": 10, "line": 1, }, "start": Object { - "column": 8, + "column": 7, "line": 1, }, }, "local": Object { "loc": Object { "end": Object { - "column": 11, + "column": 10, "line": 1, }, "start": Object { - "column": 8, + "column": 7, "line": 1, }, }, "name": "foo", "range": Array [ - 8, - 11, + 7, + 10, ], "type": "Identifier", }, "range": Array [ - 8, - 11, + 7, + 10, ], - "type": "ExportSpecifier", + "type": "ImportDefaultSpecifier", }, Object { - "exported": Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "name": "bar", - "range": Array [ - 13, - 16, - ], - "type": "Identifier", - }, "loc": Object { "end": Object { - "column": 16, + "column": 20, "line": 1, }, "start": Object { - "column": 13, + "column": 12, "line": 1, }, }, "local": Object { "loc": Object { "end": Object { - "column": 16, + "column": 20, "line": 1, }, "start": Object { - "column": 13, + "column": 17, "line": 1, }, }, "name": "bar", "range": Array [ - 13, - 16, + 17, + 20, ], "type": "Identifier", }, "range": Array [ - 13, - 16, + 12, + 20, ], - "type": "ExportSpecifier", + "type": "ImportNamespaceSpecifier", }, ], - "type": "ExportNamedDeclaration", + "type": "ImportDeclaration", }, ], "loc": Object { @@ -103084,7 +111760,7 @@ Object { }, "range": Array [ 0, - 20, + 33, ], "sourceType": "module", "tokens": Array [ @@ -103104,12 +111780,12 @@ Object { 6, ], "type": "Keyword", - "value": "export", + "value": "import", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 10, "line": 1, }, "start": Object { @@ -103119,10 +111795,10 @@ Object { }, "range": Array [ 7, - 8, + 10, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "foo", }, Object { "loc": Object { @@ -103131,34 +111807,34 @@ Object { "line": 1, }, "start": Object { - "column": 8, + "column": 10, "line": 1, }, }, "range": Array [ - 8, + 10, 11, ], - "type": "Identifier", - "value": "foo", + "type": "Punctuator", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 13, "line": 1, }, "start": Object { - "column": 11, + "column": 12, "line": 1, }, }, "range": Array [ - 11, 12, + 13, ], "type": "Punctuator", - "value": ",", + "value": "*", }, Object { "loc": Object { @@ -103167,175 +111843,101 @@ Object { "line": 1, }, "start": Object { - "column": 13, + "column": 14, "line": 1, }, }, "range": Array [ - 13, + 14, 16, ], "type": "Identifier", - "value": "bar", + "value": "as", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 20, "line": 1, }, "start": Object { - "column": 16, + "column": 17, "line": 1, }, }, "range": Array [ - 16, 17, + 20, ], - "type": "Punctuator", - "value": ",", + "type": "Identifier", + "value": "bar", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 25, "line": 1, }, "start": Object { - "column": 17, + "column": 21, "line": 1, }, }, "range": Array [ - 17, - 18, + 21, + 25, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "from", }, Object { "loc": Object { "end": Object { - "column": 19, + "column": 31, "line": 1, }, "start": Object { - "column": 18, + "column": 26, "line": 1, }, }, "range": Array [ - 18, - 19, + 26, + 31, ], - "type": "Punctuator", - "value": ";", + "type": "String", + "value": "\\"foo\\"", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/modules/export-var.src 1`] = ` -Object { - "body": Array [ Object { - "declaration": Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "name": "bar", - "range": Array [ - 11, - 14, - ], - "type": "Identifier", - }, - "init": null, - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "range": Array [ - 11, - 14, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "var", - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, - }, - "range": Array [ - 7, - 15, - ], - "type": "VariableDeclaration", - }, "loc": Object { "end": Object { - "column": 15, + "column": 32, "line": 1, }, "start": Object { - "column": 0, + "column": 31, "line": 1, }, }, "range": Array [ - 0, - 15, + 31, + 32, ], - "source": null, - "specifiers": Array [], - "type": "ExportNamedDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Punctuator", + "value": ";", }, - }, - "range": Array [ - 0, - 16, ], - "sourceType": "module", - "tokens": Array [ + "type": "Program", +} +`; + +exports[`javascript fixtures/modules/import-default-as.src 1`] = ` +Object { + "body": Array [ Object { "loc": Object { "end": Object { - "column": 6, + "column": 35, "line": 1, }, "start": Object { @@ -103345,186 +111947,83 @@ Object { }, "range": Array [ 0, - 6, - ], - "type": "Keyword", - "value": "export", - }, - Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, - }, - "range": Array [ - 7, - 10, - ], - "type": "Keyword", - "value": "var", - }, - Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "range": Array [ - 11, - 14, + 35, ], - "type": "Identifier", - "value": "bar", - }, - Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, + "source": Object { + "loc": Object { + "end": Object { + "column": 34, + "line": 1, + }, + "start": Object { + "column": 29, + "line": 1, + }, }, + "range": Array [ + 29, + 34, + ], + "raw": "\\"foo\\"", + "type": "Literal", + "value": "foo", }, - "range": Array [ - 14, - 15, - ], - "type": "Punctuator", - "value": ";", - }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/modules/export-var-anonymous-function.src 1`] = ` -Object { - "body": Array [ - Object { - "declaration": Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "name": "foo", - "range": Array [ - 11, - 14, - ], - "type": "Identifier", - }, - "init": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 31, - "line": 1, - }, - "start": Object { - "column": 29, - "line": 1, - }, - }, - "range": Array [ - 29, - 31, - ], - "type": "BlockStatement", + "specifiers": Array [ + Object { + "imported": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 1, }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 31, - "line": 1, - }, - "start": Object { - "column": 17, - "line": 1, - }, + "start": Object { + "column": 8, + "line": 1, }, - "params": Array [], - "range": Array [ - 17, - 31, - ], - "type": "FunctionExpression", }, + "name": "default", + "range": Array [ + 8, + 15, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "local": Object { "loc": Object { "end": Object { - "column": 31, + "column": 22, "line": 1, }, "start": Object { - "column": 11, + "column": 19, "line": 1, }, }, + "name": "foo", "range": Array [ - 11, - 31, + 19, + 22, ], - "type": "VariableDeclarator", - }, - ], - "kind": "var", - "loc": Object { - "end": Object { - "column": 32, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, + "type": "Identifier", }, + "range": Array [ + 8, + 22, + ], + "type": "ImportSpecifier", }, - "range": Array [ - 7, - 32, - ], - "type": "VariableDeclaration", - }, - "loc": Object { - "end": Object { - "column": 32, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 32, ], - "source": null, - "specifiers": Array [], - "type": "ExportNamedDeclaration", + "type": "ImportDeclaration", }, ], "loc": Object { @@ -103539,7 +112038,7 @@ Object { }, "range": Array [ 0, - 33, + 36, ], "sourceType": "module", "tokens": Array [ @@ -103559,12 +112058,12 @@ Object { 6, ], "type": "Keyword", - "value": "export", + "value": "import", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 8, "line": 1, }, "start": Object { @@ -103574,82 +112073,82 @@ Object { }, "range": Array [ 7, - 10, + 8, ], - "type": "Keyword", - "value": "var", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 15, "line": 1, }, "start": Object { - "column": 11, + "column": 8, "line": 1, }, }, "range": Array [ - 11, - 14, + 8, + 15, ], - "type": "Identifier", - "value": "foo", + "type": "Keyword", + "value": "default", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 18, "line": 1, }, "start": Object { - "column": 15, + "column": 16, "line": 1, }, }, "range": Array [ - 15, 16, + 18, ], - "type": "Punctuator", - "value": "=", + "type": "Identifier", + "value": "as", }, Object { "loc": Object { "end": Object { - "column": 25, + "column": 22, "line": 1, }, "start": Object { - "column": 17, + "column": 19, "line": 1, }, }, "range": Array [ - 17, - 25, + 19, + 22, ], - "type": "Keyword", - "value": "function", + "type": "Identifier", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 27, + "column": 23, "line": 1, }, "start": Object { - "column": 26, + "column": 22, "line": 1, }, }, "range": Array [ - 26, - 27, + 22, + 23, ], "type": "Punctuator", - "value": "(", + "value": "}", }, Object { "loc": Object { @@ -103658,21 +112157,21 @@ Object { "line": 1, }, "start": Object { - "column": 27, + "column": 24, "line": 1, }, }, "range": Array [ - 27, + 24, 28, ], - "type": "Punctuator", - "value": ")", + "type": "Identifier", + "value": "from", }, Object { "loc": Object { "end": Object { - "column": 30, + "column": 34, "line": 1, }, "start": Object { @@ -103682,147 +112181,109 @@ Object { }, "range": Array [ 29, - 30, + 34, ], - "type": "Punctuator", - "value": "{", + "type": "String", + "value": "\\"foo\\"", }, Object { "loc": Object { "end": Object { - "column": 31, + "column": 35, "line": 1, }, "start": Object { - "column": 30, + "column": 34, "line": 1, }, }, "range": Array [ - 30, - 31, + 34, + 35, ], "type": "Punctuator", - "value": "}", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/modules/import-jquery.src 1`] = ` +Object { + "body": Array [ Object { "loc": Object { "end": Object { - "column": 32, + "column": 22, "line": 1, }, "start": Object { - "column": 31, + "column": 0, "line": 1, }, }, "range": Array [ - 31, - 32, + 0, + 22, ], - "type": "Punctuator", - "value": ";", - }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/modules/export-var-number.src 1`] = ` -Object { - "body": Array [ - Object { - "declaration": Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "name": "foo", - "range": Array [ - 11, - 14, - ], - "type": "Identifier", + "source": Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "range": Array [ + 14, + 22, + ], + "raw": "\\"jquery\\"", + "type": "Literal", + "value": "jquery", + }, + "specifiers": Array [ + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 1, }, - "init": Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 17, - "line": 1, - }, - }, - "range": Array [ - 17, - 18, - ], - "raw": "1", - "type": "Literal", - "value": 1, + "start": Object { + "column": 7, + "line": 1, }, + }, + "local": Object { "loc": Object { "end": Object { - "column": 18, + "column": 8, "line": 1, }, "start": Object { - "column": 11, + "column": 7, "line": 1, }, }, + "name": "$", "range": Array [ - 11, - 18, + 7, + 8, ], - "type": "VariableDeclarator", - }, - ], - "kind": "var", - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, + "type": "Identifier", }, + "range": Array [ + 7, + 8, + ], + "type": "ImportDefaultSpecifier", }, - "range": Array [ - 7, - 19, - ], - "type": "VariableDeclaration", - }, - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 19, ], - "source": null, - "specifiers": Array [], - "type": "ExportNamedDeclaration", + "type": "ImportDeclaration", }, ], "loc": Object { @@ -103837,7 +112298,7 @@ Object { }, "range": Array [ 0, - 20, + 23, ], "sourceType": "module", "tokens": Array [ @@ -103857,12 +112318,12 @@ Object { 6, ], "type": "Keyword", - "value": "export", + "value": "import", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 8, "line": 1, }, "start": Object { @@ -103872,79 +112333,159 @@ Object { }, "range": Array [ 7, - 10, + 8, ], - "type": "Keyword", - "value": "var", + "type": "Identifier", + "value": "$", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 13, "line": 1, }, "start": Object { - "column": 11, + "column": 9, "line": 1, }, }, "range": Array [ - 11, - 14, + 9, + 13, ], "type": "Identifier", - "value": "foo", + "value": "from", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 22, "line": 1, }, "start": Object { - "column": 15, + "column": 14, "line": 1, }, }, "range": Array [ - 15, - 16, + 14, + 22, ], - "type": "Punctuator", - "value": "=", + "type": "String", + "value": "\\"jquery\\"", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/modules/import-module.src 1`] = ` +Object { + "body": Array [ Object { "loc": Object { "end": Object { - "column": 18, + "column": 13, "line": 1, }, "start": Object { - "column": 17, + "column": 0, "line": 1, }, }, "range": Array [ - 17, - 18, + 0, + 13, + ], + "source": Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "range": Array [ + 7, + 12, + ], + "raw": "\\"foo\\"", + "type": "Literal", + "value": "foo", + }, + "specifiers": Array [], + "type": "ImportDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 14, + ], + "sourceType": "module", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 6, + ], + "type": "Keyword", + "value": "import", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "range": Array [ + 7, + 12, ], - "type": "Numeric", - "value": "1", + "type": "String", + "value": "\\"foo\\"", }, Object { "loc": Object { "end": Object { - "column": 19, + "column": 13, "line": 1, }, "start": Object { - "column": 18, + "column": 12, "line": 1, }, }, "range": Array [ - 18, - 19, + 12, + 13, ], "type": "Punctuator", "value": ";", @@ -103954,13 +112495,13 @@ Object { } `; -exports[`javascript fixtures/modules/import-default.src 1`] = ` +exports[`javascript fixtures/modules/import-named-as-specifier.src 1`] = ` Object { "body": Array [ Object { "loc": Object { "end": Object { - "column": 22, + "column": 31, "line": 1, }, "start": Object { @@ -103970,22 +112511,22 @@ Object { }, "range": Array [ 0, - 22, + 31, ], "source": Object { "loc": Object { "end": Object { - "column": 21, + "column": 30, "line": 1, }, "start": Object { - "column": 16, + "column": 25, "line": 1, }, }, "range": Array [ - 16, - 21, + 25, + 30, ], "raw": "\\"foo\\"", "type": "Literal", @@ -103993,39 +112534,57 @@ Object { }, "specifiers": Array [ Object { + "imported": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "name": "bar", + "range": Array [ + 8, + 11, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 10, + "column": 18, "line": 1, }, "start": Object { - "column": 7, + "column": 8, "line": 1, }, }, "local": Object { "loc": Object { "end": Object { - "column": 10, + "column": 18, "line": 1, }, "start": Object { - "column": 7, + "column": 15, "line": 1, }, }, - "name": "foo", + "name": "baz", "range": Array [ - 7, - 10, + 15, + 18, ], "type": "Identifier", }, "range": Array [ - 7, - 10, + 8, + 18, ], - "type": "ImportDefaultSpecifier", + "type": "ImportSpecifier", }, ], "type": "ImportDeclaration", @@ -104043,7 +112602,7 @@ Object { }, "range": Array [ 0, - 23, + 32, ], "sourceType": "module", "tokens": Array [ @@ -104068,7 +112627,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 10, + "column": 8, "line": 1, }, "start": Object { @@ -104078,25 +112637,97 @@ Object { }, "range": Array [ 7, - 10, + 8, ], - "type": "Identifier", - "value": "foo", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 11, "line": 1, }, "start": Object { - "column": 11, + "column": 8, "line": 1, }, }, "range": Array [ + 8, 11, + ], + "type": "Identifier", + "value": "bar", + }, + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "range": Array [ + 12, + 14, + ], + "type": "Identifier", + "value": "as", + }, + Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "range": Array [ 15, + 18, + ], + "type": "Identifier", + "value": "baz", + }, + Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "range": Array [ + 18, + 19, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "range": Array [ + 20, + 24, ], "type": "Identifier", "value": "from", @@ -104104,17 +112735,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 21, + "column": 30, "line": 1, }, "start": Object { - "column": 16, + "column": 25, "line": 1, }, }, "range": Array [ - 16, - 21, + 25, + 30, ], "type": "String", "value": "\\"foo\\"", @@ -104122,17 +112753,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 22, + "column": 31, "line": 1, }, "start": Object { - "column": 21, + "column": 30, "line": 1, }, }, "range": Array [ - 21, - 22, + 30, + 31, ], "type": "Punctuator", "value": ";", @@ -104142,13 +112773,13 @@ Object { } `; -exports[`javascript fixtures/modules/import-default-and-named-specifiers.src 1`] = ` +exports[`javascript fixtures/modules/import-named-as-specifiers.src 1`] = ` Object { "body": Array [ Object { "loc": Object { "end": Object { - "column": 29, + "column": 36, "line": 1, }, "start": Object { @@ -104158,22 +112789,22 @@ Object { }, "range": Array [ 0, - 29, + 36, ], "source": Object { "loc": Object { "end": Object { - "column": 28, + "column": 35, "line": 1, }, "start": Object { - "column": 23, + "column": 30, "line": 1, }, }, "range": Array [ - 23, - 28, + 30, + 35, ], "raw": "\\"foo\\"", "type": "Literal", @@ -104181,90 +112812,108 @@ Object { }, "specifiers": Array [ Object { + "imported": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "name": "bar", + "range": Array [ + 8, + 11, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 10, + "column": 18, "line": 1, }, "start": Object { - "column": 7, + "column": 8, "line": 1, }, }, "local": Object { "loc": Object { "end": Object { - "column": 10, + "column": 18, "line": 1, }, "start": Object { - "column": 7, + "column": 15, "line": 1, }, }, - "name": "foo", + "name": "baz", "range": Array [ - 7, - 10, + 15, + 18, ], "type": "Identifier", }, "range": Array [ - 7, - 10, + 8, + 18, ], - "type": "ImportDefaultSpecifier", + "type": "ImportSpecifier", }, Object { "imported": Object { "loc": Object { "end": Object { - "column": 16, + "column": 23, "line": 1, }, "start": Object { - "column": 13, + "column": 20, "line": 1, }, }, - "name": "bar", + "name": "xyz", "range": Array [ - 13, - 16, + 20, + 23, ], "type": "Identifier", }, "loc": Object { "end": Object { - "column": 16, + "column": 23, "line": 1, }, "start": Object { - "column": 13, + "column": 20, "line": 1, }, }, "local": Object { "loc": Object { "end": Object { - "column": 16, + "column": 23, "line": 1, }, "start": Object { - "column": 13, + "column": 20, "line": 1, }, }, - "name": "bar", + "name": "xyz", "range": Array [ - 13, - 16, + 20, + 23, ], "type": "Identifier", }, "range": Array [ - 13, - 16, + 20, + 23, ], "type": "ImportSpecifier", }, @@ -104284,7 +112933,7 @@ Object { }, "range": Array [ 0, - 30, + 37, ], "sourceType": "module", "tokens": Array [ @@ -104309,7 +112958,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 10, + "column": 8, "line": 1, }, "start": Object { @@ -104319,10 +112968,10 @@ Object { }, "range": Array [ 7, - 10, + 8, ], - "type": "Identifier", - "value": "foo", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { @@ -104331,21 +112980,21 @@ Object { "line": 1, }, "start": Object { - "column": 10, + "column": 8, "line": 1, }, }, "range": Array [ - 10, + 8, 11, ], - "type": "Punctuator", - "value": ",", + "type": "Identifier", + "value": "bar", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 14, "line": 1, }, "start": Object { @@ -104355,43 +113004,79 @@ Object { }, "range": Array [ 12, - 13, + 14, + ], + "type": "Identifier", + "value": "as", + }, + Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "range": Array [ + 15, + 18, + ], + "type": "Identifier", + "value": "baz", + }, + Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "range": Array [ + 18, + 19, ], "type": "Punctuator", - "value": "{", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 23, "line": 1, }, "start": Object { - "column": 13, + "column": 20, "line": 1, }, }, "range": Array [ - 13, - 16, + 20, + 23, ], "type": "Identifier", - "value": "bar", + "value": "xyz", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 24, "line": 1, }, "start": Object { - "column": 16, + "column": 23, "line": 1, }, }, "range": Array [ - 16, - 17, + 23, + 24, ], "type": "Punctuator", "value": "}", @@ -104399,17 +113084,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 22, + "column": 29, "line": 1, }, "start": Object { - "column": 18, + "column": 25, "line": 1, }, }, "range": Array [ - 18, - 22, + 25, + 29, ], "type": "Identifier", "value": "from", @@ -104417,17 +113102,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 28, + "column": 35, "line": 1, }, "start": Object { - "column": 23, + "column": 30, "line": 1, }, }, "range": Array [ - 23, - 28, + 30, + 35, ], "type": "String", "value": "\\"foo\\"", @@ -104435,17 +113120,187 @@ Object { Object { "loc": Object { "end": Object { - "column": 29, + "column": 36, + "line": 1, + }, + "start": Object { + "column": 35, + "line": 1, + }, + }, + "range": Array [ + 35, + 36, + ], + "type": "Punctuator", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/modules/import-named-empty.src 1`] = ` +Object { + "body": Array [ + Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 21, + ], + "source": Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "range": Array [ + 15, + 20, + ], + "raw": "\\"foo\\"", + "type": "Literal", + "value": "foo", + }, + "specifiers": Array [], + "type": "ImportDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 22, + ], + "sourceType": "module", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 6, + ], + "type": "Keyword", + "value": "import", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "range": Array [ + 7, + 8, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, + 9, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "range": Array [ + 10, + 14, + ], + "type": "Identifier", + "value": "from", + }, + Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 15, + "line": 1, + }, + }, + "range": Array [ + 15, + 20, + ], + "type": "String", + "value": "\\"foo\\"", + }, + Object { + "loc": Object { + "end": Object { + "column": 21, "line": 1, }, "start": Object { - "column": 28, + "column": 20, "line": 1, }, }, "range": Array [ - 28, - 29, + 20, + 21, ], "type": "Punctuator", "value": ";", @@ -104455,13 +113310,13 @@ Object { } `; -exports[`javascript fixtures/modules/import-default-and-namespace-specifiers.src 1`] = ` +exports[`javascript fixtures/modules/import-named-specifier.src 1`] = ` Object { "body": Array [ Object { "loc": Object { "end": Object { - "column": 32, + "column": 24, "line": 1, }, "start": Object { @@ -104471,22 +113326,22 @@ Object { }, "range": Array [ 0, - 32, + 24, ], "source": Object { "loc": Object { "end": Object { - "column": 31, + "column": 23, "line": 1, }, "start": Object { - "column": 26, + "column": 18, "line": 1, }, }, "range": Array [ - 26, - 31, + 18, + 23, ], "raw": "\\"foo\\"", "type": "Literal", @@ -104494,74 +113349,57 @@ Object { }, "specifiers": Array [ Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, - }, - "local": Object { + "imported": Object { "loc": Object { "end": Object { - "column": 10, + "column": 11, "line": 1, }, "start": Object { - "column": 7, + "column": 8, "line": 1, }, }, - "name": "foo", + "name": "bar", "range": Array [ - 7, - 10, + 8, + 11, ], "type": "Identifier", }, - "range": Array [ - 7, - 10, - ], - "type": "ImportDefaultSpecifier", - }, - Object { "loc": Object { "end": Object { - "column": 20, + "column": 11, "line": 1, }, "start": Object { - "column": 12, + "column": 8, "line": 1, }, }, "local": Object { "loc": Object { "end": Object { - "column": 20, + "column": 11, "line": 1, }, "start": Object { - "column": 17, + "column": 8, "line": 1, }, }, "name": "bar", "range": Array [ - 17, - 20, + 8, + 11, ], "type": "Identifier", }, "range": Array [ - 12, - 20, + 8, + 11, ], - "type": "ImportNamespaceSpecifier", + "type": "ImportSpecifier", }, ], "type": "ImportDeclaration", @@ -104579,7 +113417,7 @@ Object { }, "range": Array [ 0, - 33, + 25, ], "sourceType": "module", "tokens": Array [ @@ -104604,7 +113442,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 10, + "column": 8, "line": 1, }, "start": Object { @@ -104614,10 +113452,10 @@ Object { }, "range": Array [ 7, - 10, + 8, ], - "type": "Identifier", - "value": "foo", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { @@ -104626,85 +113464,49 @@ Object { "line": 1, }, "start": Object { - "column": 10, + "column": 8, "line": 1, }, }, "range": Array [ - 10, + 8, 11, ], - "type": "Punctuator", - "value": ",", + "type": "Identifier", + "value": "bar", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 12, "line": 1, }, "start": Object { - "column": 12, + "column": 11, "line": 1, }, }, "range": Array [ + 11, 12, - 13, ], "type": "Punctuator", - "value": "*", - }, - Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "range": Array [ - 14, - 16, - ], - "type": "Identifier", - "value": "as", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { "column": 17, "line": 1, }, - }, - "range": Array [ - 17, - 20, - ], - "type": "Identifier", - "value": "bar", - }, - Object { - "loc": Object { - "end": Object { - "column": 25, - "line": 1, - }, "start": Object { - "column": 21, + "column": 13, "line": 1, }, }, "range": Array [ - 21, - 25, + 13, + 17, ], "type": "Identifier", "value": "from", @@ -104712,17 +113514,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 31, + "column": 23, "line": 1, }, "start": Object { - "column": 26, + "column": 18, "line": 1, }, }, "range": Array [ - 26, - 31, + 18, + 23, ], "type": "String", "value": "\\"foo\\"", @@ -104730,17 +113532,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 32, + "column": 24, "line": 1, }, "start": Object { - "column": 31, + "column": 23, "line": 1, }, }, "range": Array [ - 31, - 32, + 23, + 24, ], "type": "Punctuator", "value": ";", @@ -104750,13 +113552,13 @@ Object { } `; -exports[`javascript fixtures/modules/import-default-as.src 1`] = ` +exports[`javascript fixtures/modules/import-named-specifiers.src 1`] = ` Object { "body": Array [ Object { "loc": Object { "end": Object { - "column": 35, + "column": 29, "line": 1, }, "start": Object { @@ -104766,22 +113568,22 @@ Object { }, "range": Array [ 0, - 35, + 29, ], "source": Object { "loc": Object { "end": Object { - "column": 34, + "column": 28, "line": 1, }, "start": Object { - "column": 29, + "column": 23, "line": 1, }, }, "range": Array [ - 29, - 34, + 23, + 28, ], "raw": "\\"foo\\"", "type": "Literal", @@ -104792,7 +113594,7 @@ Object { "imported": Object { "loc": Object { "end": Object { - "column": 15, + "column": 11, "line": 1, }, "start": Object { @@ -104800,16 +113602,16 @@ Object { "line": 1, }, }, - "name": "default", + "name": "bar", "range": Array [ 8, - 15, + 11, ], "type": "Identifier", }, "loc": Object { "end": Object { - "column": 22, + "column": 11, "line": 1, }, "start": Object { @@ -104820,24 +113622,77 @@ Object { "local": Object { "loc": Object { "end": Object { - "column": 22, + "column": 11, "line": 1, }, "start": Object { - "column": 19, + "column": 8, "line": 1, }, }, - "name": "foo", + "name": "bar", "range": Array [ - 19, - 22, + 8, + 11, ], "type": "Identifier", }, "range": Array [ 8, - 22, + 11, + ], + "type": "ImportSpecifier", + }, + Object { + "imported": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "name": "baz", + "range": Array [ + 13, + 16, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "local": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "name": "baz", + "range": Array [ + 13, + 16, + ], + "type": "Identifier", + }, + "range": Array [ + 13, + 16, ], "type": "ImportSpecifier", }, @@ -104857,7 +113712,7 @@ Object { }, "range": Array [ 0, - 36, + 30, ], "sourceType": "module", "tokens": Array [ @@ -104900,7 +113755,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 15, + "column": 11, "line": 1, }, "start": Object { @@ -104910,61 +113765,61 @@ Object { }, "range": Array [ 8, - 15, + 11, ], - "type": "Keyword", - "value": "default", + "type": "Identifier", + "value": "bar", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 12, "line": 1, }, "start": Object { - "column": 16, + "column": 11, "line": 1, }, }, "range": Array [ - 16, - 18, + 11, + 12, ], - "type": "Identifier", - "value": "as", + "type": "Punctuator", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 22, + "column": 16, "line": 1, }, "start": Object { - "column": 19, + "column": 13, "line": 1, }, }, "range": Array [ - 19, - 22, + 13, + 16, ], "type": "Identifier", - "value": "foo", + "value": "baz", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 17, "line": 1, }, "start": Object { - "column": 22, + "column": 16, "line": 1, }, }, "range": Array [ - 22, - 23, + 16, + 17, ], "type": "Punctuator", "value": "}", @@ -104972,17 +113827,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 28, + "column": 22, "line": 1, }, "start": Object { - "column": 24, + "column": 18, "line": 1, }, }, "range": Array [ - 24, - 28, + 18, + 22, ], "type": "Identifier", "value": "from", @@ -104990,17 +113845,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 34, + "column": 28, "line": 1, }, "start": Object { - "column": 29, + "column": 23, "line": 1, }, }, "range": Array [ - 29, - 34, + 23, + 28, ], "type": "String", "value": "\\"foo\\"", @@ -105008,17 +113863,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 35, + "column": 29, "line": 1, }, "start": Object { - "column": 34, + "column": 28, "line": 1, }, }, "range": Array [ - 34, - 35, + 28, + 29, ], "type": "Punctuator", "value": ";", @@ -105028,13 +113883,13 @@ Object { } `; -exports[`javascript fixtures/modules/import-jquery.src 1`] = ` +exports[`javascript fixtures/modules/import-named-specifiers-comma.src 1`] = ` Object { "body": Array [ Object { "loc": Object { "end": Object { - "column": 22, + "column": 30, "line": 1, }, "start": Object { @@ -105044,62 +113899,133 @@ Object { }, "range": Array [ 0, - 22, + 30, ], "source": Object { "loc": Object { "end": Object { - "column": 22, + "column": 29, "line": 1, }, "start": Object { - "column": 14, + "column": 24, "line": 1, }, }, "range": Array [ - 14, - 22, + 24, + 29, ], - "raw": "\\"jquery\\"", + "raw": "\\"foo\\"", "type": "Literal", - "value": "jquery", + "value": "foo", }, "specifiers": Array [ Object { + "imported": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "name": "bar", + "range": Array [ + 8, + 11, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 8, + "column": 11, "line": 1, }, "start": Object { - "column": 7, + "column": 8, "line": 1, }, }, "local": Object { "loc": Object { "end": Object { - "column": 8, + "column": 11, "line": 1, }, "start": Object { - "column": 7, + "column": 8, "line": 1, }, }, - "name": "$", + "name": "bar", "range": Array [ - 7, 8, + 11, ], "type": "Identifier", }, "range": Array [ - 7, 8, + 11, ], - "type": "ImportDefaultSpecifier", + "type": "ImportSpecifier", + }, + Object { + "imported": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "name": "baz", + "range": Array [ + 13, + 16, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "local": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "name": "baz", + "range": Array [ + 13, + 16, + ], + "type": "Identifier", + }, + "range": Array [ + 13, + 16, + ], + "type": "ImportSpecifier", }, ], "type": "ImportDeclaration", @@ -105117,7 +114043,7 @@ Object { }, "range": Array [ 0, - 23, + 31, ], "sourceType": "module", "tokens": Array [ @@ -105154,139 +114080,131 @@ Object { 7, 8, ], - "type": "Identifier", - "value": "$", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 11, "line": 1, }, "start": Object { - "column": 9, + "column": 8, "line": 1, }, }, "range": Array [ - 9, - 13, + 8, + 11, ], "type": "Identifier", - "value": "from", + "value": "bar", }, Object { "loc": Object { "end": Object { - "column": 22, + "column": 12, "line": 1, }, "start": Object { - "column": 14, + "column": 11, "line": 1, }, }, "range": Array [ - 14, - 22, + 11, + 12, ], - "type": "String", - "value": "\\"jquery\\"", + "type": "Punctuator", + "value": ",", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/modules/import-module.src 1`] = ` -Object { - "body": Array [ Object { "loc": Object { "end": Object { - "column": 13, + "column": 16, "line": 1, }, "start": Object { - "column": 0, + "column": 13, "line": 1, }, }, "range": Array [ - 0, 13, + 16, ], - "source": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, + "type": "Identifier", + "value": "baz", + }, + Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, }, - "range": Array [ - 7, - 12, - ], - "raw": "\\"foo\\"", - "type": "Literal", - "value": "foo", }, - "specifiers": Array [], - "type": "ImportDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, + "range": Array [ + 16, + 17, + ], + "type": "Punctuator", + "value": ",", }, - "start": Object { - "column": 0, - "line": 1, + Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "range": Array [ + 17, + 18, + ], + "type": "Punctuator", + "value": "}", }, - }, - "range": Array [ - 0, - 14, - ], - "sourceType": "module", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 6, + "column": 23, "line": 1, }, "start": Object { - "column": 0, + "column": 19, "line": 1, }, }, "range": Array [ - 0, - 6, + 19, + 23, ], - "type": "Keyword", - "value": "import", + "type": "Identifier", + "value": "from", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 29, "line": 1, }, "start": Object { - "column": 7, + "column": 24, "line": 1, }, }, "range": Array [ - 7, - 12, + 24, + 29, ], "type": "String", "value": "\\"foo\\"", @@ -105294,17 +114212,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 13, + "column": 30, "line": 1, }, "start": Object { - "column": 12, + "column": 29, "line": 1, }, }, "range": Array [ - 12, - 13, + 29, + 30, ], "type": "Punctuator", "value": ";", @@ -105314,13 +114232,13 @@ Object { } `; -exports[`javascript fixtures/modules/import-named-as-specifier.src 1`] = ` +exports[`javascript fixtures/modules/import-namespace-specifier.src 1`] = ` Object { "body": Array [ Object { "loc": Object { "end": Object { - "column": 31, + "column": 27, "line": 1, }, "start": Object { @@ -105330,22 +114248,22 @@ Object { }, "range": Array [ 0, - 31, + 27, ], "source": Object { "loc": Object { "end": Object { - "column": 30, + "column": 26, "line": 1, }, "start": Object { - "column": 25, + "column": 21, "line": 1, }, }, "range": Array [ - 25, - 30, + 21, + 26, ], "raw": "\\"foo\\"", "type": "Literal", @@ -105353,57 +114271,39 @@ Object { }, "specifiers": Array [ Object { - "imported": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "name": "bar", - "range": Array [ - 8, - 11, - ], - "type": "Identifier", - }, "loc": Object { "end": Object { - "column": 18, + "column": 15, "line": 1, }, "start": Object { - "column": 8, + "column": 7, "line": 1, }, }, "local": Object { "loc": Object { "end": Object { - "column": 18, + "column": 15, "line": 1, }, "start": Object { - "column": 15, + "column": 12, "line": 1, }, }, - "name": "baz", + "name": "foo", "range": Array [ + 12, 15, - 18, ], "type": "Identifier", }, "range": Array [ - 8, - 18, + 7, + 15, ], - "type": "ImportSpecifier", + "type": "ImportNamespaceSpecifier", }, ], "type": "ImportDeclaration", @@ -105421,7 +114321,7 @@ Object { }, "range": Array [ 0, - 32, + 28, ], "sourceType": "module", "tokens": Array [ @@ -105459,7 +114359,7 @@ Object { 8, ], "type": "Punctuator", - "value": "{", + "value": "*", }, Object { "loc": Object { @@ -105468,21 +114368,21 @@ Object { "line": 1, }, "start": Object { - "column": 8, + "column": 9, "line": 1, }, }, "range": Array [ - 8, + 9, 11, ], "type": "Identifier", - "value": "bar", + "value": "as", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 15, "line": 1, }, "start": Object { @@ -105492,61 +114392,25 @@ Object { }, "range": Array [ 12, - 14, - ], - "type": "Identifier", - "value": "as", - }, - Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "range": Array [ 15, - 18, ], "type": "Identifier", - "value": "baz", - }, - Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, - }, - "range": Array [ - 18, - 19, - ], - "type": "Punctuator", - "value": "}", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 24, + "column": 20, "line": 1, }, "start": Object { - "column": 20, + "column": 16, "line": 1, }, }, "range": Array [ + 16, 20, - 24, ], "type": "Identifier", "value": "from", @@ -105554,17 +114418,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 30, + "column": 26, "line": 1, }, "start": Object { - "column": 25, + "column": 21, "line": 1, }, }, "range": Array [ - 25, - 30, + 21, + 26, ], "type": "String", "value": "\\"foo\\"", @@ -105572,17 +114436,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 31, + "column": 27, "line": 1, }, "start": Object { - "column": 30, + "column": 26, "line": 1, }, }, "range": Array [ - 30, - 31, + 26, + 27, ], "type": "Punctuator", "value": ";", @@ -105592,13 +114456,13 @@ Object { } `; -exports[`javascript fixtures/modules/import-named-as-specifiers.src 1`] = ` +exports[`javascript fixtures/modules/import-null-as-nil.src 1`] = ` Object { "body": Array [ Object { "loc": Object { "end": Object { - "column": 36, + "column": 33, "line": 1, }, "start": Object { @@ -105608,131 +114472,78 @@ Object { }, "range": Array [ 0, - 36, + 33, ], "source": Object { "loc": Object { "end": Object { - "column": 35, + "column": 33, "line": 1, }, "start": Object { - "column": 30, + "column": 28, "line": 1, }, }, "range": Array [ - 30, - 35, + 28, + 33, ], - "raw": "\\"foo\\"", + "raw": "\\"bar\\"", "type": "Literal", - "value": "foo", + "value": "bar", }, "specifiers": Array [ Object { "imported": Object { "loc": Object { "end": Object { - "column": 11, + "column": 13, "line": 1, }, "start": Object { - "column": 8, + "column": 9, "line": 1, }, }, - "name": "bar", + "name": "null", "range": Array [ - 8, - 11, + 9, + 13, ], "type": "Identifier", }, "loc": Object { "end": Object { - "column": 18, + "column": 20, "line": 1, }, "start": Object { - "column": 8, + "column": 9, "line": 1, }, }, "local": Object { "loc": Object { "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "name": "baz", - "range": Array [ - 15, - 18, - ], - "type": "Identifier", - }, - "range": Array [ - 8, - 18, - ], - "type": "ImportSpecifier", - }, - Object { - "imported": Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { "column": 20, "line": 1, }, - }, - "name": "xyz", - "range": Array [ - 20, - 23, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, - }, - "local": Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, "start": Object { - "column": 20, + "column": 17, "line": 1, }, }, - "name": "xyz", + "name": "nil", "range": Array [ + 17, 20, - 23, ], "type": "Identifier", }, "range": Array [ + 9, 20, - 23, ], "type": "ImportSpecifier", }, @@ -105752,7 +114563,7 @@ Object { }, "range": Array [ 0, - 37, + 34, ], "sourceType": "module", "tokens": Array [ @@ -105795,35 +114606,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 11, + "column": 13, "line": 1, }, "start": Object { - "column": 8, + "column": 9, "line": 1, }, }, "range": Array [ - 8, - 11, + 9, + 13, ], - "type": "Identifier", - "value": "bar", + "type": "Null", + "value": "null", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 16, "line": 1, }, "start": Object { - "column": 12, + "column": 14, "line": 1, }, }, "range": Array [ - 12, 14, + 16, ], "type": "Identifier", "value": "as", @@ -105831,156 +114642,279 @@ Object { Object { "loc": Object { "end": Object { - "column": 18, + "column": 20, "line": 1, }, "start": Object { - "column": 15, + "column": 17, "line": 1, }, }, "range": Array [ - 15, - 18, + 17, + 20, ], "type": "Identifier", - "value": "baz", + "value": "nil", }, Object { "loc": Object { "end": Object { - "column": 19, + "column": 22, "line": 1, }, "start": Object { - "column": 18, + "column": 21, "line": 1, }, }, "range": Array [ - 18, - 19, + 21, + 22, ], "type": "Punctuator", - "value": ",", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 27, "line": 1, }, "start": Object { - "column": 20, + "column": 23, "line": 1, }, }, "range": Array [ - 20, 23, + 27, ], "type": "Identifier", - "value": "xyz", + "value": "from", }, Object { "loc": Object { "end": Object { - "column": 24, + "column": 33, "line": 1, }, "start": Object { - "column": 23, + "column": 28, "line": 1, }, }, "range": Array [ - 23, - 24, + 28, + 33, ], - "type": "Punctuator", - "value": "}", + "type": "String", + "value": "\\"bar\\"", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/modules/invalid-await.src 1`] = ` +Object { + "body": Array [ Object { + "declaration": Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "name": "await", + "range": Array [ + 11, + 16, + ], + "type": "Identifier", + }, + "init": null, + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 16, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "range": Array [ + 7, + 17, + ], + "type": "VariableDeclaration", + }, "loc": Object { "end": Object { - "column": 29, + "column": 17, "line": 1, }, "start": Object { - "column": 25, + "column": 0, "line": 1, }, }, "range": Array [ - 25, - 29, + 0, + 17, ], - "type": "Identifier", - "value": "from", + "source": null, + "specifiers": Array [], + "type": "ExportNamedDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 18, + ], + "sourceType": "module", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 35, + "column": 6, "line": 1, }, "start": Object { - "column": 30, + "column": 0, "line": 1, }, }, "range": Array [ - 30, - 35, + 0, + 6, ], - "type": "String", - "value": "\\"foo\\"", + "type": "Keyword", + "value": "export", }, Object { "loc": Object { "end": Object { - "column": 36, + "column": 10, "line": 1, }, "start": Object { - "column": 35, + "column": 7, "line": 1, }, }, "range": Array [ - 35, - 36, + 7, + 10, ], - "type": "Punctuator", - "value": ";", + "type": "Keyword", + "value": "var", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/modules/import-named-empty.src 1`] = ` -Object { - "body": Array [ Object { "loc": Object { "end": Object { - "column": 21, + "column": 16, "line": 1, }, "start": Object { - "column": 0, + "column": 11, "line": 1, }, }, "range": Array [ - 0, - 21, + 11, + 16, ], - "source": Object { + "type": "Keyword", + "value": "await", + }, + Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "range": Array [ + 16, + 17, + ], + "type": "Punctuator", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/modules/invalid-class.src 1`] = ` +Object { + "body": Array [ + Object { + "declaration": Object { + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 21, + "line": 1, + }, + }, + "range": Array [ + 21, + 23, + ], + "type": "ClassBody", + }, + "id": null, "loc": Object { "end": Object { - "column": 20, + "column": 23, "line": 1, }, "start": Object { @@ -105990,14 +114924,26 @@ Object { }, "range": Array [ 15, - 20, + 23, ], - "raw": "\\"foo\\"", - "type": "Literal", - "value": "foo", + "superClass": null, + "type": "ClassDeclaration", + }, + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, }, - "specifiers": Array [], - "type": "ImportDeclaration", + "range": Array [ + 0, + 23, + ], + "type": "ExportDefaultDeclaration", }, ], "loc": Object { @@ -106012,7 +114958,7 @@ Object { }, "range": Array [ 0, - 22, + 24, ], "sourceType": "module", "tokens": Array [ @@ -106032,12 +114978,12 @@ Object { 6, ], "type": "Keyword", - "value": "import", + "value": "export", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 14, "line": 1, }, "start": Object { @@ -106047,95 +114993,88 @@ Object { }, "range": Array [ 7, - 8, - ], - "type": "Punctuator", - "value": "{", - }, - Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "range": Array [ - 8, - 9, + 14, ], - "type": "Punctuator", - "value": "}", + "type": "Keyword", + "value": "default", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 20, "line": 1, }, "start": Object { - "column": 10, + "column": 15, "line": 1, }, }, "range": Array [ - 10, - 14, + 15, + 20, ], - "type": "Identifier", - "value": "from", + "type": "Keyword", + "value": "class", }, Object { "loc": Object { "end": Object { - "column": 20, + "column": 22, "line": 1, }, "start": Object { - "column": 15, + "column": 21, "line": 1, }, }, "range": Array [ - 15, - 20, + 21, + 22, ], - "type": "String", - "value": "\\"foo\\"", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 21, + "column": 23, "line": 1, }, "start": Object { - "column": 20, + "column": 22, "line": 1, }, }, "range": Array [ - 20, - 21, + 22, + 23, ], "type": "Punctuator", - "value": ";", + "value": "}", }, ], "type": "Program", } `; -exports[`javascript fixtures/modules/import-named-specifier.src 1`] = ` +exports[`javascript fixtures/modules/invalid-export-batch-missing-from-clause.src 1`] = `"'from' expected."`; + +exports[`javascript fixtures/modules/invalid-export-batch-token.src 1`] = `"'from' expected."`; + +exports[`javascript fixtures/modules/invalid-export-default.src 1`] = `"';' expected."`; + +exports[`javascript fixtures/modules/invalid-export-default-equal.src 1`] = `"Expression expected."`; + +exports[`javascript fixtures/modules/invalid-export-default-token.src 1`] = `"';' expected."`; + +exports[`javascript fixtures/modules/invalid-export-named-default.src 1`] = ` Object { "body": Array [ Object { + "declaration": null, "loc": Object { "end": Object { - "column": 24, + "column": 16, "line": 1, }, "start": Object { @@ -106145,33 +115084,15 @@ Object { }, "range": Array [ 0, - 24, + 16, ], - "source": Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, - }, - "range": Array [ - 18, - 23, - ], - "raw": "\\"foo\\"", - "type": "Literal", - "value": "foo", - }, + "source": null, "specifiers": Array [ Object { - "imported": Object { + "exported": Object { "loc": Object { "end": Object { - "column": 11, + "column": 15, "line": 1, }, "start": Object { @@ -106179,16 +115100,16 @@ Object { "line": 1, }, }, - "name": "bar", + "name": "default", "range": Array [ 8, - 11, + 15, ], "type": "Identifier", }, "loc": Object { "end": Object { - "column": 11, + "column": 15, "line": 1, }, "start": Object { @@ -106199,7 +115120,7 @@ Object { "local": Object { "loc": Object { "end": Object { - "column": 11, + "column": 15, "line": 1, }, "start": Object { @@ -106207,21 +115128,21 @@ Object { "line": 1, }, }, - "name": "bar", + "name": "default", "range": Array [ 8, - 11, + 15, ], "type": "Identifier", }, "range": Array [ 8, - 11, + 15, ], - "type": "ImportSpecifier", + "type": "ExportSpecifier", }, ], - "type": "ImportDeclaration", + "type": "ExportNamedDeclaration", }, ], "loc": Object { @@ -106236,7 +115157,7 @@ Object { }, "range": Array [ 0, - 25, + 17, ], "sourceType": "module", "tokens": Array [ @@ -106256,7 +115177,7 @@ Object { 6, ], "type": "Keyword", - "value": "import", + "value": "export", }, Object { "loc": Object { @@ -106279,7 +115200,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 11, + "column": 15, "line": 1, }, "start": Object { @@ -106289,95 +115210,53 @@ Object { }, "range": Array [ 8, - 11, + 15, ], - "type": "Identifier", - "value": "bar", + "type": "Keyword", + "value": "default", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 16, "line": 1, }, "start": Object { - "column": 11, + "column": 15, "line": 1, }, }, "range": Array [ - 11, - 12, + 15, + 16, ], "type": "Punctuator", "value": "}", }, - Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "range": Array [ - 13, - 17, - ], - "type": "Identifier", - "value": "from", - }, - Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, - }, - "range": Array [ - 18, - 23, - ], - "type": "String", - "value": "\\"foo\\"", - }, - Object { - "loc": Object { - "end": Object { - "column": 24, - "line": 1, - }, - "start": Object { - "column": 23, - "line": 1, - }, - }, - "range": Array [ - 23, - 24, - ], - "type": "Punctuator", - "value": ";", - }, ], "type": "Program", } `; -exports[`javascript fixtures/modules/import-named-specifiers.src 1`] = ` +exports[`javascript fixtures/modules/invalid-export-named-extra-comma.src 1`] = `"Identifier expected."`; + +exports[`javascript fixtures/modules/invalid-export-named-middle-comma.src 1`] = `"Identifier expected."`; + +exports[`javascript fixtures/modules/invalid-import-default.src 1`] = `"Expression expected."`; + +exports[`javascript fixtures/modules/invalid-import-default-after-named.src 1`] = `"'from' expected."`; + +exports[`javascript fixtures/modules/invalid-import-default-after-named-after-default.src 1`] = `"'from' expected."`; + +exports[`javascript fixtures/modules/invalid-import-default-missing-module-specifier.src 1`] = `"'=' expected."`; + +exports[`javascript fixtures/modules/invalid-import-default-module-specifier.src 1`] = ` Object { "body": Array [ Object { "loc": Object { "end": Object { - "column": 29, + "column": 20, "line": 1, }, "start": Object { @@ -106387,133 +115266,61 @@ Object { }, "range": Array [ 0, - 29, + 20, ], "source": Object { "loc": Object { "end": Object { - "column": 28, + "column": 19, "line": 1, }, "start": Object { - "column": 23, + "column": 16, "line": 1, }, }, + "name": "bar", "range": Array [ - 23, - 28, + 16, + 19, ], - "raw": "\\"foo\\"", - "type": "Literal", - "value": "foo", + "type": "Identifier", }, "specifiers": Array [ Object { - "imported": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "name": "bar", - "range": Array [ - 8, - 11, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "local": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "name": "bar", - "range": Array [ - 8, - 11, - ], - "type": "Identifier", - }, - "range": Array [ - 8, - 11, - ], - "type": "ImportSpecifier", - }, - Object { - "imported": Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "name": "baz", - "range": Array [ - 13, - 16, - ], - "type": "Identifier", - }, "loc": Object { "end": Object { - "column": 16, + "column": 10, "line": 1, }, "start": Object { - "column": 13, + "column": 7, "line": 1, }, }, "local": Object { "loc": Object { "end": Object { - "column": 16, + "column": 10, "line": 1, }, "start": Object { - "column": 13, + "column": 7, "line": 1, }, }, - "name": "baz", + "name": "foo", "range": Array [ - 13, - 16, + 7, + 10, ], "type": "Identifier", }, "range": Array [ - 13, - 16, + 7, + 10, ], - "type": "ImportSpecifier", + "type": "ImportDefaultSpecifier", }, ], "type": "ImportDeclaration", @@ -106531,7 +115338,7 @@ Object { }, "range": Array [ 0, - 30, + 21, ], "sourceType": "module", "tokens": Array [ @@ -106556,7 +115363,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 8, + "column": 10, "line": 1, }, "start": Object { @@ -106566,33 +115373,15 @@ Object { }, "range": Array [ 7, - 8, - ], - "type": "Punctuator", - "value": "{", - }, - Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "range": Array [ - 8, - 11, + 10, ], "type": "Identifier", - "value": "bar", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 15, "line": 1, }, "start": Object { @@ -106602,33 +115391,15 @@ Object { }, "range": Array [ 11, - 12, - ], - "type": "Punctuator", - "value": ",", - }, - Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "range": Array [ - 13, - 16, + 15, ], "type": "Identifier", - "value": "baz", + "value": "from", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 19, "line": 1, }, "start": Object { @@ -106638,61 +115409,25 @@ Object { }, "range": Array [ 16, - 17, - ], - "type": "Punctuator", - "value": "}", - }, - Object { - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, - }, - "range": Array [ - 18, - 22, + 19, ], "type": "Identifier", - "value": "from", - }, - Object { - "loc": Object { - "end": Object { - "column": 28, - "line": 1, - }, - "start": Object { - "column": 23, - "line": 1, - }, - }, - "range": Array [ - 23, - 28, - ], - "type": "String", - "value": "\\"foo\\"", + "value": "bar", }, Object { "loc": Object { "end": Object { - "column": 29, + "column": 20, "line": 1, }, "start": Object { - "column": 28, + "column": 19, "line": 1, }, }, "range": Array [ - 28, - 29, + 19, + 20, ], "type": "Punctuator", "value": ";", @@ -106702,13 +115437,16 @@ Object { } `; -exports[`javascript fixtures/modules/import-named-specifiers-comma.src 1`] = ` +exports[`javascript fixtures/modules/invalid-import-missing-module-specifier.src 1`] = `"'from' expected."`; + +exports[`javascript fixtures/modules/invalid-import-module-specifier.src 1`] = ` Object { "body": Array [ Object { + "declaration": null, "loc": Object { "end": Object { - "column": 30, + "column": 21, "line": 1, }, "start": Object { @@ -106718,30 +115456,29 @@ Object { }, "range": Array [ 0, - 30, + 21, ], "source": Object { "loc": Object { "end": Object { - "column": 29, + "column": 21, "line": 1, }, "start": Object { - "column": 24, + "column": 18, "line": 1, }, }, + "name": "bar", "range": Array [ - 24, - 29, + 18, + 21, ], - "raw": "\\"foo\\"", - "type": "Literal", - "value": "foo", + "type": "Identifier", }, "specifiers": Array [ Object { - "imported": Object { + "exported": Object { "loc": Object { "end": Object { "column": 11, @@ -106752,7 +115489,7 @@ Object { "line": 1, }, }, - "name": "bar", + "name": "foo", "range": Array [ 8, 11, @@ -106780,74 +115517,21 @@ Object { "line": 1, }, }, - "name": "bar", + "name": "foo", "range": Array [ 8, 11, ], "type": "Identifier", }, - "range": Array [ - 8, - 11, - ], - "type": "ImportSpecifier", - }, - Object { - "imported": Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "name": "baz", - "range": Array [ - 13, - 16, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "local": Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "name": "baz", - "range": Array [ - 13, - 16, - ], - "type": "Identifier", - }, - "range": Array [ - 13, - 16, + "range": Array [ + 8, + 11, ], - "type": "ImportSpecifier", + "type": "ExportSpecifier", }, ], - "type": "ImportDeclaration", + "type": "ExportNamedDeclaration", }, ], "loc": Object { @@ -106862,7 +115546,7 @@ Object { }, "range": Array [ 0, - 31, + 22, ], "sourceType": "module", "tokens": Array [ @@ -106882,7 +115566,7 @@ Object { 6, ], "type": "Keyword", - "value": "import", + "value": "export", }, Object { "loc": Object { @@ -106918,7 +115602,7 @@ Object { 11, ], "type": "Identifier", - "value": "bar", + "value": "foo", }, Object { "loc": Object { @@ -106936,12 +115620,12 @@ Object { 12, ], "type": "Punctuator", - "value": ",", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 17, "line": 1, }, "start": Object { @@ -106951,181 +115635,158 @@ Object { }, "range": Array [ 13, - 16, + 17, ], "type": "Identifier", - "value": "baz", + "value": "from", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 21, "line": 1, }, "start": Object { - "column": 16, - "line": 1, - }, - }, - "range": Array [ - 16, - 17, - ], - "type": "Punctuator", - "value": ",", - }, - Object { - "loc": Object { - "end": Object { "column": 18, "line": 1, }, - "start": Object { - "column": 17, - "line": 1, - }, }, "range": Array [ - 17, 18, - ], - "type": "Punctuator", - "value": "}", - }, - Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 19, - "line": 1, - }, - }, - "range": Array [ - 19, - 23, + 21, ], "type": "Identifier", - "value": "from", - }, - Object { - "loc": Object { - "end": Object { - "column": 29, - "line": 1, - }, - "start": Object { - "column": 24, - "line": 1, - }, - }, - "range": Array [ - 24, - 29, - ], - "type": "String", - "value": "\\"foo\\"", - }, - Object { - "loc": Object { - "end": Object { - "column": 30, - "line": 1, - }, - "start": Object { - "column": 29, - "line": 1, - }, - }, - "range": Array [ - 29, - 30, - ], - "type": "Punctuator", - "value": ";", + "value": "bar", }, ], "type": "Program", } `; -exports[`javascript fixtures/modules/import-namespace-specifier.src 1`] = ` +exports[`javascript fixtures/modules/invalid-import-named-after-named.src 1`] = `"'from' expected."`; + +exports[`javascript fixtures/modules/invalid-import-named-after-namespace.src 1`] = `"'from' expected."`; + +exports[`javascript fixtures/modules/invalid-import-named-as-missing-from.src 1`] = `"'from' expected."`; + +exports[`javascript fixtures/modules/invalid-import-named-extra-comma.src 1`] = `"Identifier expected."`; + +exports[`javascript fixtures/modules/invalid-import-named-middle-comma.src 1`] = `"Identifier expected."`; + +exports[`javascript fixtures/modules/invalid-import-namespace-after-named.src 1`] = `"'from' expected."`; + +exports[`javascript fixtures/modules/invalid-import-namespace-missing-as.src 1`] = `"'as' expected."`; + +exports[`javascript fixtures/newTarget/invalid-new-target.src 1`] = ` Object { "body": Array [ Object { - "loc": Object { - "end": Object { - "column": 27, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 27, - ], - "source": Object { - "loc": Object { - "end": Object { - "column": 26, - "line": 1, - }, - "start": Object { - "column": 21, - "line": 1, - }, - }, - "range": Array [ - 21, - 26, - ], - "raw": "\\"foo\\"", - "type": "Literal", - "value": "foo", - }, - "specifiers": Array [ + "declarations": Array [ Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, + "id": Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, }, + "name": "x", + "range": Array [ + 4, + 5, + ], + "type": "Identifier", }, - "local": Object { + "init": Object { "loc": Object { "end": Object { - "column": 15, + "column": 18, "line": 1, }, "start": Object { - "column": 12, + "column": 8, "line": 1, }, }, - "name": "foo", + "meta": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "name": "new", + "range": Array [ + 8, + 11, + ], + "type": "Identifier", + }, + "property": Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 12, + "line": 1, + }, + }, + "name": "target", + "range": Array [ + 12, + 18, + ], + "type": "Identifier", + }, "range": Array [ - 12, - 15, + 8, + 18, ], - "type": "Identifier", + "type": "MetaProperty", + }, + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, }, "range": Array [ - 7, - 15, + 4, + 18, ], - "type": "ImportNamespaceSpecifier", + "type": "VariableDeclarator", }, ], - "type": "ImportDeclaration", + "kind": "var", + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 19, + ], + "type": "VariableDeclaration", }, ], "loc": Object { @@ -107140,14 +115801,14 @@ Object { }, "range": Array [ 0, - 28, + 20, ], - "sourceType": "module", + "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 6, + "column": 3, "line": 1, }, "start": Object { @@ -107157,115 +115818,115 @@ Object { }, "range": Array [ 0, - 6, + 3, ], "type": "Keyword", - "value": "import", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 5, "line": 1, }, "start": Object { - "column": 7, + "column": 4, "line": 1, }, }, "range": Array [ - 7, - 8, + 4, + 5, ], - "type": "Punctuator", - "value": "*", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 7, "line": 1, }, "start": Object { - "column": 9, + "column": 6, "line": 1, }, }, "range": Array [ - 9, - 11, + 6, + 7, ], - "type": "Identifier", - "value": "as", + "type": "Punctuator", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 11, "line": 1, }, "start": Object { - "column": 12, + "column": 8, "line": 1, }, }, "range": Array [ - 12, - 15, + 8, + 11, ], - "type": "Identifier", - "value": "foo", + "type": "Keyword", + "value": "new", }, Object { "loc": Object { "end": Object { - "column": 20, + "column": 12, "line": 1, }, "start": Object { - "column": 16, + "column": 11, "line": 1, }, }, "range": Array [ - 16, - 20, + 11, + 12, ], - "type": "Identifier", - "value": "from", + "type": "Punctuator", + "value": ".", }, Object { "loc": Object { "end": Object { - "column": 26, + "column": 18, "line": 1, }, "start": Object { - "column": 21, + "column": 12, "line": 1, }, }, "range": Array [ - 21, - 26, + 12, + 18, ], - "type": "String", - "value": "\\"foo\\"", + "type": "Identifier", + "value": "target", }, Object { "loc": Object { "end": Object { - "column": 27, + "column": 19, "line": 1, }, "start": Object { - "column": 26, + "column": 18, "line": 1, }, }, "range": Array [ - 26, - 27, + 18, + 19, ], "type": "Punctuator", "value": ";", @@ -107275,99 +115936,174 @@ Object { } `; -exports[`javascript fixtures/modules/import-null-as-nil.src 1`] = ` +exports[`javascript fixtures/newTarget/invalid-unknown-property.src 1`] = ` Object { "body": Array [ Object { - "loc": Object { - "end": Object { - "column": 33, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 33, - ], - "source": Object { - "loc": Object { - "end": Object { - "column": 33, - "line": 1, - }, - "start": Object { - "column": 28, - "line": 1, - }, - }, - "range": Array [ - 28, - 33, - ], - "raw": "\\"bar\\"", - "type": "Literal", - "value": "bar", - }, - "specifiers": Array [ + "declarations": Array [ Object { - "imported": Object { + "id": Object { "loc": Object { "end": Object { - "column": 13, + "column": 5, "line": 1, }, "start": Object { - "column": 9, + "column": 4, "line": 1, }, }, - "name": "null", + "name": "f", "range": Array [ - 9, - 13, + 4, + 5, ], "type": "Identifier", }, - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, + "init": Object { + "async": false, + "body": Object { + "body": Array [ + Object { + "expression": Object { + "loc": Object { + "end": Object { + "column": 41, + "line": 1, + }, + "start": Object { + "column": 21, + "line": 1, + }, + }, + "meta": Object { + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 21, + "line": 1, + }, + }, + "name": "new", + "range": Array [ + 21, + 24, + ], + "type": "Identifier", + }, + "property": Object { + "loc": Object { + "end": Object { + "column": 41, + "line": 1, + }, + "start": Object { + "column": 25, + "line": 1, + }, + }, + "name": "unknown_property", + "range": Array [ + 25, + 41, + ], + "type": "Identifier", + }, + "range": Array [ + 21, + 41, + ], + "type": "MetaProperty", + }, + "loc": Object { + "end": Object { + "column": 42, + "line": 1, + }, + "start": Object { + "column": 21, + "line": 1, + }, + }, + "range": Array [ + 21, + 42, + ], + "type": "ExpressionStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 44, + "line": 1, + }, + "start": Object { + "column": 19, + "line": 1, + }, + }, + "range": Array [ + 19, + 44, + ], + "type": "BlockStatement", }, - }, - "local": Object { + "expression": false, + "generator": false, + "id": null, "loc": Object { "end": Object { - "column": 20, + "column": 44, "line": 1, }, "start": Object { - "column": 17, + "column": 8, "line": 1, }, }, - "name": "nil", + "params": Array [], "range": Array [ - 17, - 20, + 8, + 44, ], - "type": "Identifier", + "type": "FunctionExpression", + }, + "loc": Object { + "end": Object { + "column": 44, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, }, "range": Array [ - 9, - 20, + 4, + 44, ], - "type": "ImportSpecifier", + "type": "VariableDeclarator", }, ], - "type": "ImportDeclaration", + "kind": "var", + "loc": Object { + "end": Object { + "column": 44, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 44, + ], + "type": "VariableDeclaration", }, ], "loc": Object { @@ -107382,14 +116118,14 @@ Object { }, "range": Array [ 0, - 34, + 45, ], - "sourceType": "module", + "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 6, + "column": 3, "line": 1, }, "start": Object { @@ -107399,69 +116135,87 @@ Object { }, "range": Array [ 0, - 6, + 3, ], "type": "Keyword", - "value": "import", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 5, "line": 1, }, "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 5, + ], + "type": "Identifier", + "value": "f", + }, + Object { + "loc": Object { + "end": Object { "column": 7, "line": 1, }, + "start": Object { + "column": 6, + "line": 1, + }, }, "range": Array [ + 6, 7, - 8, ], "type": "Punctuator", - "value": "{", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 16, "line": 1, }, "start": Object { - "column": 9, + "column": 8, "line": 1, }, }, "range": Array [ - 9, - 13, + 8, + 16, ], - "type": "Null", - "value": "null", + "type": "Keyword", + "value": "function", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 17, "line": 1, }, "start": Object { - "column": 14, + "column": 16, "line": 1, }, }, "range": Array [ - 14, 16, + 17, ], - "type": "Identifier", - "value": "as", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 20, + "column": 18, "line": 1, }, "start": Object { @@ -107471,15 +116225,33 @@ Object { }, "range": Array [ 17, + 18, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 19, + "line": 1, + }, + }, + "range": Array [ + 19, 20, ], - "type": "Identifier", - "value": "nil", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 22, + "column": 24, "line": 1, }, "start": Object { @@ -107489,135 +116261,262 @@ Object { }, "range": Array [ 21, - 22, + 24, + ], + "type": "Keyword", + "value": "new", + }, + Object { + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, + }, + }, + "range": Array [ + 24, + 25, ], "type": "Punctuator", - "value": "}", + "value": ".", }, Object { "loc": Object { "end": Object { - "column": 27, + "column": 41, "line": 1, }, "start": Object { - "column": 23, + "column": 25, "line": 1, }, }, "range": Array [ - 23, - 27, + 25, + 41, ], "type": "Identifier", - "value": "from", + "value": "unknown_property", }, Object { "loc": Object { "end": Object { - "column": 33, + "column": 42, "line": 1, }, "start": Object { - "column": 28, + "column": 41, "line": 1, }, }, "range": Array [ - 28, - 33, + 41, + 42, ], - "type": "String", - "value": "\\"bar\\"", + "type": "Punctuator", + "value": ";", + }, + Object { + "loc": Object { + "end": Object { + "column": 44, + "line": 1, + }, + "start": Object { + "column": 43, + "line": 1, + }, + }, + "range": Array [ + 43, + 44, + ], + "type": "Punctuator", + "value": "}", }, ], "type": "Program", } `; -exports[`javascript fixtures/modules/invalid-await.src 1`] = ` +exports[`javascript fixtures/newTarget/simple-new-target.src 1`] = ` Object { "body": Array [ Object { - "declaration": Object { - "declarations": Array [ + "async": false, + "body": Object { + "body": Array [ Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 2, + }, + "start": Object { + "column": 8, + "line": 2, + }, + }, + "name": "x", + "range": Array [ + 23, + 24, + ], + "type": "Identifier", }, - "start": Object { - "column": 11, - "line": 1, + "init": Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 2, + }, + "start": Object { + "column": 12, + "line": 2, + }, + }, + "meta": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 2, + }, + "start": Object { + "column": 12, + "line": 2, + }, + }, + "name": "new", + "range": Array [ + 27, + 30, + ], + "type": "Identifier", + }, + "property": Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 2, + }, + "start": Object { + "column": 16, + "line": 2, + }, + }, + "name": "target", + "range": Array [ + 31, + 37, + ], + "type": "Identifier", + }, + "range": Array [ + 27, + 37, + ], + "type": "MetaProperty", + }, + "loc": Object { + "end": Object { + "column": 22, + "line": 2, + }, + "start": Object { + "column": 8, + "line": 2, + }, }, + "range": Array [ + 23, + 37, + ], + "type": "VariableDeclarator", }, - "name": "await", - "range": Array [ - 11, - 16, - ], - "type": "Identifier", - }, - "init": null, + ], + "kind": "var", "loc": Object { "end": Object { - "column": 16, - "line": 1, + "column": 23, + "line": 2, }, "start": Object { - "column": 11, - "line": 1, + "column": 4, + "line": 2, }, }, "range": Array [ - 11, - 16, + 19, + 38, ], - "type": "VariableDeclarator", + "type": "VariableDeclaration", }, ], - "kind": "var", "loc": Object { "end": Object { - "column": 17, + "column": 1, + "line": 3, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 40, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": Object { + "loc": Object { + "end": Object { + "column": 10, "line": 1, }, "start": Object { - "column": 7, + "column": 9, "line": 1, }, }, + "name": "f", "range": Array [ - 7, - 17, + 9, + 10, ], - "type": "VariableDeclaration", + "type": "Identifier", }, "loc": Object { "end": Object { - "column": 17, - "line": 1, + "column": 1, + "line": 3, }, "start": Object { "column": 0, "line": 1, }, }, + "params": Array [], "range": Array [ 0, - 17, + 40, ], - "source": null, - "specifiers": Array [], - "type": "ExportNamedDeclaration", + "type": "FunctionDeclaration", }, ], "loc": Object { "end": Object { "column": 0, - "line": 2, + "line": 4, }, "start": Object { "column": 0, @@ -107626,14 +116525,14 @@ Object { }, "range": Array [ 0, - 18, + 41, ], - "sourceType": "module", + "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 6, + "column": 8, "line": 1, }, "start": Object { @@ -107643,10 +116542,10 @@ Object { }, "range": Array [ 0, - 6, + 8, ], "type": "Keyword", - "value": "export", + "value": "function", }, Object { "loc": Object { @@ -107655,21 +116554,39 @@ Object { "line": 1, }, "start": Object { - "column": 7, + "column": 9, "line": 1, }, }, "range": Array [ - 7, + 9, 10, ], - "type": "Keyword", - "value": "var", + "type": "Identifier", + "value": "f", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 11, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "range": Array [ + 10, + 11, + ], + "type": "Punctuator", + "value": "(", + }, + Object { + "loc": Object { + "end": Object { + "column": 12, "line": 1, }, "start": Object { @@ -107678,79 +116595,313 @@ Object { }, }, "range": Array [ - 11, - 16, + 11, + 12, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 13, + "line": 1, + }, + }, + "range": Array [ + 13, + 14, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "range": Array [ + 19, + 22, + ], + "type": "Keyword", + "value": "var", + }, + Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 2, + }, + "start": Object { + "column": 8, + "line": 2, + }, + }, + "range": Array [ + 23, + 24, + ], + "type": "Identifier", + "value": "x", + }, + Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 2, + }, + "start": Object { + "column": 10, + "line": 2, + }, + }, + "range": Array [ + 25, + 26, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 2, + }, + "start": Object { + "column": 12, + "line": 2, + }, + }, + "range": Array [ + 27, + 30, + ], + "type": "Keyword", + "value": "new", + }, + Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 2, + }, + "start": Object { + "column": 15, + "line": 2, + }, + }, + "range": Array [ + 30, + 31, + ], + "type": "Punctuator", + "value": ".", + }, + Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 2, + }, + "start": Object { + "column": 16, + "line": 2, + }, + }, + "range": Array [ + 31, + 37, + ], + "type": "Identifier", + "value": "target", + }, + Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 2, + }, + "start": Object { + "column": 22, + "line": 2, + }, + }, + "range": Array [ + 37, + 38, ], - "type": "Keyword", - "value": "await", + "type": "Punctuator", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 17, - "line": 1, + "column": 1, + "line": 3, }, "start": Object { - "column": 16, - "line": 1, + "column": 0, + "line": 3, }, }, "range": Array [ - 16, - 17, + 39, + 40, ], "type": "Punctuator", - "value": ";", + "value": "}", }, ], "type": "Program", } `; -exports[`javascript fixtures/modules/invalid-class.src 1`] = ` +exports[`javascript fixtures/objectLiteral/object-literal-in-lhs.src 1`] = ` Object { "body": Array [ Object { - "declaration": Object { - "body": Object { - "body": Array [], + "expression": Object { + "left": Object { + "computed": false, "loc": Object { "end": Object { - "column": 23, + "column": 8, "line": 1, }, "start": Object { - "column": 21, + "column": 0, "line": 1, }, }, + "object": Object { + "arguments": Array [ + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 3, + "line": 1, + }, + }, + "properties": Array [], + "range": Array [ + 3, + 5, + ], + "type": "ObjectExpression", + }, + ], + "callee": Object { + "loc": Object { + "end": Object { + "column": 2, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "name": "fn", + "range": Array [ + 0, + 2, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 6, + ], + "type": "CallExpression", + }, + "property": Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 7, + 8, + ], + "type": "Identifier", + }, "range": Array [ - 21, - 23, + 0, + 8, ], - "type": "ClassBody", + "type": "MemberExpression", }, - "id": null, "loc": Object { "end": Object { - "column": 23, + "column": 14, "line": 1, }, "start": Object { - "column": 15, + "column": 0, "line": 1, }, }, + "operator": "=", "range": Array [ - 15, - 23, + 0, + 14, ], - "superClass": null, - "type": "ClassDeclaration", + "right": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "name": "obj", + "range": Array [ + 11, + 14, + ], + "type": "Identifier", + }, + "type": "AssignmentExpression", }, "loc": Object { "end": Object { - "column": 23, + "column": 15, "line": 1, }, "start": Object { @@ -107760,9 +116911,9 @@ Object { }, "range": Array [ 0, - 23, + 15, ], - "type": "ExportDefaultDeclaration", + "type": "ExpressionStatement", }, ], "loc": Object { @@ -107777,14 +116928,14 @@ Object { }, "range": Array [ 0, - 24, + 16, ], - "sourceType": "module", + "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 6, + "column": 2, "line": 1, }, "start": Object { @@ -107794,361 +116945,355 @@ Object { }, "range": Array [ 0, - 6, + 2, ], - "type": "Keyword", - "value": "export", + "type": "Identifier", + "value": "fn", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 3, "line": 1, }, "start": Object { - "column": 7, + "column": 2, "line": 1, }, }, "range": Array [ - 7, - 14, + 2, + 3, ], - "type": "Keyword", - "value": "default", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 20, + "column": 4, "line": 1, }, "start": Object { - "column": 15, + "column": 3, "line": 1, }, }, "range": Array [ - 15, - 20, + 3, + 4, ], - "type": "Keyword", - "value": "class", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 22, + "column": 5, "line": 1, }, "start": Object { - "column": 21, + "column": 4, "line": 1, }, }, "range": Array [ - 21, - 22, + 4, + 5, ], "type": "Punctuator", - "value": "{", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 6, "line": 1, }, "start": Object { - "column": 22, + "column": 5, "line": 1, }, }, "range": Array [ - 22, - 23, + 5, + 6, ], "type": "Punctuator", - "value": "}", + "value": ")", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/modules/invalid-export-batch-missing-from-clause.src 1`] = `"'from' expected."`; - -exports[`javascript fixtures/modules/invalid-export-batch-token.src 1`] = `"'from' expected."`; - -exports[`javascript fixtures/modules/invalid-export-default.src 1`] = `"';' expected."`; - -exports[`javascript fixtures/modules/invalid-export-default-equal.src 1`] = `"Expression expected."`; - -exports[`javascript fixtures/modules/invalid-export-default-token.src 1`] = `"';' expected."`; - -exports[`javascript fixtures/modules/invalid-export-named-default.src 1`] = ` -Object { - "body": Array [ Object { - "declaration": null, "loc": Object { "end": Object { - "column": 16, + "column": 7, "line": 1, }, "start": Object { - "column": 0, + "column": 6, "line": 1, }, }, "range": Array [ - 0, - 16, - ], - "source": null, - "specifiers": Array [ - Object { - "exported": Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "name": "default", - "range": Array [ - 8, - 15, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "local": Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "name": "default", - "range": Array [ - 8, - 15, - ], - "type": "Identifier", - }, - "range": Array [ - 8, - 15, - ], - "type": "ExportSpecifier", - }, + 6, + 7, ], - "type": "ExportNamedDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Punctuator", + "value": ".", }, - }, - "range": Array [ - 0, - 17, - ], - "sourceType": "module", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 6, + "column": 8, "line": 1, }, "start": Object { - "column": 0, + "column": 7, "line": 1, }, }, "range": Array [ - 0, - 6, + 7, + 8, ], - "type": "Keyword", - "value": "export", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 10, "line": 1, }, "start": Object { - "column": 7, + "column": 9, "line": 1, }, }, "range": Array [ - 7, - 8, + 9, + 10, ], "type": "Punctuator", - "value": "{", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 14, "line": 1, }, "start": Object { - "column": 8, + "column": 11, "line": 1, }, }, "range": Array [ - 8, - 15, + 11, + 14, ], - "type": "Keyword", - "value": "default", + "type": "Identifier", + "value": "obj", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 15, "line": 1, }, "start": Object { - "column": 15, + "column": 14, "line": 1, }, }, "range": Array [ + 14, 15, - 16, ], "type": "Punctuator", - "value": "}", + "value": ";", }, ], "type": "Program", } `; -exports[`javascript fixtures/modules/invalid-export-named-extra-comma.src 1`] = `"Identifier expected."`; - -exports[`javascript fixtures/modules/invalid-export-named-middle-comma.src 1`] = `"Identifier expected."`; - -exports[`javascript fixtures/modules/invalid-import-default.src 1`] = `"Expression expected."`; - -exports[`javascript fixtures/modules/invalid-import-default-after-named.src 1`] = `"'from' expected."`; - -exports[`javascript fixtures/modules/invalid-import-default-after-named-after-default.src 1`] = `"'from' expected."`; - -exports[`javascript fixtures/modules/invalid-import-default-missing-module-specifier.src 1`] = `"'=' expected."`; - -exports[`javascript fixtures/modules/invalid-import-default-module-specifier.src 1`] = ` +exports[`javascript fixtures/objectLiteralComputedProperties/computed-addition-property.src 1`] = ` Object { "body": Array [ Object { - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 20, - ], - "source": Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 1, + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 4, + 5, + ], + "type": "Identifier", }, - "start": Object { - "column": 16, - "line": 1, + "init": Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 3, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": true, + "key": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 6, + "line": 2, + }, + "start": Object { + "column": 5, + "line": 2, + }, + }, + "range": Array [ + 15, + 16, + ], + "raw": "5", + "type": "Literal", + "value": 5, + }, + "loc": Object { + "end": Object { + "column": 10, + "line": 2, + }, + "start": Object { + "column": 5, + "line": 2, + }, + }, + "operator": "+", + "range": Array [ + 15, + 20, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 2, + }, + "start": Object { + "column": 9, + "line": 2, + }, + }, + "range": Array [ + 19, + 20, + ], + "raw": "5", + "type": "Literal", + "value": 5, + }, + "type": "BinaryExpression", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 16, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "method": false, + "range": Array [ + 14, + 26, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 2, + }, + "start": Object { + "column": 13, + "line": 2, + }, + }, + "name": "foo", + "range": Array [ + 23, + 26, + ], + "type": "Identifier", + }, + }, + ], + "range": Array [ + 8, + 28, + ], + "type": "ObjectExpression", }, - }, - "name": "bar", - "range": Array [ - 16, - 19, - ], - "type": "Identifier", - }, - "specifiers": Array [ - Object { "loc": Object { "end": Object { - "column": 10, - "line": 1, + "column": 1, + "line": 3, }, "start": Object { - "column": 7, + "column": 4, "line": 1, }, }, - "local": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, - }, - "name": "foo", - "range": Array [ - 7, - 10, - ], - "type": "Identifier", - }, "range": Array [ - 7, - 10, + 4, + 28, ], - "type": "ImportDefaultSpecifier", + "type": "VariableDeclarator", }, ], - "type": "ImportDeclaration", + "kind": "var", + "loc": Object { + "end": Object { + "column": 2, + "line": 3, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 29, + ], + "type": "VariableDeclaration", }, ], "loc": Object { "end": Object { "column": 0, - "line": 2, + "line": 4, }, "start": Object { "column": 0, @@ -108157,14 +117302,14 @@ Object { }, "range": Array [ 0, - 21, + 30, ], - "sourceType": "module", + "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 6, + "column": 3, "line": 1, }, "start": Object { @@ -108174,423 +117319,371 @@ Object { }, "range": Array [ 0, - 6, + 3, ], "type": "Keyword", - "value": "import", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 5, "line": 1, }, "start": Object { - "column": 7, + "column": 4, "line": 1, }, }, "range": Array [ - 7, - 10, + 4, + 5, ], "type": "Identifier", - "value": "foo", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 7, "line": 1, }, "start": Object { - "column": 11, + "column": 6, "line": 1, }, }, "range": Array [ - 11, - 15, + 6, + 7, ], - "type": "Identifier", - "value": "from", + "type": "Punctuator", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 19, + "column": 9, "line": 1, }, "start": Object { - "column": 16, + "column": 8, "line": 1, }, }, "range": Array [ - 16, - 19, + 8, + 9, ], - "type": "Identifier", - "value": "bar", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 20, - "line": 1, + "column": 5, + "line": 2, }, "start": Object { - "column": 19, - "line": 1, + "column": 4, + "line": 2, }, }, "range": Array [ - 19, - 20, + 14, + 15, ], "type": "Punctuator", - "value": ";", + "value": "[", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/modules/invalid-import-missing-module-specifier.src 1`] = `"'from' expected."`; - -exports[`javascript fixtures/modules/invalid-import-module-specifier.src 1`] = ` -Object { - "body": Array [ Object { - "declaration": null, "loc": Object { "end": Object { - "column": 21, - "line": 1, + "column": 6, + "line": 2, }, "start": Object { - "column": 0, - "line": 1, + "column": 5, + "line": 2, }, }, "range": Array [ - 0, - 21, - ], - "source": Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, - }, - "name": "bar", - "range": Array [ - 18, - 21, - ], - "type": "Identifier", - }, - "specifiers": Array [ - Object { - "exported": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "name": "foo", - "range": Array [ - 8, - 11, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "local": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "name": "foo", - "range": Array [ - 8, - 11, - ], - "type": "Identifier", - }, - "range": Array [ - 8, - 11, - ], - "type": "ExportSpecifier", - }, + 15, + 16, ], - "type": "ExportNamedDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Numeric", + "value": "5", }, - }, - "range": Array [ - 0, - 22, - ], - "sourceType": "module", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 6, - "line": 1, + "column": 8, + "line": 2, }, "start": Object { - "column": 0, - "line": 1, + "column": 7, + "line": 2, }, }, "range": Array [ - 0, - 6, + 17, + 18, ], - "type": "Keyword", - "value": "export", + "type": "Punctuator", + "value": "+", }, Object { "loc": Object { "end": Object { - "column": 8, - "line": 1, + "column": 10, + "line": 2, }, "start": Object { - "column": 7, - "line": 1, + "column": 9, + "line": 2, }, }, "range": Array [ - 7, - 8, + 19, + 20, ], - "type": "Punctuator", - "value": "{", + "type": "Numeric", + "value": "5", }, Object { "loc": Object { "end": Object { "column": 11, - "line": 1, + "line": 2, }, "start": Object { - "column": 8, - "line": 1, + "column": 10, + "line": 2, }, }, "range": Array [ - 8, - 11, + 20, + 21, ], - "type": "Identifier", - "value": "foo", + "type": "Punctuator", + "value": "]", }, Object { "loc": Object { "end": Object { "column": 12, - "line": 1, + "line": 2, }, "start": Object { "column": 11, - "line": 1, + "line": 2, }, }, "range": Array [ - 11, - 12, + 21, + 22, ], "type": "Punctuator", - "value": "}", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 17, - "line": 1, + "column": 16, + "line": 2, }, "start": Object { "column": 13, - "line": 1, + "line": 2, }, }, "range": Array [ - 13, - 17, + 23, + 26, ], "type": "Identifier", - "value": "from", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 21, - "line": 1, + "column": 1, + "line": 3, }, "start": Object { - "column": 18, - "line": 1, + "column": 0, + "line": 3, }, }, "range": Array [ - 18, - 21, + 27, + 28, ], - "type": "Identifier", - "value": "bar", + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 2, + "line": 3, + }, + "start": Object { + "column": 1, + "line": 3, + }, + }, + "range": Array [ + 28, + 29, + ], + "type": "Punctuator", + "value": ";", }, ], "type": "Program", } `; -exports[`javascript fixtures/modules/invalid-import-named-after-named.src 1`] = `"'from' expected."`; - -exports[`javascript fixtures/modules/invalid-import-named-after-namespace.src 1`] = `"'from' expected."`; - -exports[`javascript fixtures/modules/invalid-import-named-as-missing-from.src 1`] = `"'from' expected."`; - -exports[`javascript fixtures/modules/invalid-import-named-extra-comma.src 1`] = `"Identifier expected."`; - -exports[`javascript fixtures/modules/invalid-import-named-middle-comma.src 1`] = `"Identifier expected."`; - -exports[`javascript fixtures/modules/invalid-import-namespace-after-named.src 1`] = `"'from' expected."`; - -exports[`javascript fixtures/modules/invalid-import-namespace-missing-as.src 1`] = `"'as' expected."`; - -exports[`javascript fixtures/newTarget/invalid-new-target.src 1`] = ` +exports[`javascript fixtures/objectLiteralComputedProperties/computed-and-identifier.src 1`] = ` Object { "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, + "expression": Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": true, + "key": Object { + "loc": Object { + "end": Object { + "column": 4, + "line": 1, + }, + "start": Object { + "column": 3, + "line": 1, + }, }, + "name": "x", + "range": Array [ + 3, + 4, + ], + "type": "Identifier", }, - "name": "x", - "range": Array [ - 4, - 5, - ], - "type": "Identifier", - }, - "init": Object { + "kind": "init", "loc": Object { "end": Object { - "column": 18, + "column": 9, "line": 1, }, "start": Object { - "column": 8, + "column": 2, "line": 1, }, }, - "meta": Object { + "method": false, + "range": Array [ + 2, + 9, + ], + "shorthand": false, + "type": "Property", + "value": Object { "loc": Object { "end": Object { - "column": 11, + "column": 9, "line": 1, }, "start": Object { - "column": 8, + "column": 7, "line": 1, }, }, - "name": "new", "range": Array [ - 8, - 11, + 7, + 9, ], - "type": "Identifier", + "raw": "10", + "type": "Literal", + "value": 10, }, - "property": Object { + }, + Object { + "computed": false, + "key": Object { "loc": Object { "end": Object { - "column": 18, + "column": 12, "line": 1, }, "start": Object { - "column": 12, + "column": 11, "line": 1, }, }, - "name": "target", + "name": "y", "range": Array [ + 11, 12, - 18, ], "type": "Identifier", }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "method": false, "range": Array [ - 8, - 18, + 11, + 16, ], - "type": "MetaProperty", - }, - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "range": Array [ + 14, + 16, + ], + "raw": "20", + "type": "Literal", + "value": 20, }, }, - "range": Array [ - 4, - 18, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "var", + ], + "range": Array [ + 1, + 17, + ], + "type": "ObjectExpression", + }, "loc": Object { "end": Object { "column": 19, @@ -108605,13 +117698,13 @@ Object { 0, 19, ], - "type": "VariableDeclaration", + "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 0, - "line": 2, + "column": 19, + "line": 1, }, "start": Object { "column": 0, @@ -108620,14 +117713,14 @@ Object { }, "range": Array [ 0, - 20, + 19, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, + "column": 1, "line": 1, }, "start": Object { @@ -108637,25 +117730,61 @@ Object { }, "range": Array [ 0, - 3, + 1, ], - "type": "Keyword", - "value": "var", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 2, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "range": Array [ + 1, + 2, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 3, "line": 1, }, "start": Object { + "column": 2, + "line": 1, + }, + }, + "range": Array [ + 2, + 3, + ], + "type": "Punctuator", + "value": "[", + }, + Object { + "loc": Object { + "end": Object { "column": 4, "line": 1, }, + "start": Object { + "column": 3, + "line": 1, + }, }, "range": Array [ + 3, 4, - 5, ], "type": "Identifier", "value": "x", @@ -108663,38 +117792,74 @@ Object { Object { "loc": Object { "end": Object { - "column": 7, + "column": 5, "line": 1, }, "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 5, + ], + "type": "Punctuator", + "value": "]", + }, + Object { + "loc": Object { + "end": Object { "column": 6, "line": 1, }, + "start": Object { + "column": 5, + "line": 1, + }, }, "range": Array [ + 5, 6, - 7, ], "type": "Punctuator", - "value": "=", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 9, "line": 1, }, "start": Object { - "column": 8, + "column": 7, "line": 1, }, }, "range": Array [ - 8, - 11, + 7, + 9, ], - "type": "Keyword", - "value": "new", + "type": "Numeric", + "value": "10", + }, + Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "range": Array [ + 9, + 10, + ], + "type": "Punctuator", + "value": ",", }, Object { "loc": Object { @@ -108711,13 +117876,13 @@ Object { 11, 12, ], - "type": "Punctuator", - "value": ".", + "type": "Identifier", + "value": "y", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 13, "line": 1, }, "start": Object { @@ -108727,10 +117892,64 @@ Object { }, "range": Array [ 12, + 13, + ], + "type": "Punctuator", + "value": ":", + }, + Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "range": Array [ + 14, + 16, + ], + "type": "Numeric", + "value": "20", + }, + Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "range": Array [ + 16, + 17, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "range": Array [ + 17, 18, ], - "type": "Identifier", - "value": "target", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { @@ -108755,162 +117974,209 @@ Object { } `; -exports[`javascript fixtures/newTarget/invalid-unknown-property.src 1`] = ` +exports[`javascript fixtures/objectLiteralComputedProperties/computed-getter-and-setter.src 1`] = ` Object { "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { + "expression": Object { + "loc": Object { + "end": Object { + "column": 30, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": true, + "key": Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 7, + 8, + ], + "type": "Identifier", + }, + "kind": "get", "loc": Object { "end": Object { - "column": 5, + "column": 14, "line": 1, }, "start": Object { - "column": 4, + "column": 2, "line": 1, }, }, - "name": "f", + "method": false, "range": Array [ - 4, - 5, + 2, + 14, ], - "type": "Identifier", - }, - "init": Object { - "async": false, - "body": Object { - "body": Array [ - Object { - "expression": Object { - "loc": Object { - "end": Object { - "column": 41, - "line": 1, - }, - "start": Object { - "column": 21, - "line": 1, - }, - }, - "meta": Object { - "loc": Object { - "end": Object { - "column": 24, - "line": 1, - }, - "start": Object { - "column": 21, - "line": 1, - }, - }, - "name": "new", - "range": Array [ - 21, - 24, - ], - "type": "Identifier", - }, - "property": Object { - "loc": Object { - "end": Object { - "column": 41, - "line": 1, - }, - "start": Object { - "column": 25, - "line": 1, - }, - }, - "name": "unknown_property", - "range": Array [ - 25, - 41, - ], - "type": "Identifier", - }, - "range": Array [ - 21, - 41, - ], - "type": "MetaProperty", + "shorthand": false, + "type": "Property", + "value": Object { + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 14, + "line": 1, }, - "loc": Object { - "end": Object { - "column": 42, - "line": 1, - }, - "start": Object { - "column": 21, - "line": 1, - }, + "start": Object { + "column": 12, + "line": 1, }, - "range": Array [ - 21, - 42, - ], - "type": "ExpressionStatement", }, + "range": Array [ + 12, + 14, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "params": Array [], + "range": Array [ + 9, + 14, ], + "type": "FunctionExpression", + }, + }, + Object { + "computed": true, + "key": Object { "loc": Object { "end": Object { - "column": 44, + "column": 22, "line": 1, }, "start": Object { - "column": 19, + "column": 21, "line": 1, }, }, + "name": "x", "range": Array [ - 19, - 44, + 21, + 22, ], - "type": "BlockStatement", + "type": "Identifier", }, - "expression": false, - "generator": false, - "id": null, + "kind": "set", "loc": Object { "end": Object { - "column": 44, + "column": 29, "line": 1, }, "start": Object { - "column": 8, + "column": 16, "line": 1, }, }, - "params": Array [], + "method": false, "range": Array [ - 8, - 44, + 16, + 29, ], - "type": "FunctionExpression", - }, - "loc": Object { - "end": Object { - "column": 44, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, + "shorthand": false, + "type": "Property", + "value": Object { + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 29, + "line": 1, + }, + "start": Object { + "column": 27, + "line": 1, + }, + }, + "range": Array [ + 27, + 29, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 29, + "line": 1, + }, + "start": Object { + "column": 23, + "line": 1, + }, + }, + "params": Array [ + Object { + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, + }, + }, + "name": "v", + "range": Array [ + 24, + 25, + ], + "type": "Identifier", + }, + ], + "range": Array [ + 23, + 29, + ], + "type": "FunctionExpression", }, }, - "range": Array [ - 4, - 44, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "var", + ], + "range": Array [ + 1, + 30, + ], + "type": "ObjectExpression", + }, "loc": Object { "end": Object { - "column": 44, + "column": 32, "line": 1, }, "start": Object { @@ -108920,15 +118186,15 @@ Object { }, "range": Array [ 0, - 44, + 32, ], - "type": "VariableDeclaration", + "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 0, - "line": 2, + "column": 32, + "line": 1, }, "start": Object { "column": 0, @@ -108937,552 +118203,325 @@ Object { }, "range": Array [ 0, - 45, + 32, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 3, - ], - "type": "Keyword", - "value": "var", - }, - Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 5, - ], - "type": "Identifier", - "value": "f", - }, - Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "range": Array [ - 6, - 7, - ], - "type": "Punctuator", - "value": "=", - }, - Object { - "loc": Object { - "end": Object { - "column": 16, + "column": 1, "line": 1, }, "start": Object { - "column": 8, + "column": 0, "line": 1, }, }, "range": Array [ - 8, - 16, + 0, + 1, ], - "type": "Keyword", - "value": "function", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 2, "line": 1, }, "start": Object { - "column": 16, + "column": 1, "line": 1, }, }, "range": Array [ - 16, - 17, + 1, + 2, ], "type": "Punctuator", - "value": "(", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 5, "line": 1, }, "start": Object { - "column": 17, + "column": 2, "line": 1, }, }, "range": Array [ - 17, - 18, + 2, + 5, ], - "type": "Punctuator", - "value": ")", + "type": "Identifier", + "value": "get", }, Object { "loc": Object { "end": Object { - "column": 20, + "column": 7, "line": 1, }, "start": Object { - "column": 19, + "column": 6, "line": 1, }, }, "range": Array [ - 19, - 20, + 6, + 7, ], "type": "Punctuator", - "value": "{", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 24, + "column": 8, "line": 1, }, "start": Object { - "column": 21, + "column": 7, "line": 1, }, }, "range": Array [ - 21, - 24, + 7, + 8, ], - "type": "Keyword", - "value": "new", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 25, + "column": 9, "line": 1, }, "start": Object { - "column": 24, + "column": 8, "line": 1, }, }, "range": Array [ - 24, - 25, + 8, + 9, ], "type": "Punctuator", - "value": ".", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 41, + "column": 10, "line": 1, }, "start": Object { - "column": 25, + "column": 9, "line": 1, }, }, "range": Array [ - 25, - 41, + 9, + 10, ], - "type": "Identifier", - "value": "unknown_property", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 42, + "column": 11, "line": 1, }, "start": Object { - "column": 41, + "column": 10, "line": 1, }, }, "range": Array [ - 41, - 42, + 10, + 11, ], "type": "Punctuator", - "value": ";", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 44, + "column": 13, "line": 1, }, "start": Object { - "column": 43, + "column": 12, "line": 1, }, }, "range": Array [ - 43, - 44, + 12, + 13, ], "type": "Punctuator", - "value": "}", + "value": "{", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/newTarget/simple-new-target.src 1`] = ` -Object { - "body": Array [ Object { - "async": false, - "body": Object { - "body": Array [ - Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 2, - }, - "start": Object { - "column": 8, - "line": 2, - }, - }, - "name": "x", - "range": Array [ - 23, - 24, - ], - "type": "Identifier", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 22, - "line": 2, - }, - "start": Object { - "column": 12, - "line": 2, - }, - }, - "meta": Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 2, - }, - "start": Object { - "column": 12, - "line": 2, - }, - }, - "name": "new", - "range": Array [ - 27, - 30, - ], - "type": "Identifier", - }, - "property": Object { - "loc": Object { - "end": Object { - "column": 22, - "line": 2, - }, - "start": Object { - "column": 16, - "line": 2, - }, - }, - "name": "target", - "range": Array [ - 31, - 37, - ], - "type": "Identifier", - }, - "range": Array [ - 27, - 37, - ], - "type": "MetaProperty", - }, - "loc": Object { - "end": Object { - "column": 22, - "line": 2, - }, - "start": Object { - "column": 8, - "line": 2, - }, - }, - "range": Array [ - 23, - 37, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "var", - "loc": Object { - "end": Object { - "column": 23, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "range": Array [ - 19, - 38, - ], - "type": "VariableDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 1, - "line": 3, - }, - "start": Object { - "column": 13, - "line": 1, - }, - }, - "range": Array [ - 13, - 40, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "name": "f", - "range": Array [ - 9, - 10, - ], - "type": "Identifier", - }, "loc": Object { "end": Object { - "column": 1, - "line": 3, + "column": 14, + "line": 1, }, "start": Object { - "column": 0, + "column": 13, "line": 1, }, }, - "params": Array [], "range": Array [ - 0, - 40, + 13, + 14, ], - "type": "FunctionDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 4, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Punctuator", + "value": "}", }, - }, - "range": Array [ - 0, - 41, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 8, + "column": 15, "line": 1, }, "start": Object { - "column": 0, + "column": 14, "line": 1, }, }, "range": Array [ - 0, - 8, + 14, + 15, ], - "type": "Keyword", - "value": "function", + "type": "Punctuator", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 19, "line": 1, }, "start": Object { - "column": 9, + "column": 16, "line": 1, }, }, "range": Array [ - 9, - 10, + 16, + 19, ], "type": "Identifier", - "value": "f", + "value": "set", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 21, "line": 1, }, "start": Object { - "column": 10, + "column": 20, "line": 1, }, }, "range": Array [ - 10, - 11, + 20, + 21, ], "type": "Punctuator", - "value": "(", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 22, "line": 1, }, "start": Object { - "column": 11, + "column": 21, "line": 1, }, }, "range": Array [ - 11, - 12, + 21, + 22, ], - "type": "Punctuator", - "value": ")", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 23, "line": 1, }, "start": Object { - "column": 13, + "column": 22, "line": 1, }, }, "range": Array [ - 13, - 14, + 22, + 23, ], "type": "Punctuator", - "value": "{", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 2, + "column": 24, + "line": 1, }, "start": Object { - "column": 4, - "line": 2, + "column": 23, + "line": 1, }, }, "range": Array [ - 19, - 22, + 23, + 24, ], - "type": "Keyword", - "value": "var", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 9, - "line": 2, + "column": 25, + "line": 1, }, "start": Object { - "column": 8, - "line": 2, + "column": 24, + "line": 1, }, }, "range": Array [ - 23, 24, + 25, ], "type": "Identifier", - "value": "x", + "value": "v", }, Object { "loc": Object { "end": Object { - "column": 11, - "line": 2, + "column": 26, + "line": 1, }, "start": Object { - "column": 10, - "line": 2, + "column": 25, + "line": 1, }, }, "range": Array [ @@ -109490,238 +118529,226 @@ Object { 26, ], "type": "Punctuator", - "value": "=", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 15, - "line": 2, + "column": 28, + "line": 1, }, "start": Object { - "column": 12, - "line": 2, + "column": 27, + "line": 1, }, }, "range": Array [ 27, - 30, - ], - "type": "Keyword", - "value": "new", - }, - Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 2, - }, - "start": Object { - "column": 15, - "line": 2, - }, - }, - "range": Array [ - 30, - 31, + 28, ], "type": "Punctuator", - "value": ".", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 22, - "line": 2, + "column": 29, + "line": 1, }, "start": Object { - "column": 16, - "line": 2, + "column": 28, + "line": 1, }, }, "range": Array [ - 31, - 37, + 28, + 29, ], - "type": "Identifier", - "value": "target", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 23, - "line": 2, + "column": 30, + "line": 1, }, "start": Object { - "column": 22, - "line": 2, + "column": 29, + "line": 1, }, }, "range": Array [ - 37, - 38, + 29, + 30, ], "type": "Punctuator", - "value": ";", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 1, - "line": 3, + "column": 31, + "line": 1, }, "start": Object { - "column": 0, - "line": 3, + "column": 30, + "line": 1, }, }, "range": Array [ - 39, - 40, - ], - "type": "Punctuator", - "value": "}", - }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/objectLiteral/object-literal-in-lhs.src 1`] = ` -Object { - "body": Array [ - Object { - "expression": Object { - "left": Object { - "computed": false, - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "object": Object { - "arguments": Array [ - Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 1, - }, - "start": Object { - "column": 3, - "line": 1, - }, - }, - "properties": Array [], - "range": Array [ - 3, - 5, - ], - "type": "ObjectExpression", - }, - ], - "callee": Object { - "loc": Object { - "end": Object { - "column": 2, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "name": "fn", - "range": Array [ - 0, - 2, - ], - "type": "Identifier", - }, + 30, + 31, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 32, + "line": 1, + }, + "start": Object { + "column": 31, + "line": 1, + }, + }, + "range": Array [ + 31, + 32, + ], + "type": "Punctuator", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/objectLiteralComputedProperties/computed-string-property.src 1`] = ` +Object { + "body": Array [ + Object { + "declarations": Array [ + Object { + "id": Object { "loc": Object { "end": Object { - "column": 6, + "column": 5, "line": 1, }, "start": Object { - "column": 0, + "column": 4, "line": 1, }, }, + "name": "x", "range": Array [ - 0, - 6, + 4, + 5, ], - "type": "CallExpression", + "type": "Identifier", }, - "property": Object { + "init": Object { "loc": Object { "end": Object { - "column": 8, - "line": 1, + "column": 1, + "line": 3, }, "start": Object { - "column": 7, + "column": 8, "line": 1, }, }, - "name": "x", + "properties": Array [ + Object { + "computed": true, + "key": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 2, + }, + "start": Object { + "column": 5, + "line": 2, + }, + }, + "range": Array [ + 15, + 20, + ], + "raw": "\\"hey\\"", + "type": "Literal", + "value": "hey", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 16, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "method": false, + "range": Array [ + 14, + 26, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 2, + }, + "start": Object { + "column": 13, + "line": 2, + }, + }, + "name": "foo", + "range": Array [ + 23, + 26, + ], + "type": "Identifier", + }, + }, + ], "range": Array [ - 7, 8, + 28, ], - "type": "Identifier", - }, - "range": Array [ - 0, - 8, - ], - "type": "MemberExpression", - }, - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "ObjectExpression", }, - }, - "operator": "=", - "range": Array [ - 0, - 14, - ], - "right": Object { "loc": Object { "end": Object { - "column": 14, - "line": 1, + "column": 1, + "line": 3, }, "start": Object { - "column": 11, + "column": 4, "line": 1, }, }, - "name": "obj", "range": Array [ - 11, - 14, + 4, + 28, ], - "type": "Identifier", + "type": "VariableDeclarator", }, - "type": "AssignmentExpression", - }, + ], + "kind": "var", "loc": Object { "end": Object { - "column": 15, - "line": 1, + "column": 2, + "line": 3, }, "start": Object { "column": 0, @@ -109730,15 +118757,15 @@ Object { }, "range": Array [ 0, - 15, + 29, ], - "type": "ExpressionStatement", + "type": "VariableDeclaration", }, ], "loc": Object { "end": Object { "column": 0, - "line": 2, + "line": 4, }, "start": Object { "column": 0, @@ -109747,14 +118774,14 @@ Object { }, "range": Array [ 0, - 16, + 30, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 2, + "column": 3, "line": 1, }, "start": Object { @@ -109764,43 +118791,61 @@ Object { }, "range": Array [ 0, - 2, + 3, + ], + "type": "Keyword", + "value": "var", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 5, ], "type": "Identifier", - "value": "fn", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 3, + "column": 7, "line": 1, }, "start": Object { - "column": 2, + "column": 6, "line": 1, }, }, "range": Array [ - 2, - 3, + 6, + 7, ], "type": "Punctuator", - "value": "(", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 4, + "column": 9, "line": 1, }, "start": Object { - "column": 3, + "column": 8, "line": 1, }, }, "range": Array [ - 3, - 4, + 8, + 9, ], "type": "Punctuator", "value": "{", @@ -109809,124 +118854,124 @@ Object { "loc": Object { "end": Object { "column": 5, - "line": 1, + "line": 2, }, "start": Object { "column": 4, - "line": 1, + "line": 2, }, }, "range": Array [ - 4, - 5, + 14, + 15, ], "type": "Punctuator", - "value": "}", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 6, - "line": 1, + "column": 10, + "line": 2, }, "start": Object { "column": 5, - "line": 1, + "line": 2, }, }, "range": Array [ - 5, - 6, + 15, + 20, ], - "type": "Punctuator", - "value": ")", + "type": "String", + "value": "\\"hey\\"", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 1, + "column": 11, + "line": 2, }, "start": Object { - "column": 6, - "line": 1, + "column": 10, + "line": 2, }, }, "range": Array [ - 6, - 7, + 20, + 21, ], "type": "Punctuator", - "value": ".", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 8, - "line": 1, + "column": 12, + "line": 2, }, "start": Object { - "column": 7, - "line": 1, + "column": 11, + "line": 2, }, }, "range": Array [ - 7, - 8, + 21, + 22, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 10, - "line": 1, + "column": 16, + "line": 2, }, "start": Object { - "column": 9, - "line": 1, + "column": 13, + "line": 2, }, }, "range": Array [ - 9, - 10, + 23, + 26, ], - "type": "Punctuator", - "value": "=", + "type": "Identifier", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 14, - "line": 1, + "column": 1, + "line": 3, }, "start": Object { - "column": 11, - "line": 1, + "column": 0, + "line": 3, }, }, "range": Array [ - 11, - 14, + 27, + 28, ], - "type": "Identifier", - "value": "obj", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 15, - "line": 1, + "column": 2, + "line": 3, }, "start": Object { - "column": 14, - "line": 1, + "column": 1, + "line": 3, }, }, "range": Array [ - 14, - 15, + 28, + 29, ], "type": "Punctuator", "value": ";", @@ -109936,7 +118981,7 @@ Object { } `; -exports[`javascript fixtures/objectLiteralComputedProperties/computed-addition-property.src 1`] = ` +exports[`javascript fixtures/objectLiteralComputedProperties/computed-variable-property.src 1`] = ` Object { "body": Array [ Object { @@ -109975,28 +119020,9 @@ Object { Object { "computed": true, "key": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 2, - }, - "start": Object { - "column": 5, - "line": 2, - }, - }, - "range": Array [ - 15, - 16, - ], - "raw": "5", - "type": "Literal", - "value": 5, - }, "loc": Object { "end": Object { - "column": 10, + "column": 8, "line": 2, }, "start": Object { @@ -110004,36 +119030,17 @@ Object { "line": 2, }, }, - "operator": "+", + "name": "bar", "range": Array [ 15, - 20, + 18, ], - "right": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 2, - }, - "start": Object { - "column": 9, - "line": 2, - }, - }, - "range": Array [ - 19, - 20, - ], - "raw": "5", - "type": "Literal", - "value": 5, - }, - "type": "BinaryExpression", + "type": "Identifier", }, "kind": "init", "loc": Object { "end": Object { - "column": 16, + "column": 14, "line": 2, }, "start": Object { @@ -110044,25 +119051,25 @@ Object { "method": false, "range": Array [ 14, - 26, + 24, ], "shorthand": false, "type": "Property", "value": Object { "loc": Object { "end": Object { - "column": 16, + "column": 14, "line": 2, }, "start": Object { - "column": 13, + "column": 11, "line": 2, }, }, "name": "foo", "range": Array [ - 23, - 26, + 21, + 24, ], "type": "Identifier", }, @@ -110070,7 +119077,7 @@ Object { ], "range": Array [ 8, - 28, + 26, ], "type": "ObjectExpression", }, @@ -110086,7 +119093,7 @@ Object { }, "range": Array [ 4, - 28, + 26, ], "type": "VariableDeclarator", }, @@ -110104,7 +119111,7 @@ Object { }, "range": Array [ 0, - 29, + 27, ], "type": "VariableDeclaration", }, @@ -110121,7 +119128,7 @@ Object { }, "range": Array [ 0, - 30, + 28, ], "sourceType": "script", "tokens": Array [ @@ -110218,7 +119225,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 6, + "column": 8, "line": 2, }, "start": Object { @@ -110228,28 +119235,28 @@ Object { }, "range": Array [ 15, - 16, + 18, ], - "type": "Numeric", - "value": "5", + "type": "Identifier", + "value": "bar", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 9, "line": 2, }, "start": Object { - "column": 7, + "column": 8, "line": 2, }, }, "range": Array [ - 17, 18, + 19, ], "type": "Punctuator", - "value": "+", + "value": "]", }, Object { "loc": Object { @@ -110266,31 +119273,13 @@ Object { 19, 20, ], - "type": "Numeric", - "value": "5", - }, - Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 2, - }, - "start": Object { - "column": 10, - "line": 2, - }, - }, - "range": Array [ - 20, - 21, - ], "type": "Punctuator", - "value": "]", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 14, "line": 2, }, "start": Object { @@ -110300,25 +119289,7 @@ Object { }, "range": Array [ 21, - 22, - ], - "type": "Punctuator", - "value": ":", - }, - Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 2, - }, - "start": Object { - "column": 13, - "line": 2, - }, - }, - "range": Array [ - 23, - 26, + 24, ], "type": "Identifier", "value": "foo", @@ -110335,8 +119306,8 @@ Object { }, }, "range": Array [ - 27, - 28, + 25, + 26, ], "type": "Punctuator", "value": "}", @@ -110353,8 +119324,8 @@ Object { }, }, "range": Array [ - 28, - 29, + 26, + 27, ], "type": "Punctuator", "value": ";", @@ -110364,14 +119335,18 @@ Object { } `; -exports[`javascript fixtures/objectLiteralComputedProperties/computed-and-identifier.src 1`] = ` +exports[`javascript fixtures/objectLiteralComputedProperties/invalid-computed-variable-property.src 1`] = `"':' expected."`; + +exports[`javascript fixtures/objectLiteralComputedProperties/invalid-standalone-computed-variable-property.src 1`] = `"':' expected."`; + +exports[`javascript fixtures/objectLiteralComputedProperties/standalone-expression.src 1`] = ` Object { "body": Array [ Object { "expression": Object { "loc": Object { "end": Object { - "column": 17, + "column": 10, "line": 1, }, "start": Object { @@ -110438,74 +119413,16 @@ Object { "value": 10, }, }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "name": "y", - "range": Array [ - 11, - 12, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 11, - 16, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "range": Array [ - 14, - 16, - ], - "raw": "20", - "type": "Literal", - "value": 20, - }, - }, ], "range": Array [ 1, - 17, + 10, ], "type": "ObjectExpression", }, "loc": Object { "end": Object { - "column": 19, + "column": 12, "line": 1, }, "start": Object { @@ -110515,15 +119432,15 @@ Object { }, "range": Array [ 0, - 19, + 12, ], "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 19, - "line": 1, + "column": 0, + "line": 2, }, "start": Object { "column": 0, @@ -110532,7 +119449,7 @@ Object { }, "range": Array [ 0, - 19, + 13, ], "sourceType": "script", "tokens": Array [ @@ -110678,94 +119595,22 @@ Object { 10, ], "type": "Punctuator", - "value": ",", - }, - Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "range": Array [ - 11, - 12, - ], - "type": "Identifier", - "value": "y", - }, - Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "range": Array [ - 12, - 13, - ], - "type": "Punctuator", - "value": ":", - }, - Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "range": Array [ - 14, - 16, - ], - "type": "Numeric", - "value": "20", - }, - Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "range": Array [ - 16, - 17, - ], - "type": "Punctuator", "value": "}", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 11, "line": 1, }, "start": Object { - "column": 17, + "column": 10, "line": 1, }, }, "range": Array [ - 17, - 18, + 10, + 11, ], "type": "Punctuator", "value": ")", @@ -110773,17 +119618,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 19, + "column": 12, "line": 1, }, "start": Object { - "column": 18, + "column": 11, "line": 1, }, }, "range": Array [ - 18, - 19, + 11, + 12, ], "type": "Punctuator", "value": ";", @@ -110793,14 +119638,14 @@ Object { } `; -exports[`javascript fixtures/objectLiteralComputedProperties/computed-getter-and-setter.src 1`] = ` +exports[`javascript fixtures/objectLiteralComputedProperties/standalone-expression-with-addition.src 1`] = ` Object { "body": Array [ Object { "expression": Object { "loc": Object { "end": Object { - "column": 30, + "column": 18, "line": 1, }, "start": Object { @@ -110812,190 +119657,109 @@ Object { Object { "computed": true, "key": Object { - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 7, - 8, - ], - "type": "Identifier", - }, - "kind": "get", - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 2, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 2, - 14, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "async": false, - "body": Object { - "body": Array [], + "left": Object { "loc": Object { "end": Object { - "column": 14, + "column": 6, "line": 1, }, "start": Object { - "column": 12, + "column": 3, "line": 1, }, }, "range": Array [ - 12, - 14, + 3, + 6, ], - "type": "BlockStatement", + "raw": "\\"x\\"", + "type": "Literal", + "value": "x", }, - "expression": false, - "generator": false, - "id": null, "loc": Object { "end": Object { - "column": 14, + "column": 12, "line": 1, }, "start": Object { - "column": 9, + "column": 3, "line": 1, }, }, - "params": Array [], + "operator": "+", "range": Array [ - 9, - 14, + 3, + 12, ], - "type": "FunctionExpression", - }, - }, - Object { - "computed": true, - "key": Object { - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 21, - "line": 1, + "right": Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, }, + "range": Array [ + 9, + 12, + ], + "raw": "\\"y\\"", + "type": "Literal", + "value": "y", }, - "name": "x", - "range": Array [ - 21, - 22, - ], - "type": "Identifier", + "type": "BinaryExpression", }, - "kind": "set", + "kind": "init", "loc": Object { "end": Object { - "column": 29, + "column": 17, "line": 1, }, "start": Object { - "column": 16, + "column": 2, "line": 1, }, }, "method": false, "range": Array [ - 16, - 29, + 2, + 17, ], "shorthand": false, "type": "Property", "value": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 29, - "line": 1, - }, - "start": Object { - "column": 27, - "line": 1, - }, - }, - "range": Array [ - 27, - 29, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, "loc": Object { "end": Object { - "column": 29, + "column": 17, "line": 1, }, "start": Object { - "column": 23, + "column": 15, "line": 1, }, }, - "params": Array [ - Object { - "loc": Object { - "end": Object { - "column": 25, - "line": 1, - }, - "start": Object { - "column": 24, - "line": 1, - }, - }, - "name": "v", - "range": Array [ - 24, - 25, - ], - "type": "Identifier", - }, - ], "range": Array [ - 23, - 29, + 15, + 17, ], - "type": "FunctionExpression", + "raw": "10", + "type": "Literal", + "value": 10, }, }, ], "range": Array [ 1, - 30, + 18, ], "type": "ObjectExpression", }, "loc": Object { "end": Object { - "column": 32, + "column": 20, "line": 1, }, "start": Object { @@ -111005,15 +119769,15 @@ Object { }, "range": Array [ 0, - 32, + 20, ], "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 32, - "line": 1, + "column": 0, + "line": 2, }, "start": Object { "column": 0, @@ -111022,7 +119786,7 @@ Object { }, "range": Array [ 0, - 32, + 21, ], "sourceType": "script", "tokens": Array [ @@ -111065,7 +119829,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 5, + "column": 3, "line": 1, }, "start": Object { @@ -111075,28 +119839,28 @@ Object { }, "range": Array [ 2, - 5, + 3, ], - "type": "Identifier", - "value": "get", + "type": "Punctuator", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 6, "line": 1, }, "start": Object { - "column": 6, + "column": 3, "line": 1, }, }, "range": Array [ + 3, 6, - 7, ], - "type": "Punctuator", - "value": "[", + "type": "String", + "value": "\\"x\\"", }, Object { "loc": Object { @@ -111113,31 +119877,13 @@ Object { 7, 8, ], - "type": "Identifier", - "value": "x", - }, - Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "range": Array [ - 8, - 9, - ], "type": "Punctuator", - "value": "]", + "value": "+", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 12, "line": 1, }, "start": Object { @@ -111147,28 +119893,10 @@ Object { }, "range": Array [ 9, - 10, - ], - "type": "Punctuator", - "value": "(", - }, - Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "range": Array [ - 10, - 11, + 12, ], - "type": "Punctuator", - "value": ")", + "type": "String", + "value": "\\"y\\"", }, Object { "loc": Object { @@ -111186,7 +119914,7 @@ Object { 13, ], "type": "Punctuator", - "value": "{", + "value": "]", }, Object { "loc": Object { @@ -111204,202 +119932,40 @@ Object { 14, ], "type": "Punctuator", - "value": "}", - }, - Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "range": Array [ - 14, - 15, - ], - "type": "Punctuator", - "value": ",", - }, - Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "range": Array [ - 16, - 19, - ], - "type": "Identifier", - "value": "set", - }, - Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, - }, - "range": Array [ - 20, - 21, - ], - "type": "Punctuator", - "value": "[", - }, - Object { - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 21, - "line": 1, - }, - }, - "range": Array [ - 21, - 22, - ], - "type": "Identifier", - "value": "x", - }, - Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 22, - "line": 1, - }, - }, - "range": Array [ - 22, - 23, - ], - "type": "Punctuator", - "value": "]", - }, - Object { - "loc": Object { - "end": Object { - "column": 24, - "line": 1, - }, - "start": Object { - "column": 23, - "line": 1, - }, - }, - "range": Array [ - 23, - 24, - ], - "type": "Punctuator", - "value": "(", - }, - Object { - "loc": Object { - "end": Object { - "column": 25, - "line": 1, - }, - "start": Object { - "column": 24, - "line": 1, - }, - }, - "range": Array [ - 24, - 25, - ], - "type": "Identifier", - "value": "v", - }, - Object { - "loc": Object { - "end": Object { - "column": 26, - "line": 1, - }, - "start": Object { - "column": 25, - "line": 1, - }, - }, - "range": Array [ - 25, - 26, - ], - "type": "Punctuator", - "value": ")", - }, - Object { - "loc": Object { - "end": Object { - "column": 28, - "line": 1, - }, - "start": Object { - "column": 27, - "line": 1, - }, - }, - "range": Array [ - 27, - 28, - ], - "type": "Punctuator", - "value": "{", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 29, + "column": 17, "line": 1, }, "start": Object { - "column": 28, + "column": 15, "line": 1, }, }, "range": Array [ - 28, - 29, + 15, + 17, ], - "type": "Punctuator", - "value": "}", + "type": "Numeric", + "value": "10", }, Object { "loc": Object { "end": Object { - "column": 30, + "column": 18, "line": 1, }, "start": Object { - "column": 29, + "column": 17, "line": 1, }, }, "range": Array [ - 29, - 30, + 17, + 18, ], "type": "Punctuator", "value": "}", @@ -111407,17 +119973,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 31, + "column": 19, "line": 1, }, "start": Object { - "column": 30, + "column": 18, "line": 1, }, }, "range": Array [ - 30, - 31, + 18, + 19, ], "type": "Punctuator", "value": ")", @@ -111425,17 +119991,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 32, + "column": 20, "line": 1, }, "start": Object { - "column": 31, + "column": 19, "line": 1, }, }, "range": Array [ - 31, - 32, + 19, + 20, ], "type": "Punctuator", "value": ";", @@ -111445,129 +120011,112 @@ Object { } `; -exports[`javascript fixtures/objectLiteralComputedProperties/computed-string-property.src 1`] = ` +exports[`javascript fixtures/objectLiteralComputedProperties/standalone-expression-with-method.src 1`] = ` Object { "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { + "expression": Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": true, + "key": Object { + "loc": Object { + "end": Object { + "column": 4, + "line": 1, + }, + "start": Object { + "column": 3, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 3, + 4, + ], + "type": "Identifier", + }, + "kind": "init", "loc": Object { "end": Object { - "column": 5, + "column": 20, "line": 1, }, "start": Object { - "column": 4, + "column": 2, "line": 1, }, }, - "name": "x", + "method": false, "range": Array [ - 4, - 5, + 2, + 20, ], - "type": "Identifier", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 1, - "line": 3, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "properties": Array [ - Object { - "computed": true, - "key": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 2, - }, - "start": Object { - "column": 5, - "line": 2, - }, - }, - "range": Array [ - 15, - 20, - ], - "raw": "\\"hey\\"", - "type": "Literal", - "value": "hey", - }, - "kind": "init", + "shorthand": false, + "type": "Property", + "value": Object { + "async": false, + "body": Object { + "body": Array [], "loc": Object { "end": Object { - "column": 16, - "line": 2, + "column": 20, + "line": 1, }, "start": Object { - "column": 4, - "line": 2, + "column": 18, + "line": 1, }, }, - "method": false, "range": Array [ - 14, - 26, + 18, + 20, ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 2, - }, - "start": Object { - "column": 13, - "line": 2, - }, - }, - "name": "foo", - "range": Array [ - 23, - 26, - ], - "type": "Identifier", + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, }, }, - ], - "range": Array [ - 8, - 28, - ], - "type": "ObjectExpression", - }, - "loc": Object { - "end": Object { - "column": 1, - "line": 3, - }, - "start": Object { - "column": 4, - "line": 1, + "params": Array [], + "range": Array [ + 7, + 20, + ], + "type": "FunctionExpression", }, }, - "range": Array [ - 4, - 28, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "var", + ], + "range": Array [ + 1, + 21, + ], + "type": "ObjectExpression", + }, "loc": Object { "end": Object { - "column": 2, - "line": 3, + "column": 23, + "line": 1, }, "start": Object { "column": 0, @@ -111576,15 +120125,15 @@ Object { }, "range": Array [ 0, - 29, + 23, ], - "type": "VariableDeclaration", + "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { "column": 0, - "line": 4, + "line": 2, }, "start": Object { "column": 0, @@ -111593,14 +120142,14 @@ Object { }, "range": Array [ 0, - 30, + 24, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, + "column": 1, "line": 1, }, "start": Object { @@ -111610,25 +120159,61 @@ Object { }, "range": Array [ 0, - 3, + 1, ], - "type": "Keyword", - "value": "var", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 2, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, + }, + "range": Array [ + 1, + 2, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 3, "line": 1, }, "start": Object { + "column": 2, + "line": 1, + }, + }, + "range": Array [ + 2, + 3, + ], + "type": "Punctuator", + "value": "[", + }, + Object { + "loc": Object { + "end": Object { "column": 4, "line": 1, }, + "start": Object { + "column": 3, + "line": 1, + }, }, "range": Array [ + 3, 4, - 5, ], "type": "Identifier", "value": "x", @@ -111636,143 +120221,143 @@ Object { Object { "loc": Object { "end": Object { - "column": 7, + "column": 5, "line": 1, }, "start": Object { - "column": 6, + "column": 4, "line": 1, }, }, "range": Array [ - 6, - 7, + 4, + 5, ], "type": "Punctuator", - "value": "=", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 6, "line": 1, }, "start": Object { - "column": 8, + "column": 5, "line": 1, }, }, "range": Array [ - 8, - 9, + 5, + 6, ], "type": "Punctuator", - "value": "{", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 5, - "line": 2, + "column": 15, + "line": 1, }, "start": Object { - "column": 4, - "line": 2, + "column": 7, + "line": 1, }, }, "range": Array [ - 14, + 7, 15, ], - "type": "Punctuator", - "value": "[", + "type": "Keyword", + "value": "function", }, Object { "loc": Object { "end": Object { - "column": 10, - "line": 2, + "column": 16, + "line": 1, }, "start": Object { - "column": 5, - "line": 2, + "column": 15, + "line": 1, }, }, "range": Array [ 15, - 20, + 16, ], - "type": "String", - "value": "\\"hey\\"", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 11, - "line": 2, + "column": 17, + "line": 1, }, "start": Object { - "column": 10, - "line": 2, + "column": 16, + "line": 1, }, }, "range": Array [ - 20, - 21, + 16, + 17, ], "type": "Punctuator", - "value": "]", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 12, - "line": 2, + "column": 19, + "line": 1, }, "start": Object { - "column": 11, - "line": 2, + "column": 18, + "line": 1, }, }, "range": Array [ - 21, - 22, + 18, + 19, ], "type": "Punctuator", - "value": ":", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 16, - "line": 2, + "column": 20, + "line": 1, }, "start": Object { - "column": 13, - "line": 2, + "column": 19, + "line": 1, }, }, "range": Array [ - 23, - 26, + 19, + 20, ], - "type": "Identifier", - "value": "foo", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 1, - "line": 3, + "column": 21, + "line": 1, }, "start": Object { - "column": 0, - "line": 3, + "column": 20, + "line": 1, }, }, "range": Array [ - 27, - 28, + 20, + 21, ], "type": "Punctuator", "value": "}", @@ -111780,17 +120365,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 2, - "line": 3, + "column": 22, + "line": 1, }, "start": Object { - "column": 1, - "line": 3, + "column": 21, + "line": 1, }, }, "range": Array [ - 28, - 29, + 21, + 22, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "range": Array [ + 22, + 23, ], "type": "Punctuator", "value": ";", @@ -111800,9 +120403,119 @@ Object { } `; -exports[`javascript fixtures/objectLiteralComputedProperties/computed-variable-property.src 1`] = ` +exports[`javascript fixtures/objectLiteralDuplicateProperties/error-proto-property.src 1`] = ` Object { "body": Array [ + Object { + "directive": "use strict", + "expression": Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 12, + ], + "raw": "\\"use strict\\"", + "type": "Literal", + "value": "use strict", + }, + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 13, + ], + "type": "ExpressionStatement", + }, + Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 3, + }, + }, + "name": "proto", + "range": Array [ + 19, + 24, + ], + "type": "Identifier", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 3, + }, + "start": Object { + "column": 12, + "line": 3, + }, + }, + "properties": Array [], + "range": Array [ + 27, + 29, + ], + "type": "ObjectExpression", + }, + "loc": Object { + "end": Object { + "column": 14, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 3, + }, + }, + "range": Array [ + 19, + 29, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", + "loc": Object { + "end": Object { + "column": 15, + "line": 3, + }, + "start": Object { + "column": 0, + "line": 3, + }, + }, + "range": Array [ + 15, + 30, + ], + "type": "VariableDeclaration", + }, Object { "declarations": Array [ Object { @@ -111810,17 +120523,17 @@ Object { "loc": Object { "end": Object { "column": 5, - "line": 1, + "line": 5, }, "start": Object { "column": 4, - "line": 1, + "line": 5, }, }, "name": "x", "range": Array [ - 4, - 5, + 36, + 37, ], "type": "Identifier", }, @@ -111828,91 +120541,148 @@ Object { "loc": Object { "end": Object { "column": 1, - "line": 3, + "line": 8, }, "start": Object { "column": 8, - "line": 1, + "line": 5, }, }, "properties": Array [ Object { - "computed": true, + "computed": false, "key": Object { "loc": Object { "end": Object { - "column": 8, - "line": 2, + "column": 10, + "line": 6, }, "start": Object { - "column": 5, - "line": 2, + "column": 1, + "line": 6, }, }, - "name": "bar", + "name": "__proto__", "range": Array [ - 15, - 18, + 43, + 52, ], "type": "Identifier", }, "kind": "init", "loc": Object { "end": Object { - "column": 14, - "line": 2, + "column": 17, + "line": 6, }, "start": Object { - "column": 4, - "line": 2, + "column": 1, + "line": 6, }, }, "method": false, "range": Array [ - 14, - 24, + 43, + 59, ], "shorthand": false, "type": "Property", "value": Object { "loc": Object { "end": Object { - "column": 14, - "line": 2, + "column": 17, + "line": 6, }, "start": Object { - "column": 11, - "line": 2, + "column": 12, + "line": 6, }, }, - "name": "foo", + "name": "proto", "range": Array [ - 21, - 24, + 54, + 59, + ], + "type": "Identifier", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 7, + }, + "start": Object { + "column": 1, + "line": 7, + }, + }, + "name": "__proto__", + "range": Array [ + 62, + 71, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 17, + "line": 7, + }, + "start": Object { + "column": 1, + "line": 7, + }, + }, + "method": false, + "range": Array [ + 62, + 78, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 7, + }, + "start": Object { + "column": 12, + "line": 7, + }, + }, + "name": "proto", + "range": Array [ + 73, + 78, ], "type": "Identifier", }, }, ], "range": Array [ - 8, - 26, + 40, + 80, ], "type": "ObjectExpression", }, "loc": Object { "end": Object { "column": 1, - "line": 3, + "line": 8, }, "start": Object { "column": 4, - "line": 1, + "line": 5, }, }, "range": Array [ - 4, - 26, + 36, + 80, ], "type": "VariableDeclarator", }, @@ -111921,24 +120691,24 @@ Object { "loc": Object { "end": Object { "column": 2, - "line": 3, + "line": 8, }, "start": Object { "column": 0, - "line": 1, + "line": 5, }, }, "range": Array [ - 0, - 27, + 32, + 81, ], "type": "VariableDeclaration", }, ], "loc": Object { "end": Object { - "column": 0, - "line": 4, + "column": 2, + "line": 8, }, "start": Object { "column": 0, @@ -111947,14 +120717,14 @@ Object { }, "range": Array [ 0, - 28, + 81, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, + "column": 12, "line": 1, }, "start": Object { @@ -111964,490 +120734,367 @@ Object { }, "range": Array [ 0, - 3, - ], - "type": "Keyword", - "value": "var", - }, - Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 5, + 12, ], - "type": "Identifier", - "value": "x", + "type": "String", + "value": "\\"use strict\\"", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 13, "line": 1, }, "start": Object { - "column": 6, + "column": 12, "line": 1, }, }, "range": Array [ - 6, - 7, + 12, + 13, ], "type": "Punctuator", - "value": "=", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 9, - "line": 1, + "column": 3, + "line": 3, }, "start": Object { - "column": 8, - "line": 1, + "column": 0, + "line": 3, }, }, "range": Array [ - 8, - 9, + 15, + 18, ], - "type": "Punctuator", - "value": "{", + "type": "Keyword", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 5, - "line": 2, + "column": 9, + "line": 3, }, "start": Object { "column": 4, - "line": 2, + "line": 3, }, }, "range": Array [ - 14, - 15, + 19, + 24, ], - "type": "Punctuator", - "value": "[", + "type": "Identifier", + "value": "proto", }, Object { "loc": Object { "end": Object { - "column": 8, - "line": 2, + "column": 11, + "line": 3, }, "start": Object { - "column": 5, - "line": 2, + "column": 10, + "line": 3, }, }, "range": Array [ - 15, - 18, + 25, + 26, ], - "type": "Identifier", - "value": "bar", + "type": "Punctuator", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 9, - "line": 2, + "column": 13, + "line": 3, }, "start": Object { - "column": 8, - "line": 2, + "column": 12, + "line": 3, }, }, "range": Array [ - 18, - 19, + 27, + 28, ], "type": "Punctuator", - "value": "]", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 10, - "line": 2, + "column": 14, + "line": 3, }, "start": Object { - "column": 9, - "line": 2, + "column": 13, + "line": 3, }, }, "range": Array [ - 19, - 20, + 28, + 29, ], "type": "Punctuator", - "value": ":", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 14, - "line": 2, + "column": 15, + "line": 3, }, "start": Object { - "column": 11, - "line": 2, + "column": 14, + "line": 3, }, }, "range": Array [ - 21, - 24, + 29, + 30, ], - "type": "Identifier", - "value": "foo", + "type": "Punctuator", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 1, - "line": 3, + "column": 3, + "line": 5, }, "start": Object { "column": 0, - "line": 3, + "line": 5, }, }, "range": Array [ - 25, - 26, + 32, + 35, ], - "type": "Punctuator", - "value": "}", + "type": "Keyword", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 2, - "line": 3, + "column": 5, + "line": 5, }, "start": Object { - "column": 1, - "line": 3, + "column": 4, + "line": 5, }, }, "range": Array [ - 26, - 27, + 36, + 37, ], - "type": "Punctuator", - "value": ";", + "type": "Identifier", + "value": "x", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/objectLiteralComputedProperties/invalid-computed-variable-property.src 1`] = `"':' expected."`; - -exports[`javascript fixtures/objectLiteralComputedProperties/invalid-standalone-computed-variable-property.src 1`] = `"':' expected."`; - -exports[`javascript fixtures/objectLiteralComputedProperties/standalone-expression.src 1`] = ` -Object { - "body": Array [ Object { - "expression": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 1, - "line": 1, - }, - }, - "properties": Array [ - Object { - "computed": true, - "key": Object { - "loc": Object { - "end": Object { - "column": 4, - "line": 1, - }, - "start": Object { - "column": 3, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 3, - 4, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 9, - "line": 1, - }, - "start": Object { - "column": 2, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 2, - 9, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, - }, - "range": Array [ - 7, - 9, - ], - "raw": "10", - "type": "Literal", - "value": 10, - }, - }, - ], - "range": Array [ - 1, - 10, - ], - "type": "ObjectExpression", - }, "loc": Object { "end": Object { - "column": 12, - "line": 1, + "column": 7, + "line": 5, }, "start": Object { - "column": 0, - "line": 1, + "column": 6, + "line": 5, }, }, "range": Array [ - 0, - 12, + 38, + 39, ], - "type": "ExpressionStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Punctuator", + "value": "=", }, - }, - "range": Array [ - 0, - 13, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, - "line": 1, + "column": 9, + "line": 5, }, "start": Object { - "column": 0, - "line": 1, + "column": 8, + "line": 5, }, }, "range": Array [ - 0, - 1, + 40, + 41, ], "type": "Punctuator", - "value": "(", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 2, - "line": 1, + "column": 10, + "line": 6, }, "start": Object { "column": 1, - "line": 1, + "line": 6, }, }, "range": Array [ - 1, - 2, + 43, + 52, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "__proto__", }, Object { "loc": Object { "end": Object { - "column": 3, - "line": 1, + "column": 11, + "line": 6, }, "start": Object { - "column": 2, - "line": 1, + "column": 10, + "line": 6, }, }, "range": Array [ - 2, - 3, + 52, + 53, ], "type": "Punctuator", - "value": "[", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 4, - "line": 1, + "column": 17, + "line": 6, }, "start": Object { - "column": 3, - "line": 1, + "column": 12, + "line": 6, }, }, "range": Array [ - 3, - 4, + 54, + 59, ], "type": "Identifier", - "value": "x", + "value": "proto", }, Object { "loc": Object { "end": Object { - "column": 5, - "line": 1, + "column": 18, + "line": 6, }, "start": Object { - "column": 4, - "line": 1, + "column": 17, + "line": 6, }, }, "range": Array [ - 4, - 5, + 59, + 60, ], "type": "Punctuator", - "value": "]", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 6, - "line": 1, + "column": 10, + "line": 7, }, "start": Object { - "column": 5, - "line": 1, + "column": 1, + "line": 7, }, }, "range": Array [ - 5, - 6, + 62, + 71, ], - "type": "Punctuator", - "value": ":", + "type": "Identifier", + "value": "__proto__", }, Object { "loc": Object { "end": Object { - "column": 9, - "line": 1, + "column": 11, + "line": 7, }, "start": Object { - "column": 7, - "line": 1, + "column": 10, + "line": 7, }, }, "range": Array [ - 7, - 9, + 71, + 72, ], - "type": "Numeric", - "value": "10", + "type": "Punctuator", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 10, - "line": 1, + "column": 17, + "line": 7, }, "start": Object { - "column": 9, - "line": 1, + "column": 12, + "line": 7, }, }, "range": Array [ - 9, - 10, + 73, + 78, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "proto", }, Object { "loc": Object { "end": Object { - "column": 11, - "line": 1, + "column": 1, + "line": 8, }, "start": Object { - "column": 10, - "line": 1, + "column": 0, + "line": 8, }, }, "range": Array [ - 10, - 11, + 79, + 80, ], "type": "Punctuator", - "value": ")", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 12, - "line": 1, + "column": 2, + "line": 8, }, "start": Object { - "column": 11, - "line": 1, + "column": 1, + "line": 8, }, }, "range": Array [ - 11, - 12, + 80, + 81, ], "type": "Punctuator", "value": ";", @@ -112457,146 +121104,314 @@ Object { } `; -exports[`javascript fixtures/objectLiteralComputedProperties/standalone-expression-with-addition.src 1`] = ` +exports[`javascript fixtures/objectLiteralDuplicateProperties/error-proto-string-property.src 1`] = ` Object { "body": Array [ Object { + "directive": "use strict", "expression": Object { "loc": Object { "end": Object { - "column": 18, + "column": 12, "line": 1, }, "start": Object { - "column": 1, + "column": 0, "line": 1, }, }, - "properties": Array [ - Object { - "computed": true, - "key": Object { - "left": Object { + "range": Array [ + 0, + 12, + ], + "raw": "\\"use strict\\"", + "type": "Literal", + "value": "use strict", + }, + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 13, + ], + "type": "ExpressionStatement", + }, + Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 3, + }, + }, + "name": "proto", + "range": Array [ + 19, + 24, + ], + "type": "Identifier", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 3, + }, + "start": Object { + "column": 12, + "line": 3, + }, + }, + "properties": Array [], + "range": Array [ + 27, + 29, + ], + "type": "ObjectExpression", + }, + "loc": Object { + "end": Object { + "column": 14, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 3, + }, + }, + "range": Array [ + 19, + 29, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", + "loc": Object { + "end": Object { + "column": 15, + "line": 3, + }, + "start": Object { + "column": 0, + "line": 3, + }, + }, + "range": Array [ + 15, + 30, + ], + "type": "VariableDeclaration", + }, + Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 5, + }, + "start": Object { + "column": 4, + "line": 5, + }, + }, + "name": "x", + "range": Array [ + 36, + 37, + ], + "type": "Identifier", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 8, + }, + "start": Object { + "column": 8, + "line": 5, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 6, + }, + "start": Object { + "column": 1, + "line": 6, + }, + }, + "range": Array [ + 43, + 54, + ], + "raw": "\\"__proto__\\"", + "type": "Literal", + "value": "__proto__", + }, + "kind": "init", "loc": Object { "end": Object { - "column": 6, - "line": 1, + "column": 19, + "line": 6, }, "start": Object { - "column": 3, - "line": 1, + "column": 1, + "line": 6, }, }, + "method": false, "range": Array [ - 3, - 6, + 43, + 61, ], - "raw": "\\"x\\"", - "type": "Literal", - "value": "x", - }, - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 3, - "line": 1, + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 6, + }, + "start": Object { + "column": 14, + "line": 6, + }, + }, + "name": "proto", + "range": Array [ + 56, + 61, + ], + "type": "Identifier", }, }, - "operator": "+", - "range": Array [ - 3, - 12, - ], - "right": Object { + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 7, + }, + "start": Object { + "column": 1, + "line": 7, + }, + }, + "range": Array [ + 64, + 75, + ], + "raw": "\\"__proto__\\"", + "type": "Literal", + "value": "__proto__", + }, + "kind": "init", "loc": Object { "end": Object { - "column": 12, - "line": 1, + "column": 19, + "line": 7, }, "start": Object { - "column": 9, - "line": 1, + "column": 1, + "line": 7, }, }, + "method": false, "range": Array [ - 9, - 12, + 64, + 82, ], - "raw": "\\"y\\"", - "type": "Literal", - "value": "y", - }, - "type": "BinaryExpression", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 2, - "line": 1, + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 7, + }, + "start": Object { + "column": 14, + "line": 7, + }, + }, + "name": "proto", + "range": Array [ + 77, + 82, + ], + "type": "Identifier", + }, }, - }, - "method": false, + ], "range": Array [ - 2, - 17, + 40, + 84, ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "range": Array [ - 15, - 17, - ], - "raw": "10", - "type": "Literal", - "value": 10, + "type": "ObjectExpression", + }, + "loc": Object { + "end": Object { + "column": 1, + "line": 8, + }, + "start": Object { + "column": 4, + "line": 5, }, }, - ], - "range": Array [ - 1, - 18, - ], - "type": "ObjectExpression", - }, + "range": Array [ + 36, + 84, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", "loc": Object { "end": Object { - "column": 20, - "line": 1, + "column": 2, + "line": 8, }, "start": Object { "column": 0, - "line": 1, + "line": 5, }, }, "range": Array [ - 0, - 20, + 32, + 85, ], - "type": "ExpressionStatement", + "type": "VariableDeclaration", }, ], "loc": Object { "end": Object { - "column": 0, - "line": 2, + "column": 2, + "line": 8, }, "start": Object { "column": 0, @@ -112605,14 +121420,14 @@ Object { }, "range": Array [ 0, - 21, + 85, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, + "column": 12, "line": 1, }, "start": Object { @@ -112622,597 +121437,367 @@ Object { }, "range": Array [ 0, - 1, - ], - "type": "Punctuator", - "value": "(", - }, - Object { - "loc": Object { - "end": Object { - "column": 2, - "line": 1, - }, - "start": Object { - "column": 1, - "line": 1, - }, - }, - "range": Array [ - 1, - 2, - ], - "type": "Punctuator", - "value": "{", - }, - Object { - "loc": Object { - "end": Object { - "column": 3, - "line": 1, - }, - "start": Object { - "column": 2, - "line": 1, - }, - }, - "range": Array [ - 2, - 3, - ], - "type": "Punctuator", - "value": "[", - }, - Object { - "loc": Object { - "end": Object { - "column": 6, - "line": 1, - }, - "start": Object { - "column": 3, - "line": 1, - }, - }, - "range": Array [ - 3, - 6, - ], - "type": "String", - "value": "\\"x\\"", - }, - Object { - "loc": Object { - "end": Object { - "column": 8, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, - }, - "range": Array [ - 7, - 8, - ], - "type": "Punctuator", - "value": "+", - }, - Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 12, - ], - "type": "String", - "value": "\\"y\\"", - }, - Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "range": Array [ 12, - 13, ], - "type": "Punctuator", - "value": "]", + "type": "String", + "value": "\\"use strict\\"", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 13, "line": 1, }, "start": Object { - "column": 13, + "column": 12, "line": 1, }, }, "range": Array [ + 12, 13, - 14, ], "type": "Punctuator", - "value": ":", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 17, - "line": 1, + "column": 3, + "line": 3, }, "start": Object { - "column": 15, - "line": 1, + "column": 0, + "line": 3, }, }, "range": Array [ 15, - 17, + 18, ], - "type": "Numeric", - "value": "10", + "type": "Keyword", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 18, - "line": 1, + "column": 9, + "line": 3, }, "start": Object { - "column": 17, - "line": 1, + "column": 4, + "line": 3, }, }, "range": Array [ - 17, - 18, + 19, + 24, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "proto", }, Object { "loc": Object { "end": Object { - "column": 19, - "line": 1, + "column": 11, + "line": 3, }, "start": Object { - "column": 18, - "line": 1, + "column": 10, + "line": 3, }, }, "range": Array [ - 18, - 19, + 25, + 26, ], "type": "Punctuator", - "value": ")", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 20, - "line": 1, + "column": 13, + "line": 3, }, "start": Object { - "column": 19, - "line": 1, + "column": 12, + "line": 3, }, }, "range": Array [ - 19, - 20, + 27, + 28, ], "type": "Punctuator", - "value": ";", + "value": "{", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/objectLiteralComputedProperties/standalone-expression-with-method.src 1`] = ` -Object { - "body": Array [ Object { - "expression": Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 1, - "line": 1, - }, - }, - "properties": Array [ - Object { - "computed": true, - "key": Object { - "loc": Object { - "end": Object { - "column": 4, - "line": 1, - }, - "start": Object { - "column": 3, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 3, - 4, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 2, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 2, - 20, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, - }, - "range": Array [ - 18, - 20, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 20, - "line": 1, - }, - "start": Object { - "column": 7, - "line": 1, - }, - }, - "params": Array [], - "range": Array [ - 7, - 20, - ], - "type": "FunctionExpression", - }, - }, - ], - "range": Array [ - 1, - 21, - ], - "type": "ObjectExpression", - }, "loc": Object { "end": Object { - "column": 23, - "line": 1, + "column": 14, + "line": 3, }, "start": Object { - "column": 0, - "line": 1, + "column": 13, + "line": 3, }, }, "range": Array [ - 0, - 23, + 28, + 29, ], - "type": "ExpressionStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Punctuator", + "value": "}", }, - }, - "range": Array [ - 0, - 24, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, - "line": 1, + "column": 15, + "line": 3, }, "start": Object { - "column": 0, - "line": 1, + "column": 14, + "line": 3, }, }, "range": Array [ - 0, - 1, + 29, + 30, ], "type": "Punctuator", - "value": "(", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 2, - "line": 1, + "column": 3, + "line": 5, }, "start": Object { - "column": 1, - "line": 1, + "column": 0, + "line": 5, }, }, "range": Array [ - 1, - 2, + 32, + 35, ], - "type": "Punctuator", - "value": "{", + "type": "Keyword", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 3, - "line": 1, + "column": 5, + "line": 5, }, "start": Object { - "column": 2, - "line": 1, + "column": 4, + "line": 5, }, }, "range": Array [ - 2, - 3, + 36, + 37, ], - "type": "Punctuator", - "value": "[", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 4, - "line": 1, + "column": 7, + "line": 5, }, "start": Object { - "column": 3, - "line": 1, + "column": 6, + "line": 5, }, }, "range": Array [ - 3, - 4, + 38, + 39, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 5, - "line": 1, + "column": 9, + "line": 5, }, "start": Object { - "column": 4, - "line": 1, + "column": 8, + "line": 5, }, }, "range": Array [ - 4, - 5, + 40, + 41, ], "type": "Punctuator", - "value": "]", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 6, - "line": 1, + "column": 12, + "line": 6, }, "start": Object { - "column": 5, - "line": 1, + "column": 1, + "line": 6, }, }, "range": Array [ - 5, - 6, + 43, + 54, ], - "type": "Punctuator", - "value": ":", + "type": "String", + "value": "\\"__proto__\\"", }, Object { "loc": Object { "end": Object { - "column": 15, - "line": 1, + "column": 13, + "line": 6, }, "start": Object { - "column": 7, - "line": 1, + "column": 12, + "line": 6, }, }, "range": Array [ - 7, - 15, + 54, + 55, ], - "type": "Keyword", - "value": "function", + "type": "Punctuator", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 16, - "line": 1, + "column": 19, + "line": 6, }, "start": Object { - "column": 15, - "line": 1, + "column": 14, + "line": 6, }, }, "range": Array [ - 15, - 16, + 56, + 61, ], - "type": "Punctuator", - "value": "(", + "type": "Identifier", + "value": "proto", }, Object { "loc": Object { "end": Object { - "column": 17, - "line": 1, + "column": 20, + "line": 6, }, "start": Object { - "column": 16, - "line": 1, + "column": 19, + "line": 6, }, }, "range": Array [ - 16, - 17, + 61, + 62, ], "type": "Punctuator", - "value": ")", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 19, - "line": 1, + "column": 12, + "line": 7, }, "start": Object { - "column": 18, - "line": 1, + "column": 1, + "line": 7, }, }, "range": Array [ - 18, - 19, + 64, + 75, ], - "type": "Punctuator", - "value": "{", + "type": "String", + "value": "\\"__proto__\\"", }, Object { "loc": Object { "end": Object { - "column": 20, - "line": 1, + "column": 13, + "line": 7, }, "start": Object { - "column": 19, - "line": 1, + "column": 12, + "line": 7, }, }, "range": Array [ - 19, - 20, + 75, + 76, ], "type": "Punctuator", - "value": "}", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 21, - "line": 1, + "column": 19, + "line": 7, }, "start": Object { - "column": 20, - "line": 1, + "column": 14, + "line": 7, }, }, "range": Array [ - 20, - 21, + 77, + 82, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "proto", }, Object { "loc": Object { "end": Object { - "column": 22, - "line": 1, + "column": 1, + "line": 8, }, "start": Object { - "column": 21, - "line": 1, + "column": 0, + "line": 8, }, }, "range": Array [ - 21, - 22, + 83, + 84, ], "type": "Punctuator", - "value": ")", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 23, - "line": 1, + "column": 2, + "line": 8, }, "start": Object { - "column": 22, - "line": 1, + "column": 1, + "line": 8, }, }, "range": Array [ - 22, - 23, + 84, + 85, ], "type": "Punctuator", "value": ";", @@ -113222,7 +121807,7 @@ Object { } `; -exports[`javascript fixtures/objectLiteralDuplicateProperties/error-proto-property.src 1`] = ` +exports[`javascript fixtures/objectLiteralDuplicateProperties/strict-duplicate-properties.src 1`] = ` Object { "body": Array [ Object { @@ -113268,7 +121853,7 @@ Object { "id": Object { "loc": Object { "end": Object { - "column": 9, + "column": 5, "line": 3, }, "start": Object { @@ -113276,83 +121861,10 @@ Object { "line": 3, }, }, - "name": "proto", - "range": Array [ - 19, - 24, - ], - "type": "Identifier", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 3, - }, - "start": Object { - "column": 12, - "line": 3, - }, - }, - "properties": Array [], - "range": Array [ - 27, - 29, - ], - "type": "ObjectExpression", - }, - "loc": Object { - "end": Object { - "column": 14, - "line": 3, - }, - "start": Object { - "column": 4, - "line": 3, - }, - }, - "range": Array [ - 19, - 29, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "var", - "loc": Object { - "end": Object { - "column": 15, - "line": 3, - }, - "start": Object { - "column": 0, - "line": 3, - }, - }, - "range": Array [ - 15, - 30, - ], - "type": "VariableDeclaration", - }, - Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 5, - }, - "start": Object { - "column": 4, - "line": 5, - }, - }, "name": "x", "range": Array [ - 36, - 37, + 19, + 20, ], "type": "Identifier", }, @@ -113360,11 +121872,11 @@ Object { "loc": Object { "end": Object { "column": 1, - "line": 8, + "line": 6, }, "start": Object { "column": 8, - "line": 5, + "line": 3, }, }, "properties": Array [ @@ -113373,56 +121885,57 @@ Object { "key": Object { "loc": Object { "end": Object { - "column": 10, - "line": 6, + "column": 2, + "line": 4, }, "start": Object { "column": 1, - "line": 6, + "line": 4, }, }, - "name": "__proto__", - "range": Array [ - 43, - 52, + "name": "y", + "range": Array [ + 26, + 27, ], "type": "Identifier", }, "kind": "init", "loc": Object { "end": Object { - "column": 17, - "line": 6, + "column": 11, + "line": 4, }, "start": Object { "column": 1, - "line": 6, + "line": 4, }, }, "method": false, "range": Array [ - 43, - 59, + 26, + 36, ], "shorthand": false, "type": "Property", "value": Object { "loc": Object { "end": Object { - "column": 17, - "line": 6, + "column": 11, + "line": 4, }, "start": Object { - "column": 12, - "line": 6, + "column": 4, + "line": 4, }, }, - "name": "proto", "range": Array [ - 54, - 59, + 29, + 36, ], - "type": "Identifier", + "raw": "'first'", + "type": "Literal", + "value": "first", }, }, Object { @@ -113430,78 +121943,79 @@ Object { "key": Object { "loc": Object { "end": Object { - "column": 10, - "line": 7, + "column": 2, + "line": 5, }, "start": Object { "column": 1, - "line": 7, + "line": 5, }, }, - "name": "__proto__", + "name": "y", "range": Array [ - 62, - 71, + 39, + 40, ], "type": "Identifier", }, "kind": "init", "loc": Object { "end": Object { - "column": 17, - "line": 7, + "column": 12, + "line": 5, }, "start": Object { "column": 1, - "line": 7, + "line": 5, }, }, "method": false, "range": Array [ - 62, - 78, + 39, + 50, ], "shorthand": false, "type": "Property", "value": Object { "loc": Object { "end": Object { - "column": 17, - "line": 7, + "column": 12, + "line": 5, }, "start": Object { - "column": 12, - "line": 7, + "column": 4, + "line": 5, }, }, - "name": "proto", "range": Array [ - 73, - 78, + 42, + 50, ], - "type": "Identifier", + "raw": "'second'", + "type": "Literal", + "value": "second", }, }, ], "range": Array [ - 40, - 80, + 23, + 52, ], "type": "ObjectExpression", }, "loc": Object { "end": Object { "column": 1, - "line": 8, + "line": 6, }, "start": Object { "column": 4, - "line": 5, + "line": 3, }, }, "range": Array [ - 36, - 80, + 19, + 52, ], "type": "VariableDeclarator", }, @@ -113510,16 +122024,16 @@ Object { "loc": Object { "end": Object { "column": 2, - "line": 8, + "line": 6, }, "start": Object { "column": 0, - "line": 5, + "line": 3, }, }, "range": Array [ - 32, - 81, + 15, + 53, ], "type": "VariableDeclaration", }, @@ -113527,7 +122041,7 @@ Object { "loc": Object { "end": Object { "column": 2, - "line": 8, + "line": 6, }, "start": Object { "column": 0, @@ -113536,7 +122050,7 @@ Object { }, "range": Array [ 0, - 81, + 53, ], "sourceType": "script", "tokens": Array [ @@ -113597,7 +122111,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 9, + "column": 5, "line": 3, }, "start": Object { @@ -113607,25 +122121,25 @@ Object { }, "range": Array [ 19, - 24, + 20, ], "type": "Identifier", - "value": "proto", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 7, "line": 3, }, "start": Object { - "column": 10, + "column": 6, "line": 3, }, }, "range": Array [ - 25, - 26, + 21, + 22, ], "type": "Punctuator", "value": "=", @@ -113633,17 +122147,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 13, + "column": 9, "line": 3, }, "start": Object { - "column": 12, + "column": 8, "line": 3, }, }, "range": Array [ - 27, - 28, + 23, + 24, ], "type": "Punctuator", "value": "{", @@ -113651,101 +122165,101 @@ Object { Object { "loc": Object { "end": Object { - "column": 14, - "line": 3, + "column": 2, + "line": 4, }, "start": Object { - "column": 13, - "line": 3, + "column": 1, + "line": 4, }, }, "range": Array [ - 28, - 29, + 26, + 27, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "y", }, Object { "loc": Object { "end": Object { - "column": 15, - "line": 3, + "column": 3, + "line": 4, }, "start": Object { - "column": 14, - "line": 3, + "column": 2, + "line": 4, }, }, "range": Array [ - 29, - 30, + 27, + 28, ], "type": "Punctuator", - "value": ";", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 3, - "line": 5, + "column": 11, + "line": 4, }, "start": Object { - "column": 0, - "line": 5, + "column": 4, + "line": 4, }, }, "range": Array [ - 32, - 35, + 29, + 36, ], - "type": "Keyword", - "value": "var", + "type": "String", + "value": "'first'", }, Object { "loc": Object { "end": Object { - "column": 5, - "line": 5, + "column": 12, + "line": 4, }, "start": Object { - "column": 4, - "line": 5, + "column": 11, + "line": 4, }, }, "range": Array [ 36, 37, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 2, "line": 5, }, "start": Object { - "column": 6, + "column": 1, "line": 5, }, }, "range": Array [ - 38, 39, + 40, ], - "type": "Punctuator", - "value": "=", + "type": "Identifier", + "value": "y", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 3, "line": 5, }, "start": Object { - "column": 8, + "column": 2, "line": 5, }, }, @@ -113754,148 +122268,40 @@ Object { 41, ], "type": "Punctuator", - "value": "{", - }, - Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 6, - }, - "start": Object { - "column": 1, - "line": 6, - }, - }, - "range": Array [ - 43, - 52, - ], - "type": "Identifier", - "value": "__proto__", - }, - Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 6, - }, - "start": Object { - "column": 10, - "line": 6, - }, - }, - "range": Array [ - 52, - 53, - ], - "type": "Punctuator", "value": ":", }, Object { "loc": Object { "end": Object { - "column": 17, - "line": 6, - }, - "start": Object { "column": 12, - "line": 6, - }, - }, - "range": Array [ - 54, - 59, - ], - "type": "Identifier", - "value": "proto", - }, - Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 6, - }, - "start": Object { - "column": 17, - "line": 6, - }, - }, - "range": Array [ - 59, - 60, - ], - "type": "Punctuator", - "value": ",", - }, - Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 7, - }, - "start": Object { - "column": 1, - "line": 7, - }, - }, - "range": Array [ - 62, - 71, - ], - "type": "Identifier", - "value": "__proto__", - }, - Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 7, - }, - "start": Object { - "column": 10, - "line": 7, - }, - }, - "range": Array [ - 71, - 72, - ], - "type": "Punctuator", - "value": ":", - }, - Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 7, + "line": 5, }, "start": Object { - "column": 12, - "line": 7, + "column": 4, + "line": 5, }, }, "range": Array [ - 73, - 78, + 42, + 50, ], - "type": "Identifier", - "value": "proto", + "type": "String", + "value": "'second'", }, Object { "loc": Object { "end": Object { "column": 1, - "line": 8, + "line": 6, }, "start": Object { "column": 0, - "line": 8, + "line": 6, }, }, "range": Array [ - 79, - 80, + 51, + 52, ], "type": "Punctuator", "value": "}", @@ -113904,16 +122310,16 @@ Object { "loc": Object { "end": Object { "column": 2, - "line": 8, + "line": 6, }, "start": Object { "column": 1, - "line": 8, + "line": 6, }, }, "range": Array [ - 80, - 81, + 52, + 53, ], "type": "Punctuator", "value": ";", @@ -113923,7 +122329,7 @@ Object { } `; -exports[`javascript fixtures/objectLiteralDuplicateProperties/error-proto-string-property.src 1`] = ` +exports[`javascript fixtures/objectLiteralDuplicateProperties/strict-duplicate-string-properties.src 1`] = ` Object { "body": Array [ Object { @@ -113969,7 +122375,7 @@ Object { "id": Object { "loc": Object { "end": Object { - "column": 9, + "column": 5, "line": 3, }, "start": Object { @@ -113977,83 +122383,10 @@ Object { "line": 3, }, }, - "name": "proto", - "range": Array [ - 19, - 24, - ], - "type": "Identifier", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 3, - }, - "start": Object { - "column": 12, - "line": 3, - }, - }, - "properties": Array [], - "range": Array [ - 27, - 29, - ], - "type": "ObjectExpression", - }, - "loc": Object { - "end": Object { - "column": 14, - "line": 3, - }, - "start": Object { - "column": 4, - "line": 3, - }, - }, - "range": Array [ - 19, - 29, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "var", - "loc": Object { - "end": Object { - "column": 15, - "line": 3, - }, - "start": Object { - "column": 0, - "line": 3, - }, - }, - "range": Array [ - 15, - 30, - ], - "type": "VariableDeclaration", - }, - Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 5, - }, - "start": Object { - "column": 4, - "line": 5, - }, - }, "name": "x", "range": Array [ - 36, - 37, + 19, + 20, ], "type": "Identifier", }, @@ -114061,11 +122394,11 @@ Object { "loc": Object { "end": Object { "column": 1, - "line": 8, + "line": 6, }, "start": Object { "column": 8, - "line": 5, + "line": 3, }, }, "properties": Array [ @@ -114074,57 +122407,58 @@ Object { "key": Object { "loc": Object { "end": Object { - "column": 12, - "line": 6, + "column": 4, + "line": 4, }, "start": Object { "column": 1, - "line": 6, + "line": 4, }, }, "range": Array [ - 43, - 54, + 26, + 29, ], - "raw": "\\"__proto__\\"", + "raw": "\\"y\\"", "type": "Literal", - "value": "__proto__", + "value": "y", }, "kind": "init", "loc": Object { "end": Object { - "column": 19, - "line": 6, + "column": 13, + "line": 4, }, "start": Object { "column": 1, - "line": 6, + "line": 4, }, }, "method": false, "range": Array [ - 43, - 61, + 26, + 38, ], "shorthand": false, "type": "Property", "value": Object { "loc": Object { "end": Object { - "column": 19, - "line": 6, + "column": 13, + "line": 4, }, "start": Object { - "column": 14, - "line": 6, + "column": 6, + "line": 4, }, }, - "name": "proto", "range": Array [ - 56, - 61, + 31, + 38, ], - "type": "Identifier", + "raw": "\\"first\\"", + "type": "Literal", + "value": "first", }, }, Object { @@ -114132,79 +122466,80 @@ Object { "key": Object { "loc": Object { "end": Object { - "column": 12, - "line": 7, + "column": 4, + "line": 5, }, "start": Object { "column": 1, - "line": 7, + "line": 5, }, }, "range": Array [ - 64, - 75, + 41, + 44, ], - "raw": "\\"__proto__\\"", + "raw": "\\"y\\"", "type": "Literal", - "value": "__proto__", + "value": "y", }, "kind": "init", "loc": Object { "end": Object { - "column": 19, - "line": 7, + "column": 14, + "line": 5, }, "start": Object { "column": 1, - "line": 7, + "line": 5, }, }, "method": false, "range": Array [ - 64, - 82, + 41, + 54, ], "shorthand": false, "type": "Property", "value": Object { "loc": Object { "end": Object { - "column": 19, - "line": 7, + "column": 14, + "line": 5, }, "start": Object { - "column": 14, - "line": 7, + "column": 6, + "line": 5, }, }, - "name": "proto", "range": Array [ - 77, - 82, + 46, + 54, ], - "type": "Identifier", + "raw": "\\"second\\"", + "type": "Literal", + "value": "second", }, }, ], "range": Array [ - 40, - 84, + 23, + 56, ], "type": "ObjectExpression", }, "loc": Object { "end": Object { "column": 1, - "line": 8, + "line": 6, }, "start": Object { "column": 4, - "line": 5, + "line": 3, }, }, "range": Array [ - 36, - 84, + 19, + 56, ], "type": "VariableDeclarator", }, @@ -114213,16 +122548,16 @@ Object { "loc": Object { "end": Object { "column": 2, - "line": 8, + "line": 6, }, "start": Object { "column": 0, - "line": 5, + "line": 3, }, }, "range": Array [ - 32, - 85, + 15, + 57, ], "type": "VariableDeclaration", }, @@ -114230,7 +122565,7 @@ Object { "loc": Object { "end": Object { "column": 2, - "line": 8, + "line": 6, }, "start": Object { "column": 0, @@ -114239,7 +122574,7 @@ Object { }, "range": Array [ 0, - 85, + 57, ], "sourceType": "script", "tokens": Array [ @@ -114300,7 +122635,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 9, + "column": 5, "line": 3, }, "start": Object { @@ -114310,25 +122645,25 @@ Object { }, "range": Array [ 19, - 24, + 20, ], "type": "Identifier", - "value": "proto", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 7, "line": 3, }, "start": Object { - "column": 10, + "column": 6, "line": 3, }, }, "range": Array [ - 25, - 26, + 21, + 22, ], "type": "Punctuator", "value": "=", @@ -114336,71 +122671,413 @@ Object { Object { "loc": Object { "end": Object { - "column": 13, + "column": 9, "line": 3, }, "start": Object { - "column": 12, + "column": 8, "line": 3, }, }, "range": Array [ - 27, - 28, + 23, + 24, ], "type": "Punctuator", "value": "{", }, + Object { + "loc": Object { + "end": Object { + "column": 4, + "line": 4, + }, + "start": Object { + "column": 1, + "line": 4, + }, + }, + "range": Array [ + 26, + 29, + ], + "type": "String", + "value": "\\"y\\"", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 4, + }, + "start": Object { + "column": 4, + "line": 4, + }, + }, + "range": Array [ + 29, + 30, + ], + "type": "Punctuator", + "value": ":", + }, + Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 4, + }, + "start": Object { + "column": 6, + "line": 4, + }, + }, + "range": Array [ + 31, + 38, + ], + "type": "String", + "value": "\\"first\\"", + }, Object { "loc": Object { "end": Object { "column": 14, - "line": 3, + "line": 4, }, "start": Object { "column": 13, - "line": 3, + "line": 4, }, }, "range": Array [ - 28, - 29, + 38, + 39, ], "type": "Punctuator", - "value": "}", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 15, - "line": 3, + "column": 4, + "line": 5, + }, + "start": Object { + "column": 1, + "line": 5, + }, + }, + "range": Array [ + 41, + 44, + ], + "type": "String", + "value": "\\"y\\"", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 5, }, "start": Object { + "column": 4, + "line": 5, + }, + }, + "range": Array [ + 44, + 45, + ], + "type": "Punctuator", + "value": ":", + }, + Object { + "loc": Object { + "end": Object { "column": 14, - "line": 3, + "line": 5, + }, + "start": Object { + "column": 6, + "line": 5, }, }, "range": Array [ - 29, - 30, + 46, + 54, + ], + "type": "String", + "value": "\\"second\\"", + }, + Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 6, + }, + "start": Object { + "column": 0, + "line": 6, + }, + }, + "range": Array [ + 55, + 56, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 2, + "line": 6, + }, + "start": Object { + "column": 1, + "line": 6, + }, + }, + "range": Array [ + 56, + 57, ], "type": "Punctuator", "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/objectLiteralShorthandMethods/invalid-method-no-braces.src 1`] = `"'{' expected."`; + +exports[`javascript fixtures/objectLiteralShorthandMethods/method-property.src 1`] = ` +Object { + "body": Array [ + Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 4, + 5, + ], + "type": "Identifier", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 5, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "name": "foo", + "range": Array [ + 14, + 17, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 5, + "line": 4, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "method": true, + "range": Array [ + 14, + 47, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "async": false, + "body": Object { + "body": Array [ + Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 3, + }, + "start": Object { + "column": 15, + "line": 3, + }, + }, + "name": "bar", + "range": Array [ + 37, + 40, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 19, + "line": 3, + }, + "start": Object { + "column": 8, + "line": 3, + }, + }, + "range": Array [ + 30, + 41, + ], + "type": "ReturnStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 5, + "line": 4, + }, + "start": Object { + "column": 10, + "line": 2, + }, + }, + "range": Array [ + 20, + 47, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 5, + "line": 4, + }, + "start": Object { + "column": 7, + "line": 2, + }, + }, + "params": Array [], + "range": Array [ + 17, + 47, + ], + "type": "FunctionExpression", + }, + }, + ], + "range": Array [ + 8, + 49, + ], + "type": "ObjectExpression", + }, + "loc": Object { + "end": Object { + "column": 1, + "line": 5, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 49, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", + "loc": Object { + "end": Object { + "column": 2, + "line": 5, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 50, + ], + "type": "VariableDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 6, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 51, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { "column": 3, - "line": 5, + "line": 1, }, "start": Object { "column": 0, - "line": 5, + "line": 1, }, }, "range": Array [ - 32, - 35, + 0, + 3, ], "type": "Keyword", "value": "var", @@ -114409,16 +123086,16 @@ Object { "loc": Object { "end": Object { "column": 5, - "line": 5, + "line": 1, }, "start": Object { "column": 4, - "line": 5, + "line": 1, }, }, "range": Array [ - 36, - 37, + 4, + 5, ], "type": "Identifier", "value": "x", @@ -114427,16 +123104,16 @@ Object { "loc": Object { "end": Object { "column": 7, - "line": 5, + "line": 1, }, "start": Object { "column": 6, - "line": 5, + "line": 1, }, }, "range": Array [ - 38, - 39, + 6, + 7, ], "type": "Punctuator", "value": "=", @@ -114445,16 +123122,16 @@ Object { "loc": Object { "end": Object { "column": 9, - "line": 5, + "line": 1, }, "start": Object { "column": 8, - "line": 5, + "line": 1, }, }, "range": Array [ - 40, - 41, + 8, + 9, ], "type": "Punctuator", "value": "{", @@ -114462,143 +123139,161 @@ Object { Object { "loc": Object { "end": Object { - "column": 12, - "line": 6, + "column": 7, + "line": 2, }, "start": Object { - "column": 1, - "line": 6, + "column": 4, + "line": 2, }, }, "range": Array [ - 43, - 54, + 14, + 17, ], - "type": "String", - "value": "\\"__proto__\\"", + "type": "Identifier", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 13, - "line": 6, + "column": 8, + "line": 2, }, "start": Object { - "column": 12, - "line": 6, + "column": 7, + "line": 2, }, }, "range": Array [ - 54, - 55, + 17, + 18, ], "type": "Punctuator", - "value": ":", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 19, - "line": 6, + "column": 9, + "line": 2, }, "start": Object { - "column": 14, - "line": 6, + "column": 8, + "line": 2, }, }, "range": Array [ - 56, - 61, + 18, + 19, ], - "type": "Identifier", - "value": "proto", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 20, - "line": 6, + "column": 11, + "line": 2, }, "start": Object { - "column": 19, - "line": 6, + "column": 10, + "line": 2, }, }, "range": Array [ - 61, - 62, + 20, + 21, ], "type": "Punctuator", - "value": ",", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 12, - "line": 7, + "column": 14, + "line": 3, }, "start": Object { - "column": 1, - "line": 7, + "column": 8, + "line": 3, }, }, "range": Array [ - 64, - 75, + 30, + 36, ], - "type": "String", - "value": "\\"__proto__\\"", + "type": "Keyword", + "value": "return", + }, + Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 3, + }, + "start": Object { + "column": 15, + "line": 3, + }, + }, + "range": Array [ + 37, + 40, + ], + "type": "Identifier", + "value": "bar", }, Object { "loc": Object { "end": Object { - "column": 13, - "line": 7, + "column": 19, + "line": 3, }, "start": Object { - "column": 12, - "line": 7, + "column": 18, + "line": 3, }, }, "range": Array [ - 75, - 76, + 40, + 41, ], "type": "Punctuator", - "value": ":", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 19, - "line": 7, + "column": 5, + "line": 4, }, "start": Object { - "column": 14, - "line": 7, + "column": 4, + "line": 4, }, }, "range": Array [ - 77, - 82, + 46, + 47, ], - "type": "Identifier", - "value": "proto", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { "column": 1, - "line": 8, + "line": 5, }, "start": Object { "column": 0, - "line": 8, + "line": 5, }, }, "range": Array [ - 83, - 84, + 48, + 49, ], "type": "Punctuator", "value": "}", @@ -114607,16 +123302,16 @@ Object { "loc": Object { "end": Object { "column": 2, - "line": 8, + "line": 5, }, "start": Object { "column": 1, - "line": 8, + "line": 5, }, }, "range": Array [ - 84, - 85, + 49, + 50, ], "type": "Punctuator", "value": ";", @@ -114626,241 +123321,182 @@ Object { } `; -exports[`javascript fixtures/objectLiteralDuplicateProperties/strict-duplicate-properties.src 1`] = ` +exports[`javascript fixtures/objectLiteralShorthandMethods/simple-method.src 1`] = ` Object { "body": Array [ Object { - "directive": "use strict", "expression": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 0, + 1, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 12, - "line": 1, + "column": 1, + "line": 4, }, "start": Object { "column": 0, "line": 1, }, }, + "operator": "=", "range": Array [ 0, - 12, + 28, ], - "raw": "\\"use strict\\"", - "type": "Literal", - "value": "use strict", - }, - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 13, - ], - "type": "ExpressionStatement", - }, - Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 3, - }, - "start": Object { - "column": 4, - "line": 3, - }, + "right": Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 4, }, - "name": "x", - "range": Array [ - 19, - 20, - ], - "type": "Identifier", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 1, - "line": 6, - }, - "start": Object { - "column": 8, - "line": 3, - }, + "start": Object { + "column": 4, + "line": 1, }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 2, - "line": 4, - }, - "start": Object { - "column": 1, - "line": 4, - }, - }, - "name": "y", - "range": Array [ - 26, - 27, - ], - "type": "Identifier", - }, - "kind": "init", + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { "loc": Object { "end": Object { - "column": 11, - "line": 4, + "column": 10, + "line": 2, }, "start": Object { - "column": 1, - "line": 4, + "column": 4, + "line": 2, }, }, - "method": false, + "name": "method", "range": Array [ - 26, - 36, + 10, + 16, ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 4, - }, - "start": Object { - "column": 4, - "line": 4, - }, - }, - "range": Array [ - 29, - 36, - ], - "raw": "'first'", - "type": "Literal", - "value": "first", + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 5, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 2, }, }, - Object { - "computed": false, - "key": Object { + "method": true, + "range": Array [ + 10, + 26, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "async": false, + "body": Object { + "body": Array [], "loc": Object { "end": Object { - "column": 2, - "line": 5, + "column": 5, + "line": 3, }, "start": Object { - "column": 1, - "line": 5, + "column": 13, + "line": 2, }, }, - "name": "y", "range": Array [ - 39, - 40, + 19, + 26, ], - "type": "Identifier", + "type": "BlockStatement", }, - "kind": "init", + "expression": false, + "generator": false, + "id": null, "loc": Object { "end": Object { - "column": 12, - "line": 5, + "column": 5, + "line": 3, }, "start": Object { - "column": 1, - "line": 5, + "column": 10, + "line": 2, }, }, - "method": false, + "params": Array [], "range": Array [ - 39, - 50, + 16, + 26, ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 5, - }, - "start": Object { - "column": 4, - "line": 5, - }, - }, - "range": Array [ - 42, - 50, - ], - "raw": "'second'", - "type": "Literal", - "value": "second", - }, + "type": "FunctionExpression", }, - ], - "range": Array [ - 23, - 52, - ], - "type": "ObjectExpression", - }, - "loc": Object { - "end": Object { - "column": 1, - "line": 6, - }, - "start": Object { - "column": 4, - "line": 3, }, - }, + ], "range": Array [ - 19, - 52, + 4, + 28, ], - "type": "VariableDeclarator", + "type": "ObjectExpression", }, - ], - "kind": "var", + "type": "AssignmentExpression", + }, "loc": Object { "end": Object { "column": 2, - "line": 6, + "line": 4, }, "start": Object { "column": 0, - "line": 3, + "line": 1, }, }, "range": Array [ - 15, - 53, + 0, + 29, ], - "type": "VariableDeclaration", + "type": "ExpressionStatement", + }, + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 4, + }, + "start": Object { + "column": 2, + "line": 4, + }, + }, + "range": Array [ + 29, + 30, + ], + "type": "EmptyStatement", }, ], "loc": Object { "end": Object { - "column": 2, - "line": 6, + "column": 3, + "line": 4, }, "start": Object { "column": 0, @@ -114869,14 +123505,14 @@ Object { }, "range": Array [ 0, - 53, + 30, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 12, + "column": 1, "line": 1, }, "start": Object { @@ -114886,97 +123522,43 @@ Object { }, "range": Array [ 0, - 12, + 1, ], - "type": "String", - "value": "\\"use strict\\"", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 3, "line": 1, }, "start": Object { - "column": 12, + "column": 2, "line": 1, }, }, "range": Array [ - 12, - 13, + 2, + 3, ], "type": "Punctuator", - "value": ";", - }, - Object { - "loc": Object { - "end": Object { - "column": 3, - "line": 3, - }, - "start": Object { - "column": 0, - "line": 3, - }, - }, - "range": Array [ - 15, - 18, - ], - "type": "Keyword", - "value": "var", + "value": "=", }, Object { "loc": Object { "end": Object { "column": 5, - "line": 3, + "line": 1, }, "start": Object { "column": 4, - "line": 3, - }, - }, - "range": Array [ - 19, - 20, - ], - "type": "Identifier", - "value": "x", - }, - Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 3, - }, - "start": Object { - "column": 6, - "line": 3, - }, - }, - "range": Array [ - 21, - 22, - ], - "type": "Punctuator", - "value": "=", - }, - Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 3, - }, - "start": Object { - "column": 8, - "line": 3, + "line": 1, }, }, "range": Array [ - 23, - 24, + 4, + 5, ], "type": "Punctuator", "value": "{", @@ -114984,143 +123566,107 @@ Object { Object { "loc": Object { "end": Object { - "column": 2, - "line": 4, + "column": 10, + "line": 2, }, "start": Object { - "column": 1, - "line": 4, + "column": 4, + "line": 2, }, }, "range": Array [ - 26, - 27, + 10, + 16, ], "type": "Identifier", - "value": "y", - }, - Object { - "loc": Object { - "end": Object { - "column": 3, - "line": 4, - }, - "start": Object { - "column": 2, - "line": 4, - }, - }, - "range": Array [ - 27, - 28, - ], - "type": "Punctuator", - "value": ":", + "value": "method", }, Object { "loc": Object { "end": Object { "column": 11, - "line": 4, + "line": 2, }, "start": Object { - "column": 4, - "line": 4, + "column": 10, + "line": 2, }, }, "range": Array [ - 29, - 36, + 16, + 17, ], - "type": "String", - "value": "'first'", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { "column": 12, - "line": 4, + "line": 2, }, "start": Object { "column": 11, - "line": 4, + "line": 2, }, }, "range": Array [ - 36, - 37, + 17, + 18, ], "type": "Punctuator", - "value": ",", - }, - Object { - "loc": Object { - "end": Object { - "column": 2, - "line": 5, - }, - "start": Object { - "column": 1, - "line": 5, - }, - }, - "range": Array [ - 39, - 40, - ], - "type": "Identifier", - "value": "y", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 3, - "line": 5, + "column": 14, + "line": 2, }, "start": Object { - "column": 2, - "line": 5, + "column": 13, + "line": 2, }, }, "range": Array [ - 40, - 41, + 19, + 20, ], "type": "Punctuator", - "value": ":", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 12, - "line": 5, + "column": 5, + "line": 3, }, "start": Object { "column": 4, - "line": 5, + "line": 3, }, }, "range": Array [ - 42, - 50, + 25, + 26, ], - "type": "String", - "value": "'second'", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { "column": 1, - "line": 6, + "line": 4, }, "start": Object { "column": 0, - "line": 6, + "line": 4, }, }, "range": Array [ - 51, - 52, + 27, + 28, ], "type": "Punctuator", "value": "}", @@ -115129,16 +123675,34 @@ Object { "loc": Object { "end": Object { "column": 2, - "line": 6, + "line": 4, }, "start": Object { "column": 1, - "line": 6, + "line": 4, }, }, "range": Array [ - 52, - 53, + 28, + 29, + ], + "type": "Punctuator", + "value": ";", + }, + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 4, + }, + "start": Object { + "column": 2, + "line": 4, + }, + }, + "range": Array [ + 29, + 30, ], "type": "Punctuator", "value": ";", @@ -115148,243 +123712,182 @@ Object { } `; -exports[`javascript fixtures/objectLiteralDuplicateProperties/strict-duplicate-string-properties.src 1`] = ` +exports[`javascript fixtures/objectLiteralShorthandMethods/simple-method-named-get.src 1`] = ` Object { "body": Array [ Object { - "directive": "use strict", "expression": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 0, + 1, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 12, - "line": 1, + "column": 1, + "line": 4, }, "start": Object { "column": 0, "line": 1, }, }, + "operator": "=", "range": Array [ 0, - 12, + 25, ], - "raw": "\\"use strict\\"", - "type": "Literal", - "value": "use strict", - }, - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 13, - ], - "type": "ExpressionStatement", - }, - Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 3, - }, - "start": Object { - "column": 4, - "line": 3, - }, + "right": Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 4, }, - "name": "x", - "range": Array [ - 19, - 20, - ], - "type": "Identifier", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 1, - "line": 6, - }, - "start": Object { - "column": 8, - "line": 3, - }, + "start": Object { + "column": 4, + "line": 1, }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 4, - "line": 4, - }, - "start": Object { - "column": 1, - "line": 4, - }, - }, - "range": Array [ - 26, - 29, - ], - "raw": "\\"y\\"", - "type": "Literal", - "value": "y", - }, - "kind": "init", + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { "loc": Object { "end": Object { - "column": 13, - "line": 4, + "column": 7, + "line": 2, }, "start": Object { - "column": 1, - "line": 4, + "column": 4, + "line": 2, }, }, - "method": false, + "name": "get", "range": Array [ - 26, - 38, + 10, + 13, ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 4, - }, - "start": Object { - "column": 6, - "line": 4, - }, - }, - "range": Array [ - 31, - 38, - ], - "raw": "\\"first\\"", - "type": "Literal", - "value": "first", + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 5, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 2, }, }, - Object { - "computed": false, - "key": Object { + "method": true, + "range": Array [ + 10, + 23, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "async": false, + "body": Object { + "body": Array [], "loc": Object { "end": Object { - "column": 4, - "line": 5, + "column": 5, + "line": 3, }, "start": Object { - "column": 1, - "line": 5, + "column": 10, + "line": 2, }, }, "range": Array [ - 41, - 44, + 16, + 23, ], - "raw": "\\"y\\"", - "type": "Literal", - "value": "y", + "type": "BlockStatement", }, - "kind": "init", + "expression": false, + "generator": false, + "id": null, "loc": Object { "end": Object { - "column": 14, - "line": 5, + "column": 5, + "line": 3, }, "start": Object { - "column": 1, - "line": 5, + "column": 7, + "line": 2, }, }, - "method": false, + "params": Array [], "range": Array [ - 41, - 54, + 13, + 23, ], - "shorthand": false, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 5, - }, - "start": Object { - "column": 6, - "line": 5, - }, - }, - "range": Array [ - 46, - 54, - ], - "raw": "\\"second\\"", - "type": "Literal", - "value": "second", - }, + "type": "FunctionExpression", }, - ], - "range": Array [ - 23, - 56, - ], - "type": "ObjectExpression", - }, - "loc": Object { - "end": Object { - "column": 1, - "line": 6, - }, - "start": Object { - "column": 4, - "line": 3, }, - }, + ], "range": Array [ - 19, - 56, + 4, + 25, ], - "type": "VariableDeclarator", + "type": "ObjectExpression", }, - ], - "kind": "var", + "type": "AssignmentExpression", + }, "loc": Object { "end": Object { "column": 2, - "line": 6, + "line": 4, }, "start": Object { "column": 0, - "line": 3, + "line": 1, }, }, "range": Array [ - 15, - 57, + 0, + 26, ], - "type": "VariableDeclaration", + "type": "ExpressionStatement", + }, + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 4, + }, + "start": Object { + "column": 2, + "line": 4, + }, + }, + "range": Array [ + 26, + 27, + ], + "type": "EmptyStatement", }, ], "loc": Object { "end": Object { - "column": 2, - "line": 6, + "column": 3, + "line": 4, }, "start": Object { "column": 0, @@ -115393,14 +123896,14 @@ Object { }, "range": Array [ 0, - 57, + 27, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 12, + "column": 1, "line": 1, }, "start": Object { @@ -115410,241 +123913,151 @@ Object { }, "range": Array [ 0, - 12, + 1, ], - "type": "String", - "value": "\\"use strict\\"", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 3, "line": 1, }, "start": Object { - "column": 12, + "column": 2, "line": 1, }, }, "range": Array [ - 12, - 13, + 2, + 3, ], "type": "Punctuator", - "value": ";", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 3, - "line": 3, + "column": 5, + "line": 1, }, "start": Object { - "column": 0, - "line": 3, + "column": 4, + "line": 1, }, }, "range": Array [ - 15, - 18, + 4, + 5, ], - "type": "Keyword", - "value": "var", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 5, - "line": 3, + "column": 7, + "line": 2, }, "start": Object { "column": 4, - "line": 3, + "line": 2, }, }, "range": Array [ - 19, - 20, + 10, + 13, ], "type": "Identifier", - "value": "x", + "value": "get", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 3, + "column": 8, + "line": 2, }, "start": Object { - "column": 6, - "line": 3, + "column": 7, + "line": 2, }, }, "range": Array [ - 21, - 22, + 13, + 14, ], "type": "Punctuator", - "value": "=", + "value": "(", }, Object { "loc": Object { "end": Object { "column": 9, - "line": 3, + "line": 2, }, "start": Object { "column": 8, - "line": 3, - }, - }, - "range": Array [ - 23, - 24, - ], - "type": "Punctuator", - "value": "{", - }, - Object { - "loc": Object { - "end": Object { - "column": 4, - "line": 4, - }, - "start": Object { - "column": 1, - "line": 4, - }, - }, - "range": Array [ - 26, - 29, - ], - "type": "String", - "value": "\\"y\\"", - }, - Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 4, - }, - "start": Object { - "column": 4, - "line": 4, + "line": 2, }, }, "range": Array [ - 29, - 30, + 14, + 15, ], "type": "Punctuator", - "value": ":", - }, - Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 4, - }, - "start": Object { - "column": 6, - "line": 4, - }, - }, - "range": Array [ - 31, - 38, - ], - "type": "String", - "value": "\\"first\\"", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 14, - "line": 4, + "column": 11, + "line": 2, }, "start": Object { - "column": 13, - "line": 4, + "column": 10, + "line": 2, }, }, "range": Array [ - 38, - 39, + 16, + 17, ], "type": "Punctuator", - "value": ",", - }, - Object { - "loc": Object { - "end": Object { - "column": 4, - "line": 5, - }, - "start": Object { - "column": 1, - "line": 5, - }, - }, - "range": Array [ - 41, - 44, - ], - "type": "String", - "value": "\\"y\\"", + "value": "{", }, Object { "loc": Object { "end": Object { "column": 5, - "line": 5, + "line": 3, }, "start": Object { "column": 4, - "line": 5, + "line": 3, }, }, "range": Array [ - 44, - 45, + 22, + 23, ], "type": "Punctuator", - "value": ":", - }, - Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 5, - }, - "start": Object { - "column": 6, - "line": 5, - }, - }, - "range": Array [ - 46, - 54, - ], - "type": "String", - "value": "\\"second\\"", + "value": "}", }, Object { "loc": Object { "end": Object { "column": 1, - "line": 6, + "line": 4, }, "start": Object { "column": 0, - "line": 6, + "line": 4, }, }, "range": Array [ - 55, - 56, + 24, + 25, ], "type": "Punctuator", "value": "}", @@ -115653,16 +124066,34 @@ Object { "loc": Object { "end": Object { "column": 2, - "line": 6, + "line": 4, }, "start": Object { "column": 1, - "line": 6, + "line": 4, }, }, "range": Array [ - 56, - 57, + 25, + 26, + ], + "type": "Punctuator", + "value": ";", + }, + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 4, + }, + "start": Object { + "column": 2, + "line": 4, + }, + }, + "range": Array [ + 26, + 27, ], "type": "Punctuator", "value": ";", @@ -115672,188 +124103,148 @@ Object { } `; -exports[`javascript fixtures/objectLiteralShorthandMethods/invalid-method-no-braces.src 1`] = `"'{' expected."`; - -exports[`javascript fixtures/objectLiteralShorthandMethods/method-property.src 1`] = ` +exports[`javascript fixtures/objectLiteralShorthandMethods/simple-method-named-set.src 1`] = ` Object { "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, + "expression": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, }, - "name": "x", - "range": Array [ - 4, - 5, - ], - "type": "Identifier", }, - "init": Object { - "loc": Object { - "end": Object { - "column": 1, - "line": 5, - }, - "start": Object { - "column": 8, - "line": 1, - }, + "name": "x", + "range": Array [ + 0, + 1, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 1, + "line": 4, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "operator": "=", + "range": Array [ + 0, + 25, + ], + "right": Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 4, }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "name": "foo", - "range": Array [ - 14, - 17, - ], - "type": "Identifier", - }, - "kind": "init", + "start": Object { + "column": 4, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { "loc": Object { "end": Object { - "column": 5, - "line": 4, + "column": 7, + "line": 2, }, "start": Object { "column": 4, "line": 2, }, }, - "method": true, + "name": "set", "range": Array [ - 14, - 47, + 10, + 13, ], - "shorthand": false, - "type": "Property", - "value": Object { - "async": false, - "body": Object { - "body": Array [ - Object { - "argument": Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 3, - }, - "start": Object { - "column": 15, - "line": 3, - }, - }, - "name": "bar", - "range": Array [ - 37, - 40, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 19, - "line": 3, - }, - "start": Object { - "column": 8, - "line": 3, - }, - }, - "range": Array [ - 30, - 41, - ], - "type": "ReturnStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 5, - "line": 4, - }, - "start": Object { - "column": 10, - "line": 2, - }, - }, - "range": Array [ - 20, - 47, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 5, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "method": true, + "range": Array [ + 10, + 23, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "async": false, + "body": Object { + "body": Array [], "loc": Object { "end": Object { "column": 5, - "line": 4, + "line": 3, }, "start": Object { - "column": 7, + "column": 10, "line": 2, }, }, - "params": Array [], "range": Array [ - 17, - 47, + 16, + 23, ], - "type": "FunctionExpression", + "type": "BlockStatement", }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 5, + "line": 3, + }, + "start": Object { + "column": 7, + "line": 2, + }, + }, + "params": Array [], + "range": Array [ + 13, + 23, + ], + "type": "FunctionExpression", }, - ], - "range": Array [ - 8, - 49, - ], - "type": "ObjectExpression", - }, - "loc": Object { - "end": Object { - "column": 1, - "line": 5, - }, - "start": Object { - "column": 4, - "line": 1, }, - }, + ], "range": Array [ 4, - 49, + 25, ], - "type": "VariableDeclarator", + "type": "ObjectExpression", }, - ], - "kind": "var", + "type": "AssignmentExpression", + }, "loc": Object { "end": Object { "column": 2, - "line": 5, + "line": 4, }, "start": Object { "column": 0, @@ -115862,15 +124253,32 @@ Object { }, "range": Array [ 0, - 50, + 26, ], - "type": "VariableDeclaration", + "type": "ExpressionStatement", + }, + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 4, + }, + "start": Object { + "column": 2, + "line": 4, + }, + }, + "range": Array [ + 26, + 27, + ], + "type": "EmptyStatement", }, ], "loc": Object { "end": Object { - "column": 0, - "line": 6, + "column": 3, + "line": 4, }, "start": Object { "column": 0, @@ -115879,14 +124287,14 @@ Object { }, "range": Array [ 0, - 51, + 27, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, + "column": 1, "line": 1, }, "start": Object { @@ -115896,25 +124304,7 @@ Object { }, "range": Array [ 0, - 3, - ], - "type": "Keyword", - "value": "var", - }, - Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 5, + 1, ], "type": "Identifier", "value": "x", @@ -115922,17 +124312,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 7, + "column": 3, "line": 1, }, "start": Object { - "column": 6, + "column": 2, "line": 1, }, }, "range": Array [ - 6, - 7, + 2, + 3, ], "type": "Punctuator", "value": "=", @@ -115940,17 +124330,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 9, + "column": 5, "line": 1, }, "start": Object { - "column": 8, + "column": 4, "line": 1, }, }, "range": Array [ - 8, - 9, + 4, + 5, ], "type": "Punctuator", "value": "{", @@ -115967,11 +124357,11 @@ Object { }, }, "range": Array [ - 14, - 17, + 10, + 13, ], "type": "Identifier", - "value": "foo", + "value": "set", }, Object { "loc": Object { @@ -115985,8 +124375,8 @@ Object { }, }, "range": Array [ - 17, - 18, + 13, + 14, ], "type": "Punctuator", "value": "(", @@ -116003,8 +124393,8 @@ Object { }, }, "range": Array [ - 18, - 19, + 14, + 15, ], "type": "Punctuator", "value": ")", @@ -116021,8 +124411,8 @@ Object { }, }, "range": Array [ - 20, - 21, + 16, + 17, ], "type": "Punctuator", "value": "{", @@ -116030,71 +124420,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 14, - "line": 3, - }, - "start": Object { - "column": 8, - "line": 3, - }, - }, - "range": Array [ - 30, - 36, - ], - "type": "Keyword", - "value": "return", - }, - Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 3, - }, - "start": Object { - "column": 15, - "line": 3, - }, - }, - "range": Array [ - 37, - 40, - ], - "type": "Identifier", - "value": "bar", - }, - Object { - "loc": Object { - "end": Object { - "column": 19, + "column": 5, "line": 3, }, "start": Object { - "column": 18, + "column": 4, "line": 3, }, }, "range": Array [ - 40, - 41, + 22, + 23, ], "type": "Punctuator", - "value": ";", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 1, "line": 4, }, "start": Object { - "column": 4, + "column": 0, "line": 4, }, }, "range": Array [ - 46, - 47, + 24, + 25, ], "type": "Punctuator", "value": "}", @@ -116102,35 +124456,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 1, - "line": 5, + "column": 2, + "line": 4, }, "start": Object { - "column": 0, - "line": 5, + "column": 1, + "line": 4, }, }, "range": Array [ - 48, - 49, + 25, + 26, ], "type": "Punctuator", - "value": "}", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 2, - "line": 5, + "column": 3, + "line": 4, }, "start": Object { - "column": 1, - "line": 5, + "column": 2, + "line": 4, }, }, "range": Array [ - 49, - 50, + 26, + 27, ], "type": "Punctuator", "value": ";", @@ -116140,7 +124494,7 @@ Object { } `; -exports[`javascript fixtures/objectLiteralShorthandMethods/simple-method.src 1`] = ` +exports[`javascript fixtures/objectLiteralShorthandMethods/simple-method-with-argument.src 1`] = ` Object { "body": Array [ Object { @@ -116166,7 +124520,7 @@ Object { "loc": Object { "end": Object { "column": 1, - "line": 4, + "line": 5, }, "start": Object { "column": 0, @@ -116176,13 +124530,13 @@ Object { "operator": "=", "range": Array [ 0, - 28, + 33, ], "right": Object { "loc": Object { "end": Object { "column": 1, - "line": 4, + "line": 5, }, "start": Object { "column": 4, @@ -116214,7 +124568,7 @@ Object { "loc": Object { "end": Object { "column": 5, - "line": 3, + "line": 4, }, "start": Object { "column": 4, @@ -116224,7 +124578,7 @@ Object { "method": true, "range": Array [ 10, - 26, + 31, ], "shorthand": false, "type": "Property", @@ -116235,16 +124589,16 @@ Object { "loc": Object { "end": Object { "column": 5, - "line": 3, + "line": 4, }, "start": Object { - "column": 13, + "column": 17, "line": 2, }, }, "range": Array [ - 19, - 26, + 23, + 31, ], "type": "BlockStatement", }, @@ -116254,17 +124608,36 @@ Object { "loc": Object { "end": Object { "column": 5, - "line": 3, + "line": 4, }, "start": Object { "column": 10, "line": 2, }, }, - "params": Array [], + "params": Array [ + Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 2, + }, + "start": Object { + "column": 11, + "line": 2, + }, + }, + "name": "test", + "range": Array [ + 17, + 21, + ], + "type": "Identifier", + }, + ], "range": Array [ 16, - 26, + 31, ], "type": "FunctionExpression", }, @@ -116272,7 +124645,7 @@ Object { ], "range": Array [ 4, - 28, + 33, ], "type": "ObjectExpression", }, @@ -116281,7 +124654,7 @@ Object { "loc": Object { "end": Object { "column": 2, - "line": 4, + "line": 5, }, "start": Object { "column": 0, @@ -116290,7 +124663,7 @@ Object { }, "range": Array [ 0, - 29, + 34, ], "type": "ExpressionStatement", }, @@ -116298,16 +124671,16 @@ Object { "loc": Object { "end": Object { "column": 3, - "line": 4, + "line": 5, }, "start": Object { "column": 2, - "line": 4, + "line": 5, }, }, "range": Array [ - 29, - 30, + 34, + 35, ], "type": "EmptyStatement", }, @@ -116315,7 +124688,7 @@ Object { "loc": Object { "end": Object { "column": 3, - "line": 4, + "line": 5, }, "start": Object { "column": 0, @@ -116324,7 +124697,7 @@ Object { }, "range": Array [ 0, - 30, + 35, ], "sourceType": "script", "tokens": Array [ @@ -116421,7 +124794,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 12, + "column": 15, "line": 2, }, "start": Object { @@ -116431,7 +124804,25 @@ Object { }, "range": Array [ 17, - 18, + 21, + ], + "type": "Identifier", + "value": "test", + }, + Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 2, + }, + "start": Object { + "column": 15, + "line": 2, + }, + }, + "range": Array [ + 21, + 22, ], "type": "Punctuator", "value": ")", @@ -116439,17 +124830,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 14, + "column": 18, "line": 2, }, "start": Object { - "column": 13, + "column": 17, "line": 2, }, }, "range": Array [ - 19, - 20, + 23, + 24, ], "type": "Punctuator", "value": "{", @@ -116458,16 +124849,16 @@ Object { "loc": Object { "end": Object { "column": 5, - "line": 3, + "line": 4, }, "start": Object { "column": 4, - "line": 3, + "line": 4, }, }, "range": Array [ - 25, - 26, + 30, + 31, ], "type": "Punctuator", "value": "}", @@ -116476,16 +124867,16 @@ Object { "loc": Object { "end": Object { "column": 1, - "line": 4, + "line": 5, }, "start": Object { "column": 0, - "line": 4, + "line": 5, }, }, "range": Array [ - 27, - 28, + 32, + 33, ], "type": "Punctuator", "value": "}", @@ -116494,16 +124885,16 @@ Object { "loc": Object { "end": Object { "column": 2, - "line": 4, + "line": 5, }, "start": Object { "column": 1, - "line": 4, + "line": 5, }, }, "range": Array [ - 28, - 29, + 33, + 34, ], "type": "Punctuator", "value": ";", @@ -116512,16 +124903,16 @@ Object { "loc": Object { "end": Object { "column": 3, - "line": 4, + "line": 5, }, "start": Object { "column": 2, - "line": 4, + "line": 5, }, }, "range": Array [ - 29, - 30, + 34, + 35, ], "type": "Punctuator", "value": ";", @@ -116531,7 +124922,7 @@ Object { } `; -exports[`javascript fixtures/objectLiteralShorthandMethods/simple-method-named-get.src 1`] = ` +exports[`javascript fixtures/objectLiteralShorthandMethods/simple-method-with-string-name.src 1`] = ` Object { "body": Array [ Object { @@ -116567,7 +124958,7 @@ Object { "operator": "=", "range": Array [ 0, - 25, + 30, ], "right": Object { "loc": Object { @@ -116586,7 +124977,7 @@ Object { "key": Object { "loc": Object { "end": Object { - "column": 7, + "column": 12, "line": 2, }, "start": Object { @@ -116594,12 +124985,13 @@ Object { "line": 2, }, }, - "name": "get", "range": Array [ 10, - 13, + 18, ], - "type": "Identifier", + "raw": "\\"method\\"", + "type": "Literal", + "value": "method", }, "kind": "init", "loc": Object { @@ -116615,7 +125007,7 @@ Object { "method": true, "range": Array [ 10, - 23, + 28, ], "shorthand": false, "type": "Property", @@ -116629,13 +125021,13 @@ Object { "line": 3, }, "start": Object { - "column": 10, + "column": 15, "line": 2, }, }, "range": Array [ - 16, - 23, + 21, + 28, ], "type": "BlockStatement", }, @@ -116648,14 +125040,14 @@ Object { "line": 3, }, "start": Object { - "column": 7, + "column": 12, "line": 2, }, }, "params": Array [], "range": Array [ - 13, - 23, + 18, + 28, ], "type": "FunctionExpression", }, @@ -116663,7 +125055,7 @@ Object { ], "range": Array [ 4, - 25, + 30, ], "type": "ObjectExpression", }, @@ -116681,7 +125073,7 @@ Object { }, "range": Array [ 0, - 26, + 31, ], "type": "ExpressionStatement", }, @@ -116697,8 +125089,8 @@ Object { }, }, "range": Array [ - 26, - 27, + 31, + 32, ], "type": "EmptyStatement", }, @@ -116715,7 +125107,7 @@ Object { }, "range": Array [ 0, - 27, + 32, ], "sourceType": "script", "tokens": Array [ @@ -116776,7 +125168,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 7, + "column": 12, "line": 2, }, "start": Object { @@ -116786,25 +125178,25 @@ Object { }, "range": Array [ 10, - 13, + 18, ], - "type": "Identifier", - "value": "get", + "type": "String", + "value": "\\"method\\"", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 13, "line": 2, }, "start": Object { - "column": 7, + "column": 12, "line": 2, }, }, "range": Array [ - 13, - 14, + 18, + 19, ], "type": "Punctuator", "value": "(", @@ -116812,17 +125204,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 9, + "column": 14, "line": 2, }, "start": Object { - "column": 8, + "column": 13, "line": 2, }, }, "range": Array [ - 14, - 15, + 19, + 20, ], "type": "Punctuator", "value": ")", @@ -116830,17 +125222,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 11, + "column": 16, "line": 2, }, "start": Object { - "column": 10, + "column": 15, "line": 2, }, }, "range": Array [ - 16, - 17, + 21, + 22, ], "type": "Punctuator", "value": "{", @@ -116857,8 +125249,8 @@ Object { }, }, "range": Array [ - 22, - 23, + 27, + 28, ], "type": "Punctuator", "value": "}", @@ -116875,8 +125267,8 @@ Object { }, }, "range": Array [ - 24, - 25, + 29, + 30, ], "type": "Punctuator", "value": "}", @@ -116893,8 +125285,8 @@ Object { }, }, "range": Array [ - 25, - 26, + 30, + 31, ], "type": "Punctuator", "value": ";", @@ -116911,8 +125303,8 @@ Object { }, }, "range": Array [ - 26, - 27, + 31, + 32, ], "type": "Punctuator", "value": ";", @@ -116922,148 +125314,187 @@ Object { } `; -exports[`javascript fixtures/objectLiteralShorthandMethods/simple-method-named-set.src 1`] = ` +exports[`javascript fixtures/objectLiteralShorthandMethods/string-name-method-property.src 1`] = ` Object { "body": Array [ Object { - "expression": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 1, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, }, + "name": "x", + "range": Array [ + 4, + 5, + ], + "type": "Identifier", }, - "name": "x", - "range": Array [ - 0, - 1, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 1, - "line": 4, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "operator": "=", - "range": Array [ - 0, - 25, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 1, - "line": 4, - }, - "start": Object { - "column": 4, - "line": 1, + "init": Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 5, + }, + "start": Object { + "column": 8, + "line": 1, + }, }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "range": Array [ + 14, + 19, + ], + "raw": "\\"foo\\"", + "type": "Literal", + "value": "foo", + }, + "kind": "init", "loc": Object { "end": Object { - "column": 7, - "line": 2, + "column": 5, + "line": 4, }, "start": Object { "column": 4, "line": 2, }, - }, - "name": "set", - "range": Array [ - 10, - 13, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 5, - "line": 3, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "method": true, - "range": Array [ - 10, - 23, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "async": false, - "body": Object { - "body": Array [], + }, + "method": true, + "range": Array [ + 14, + 49, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "async": false, + "body": Object { + "body": Array [ + Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 3, + }, + "start": Object { + "column": 15, + "line": 3, + }, + }, + "name": "bar", + "range": Array [ + 39, + 42, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 19, + "line": 3, + }, + "start": Object { + "column": 8, + "line": 3, + }, + }, + "range": Array [ + 32, + 43, + ], + "type": "ReturnStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 5, + "line": 4, + }, + "start": Object { + "column": 12, + "line": 2, + }, + }, + "range": Array [ + 22, + 49, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, "loc": Object { "end": Object { "column": 5, - "line": 3, + "line": 4, }, "start": Object { - "column": 10, + "column": 9, "line": 2, }, }, + "params": Array [], "range": Array [ - 16, - 23, + 19, + 49, ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 5, - "line": 3, - }, - "start": Object { - "column": 7, - "line": 2, - }, + "type": "FunctionExpression", }, - "params": Array [], - "range": Array [ - 13, - 23, - ], - "type": "FunctionExpression", }, + ], + "range": Array [ + 8, + 51, + ], + "type": "ObjectExpression", + }, + "loc": Object { + "end": Object { + "column": 1, + "line": 5, }, - ], + "start": Object { + "column": 4, + "line": 1, + }, + }, "range": Array [ 4, - 25, + 51, ], - "type": "ObjectExpression", + "type": "VariableDeclarator", }, - "type": "AssignmentExpression", - }, + ], + "kind": "var", "loc": Object { "end": Object { "column": 2, - "line": 4, + "line": 5, }, "start": Object { "column": 0, @@ -117072,32 +125503,15 @@ Object { }, "range": Array [ 0, - 26, - ], - "type": "ExpressionStatement", - }, - Object { - "loc": Object { - "end": Object { - "column": 3, - "line": 4, - }, - "start": Object { - "column": 2, - "line": 4, - }, - }, - "range": Array [ - 26, - 27, + 52, ], - "type": "EmptyStatement", + "type": "VariableDeclaration", }, ], "loc": Object { "end": Object { - "column": 3, - "line": 4, + "column": 0, + "line": 6, }, "start": Object { "column": 0, @@ -117106,14 +125520,14 @@ Object { }, "range": Array [ 0, - 27, + 53, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, + "column": 3, "line": 1, }, "start": Object { @@ -117123,7 +125537,25 @@ Object { }, "range": Array [ 0, - 1, + 3, + ], + "type": "Keyword", + "value": "var", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 5, ], "type": "Identifier", "value": "x", @@ -117131,17 +125563,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 3, + "column": 7, "line": 1, }, "start": Object { - "column": 2, + "column": 6, "line": 1, }, }, "range": Array [ - 2, - 3, + 6, + 7, ], "type": "Punctuator", "value": "=", @@ -117149,17 +125581,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 5, + "column": 9, "line": 1, }, "start": Object { - "column": 4, + "column": 8, "line": 1, }, }, "range": Array [ - 4, - 5, + 8, + 9, ], "type": "Punctuator", "value": "{", @@ -117167,7 +125599,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 7, + "column": 9, "line": 2, }, "start": Object { @@ -117176,26 +125608,26 @@ Object { }, }, "range": Array [ - 10, - 13, + 14, + 19, ], - "type": "Identifier", - "value": "set", + "type": "String", + "value": "\\"foo\\"", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 10, "line": 2, }, "start": Object { - "column": 7, + "column": 9, "line": 2, }, }, "range": Array [ - 13, - 14, + 19, + 20, ], "type": "Punctuator", "value": "(", @@ -117203,17 +125635,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 9, + "column": 11, "line": 2, }, "start": Object { - "column": 8, + "column": 10, "line": 2, }, }, "range": Array [ - 14, - 15, + 20, + 21, ], "type": "Punctuator", "value": ")", @@ -117221,17 +125653,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 11, + "column": 13, "line": 2, }, "start": Object { - "column": 10, + "column": 12, "line": 2, }, }, "range": Array [ - 16, - 17, + 22, + 23, ], "type": "Punctuator", "value": "{", @@ -117239,35 +125671,71 @@ Object { Object { "loc": Object { "end": Object { - "column": 5, + "column": 14, "line": 3, }, "start": Object { - "column": 4, + "column": 8, "line": 3, }, }, "range": Array [ - 22, - 23, + 32, + 38, + ], + "type": "Keyword", + "value": "return", + }, + Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 3, + }, + "start": Object { + "column": 15, + "line": 3, + }, + }, + "range": Array [ + 39, + 42, + ], + "type": "Identifier", + "value": "bar", + }, + Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 3, + }, + "start": Object { + "column": 18, + "line": 3, + }, + }, + "range": Array [ + 42, + 43, ], "type": "Punctuator", - "value": "}", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 1, + "column": 5, "line": 4, }, "start": Object { - "column": 0, + "column": 4, "line": 4, }, }, "range": Array [ - 24, - 25, + 48, + 49, ], "type": "Punctuator", "value": "}", @@ -117275,35 +125743,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 2, - "line": 4, + "column": 1, + "line": 5, }, "start": Object { - "column": 1, - "line": 4, + "column": 0, + "line": 5, }, }, "range": Array [ - 25, - 26, + 50, + 51, ], "type": "Punctuator", - "value": ";", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 3, - "line": 4, + "column": 2, + "line": 5, }, "start": Object { - "column": 2, - "line": 4, + "column": 1, + "line": 5, }, }, "range": Array [ - 26, - 27, + 51, + 52, ], "type": "Punctuator", "value": ";", @@ -117313,201 +125781,387 @@ Object { } `; -exports[`javascript fixtures/objectLiteralShorthandMethods/simple-method-with-argument.src 1`] = ` +exports[`javascript fixtures/objectLiteralShorthandProperties/shorthand-properties.src 1`] = ` Object { "body": Array [ Object { - "expression": Object { - "left": Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "name": "foo", + "range": Array [ + 4, + 7, + ], + "type": "Identifier", + }, + "init": null, "loc": Object { "end": Object { - "column": 1, + "column": 7, "line": 1, }, "start": Object { - "column": 0, + "column": 4, "line": 1, }, }, - "name": "x", "range": Array [ - 0, - 1, + 4, + 7, ], - "type": "Identifier", + "type": "VariableDeclarator", }, - "loc": Object { - "end": Object { - "column": 1, - "line": 5, + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "name": "get", + "range": Array [ + 13, + 16, + ], + "type": "Identifier", }, - "start": Object { - "column": 0, - "line": 1, + "init": null, + "loc": Object { + "end": Object { + "column": 7, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, + }, }, + "range": Array [ + 13, + 16, + ], + "type": "VariableDeclarator", }, - "operator": "=", - "range": Array [ - 0, - 33, - ], - "right": Object { + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 3, + }, + }, + "name": "set", + "range": Array [ + 22, + 25, + ], + "type": "Identifier", + }, + "init": null, "loc": Object { "end": Object { - "column": 1, - "line": 5, + "column": 7, + "line": 3, }, "start": Object { "column": 4, - "line": 1, + "line": 3, }, }, - "properties": Array [ - Object { - "computed": false, - "key": Object { + "range": Array [ + 22, + 25, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", + "loc": Object { + "end": Object { + "column": 8, + "line": 3, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 26, + ], + "type": "VariableDeclaration", + }, + Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 5, + }, + "start": Object { + "column": 4, + "line": 5, + }, + }, + "name": "x", + "range": Array [ + 32, + 33, + ], + "type": "Identifier", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 9, + }, + "start": Object { + "column": 8, + "line": 5, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 6, + }, + "start": Object { + "column": 4, + "line": 6, + }, + }, + "name": "foo", + "range": Array [ + 42, + 45, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 7, + "line": 6, + }, + "start": Object { + "column": 4, + "line": 6, + }, + }, + "method": false, + "range": Array [ + 42, + 45, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 6, + }, + "start": Object { + "column": 4, + "line": 6, + }, + }, + "name": "foo", + "range": Array [ + 42, + 45, + ], + "type": "Identifier", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 7, + }, + "start": Object { + "column": 4, + "line": 7, + }, + }, + "name": "get", + "range": Array [ + 51, + 54, + ], + "type": "Identifier", + }, + "kind": "init", "loc": Object { "end": Object { - "column": 10, - "line": 2, + "column": 7, + "line": 7, }, "start": Object { "column": 4, - "line": 2, + "line": 7, }, }, - "name": "method", + "method": false, "range": Array [ - 10, - 16, + 51, + 54, ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 5, - "line": 4, - }, - "start": Object { - "column": 4, - "line": 2, + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 7, + }, + "start": Object { + "column": 4, + "line": 7, + }, + }, + "name": "get", + "range": Array [ + 51, + 54, + ], + "type": "Identifier", }, }, - "method": true, - "range": Array [ - 10, - 31, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "async": false, - "body": Object { - "body": Array [], + Object { + "computed": false, + "key": Object { "loc": Object { "end": Object { - "column": 5, - "line": 4, + "column": 7, + "line": 8, }, "start": Object { - "column": 17, - "line": 2, + "column": 4, + "line": 8, }, }, + "name": "set", "range": Array [ - 23, - 31, + 60, + 63, ], - "type": "BlockStatement", + "type": "Identifier", }, - "expression": false, - "generator": false, - "id": null, + "kind": "init", "loc": Object { "end": Object { - "column": 5, - "line": 4, + "column": 7, + "line": 8, }, "start": Object { - "column": 10, - "line": 2, + "column": 4, + "line": 8, }, }, - "params": Array [ - Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 2, - }, - "start": Object { - "column": 11, - "line": 2, - }, - }, - "name": "test", - "range": Array [ - 17, - 21, - ], - "type": "Identifier", - }, - ], + "method": false, "range": Array [ - 16, - 31, + 60, + 63, ], - "type": "FunctionExpression", + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 8, + }, + "start": Object { + "column": 4, + "line": 8, + }, + }, + "name": "set", + "range": Array [ + 60, + 63, + ], + "type": "Identifier", + }, }, + ], + "range": Array [ + 36, + 65, + ], + "type": "ObjectExpression", + }, + "loc": Object { + "end": Object { + "column": 1, + "line": 9, }, - ], + "start": Object { + "column": 4, + "line": 5, + }, + }, "range": Array [ - 4, - 33, + 32, + 65, ], - "type": "ObjectExpression", + "type": "VariableDeclarator", }, - "type": "AssignmentExpression", - }, + ], + "kind": "var", "loc": Object { "end": Object { "column": 2, - "line": 5, + "line": 9, }, "start": Object { "column": 0, - "line": 1, - }, - }, - "range": Array [ - 0, - 34, - ], - "type": "ExpressionStatement", - }, - Object { - "loc": Object { - "end": Object { - "column": 3, - "line": 5, - }, - "start": Object { - "column": 2, "line": 5, }, }, "range": Array [ - 34, - 35, + 28, + 66, ], - "type": "EmptyStatement", + "type": "VariableDeclaration", }, ], "loc": Object { "end": Object { - "column": 3, - "line": 5, + "column": 0, + "line": 10, }, "start": Object { "column": 0, @@ -117516,14 +126170,14 @@ Object { }, "range": Array [ 0, - 35, + 67, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, + "column": 3, "line": 1, }, "start": Object { @@ -117533,51 +126187,51 @@ Object { }, "range": Array [ 0, - 1, + 3, ], - "type": "Identifier", - "value": "x", + "type": "Keyword", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 3, + "column": 7, "line": 1, }, "start": Object { - "column": 2, + "column": 4, "line": 1, }, }, "range": Array [ - 2, - 3, + 4, + 7, ], - "type": "Punctuator", - "value": "=", + "type": "Identifier", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 8, "line": 1, }, "start": Object { - "column": 4, + "column": 7, "line": 1, }, }, "range": Array [ - 4, - 5, + 7, + 8, ], "type": "Punctuator", - "value": "{", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 7, "line": 2, }, "start": Object { @@ -117586,20 +126240,20 @@ Object { }, }, "range": Array [ - 10, + 13, 16, ], "type": "Identifier", - "value": "method", + "value": "get", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 8, "line": 2, }, "start": Object { - "column": 10, + "column": 7, "line": 2, }, }, @@ -117608,316 +126262,293 @@ Object { 17, ], "type": "Punctuator", - "value": "(", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 15, - "line": 2, + "column": 7, + "line": 3, }, "start": Object { - "column": 11, - "line": 2, + "column": 4, + "line": 3, }, }, "range": Array [ - 17, - 21, + 22, + 25, ], "type": "Identifier", - "value": "test", + "value": "set", }, Object { "loc": Object { "end": Object { - "column": 16, - "line": 2, + "column": 8, + "line": 3, }, "start": Object { - "column": 15, - "line": 2, + "column": 7, + "line": 3, }, }, "range": Array [ - 21, - 22, + 25, + 26, ], "type": "Punctuator", - "value": ")", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 18, - "line": 2, + "column": 3, + "line": 5, }, "start": Object { - "column": 17, - "line": 2, + "column": 0, + "line": 5, }, }, "range": Array [ - 23, - 24, + 28, + 31, ], - "type": "Punctuator", - "value": "{", + "type": "Keyword", + "value": "var", }, Object { "loc": Object { "end": Object { "column": 5, - "line": 4, + "line": 5, }, "start": Object { "column": 4, - "line": 4, + "line": 5, }, }, "range": Array [ - 30, - 31, + 32, + 33, ], - "type": "Punctuator", - "value": "}", + "type": "Identifier", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 1, + "column": 7, "line": 5, }, "start": Object { - "column": 0, + "column": 6, "line": 5, }, }, "range": Array [ - 32, - 33, + 34, + 35, ], "type": "Punctuator", - "value": "}", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 2, + "column": 9, "line": 5, }, "start": Object { - "column": 1, + "column": 8, "line": 5, }, }, "range": Array [ - 33, - 34, + 36, + 37, ], "type": "Punctuator", - "value": ";", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 3, - "line": 5, + "column": 7, + "line": 6, }, "start": Object { - "column": 2, - "line": 5, + "column": 4, + "line": 6, }, }, "range": Array [ - 34, - 35, + 42, + 45, + ], + "type": "Identifier", + "value": "foo", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 6, + }, + "start": Object { + "column": 7, + "line": 6, + }, + }, + "range": Array [ + 45, + 46, ], "type": "Punctuator", - "value": ";", + "value": ",", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/objectLiteralShorthandMethods/simple-method-with-string-name.src 1`] = ` -Object { - "body": Array [ Object { - "expression": Object { - "left": Object { - "loc": Object { - "end": Object { - "column": 1, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 0, - 1, - ], - "type": "Identifier", + "loc": Object { + "end": Object { + "column": 7, + "line": 7, }, - "loc": Object { - "end": Object { - "column": 1, - "line": 4, - }, - "start": Object { - "column": 0, - "line": 1, - }, + "start": Object { + "column": 4, + "line": 7, }, - "operator": "=", - "range": Array [ - 0, - 30, - ], - "right": Object { - "loc": Object { - "end": Object { - "column": 1, - "line": 4, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "range": Array [ - 10, - 18, - ], - "raw": "\\"method\\"", - "type": "Literal", - "value": "method", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 5, - "line": 3, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "method": true, - "range": Array [ - 10, - 28, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 5, - "line": 3, - }, - "start": Object { - "column": 15, - "line": 2, - }, - }, - "range": Array [ - 21, - 28, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 5, - "line": 3, - }, - "start": Object { - "column": 12, - "line": 2, - }, - }, - "params": Array [], - "range": Array [ - 18, - 28, - ], - "type": "FunctionExpression", - }, - }, - ], - "range": Array [ - 4, - 30, - ], - "type": "ObjectExpression", + }, + "range": Array [ + 51, + 54, + ], + "type": "Identifier", + "value": "get", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 7, + }, + "start": Object { + "column": 7, + "line": 7, }, - "type": "AssignmentExpression", }, + "range": Array [ + 54, + 55, + ], + "type": "Punctuator", + "value": ",", + }, + Object { "loc": Object { "end": Object { - "column": 2, - "line": 4, + "column": 7, + "line": 8, }, "start": Object { - "column": 0, - "line": 1, + "column": 4, + "line": 8, }, }, "range": Array [ - 0, - 31, + 60, + 63, ], - "type": "ExpressionStatement", + "type": "Identifier", + "value": "set", }, Object { "loc": Object { "end": Object { - "column": 3, - "line": 4, + "column": 1, + "line": 9, }, "start": Object { + "column": 0, + "line": 9, + }, + }, + "range": Array [ + 64, + 65, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { "column": 2, - "line": 4, + "line": 9, + }, + "start": Object { + "column": 1, + "line": 9, }, }, "range": Array [ - 31, - 32, + 65, + 66, ], - "type": "EmptyStatement", + "type": "Punctuator", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/octalLiterals/invalid.src 1`] = `"';' expected."`; + +exports[`javascript fixtures/octalLiterals/lowercase.src 1`] = ` +Object { + "body": Array [ + Object { + "expression": Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 5, + ], + "raw": "0o717", + "type": "Literal", + "value": 463, + }, + "loc": Object { + "end": Object { + "column": 6, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 6, + ], + "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 3, - "line": 4, + "column": 0, + "line": 2, }, "start": Object { "column": 0, @@ -117926,14 +126557,14 @@ Object { }, "range": Array [ 0, - 32, + 7, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 1, + "column": 5, "line": 1, }, "start": Object { @@ -117943,187 +126574,292 @@ Object { }, "range": Array [ 0, - 1, + 5, ], - "type": "Identifier", - "value": "x", + "type": "Numeric", + "value": "0o717", }, Object { "loc": Object { "end": Object { - "column": 3, + "column": 6, "line": 1, }, "start": Object { - "column": 2, + "column": 5, "line": 1, }, }, "range": Array [ - 2, - 3, + 5, + 6, ], "type": "Punctuator", - "value": "=", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/octalLiterals/strict-uppercase.src 1`] = ` +Object { + "body": Array [ Object { + "directive": "use strict", + "expression": Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 12, + ], + "raw": "\\"use strict\\"", + "type": "Literal", + "value": "use strict", + }, "loc": Object { "end": Object { - "column": 5, + "column": 13, "line": 1, }, "start": Object { - "column": 4, + "column": 0, "line": 1, }, }, "range": Array [ - 4, - 5, + 0, + 13, ], - "type": "Punctuator", - "value": "{", + "type": "ExpressionStatement", }, Object { + "expression": Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 2, + }, + }, + "range": Array [ + 14, + 19, + ], + "raw": "0O717", + "type": "Literal", + "value": 463, + }, "loc": Object { "end": Object { - "column": 12, + "column": 6, "line": 2, }, "start": Object { - "column": 4, + "column": 0, "line": 2, }, }, "range": Array [ - 10, - 18, + 14, + 20, ], - "type": "String", - "value": "\\"method\\"", + "type": "ExpressionStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 3, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 21, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 13, - "line": 2, + "column": 12, + "line": 1, }, "start": Object { - "column": 12, - "line": 2, + "column": 0, + "line": 1, }, }, "range": Array [ - 18, - 19, + 0, + 12, ], - "type": "Punctuator", - "value": "(", + "type": "String", + "value": "\\"use strict\\"", }, Object { "loc": Object { "end": Object { - "column": 14, - "line": 2, + "column": 13, + "line": 1, }, "start": Object { - "column": 13, - "line": 2, + "column": 12, + "line": 1, }, }, "range": Array [ - 19, - 20, + 12, + 13, ], "type": "Punctuator", - "value": ")", + "value": ";", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 5, "line": 2, }, "start": Object { - "column": 15, + "column": 0, "line": 2, }, }, "range": Array [ - 21, - 22, + 14, + 19, ], - "type": "Punctuator", - "value": "{", + "type": "Numeric", + "value": "0O717", }, Object { "loc": Object { "end": Object { - "column": 5, - "line": 3, + "column": 6, + "line": 2, }, "start": Object { - "column": 4, - "line": 3, + "column": 5, + "line": 2, }, }, "range": Array [ - 27, - 28, + 19, + 20, ], "type": "Punctuator", - "value": "}", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/octalLiterals/uppercase.src 1`] = ` +Object { + "body": Array [ Object { + "expression": Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 5, + ], + "raw": "0O717", + "type": "Literal", + "value": 463, + }, "loc": Object { "end": Object { - "column": 1, - "line": 4, + "column": 6, + "line": 1, }, "start": Object { "column": 0, - "line": 4, + "line": 1, }, }, "range": Array [ - 29, - 30, + 0, + 6, ], - "type": "Punctuator", - "value": "}", + "type": "ExpressionStatement", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 7, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 2, - "line": 4, + "column": 5, + "line": 1, }, "start": Object { - "column": 1, - "line": 4, + "column": 0, + "line": 1, }, }, "range": Array [ - 30, - 31, + 0, + 5, ], - "type": "Punctuator", - "value": ";", + "type": "Numeric", + "value": "0O717", }, Object { "loc": Object { "end": Object { - "column": 3, - "line": 4, + "column": 6, + "line": 1, }, "start": Object { - "column": 2, - "line": 4, + "column": 5, + "line": 1, }, }, "range": Array [ - 31, - 32, + 5, + 6, ], "type": "Punctuator", "value": ";", @@ -118133,7 +126869,7 @@ Object { } `; -exports[`javascript fixtures/objectLiteralShorthandMethods/string-name-method-property.src 1`] = ` +exports[`javascript fixtures/regex/regexp-simple.src 1`] = ` Object { "body": Array [ Object { @@ -118142,7 +126878,7 @@ Object { "id": Object { "loc": Object { "end": Object { - "column": 5, + "column": 7, "line": 1, }, "start": Object { @@ -118150,152 +126886,40 @@ Object { "line": 1, }, }, - "name": "x", + "name": "foo", "range": Array [ 4, - 5, + 7, ], "type": "Identifier", }, "init": Object { "loc": Object { "end": Object { - "column": 1, - "line": 5, + "column": 16, + "line": 1, }, "start": Object { - "column": 8, + "column": 10, "line": 1, }, }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "range": Array [ - 14, - 19, - ], - "raw": "\\"foo\\"", - "type": "Literal", - "value": "foo", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 5, - "line": 4, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "method": true, - "range": Array [ - 14, - 49, - ], - "shorthand": false, - "type": "Property", - "value": Object { - "async": false, - "body": Object { - "body": Array [ - Object { - "argument": Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 3, - }, - "start": Object { - "column": 15, - "line": 3, - }, - }, - "name": "bar", - "range": Array [ - 39, - 42, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 19, - "line": 3, - }, - "start": Object { - "column": 8, - "line": 3, - }, - }, - "range": Array [ - 32, - 43, - ], - "type": "ReturnStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 5, - "line": 4, - }, - "start": Object { - "column": 12, - "line": 2, - }, - }, - "range": Array [ - 22, - 49, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 5, - "line": 4, - }, - "start": Object { - "column": 9, - "line": 2, - }, - }, - "params": Array [], - "range": Array [ - 19, - 49, - ], - "type": "FunctionExpression", - }, - }, - ], "range": Array [ - 8, - 51, + 10, + 16, ], - "type": "ObjectExpression", + "raw": "/foo./", + "regex": Object { + "flags": "", + "pattern": "foo.", + }, + "type": "Literal", + "value": Object {}, }, "loc": Object { "end": Object { - "column": 1, - "line": 5, + "column": 16, + "line": 1, }, "start": Object { "column": 4, @@ -118304,7 +126928,7 @@ Object { }, "range": Array [ 4, - 51, + 16, ], "type": "VariableDeclarator", }, @@ -118312,8 +126936,8 @@ Object { "kind": "var", "loc": Object { "end": Object { - "column": 2, - "line": 5, + "column": 17, + "line": 1, }, "start": Object { "column": 0, @@ -118322,7 +126946,7 @@ Object { }, "range": Array [ 0, - 52, + 17, ], "type": "VariableDeclaration", }, @@ -118330,7 +126954,7 @@ Object { "loc": Object { "end": Object { "column": 0, - "line": 6, + "line": 2, }, "start": Object { "column": 0, @@ -118339,7 +126963,7 @@ Object { }, "range": Array [ 0, - 53, + 18, ], "sourceType": "script", "tokens": Array [ @@ -118364,7 +126988,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 5, + "column": 7, "line": 1, }, "start": Object { @@ -118374,28 +126998,10 @@ Object { }, "range": Array [ 4, - 5, - ], - "type": "Identifier", - "value": "x", - }, - Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "range": Array [ - 6, 7, ], - "type": "Punctuator", - "value": "=", + "type": "Identifier", + "value": "foo", }, Object { "loc": Object { @@ -118413,184 +127019,44 @@ Object { 9, ], "type": "Punctuator", - "value": "{", - }, - Object { - "loc": Object { - "end": Object { - "column": 9, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "range": Array [ - 14, - 19, - ], - "type": "String", - "value": "\\"foo\\"", - }, - Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 2, - }, - "start": Object { - "column": 9, - "line": 2, - }, - }, - "range": Array [ - 19, - 20, - ], - "type": "Punctuator", - "value": "(", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 11, - "line": 2, + "column": 16, + "line": 1, }, "start": Object { "column": 10, - "line": 2, - }, - }, - "range": Array [ - 20, - 21, - ], - "type": "Punctuator", - "value": ")", - }, - Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 2, - }, - "start": Object { - "column": 12, - "line": 2, - }, - }, - "range": Array [ - 22, - 23, - ], - "type": "Punctuator", - "value": "{", - }, - Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 3, - }, - "start": Object { - "column": 8, - "line": 3, - }, - }, - "range": Array [ - 32, - 38, - ], - "type": "Keyword", - "value": "return", - }, - Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 3, - }, - "start": Object { - "column": 15, - "line": 3, - }, - }, - "range": Array [ - 39, - 42, - ], - "type": "Identifier", - "value": "bar", - }, - Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 3, - }, - "start": Object { - "column": 18, - "line": 3, - }, - }, - "range": Array [ - 42, - 43, - ], - "type": "Punctuator", - "value": ";", - }, - Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 4, - }, - "start": Object { - "column": 4, - "line": 4, + "line": 1, }, }, "range": Array [ - 48, - 49, + 10, + 16, ], - "type": "Punctuator", - "value": "}", - }, - Object { - "loc": Object { - "end": Object { - "column": 1, - "line": 5, - }, - "start": Object { - "column": 0, - "line": 5, - }, + "regex": Object { + "flags": "", + "pattern": "foo.", }, - "range": Array [ - 50, - 51, - ], - "type": "Punctuator", - "value": "}", + "type": "RegularExpression", + "value": "/foo./", }, Object { "loc": Object { "end": Object { - "column": 2, - "line": 5, + "column": 17, + "line": 1, }, "start": Object { - "column": 1, - "line": 5, + "column": 16, + "line": 1, }, }, "range": Array [ - 51, - 52, + 16, + 17, ], "type": "Punctuator", "value": ";", @@ -118600,7 +127066,7 @@ Object { } `; -exports[`javascript fixtures/objectLiteralShorthandProperties/shorthand-properties.src 1`] = ` +exports[`javascript fixtures/regexUFlag/regex-u-extended-escape.src 1`] = ` Object { "body": Array [ Object { @@ -118609,7 +127075,7 @@ Object { "id": Object { "loc": Object { "end": Object { - "column": 7, + "column": 5, "line": 1, }, "start": Object { @@ -118617,99 +127083,49 @@ Object { "line": 1, }, }, - "name": "foo", + "name": "x", "range": Array [ 4, - 7, + 5, ], "type": "Identifier", }, - "init": null, - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 7, - ], - "type": "VariableDeclarator", - }, - Object { - "id": Object { + "init": Object { "loc": Object { "end": Object { - "column": 7, - "line": 2, + "column": 40, + "line": 1, }, "start": Object { - "column": 4, - "line": 2, + "column": 8, + "line": 1, }, }, - "name": "get", "range": Array [ - 13, - 16, + 8, + 40, ], - "type": "Identifier", - }, - "init": null, - "loc": Object { - "end": Object { - "column": 7, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "range": Array [ - 13, - 16, - ], - "type": "VariableDeclarator", - }, - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 3, - }, - "start": Object { - "column": 4, - "line": 3, - }, + "raw": "/[\\\\u{0000000000000061}-\\\\u{7A}]/u", + "regex": Object { + "flags": "u", + "pattern": "[\\\\u{0000000000000061}-\\\\u{7A}]", }, - "name": "set", - "range": Array [ - 22, - 25, - ], - "type": "Identifier", + "type": "Literal", + "value": Object {}, }, - "init": null, "loc": Object { "end": Object { - "column": 7, - "line": 3, + "column": 40, + "line": 1, }, "start": Object { "column": 4, - "line": 3, + "line": 1, }, }, "range": Array [ - 22, - 25, + 4, + 40, ], "type": "VariableDeclarator", }, @@ -118717,8 +127133,8 @@ Object { "kind": "var", "loc": Object { "end": Object { - "column": 8, - "line": 3, + "column": 41, + "line": 1, }, "start": Object { "column": 0, @@ -118727,234 +127143,186 @@ Object { }, "range": Array [ 0, - 26, + 41, ], "type": "VariableDeclaration", }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 42, + ], + "sourceType": "script", + "tokens": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 5, - }, - "start": Object { - "column": 4, - "line": 5, - }, - }, - "name": "x", - "range": Array [ - 32, - 33, - ], - "type": "Identifier", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 1, - "line": 9, - }, - "start": Object { - "column": 8, - "line": 5, - }, - }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 6, - }, - "start": Object { - "column": 4, - "line": 6, - }, - }, - "name": "foo", - "range": Array [ - 42, - 45, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 7, - "line": 6, - }, - "start": Object { - "column": 4, - "line": 6, - }, - }, - "method": false, - "range": Array [ - 42, - 45, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 6, - }, - "start": Object { - "column": 4, - "line": 6, - }, - }, - "name": "foo", - "range": Array [ - 42, - 45, - ], - "type": "Identifier", - }, - }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 7, - }, - "start": Object { - "column": 4, - "line": 7, - }, - }, - "name": "get", - "range": Array [ - 51, - 54, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 7, - "line": 7, - }, - "start": Object { - "column": 4, - "line": 7, - }, - }, - "method": false, - "range": Array [ - 51, - 54, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 7, - }, - "start": Object { - "column": 4, - "line": 7, - }, - }, - "name": "get", - "range": Array [ - 51, - 54, - ], - "type": "Identifier", - }, + "loc": Object { + "end": Object { + "column": 3, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 3, + ], + "type": "Keyword", + "value": "var", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 5, + ], + "type": "Identifier", + "value": "x", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "range": Array [ + 6, + 7, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 40, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, + 40, + ], + "regex": Object { + "flags": "u", + "pattern": "[\\\\u{0000000000000061}-\\\\u{7A}]", + }, + "type": "RegularExpression", + "value": "/[\\\\u{0000000000000061}-\\\\u{7A}]/u", + }, + Object { + "loc": Object { + "end": Object { + "column": 41, + "line": 1, + }, + "start": Object { + "column": 40, + "line": 1, + }, + }, + "range": Array [ + 40, + 41, + ], + "type": "Punctuator", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/regexUFlag/regex-u-invalid-extended-escape.src 1`] = ` +Object { + "body": Array [ + Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, }, - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 8, - }, - "start": Object { - "column": 4, - "line": 8, - }, - }, - "name": "set", - "range": Array [ - 60, - 63, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 7, - "line": 8, - }, - "start": Object { - "column": 4, - "line": 8, - }, - }, - "method": false, - "range": Array [ - 60, - 63, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 8, - }, - "start": Object { - "column": 4, - "line": 8, - }, - }, - "name": "set", - "range": Array [ - 60, - 63, - ], - "type": "Identifier", - }, + "start": Object { + "column": 4, + "line": 1, }, + }, + "name": "x", + "range": Array [ + 4, + 5, ], + "type": "Identifier", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, "range": Array [ - 36, - 65, + 8, + 21, ], - "type": "ObjectExpression", + "raw": "/\\\\u{110000}/u", + "regex": Object { + "flags": "u", + "pattern": "\\\\u{110000}", + }, + "type": "Literal", + "value": null, }, "loc": Object { "end": Object { - "column": 1, - "line": 9, + "column": 21, + "line": 1, }, "start": Object { "column": 4, - "line": 5, + "line": 1, }, }, "range": Array [ - 32, - 65, + 4, + 21, ], "type": "VariableDeclarator", }, @@ -118962,17 +127330,17 @@ Object { "kind": "var", "loc": Object { "end": Object { - "column": 2, - "line": 9, + "column": 22, + "line": 1, }, "start": Object { "column": 0, - "line": 5, + "line": 1, }, }, "range": Array [ - 28, - 66, + 0, + 22, ], "type": "VariableDeclaration", }, @@ -118980,7 +127348,7 @@ Object { "loc": Object { "end": Object { "column": 0, - "line": 10, + "line": 2, }, "start": Object { "column": 0, @@ -118989,7 +127357,7 @@ Object { }, "range": Array [ 0, - 67, + 23, ], "sourceType": "script", "tokens": Array [ @@ -119014,7 +127382,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 7, + "column": 5, "line": 1, }, "start": Object { @@ -119024,115 +127392,186 @@ Object { }, "range": Array [ 4, - 7, + 5, ], "type": "Identifier", - "value": "foo", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 8, + "column": 7, "line": 1, }, "start": Object { - "column": 7, + "column": 6, "line": 1, }, }, "range": Array [ + 6, 7, - 8, ], "type": "Punctuator", - "value": ",", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 2, + "column": 21, + "line": 1, }, "start": Object { - "column": 4, - "line": 2, + "column": 8, + "line": 1, }, }, "range": Array [ - 13, - 16, + 8, + 21, ], - "type": "Identifier", - "value": "get", + "regex": Object { + "flags": "u", + "pattern": "\\\\u{110000}", + }, + "type": "RegularExpression", + "value": "/\\\\u{110000}/u", }, Object { "loc": Object { "end": Object { - "column": 8, - "line": 2, + "column": 22, + "line": 1, }, "start": Object { - "column": 7, - "line": 2, + "column": 21, + "line": 1, }, }, "range": Array [ - 16, - 17, + 21, + 22, ], "type": "Punctuator", - "value": ",", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/regexUFlag/regex-u-simple.src 1`] = ` +Object { + "body": Array [ Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 3, - }, - "start": Object { - "column": 4, - "line": 3, + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "name": "foo", + "range": Array [ + 4, + 7, + ], + "type": "Identifier", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "range": Array [ + 10, + 16, + ], + "raw": "/foo/u", + "regex": Object { + "flags": "u", + "pattern": "foo", + }, + "type": "Literal", + "value": Object {}, + }, + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 16, + ], + "type": "VariableDeclarator", }, - }, - "range": Array [ - 22, - 25, ], - "type": "Identifier", - "value": "set", - }, - Object { + "kind": "var", "loc": Object { "end": Object { - "column": 8, - "line": 3, + "column": 17, + "line": 1, }, "start": Object { - "column": 7, - "line": 3, + "column": 0, + "line": 1, }, }, "range": Array [ - 25, - 26, + 0, + 17, ], - "type": "Punctuator", - "value": ";", + "type": "VariableDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 18, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { "column": 3, - "line": 5, + "line": 1, }, "start": Object { "column": 0, - "line": 5, + "line": 1, }, }, "range": Array [ - 28, - 31, + 0, + 3, ], "type": "Keyword", "value": "var", @@ -119140,35 +127579,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 5, - "line": 5, + "column": 7, + "line": 1, }, "start": Object { "column": 4, - "line": 5, + "line": 1, }, }, "range": Array [ - 32, - 33, + 4, + 7, ], "type": "Identifier", - "value": "x", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 5, + "column": 9, + "line": 1, }, "start": Object { - "column": 6, - "line": 5, + "column": 8, + "line": 1, }, }, "range": Array [ - 34, - 35, + 8, + 9, ], "type": "Punctuator", "value": "=", @@ -119176,143 +127615,236 @@ Object { Object { "loc": Object { "end": Object { - "column": 9, - "line": 5, + "column": 16, + "line": 1, }, "start": Object { - "column": 8, - "line": 5, + "column": 10, + "line": 1, }, }, "range": Array [ - 36, - 37, + 10, + 16, ], - "type": "Punctuator", - "value": "{", + "regex": Object { + "flags": "u", + "pattern": "foo", + }, + "type": "RegularExpression", + "value": "/foo/u", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 6, + "column": 17, + "line": 1, }, "start": Object { - "column": 4, - "line": 6, + "column": 16, + "line": 1, }, }, "range": Array [ - 42, - 45, + 16, + 17, ], - "type": "Identifier", - "value": "foo", + "type": "Punctuator", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/regexYFlag/regexp-y-simple.src 1`] = ` +Object { + "body": Array [ Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "name": "foo", + "range": Array [ + 4, + 7, + ], + "type": "Identifier", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "range": Array [ + 10, + 16, + ], + "raw": "/foo/y", + "regex": Object { + "flags": "y", + "pattern": "foo", + }, + "type": "Literal", + "value": Object {}, + }, + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 16, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", "loc": Object { "end": Object { - "column": 8, - "line": 6, + "column": 17, + "line": 1, }, "start": Object { - "column": 7, - "line": 6, + "column": 0, + "line": 1, }, }, "range": Array [ - 45, - 46, + 0, + 17, ], - "type": "Punctuator", - "value": ",", + "type": "VariableDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 18, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 7, - "line": 7, + "column": 3, + "line": 1, }, "start": Object { - "column": 4, - "line": 7, + "column": 0, + "line": 1, }, }, "range": Array [ - 51, - 54, + 0, + 3, ], - "type": "Identifier", - "value": "get", + "type": "Keyword", + "value": "var", }, Object { "loc": Object { "end": Object { - "column": 8, - "line": 7, + "column": 7, + "line": 1, }, "start": Object { - "column": 7, - "line": 7, + "column": 4, + "line": 1, }, }, "range": Array [ - 54, - 55, + 4, + 7, ], - "type": "Punctuator", - "value": ",", + "type": "Identifier", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 8, + "column": 9, + "line": 1, }, "start": Object { - "column": 4, - "line": 8, + "column": 8, + "line": 1, }, }, "range": Array [ - 60, - 63, + 8, + 9, ], - "type": "Identifier", - "value": "set", + "type": "Punctuator", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 1, - "line": 9, + "column": 16, + "line": 1, }, "start": Object { - "column": 0, - "line": 9, + "column": 10, + "line": 1, }, }, "range": Array [ - 64, - 65, + 10, + 16, ], - "type": "Punctuator", - "value": "}", + "regex": Object { + "flags": "y", + "pattern": "foo", + }, + "type": "RegularExpression", + "value": "/foo/y", }, Object { "loc": Object { "end": Object { - "column": 2, - "line": 9, + "column": 17, + "line": 1, }, "start": Object { - "column": 1, - "line": 9, + "column": 16, + "line": 1, }, }, "range": Array [ - 65, - 66, + 16, + 17, ], "type": "Punctuator", "value": ";", @@ -119322,34 +127854,52 @@ Object { } `; -exports[`javascript fixtures/octalLiterals/invalid.src 1`] = `"';' expected."`; - -exports[`javascript fixtures/octalLiterals/lowercase.src 1`] = ` +exports[`javascript fixtures/restParams/basic-rest.src 1`] = ` Object { "body": Array [ Object { - "expression": Object { + "async": false, + "body": Object { + "body": Array [], "loc": Object { "end": Object { - "column": 5, + "column": 22, "line": 1, }, "start": Object { - "column": 0, + "column": 20, "line": 1, }, }, "range": Array [ - 0, - 5, + 20, + 22, ], - "raw": "0o717", - "type": "Literal", - "value": 463, + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "name": "f", + "range": Array [ + 9, + 10, + ], + "type": "Identifier", }, "loc": Object { "end": Object { - "column": 6, + "column": 22, "line": 1, }, "start": Object { @@ -119357,17 +127907,89 @@ Object { "line": 1, }, }, + "params": Array [ + Object { + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 11, + 12, + ], + "type": "Identifier", + }, + Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "name": "b", + "range": Array [ + 17, + 18, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "range": Array [ + 14, + 18, + ], + "type": "RestElement", + }, + ], "range": Array [ 0, - 6, + 22, ], - "type": "ExpressionStatement", + "type": "FunctionDeclaration", + }, + Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "range": Array [ + 22, + 23, + ], + "type": "EmptyStatement", }, ], "loc": Object { "end": Object { - "column": 0, - "line": 2, + "column": 23, + "line": 1, }, "start": Object { "column": 0, @@ -119376,14 +127998,14 @@ Object { }, "range": Array [ 0, - 7, + 23, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 8, "line": 1, }, "start": Object { @@ -119393,231 +128015,355 @@ Object { }, "range": Array [ 0, - 5, + 8, ], - "type": "Numeric", - "value": "0o717", + "type": "Keyword", + "value": "function", }, Object { "loc": Object { "end": Object { - "column": 6, + "column": 10, "line": 1, }, "start": Object { - "column": 5, + "column": 9, "line": 1, }, }, "range": Array [ - 5, - 6, + 9, + 10, + ], + "type": "Identifier", + "value": "f", + }, + Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "range": Array [ + 10, + 11, ], "type": "Punctuator", - "value": ";", + "value": "(", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/octalLiterals/strict-uppercase.src 1`] = ` -Object { - "body": Array [ Object { - "directive": "use strict", - "expression": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, }, - "range": Array [ - 0, - 12, - ], - "raw": "\\"use strict\\"", - "type": "Literal", - "value": "use strict", }, + "range": Array [ + 11, + 12, + ], + "type": "Identifier", + "value": "a", + }, + Object { "loc": Object { "end": Object { "column": 13, "line": 1, }, "start": Object { - "column": 0, + "column": 12, "line": 1, }, }, "range": Array [ - 0, + 12, 13, ], - "type": "ExpressionStatement", + "type": "Punctuator", + "value": ",", }, Object { - "expression": Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 2, - }, - }, - "range": Array [ - 14, - 19, - ], - "raw": "0O717", - "type": "Literal", - "value": 463, - }, "loc": Object { "end": Object { - "column": 6, - "line": 2, + "column": 17, + "line": 1, }, "start": Object { - "column": 0, - "line": 2, + "column": 14, + "line": 1, }, }, "range": Array [ 14, - 20, + 17, ], - "type": "ExpressionStatement", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 3, + "type": "Punctuator", + "value": "...", }, - "start": Object { - "column": 0, - "line": 1, + Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "range": Array [ + 17, + 18, + ], + "type": "Identifier", + "value": "b", }, - }, - "range": Array [ - 0, - 21, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 12, + "column": 19, "line": 1, }, "start": Object { - "column": 0, + "column": 18, "line": 1, }, }, "range": Array [ - 0, - 12, + 18, + 19, ], - "type": "String", - "value": "\\"use strict\\"", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 21, "line": 1, }, "start": Object { - "column": 12, + "column": 20, "line": 1, }, }, "range": Array [ - 12, - 13, + 20, + 21, ], "type": "Punctuator", - "value": ";", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 5, - "line": 2, + "column": 22, + "line": 1, }, "start": Object { - "column": 0, - "line": 2, + "column": 21, + "line": 1, }, }, "range": Array [ - 14, - 19, + 21, + 22, ], - "type": "Numeric", - "value": "0O717", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 6, - "line": 2, + "column": 23, + "line": 1, }, "start": Object { - "column": 5, - "line": 2, + "column": 22, + "line": 1, + }, + }, + "range": Array [ + 22, + 23, + ], + "type": "Punctuator", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/restParams/class-constructor.src 1`] = ` +Object { + "body": Array [ + Object { + "body": Object { + "body": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "name": "constructor", + "range": Array [ + 14, + 25, + ], + "type": "Identifier", + }, + "kind": "constructor", + "loc": Object { + "end": Object { + "column": 5, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "range": Array [ + 14, + 41, + ], + "static": false, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 5, + "line": 3, + }, + "start": Object { + "column": 24, + "line": 2, + }, + }, + "range": Array [ + 34, + 41, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 5, + "line": 3, + }, + "start": Object { + "column": 15, + "line": 2, + }, + }, + "params": Array [ + Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 2, + }, + "start": Object { + "column": 19, + "line": 2, + }, + }, + "name": "foo", + "range": Array [ + 29, + 32, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 22, + "line": 2, + }, + "start": Object { + "column": 16, + "line": 2, + }, + }, + "range": Array [ + 26, + 32, + ], + "type": "RestElement", + }, + ], + "range": Array [ + 25, + 41, + ], + "type": "FunctionExpression", + }, + }, + ], + "loc": Object { + "end": Object { + "column": 1, + "line": 4, + }, + "start": Object { + "column": 8, + "line": 1, + }, }, + "range": Array [ + 8, + 43, + ], + "type": "ClassBody", }, - "range": Array [ - 19, - 20, - ], - "type": "Punctuator", - "value": ";", - }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/octalLiterals/uppercase.src 1`] = ` -Object { - "body": Array [ - Object { - "expression": Object { + "id": Object { "loc": Object { "end": Object { - "column": 5, + "column": 7, "line": 1, }, "start": Object { - "column": 0, + "column": 6, "line": 1, }, }, + "name": "A", "range": Array [ - 0, - 5, + 6, + 7, ], - "raw": "0O717", - "type": "Literal", - "value": 463, + "type": "Identifier", }, "loc": Object { "end": Object { - "column": 6, - "line": 1, + "column": 1, + "line": 4, }, "start": Object { "column": 0, @@ -119626,15 +128372,16 @@ Object { }, "range": Array [ 0, - 6, + 43, ], - "type": "ExpressionStatement", + "superClass": null, + "type": "ClassDeclaration", }, ], "loc": Object { "end": Object { "column": 0, - "line": 2, + "line": 5, }, "start": Object { "column": 0, @@ -119643,7 +128390,7 @@ Object { }, "range": Array [ 0, - 7, + 44, ], "sourceType": "script", "tokens": Array [ @@ -119662,162 +128409,113 @@ Object { 0, 5, ], - "type": "Numeric", - "value": "0O717", + "type": "Keyword", + "value": "class", }, Object { "loc": Object { "end": Object { - "column": 6, + "column": 7, "line": 1, }, "start": Object { - "column": 5, + "column": 6, "line": 1, }, }, "range": Array [ - 5, 6, + 7, ], - "type": "Punctuator", - "value": ";", + "type": "Identifier", + "value": "A", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/regex/regexp-simple.src 1`] = ` -Object { - "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "name": "foo", - "range": Array [ - 4, - 7, - ], - "type": "Identifier", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "range": Array [ - 10, - 16, - ], - "raw": "/foo./", - "regex": Object { - "flags": "", - "pattern": "foo.", - }, - "type": "Literal", - "value": Object {}, - }, - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 16, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "var", "loc": Object { "end": Object { - "column": 17, + "column": 9, "line": 1, }, "start": Object { - "column": 0, + "column": 8, "line": 1, }, }, "range": Array [ - 0, - 17, + 8, + 9, ], - "type": "VariableDeclaration", + "type": "Punctuator", + "value": "{", }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, + Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "range": Array [ + 14, + 25, + ], + "type": "Identifier", + "value": "constructor", }, - "start": Object { - "column": 0, - "line": 1, + Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 2, + }, + "start": Object { + "column": 15, + "line": 2, + }, + }, + "range": Array [ + 25, + 26, + ], + "type": "Punctuator", + "value": "(", }, - }, - "range": Array [ - 0, - 18, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, - "line": 1, + "column": 19, + "line": 2, }, "start": Object { - "column": 0, - "line": 1, + "column": 16, + "line": 2, }, }, "range": Array [ - 0, - 3, + 26, + 29, ], - "type": "Keyword", - "value": "var", + "type": "Punctuator", + "value": "...", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 1, + "column": 22, + "line": 2, }, "start": Object { - "column": 4, - "line": 1, + "column": 19, + "line": 2, }, }, "range": Array [ - 4, - 7, + 29, + 32, ], "type": "Identifier", "value": "foo", @@ -119825,135 +128523,239 @@ Object { Object { "loc": Object { "end": Object { - "column": 9, - "line": 1, + "column": 23, + "line": 2, }, "start": Object { - "column": 8, - "line": 1, + "column": 22, + "line": 2, }, }, "range": Array [ - 8, - 9, + 32, + 33, ], "type": "Punctuator", - "value": "=", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 16, - "line": 1, + "column": 25, + "line": 2, }, "start": Object { - "column": 10, - "line": 1, + "column": 24, + "line": 2, }, }, "range": Array [ - 10, - 16, + 34, + 35, ], - "regex": Object { - "flags": "", - "pattern": "foo.", + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 3, + }, }, - "type": "RegularExpression", - "value": "/foo./", + "range": Array [ + 40, + 41, + ], + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 17, - "line": 1, + "column": 1, + "line": 4, }, "start": Object { - "column": 16, - "line": 1, + "column": 0, + "line": 4, }, }, "range": Array [ - 16, - 17, + 42, + 43, ], "type": "Punctuator", - "value": ";", + "value": "}", }, ], "type": "Program", } `; -exports[`javascript fixtures/regexUFlag/regex-u-extended-escape.src 1`] = ` +exports[`javascript fixtures/restParams/class-method.src 1`] = ` Object { "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { + "body": Object { + "body": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "name": "foo", + "range": Array [ + 14, + 17, + ], + "type": "Identifier", + }, + "kind": "method", "loc": Object { "end": Object { "column": 5, - "line": 1, + "line": 3, }, "start": Object { "column": 4, - "line": 1, + "line": 2, }, }, - "name": "x", "range": Array [ - 4, - 5, + 14, + 33, ], - "type": "Identifier", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 40, - "line": 1, + "static": false, + "type": "MethodDefinition", + "value": Object { + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 5, + "line": 3, + }, + "start": Object { + "column": 16, + "line": 2, + }, + }, + "range": Array [ + 26, + 33, + ], + "type": "BlockStatement", }, - "start": Object { - "column": 8, - "line": 1, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 5, + "line": 3, + }, + "start": Object { + "column": 7, + "line": 2, + }, }, + "params": Array [ + Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 2, + }, + "start": Object { + "column": 11, + "line": 2, + }, + }, + "name": "bar", + "range": Array [ + 21, + 24, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 14, + "line": 2, + }, + "start": Object { + "column": 8, + "line": 2, + }, + }, + "range": Array [ + 18, + 24, + ], + "type": "RestElement", + }, + ], + "range": Array [ + 17, + 33, + ], + "type": "FunctionExpression", }, - "range": Array [ - 8, - 40, - ], - "raw": "/[\\\\u{0000000000000061}-\\\\u{7A}]/u", - "regex": Object { - "flags": "u", - "pattern": "[\\\\u{0000000000000061}-\\\\u{7A}]", - }, - "type": "Literal", - "value": Object {}, }, - "loc": Object { - "end": Object { - "column": 40, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, + ], + "loc": Object { + "end": Object { + "column": 1, + "line": 4, + }, + "start": Object { + "column": 8, + "line": 1, }, - "range": Array [ - 4, - 40, - ], - "type": "VariableDeclarator", }, - ], - "kind": "var", + "range": Array [ + 8, + 35, + ], + "type": "ClassBody", + }, + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "A", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", + }, "loc": Object { "end": Object { - "column": 41, - "line": 1, + "column": 1, + "line": 4, }, "start": Object { "column": 0, @@ -119962,15 +128764,16 @@ Object { }, "range": Array [ 0, - 41, + 35, ], - "type": "VariableDeclaration", + "superClass": null, + "type": "ClassDeclaration", }, ], "loc": Object { "end": Object { "column": 0, - "line": 2, + "line": 5, }, "start": Object { "column": 0, @@ -119979,14 +128782,14 @@ Object { }, "range": Array [ 0, - 42, + 36, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, + "column": 5, "line": 1, }, "start": Object { @@ -119996,375 +128799,297 @@ Object { }, "range": Array [ 0, - 3, + 5, ], "type": "Keyword", - "value": "var", + "value": "class", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 7, "line": 1, }, "start": Object { - "column": 4, + "column": 6, "line": 1, }, }, "range": Array [ - 4, - 5, + 6, + 7, ], "type": "Identifier", - "value": "x", + "value": "A", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 9, "line": 1, }, "start": Object { - "column": 6, + "column": 8, "line": 1, }, }, "range": Array [ - 6, - 7, + 8, + 9, ], "type": "Punctuator", - "value": "=", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 40, - "line": 1, + "column": 7, + "line": 2, }, "start": Object { - "column": 8, - "line": 1, + "column": 4, + "line": 2, }, }, "range": Array [ - 8, - 40, + 14, + 17, ], - "regex": Object { - "flags": "u", - "pattern": "[\\\\u{0000000000000061}-\\\\u{7A}]", - }, - "type": "RegularExpression", - "value": "/[\\\\u{0000000000000061}-\\\\u{7A}]/u", + "type": "Identifier", + "value": "foo", }, Object { "loc": Object { "end": Object { - "column": 41, - "line": 1, + "column": 8, + "line": 2, }, "start": Object { - "column": 40, - "line": 1, + "column": 7, + "line": 2, }, }, "range": Array [ - 40, - 41, + 17, + 18, ], "type": "Punctuator", - "value": ";", + "value": "(", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/regexUFlag/regex-u-invalid-extended-escape.src 1`] = ` -Object { - "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 4, - 5, - ], - "type": "Identifier", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "range": Array [ - 8, - 21, - ], - "raw": "/\\\\u{110000}/u", - "regex": Object { - "flags": "u", - "pattern": "\\\\u{110000}", - }, - "type": "Literal", - "value": null, - }, - "loc": Object { - "end": Object { - "column": 21, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 21, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "var", "loc": Object { "end": Object { - "column": 22, - "line": 1, + "column": 11, + "line": 2, }, "start": Object { - "column": 0, - "line": 1, + "column": 8, + "line": 2, }, }, "range": Array [ - 0, - 22, + 18, + 21, ], - "type": "VariableDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Punctuator", + "value": "...", }, - }, - "range": Array [ - 0, - 23, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, - "line": 1, + "column": 14, + "line": 2, }, "start": Object { - "column": 0, - "line": 1, + "column": 11, + "line": 2, }, }, "range": Array [ - 0, - 3, + 21, + 24, ], - "type": "Keyword", - "value": "var", + "type": "Identifier", + "value": "bar", }, Object { "loc": Object { "end": Object { - "column": 5, - "line": 1, + "column": 15, + "line": 2, }, "start": Object { - "column": 4, - "line": 1, + "column": 14, + "line": 2, }, }, "range": Array [ - 4, - 5, + 24, + 25, ], - "type": "Identifier", - "value": "x", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 1, + "column": 17, + "line": 2, }, "start": Object { - "column": 6, - "line": 1, + "column": 16, + "line": 2, }, }, "range": Array [ - 6, - 7, + 26, + 27, ], "type": "Punctuator", - "value": "=", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 21, - "line": 1, + "column": 5, + "line": 3, }, "start": Object { - "column": 8, - "line": 1, + "column": 4, + "line": 3, }, }, "range": Array [ - 8, - 21, + 32, + 33, ], - "regex": Object { - "flags": "u", - "pattern": "\\\\u{110000}", - }, - "type": "RegularExpression", - "value": "/\\\\u{110000}/u", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 22, - "line": 1, + "column": 1, + "line": 4, }, "start": Object { - "column": 21, - "line": 1, + "column": 0, + "line": 4, }, }, "range": Array [ - 21, - 22, + 34, + 35, ], "type": "Punctuator", - "value": ";", + "value": "}", }, ], "type": "Program", } `; -exports[`javascript fixtures/regexUFlag/regex-u-simple.src 1`] = ` +exports[`javascript fixtures/restParams/error-no-default.src 1`] = ` Object { "body": Array [ Object { - "declarations": Array [ + "async": false, + "expression": false, + "generator": false, + "id": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "name": "f", + "range": Array [ + 9, + 10, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "params": Array [ Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, + "loc": Object { + "end": Object { + "column": 12, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, }, - "name": "foo", - "range": Array [ - 4, - 7, - ], - "type": "Identifier", }, - "init": Object { + "name": "a", + "range": Array [ + 11, + 12, + ], + "type": "Identifier", + }, + Object { + "argument": Object { "loc": Object { "end": Object { - "column": 16, + "column": 18, "line": 1, }, "start": Object { - "column": 10, + "column": 17, "line": 1, }, }, + "name": "b", "range": Array [ - 10, - 16, + 17, + 18, ], - "raw": "/foo/u", - "regex": Object { - "flags": "u", - "pattern": "foo", - }, - "type": "Literal", - "value": Object {}, + "type": "Identifier", }, "loc": Object { "end": Object { - "column": 16, + "column": 22, "line": 1, }, "start": Object { - "column": 4, + "column": 14, "line": 1, }, }, "range": Array [ - 4, - 16, + 14, + 22, ], - "type": "VariableDeclarator", + "type": "RestElement", }, ], - "kind": "var", - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, "range": Array [ 0, - 17, + 24, ], - "type": "VariableDeclaration", + "type": "TSDeclareFunction", }, ], "loc": Object { "end": Object { - "column": 0, - "line": 2, + "column": 24, + "line": 1, }, "start": Object { "column": 0, @@ -120373,14 +129098,14 @@ Object { }, "range": Array [ 0, - 18, + 24, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, + "column": 8, "line": 1, }, "start": Object { @@ -120390,51 +129115,33 @@ Object { }, "range": Array [ 0, - 3, + 8, ], "type": "Keyword", - "value": "var", + "value": "function", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 10, "line": 1, }, "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 7, - ], - "type": "Identifier", - "value": "foo", - }, - Object { - "loc": Object { - "end": Object { "column": 9, "line": 1, }, - "start": Object { - "column": 8, - "line": 1, - }, }, "range": Array [ - 8, 9, + 10, ], - "type": "Punctuator", - "value": "=", + "type": "Identifier", + "value": "f", }, Object { "loc": Object { "end": Object { - "column": 16, + "column": 11, "line": 1, }, "start": Object { @@ -120444,186 +129151,97 @@ Object { }, "range": Array [ 10, - 16, + 11, ], - "regex": Object { - "flags": "u", - "pattern": "foo", - }, - "type": "RegularExpression", - "value": "/foo/u", + "type": "Punctuator", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 12, "line": 1, }, "start": Object { - "column": 16, + "column": 11, "line": 1, }, }, "range": Array [ - 16, - 17, + 11, + 12, ], - "type": "Punctuator", - "value": ";", + "type": "Identifier", + "value": "a", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/regexYFlag/regexp-y-simple.src 1`] = ` -Object { - "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "name": "foo", - "range": Array [ - 4, - 7, - ], - "type": "Identifier", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "range": Array [ - 10, - 16, - ], - "raw": "/foo/y", - "regex": Object { - "flags": "y", - "pattern": "foo", - }, - "type": "Literal", - "value": Object {}, - }, - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, - 16, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "var", "loc": Object { "end": Object { - "column": 17, + "column": 13, "line": 1, }, "start": Object { - "column": 0, + "column": 12, "line": 1, }, }, "range": Array [ - 0, - 17, + 12, + 13, ], - "type": "VariableDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Punctuator", + "value": ",", }, - }, - "range": Array [ - 0, - 18, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, + "column": 17, "line": 1, }, "start": Object { - "column": 0, + "column": 14, "line": 1, }, }, "range": Array [ - 0, - 3, + 14, + 17, ], - "type": "Keyword", - "value": "var", + "type": "Punctuator", + "value": "...", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 18, "line": 1, }, "start": Object { - "column": 4, + "column": 17, "line": 1, }, }, "range": Array [ - 4, - 7, + 17, + 18, ], "type": "Identifier", - "value": "foo", + "value": "b", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 20, "line": 1, }, "start": Object { - "column": 8, + "column": 19, "line": 1, }, }, "range": Array [ - 8, - 9, + 19, + 20, ], "type": "Punctuator", "value": "=", @@ -120631,39 +129249,53 @@ Object { Object { "loc": Object { "end": Object { - "column": 16, + "column": 22, "line": 1, }, "start": Object { - "column": 10, + "column": 21, "line": 1, }, }, "range": Array [ - 10, - 16, + 21, + 22, ], - "regex": Object { - "flags": "y", - "pattern": "foo", + "type": "Numeric", + "value": "0", + }, + Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, }, - "type": "RegularExpression", - "value": "/foo/y", + "range": Array [ + 22, + 23, + ], + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 17, + "column": 24, "line": 1, }, "start": Object { - "column": 16, + "column": 23, "line": 1, }, }, "range": Array [ - 16, - 17, + 23, + 24, ], "type": "Punctuator", "value": ";", @@ -120673,29 +129305,11 @@ Object { } `; -exports[`javascript fixtures/restParams/basic-rest.src 1`] = ` +exports[`javascript fixtures/restParams/error-not-last.src 1`] = ` Object { "body": Array [ Object { "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, - }, - "range": Array [ - 20, - 22, - ], - "type": "BlockStatement", - }, "expression": false, "generator": false, "id": Object { @@ -120718,7 +129332,7 @@ Object { }, "loc": Object { "end": Object { - "column": 22, + "column": 23, "line": 1, }, "start": Object { @@ -120780,29 +129394,30 @@ Object { ], "type": "RestElement", }, + Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "name": "c", + "range": Array [ + 20, + 21, + ], + "type": "Identifier", + }, ], "range": Array [ 0, - 22, - ], - "type": "FunctionDeclaration", - }, - Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 22, - "line": 1, - }, - }, - "range": Array [ - 22, 23, ], - "type": "EmptyStatement", + "type": "TSDeclareFunction", }, ], "loc": Object { @@ -120963,7 +129578,7 @@ Object { 19, ], "type": "Punctuator", - "value": ")", + "value": ",", }, Object { "loc": Object { @@ -120980,8 +129595,8 @@ Object { 20, 21, ], - "type": "Punctuator", - "value": "{", + "type": "Identifier", + "value": "c", }, Object { "loc": Object { @@ -120999,7 +129614,7 @@ Object { 22, ], "type": "Punctuator", - "value": "}", + "value": ")", }, Object { "loc": Object { @@ -121024,165 +129639,500 @@ Object { } `; -exports[`javascript fixtures/restParams/class-constructor.src 1`] = ` +exports[`javascript fixtures/restParams/func-expression.src 1`] = ` Object { "body": Array [ Object { - "body": Object { - "body": Array [ - Object { - "computed": false, - "key": Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 4, + 5, + ], + "type": "Identifier", + }, + "init": Object { + "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, + }, + }, + "range": Array [ + 24, + 26, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": null, + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "params": Array [ + Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 21, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 21, + 22, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "range": Array [ + 18, + 22, + ], + "type": "RestElement", + }, + ], + "range": Array [ + 8, + 26, + ], + "type": "FunctionExpression", + }, + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 26, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "var", + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 27, + ], + "type": "VariableDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 27, + ], + "sourceType": "script", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 3, + ], + "type": "Keyword", + "value": "var", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 5, + ], + "type": "Identifier", + "value": "x", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "range": Array [ + 6, + 7, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 1, + }, + "start": Object { + "column": 8, + "line": 1, + }, + }, + "range": Array [ + 8, + 16, + ], + "type": "Keyword", + "value": "function", + }, + Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "range": Array [ + 17, + 18, + ], + "type": "Punctuator", + "value": "(", + }, + Object { + "loc": Object { + "end": Object { + "column": 21, + "line": 1, + }, + "start": Object { + "column": 18, + "line": 1, + }, + }, + "range": Array [ + 18, + 21, + ], + "type": "Punctuator", + "value": "...", + }, + Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 21, + "line": 1, + }, + }, + "range": Array [ + 21, + 22, + ], + "type": "Identifier", + "value": "a", + }, + Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 1, + }, + "start": Object { + "column": 22, + "line": 1, + }, + }, + "range": Array [ + 22, + 23, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, + }, + }, + "range": Array [ + 24, + 25, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 26, + "line": 1, + }, + "start": Object { + "column": 25, + "line": 1, + }, + }, + "range": Array [ + 25, + 26, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 27, + "line": 1, + }, + "start": Object { + "column": 26, + "line": 1, + }, + }, + "range": Array [ + 26, + 27, + ], + "type": "Punctuator", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/restParams/func-expression-multi.src 1`] = ` +Object { + "body": Array [ + Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 4, + 5, + ], + "type": "Identifier", + }, + "init": Object { + "async": false, + "body": Object { + "body": Array [], "loc": Object { "end": Object { - "column": 15, - "line": 2, + "column": 28, + "line": 1, }, "start": Object { - "column": 4, - "line": 2, + "column": 26, + "line": 1, }, }, - "name": "constructor", "range": Array [ - 14, - 25, + 26, + 28, ], - "type": "Identifier", + "type": "BlockStatement", }, - "kind": "constructor", + "expression": false, + "generator": false, + "id": null, "loc": Object { "end": Object { - "column": 5, - "line": 3, + "column": 28, + "line": 1, }, "start": Object { - "column": 4, - "line": 2, + "column": 8, + "line": 1, }, }, - "range": Array [ - 14, - 41, - ], - "static": false, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [], + "params": Array [ + Object { "loc": Object { "end": Object { - "column": 5, - "line": 3, + "column": 18, + "line": 1, }, "start": Object { - "column": 24, - "line": 2, + "column": 17, + "line": 1, }, }, + "name": "a", "range": Array [ - 34, - 41, + 17, + 18, ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 5, - "line": 3, - }, - "start": Object { - "column": 15, - "line": 2, - }, + "type": "Identifier", }, - "params": Array [ - Object { - "argument": Object { - "loc": Object { - "end": Object { - "column": 22, - "line": 2, - }, - "start": Object { - "column": 19, - "line": 2, - }, - }, - "name": "foo", - "range": Array [ - 29, - 32, - ], - "type": "Identifier", - }, + Object { + "argument": Object { "loc": Object { "end": Object { - "column": 22, - "line": 2, + "column": 24, + "line": 1, }, "start": Object { - "column": 16, - "line": 2, + "column": 23, + "line": 1, }, }, + "name": "b", "range": Array [ - 26, - 32, + 23, + 24, ], - "type": "RestElement", + "type": "Identifier", }, - ], - "range": Array [ - 25, - 41, - ], - "type": "FunctionExpression", - }, - }, - ], - "loc": Object { - "end": Object { - "column": 1, - "line": 4, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "range": Array [ - 8, - 43, - ], - "type": "ClassBody", - }, - "id": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, + "loc": Object { + "end": Object { + "column": 24, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "range": Array [ + 20, + 24, + ], + "type": "RestElement", + }, + ], + "range": Array [ + 8, + 28, + ], + "type": "FunctionExpression", }, - "start": Object { - "column": 6, - "line": 1, + "loc": Object { + "end": Object { + "column": 28, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, }, + "range": Array [ + 4, + 28, + ], + "type": "VariableDeclarator", }, - "name": "A", - "range": Array [ - 6, - 7, - ], - "type": "Identifier", - }, + ], + "kind": "var", "loc": Object { "end": Object { - "column": 1, - "line": 4, + "column": 29, + "line": 1, }, "start": Object { "column": 0, @@ -121191,16 +130141,15 @@ Object { }, "range": Array [ 0, - 43, + 29, ], - "superClass": null, - "type": "ClassDeclaration", + "type": "VariableDeclaration", }, ], "loc": Object { "end": Object { - "column": 0, - "line": 5, + "column": 29, + "line": 1, }, "start": Object { "column": 0, @@ -121209,14 +130158,14 @@ Object { }, "range": Array [ 0, - 44, + 29, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 3, "line": 1, }, "start": Object { @@ -121226,10 +130175,28 @@ Object { }, "range": Array [ 0, - 5, + 3, ], "type": "Keyword", - "value": "class", + "value": "var", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 4, + "line": 1, + }, + }, + "range": Array [ + 4, + 5, + ], + "type": "Identifier", + "value": "x", }, Object { "loc": Object { @@ -121246,13 +130213,13 @@ Object { 6, 7, ], - "type": "Identifier", - "value": "A", + "type": "Punctuator", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 16, "line": 1, }, "start": Object { @@ -121262,61 +130229,79 @@ Object { }, "range": Array [ 8, - 9, + 16, + ], + "type": "Keyword", + "value": "function", + }, + Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, + }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "range": Array [ + 16, + 17, ], "type": "Punctuator", - "value": "{", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 15, - "line": 2, + "column": 18, + "line": 1, }, "start": Object { - "column": 4, - "line": 2, + "column": 17, + "line": 1, }, }, "range": Array [ - 14, - 25, + 17, + 18, ], "type": "Identifier", - "value": "constructor", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 16, - "line": 2, + "column": 19, + "line": 1, }, "start": Object { - "column": 15, - "line": 2, + "column": 18, + "line": 1, }, }, "range": Array [ - 25, - 26, + 18, + 19, ], "type": "Punctuator", - "value": "(", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 19, - "line": 2, + "column": 23, + "line": 1, }, "start": Object { - "column": 16, - "line": 2, + "column": 20, + "line": 1, }, }, "range": Array [ - 26, - 29, + 20, + 23, ], "type": "Punctuator", "value": "...", @@ -121324,35 +130309,35 @@ Object { Object { "loc": Object { "end": Object { - "column": 22, - "line": 2, + "column": 24, + "line": 1, }, "start": Object { - "column": 19, - "line": 2, + "column": 23, + "line": 1, }, }, "range": Array [ - 29, - 32, + 23, + 24, ], "type": "Identifier", - "value": "foo", + "value": "b", }, Object { "loc": Object { "end": Object { - "column": 23, - "line": 2, + "column": 25, + "line": 1, }, "start": Object { - "column": 22, - "line": 2, + "column": 24, + "line": 1, }, }, "range": Array [ - 32, - 33, + 24, + 25, ], "type": "Punctuator", "value": ")", @@ -121360,17 +130345,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 25, - "line": 2, + "column": 27, + "line": 1, }, "start": Object { - "column": 24, - "line": 2, + "column": 26, + "line": 1, }, }, "range": Array [ - 34, - 35, + 26, + 27, ], "type": "Punctuator", "value": "{", @@ -121378,17 +130363,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 5, - "line": 3, + "column": 28, + "line": 1, }, "start": Object { - "column": 4, - "line": 3, + "column": 27, + "line": 1, }, }, "range": Array [ - 40, - 41, + 27, + 28, ], "type": "Punctuator", "value": "}", @@ -121396,203 +130381,202 @@ Object { Object { "loc": Object { "end": Object { - "column": 1, - "line": 4, + "column": 29, + "line": 1, }, "start": Object { - "column": 0, - "line": 4, + "column": 28, + "line": 1, }, }, "range": Array [ - 42, - 43, + 28, + 29, ], "type": "Punctuator", - "value": "}", + "value": ";", }, ], "type": "Program", } `; -exports[`javascript fixtures/restParams/class-method.src 1`] = ` +exports[`javascript fixtures/restParams/invalid-rest-param.src 1`] = ` Object { "body": Array [ Object { + "async": false, "body": Object { - "body": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 2, - }, - "start": Object { - "column": 4, - "line": 2, - }, - }, - "name": "foo", - "range": Array [ - 14, - 17, - ], - "type": "Identifier", - }, - "kind": "method", + "body": Array [], + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 20, + "line": 1, + }, + }, + "range": Array [ + 20, + 22, + ], + "type": "BlockStatement", + }, + "expression": false, + "generator": false, + "id": Object { + "loc": Object { + "end": Object { + "column": 10, + "line": 1, + }, + "start": Object { + "column": 9, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 9, + 10, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "params": Array [ + Object { + "argument": Object { "loc": Object { "end": Object { - "column": 5, - "line": 3, + "column": 19, + "line": 1, }, "start": Object { - "column": 4, - "line": 2, + "column": 14, + "line": 1, }, }, - "range": Array [ - 14, - 33, - ], - "static": false, - "type": "MethodDefinition", - "value": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 5, - "line": 3, - }, - "start": Object { - "column": 16, - "line": 2, - }, - }, - "range": Array [ - 26, - 33, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, - "loc": Object { - "end": Object { - "column": 5, - "line": 3, - }, - "start": Object { - "column": 7, - "line": 2, - }, - }, - "params": Array [ - Object { - "argument": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 2, - }, - "start": Object { - "column": 11, - "line": 2, - }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 1, }, - "name": "bar", - "range": Array [ - 21, - 24, - ], - "type": "Identifier", + "start": Object { + "column": 16, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 16, + 17, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 17, + "line": 1, }, + "start": Object { + "column": 16, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 16, + 17, + ], + "shorthand": true, + "type": "Property", + "value": Object { "loc": Object { "end": Object { - "column": 14, - "line": 2, + "column": 17, + "line": 1, }, "start": Object { - "column": 8, - "line": 2, + "column": 16, + "line": 1, }, }, + "name": "a", "range": Array [ - 18, - 24, + 16, + 17, ], - "type": "RestElement", + "type": "Identifier", }, - ], - "range": Array [ - 17, - 33, - ], - "type": "FunctionExpression", - }, - }, - ], - "loc": Object { - "end": Object { - "column": 1, - "line": 4, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "range": Array [ - 8, - 35, - ], - "type": "ClassBody", - }, - "id": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, + }, + ], + "range": Array [ + 14, + 19, + ], + "type": "ObjectPattern", }, - "start": Object { - "column": 6, - "line": 1, + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, }, + "range": Array [ + 11, + 19, + ], + "type": "RestElement", }, - "name": "A", - "range": Array [ - 6, - 7, - ], - "type": "Identifier", - }, + ], + "range": Array [ + 0, + 22, + ], + "type": "FunctionDeclaration", + }, + Object { "loc": Object { "end": Object { - "column": 1, - "line": 4, + "column": 23, + "line": 1, }, "start": Object { - "column": 0, + "column": 22, "line": 1, }, }, "range": Array [ - 0, - 35, + 22, + 23, ], - "superClass": null, - "type": "ClassDeclaration", + "type": "EmptyStatement", }, ], "loc": Object { "end": Object { - "column": 0, - "line": 5, + "column": 23, + "line": 1, }, "start": Object { "column": 0, @@ -121601,14 +130585,14 @@ Object { }, "range": Array [ 0, - 36, + 23, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 8, "line": 1, }, "start": Object { @@ -121618,133 +130602,133 @@ Object { }, "range": Array [ 0, - 5, + 8, ], "type": "Keyword", - "value": "class", + "value": "function", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 10, "line": 1, }, "start": Object { - "column": 6, + "column": 9, "line": 1, }, }, "range": Array [ - 6, - 7, + 9, + 10, ], "type": "Identifier", - "value": "A", + "value": "x", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 11, "line": 1, }, "start": Object { - "column": 8, + "column": 10, "line": 1, }, }, "range": Array [ - 8, - 9, + 10, + 11, ], "type": "Punctuator", - "value": "{", + "value": "(", }, Object { "loc": Object { "end": Object { - "column": 7, - "line": 2, + "column": 14, + "line": 1, }, "start": Object { - "column": 4, - "line": 2, + "column": 11, + "line": 1, }, }, "range": Array [ + 11, 14, - 17, ], - "type": "Identifier", - "value": "foo", + "type": "Punctuator", + "value": "...", }, Object { "loc": Object { "end": Object { - "column": 8, - "line": 2, + "column": 15, + "line": 1, }, "start": Object { - "column": 7, - "line": 2, + "column": 14, + "line": 1, }, }, "range": Array [ - 17, - 18, + 14, + 15, ], "type": "Punctuator", - "value": "(", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 11, - "line": 2, + "column": 17, + "line": 1, }, "start": Object { - "column": 8, - "line": 2, + "column": 16, + "line": 1, }, }, "range": Array [ - 18, - 21, + 16, + 17, ], - "type": "Punctuator", - "value": "...", + "type": "Identifier", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 14, - "line": 2, + "column": 19, + "line": 1, }, "start": Object { - "column": 11, - "line": 2, + "column": 18, + "line": 1, }, }, "range": Array [ - 21, - 24, + 18, + 19, ], - "type": "Identifier", - "value": "bar", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 15, - "line": 2, + "column": 20, + "line": 1, }, "start": Object { - "column": 14, - "line": 2, + "column": 19, + "line": 1, }, }, "range": Array [ - 24, - 25, + 19, + 20, ], "type": "Punctuator", "value": ")", @@ -121752,17 +130736,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 17, - "line": 2, + "column": 21, + "line": 1, }, "start": Object { - "column": 16, - "line": 2, + "column": 20, + "line": 1, }, }, "range": Array [ - 26, - 27, + 20, + 21, ], "type": "Punctuator", "value": "{", @@ -121770,17 +130754,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 5, - "line": 3, + "column": 22, + "line": 1, }, "start": Object { - "column": 4, - "line": 3, + "column": 21, + "line": 1, }, }, "range": Array [ - 32, - 33, + 21, + 22, ], "type": "Punctuator", "value": "}", @@ -121788,31 +130772,49 @@ Object { Object { "loc": Object { "end": Object { - "column": 1, - "line": 4, + "column": 23, + "line": 1, }, "start": Object { - "column": 0, - "line": 4, + "column": 22, + "line": 1, }, }, "range": Array [ - 34, - 35, + 22, + 23, ], "type": "Punctuator", - "value": "}", + "value": ";", }, ], "type": "Program", } `; -exports[`javascript fixtures/restParams/error-no-default.src 1`] = ` +exports[`javascript fixtures/restParams/single-rest.src 1`] = ` Object { "body": Array [ Object { "async": false, + "body": Object { + "body": Array [], + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 17, + "line": 1, + }, + }, + "range": Array [ + 17, + 19, + ], + "type": "BlockStatement", + }, "expression": false, "generator": false, "id": Object { @@ -121835,7 +130837,7 @@ Object { }, "loc": Object { "end": Object { - "column": 24, + "column": 19, "line": 1, }, "start": Object { @@ -121844,70 +130846,69 @@ Object { }, }, "params": Array [ - Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 11, - 12, - ], - "type": "Identifier", - }, Object { "argument": Object { "loc": Object { "end": Object { - "column": 18, + "column": 15, "line": 1, }, "start": Object { - "column": 17, + "column": 14, "line": 1, }, }, "name": "b", "range": Array [ - 17, - 18, + 14, + 15, ], "type": "Identifier", }, "loc": Object { "end": Object { - "column": 22, + "column": 15, "line": 1, }, "start": Object { - "column": 14, + "column": 11, "line": 1, }, }, "range": Array [ - 14, - 22, + 11, + 15, ], "type": "RestElement", }, ], "range": Array [ 0, - 24, + 19, ], - "type": "TSDeclareFunction", + "type": "FunctionDeclaration", + }, + Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 19, + "line": 1, + }, + }, + "range": Array [ + 19, + 20, + ], + "type": "EmptyStatement", }, ], "loc": Object { "end": Object { - "column": 24, + "column": 20, "line": 1, }, "start": Object { @@ -121917,7 +130918,7 @@ Object { }, "range": Array [ 0, - 24, + 20, ], "sourceType": "script", "tokens": Array [ @@ -121978,7 +130979,7 @@ Object { Object { "loc": Object { "end": Object { - "column": 12, + "column": 14, "line": 1, }, "start": Object { @@ -121988,43 +130989,7 @@ Object { }, "range": Array [ 11, - 12, - ], - "type": "Identifier", - "value": "a", - }, - Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 12, - "line": 1, - }, - }, - "range": Array [ - 12, - 13, - ], - "type": "Punctuator", - "value": ",", - }, - Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "range": Array [ 14, - 17, ], "type": "Punctuator", "value": "...", @@ -122032,17 +130997,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 18, + "column": 15, "line": 1, }, "start": Object { - "column": 17, + "column": 14, "line": 1, }, }, "range": Array [ - 17, - 18, + 14, + 15, ], "type": "Identifier", "value": "b", @@ -122050,71 +131015,71 @@ Object { Object { "loc": Object { "end": Object { - "column": 20, + "column": 16, "line": 1, }, "start": Object { - "column": 19, + "column": 15, "line": 1, }, }, "range": Array [ - 19, - 20, + 15, + 16, ], "type": "Punctuator", - "value": "=", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 22, + "column": 18, "line": 1, }, "start": Object { - "column": 21, + "column": 17, "line": 1, }, }, "range": Array [ - 21, - 22, + 17, + 18, ], - "type": "Numeric", - "value": "0", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 19, "line": 1, }, "start": Object { - "column": 22, + "column": 18, "line": 1, }, }, "range": Array [ - 22, - 23, + 18, + 19, ], "type": "Punctuator", - "value": ")", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 24, + "column": 20, "line": 1, }, "start": Object { - "column": 23, + "column": 19, "line": 1, }, }, "range": Array [ - 23, - 24, + 19, + 20, ], "type": "Punctuator", "value": ";", @@ -122124,125 +131089,88 @@ Object { } `; -exports[`javascript fixtures/restParams/error-not-last.src 1`] = ` +exports[`javascript fixtures/simple-literals/literal-float.src 1`] = ` Object { "body": Array [ Object { - "async": false, - "expression": false, - "generator": false, - "id": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "name": "f", - "range": Array [ - 9, - 10, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "params": Array [ - Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 11, - 12, - ], - "type": "Identifier", - }, + "declarations": Array [ Object { - "argument": Object { + "id": Object { "loc": Object { "end": Object { - "column": 18, + "column": 7, "line": 1, }, "start": Object { - "column": 17, + "column": 6, "line": 1, }, }, - "name": "b", + "name": "a", "range": Array [ - 17, - 18, + 6, + 7, ], "type": "Identifier", }, - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, + "init": Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, }, + "range": Array [ + 10, + 13, + ], + "raw": "1.5", + "type": "Literal", + "value": 1.5, }, - "range": Array [ - 14, - 18, - ], - "type": "RestElement", - }, - Object { "loc": Object { "end": Object { - "column": 21, + "column": 13, "line": 1, }, "start": Object { - "column": 20, + "column": 6, "line": 1, }, }, - "name": "c", "range": Array [ - 20, - 21, + 6, + 13, ], - "type": "Identifier", + "type": "VariableDeclarator", }, ], + "kind": "const", + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, "range": Array [ 0, - 23, + 14, ], - "type": "TSDeclareFunction", + "type": "VariableDeclaration", }, ], "loc": Object { "end": Object { - "column": 23, - "line": 1, + "column": 0, + "line": 2, }, "start": Object { "column": 0, @@ -122251,14 +131179,14 @@ Object { }, "range": Array [ 0, - 23, + 15, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 8, + "column": 5, "line": 1, }, "start": Object { @@ -122268,187 +131196,305 @@ Object { }, "range": Array [ 0, - 8, + 5, ], "type": "Keyword", - "value": "function", + "value": "const", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 7, "line": 1, }, "start": Object { - "column": 9, + "column": 6, "line": 1, }, }, "range": Array [ - 9, - 10, + 6, + 7, ], "type": "Identifier", - "value": "f", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 9, "line": 1, }, "start": Object { - "column": 10, + "column": 8, "line": 1, }, }, "range": Array [ - 10, - 11, + 8, + 9, ], "type": "Punctuator", - "value": "(", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 13, "line": 1, }, "start": Object { - "column": 11, + "column": 10, "line": 1, }, }, "range": Array [ - 11, - 12, + 10, + 13, ], - "type": "Identifier", - "value": "a", + "type": "Numeric", + "value": "1.5", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 14, "line": 1, }, "start": Object { - "column": 12, + "column": 13, "line": 1, }, }, "range": Array [ - 12, 13, + 14, ], "type": "Punctuator", - "value": ",", + "value": ";", + }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/simple-literals/literal-float-negative.src 1`] = ` +Object { + "body": Array [ + Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", + }, + "init": Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 14, + ], + "raw": "1.5", + "type": "Literal", + "value": 1.5, + }, + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "operator": "-", + "prefix": true, + "range": Array [ + 10, + 14, + ], + "type": "UnaryExpression", + }, + "loc": Object { + "end": Object { + "column": 14, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "range": Array [ + 6, + 14, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "const", + "loc": Object { + "end": Object { + "column": 15, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 15, + ], + "type": "VariableDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 16, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 17, + "column": 5, "line": 1, }, "start": Object { - "column": 14, + "column": 0, "line": 1, }, }, "range": Array [ - 14, - 17, + 0, + 5, ], - "type": "Punctuator", - "value": "...", + "type": "Keyword", + "value": "const", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 7, "line": 1, }, "start": Object { - "column": 17, + "column": 6, "line": 1, }, }, "range": Array [ - 17, - 18, + 6, + 7, ], "type": "Identifier", - "value": "b", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 19, + "column": 9, "line": 1, }, "start": Object { - "column": 18, + "column": 8, "line": 1, }, }, "range": Array [ - 18, - 19, + 8, + 9, ], "type": "Punctuator", - "value": ",", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 21, + "column": 11, "line": 1, }, "start": Object { - "column": 20, + "column": 10, "line": 1, }, }, "range": Array [ - 20, - 21, + 10, + 11, ], - "type": "Identifier", - "value": "c", + "type": "Punctuator", + "value": "-", }, Object { "loc": Object { "end": Object { - "column": 22, + "column": 14, "line": 1, }, "start": Object { - "column": 21, + "column": 11, "line": 1, }, }, "range": Array [ - 21, - 22, + 11, + 14, ], - "type": "Punctuator", - "value": ")", + "type": "Numeric", + "value": "1.5", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 15, "line": 1, }, "start": Object { - "column": 22, + "column": 14, "line": 1, }, }, "range": Array [ - 22, - 23, + 14, + 15, ], "type": "Punctuator", "value": ";", @@ -122458,7 +131504,7 @@ Object { } `; -exports[`javascript fixtures/restParams/func-expression.src 1`] = ` +exports[`javascript fixtures/simple-literals/literal-null.src 1`] = ` Object { "body": Array [ Object { @@ -122467,118 +131513,61 @@ Object { "id": Object { "loc": Object { "end": Object { - "column": 5, + "column": 7, "line": 1, }, "start": Object { - "column": 4, + "column": 6, "line": 1, }, }, - "name": "x", + "name": "a", "range": Array [ - 4, - 5, + 6, + 7, ], "type": "Identifier", }, "init": Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 26, - "line": 1, - }, - "start": Object { - "column": 24, - "line": 1, - }, - }, - "range": Array [ - 24, - 26, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": null, "loc": Object { "end": Object { - "column": 26, + "column": 14, "line": 1, }, "start": Object { - "column": 8, + "column": 10, "line": 1, }, }, - "params": Array [ - Object { - "argument": Object { - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 21, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 21, - 22, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, - }, - "range": Array [ - 18, - 22, - ], - "type": "RestElement", - }, - ], "range": Array [ - 8, - 26, + 10, + 14, ], - "type": "FunctionExpression", + "raw": "null", + "type": "Literal", + "value": null, }, "loc": Object { "end": Object { - "column": 26, + "column": 14, "line": 1, }, "start": Object { - "column": 4, + "column": 6, "line": 1, }, }, "range": Array [ - 4, - 26, + 6, + 14, ], "type": "VariableDeclarator", }, ], - "kind": "var", + "kind": "const", "loc": Object { "end": Object { - "column": 27, + "column": 15, "line": 1, }, "start": Object { @@ -122588,15 +131577,15 @@ Object { }, "range": Array [ 0, - 27, + 15, ], "type": "VariableDeclaration", }, ], "loc": Object { "end": Object { - "column": 27, - "line": 1, + "column": 0, + "line": 2, }, "start": Object { "column": 0, @@ -122605,14 +131594,14 @@ Object { }, "range": Array [ 0, - 27, + 16, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, + "column": 5, "line": 1, }, "start": Object { @@ -122622,43 +131611,43 @@ Object { }, "range": Array [ 0, - 3, + 5, ], "type": "Keyword", - "value": "var", + "value": "const", }, Object { "loc": Object { "end": Object { - "column": 5, + "column": 7, "line": 1, }, "start": Object { - "column": 4, + "column": 6, "line": 1, }, }, "range": Array [ - 4, - 5, + 6, + 7, ], "type": "Identifier", - "value": "x", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 9, "line": 1, }, "start": Object { - "column": 6, + "column": 8, "line": 1, }, }, "range": Array [ - 6, - 7, + 8, + 9, ], "type": "Punctuator", "value": "=", @@ -122666,143 +131655,224 @@ Object { Object { "loc": Object { "end": Object { - "column": 16, + "column": 14, "line": 1, }, "start": Object { - "column": 8, + "column": 10, "line": 1, }, }, "range": Array [ - 8, - 16, + 10, + 14, ], "type": "Keyword", - "value": "function", + "value": "null", }, Object { "loc": Object { "end": Object { - "column": 18, + "column": 15, "line": 1, }, "start": Object { - "column": 17, + "column": 14, "line": 1, }, }, "range": Array [ - 17, - 18, + 14, + 15, ], "type": "Punctuator", - "value": "(", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/simple-literals/literal-number.src 1`] = ` +Object { + "body": Array [ Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "range": Array [ + 10, + 11, + ], + "raw": "1", + "type": "Literal", + "value": 1, + }, + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "range": Array [ + 6, + 11, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "const", "loc": Object { "end": Object { - "column": 21, + "column": 12, "line": 1, }, "start": Object { - "column": 18, + "column": 0, "line": 1, }, }, "range": Array [ - 18, - 21, + 0, + 12, ], - "type": "Punctuator", - "value": "...", + "type": "VariableDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 13, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 22, + "column": 5, "line": 1, }, "start": Object { - "column": 21, + "column": 0, "line": 1, }, }, "range": Array [ - 21, - 22, + 0, + 5, ], - "type": "Identifier", - "value": "a", + "type": "Keyword", + "value": "const", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 7, "line": 1, }, "start": Object { - "column": 22, + "column": 6, "line": 1, }, }, "range": Array [ - 22, - 23, + 6, + 7, ], - "type": "Punctuator", - "value": ")", + "type": "Identifier", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 25, + "column": 9, "line": 1, }, "start": Object { - "column": 24, + "column": 8, "line": 1, }, }, "range": Array [ - 24, - 25, + 8, + 9, ], "type": "Punctuator", - "value": "{", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 26, + "column": 11, "line": 1, }, "start": Object { - "column": 25, + "column": 10, "line": 1, }, }, "range": Array [ - 25, - 26, + 10, + 11, ], - "type": "Punctuator", - "value": "}", + "type": "Numeric", + "value": "1", }, Object { "loc": Object { "end": Object { - "column": 27, + "column": 12, "line": 1, }, "start": Object { - "column": 26, + "column": 11, "line": 1, }, }, "range": Array [ - 26, - 27, + 11, + 12, ], "type": "Punctuator", "value": ";", @@ -122812,7 +131882,7 @@ Object { } `; -exports[`javascript fixtures/restParams/func-expression-multi.src 1`] = ` +exports[`javascript fixtures/simple-literals/literal-number-negative.src 1`] = ` Object { "body": Array [ Object { @@ -122821,136 +131891,80 @@ Object { "id": Object { "loc": Object { "end": Object { - "column": 5, + "column": 7, "line": 1, }, "start": Object { - "column": 4, + "column": 6, "line": 1, }, }, - "name": "x", + "name": "a", "range": Array [ - 4, - 5, + 6, + 7, ], "type": "Identifier", }, "init": Object { - "async": false, - "body": Object { - "body": Array [], + "argument": Object { "loc": Object { "end": Object { - "column": 28, + "column": 12, "line": 1, }, "start": Object { - "column": 26, + "column": 11, "line": 1, }, }, "range": Array [ - 26, - 28, + 11, + 12, ], - "type": "BlockStatement", + "raw": "1", + "type": "Literal", + "value": 1, }, - "expression": false, - "generator": false, - "id": null, "loc": Object { "end": Object { - "column": 28, + "column": 12, "line": 1, }, "start": Object { - "column": 8, + "column": 10, "line": 1, }, }, - "params": Array [ - Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 17, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 17, - 18, - ], - "type": "Identifier", - }, - Object { - "argument": Object { - "loc": Object { - "end": Object { - "column": 24, - "line": 1, - }, - "start": Object { - "column": 23, - "line": 1, - }, - }, - "name": "b", - "range": Array [ - 23, - 24, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 24, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, - }, - "range": Array [ - 20, - 24, - ], - "type": "RestElement", - }, - ], + "operator": "-", + "prefix": true, "range": Array [ - 8, - 28, + 10, + 12, ], - "type": "FunctionExpression", + "type": "UnaryExpression", }, "loc": Object { "end": Object { - "column": 28, + "column": 12, "line": 1, }, "start": Object { - "column": 4, + "column": 6, "line": 1, }, }, "range": Array [ - 4, - 28, + 6, + 12, ], "type": "VariableDeclarator", }, ], - "kind": "var", + "kind": "const", "loc": Object { "end": Object { - "column": 29, + "column": 13, "line": 1, }, "start": Object { @@ -122960,15 +131974,15 @@ Object { }, "range": Array [ 0, - 29, + 13, ], "type": "VariableDeclaration", }, ], "loc": Object { "end": Object { - "column": 29, - "line": 1, + "column": 0, + "line": 2, }, "start": Object { "column": 0, @@ -122977,14 +131991,14 @@ Object { }, "range": Array [ 0, - 29, + 14, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 3, + "column": 5, "line": 1, }, "start": Object { @@ -122994,28 +132008,10 @@ Object { }, "range": Array [ 0, - 3, - ], - "type": "Keyword", - "value": "var", - }, - Object { - "loc": Object { - "end": Object { - "column": 5, - "line": 1, - }, - "start": Object { - "column": 4, - "line": 1, - }, - }, - "range": Array [ - 4, 5, ], - "type": "Identifier", - "value": "x", + "type": "Keyword", + "value": "const", }, Object { "loc": Object { @@ -123032,185 +132028,77 @@ Object { 6, 7, ], - "type": "Punctuator", - "value": "=", - }, - Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 8, - "line": 1, - }, - }, - "range": Array [ - 8, - 16, - ], - "type": "Keyword", - "value": "function", - }, - Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "range": Array [ - 16, - 17, - ], - "type": "Punctuator", - "value": "(", - }, - Object { - "loc": Object { - "end": Object { - "column": 18, - "line": 1, - }, - "start": Object { - "column": 17, - "line": 1, - }, - }, - "range": Array [ - 17, - 18, - ], "type": "Identifier", "value": "a", }, Object { "loc": Object { "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, - }, - "range": Array [ - 18, - 19, - ], - "type": "Punctuator", - "value": ",", - }, - Object { - "loc": Object { - "end": Object { - "column": 23, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, - }, - "range": Array [ - 20, - 23, - ], - "type": "Punctuator", - "value": "...", - }, - Object { - "loc": Object { - "end": Object { - "column": 24, - "line": 1, - }, - "start": Object { - "column": 23, - "line": 1, - }, - }, - "range": Array [ - 23, - 24, - ], - "type": "Identifier", - "value": "b", - }, - Object { - "loc": Object { - "end": Object { - "column": 25, + "column": 9, "line": 1, }, "start": Object { - "column": 24, + "column": 8, "line": 1, }, }, "range": Array [ - 24, - 25, + 8, + 9, ], "type": "Punctuator", - "value": ")", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 27, + "column": 11, "line": 1, }, "start": Object { - "column": 26, + "column": 10, "line": 1, }, }, "range": Array [ - 26, - 27, + 10, + 11, ], "type": "Punctuator", - "value": "{", + "value": "-", }, Object { "loc": Object { "end": Object { - "column": 28, + "column": 12, "line": 1, }, "start": Object { - "column": 27, + "column": 11, "line": 1, }, }, "range": Array [ - 27, - 28, + 11, + 12, ], - "type": "Punctuator", - "value": "}", + "type": "Numeric", + "value": "1", }, Object { "loc": Object { "end": Object { - "column": 29, + "column": 13, "line": 1, }, "start": Object { - "column": 28, + "column": 12, "line": 1, }, }, "range": Array [ - 28, - 29, + 12, + 13, ], "type": "Punctuator", "value": ";", @@ -123220,182 +132108,88 @@ Object { } `; -exports[`javascript fixtures/restParams/invalid-rest-param.src 1`] = ` +exports[`javascript fixtures/simple-literals/literal-string.src 1`] = ` Object { "body": Array [ Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 20, - "line": 1, - }, - }, - "range": Array [ - 20, - 22, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "name": "x", - "range": Array [ - 9, - 10, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 22, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "params": Array [ + "declarations": Array [ Object { - "argument": Object { + "id": Object { "loc": Object { "end": Object { - "column": 19, + "column": 7, "line": 1, }, "start": Object { - "column": 14, + "column": 6, "line": 1, }, }, - "properties": Array [ - Object { - "computed": false, - "key": Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 16, - 17, - ], - "type": "Identifier", - }, - "kind": "init", - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "method": false, - "range": Array [ - 16, - 17, - ], - "shorthand": true, - "type": "Property", - "value": Object { - "loc": Object { - "end": Object { - "column": 17, - "line": 1, - }, - "start": Object { - "column": 16, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 16, - 17, - ], - "type": "Identifier", - }, - }, + "name": "a", + "range": Array [ + 6, + 7, ], + "type": "Identifier", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 13, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, "range": Array [ - 14, - 19, + 10, + 13, ], - "type": "ObjectPattern", + "raw": "'a'", + "type": "Literal", + "value": "a", }, "loc": Object { "end": Object { - "column": 19, + "column": 13, "line": 1, }, "start": Object { - "column": 11, + "column": 6, "line": 1, }, }, "range": Array [ - 11, - 19, + 6, + 13, ], - "type": "RestElement", + "type": "VariableDeclarator", }, ], - "range": Array [ - 0, - 22, - ], - "type": "FunctionDeclaration", - }, - Object { + "kind": "const", "loc": Object { "end": Object { - "column": 23, + "column": 14, "line": 1, }, "start": Object { - "column": 22, + "column": 0, "line": 1, }, }, "range": Array [ - 22, - 23, + 0, + 14, ], - "type": "EmptyStatement", + "type": "VariableDeclaration", }, ], "loc": Object { "end": Object { - "column": 23, - "line": 1, + "column": 0, + "line": 2, }, "start": Object { "column": 0, @@ -123404,14 +132198,14 @@ Object { }, "range": Array [ 0, - 23, + 15, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 8, + "column": 5, "line": 1, }, "start": Object { @@ -123421,187 +132215,267 @@ Object { }, "range": Array [ 0, - 8, + 5, ], "type": "Keyword", - "value": "function", + "value": "const", }, Object { "loc": Object { "end": Object { - "column": 10, + "column": 7, "line": 1, }, "start": Object { - "column": 9, + "column": 6, "line": 1, }, }, "range": Array [ - 9, - 10, + 6, + 7, ], "type": "Identifier", - "value": "x", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 9, "line": 1, }, "start": Object { - "column": 10, + "column": 8, "line": 1, }, }, "range": Array [ - 10, - 11, + 8, + 9, ], "type": "Punctuator", - "value": "(", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 13, "line": 1, }, "start": Object { - "column": 11, + "column": 10, "line": 1, }, }, "range": Array [ - 11, - 14, + 10, + 13, ], - "type": "Punctuator", - "value": "...", + "type": "String", + "value": "'a'", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 14, "line": 1, }, "start": Object { - "column": 14, + "column": 13, "line": 1, }, }, "range": Array [ + 13, 14, - 15, ], "type": "Punctuator", - "value": "{", + "value": ";", }, + ], + "type": "Program", +} +`; + +exports[`javascript fixtures/simple-literals/literal-undefined.src 1`] = ` +Object { + "body": Array [ Object { + "declarations": Array [ + Object { + "id": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 6, + 7, + ], + "type": "Identifier", + }, + "init": Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "name": "undefined", + "range": Array [ + 10, + 19, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 19, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "range": Array [ + 6, + 19, + ], + "type": "VariableDeclarator", + }, + ], + "kind": "const", "loc": Object { "end": Object { - "column": 17, + "column": 20, "line": 1, }, "start": Object { - "column": 16, + "column": 0, "line": 1, }, }, "range": Array [ - 16, - 17, + 0, + 20, ], - "type": "Identifier", - "value": "a", + "type": "VariableDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 2, + }, + "start": Object { + "column": 0, + "line": 1, }, + }, + "range": Array [ + 0, + 21, + ], + "sourceType": "script", + "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 19, + "column": 5, "line": 1, }, "start": Object { - "column": 18, + "column": 0, "line": 1, }, }, "range": Array [ - 18, - 19, + 0, + 5, ], - "type": "Punctuator", - "value": "}", + "type": "Keyword", + "value": "const", }, Object { "loc": Object { "end": Object { - "column": 20, + "column": 7, "line": 1, }, "start": Object { - "column": 19, + "column": 6, "line": 1, }, }, "range": Array [ - 19, - 20, + 6, + 7, ], - "type": "Punctuator", - "value": ")", + "type": "Identifier", + "value": "a", }, Object { "loc": Object { "end": Object { - "column": 21, + "column": 9, "line": 1, }, "start": Object { - "column": 20, + "column": 8, "line": 1, }, }, "range": Array [ - 20, - 21, + 8, + 9, ], "type": "Punctuator", - "value": "{", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 22, + "column": 19, "line": 1, }, "start": Object { - "column": 21, + "column": 10, "line": 1, }, }, "range": Array [ - 21, - 22, + 10, + 19, ], - "type": "Punctuator", - "value": "}", + "type": "Keyword", + "value": "undefined", }, Object { "loc": Object { "end": Object { - "column": 23, + "column": 20, "line": 1, }, "start": Object { - "column": 22, + "column": 19, "line": 1, }, }, "range": Array [ - 22, - 23, + 19, + 20, ], "type": "Punctuator", "value": ";", @@ -123611,124 +132485,718 @@ Object { } `; -exports[`javascript fixtures/restParams/single-rest.src 1`] = ` +exports[`javascript fixtures/spread/complex-spread.src 1`] = ` Object { "body": Array [ Object { - "async": false, - "body": Object { - "body": Array [], - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 17, - "line": 1, + "expression": Object { + "left": Object { + "loc": Object { + "end": Object { + "column": 102, + "line": 1, + }, + "start": Object { + "column": 1, + "line": 1, + }, }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 1, + }, + "start": Object { + "column": 2, + "line": 1, + }, + }, + "name": "x", + "range": Array [ + 2, + 3, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 2, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 2, + 22, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 5, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "name": "ka", + "range": Array [ + 7, + 9, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 7, + 9, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 7, + "line": 1, + }, + }, + "name": "ka", + "range": Array [ + 7, + 9, + ], + "type": "Identifier", + }, + }, + Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 14, + "line": 1, + }, + }, + "name": "nested", + "range": Array [ + 14, + 20, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 20, + "line": 1, + }, + "start": Object { + "column": 11, + "line": 1, + }, + }, + "range": Array [ + 11, + 20, + ], + "type": "SpreadElement", + }, + ], + "range": Array [ + 5, + 22, + ], + "type": "ObjectPattern", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, + }, + }, + "name": "y", + "range": Array [ + 24, + 25, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 32, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 24, + 32, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 32, + "line": 1, + }, + "start": Object { + "column": 27, + "line": 1, + }, + }, + "name": "other", + "range": Array [ + 27, + 32, + ], + "type": "Identifier", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 35, + "line": 1, + }, + "start": Object { + "column": 34, + "line": 1, + }, + }, + "name": "f", + "range": Array [ + 34, + 35, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 92, + "line": 1, + }, + "start": Object { + "column": 34, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 34, + 92, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 92, + "line": 1, + }, + "start": Object { + "column": 37, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 40, + "line": 1, + }, + "start": Object { + "column": 39, + "line": 1, + }, + }, + "name": "a", + "range": Array [ + 39, + 40, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 64, + "line": 1, + }, + "start": Object { + "column": 39, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 39, + 64, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "elements": Array [ + Object { + "loc": Object { + "end": Object { + "column": 57, + "line": 1, + }, + "start": Object { + "column": 43, + "line": 1, + }, + }, + "properties": Array [ + Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 55, + "line": 1, + }, + "start": Object { + "column": 48, + "line": 1, + }, + }, + "name": "nested2", + "range": Array [ + 48, + 55, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 55, + "line": 1, + }, + "start": Object { + "column": 45, + "line": 1, + }, + }, + "range": Array [ + 45, + 55, + ], + "type": "SpreadElement", + }, + ], + "range": Array [ + 43, + 57, + ], + "type": "ObjectExpression", + }, + Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 63, + "line": 1, + }, + "start": Object { + "column": 62, + "line": 1, + }, + }, + "name": "y", + "range": Array [ + 62, + 63, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 63, + "line": 1, + }, + "start": Object { + "column": 59, + "line": 1, + }, + }, + "range": Array [ + 59, + 63, + ], + "type": "SpreadElement", + }, + ], + "loc": Object { + "end": Object { + "column": 64, + "line": 1, + }, + "start": Object { + "column": 42, + "line": 1, + }, + }, + "range": Array [ + 42, + 64, + ], + "type": "ArrayPattern", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 67, + "line": 1, + }, + "start": Object { + "column": 66, + "line": 1, + }, + }, + "name": "b", + "range": Array [ + 66, + 67, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 80, + "line": 1, + }, + "start": Object { + "column": 66, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 66, + 80, + ], + "shorthand": false, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 80, + "line": 1, + }, + "start": Object { + "column": 69, + "line": 1, + }, + }, + "properties": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 72, + "line": 1, + }, + "start": Object { + "column": 71, + "line": 1, + }, + }, + "name": "z", + "range": Array [ + 71, + 72, + ], + "type": "Identifier", + }, + "kind": "init", + "loc": Object { + "end": Object { + "column": 72, + "line": 1, + }, + "start": Object { + "column": 71, + "line": 1, + }, + }, + "method": false, + "range": Array [ + 71, + 72, + ], + "shorthand": true, + "type": "Property", + "value": Object { + "loc": Object { + "end": Object { + "column": 72, + "line": 1, + }, + "start": Object { + "column": 71, + "line": 1, + }, + }, + "name": "z", + "range": Array [ + 71, + 72, + ], + "type": "Identifier", + }, + }, + Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 78, + "line": 1, + }, + "start": Object { + "column": 77, + "line": 1, + }, + }, + "name": "c", + "range": Array [ + 77, + 78, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 78, + "line": 1, + }, + "start": Object { + "column": 74, + "line": 1, + }, + }, + "range": Array [ + 74, + 78, + ], + "type": "SpreadElement", + }, + ], + "range": Array [ + 69, + 80, + ], + "type": "ObjectExpression", + }, + }, + Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 90, + "line": 1, + }, + "start": Object { + "column": 85, + "line": 1, + }, + }, + "name": "rest2", + "range": Array [ + 85, + 90, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 90, + "line": 1, + }, + "start": Object { + "column": 82, + "line": 1, + }, + }, + "range": Array [ + 82, + 90, + ], + "type": "SpreadElement", + }, + ], + "range": Array [ + 37, + 92, + ], + "type": "ObjectExpression", + }, + }, + Object { + "argument": Object { + "loc": Object { + "end": Object { + "column": 101, + "line": 1, + }, + "start": Object { + "column": 97, + "line": 1, + }, + }, + "name": "rest", + "range": Array [ + 97, + 101, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 101, + "line": 1, + }, + "start": Object { + "column": 94, + "line": 1, + }, + }, + "range": Array [ + 94, + 101, + ], + "type": "RestElement", + }, + ], + "range": Array [ + 1, + 102, + ], + "type": "ObjectPattern", }, - "range": Array [ - 17, - 19, - ], - "type": "BlockStatement", - }, - "expression": false, - "generator": false, - "id": Object { "loc": Object { "end": Object { - "column": 10, + "column": 112, "line": 1, }, "start": Object { - "column": 9, + "column": 1, "line": 1, }, }, - "name": "f", + "operator": "=", "range": Array [ - 9, - 10, + 1, + 112, ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 0, - "line": 1, - }, - }, - "params": Array [ - Object { - "argument": Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "name": "b", - "range": Array [ - 14, - 15, - ], - "type": "Identifier", - }, + "right": Object { "loc": Object { "end": Object { - "column": 15, + "column": 112, "line": 1, }, "start": Object { - "column": 11, + "column": 105, "line": 1, }, }, + "name": "complex", "range": Array [ - 11, - 15, + 105, + 112, ], - "type": "RestElement", + "type": "Identifier", }, - ], - "range": Array [ - 0, - 19, - ], - "type": "FunctionDeclaration", - }, - Object { + "type": "AssignmentExpression", + }, "loc": Object { "end": Object { - "column": 20, + "column": 114, "line": 1, }, "start": Object { - "column": 19, + "column": 0, "line": 1, }, }, "range": Array [ - 19, - 20, + 0, + 114, ], - "type": "EmptyStatement", + "type": "ExpressionStatement", }, ], "loc": Object { "end": Object { - "column": 20, - "line": 1, + "column": 0, + "line": 2, }, "start": Object { "column": 0, @@ -123737,14 +133205,14 @@ Object { }, "range": Array [ 0, - 20, + 115, ], "sourceType": "script", "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 8, + "column": 1, "line": 1, }, "start": Object { @@ -123754,43 +133222,7 @@ Object { }, "range": Array [ 0, - 8, - ], - "type": "Keyword", - "value": "function", - }, - Object { - "loc": Object { - "end": Object { - "column": 10, - "line": 1, - }, - "start": Object { - "column": 9, - "line": 1, - }, - }, - "range": Array [ - 9, - 10, - ], - "type": "Identifier", - "value": "f", - }, - Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "range": Array [ - 10, - 11, + 1, ], "type": "Punctuator", "value": "(", @@ -123798,71 +133230,17 @@ Object { Object { "loc": Object { "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "range": Array [ - 11, - 14, - ], - "type": "Punctuator", - "value": "...", - }, - Object { - "loc": Object { - "end": Object { - "column": 15, - "line": 1, - }, - "start": Object { - "column": 14, - "line": 1, - }, - }, - "range": Array [ - 14, - 15, - ], - "type": "Identifier", - "value": "b", - }, - Object { - "loc": Object { - "end": Object { - "column": 16, - "line": 1, - }, - "start": Object { - "column": 15, - "line": 1, - }, - }, - "range": Array [ - 15, - 16, - ], - "type": "Punctuator", - "value": ")", - }, - Object { - "loc": Object { - "end": Object { - "column": 18, + "column": 2, "line": 1, }, "start": Object { - "column": 17, + "column": 1, "line": 1, }, }, "range": Array [ - 17, - 18, + 1, + 2, ], "type": "Punctuator", "value": "{", @@ -123870,1431 +133248,863 @@ Object { Object { "loc": Object { "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 18, - "line": 1, - }, - }, - "range": Array [ - 18, - 19, - ], - "type": "Punctuator", - "value": "}", - }, - Object { - "loc": Object { - "end": Object { - "column": 20, + "column": 3, "line": 1, }, "start": Object { - "column": 19, + "column": 2, "line": 1, }, }, "range": Array [ - 19, - 20, - ], - "type": "Punctuator", - "value": ";", - }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/simple-literals/literal-float.src 1`] = ` -Object { - "body": Array [ - Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 6, - 7, - ], - "type": "Identifier", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "range": Array [ - 10, - 13, - ], - "raw": "1.5", - "type": "Literal", - "value": 1.5, - }, - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "range": Array [ - 6, - 13, - ], - "type": "VariableDeclarator", - }, + 2, + 3, ], - "kind": "const", + "type": "Identifier", + "value": "x", + }, + Object { "loc": Object { "end": Object { - "column": 14, + "column": 4, "line": 1, }, "start": Object { - "column": 0, + "column": 3, "line": 1, }, }, "range": Array [ - 0, - 14, + 3, + 4, ], - "type": "VariableDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Punctuator", + "value": ":", }, - }, - "range": Array [ - 0, - 15, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 6, "line": 1, }, "start": Object { - "column": 0, + "column": 5, "line": 1, }, }, "range": Array [ - 0, 5, + 6, ], - "type": "Keyword", - "value": "const", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 9, "line": 1, }, "start": Object { - "column": 6, + "column": 7, "line": 1, }, }, "range": Array [ - 6, 7, + 9, ], "type": "Identifier", - "value": "a", + "value": "ka", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 10, "line": 1, }, "start": Object { - "column": 8, + "column": 9, "line": 1, }, }, "range": Array [ - 8, 9, + 10, ], "type": "Punctuator", - "value": "=", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 14, "line": 1, }, "start": Object { - "column": 10, + "column": 11, "line": 1, }, }, "range": Array [ - 10, - 13, + 11, + 14, ], - "type": "Numeric", - "value": "1.5", + "type": "Punctuator", + "value": "...", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 20, "line": 1, }, "start": Object { - "column": 13, + "column": 14, "line": 1, }, }, "range": Array [ - 13, 14, + 20, ], - "type": "Punctuator", - "value": ";", + "type": "Identifier", + "value": "nested", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/simple-literals/literal-float-negative.src 1`] = ` -Object { - "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 6, - 7, - ], - "type": "Identifier", - }, - "init": Object { - "argument": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "range": Array [ - 11, - 14, - ], - "raw": "1.5", - "type": "Literal", - "value": 1.5, - }, - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "operator": "-", - "prefix": true, - "range": Array [ - 10, - 14, - ], - "type": "UnaryExpression", - }, - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "range": Array [ - 6, - 14, - ], - "type": "VariableDeclarator", + "loc": Object { + "end": Object { + "column": 22, + "line": 1, + }, + "start": Object { + "column": 21, + "line": 1, }, + }, + "range": Array [ + 21, + 22, ], - "kind": "const", + "type": "Punctuator", + "value": "}", + }, + Object { "loc": Object { "end": Object { - "column": 15, + "column": 23, "line": 1, }, "start": Object { - "column": 0, + "column": 22, "line": 1, }, }, "range": Array [ - 0, - 15, + 22, + 23, ], - "type": "VariableDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, + "type": "Punctuator", + "value": ",", }, - "start": Object { - "column": 0, - "line": 1, + Object { + "loc": Object { + "end": Object { + "column": 25, + "line": 1, + }, + "start": Object { + "column": 24, + "line": 1, + }, + }, + "range": Array [ + 24, + 25, + ], + "type": "Identifier", + "value": "y", }, - }, - "range": Array [ - 0, - 16, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 26, "line": 1, }, "start": Object { - "column": 0, + "column": 25, "line": 1, }, }, "range": Array [ - 0, - 5, + 25, + 26, ], - "type": "Keyword", - "value": "const", + "type": "Punctuator", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 32, "line": 1, }, "start": Object { - "column": 6, + "column": 27, "line": 1, }, }, "range": Array [ - 6, - 7, + 27, + 32, ], "type": "Identifier", - "value": "a", + "value": "other", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 33, "line": 1, }, "start": Object { - "column": 8, + "column": 32, "line": 1, }, }, "range": Array [ - 8, - 9, + 32, + 33, ], "type": "Punctuator", - "value": "=", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 35, "line": 1, }, "start": Object { - "column": 10, + "column": 34, "line": 1, }, }, "range": Array [ - 10, - 11, + 34, + 35, ], - "type": "Punctuator", - "value": "-", + "type": "Identifier", + "value": "f", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 36, "line": 1, }, "start": Object { - "column": 11, + "column": 35, "line": 1, }, }, "range": Array [ - 11, - 14, + 35, + 36, ], - "type": "Numeric", - "value": "1.5", + "type": "Punctuator", + "value": ":", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 38, "line": 1, }, "start": Object { - "column": 14, + "column": 37, "line": 1, }, }, "range": Array [ - 14, - 15, + 37, + 38, ], "type": "Punctuator", - "value": ";", + "value": "{", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/simple-literals/literal-null.src 1`] = ` -Object { - "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 6, - 7, - ], - "type": "Identifier", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "range": Array [ - 10, - 14, - ], - "raw": "null", - "type": "Literal", - "value": null, - }, - "loc": Object { - "end": Object { - "column": 14, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "range": Array [ - 6, - 14, - ], - "type": "VariableDeclarator", + "loc": Object { + "end": Object { + "column": 40, + "line": 1, + }, + "start": Object { + "column": 39, + "line": 1, }, + }, + "range": Array [ + 39, + 40, ], - "kind": "const", + "type": "Identifier", + "value": "a", + }, + Object { "loc": Object { "end": Object { - "column": 15, + "column": 41, "line": 1, }, "start": Object { - "column": 0, + "column": 40, "line": 1, }, }, "range": Array [ - 0, - 15, + 40, + 41, ], - "type": "VariableDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Punctuator", + "value": ":", }, - }, - "range": Array [ - 0, - 16, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 43, "line": 1, }, "start": Object { - "column": 0, + "column": 42, "line": 1, }, }, "range": Array [ - 0, - 5, + 42, + 43, ], - "type": "Keyword", - "value": "const", + "type": "Punctuator", + "value": "[", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 44, "line": 1, }, "start": Object { - "column": 6, + "column": 43, "line": 1, }, }, "range": Array [ - 6, - 7, + 43, + 44, ], - "type": "Identifier", - "value": "a", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 48, "line": 1, }, "start": Object { - "column": 8, + "column": 45, "line": 1, }, }, "range": Array [ - 8, - 9, + 45, + 48, ], "type": "Punctuator", - "value": "=", + "value": "...", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 55, "line": 1, }, "start": Object { - "column": 10, + "column": 48, "line": 1, }, }, "range": Array [ - 10, - 14, + 48, + 55, ], - "type": "Keyword", - "value": "null", + "type": "Identifier", + "value": "nested2", }, Object { "loc": Object { "end": Object { - "column": 15, + "column": 57, "line": 1, }, "start": Object { - "column": 14, + "column": 56, "line": 1, }, }, "range": Array [ - 14, - 15, + 56, + 57, ], "type": "Punctuator", - "value": ";", + "value": "}", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/simple-literals/literal-number.src 1`] = ` -Object { - "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 6, - 7, - ], - "type": "Identifier", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "range": Array [ - 10, - 11, - ], - "raw": "1", - "type": "Literal", - "value": 1, - }, - "loc": Object { - "end": Object { - "column": 11, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "range": Array [ - 6, - 11, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "const", "loc": Object { "end": Object { - "column": 12, + "column": 58, "line": 1, }, "start": Object { - "column": 0, + "column": 57, "line": 1, }, }, "range": Array [ - 0, - 12, + 57, + 58, ], - "type": "VariableDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Punctuator", + "value": ",", }, - }, - "range": Array [ - 0, - 13, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 62, "line": 1, }, "start": Object { - "column": 0, + "column": 59, "line": 1, }, }, "range": Array [ - 0, - 5, + 59, + 62, ], - "type": "Keyword", - "value": "const", + "type": "Punctuator", + "value": "...", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 63, "line": 1, }, "start": Object { - "column": 6, + "column": 62, "line": 1, }, }, "range": Array [ - 6, - 7, + 62, + 63, ], "type": "Identifier", - "value": "a", + "value": "y", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 64, "line": 1, }, "start": Object { - "column": 8, + "column": 63, "line": 1, }, }, "range": Array [ - 8, - 9, + 63, + 64, ], "type": "Punctuator", - "value": "=", + "value": "]", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 65, "line": 1, }, "start": Object { - "column": 10, + "column": 64, "line": 1, }, }, "range": Array [ - 10, - 11, + 64, + 65, ], - "type": "Numeric", - "value": "1", + "type": "Punctuator", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 67, "line": 1, }, "start": Object { - "column": 11, + "column": 66, "line": 1, }, }, "range": Array [ - 11, - 12, + 66, + 67, ], - "type": "Punctuator", - "value": ";", + "type": "Identifier", + "value": "b", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/simple-literals/literal-number-negative.src 1`] = ` -Object { - "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 6, - 7, - ], - "type": "Identifier", - }, - "init": Object { - "argument": Object { - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 11, - "line": 1, - }, - }, - "range": Array [ - 11, - 12, - ], - "raw": "1", - "type": "Literal", - "value": 1, - }, - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "operator": "-", - "prefix": true, - "range": Array [ - 10, - 12, - ], - "type": "UnaryExpression", - }, - "loc": Object { - "end": Object { - "column": 12, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "range": Array [ - 6, - 12, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "const", "loc": Object { "end": Object { - "column": 13, + "column": 68, "line": 1, }, "start": Object { - "column": 0, + "column": 67, "line": 1, }, }, "range": Array [ - 0, - 13, + 67, + 68, ], - "type": "VariableDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Punctuator", + "value": ":", }, - }, - "range": Array [ - 0, - 14, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 70, "line": 1, }, "start": Object { - "column": 0, + "column": 69, "line": 1, }, }, "range": Array [ - 0, - 5, + 69, + 70, ], - "type": "Keyword", - "value": "const", + "type": "Punctuator", + "value": "{", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 72, "line": 1, }, "start": Object { - "column": 6, + "column": 71, "line": 1, }, }, "range": Array [ - 6, - 7, + 71, + 72, ], "type": "Identifier", - "value": "a", + "value": "z", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 73, "line": 1, }, "start": Object { - "column": 8, + "column": 72, "line": 1, }, }, "range": Array [ - 8, - 9, + 72, + 73, ], "type": "Punctuator", - "value": "=", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 11, + "column": 77, "line": 1, }, "start": Object { - "column": 10, + "column": 74, "line": 1, }, }, "range": Array [ - 10, - 11, + 74, + 77, ], "type": "Punctuator", - "value": "-", + "value": "...", }, Object { "loc": Object { "end": Object { - "column": 12, + "column": 78, "line": 1, }, "start": Object { - "column": 11, + "column": 77, "line": 1, }, }, "range": Array [ - 11, - 12, + 77, + 78, ], - "type": "Numeric", - "value": "1", + "type": "Identifier", + "value": "c", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 80, "line": 1, }, "start": Object { - "column": 12, + "column": 79, "line": 1, }, }, "range": Array [ - 12, - 13, + 79, + 80, ], "type": "Punctuator", - "value": ";", + "value": "}", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/simple-literals/literal-string.src 1`] = ` -Object { - "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 6, - 7, - ], - "type": "Identifier", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "range": Array [ - 10, - 13, - ], - "raw": "'a'", - "type": "Literal", - "value": "a", - }, - "loc": Object { - "end": Object { - "column": 13, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "range": Array [ - 6, - 13, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "const", "loc": Object { "end": Object { - "column": 14, + "column": 81, "line": 1, }, "start": Object { - "column": 0, + "column": 80, "line": 1, }, }, "range": Array [ - 0, - 14, + 80, + 81, ], - "type": "VariableDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Punctuator", + "value": ",", }, - }, - "range": Array [ - 0, - 15, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 85, "line": 1, }, "start": Object { - "column": 0, + "column": 82, "line": 1, }, }, "range": Array [ - 0, - 5, + 82, + 85, ], - "type": "Keyword", - "value": "const", + "type": "Punctuator", + "value": "...", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 90, "line": 1, }, "start": Object { - "column": 6, + "column": 85, "line": 1, }, }, "range": Array [ - 6, - 7, + 85, + 90, ], "type": "Identifier", - "value": "a", + "value": "rest2", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 92, "line": 1, }, "start": Object { - "column": 8, + "column": 91, "line": 1, }, }, "range": Array [ - 8, - 9, + 91, + 92, ], "type": "Punctuator", - "value": "=", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 13, + "column": 93, "line": 1, }, "start": Object { - "column": 10, + "column": 92, "line": 1, }, }, "range": Array [ - 10, - 13, + 92, + 93, ], - "type": "String", - "value": "'a'", + "type": "Punctuator", + "value": ",", }, Object { "loc": Object { "end": Object { - "column": 14, + "column": 97, "line": 1, }, "start": Object { - "column": 13, + "column": 94, "line": 1, }, }, "range": Array [ - 13, - 14, + 94, + 97, ], "type": "Punctuator", - "value": ";", + "value": "...", }, - ], - "type": "Program", -} -`; - -exports[`javascript fixtures/simple-literals/literal-undefined.src 1`] = ` -Object { - "body": Array [ Object { - "declarations": Array [ - Object { - "id": Object { - "loc": Object { - "end": Object { - "column": 7, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "name": "a", - "range": Array [ - 6, - 7, - ], - "type": "Identifier", - }, - "init": Object { - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 10, - "line": 1, - }, - }, - "name": "undefined", - "range": Array [ - 10, - 19, - ], - "type": "Identifier", - }, - "loc": Object { - "end": Object { - "column": 19, - "line": 1, - }, - "start": Object { - "column": 6, - "line": 1, - }, - }, - "range": Array [ - 6, - 19, - ], - "type": "VariableDeclarator", - }, - ], - "kind": "const", "loc": Object { "end": Object { - "column": 20, + "column": 101, "line": 1, }, "start": Object { - "column": 0, + "column": 97, "line": 1, }, }, "range": Array [ - 0, - 20, + 97, + 101, ], - "type": "VariableDeclaration", - }, - ], - "loc": Object { - "end": Object { - "column": 0, - "line": 2, - }, - "start": Object { - "column": 0, - "line": 1, + "type": "Identifier", + "value": "rest", }, - }, - "range": Array [ - 0, - 21, - ], - "sourceType": "script", - "tokens": Array [ Object { "loc": Object { "end": Object { - "column": 5, + "column": 102, "line": 1, }, "start": Object { - "column": 0, + "column": 101, "line": 1, }, }, "range": Array [ - 0, - 5, + 101, + 102, ], - "type": "Keyword", - "value": "const", + "type": "Punctuator", + "value": "}", }, Object { "loc": Object { "end": Object { - "column": 7, + "column": 104, "line": 1, }, "start": Object { - "column": 6, + "column": 103, "line": 1, }, }, "range": Array [ - 6, - 7, + 103, + 104, ], - "type": "Identifier", - "value": "a", + "type": "Punctuator", + "value": "=", }, Object { "loc": Object { "end": Object { - "column": 9, + "column": 112, "line": 1, }, "start": Object { - "column": 8, + "column": 105, "line": 1, }, }, "range": Array [ - 8, - 9, + 105, + 112, ], - "type": "Punctuator", - "value": "=", + "type": "Identifier", + "value": "complex", }, Object { "loc": Object { "end": Object { - "column": 19, + "column": 113, "line": 1, }, "start": Object { - "column": 10, + "column": 112, "line": 1, }, }, "range": Array [ - 10, - 19, + 112, + 113, ], - "type": "Keyword", - "value": "undefined", + "type": "Punctuator", + "value": ")", }, Object { "loc": Object { "end": Object { - "column": 20, + "column": 114, "line": 1, }, "start": Object { - "column": 19, + "column": 113, "line": 1, }, }, "range": Array [ - 19, - 20, + 113, + 114, ], "type": "Punctuator", "value": ";", diff --git a/tests/lib/__snapshots__/semantic-diagnostics-enabled.ts.snap b/tests/lib/__snapshots__/semantic-diagnostics-enabled.ts.snap index 0597717..b55b744 100644 --- a/tests/lib/__snapshots__/semantic-diagnostics-enabled.ts.snap +++ b/tests/lib/__snapshots__/semantic-diagnostics-enabled.ts.snap @@ -246,6 +246,8 @@ exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" e exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/javascript/arrowFunctions/single-param-return-identifier.src.js.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; +exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/javascript/basics/and-operator-array-object.src.js.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; + exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/javascript/basics/delete-expression.src.js.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/javascript/basics/do-while-statements.src.js.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; @@ -258,6 +260,8 @@ exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" e exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/javascript/basics/new-without-parens.src.js.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; +exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/javascript/basics/or-operator-array-object.src.js.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; + exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/javascript/basics/typeof-expression.src.js.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/javascript/basics/update-expression.src.js.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; @@ -291,6 +295,16 @@ exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" e exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/javascript/blockBindings/let-in-switchcase.src.js.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; +exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/javascript/callExpression/call-expression-with-array.src.js.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; + +exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/javascript/callExpression/call-expression-with-object.src.js.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; + +exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/javascript/callExpression/mixed-expression.src.js.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; + +exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/javascript/callExpression/new-expression-with-array.src.js.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; + +exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/javascript/callExpression/new-expression-with-object.src.js.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; + exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/javascript/classes/class-accessor-properties.src.js.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/javascript/classes/class-computed-static-method.src.js.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; @@ -396,6 +410,10 @@ exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" e exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/javascript/destructuring/array-var-undefined.src.js.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; +exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/javascript/destructuring/call-expression-destruction-array.src.js.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; + +exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/javascript/destructuring/call-expression-destruction-object.src.js.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; + exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/javascript/destructuring/class-constructor-params-array.src.js.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/javascript/destructuring/class-constructor-params-defaults-array.src.js.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; @@ -663,6 +681,8 @@ exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" e exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/javascript/forIn/for-in-with-milti-asigment.src.js.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; +exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/javascript/forIn/for-in-with-rest.src.js.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; + exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/javascript/forIn/for-in-with-var.src.js.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/javascript/forOf/for-of-array.src.js.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; @@ -682,6 +702,8 @@ Object { } `; +exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/javascript/forOf/for-of-with-rest.src.js.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; + exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/javascript/forOf/for-of-with-var-and-braces.src.js.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/javascript/forOf/for-of-with-var-and-no-braces.src.js.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; @@ -1181,6 +1203,8 @@ exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" e exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/javascript/simple-literals/literal-undefined.src.js.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; +exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/javascript/spread/complex-spread.src.js.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; + exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/javascript/spread/error-invalid-if.src.js.src 1`] = ` Object { "column": 6, @@ -1884,6 +1908,8 @@ exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" e exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/typescript/basics/class-with-private-parameter-properties.src.ts.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; +exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/typescript/basics/class-with-property-values.src.ts.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; + exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/typescript/basics/class-with-protected-parameter-properties.src.ts.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; exports[`Parse all fixtures with "errorOnTypeScriptSyntacticAndSemanticIssues" enabled fixtures/typescript/basics/class-with-public-parameter-properties.src.ts.src 1`] = `"TEST OUTPUT: No semantic or syntactic issues found"`; diff --git a/tests/lib/__snapshots__/typescript.ts.snap b/tests/lib/__snapshots__/typescript.ts.snap index fa037c8..c3aff24 100644 --- a/tests/lib/__snapshots__/typescript.ts.snap +++ b/tests/lib/__snapshots__/typescript.ts.snap @@ -18913,6 +18913,1140 @@ Object { } `; +exports[`typescript fixtures/basics/class-with-property-values.src 1`] = ` +Object { + "body": Array [ + Object { + "body": Object { + "body": Array [ + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 2, + }, + "start": Object { + "column": 2, + "line": 2, + }, + }, + "name": "a", + "range": Array [ + 14, + 15, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 8, + "line": 2, + }, + "start": Object { + "column": 2, + "line": 2, + }, + }, + "range": Array [ + 14, + 20, + ], + "static": false, + "type": "ClassProperty", + "value": Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 2, + }, + "start": Object { + "column": 6, + "line": 2, + }, + }, + "range": Array [ + 18, + 19, + ], + "raw": "2", + "type": "Literal", + "value": 2, + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 3, + }, + "start": Object { + "column": 2, + "line": 3, + }, + }, + "name": "b", + "range": Array [ + 23, + 24, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 9, + "line": 3, + }, + "start": Object { + "column": 2, + "line": 3, + }, + }, + "range": Array [ + 23, + 30, + ], + "static": false, + "type": "ClassProperty", + "value": Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 3, + }, + "start": Object { + "column": 6, + "line": 3, + }, + }, + "properties": Array [], + "range": Array [ + 27, + 29, + ], + "type": "ObjectExpression", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 4, + }, + "start": Object { + "column": 2, + "line": 4, + }, + }, + "name": "c", + "range": Array [ + 33, + 34, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 9, + "line": 4, + }, + "start": Object { + "column": 2, + "line": 4, + }, + }, + "range": Array [ + 33, + 40, + ], + "static": false, + "type": "ClassProperty", + "value": Object { + "elements": Array [], + "loc": Object { + "end": Object { + "column": 8, + "line": 4, + }, + "start": Object { + "column": 6, + "line": 4, + }, + }, + "range": Array [ + 37, + 39, + ], + "type": "ArrayExpression", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 5, + }, + "start": Object { + "column": 2, + "line": 5, + }, + }, + "name": "d", + "range": Array [ + 43, + 44, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 9, + "line": 5, + }, + "start": Object { + "column": 2, + "line": 5, + }, + }, + "range": Array [ + 43, + 50, + ], + "static": false, + "type": "ClassProperty", + "value": Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 5, + }, + "start": Object { + "column": 6, + "line": 5, + }, + }, + "range": Array [ + 47, + 49, + ], + "raw": "\\"\\"", + "type": "Literal", + "value": "", + }, + }, + Object { + "computed": false, + "key": Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 6, + }, + "start": Object { + "column": 2, + "line": 6, + }, + }, + "name": "e", + "range": Array [ + 53, + 54, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 29, + "line": 6, + }, + "start": Object { + "column": 2, + "line": 6, + }, + }, + "range": Array [ + 53, + 80, + ], + "static": false, + "type": "ClassProperty", + "value": Object { + "arguments": Array [ + Object { + "elements": Array [ + Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 6, + }, + "start": Object { + "column": 17, + "line": 6, + }, + }, + "properties": Array [], + "range": Array [ + 68, + 70, + ], + "type": "ObjectExpression", + }, + Object { + "elements": Array [], + "loc": Object { + "end": Object { + "column": 23, + "line": 6, + }, + "start": Object { + "column": 21, + "line": 6, + }, + }, + "range": Array [ + 72, + 74, + ], + "type": "ArrayExpression", + }, + Object { + "loc": Object { + "end": Object { + "column": 26, + "line": 6, + }, + "start": Object { + "column": 25, + "line": 6, + }, + }, + "range": Array [ + 76, + 77, + ], + "raw": "2", + "type": "Literal", + "value": 2, + }, + ], + "loc": Object { + "end": Object { + "column": 27, + "line": 6, + }, + "start": Object { + "column": 16, + "line": 6, + }, + }, + "range": Array [ + 67, + 78, + ], + "type": "ArrayExpression", + }, + ], + "callee": Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 6, + }, + "start": Object { + "column": 10, + "line": 6, + }, + }, + "name": "Array", + "range": Array [ + 61, + 66, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 28, + "line": 6, + }, + "start": Object { + "column": 6, + "line": 6, + }, + }, + "range": Array [ + 57, + 79, + ], + "type": "NewExpression", + }, + }, + ], + "loc": Object { + "end": Object { + "column": 1, + "line": 7, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "range": Array [ + 10, + 82, + ], + "type": "ClassBody", + }, + "id": Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "name": "Foo", + "range": Array [ + 6, + 9, + ], + "type": "Identifier", + }, + "loc": Object { + "end": Object { + "column": 1, + "line": 7, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 82, + ], + "superClass": null, + "type": "ClassDeclaration", + }, + ], + "loc": Object { + "end": Object { + "column": 0, + "line": 8, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 83, + ], + "sourceType": "script", + "tokens": Array [ + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 1, + }, + "start": Object { + "column": 0, + "line": 1, + }, + }, + "range": Array [ + 0, + 5, + ], + "type": "Keyword", + "value": "class", + }, + Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 1, + }, + "start": Object { + "column": 6, + "line": 1, + }, + }, + "range": Array [ + 6, + 9, + ], + "type": "Identifier", + "value": "Foo", + }, + Object { + "loc": Object { + "end": Object { + "column": 11, + "line": 1, + }, + "start": Object { + "column": 10, + "line": 1, + }, + }, + "range": Array [ + 10, + 11, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 2, + }, + "start": Object { + "column": 2, + "line": 2, + }, + }, + "range": Array [ + 14, + 15, + ], + "type": "Identifier", + "value": "a", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 2, + }, + "start": Object { + "column": 4, + "line": 2, + }, + }, + "range": Array [ + 16, + 17, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 2, + }, + "start": Object { + "column": 6, + "line": 2, + }, + }, + "range": Array [ + 18, + 19, + ], + "type": "Numeric", + "value": "2", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 2, + }, + "start": Object { + "column": 7, + "line": 2, + }, + }, + "range": Array [ + 19, + 20, + ], + "type": "Punctuator", + "value": ";", + }, + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 3, + }, + "start": Object { + "column": 2, + "line": 3, + }, + }, + "range": Array [ + 23, + 24, + ], + "type": "Identifier", + "value": "b", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 3, + }, + "start": Object { + "column": 4, + "line": 3, + }, + }, + "range": Array [ + 25, + 26, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 3, + }, + "start": Object { + "column": 6, + "line": 3, + }, + }, + "range": Array [ + 27, + 28, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 3, + }, + "start": Object { + "column": 7, + "line": 3, + }, + }, + "range": Array [ + 28, + 29, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 3, + }, + "start": Object { + "column": 8, + "line": 3, + }, + }, + "range": Array [ + 29, + 30, + ], + "type": "Punctuator", + "value": ";", + }, + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 4, + }, + "start": Object { + "column": 2, + "line": 4, + }, + }, + "range": Array [ + 33, + 34, + ], + "type": "Identifier", + "value": "c", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 4, + }, + "start": Object { + "column": 4, + "line": 4, + }, + }, + "range": Array [ + 35, + 36, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 7, + "line": 4, + }, + "start": Object { + "column": 6, + "line": 4, + }, + }, + "range": Array [ + 37, + 38, + ], + "type": "Punctuator", + "value": "[", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 4, + }, + "start": Object { + "column": 7, + "line": 4, + }, + }, + "range": Array [ + 38, + 39, + ], + "type": "Punctuator", + "value": "]", + }, + Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 4, + }, + "start": Object { + "column": 8, + "line": 4, + }, + }, + "range": Array [ + 39, + 40, + ], + "type": "Punctuator", + "value": ";", + }, + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 5, + }, + "start": Object { + "column": 2, + "line": 5, + }, + }, + "range": Array [ + 43, + 44, + ], + "type": "Identifier", + "value": "d", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 5, + }, + "start": Object { + "column": 4, + "line": 5, + }, + }, + "range": Array [ + 45, + 46, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 8, + "line": 5, + }, + "start": Object { + "column": 6, + "line": 5, + }, + }, + "range": Array [ + 47, + 49, + ], + "type": "String", + "value": "\\"\\"", + }, + Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 5, + }, + "start": Object { + "column": 8, + "line": 5, + }, + }, + "range": Array [ + 49, + 50, + ], + "type": "Punctuator", + "value": ";", + }, + Object { + "loc": Object { + "end": Object { + "column": 3, + "line": 6, + }, + "start": Object { + "column": 2, + "line": 6, + }, + }, + "range": Array [ + 53, + 54, + ], + "type": "Identifier", + "value": "e", + }, + Object { + "loc": Object { + "end": Object { + "column": 5, + "line": 6, + }, + "start": Object { + "column": 4, + "line": 6, + }, + }, + "range": Array [ + 55, + 56, + ], + "type": "Punctuator", + "value": "=", + }, + Object { + "loc": Object { + "end": Object { + "column": 9, + "line": 6, + }, + "start": Object { + "column": 6, + "line": 6, + }, + }, + "range": Array [ + 57, + 60, + ], + "type": "Keyword", + "value": "new", + }, + Object { + "loc": Object { + "end": Object { + "column": 15, + "line": 6, + }, + "start": Object { + "column": 10, + "line": 6, + }, + }, + "range": Array [ + 61, + 66, + ], + "type": "Identifier", + "value": "Array", + }, + Object { + "loc": Object { + "end": Object { + "column": 16, + "line": 6, + }, + "start": Object { + "column": 15, + "line": 6, + }, + }, + "range": Array [ + 66, + 67, + ], + "type": "Punctuator", + "value": "(", + }, + Object { + "loc": Object { + "end": Object { + "column": 17, + "line": 6, + }, + "start": Object { + "column": 16, + "line": 6, + }, + }, + "range": Array [ + 67, + 68, + ], + "type": "Punctuator", + "value": "[", + }, + Object { + "loc": Object { + "end": Object { + "column": 18, + "line": 6, + }, + "start": Object { + "column": 17, + "line": 6, + }, + }, + "range": Array [ + 68, + 69, + ], + "type": "Punctuator", + "value": "{", + }, + Object { + "loc": Object { + "end": Object { + "column": 19, + "line": 6, + }, + "start": Object { + "column": 18, + "line": 6, + }, + }, + "range": Array [ + 69, + 70, + ], + "type": "Punctuator", + "value": "}", + }, + Object { + "loc": Object { + "end": Object { + "column": 20, + "line": 6, + }, + "start": Object { + "column": 19, + "line": 6, + }, + }, + "range": Array [ + 70, + 71, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 22, + "line": 6, + }, + "start": Object { + "column": 21, + "line": 6, + }, + }, + "range": Array [ + 72, + 73, + ], + "type": "Punctuator", + "value": "[", + }, + Object { + "loc": Object { + "end": Object { + "column": 23, + "line": 6, + }, + "start": Object { + "column": 22, + "line": 6, + }, + }, + "range": Array [ + 73, + 74, + ], + "type": "Punctuator", + "value": "]", + }, + Object { + "loc": Object { + "end": Object { + "column": 24, + "line": 6, + }, + "start": Object { + "column": 23, + "line": 6, + }, + }, + "range": Array [ + 74, + 75, + ], + "type": "Punctuator", + "value": ",", + }, + Object { + "loc": Object { + "end": Object { + "column": 26, + "line": 6, + }, + "start": Object { + "column": 25, + "line": 6, + }, + }, + "range": Array [ + 76, + 77, + ], + "type": "Numeric", + "value": "2", + }, + Object { + "loc": Object { + "end": Object { + "column": 27, + "line": 6, + }, + "start": Object { + "column": 26, + "line": 6, + }, + }, + "range": Array [ + 77, + 78, + ], + "type": "Punctuator", + "value": "]", + }, + Object { + "loc": Object { + "end": Object { + "column": 28, + "line": 6, + }, + "start": Object { + "column": 27, + "line": 6, + }, + }, + "range": Array [ + 78, + 79, + ], + "type": "Punctuator", + "value": ")", + }, + Object { + "loc": Object { + "end": Object { + "column": 29, + "line": 6, + }, + "start": Object { + "column": 28, + "line": 6, + }, + }, + "range": Array [ + 79, + 80, + ], + "type": "Punctuator", + "value": ";", + }, + Object { + "loc": Object { + "end": Object { + "column": 1, + "line": 7, + }, + "start": Object { + "column": 0, + "line": 7, + }, + }, + "range": Array [ + 81, + 82, + ], + "type": "Punctuator", + "value": "}", + }, + ], + "type": "Program", +} +`; + exports[`typescript fixtures/basics/class-with-protected-parameter-properties.src 1`] = ` Object { "body": Array [ From d0e030c1903b9e6239ddf7911e472d8a1450e7fb Mon Sep 17 00:00:00 2001 From: Armano Date: Sat, 12 Jan 2019 05:14:56 +0100 Subject: [PATCH 2/3] feat: change logic of distinguishing patterns from statements --- src/convert.ts | 201 ++++++--------------- tests/ast-alignment/fixtures-to-test.ts | 34 +--- tests/lib/__snapshots__/javascript.ts.snap | 33 ++-- 3 files changed, 69 insertions(+), 199 deletions(-) diff --git a/src/convert.ts b/src/convert.ts index fdb09cd..1e420b9 100644 --- a/src/convert.ts +++ b/src/convert.ts @@ -35,6 +35,7 @@ interface ConvertConfig { node: ts.Node; parent?: ts.Node | null; inTypeMode?: boolean; + allowPattern?: boolean; ast: ts.SourceFile; additionalOptions: ConvertAdditionalOptions; } @@ -83,7 +84,11 @@ export default function convert(config: ConvertConfig): ESTreeNode | null { loc: nodeUtils.getLoc(node, ast) }; - function converter(child?: ts.Node, inTypeMode?: boolean): ESTreeNode | null { + function converter( + child?: ts.Node, + inTypeMode?: boolean, + allowPattern?: boolean + ): ESTreeNode | null { if (!child) { return null; } @@ -91,18 +96,28 @@ export default function convert(config: ConvertConfig): ESTreeNode | null { node: child, parent: node, inTypeMode, + allowPattern, ast, additionalOptions }); } + /** + * Converts a TypeScript node into an ESTree node. + * @param {ts.Node} child the child ts.Node + * @returns {ESTreeNode|null} the converted ESTree node + */ + function convertPattern(child?: ts.Node): ESTreeNode | null { + return converter(child, config.inTypeMode, true); + } + /** * Converts a TypeScript node into an ESTree node. * @param {ts.Node} child the child ts.Node * @returns {ESTreeNode|null} the converted ESTree node */ function convertChild(child?: ts.Node): ESTreeNode | null { - return converter(child, config.inTypeMode); + return converter(child, config.inTypeMode, false); } /** @@ -111,7 +126,7 @@ export default function convert(config: ConvertConfig): ESTreeNode | null { * @returns {ESTreeNode|null} the converted ESTree node */ function convertChildType(child?: ts.Node): ESTreeNode | null { - return converter(child, true); + return converter(child, true, false); } /** @@ -632,7 +647,7 @@ export default function convert(config: ConvertConfig): ESTreeNode | null { case SyntaxKind.ForOfStatement: { Object.assign(result, { type: SyntaxKind[node.kind], - left: convertChild(node.initializer), + left: convertPattern(node.initializer), right: convertChild(node.expression), body: convertChild(node.statement) }); @@ -691,7 +706,7 @@ export default function convert(config: ConvertConfig): ESTreeNode | null { case SyntaxKind.VariableDeclaration: { Object.assign(result, { type: AST_NODE_TYPES.VariableDeclarator, - id: convertChild(node.name), + id: convertPattern(node.name), init: convertChild(node.initializer) }); @@ -746,42 +761,11 @@ export default function convert(config: ConvertConfig): ESTreeNode | null { break; case SyntaxKind.ArrayLiteralExpression: { - const arrayAssignNode = nodeUtils.findAncestorOfKind( - node, - SyntaxKind.BinaryExpression - ); - const arrayIsInForOf = - node.parent && node.parent.kind === SyntaxKind.ForOfStatement; - const arrayIsInForIn = - node.parent && node.parent.kind === SyntaxKind.ForInStatement; - let arrayIsInAssignment; - - if (arrayAssignNode) { - if (node.parent.kind === SyntaxKind.ShorthandPropertyAssignment) { - arrayIsInAssignment = false; - } else if (node.parent.kind === SyntaxKind.CallExpression) { - arrayIsInAssignment = false; - } else if ( - nodeUtils.getBinaryExpressionType( - (arrayAssignNode as any).operatorToken - ) === AST_NODE_TYPES.AssignmentExpression - ) { - arrayIsInAssignment = - nodeUtils.findChildOfKind( - (arrayAssignNode as any).left, - SyntaxKind.ArrayLiteralExpression, - ast - ) === node || (arrayAssignNode as any).left === node; - } else { - arrayIsInAssignment = false; - } - } - // TypeScript uses ArrayLiteralExpression in destructuring assignment, too - if (arrayIsInAssignment || arrayIsInForOf || arrayIsInForIn) { + if (config.allowPattern) { Object.assign(result, { type: AST_NODE_TYPES.ArrayPattern, - elements: node.elements.map(convertChild) + elements: node.elements.map(convertPattern) }); } else { Object.assign(result, { @@ -793,43 +777,11 @@ export default function convert(config: ConvertConfig): ESTreeNode | null { } case SyntaxKind.ObjectLiteralExpression: { - const ancestorNode = nodeUtils.findFirstMatchingAncestor( - node, - parentNode => - parentNode.kind === SyntaxKind.BinaryExpression || - parentNode.kind === SyntaxKind.ArrowFunction - ); - const objectAssignNode = - ancestorNode && - ancestorNode.kind === SyntaxKind.BinaryExpression && - (ancestorNode as any).operatorToken.kind === SyntaxKind.FirstAssignment - ? ancestorNode - : null; - - let objectIsInAssignment = false; - - if (objectAssignNode) { - if (node.parent.kind === SyntaxKind.ShorthandPropertyAssignment) { - objectIsInAssignment = false; - } else if ((objectAssignNode as any).left === node) { - objectIsInAssignment = true; - } else if (node.parent.kind === SyntaxKind.CallExpression) { - objectIsInAssignment = false; - } else { - objectIsInAssignment = - nodeUtils.findChildOfKind( - (objectAssignNode as any).left, - SyntaxKind.ObjectLiteralExpression, - ast - ) === node; - } - } - // TypeScript uses ObjectLiteralExpression in destructuring assignment, too - if (objectIsInAssignment) { + if (config.allowPattern) { Object.assign(result, { type: AST_NODE_TYPES.ObjectPattern, - properties: node.properties.map(convertChild) + properties: node.properties.map(convertPattern) }); } else { Object.assign(result, { @@ -837,7 +789,6 @@ export default function convert(config: ConvertConfig): ESTreeNode | null { properties: node.properties.map(convertChild) }); } - break; } @@ -845,7 +796,11 @@ export default function convert(config: ConvertConfig): ESTreeNode | null { Object.assign(result, { type: AST_NODE_TYPES.Property, key: convertChild(node.name), - value: convertChild(node.initializer), + value: converter( + node.initializer, + config.inTypeMode, + config.allowPattern + ), computed: nodeUtils.isComputedProperty(node.name), method: false, shorthand: false, @@ -860,7 +815,7 @@ export default function convert(config: ConvertConfig): ESTreeNode | null { key: convertChild(node.name), value: { type: AST_NODE_TYPES.AssignmentPattern, - left: convertChild(node.name), + left: convertPattern(node.name), right: convertChild(node.objectAssignmentInitializer), loc: result.loc, range: result.range @@ -1208,7 +1163,7 @@ export default function convert(config: ConvertConfig): ESTreeNode | null { case SyntaxKind.ArrayBindingPattern: Object.assign(result, { type: AST_NODE_TYPES.ArrayPattern, - elements: node.elements.map(convertChild) + elements: node.elements.map(convertPattern) }); break; @@ -1219,7 +1174,7 @@ export default function convert(config: ConvertConfig): ESTreeNode | null { case SyntaxKind.ObjectBindingPattern: Object.assign(result, { type: AST_NODE_TYPES.ObjectPattern, - properties: node.elements.map(convertChild) + properties: node.elements.map(convertPattern) }); break; @@ -1387,50 +1342,19 @@ export default function convert(config: ConvertConfig): ESTreeNode | null { // Patterns + case SyntaxKind.SpreadAssignment: case SyntaxKind.SpreadElement: { - let type = AST_NODE_TYPES.SpreadElement; - - if ( - node.parent && - node.parent.parent && - node.parent.parent.kind === SyntaxKind.BinaryExpression - ) { - if ((node.parent.parent as ts.BinaryExpression).left === node.parent) { - type = AST_NODE_TYPES.RestElement; - } else if ( - (node.parent.parent as ts.BinaryExpression).right === node.parent - ) { - type = AST_NODE_TYPES.SpreadElement; - } - } - - Object.assign(result, { - type, - argument: convertChild(node.expression) - }); - break; - } - case SyntaxKind.SpreadAssignment: { - let type = AST_NODE_TYPES.SpreadElement; - - if ( - node.parent && - node.parent.parent && - node.parent.parent.kind === SyntaxKind.BinaryExpression - ) { - if ((node.parent.parent as ts.BinaryExpression).right === node.parent) { - type = AST_NODE_TYPES.SpreadElement; - } else if ( - (node.parent.parent as ts.BinaryExpression).left === node.parent - ) { - type = AST_NODE_TYPES.RestElement; - } + if (config.allowPattern) { + Object.assign(result, { + type: AST_NODE_TYPES.RestElement, + argument: convertPattern(node.expression) + }); + } else { + Object.assign(result, { + type: AST_NODE_TYPES.SpreadElement, + argument: convertChild(node.expression) + }); } - - Object.assign(result, { - type, - argument: convertChild(node.expression) - }); break; } @@ -1788,44 +1712,21 @@ export default function convert(config: ConvertConfig): ESTreeNode | null { (result as any).expressions.push(right); } } else { + const type = nodeUtils.getBinaryExpressionType(node.operatorToken); Object.assign(result, { - type: nodeUtils.getBinaryExpressionType(node.operatorToken), + type, operator: nodeUtils.getTextForTokenKind(node.operatorToken.kind), - left: convertChild(node.left), + left: converter( + node.left, + config.inTypeMode, + type === AST_NODE_TYPES.AssignmentExpression + ), right: convertChild(node.right) }); // if the binary expression is in a destructured array, switch it if (result.type === AST_NODE_TYPES.AssignmentExpression) { - const upperArrayNode = nodeUtils.findFirstMatchingAncestor( - node, - parent => - parent.kind === SyntaxKind.ArrayLiteralExpression || - parent.kind === SyntaxKind.ObjectLiteralExpression - ); - const upperArrayAssignNode = - upperArrayNode && - nodeUtils.findAncestorOfKind( - upperArrayNode, - SyntaxKind.BinaryExpression - ); - - let upperArrayIsInAssignment; - - if (upperArrayAssignNode) { - if ((upperArrayAssignNode as any).left === upperArrayNode) { - upperArrayIsInAssignment = true; - } else { - upperArrayIsInAssignment = - nodeUtils.findChildOfKind( - (upperArrayAssignNode as any).left, - SyntaxKind.ArrayLiteralExpression, - ast - ) === upperArrayNode; - } - } - - if (upperArrayIsInAssignment) { + if (config.allowPattern) { delete (result as any).operator; result.type = AST_NODE_TYPES.AssignmentPattern; } diff --git a/tests/ast-alignment/fixtures-to-test.ts b/tests/ast-alignment/fixtures-to-test.ts index bfdda73..d6182fb 100644 --- a/tests/ast-alignment/fixtures-to-test.ts +++ b/tests/ast-alignment/fixtures-to-test.ts @@ -196,19 +196,6 @@ tester.addFixturePatternConfig('javascript/experimentalOptionalCatchBinding'); tester.addFixturePatternConfig('javascript/for'); tester.addFixturePatternConfig('javascript/forIn', { ignore: [ - /** - * Error: AST difference - * ts-estree: ArrayPattern - * babel: ArrayExpression - */ - 'for-in-array', - 'for-in-with-rest', - /** - * Error: AST difference - * ts-estree: AssignmentExpression - * babel: AssignmentPattern - */ - 'for-in-with-bare-assigment', /** * Babel correctly errors on this file, and we can report on it via: * TS 1189 (ts 3.2) "The variable declaration of a 'for...in' statement cannot have an initializer." @@ -222,17 +209,7 @@ tester.addFixturePatternConfig('javascript/forIn', { ] }); -tester.addFixturePatternConfig('javascript/forOf', { - ignore: [ - /** - * Error: AST difference - * ts-estree: ArrayPattern - * babel: ArrayExpression - */ - 'for-of-array', - 'for-of-with-rest' - ] -}); +tester.addFixturePatternConfig('javascript/forOf'); tester.addFixturePatternConfig('javascript/generators'); tester.addFixturePatternConfig('javascript/globalReturn'); tester.addFixturePatternConfig('javascript/importMeta'); @@ -279,14 +256,7 @@ tester.addFixturePatternConfig('javascript/regex'); tester.addFixturePatternConfig('javascript/regexUFlag'); tester.addFixturePatternConfig('javascript/regexYFlag'); tester.addFixturePatternConfig('javascript/restParams'); -tester.addFixturePatternConfig('javascript/spread', { - ignore: [ - /** - * Error: AST difference - */ - 'complex-spread' - ] -}); +tester.addFixturePatternConfig('javascript/spread'); tester.addFixturePatternConfig('javascript/unicodeCodePointEscapes'); /* ================================================== */ diff --git a/tests/lib/__snapshots__/javascript.ts.snap b/tests/lib/__snapshots__/javascript.ts.snap index 22aa5f7..f6c0c50 100644 --- a/tests/lib/__snapshots__/javascript.ts.snap +++ b/tests/lib/__snapshots__/javascript.ts.snap @@ -51971,7 +51971,7 @@ Object { 1, 23, ], - "type": "ObjectPattern", + "type": "ObjectExpression", }, "loc": Object { "end": Object { @@ -88925,7 +88925,7 @@ Object { 10, 12, ], - "type": "ArrayPattern", + "type": "ArrayExpression", }, "type": "ForInStatement", }, @@ -92385,7 +92385,6 @@ Object { "line": 1, }, }, - "operator": "=", "range": Array [ 5, 10, @@ -92409,7 +92408,7 @@ Object { "type": "Literal", "value": 0, }, - "type": "AssignmentExpression", + "type": "AssignmentPattern", }, "loc": Object { "end": Object { @@ -93559,14 +93558,14 @@ Object { 14, 25, ], - "type": "SpreadElement", + "type": "RestElement", }, ], "range": Array [ 5, 27, ], - "type": "ObjectExpression", + "type": "ObjectPattern", }, "loc": Object { "end": Object { @@ -94442,7 +94441,7 @@ Object { 14, 16, ], - "type": "ArrayPattern", + "type": "ArrayExpression", }, "type": "ForOfStatement", }, @@ -96800,14 +96799,14 @@ Object { 14, 25, ], - "type": "SpreadElement", + "type": "RestElement", }, ], "range": Array [ 5, 27, ], - "type": "ObjectExpression", + "type": "ObjectPattern", }, "loc": Object { "end": Object { @@ -132642,7 +132641,7 @@ Object { 11, 20, ], - "type": "SpreadElement", + "type": "RestElement", }, ], "range": Array [ @@ -132844,14 +132843,14 @@ Object { 45, 55, ], - "type": "SpreadElement", + "type": "RestElement", }, ], "range": Array [ 43, 57, ], - "type": "ObjectExpression", + "type": "ObjectPattern", }, Object { "argument": Object { @@ -132886,7 +132885,7 @@ Object { 59, 63, ], - "type": "SpreadElement", + "type": "RestElement", }, ], "loc": Object { @@ -133046,14 +133045,14 @@ Object { 74, 78, ], - "type": "SpreadElement", + "type": "RestElement", }, ], "range": Array [ 69, 80, ], - "type": "ObjectExpression", + "type": "ObjectPattern", }, }, Object { @@ -133089,14 +133088,14 @@ Object { 82, 90, ], - "type": "SpreadElement", + "type": "RestElement", }, ], "range": Array [ 37, 92, ], - "type": "ObjectExpression", + "type": "ObjectPattern", }, }, Object { From 3d6ad10e266ef1e3f96a725bb19eed2b055b8033 Mon Sep 17 00:00:00 2001 From: Armano Date: Sat, 12 Jan 2019 16:13:17 +0100 Subject: [PATCH 3/3] refactor: remove dead utils functions --- src/node-utils.ts | 57 ----------------------------------------------- 1 file changed, 57 deletions(-) diff --git a/src/node-utils.ts b/src/node-utils.ts index 75b8548..b25ad78 100644 --- a/src/node-utils.ts +++ b/src/node-utils.ts @@ -100,33 +100,6 @@ const TOKEN_TO_TEXT: { readonly [P in ts.SyntaxKind]?: string } = { [SyntaxKind.ImportKeyword]: 'import' }; -/** - * Find the first matching child based on the given sourceFile and predicate function. - * @param {ts.Node} node The current ts.Node - * @param {ts.SourceFile} sourceFile The full AST source file - * @param {Function} predicate The predicate function to apply to each checked child - * @returns {ts.Node|undefined} a matching child ts.Node - */ -function findFirstMatchingChild( - node: ts.Node, - sourceFile: ts.SourceFile, - predicate: (node: ts.Node) => boolean -): ts.Node | undefined { - const children = node.getChildren(sourceFile); - for (let i = 0; i < children.length; i++) { - const child = children[i]; - if (child && predicate(child)) { - return child; - } - - const grandChild = findFirstMatchingChild(child, sourceFile, predicate); - if (grandChild) { - return grandChild; - } - } - return undefined; -} - export default { /** * Expose the enum of possible TSNode `kind`s. @@ -148,9 +121,7 @@ export default { getTSNodeAccessibility, findNextToken, findFirstMatchingToken, - findChildOfKind, findFirstMatchingAncestor, - findAncestorOfKind, hasJSXAncestor, unescapeStringLiteralText, isComputedProperty, @@ -460,21 +431,6 @@ function findFirstMatchingToken( return undefined; } -/** - * Finds the first child ts.Node which matches the given kind - * @param {ts.Node} node The parent ts.Node - * @param {number} kind The ts.Node kind to match against - * @param {ts.SourceFile} sourceFile The full AST source file - * @returns {ts.Node|undefined} a matching ts.Node - */ -function findChildOfKind( - node: ts.Node, - kind: number, - sourceFile: ts.SourceFile -): ts.Node | undefined { - return findFirstMatchingChild(node, sourceFile, child => child.kind === kind); -} - /** * Find the first matching ancestor based on the given predicate function. * @param {ts.Node} node The current ts.Node @@ -494,19 +450,6 @@ function findFirstMatchingAncestor( return undefined; } -/** - * Finds the first parent ts.Node which matches the given kind - * @param {ts.Node} node The current ts.Node - * @param {ts.SyntaxKind} kind The ts.Node kind to match against - * @returns {ts.Node|undefined} a matching parent ts.Node - */ -function findAncestorOfKind( - node: ts.Node, - kind: ts.SyntaxKind -): ts.Node | undefined { - return findFirstMatchingAncestor(node, parent => parent.kind === kind); -} - /** * Returns true if a given ts.Node has a JSX token within its hierarchy * @param {ts.Node} node ts.Node to be checked