aboutsummaryrefslogtreecommitdiffstats
path: root/vnfmarket/src/main/webapp/vnfmarket/node_modules/esprima/test/test.js
diff options
context:
space:
mode:
Diffstat (limited to 'vnfmarket/src/main/webapp/vnfmarket/node_modules/esprima/test/test.js')
-rw-r--r--vnfmarket/src/main/webapp/vnfmarket/node_modules/esprima/test/test.js25593
1 files changed, 0 insertions, 25593 deletions
diff --git a/vnfmarket/src/main/webapp/vnfmarket/node_modules/esprima/test/test.js b/vnfmarket/src/main/webapp/vnfmarket/node_modules/esprima/test/test.js
deleted file mode 100644
index d9872d90..00000000
--- a/vnfmarket/src/main/webapp/vnfmarket/node_modules/esprima/test/test.js
+++ /dev/null
@@ -1,25593 +0,0 @@
-/*
- Copyright (C) 2013 Mathias Bynens <mathias@qiwi.be>
- Copyright (C) 2012 Ariya Hidayat <ariya.hidayat@gmail.com>
- Copyright (C) 2012 Joost-Wim Boekesteijn <joost-wim@boekesteijn.nl>
- Copyright (C) 2012 Yusuke Suzuki <utatane.tea@gmail.com>
- Copyright (C) 2012 Arpad Borsos <arpad.borsos@googlemail.com>
- Copyright (C) 2011 Ariya Hidayat <ariya.hidayat@gmail.com>
- Copyright (C) 2011 Yusuke Suzuki <utatane.tea@gmail.com>
- Copyright (C) 2011 Arpad Borsos <arpad.borsos@googlemail.com>
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-var testFixture = {
-
- 'Primary Expression': {
-
- 'this\n': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'ThisExpression',
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- }
- },
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- }
- }],
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- },
- tokens: [{
- type: 'Keyword',
- value: 'this',
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- }
- }]
- },
-
- 'null\n': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: null,
- raw: 'null',
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- }
- },
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- }
- }],
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- },
- tokens: [{
- type: 'Null',
- value: 'null',
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- }
- }]
- },
-
- '\n 42\n\n': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [5, 7],
- loc: {
- start: { line: 2, column: 4 },
- end: { line: 2, column: 6 }
- }
- },
- range: [5, 7],
- loc: {
- start: { line: 2, column: 4 },
- end: { line: 2, column: 6 }
- }
- }],
- range: [5, 7],
- loc: {
- start: { line: 2, column: 4 },
- end: { line: 2, column: 6 }
- },
- tokens: [{
- type: 'Numeric',
- value: '42',
- range: [5, 7],
- loc: {
- start: { line: 2, column: 4 },
- end: { line: 2, column: 6 }
- }
- }]
- },
-
- '(1 + 2 ) * 3': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '*',
- left: {
- type: 'BinaryExpression',
- operator: '+',
- left: {
- type: 'Literal',
- value: 1,
- raw: '1',
- range: [1, 2],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 1, column: 2 }
- }
- },
- right: {
- type: 'Literal',
- value: 2,
- raw: '2',
- range: [5, 6],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 6 }
- }
- },
- range: [1, 6],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 1, column: 6 }
- }
- },
- right: {
- type: 'Literal',
- value: 3,
- raw: '3',
- range: [11, 12],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- }
-
- },
-
- 'Grouping Operator': {
-
- '(1) + (2 ) + 3': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '+',
- left: {
- type: 'BinaryExpression',
- operator: '+',
- left: {
- type: 'Literal',
- value: 1,
- raw: '1',
- range: [1, 2],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 1, column: 2 }
- }
- },
- right: {
- type: 'Literal',
- value: 2,
- raw: '2',
- range: [7, 8],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 8 }
- }
- },
- range: [0, 11],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 11 }
- }
- },
- right: {
- type: 'Literal',
- value: 3,
- raw: '3',
- range: [14, 15],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 15 }
- }
- },
- range: [0, 15],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 15 }
- }
- },
- range: [0, 15],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 15 }
- }
- },
-
- '4 + 5 << (6)': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '<<',
- left: {
- type: 'BinaryExpression',
- operator: '+',
- left: {
- type: 'Literal',
- value: 4,
- raw: '4',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Literal',
- value: 5,
- raw: '5',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
- right: {
- type: 'Literal',
- value: 6,
- raw: '6',
- range: [10, 11],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 11 }
- }
- },
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- }
-
- },
-
- 'Array Initializer': {
-
- 'x = []': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ArrayExpression',
- elements: [],
- range: [4, 6],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- }],
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- },
- tokens: [{
- type: 'Identifier',
- value: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- }, {
- type: 'Punctuator',
- value: '=',
- range: [2, 3],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 3 }
- }
- }, {
- type: 'Punctuator',
- value: '[',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- }, {
- type: 'Punctuator',
- value: ']',
- range: [5, 6],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 6 }
- }
- }]
- },
-
- 'x = [ ]': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ArrayExpression',
- elements: [],
- range: [4, 7],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
-
- 'x = [ 42 ]': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ArrayExpression',
- elements: [{
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [6, 8],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 8 }
- }
- }],
- range: [4, 10],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 10 }
- }
- },
- range: [0, 10],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 10 }
- }
- },
- range: [0, 10],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 10 }
- }
- },
-
- 'x = [ 42, ]': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ArrayExpression',
- elements: [{
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [6, 8],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 8 }
- }
- }],
- range: [4, 11],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 11 }
- }
- },
- range: [0, 11],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 11 }
- }
- },
- range: [0, 11],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 11 }
- }
- },
-
- 'x = [ ,, 42 ]': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ArrayExpression',
- elements: [
- null,
- null,
- {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [9, 11],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 11 }
- }
- }],
- range: [4, 13],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 13 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- },
-
- 'x = [ 1, 2, 3, ]': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ArrayExpression',
- elements: [{
- type: 'Literal',
- value: 1,
- raw: '1',
- range: [6, 7],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 7 }
- }
- }, {
- type: 'Literal',
- value: 2,
- raw: '2',
- range: [9, 10],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 10 }
- }
- }, {
- type: 'Literal',
- value: 3,
- raw: '3',
- range: [12, 13],
- loc: {
- start: { line: 1, column: 12 },
- end: { line: 1, column: 13 }
- }
- }],
- range: [4, 16],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 16 }
- }
- },
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- },
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- },
-
- 'x = [ 1, 2,, 3, ]': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ArrayExpression',
- elements: [{
- type: 'Literal',
- value: 1,
- raw: '1',
- range: [6, 7],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 7 }
- }
- }, {
- type: 'Literal',
- value: 2,
- raw: '2',
- range: [9, 10],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 10 }
- }
- }, null, {
- type: 'Literal',
- value: 3,
- raw: '3',
- range: [13, 14],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 14 }
- }
- }],
- range: [4, 17],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 17 }
- }
- },
- range: [0, 17],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 17 }
- }
- },
- range: [0, 17],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 17 }
- }
- },
-
- '日本語 = []': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: '日本語',
- range: [0, 3],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 3 }
- }
- },
- right: {
- type: 'ArrayExpression',
- elements: [],
- range: [6, 8],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 8 }
- }
- },
- range: [0, 8],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 8 }
- }
- },
- range: [0, 8],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 8 }
- }
- },
-
- 'T\u203F = []': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'T\u203F',
- range: [0, 2],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 2 }
- }
- },
- right: {
- type: 'ArrayExpression',
- elements: [],
- range: [5, 7],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
-
- 'T\u200C = []': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'T\u200C',
- range: [0, 2],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 2 }
- }
- },
- right: {
- type: 'ArrayExpression',
- elements: [],
- range: [5, 7],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
-
- 'T\u200D = []': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'T\u200D',
- range: [0, 2],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 2 }
- }
- },
- right: {
- type: 'ArrayExpression',
- elements: [],
- range: [5, 7],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
-
- '\u2163\u2161 = []': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: '\u2163\u2161',
- range: [0, 2],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 2 }
- }
- },
- right: {
- type: 'ArrayExpression',
- elements: [],
- range: [5, 7],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
-
- '\u2163\u2161\u200A=\u2009[]': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: '\u2163\u2161',
- range: [0, 2],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 2 }
- }
- },
- right: {
- type: 'ArrayExpression',
- elements: [],
- range: [5, 7],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- }
-
- },
-
- 'Object Initializer': {
-
- 'x = {}': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ObjectExpression',
- properties: [],
- range: [4, 6],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
-
- 'x = { }': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ObjectExpression',
- properties: [],
- range: [4, 7],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
-
- 'x = { answer: 42 }': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'answer',
- range: [6, 12],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 12 }
- }
- },
- value: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [14, 16],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 16 }
- }
- },
- kind: 'init',
- range: [6, 16],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 16 }
- }
- }],
- range: [4, 18],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 18 }
- }
- },
- range: [0, 18],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 18 }
- }
- },
- range: [0, 18],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 18 }
- }
- },
-
- 'x = { if: 42 }': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'if',
- range: [6, 8],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 8 }
- }
- },
- value: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [10, 12],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 12 }
- }
- },
- kind: 'init',
- range: [6, 12],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 12 }
- }
- }],
- range: [4, 14],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 14 }
- }
- },
- range: [0, 14],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 14 }
- }
- },
- range: [0, 14],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 14 }
- }
- },
-
- 'x = { true: 42 }': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'true',
- range: [6, 10],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 10 }
- }
- },
- value: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [12, 14],
- loc: {
- start: { line: 1, column: 12 },
- end: { line: 1, column: 14 }
- }
- },
- kind: 'init',
- range: [6, 14],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 14 }
- }
- }],
- range: [4, 16],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 16 }
- }
- },
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- },
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- },
-
- 'x = { false: 42 }': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'false',
- range: [6, 11],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 11 }
- }
- },
- value: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [13, 15],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 15 }
- }
- },
- kind: 'init',
- range: [6, 15],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 15 }
- }
- }],
- range: [4, 17],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 17 }
- }
- },
- range: [0, 17],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 17 }
- }
- },
- range: [0, 17],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 17 }
- }
- },
-
- 'x = { null: 42 }': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'null',
- range: [6, 10],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 10 }
- }
- },
- value: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [12, 14],
- loc: {
- start: { line: 1, column: 12 },
- end: { line: 1, column: 14 }
- }
- },
- kind: 'init',
- range: [6, 14],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 14 }
- }
- }],
- range: [4, 16],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 16 }
- }
- },
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- },
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- },
-
- 'x = { "answer": 42 }': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Literal',
- value: 'answer',
- raw: '"answer"',
- range: [6, 14],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 14 }
- }
- },
- value: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [16, 18],
- loc: {
- start: { line: 1, column: 16 },
- end: { line: 1, column: 18 }
- }
- },
- kind: 'init',
- range: [6, 18],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 18 }
- }
- }],
- range: [4, 20],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 20 }
- }
- },
- range: [0, 20],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 20 }
- }
- },
- range: [0, 20],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 20 }
- }
- },
-
- 'x = { x: 1, x: 2 }': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ObjectExpression',
- properties: [
- {
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'x',
- range: [6, 7],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 7 }
- }
- },
- value: {
- type: 'Literal',
- value: 1,
- raw: '1',
- range: [9, 10],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 10 }
- }
- },
- kind: 'init',
- range: [6, 10],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 10 }
- }
- },
- {
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'x',
- range: [12, 13],
- loc: {
- start: { line: 1, column: 12 },
- end: { line: 1, column: 13 }
- }
- },
- value: {
- type: 'Literal',
- value: 2,
- raw: '2',
- range: [15, 16],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 16 }
- }
- },
- kind: 'init',
- range: [12, 16],
- loc: {
- start: { line: 1, column: 12 },
- end: { line: 1, column: 16 }
- }
- }
- ],
- range: [4, 18],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 18 }
- }
- },
- range: [0, 18],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 18 }
- }
- },
- range: [0, 18],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 18 }
- }
- },
-
- 'x = { get width() { return m_width } }': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'width',
- range: [10, 15],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 15 }
- }
- },
- value: {
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ReturnStatement',
- argument: {
- type: 'Identifier',
- name: 'm_width',
- range: [27, 34],
- loc: {
- start: { line: 1, column: 27 },
- end: { line: 1, column: 34 }
- }
- },
- range: [20, 35],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 35 }
- }
- }],
- range: [18, 36],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 36 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [18, 36],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 36 }
- }
- },
- kind: 'get',
- range: [6, 36],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 36 }
- }
- }],
- range: [4, 38],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 38 }
- }
- },
- range: [0, 38],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 38 }
- }
- },
- range: [0, 38],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 38 }
- }
- },
-
- 'x = { get undef() {} }': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'undef',
- range: [10, 15],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 15 }
- }
- },
- value: {
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [18, 20],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 20 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [18, 20],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 20 }
- }
- },
- kind: 'get',
- range: [6, 20],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 20 }
- }
- }],
- range: [4, 22],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 22 }
- }
- },
- range: [0, 22],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 22 }
- }
- },
- range: [0, 22],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 22 }
- }
- },
-
- 'x = { get if() {} }': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'if',
- range: [10, 12],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 12 }
- }
- },
- value: {
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [15, 17],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 17 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [15, 17],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 17 }
- }
- },
- kind: 'get',
- range: [6, 17],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 17 }
- }
- }],
- range: [4, 19],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 19 }
- }
- },
- range: [0, 19],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 19 }
- }
- },
- range: [0, 19],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 19 }
- }
- },
-
- 'x = { get true() {} }': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'true',
- range: [10, 14],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 14 }
- }
- },
- value: {
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [17, 19],
- loc: {
- start: { line: 1, column: 17 },
- end: { line: 1, column: 19 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [17, 19],
- loc: {
- start: { line: 1, column: 17 },
- end: { line: 1, column: 19 }
- }
- },
- kind: 'get',
- range: [6, 19],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 19 }
- }
- }],
- range: [4, 21],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 21 }
- }
- },
- range: [0, 21],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 21 }
- }
- },
- range: [0, 21],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 21 }
- }
- },
-
- 'x = { get false() {} }': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'false',
- range: [10, 15],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 15 }
- }
- },
- value: {
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [18, 20],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 20 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [18, 20],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 20 }
- }
- },
- kind: 'get',
- range: [6, 20],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 20 }
- }
- }],
- range: [4, 22],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 22 }
- }
- },
- range: [0, 22],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 22 }
- }
- },
- range: [0, 22],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 22 }
- }
- },
-
- 'x = { get null() {} }': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'null',
- range: [10, 14],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 14 }
- }
- },
- value: {
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [17, 19],
- loc: {
- start: { line: 1, column: 17 },
- end: { line: 1, column: 19 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [17, 19],
- loc: {
- start: { line: 1, column: 17 },
- end: { line: 1, column: 19 }
- }
- },
- kind: 'get',
- range: [6, 19],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 19 }
- }
- }],
- range: [4, 21],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 21 }
- }
- },
- range: [0, 21],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 21 }
- }
- },
- range: [0, 21],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 21 }
- }
- },
-
- 'x = { get "undef"() {} }': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Literal',
- value: 'undef',
- raw: '"undef"',
- range: [10, 17],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 17 }
- }
- },
- value: {
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [20, 22],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 22 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [20, 22],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 22 }
- }
- },
- kind: 'get',
- range: [6, 22],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 22 }
- }
- }],
- range: [4, 24],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 24 }
- }
- },
- range: [0, 24],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 24 }
- }
- },
- range: [0, 24],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 24 }
- }
- },
-
- 'x = { get 10() {} }': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Literal',
- value: 10,
- raw: '10',
- range: [10, 12],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 12 }
- }
- },
- value: {
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [15, 17],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 17 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [15, 17],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 17 }
- }
- },
- kind: 'get',
- range: [6, 17],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 17 }
- }
- }],
- range: [4, 19],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 19 }
- }
- },
- range: [0, 19],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 19 }
- }
- },
- range: [0, 19],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 19 }
- }
- },
-
- 'x = { set width(w) { m_width = w } }': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'width',
- range: [10, 15],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 15 }
- }
- },
- value: {
- type: 'FunctionExpression',
- id: null,
- params: [{
- type: 'Identifier',
- name: 'w',
- range: [16, 17],
- loc: {
- start: { line: 1, column: 16 },
- end: { line: 1, column: 17 }
- }
- }],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'm_width',
- range: [21, 28],
- loc: {
- start: { line: 1, column: 21 },
- end: { line: 1, column: 28 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'w',
- range: [31, 32],
- loc: {
- start: { line: 1, column: 31 },
- end: { line: 1, column: 32 }
- }
- },
- range: [21, 32],
- loc: {
- start: { line: 1, column: 21 },
- end: { line: 1, column: 32 }
- }
- },
- range: [21, 33],
- loc: {
- start: { line: 1, column: 21 },
- end: { line: 1, column: 33 }
- }
- }],
- range: [19, 34],
- loc: {
- start: { line: 1, column: 19 },
- end: { line: 1, column: 34 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [19, 34],
- loc: {
- start: { line: 1, column: 19 },
- end: { line: 1, column: 34 }
- }
- },
- kind: 'set',
- range: [6, 34],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 34 }
- }
- }],
- range: [4, 36],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 36 }
- }
- },
- range: [0, 36],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 36 }
- }
- },
- range: [0, 36],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 36 }
- }
- },
-
- 'x = { set if(w) { m_if = w } }': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'if',
- range: [10, 12],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 12 }
- }
- },
- value: {
- type: 'FunctionExpression',
- id: null,
- params: [{
- type: 'Identifier',
- name: 'w',
- range: [13, 14],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 14 }
- }
- }],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'm_if',
- range: [18, 22],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 22 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'w',
- range: [25, 26],
- loc: {
- start: { line: 1, column: 25 },
- end: { line: 1, column: 26 }
- }
- },
- range: [18, 26],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 26 }
- }
- },
- range: [18, 27],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 27 }
- }
- }],
- range: [16, 28],
- loc: {
- start: { line: 1, column: 16 },
- end: { line: 1, column: 28 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [16, 28],
- loc: {
- start: { line: 1, column: 16 },
- end: { line: 1, column: 28 }
- }
- },
- kind: 'set',
- range: [6, 28],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 28 }
- }
- }],
- range: [4, 30],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 30 }
- }
- },
- range: [0, 30],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 30 }
- }
- },
- range: [0, 30],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 30 }
- }
- },
-
- 'x = { set true(w) { m_true = w } }': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'true',
- range: [10, 14],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 14 }
- }
- },
- value: {
- type: 'FunctionExpression',
- id: null,
- params: [{
- type: 'Identifier',
- name: 'w',
- range: [15, 16],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 16 }
- }
- }],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'm_true',
- range: [20, 26],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 26 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'w',
- range: [29, 30],
- loc: {
- start: { line: 1, column: 29 },
- end: { line: 1, column: 30 }
- }
- },
- range: [20, 30],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 30 }
- }
- },
- range: [20, 31],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 31 }
- }
- }],
- range: [18, 32],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 32 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [18, 32],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 32 }
- }
- },
- kind: 'set',
- range: [6, 32],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 32 }
- }
- }],
- range: [4, 34],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 34 }
- }
- },
- range: [0, 34],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 34 }
- }
- },
- range: [0, 34],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 34 }
- }
- },
-
- 'x = { set false(w) { m_false = w } }': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'false',
- range: [10, 15],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 15 }
- }
- },
- value: {
- type: 'FunctionExpression',
- id: null,
- params: [{
- type: 'Identifier',
- name: 'w',
- range: [16, 17],
- loc: {
- start: { line: 1, column: 16 },
- end: { line: 1, column: 17 }
- }
- }],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'm_false',
- range: [21, 28],
- loc: {
- start: { line: 1, column: 21 },
- end: { line: 1, column: 28 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'w',
- range: [31, 32],
- loc: {
- start: { line: 1, column: 31 },
- end: { line: 1, column: 32 }
- }
- },
- range: [21, 32],
- loc: {
- start: { line: 1, column: 21 },
- end: { line: 1, column: 32 }
- }
- },
- range: [21, 33],
- loc: {
- start: { line: 1, column: 21 },
- end: { line: 1, column: 33 }
- }
- }],
- range: [19, 34],
- loc: {
- start: { line: 1, column: 19 },
- end: { line: 1, column: 34 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [19, 34],
- loc: {
- start: { line: 1, column: 19 },
- end: { line: 1, column: 34 }
- }
- },
- kind: 'set',
- range: [6, 34],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 34 }
- }
- }],
- range: [4, 36],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 36 }
- }
- },
- range: [0, 36],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 36 }
- }
- },
- range: [0, 36],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 36 }
- }
- },
-
- 'x = { set null(w) { m_null = w } }': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'null',
- range: [10, 14],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 14 }
- }
- },
- value: {
- type: 'FunctionExpression',
- id: null,
- params: [{
- type: 'Identifier',
- name: 'w',
- range: [15, 16],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 16 }
- }
- }],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'm_null',
- range: [20, 26],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 26 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'w',
- range: [29, 30],
- loc: {
- start: { line: 1, column: 29 },
- end: { line: 1, column: 30 }
- }
- },
- range: [20, 30],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 30 }
- }
- },
- range: [20, 31],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 31 }
- }
- }],
- range: [18, 32],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 32 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [18, 32],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 32 }
- }
- },
- kind: 'set',
- range: [6, 32],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 32 }
- }
- }],
- range: [4, 34],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 34 }
- }
- },
- range: [0, 34],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 34 }
- }
- },
- range: [0, 34],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 34 }
- }
- },
-
- 'x = { set "null"(w) { m_null = w } }': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Literal',
- value: 'null',
- raw: '"null"',
- range: [10, 16],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 16 }
- }
- },
- value: {
- type: 'FunctionExpression',
- id: null,
- params: [{
- type: 'Identifier',
- name: 'w',
- range: [17, 18],
- loc: {
- start: { line: 1, column: 17 },
- end: { line: 1, column: 18 }
- }
- }],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'm_null',
- range: [22, 28],
- loc: {
- start: { line: 1, column: 22 },
- end: { line: 1, column: 28 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'w',
- range: [31, 32],
- loc: {
- start: { line: 1, column: 31 },
- end: { line: 1, column: 32 }
- }
- },
- range: [22, 32],
- loc: {
- start: { line: 1, column: 22 },
- end: { line: 1, column: 32 }
- }
- },
- range: [22, 33],
- loc: {
- start: { line: 1, column: 22 },
- end: { line: 1, column: 33 }
- }
- }],
- range: [20, 34],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 34 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [20, 34],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 34 }
- }
- },
- kind: 'set',
- range: [6, 34],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 34 }
- }
- }],
- range: [4, 36],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 36 }
- }
- },
- range: [0, 36],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 36 }
- }
- },
- range: [0, 36],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 36 }
- }
- },
-
- 'x = { set 10(w) { m_null = w } }': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Literal',
- value: 10,
- raw: '10',
- range: [10, 12],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 12 }
- }
- },
- value: {
- type: 'FunctionExpression',
- id: null,
- params: [{
- type: 'Identifier',
- name: 'w',
- range: [13, 14],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 14 }
- }
- }],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'm_null',
- range: [18, 24],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 24 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'w',
- range: [27, 28],
- loc: {
- start: { line: 1, column: 27 },
- end: { line: 1, column: 28 }
- }
- },
- range: [18, 28],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 28 }
- }
- },
- range: [18, 29],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 29 }
- }
- }],
- range: [16, 30],
- loc: {
- start: { line: 1, column: 16 },
- end: { line: 1, column: 30 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [16, 30],
- loc: {
- start: { line: 1, column: 16 },
- end: { line: 1, column: 30 }
- }
- },
- kind: 'set',
- range: [6, 30],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 30 }
- }
- }],
- range: [4, 32],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 32 }
- }
- },
- range: [0, 32],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 32 }
- }
- },
- range: [0, 32],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 32 }
- }
- },
-
- 'x = { get: 42 }': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'get',
- range: [6, 9],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 9 }
- }
- },
- value: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [11, 13],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 1, column: 13 }
- }
- },
- kind: 'init',
- range: [6, 13],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 13 }
- }
- }],
- range: [4, 15],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 15 }
- }
- },
- range: [0, 15],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 15 }
- }
- },
- range: [0, 15],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 15 }
- }
- },
-
- 'x = { set: 43 }': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'set',
- range: [6, 9],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 9 }
- }
- },
- value: {
- type: 'Literal',
- value: 43,
- raw: '43',
- range: [11, 13],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 1, column: 13 }
- }
- },
- kind: 'init',
- range: [6, 13],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 13 }
- }
- }],
- range: [4, 15],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 15 }
- }
- },
- range: [0, 15],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 15 }
- }
- },
- range: [0, 15],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 15 }
- }
- },
-
- 'x = { __proto__: 2 }': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Identifier',
- name: '__proto__',
- range: [6, 15],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 15 }
- }
- },
- value: {
- type: 'Literal',
- value: 2,
- raw: '2',
- range: [17, 18],
- loc: {
- start: { line: 1, column: 17 },
- end: { line: 1, column: 18 }
- }
- },
- kind: 'init',
- range: [6, 18],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 18 }
- }
- }],
- range: [4, 20],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 20 }
- }
- },
- range: [0, 20],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 20 }
- }
- },
- range: [0, 20],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 20 }
- }
- },
-
- 'x = {"__proto__": 2 }': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Literal',
- value: '__proto__',
- raw: '"__proto__"',
- range: [5, 16],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 16 }
- }
- },
- value: {
- type: 'Literal',
- value: 2,
- raw: '2',
- range: [18, 19],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 19 }
- }
- },
- kind: 'init',
- range: [5, 19],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 19 }
- }
- }],
- range: [4, 21],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 21 }
- }
- },
- range: [0, 21],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 21 }
- }
- },
- range: [0, 21],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 21 }
- }
- },
-
- 'x = { get width() { return m_width }, set width(width) { m_width = width; } }': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'width',
- range: [10, 15],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 15 }
- }
- },
- value: {
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ReturnStatement',
- argument: {
- type: 'Identifier',
- name: 'm_width',
- range: [27, 34],
- loc: {
- start: { line: 1, column: 27 },
- end: { line: 1, column: 34 }
- }
- },
- range: [20, 35],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 35 }
- }
- }],
- range: [18, 36],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 36 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [18, 36],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 36 }
- }
- },
- kind: 'get',
- range: [6, 36],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 36 }
- }
- }, {
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'width',
- range: [42, 47],
- loc: {
- start: { line: 1, column: 42 },
- end: { line: 1, column: 47 }
- }
- },
- value: {
- type: 'FunctionExpression',
- id: null,
- params: [{
- type: 'Identifier',
- name: 'width',
- range: [48, 53],
- loc: {
- start: { line: 1, column: 48 },
- end: { line: 1, column: 53 }
- }
- }],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'm_width',
- range: [57, 64],
- loc: {
- start: { line: 1, column: 57 },
- end: { line: 1, column: 64 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'width',
- range: [67, 72],
- loc: {
- start: { line: 1, column: 67 },
- end: { line: 1, column: 72 }
- }
- },
- range: [57, 72],
- loc: {
- start: { line: 1, column: 57 },
- end: { line: 1, column: 72 }
- }
- },
- range: [57, 73],
- loc: {
- start: { line: 1, column: 57 },
- end: { line: 1, column: 73 }
- }
- }],
- range: [55, 75],
- loc: {
- start: { line: 1, column: 55 },
- end: { line: 1, column: 75 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [55, 75],
- loc: {
- start: { line: 1, column: 55 },
- end: { line: 1, column: 75 }
- }
- },
- kind: 'set',
- range: [38, 75],
- loc: {
- start: { line: 1, column: 38 },
- end: { line: 1, column: 75 }
- }
- }],
- range: [4, 77],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 77 }
- }
- },
- range: [0, 77],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 77 }
- }
- },
- range: [0, 77],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 77 }
- }
- }
-
-
- },
-
- 'Comments': {
-
- '/* block comment */ 42': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [20, 22],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 22 }
- }
- },
- range: [20, 22],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 22 }
- }
- },
-
- '42 /* block comment 1 */ /* block comment 2 */': {
- "type": "Program",
- "body": [
- {
- "type": "ExpressionStatement",
- "expression": {
- "type": "Literal",
- "value": 42,
- "raw": "42",
- "range": [
- 0,
- 2
- ],
- "trailingComments": [
- {
- "type": "Block",
- "value": " block comment 1 ",
- "range": [
- 3,
- 24
- ]
- },
- {
- "type": "Block",
- "value": " block comment 2 ",
- "range": [
- 25,
- 46
- ]
- }
- ]
- },
- "range": [
- 0,
- 46
- ]
- }
- ],
- "range": [
- 0,
- 46
- ],
- "comments": [
- {
- "type": "Block",
- "value": " block comment 1 ",
- "range": [
- 3,
- 24
- ]
- },
- {
- "type": "Block",
- "value": " block comment 2 ",
- "range": [
- 25,
- 46
- ]
- }
- ],
- "tokens": [
- {
- "type": "Numeric",
- "range": [
- 0,
- 2
- ],
- "value": "42"
- }
- ]
- },
-
- 'var p1;/* block comment 1 */ /* block comment 2 */': {
- "range": [
- 0,
- 7
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 0
- },
- "end": {
- "line": 1,
- "column": 7
- }
- },
- "type": "Program",
- "body": [
- {
- "range": [
- 0,
- 7
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 0
- },
- "end": {
- "line": 1,
- "column": 7
- }
- },
- "type": "VariableDeclaration",
- "declarations": [
- {
- "range": [
- 4,
- 6
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 4
- },
- "end": {
- "line": 1,
- "column": 6
- }
- },
- "type": "VariableDeclarator",
- "id": {
- "range": [
- 4,
- 6
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 4
- },
- "end": {
- "line": 1,
- "column": 6
- }
- },
- "type": "Identifier",
- "name": "p1"
- },
- "init": null
- }
- ],
- "kind": "var",
- "trailingComments": [
- {
- "range": [
- 7,
- 28
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 7
- },
- "end": {
- "line": 1,
- "column": 28
- }
- },
- "type": "Block",
- "value": " block comment 1 "
- },
- {
- "range": [
- 29,
- 50
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 29
- },
- "end": {
- "line": 1,
- "column": 50
- }
- },
- "type": "Block",
- "value": " block comment 2 "
- }
- ]
- }
- ],
- "comments": [
- {
- "range": [
- 7,
- 28
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 7
- },
- "end": {
- "line": 1,
- "column": 28
- }
- },
- "type": "Block",
- "value": " block comment 1 "
- },
- {
- "range": [
- 29,
- 50
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 29
- },
- "end": {
- "line": 1,
- "column": 50
- }
- },
- "type": "Block",
- "value": " block comment 2 "
- }
- ],
- "tokens": [
- {
- "range": [
- 0,
- 3
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 0
- },
- "end": {
- "line": 1,
- "column": 3
- }
- },
- "type": "Keyword",
- "value": "var"
- },
- {
- "range": [
- 4,
- 6
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 4
- },
- "end": {
- "line": 1,
- "column": 6
- }
- },
- "type": "Identifier",
- "value": "p1"
- },
- {
- "range": [
- 6,
- 7
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 6
- },
- "end": {
- "line": 1,
- "column": 7
- }
- },
- "type": "Punctuator",
- "value": ";"
- }
- ]
- },
-
- '/*42*/': {
- "range": [
- 6,
- 6
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 6
- },
- "end": {
- "line": 1,
- "column": 6
- }
- },
- "type": "Program",
- "body": [],
- "leadingComments": [
- {
- "range": [
- 0,
- 6
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 0
- },
- "end": {
- "line": 1,
- "column": 6
- }
- },
- "type": "Block",
- "value": "42"
- }
- ],
- "comments": [
- {
- "range": [
- 0,
- 6
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 0
- },
- "end": {
- "line": 1,
- "column": 6
- }
- },
- "type": "Block",
- "value": "42"
- }
- ],
- "tokens": []
- },
-
- '(a + /* assignmenr */b ) * c': {
- "type": "Program",
- "body": [
- {
- "type": "ExpressionStatement",
- "expression": {
- "type": "BinaryExpression",
- "operator": "*",
- "left": {
- "type": "BinaryExpression",
- "operator": "+",
- "left": {
- "type": "Identifier",
- "name": "a",
- "range": [
- 1,
- 2
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 1
- },
- "end": {
- "line": 1,
- "column": 2
- }
- }
- },
- "right": {
- "type": "Identifier",
- "name": "b",
- "range": [
- 21,
- 22
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 21
- },
- "end": {
- "line": 1,
- "column": 22
- }
- },
- "leadingComments": [
- {
- "type": "Block",
- "value": " assignmenr ",
- "range": [
- 5,
- 21
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 5
- },
- "end": {
- "line": 1,
- "column": 21
- }
- }
- }
- ]
- },
- "range": [
- 1,
- 22
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 1
- },
- "end": {
- "line": 1,
- "column": 22
- }
- }
- },
- "right": {
- "type": "Identifier",
- "name": "c",
- "range": [
- 27,
- 28
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 27
- },
- "end": {
- "line": 1,
- "column": 28
- }
- }
- },
- "range": [
- 0,
- 28
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 0
- },
- "end": {
- "line": 1,
- "column": 28
- }
- }
- },
- "range": [
- 0,
- 28
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 0
- },
- "end": {
- "line": 1,
- "column": 28
- }
- }
- }
- ],
- "range": [
- 0,
- 28
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 0
- },
- "end": {
- "line": 1,
- "column": 28
- }
- },
- "comments": [
- {
- "type": "Block",
- "value": " assignmenr ",
- "range": [
- 5,
- 21
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 5
- },
- "end": {
- "line": 1,
- "column": 21
- }
- }
- }
- ]
- },
-
- '/* assignmenr */\n a = b': {
- "type": "Program",
- "body": [
- {
- "type": "ExpressionStatement",
- "expression": {
- "type": "AssignmentExpression",
- "operator": "=",
- "left": {
- "type": "Identifier",
- "name": "a",
- "range": [
- 18,
- 19
- ],
- "loc": {
- "start": {
- "line": 2,
- "column": 1
- },
- "end": {
- "line": 2,
- "column": 2
- }
- }
- },
- "right": {
- "type": "Identifier",
- "name": "b",
- "range": [
- 22,
- 23
- ],
- "loc": {
- "start": {
- "line": 2,
- "column": 5
- },
- "end": {
- "line": 2,
- "column": 6
- }
- }
- },
- "range": [
- 18,
- 23
- ],
- "loc": {
- "start": {
- "line": 2,
- "column": 1
- },
- "end": {
- "line": 2,
- "column": 6
- }
- }
- },
- "range": [
- 18,
- 23
- ],
- "loc": {
- "start": {
- "line": 2,
- "column": 1
- },
- "end": {
- "line": 2,
- "column": 6
- }
- },
- "leadingComments": [
- {
- "type": "Block",
- "value": " assignmenr ",
- "range": [
- 0,
- 16
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 0
- },
- "end": {
- "line": 1,
- "column": 16
- }
- }
- }
- ]
- }
- ],
- "range": [
- 18,
- 23
- ],
- "loc": {
- "start": {
- "line": 2,
- "column": 1
- },
- "end": {
- "line": 2,
- "column": 6
- }
- },
- "comments": [
- {
- "type": "Block",
- "value": " assignmenr ",
- "range": [
- 0,
- 16
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 0
- },
- "end": {
- "line": 1,
- "column": 16
- }
- }
- }
- ]
- },
-
- '42 /*The*/ /*Answer*/': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [0, 2],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 2 }
- }
- },
- range: [0, 21],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 21 }
- }
- }],
- range: [0, 21],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 21 }
- },
- comments: [{
- type: 'Block',
- value: 'The',
- range: [3, 10],
- loc: {
- start: { line: 1, column: 3 },
- end: { line: 1, column: 10 }
- }
- }, {
- type: 'Block',
- value: 'Answer',
- range: [11, 21],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 1, column: 21 }
- }
- }]
- },
-
- '42 /*the*/ /*answer*/': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [0, 2]
- },
- range: [0, 21]
- }],
- range: [0, 21],
- comments: [{
- type: 'Block',
- value: 'the',
- range: [3, 10]
- }, {
- type: 'Block',
- value: 'answer',
- range: [11, 21]
- }]
- },
-
- '42 /* the * answer */': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [0, 2],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 2 }
- }
- },
- range: [0, 21],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 21 }
- }
- },
-
- '42 /* The * answer */': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [0, 2],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 2 }
- }
- },
- range: [0, 21],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 21 }
- }
- }],
- range: [0, 21],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 21 }
- },
- comments: [{
- type: 'Block',
- value: ' The * answer ',
- range: [3, 21],
- loc: {
- start: { line: 1, column: 3 },
- end: { line: 1, column: 21 }
- }
- }]
- },
-
- '/* multiline\ncomment\nshould\nbe\nignored */ 42': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [42, 44],
- loc: {
- start: { line: 5, column: 11 },
- end: { line: 5, column: 13 }
- }
- },
- range: [42, 44],
- loc: {
- start: { line: 5, column: 11 },
- end: { line: 5, column: 13 }
- }
- },
-
- '/*a\r\nb*/ 42': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [9, 11],
- loc: {
- start: { line: 2, column: 4 },
- end: { line: 2, column: 6 }
- }
- },
- range: [9, 11],
- loc: {
- start: { line: 2, column: 4 },
- end: { line: 2, column: 6 }
- },
- leadingComments: [{
- type: 'Block',
- value: 'a\r\nb',
- range: [0, 8],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 2, column: 3 }
- }
- }]
- }],
- range: [9, 11],
- loc: {
- start: { line: 2, column: 4 },
- end: { line: 2, column: 6 }
- },
- comments: [{
- type: 'Block',
- value: 'a\r\nb',
- range: [0, 8],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 2, column: 3 }
- }
- }]
- },
-
- '/*a\rb*/ 42': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [8, 10],
- loc: {
- start: { line: 2, column: 4 },
- end: { line: 2, column: 6 }
- }
- },
- range: [8, 10],
- loc: {
- start: { line: 2, column: 4 },
- end: { line: 2, column: 6 }
- }
- }],
- range: [8, 10],
- loc: {
- start: { line: 2, column: 4 },
- end: { line: 2, column: 6 }
- },
- comments: [{
- type: 'Block',
- value: 'a\rb',
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 2, column: 3 }
- }
- }]
- },
-
- '/*a\nb*/ 42': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [8, 10],
- loc: {
- start: { line: 2, column: 4 },
- end: { line: 2, column: 6 }
- }
- },
- range: [8, 10],
- loc: {
- start: { line: 2, column: 4 },
- end: { line: 2, column: 6 }
- },
- leadingComments: [{
- type: 'Block',
- value: 'a\nb',
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 2, column: 3 }
- }
- }]
- }],
- range: [8, 10],
- loc: {
- start: { line: 2, column: 4 },
- end: { line: 2, column: 6 }
- },
- comments: [{
- type: 'Block',
- value: 'a\nb',
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 2, column: 3 }
- }
- }]
- },
-
- '/*a\nc*/ 42': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [8, 10],
- loc: {
- start: { line: 2, column: 4 },
- end: { line: 2, column: 6 }
- }
- },
- range: [8, 10],
- loc: {
- start: { line: 2, column: 4 },
- end: { line: 2, column: 6 }
- },
- leadingComments: [{
- type: 'Block',
- value: 'a\nc',
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 2, column: 3 }
- }
- }]
- }],
- range: [8, 10],
- loc: {
- start: { line: 2, column: 4 },
- end: { line: 2, column: 6 }
- },
- comments: [{
- type: 'Block',
- value: 'a\nc',
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 2, column: 3 }
- }
- }]
- },
-
- '// one\\n': {
- type: 'Program',
- body: [],
- range: [8, 8],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 8 }
- },
- leadingComments: [{
- type: 'Line',
- value: ' one\\n',
- range: [0, 8],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 8 }
- }
- }],
- comments: [{
- type: 'Line',
- value: ' one\\n',
- range: [0, 8],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 8 }
- }
- }]
- },
-
- '// line comment\n42': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [16, 18],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 2 }
- }
- },
- range: [16, 18],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 2 }
- }
- },
-
- '42 // line comment': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [0, 2],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 2 }
- },
- trailingComments: [{
- type: 'Line',
- value: ' line comment',
- range: [3, 18],
- loc: {
- start: { line: 1, column: 3 },
- end: { line: 1, column: 18 }
- }
- }]
- },
- range: [0, 18],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 18 }
- }
- }],
- range: [0, 18],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 18 }
- },
- comments: [{
- type: 'Line',
- value: ' line comment',
- range: [3, 18],
- loc: {
- start: { line: 1, column: 3 },
- end: { line: 1, column: 18 }
- }
- }]
- },
-
- '// Hello, world!\n42': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [17, 19],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 2 }
- }
- },
- range: [17, 19],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 2 }
- },
- leadingComments: [{
- type: 'Line',
- value: ' Hello, world!',
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- }]
- }],
- range: [17, 19],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 2 }
- },
- comments: [{
- type: 'Line',
- value: ' Hello, world!',
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- }]
- },
-
- '// Hello, world!\n': {
- type: 'Program',
- body: [],
- range: [17, 17],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 0 }
- },
- comments: [{
- type: 'Line',
- value: ' Hello, world!',
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- }]
- },
-
- '// Hallo, world!\n': {
- type: 'Program',
- body: [],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 0 }
- },
- comments: [{
- type: 'Line',
- value: ' Hallo, world!',
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- }]
- },
-
- '//\n42': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [3, 5],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 2 }
- }
- },
- range: [3, 5],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 2 }
- },
- leadingComments: [{
- type: 'Line',
- value: '',
- range: [0, 2],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 2 }
- }
- }]
- }],
- range: [3, 5],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 2 }
- },
- comments: [{
- type: 'Line',
- value: '',
- range: [0, 2],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 2 }
- }
- }]
- },
-
- '//': {
- type: 'Program',
- body: [],
- range: [2, 2],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 2 }
- },
- comments: [{
- type: 'Line',
- value: '',
- range: [0, 2],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 2 }
- }
- }]
- },
-
- '// ': {
- type: 'Program',
- body: [],
- range: [3, 3],
- comments: [{
- type: 'Line',
- value: ' ',
- range: [0, 3]
- }]
- },
-
- '/**/42': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [4, 6],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 6 }
- }
- },
- range: [4, 6],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 6 }
- },
- leadingComments: [{
- type: 'Block',
- value: '',
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- }
- }]
- }],
- range: [4, 6],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 6 }
- },
- comments: [{
- type: 'Block',
- value: '',
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- }
- }]
- },
-
- '42/**/': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [0, 2],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 2 }
- },
- trailingComments: [{
- type: 'Block',
- value: '',
- range: [2, 6],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 6 }
- }
- }]
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- }],
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- },
- comments: [{
- type: 'Block',
- value: '',
- range: [2, 6],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 6 }
- }
- }]
- },
-
- '// Hello, world!\n\n// Another hello\n42': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [37, 39],
- loc: {
- start: { line: 4, column: 0 },
- end: { line: 4, column: 2 }
- }
- },
- range: [37, 39],
- loc: {
- start: { line: 4, column: 0 },
- end: { line: 4, column: 2 }
- },
- leadingComments: [{
- type: 'Line',
- value: ' Hello, world!',
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- }, {
- type: 'Line',
- value: ' Another hello',
- range: [18, 36],
- loc: {
- start: { line: 3, column: 0 },
- end: { line: 3, column: 18 }
- }
- }]
- }],
- range: [37, 39],
- loc: {
- start: { line: 4, column: 0 },
- end: { line: 4, column: 2 }
- },
- comments: [{
- type: 'Line',
- value: ' Hello, world!',
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- }, {
- type: 'Line',
- value: ' Another hello',
- range: [18, 36],
- loc: {
- start: { line: 3, column: 0 },
- end: { line: 3, column: 18 }
- }
- }]
- },
-
- 'if (x) { doThat() // Some comment\n }': {
- type: 'Program',
- body: [{
- type: 'IfStatement',
- test: {
- type: 'Identifier',
- name: 'x',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- consequent: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'doThat',
- range: [9, 15],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 15 }
- }
- },
- 'arguments': [],
- range: [9, 17],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 17 }
- }
- },
- range: [9, 17],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 17 }
- },
- trailingComments: [{
- type: 'Line',
- value: ' Some comment',
- range: [18, 33],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 33 }
- }
- }]
- }],
- range: [7, 36],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 2, column: 2 }
- }
- },
- alternate: null,
- range: [0, 36],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 2, column: 2 }
- }
- }],
- range: [0, 36],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 2, column: 2 }
- },
- comments: [{
- type: 'Line',
- value: ' Some comment',
- range: [18, 33],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 33 }
- }
- }]
- },
-
- 'if (x) { // Some comment\ndoThat(); }': {
- type: 'Program',
- body: [{
- type: 'IfStatement',
- test: {
- type: 'Identifier',
- name: 'x',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- consequent: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'doThat',
- range: [25, 31],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 6 }
- }
- },
- 'arguments': [],
- range: [25, 33],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 8 }
- }
- },
- range: [25, 34],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 9 }
- },
- leadingComments: [{
- type: 'Line',
- value: ' Some comment',
- range: [9, 24],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 24 }
- }
- }]
- }],
- range: [7, 36],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 2, column: 11 }
- }
- },
- alternate: null,
- range: [0, 36],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 2, column: 11 }
- }
- }],
- range: [0, 36],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 2, column: 11 }
- },
- comments: [{
- type: 'Line',
- value: ' Some comment',
- range: [9, 24],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 24 }
- }
- }]
- },
-
- 'if (x) { /* Some comment */ doThat() }': {
- type: 'Program',
- body: [{
- type: 'IfStatement',
- test: {
- type: 'Identifier',
- name: 'x',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- consequent: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'doThat',
- range: [28, 34],
- loc: {
- start: { line: 1, column: 28 },
- end: { line: 1, column: 34 }
- }
- },
- 'arguments': [],
- range: [28, 36],
- loc: {
- start: { line: 1, column: 28 },
- end: { line: 1, column: 36 }
- }
- },
- range: [28, 37],
- loc: {
- start: { line: 1, column: 28 },
- end: { line: 1, column: 37 }
- },
- leadingComments: [{
- type: 'Block',
- value: ' Some comment ',
- range: [9, 27],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 27 }
- }
- }]
- }],
- range: [7, 38],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 38 }
- }
- },
- alternate: null,
- range: [0, 38],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 38 }
- }
- }],
- range: [0, 38],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 38 }
- },
- comments: [{
- type: 'Block',
- value: ' Some comment ',
- range: [9, 27],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 27 }
- }
- }]
- },
-
- 'if (x) { doThat() /* Some comment */ }': {
- type: 'Program',
- body: [{
- type: 'IfStatement',
- test: {
- type: 'Identifier',
- name: 'x',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- consequent: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'doThat',
- range: [9, 15],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 15 }
- }
- },
- 'arguments': [],
- range: [9, 17],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 17 }
- },
- trailingComments: [{
- type: 'Block',
- value: ' Some comment ',
- range: [18, 36],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 36 }
- }
- }]
- },
- range: [9, 37],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 37 }
- }
- }],
- range: [7, 38],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 38 }
- }
- },
- alternate: null,
- range: [0, 38],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 38 }
- }
- }],
- range: [0, 38],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 38 }
- },
- comments: [{
- type: 'Block',
- value: ' Some comment ',
- range: [18, 36],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 36 }
- }
- }]
- },
-
- 'switch (answer) { case 42: /* perfect */ bingo() }': {
- type: 'Program',
- body: [{
- type: 'SwitchStatement',
- discriminant: {
- type: 'Identifier',
- name: 'answer',
- range: [8, 14],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 14 }
- }
- },
- cases: [{
- type: 'SwitchCase',
- test: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [23, 25],
- loc: {
- start: { line: 1, column: 23 },
- end: { line: 1, column: 25 }
- }
- },
- consequent: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'bingo',
- range: [41, 46],
- loc: {
- start: { line: 1, column: 41 },
- end: { line: 1, column: 46 }
- }
- },
- 'arguments': [],
- range: [41, 48],
- loc: {
- start: { line: 1, column: 41 },
- end: { line: 1, column: 48 }
- }
- },
- range: [41, 49],
- loc: {
- start: { line: 1, column: 41 },
- end: { line: 1, column: 49 }
- },
- leadingComments: [{
- type: 'Block',
- value: ' perfect ',
- range: [27, 40],
- loc: {
- start: { line: 1, column: 27 },
- end: { line: 1, column: 40 }
- }
- }]
- }],
- range: [18, 49],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 49 }
- }
- }],
- range: [0, 50],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 50 }
- }
- }],
- range: [0, 50],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 50 }
- },
- comments: [{
- type: 'Block',
- value: ' perfect ',
- range: [27, 40],
- loc: {
- start: { line: 1, column: 27 },
- end: { line: 1, column: 40 }
- }
- }]
- },
-
- 'switch (answer) { case 42: bingo() /* perfect */ }': {
- type: 'Program',
- body: [{
- type: 'SwitchStatement',
- discriminant: {
- type: 'Identifier',
- name: 'answer',
- range: [8, 14],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 14 }
- }
- },
- cases: [{
- type: 'SwitchCase',
- test: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [23, 25],
- loc: {
- start: { line: 1, column: 23 },
- end: { line: 1, column: 25 }
- }
- },
- consequent: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'bingo',
- range: [27, 32],
- loc: {
- start: { line: 1, column: 27 },
- end: { line: 1, column: 32 }
- }
- },
- 'arguments': [],
- range: [27, 34],
- loc: {
- start: { line: 1, column: 27 },
- end: { line: 1, column: 34 }
- },
- trailingComments: [{
- type: 'Block',
- value: ' perfect ',
- range: [35, 48],
- loc: {
- start: { line: 1, column: 35 },
- end: { line: 1, column: 48 }
- }
- }]
- },
- range: [27, 49],
- loc: {
- start: { line: 1, column: 27 },
- end: { line: 1, column: 49 }
- }
- }],
- range: [18, 49],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 49 }
- }
- }],
- range: [0, 50],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 50 }
- }
- }],
- range: [0, 50],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 50 }
- },
- comments: [{
- type: 'Block',
- value: ' perfect ',
- range: [35, 48],
- loc: {
- start: { line: 1, column: 35 },
- end: { line: 1, column: 48 }
- }
- }]
- },
-
- '/* header */ (function(){ var version = 1; }).call(this)': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'MemberExpression',
- computed: false,
- object: {
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'version',
- range: [30, 37],
- loc: {
- start: { line: 1, column: 30 },
- end: { line: 1, column: 37 }
- }
- },
- init: {
- type: 'Literal',
- value: 1,
- raw: '1',
- range: [40, 41],
- loc: {
- start: { line: 1, column: 40 },
- end: { line: 1, column: 41 }
- }
- },
- range: [30, 41],
- loc: {
- start: { line: 1, column: 30 },
- end: { line: 1, column: 41 }
- }
- }],
- kind: 'var',
- range: [26, 42],
- loc: {
- start: { line: 1, column: 26 },
- end: { line: 1, column: 42 }
- }
- }],
- range: [24, 44],
- loc: {
- start: { line: 1, column: 24 },
- end: { line: 1, column: 44 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [14, 44],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 44 }
- }
- },
- property: {
- type: 'Identifier',
- name: 'call',
- range: [46, 50],
- loc: {
- start: { line: 1, column: 46 },
- end: { line: 1, column: 50 }
- }
- },
- range: [13, 50],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 50 }
- }
- },
- 'arguments': [{
- type: 'ThisExpression',
- range: [51, 55],
- loc: {
- start: { line: 1, column: 51 },
- end: { line: 1, column: 55 }
- }
- }],
- range: [13, 56],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 56 }
- }
- },
- range: [13, 56],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 56 }
- },
- leadingComments: [{
- type: 'Block',
- value: ' header ',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- }]
- }],
- range: [13, 56],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 56 }
- },
- comments: [{
- type: 'Block',
- value: ' header ',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- }]
- },
-
- '(function(){ var version = 1; /* sync */ }).call(this)': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'MemberExpression',
- computed: false,
- object: {
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'version',
- range: [17, 24],
- loc: {
- start: { line: 1, column: 17 },
- end: { line: 1, column: 24 }
- }
- },
- init: {
- type: 'Literal',
- value: 1,
- raw: '1',
- range: [27, 28],
- loc: {
- start: { line: 1, column: 27 },
- end: { line: 1, column: 28 }
- }
- },
- range: [17, 28],
- loc: {
- start: { line: 1, column: 17 },
- end: { line: 1, column: 28 }
- }
- }],
- kind: 'var',
- range: [13, 29],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 29 }
- },
- trailingComments: [{
- type: 'Block',
- value: ' sync ',
- range: [30, 40],
- loc: {
- start: { line: 1, column: 30 },
- end: { line: 1, column: 40 }
- }
- }]
- }],
- range: [11, 42],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 1, column: 42 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [1, 42],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 1, column: 42 }
- }
- },
- property: {
- type: 'Identifier',
- name: 'call',
- range: [44, 48],
- loc: {
- start: { line: 1, column: 44 },
- end: { line: 1, column: 48 }
- },
- leadingComments: [{
- type: 'Block',
- value: ' sync ',
- range: [30, 40],
- loc: {
- start: { line: 1, column: 30 },
- end: { line: 1, column: 40 }
- }
- }]
- },
- range: [0, 48],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 48 }
- }
- },
- 'arguments': [{
- type: 'ThisExpression',
- range: [49, 53],
- loc: {
- start: { line: 1, column: 49 },
- end: { line: 1, column: 53 }
- }
- }],
- range: [0, 54],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 54 }
- }
- },
- range: [0, 54],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 54 }
- }
- }],
- range: [0, 54],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 54 }
- },
- comments: [{
- type: 'Block',
- value: ' sync ',
- range: [30, 40],
- loc: {
- start: { line: 1, column: 30 },
- end: { line: 1, column: 40 }
- }
- }]
- },
-
- 'function f() { /* infinite */ while (true) { } /* bar */ var each; }': {
- type: 'Program',
- body: [{
- type: 'FunctionDeclaration',
- id: {
- type: 'Identifier',
- name: 'f',
- range: [9, 10],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 10 }
- }
- },
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'WhileStatement',
- test: {
- type: 'Literal',
- value: true,
- raw: 'true',
- range: [37, 41],
- loc: {
- start: { line: 1, column: 37 },
- end: { line: 1, column: 41 }
- }
- },
- body: {
- type: 'BlockStatement',
- body: [],
- range: [43, 46],
- loc: {
- start: { line: 1, column: 43 },
- end: { line: 1, column: 46 }
- }
- },
- range: [30, 46],
- loc: {
- start: { line: 1, column: 30 },
- end: { line: 1, column: 46 }
- },
- leadingComments: [{
- type: 'Block',
- value: ' infinite ',
- range: [15, 29],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 29 }
- }
- }],
- trailingComments: [{
- type: 'Block',
- value: ' bar ',
- range: [47, 56],
- loc: {
- start: { line: 1, column: 47 },
- end: { line: 1, column: 56 }
- }
- }]
- }, {
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'each',
- range: [61, 65],
- loc: {
- start: { line: 1, column: 61 },
- end: { line: 1, column: 65 }
- }
- },
- init: null,
- range: [61, 65],
- loc: {
- start: { line: 1, column: 61 },
- end: { line: 1, column: 65 }
- }
- }],
- kind: 'var',
- range: [57, 66],
- loc: {
- start: { line: 1, column: 57 },
- end: { line: 1, column: 66 }
- },
- leadingComments: [{
- type: 'Block',
- value: ' bar ',
- range: [47, 56],
- loc: {
- start: { line: 1, column: 47 },
- end: { line: 1, column: 56 }
- }
- }]
- }],
- range: [13, 68],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 68 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [0, 68],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 68 }
- }
- }],
- range: [0, 68],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 68 }
- },
- comments: [{
- type: 'Block',
- value: ' infinite ',
- range: [15, 29],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 29 }
- }
- }, {
- type: 'Block',
- value: ' bar ',
- range: [47, 56],
- loc: {
- start: { line: 1, column: 47 },
- end: { line: 1, column: 56 }
- }
- }]
- },
-
- '<!-- foo': {
- type: 'Program',
- body: [],
- comments: [{
- type: 'Line',
- value: ' foo'
- }]
- },
-
- 'var x = 1<!--foo': {
- type: 'Program',
- body: [{
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x'
- },
- init: {
- type: 'Literal',
- value: 1,
- raw: '1'
- }
- }],
- kind: 'var'
- }],
- comments: [{
- type: 'Line',
- value: 'foo'
- }]
- },
-
- '--> comment': {
- type: 'Program',
- body: [],
- range: [11, 11],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 1, column: 11 }
- },
- comments: [{
- type: 'Line',
- value: ' comment',
- range: [0, 11],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 11 }
- }
- }]
- },
-
- '<!-- comment': {
- type: 'Program',
- body: [],
- range: [12, 12],
- loc: {
- start: { line: 1, column: 12 },
- end: { line: 1, column: 12 }
- },
- comments: [{
- type: 'Line',
- value: ' comment',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- }]
- },
-
- ' \t --> comment': {
- type: 'Program',
- body: [],
- range: [14, 14],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 14 }
- },
- comments: [{
- type: 'Line',
- value: ' comment',
- range: [3, 14],
- loc: {
- start: { line: 1, column: 3 },
- end: { line: 1, column: 14 }
- }
- }]
- },
-
- ' \t /* block comment */ --> comment': {
- type: 'Program',
- body: [],
- range: [35, 35],
- loc: {
- start: { line: 1, column: 35 },
- end: { line: 1, column: 35 }
- },
- comments: [{
- type: 'Block',
- value: ' block comment ',
- range: [3, 22],
- loc: {
- start: { line: 1, column: 3 },
- end: { line: 1, column: 22 }
- }
- }, {
- type: 'Line',
- value: ' comment',
- range: [24, 35],
- loc: {
- start: { line: 1, column: 24 },
- end: { line: 1, column: 35 }
- }
- }]
- },
-
- '/* block comment */--> comment': {
- type: 'Program',
- body: [],
- range: [30, 30],
- loc: {
- start: { line: 1, column: 30 },
- end: { line: 1, column: 30 }
- },
- comments: [{
- type: 'Block',
- value: ' block comment ',
- range: [0, 19],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 19 }
- }
- }, {
- type: 'Line',
- value: ' comment',
- range: [19, 30],
- loc: {
- start: { line: 1, column: 19 },
- end: { line: 1, column: 30 }
- }
- }]
- },
-
- '/* not comment*/; i-->0': {
- type: 'Program',
- body: [{
- type: 'EmptyStatement',
- range: [16, 17],
- loc: {
- start: { line: 1, column: 16 },
- end: { line: 1, column: 17 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '>',
- left: {
- type: 'UpdateExpression',
- operator: '--',
- argument: {
- type: 'Identifier',
- name: 'i',
- range: [18, 19],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 19 }
- }
- },
- prefix: false,
- range: [18, 21],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 21 }
- }
- },
- right: {
- type: 'Literal',
- value: 0,
- raw: '0',
- range: [22, 23],
- loc: {
- start: { line: 1, column: 22 },
- end: { line: 1, column: 23 }
- }
- },
- range: [18, 23],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 23 }
- }
- },
- range: [18, 23],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 23 }
- }
- }],
- range: [16, 23],
- loc: {
- start: { line: 1, column: 16 },
- end: { line: 1, column: 23 }
- },
- tokens: [{
- type: 'Punctuator',
- value: ';',
- range: [16, 17],
- loc: {
- start: { line: 1, column: 16 },
- end: { line: 1, column: 17 }
- }
- }, {
- type: 'Identifier',
- value: 'i',
- range: [18, 19],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 19 }
- }
- }, {
- type: 'Punctuator',
- value: '--',
- range: [19, 21],
- loc: {
- start: { line: 1, column: 19 },
- end: { line: 1, column: 21 }
- }
- }, {
- type: 'Punctuator',
- value: '>',
- range: [21, 22],
- loc: {
- start: { line: 1, column: 21 },
- end: { line: 1, column: 22 }
- }
- }, {
- type: 'Numeric',
- value: '0',
- range: [22, 23],
- loc: {
- start: { line: 1, column: 22 },
- end: { line: 1, column: 23 }
- }
- }]
-
- },
-
- 'while (i-->0) {}': {
- type: 'WhileStatement',
- test: {
- type: 'BinaryExpression',
- operator: '>',
- left: {
- type: 'UpdateExpression',
- operator: '--',
- argument: {
- type: 'Identifier',
- name: 'i',
- range: [7, 8],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 8 }
- }
- },
- prefix: false,
- range: [7, 10],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 10 }
- }
- },
- right: {
- type: 'Literal',
- value: 0,
- raw: '0',
- range: [11, 12],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 1, column: 12 }
- }
- },
- range: [7, 12],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 12 }
- }
- },
- body: {
- type: 'BlockStatement',
- body: [],
- range: [14, 16],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 16 }
- }
- },
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- }
- },
-
- 'Numeric Literals': {
-
- '0': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 0,
- raw: '0',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
-
- '42': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [0, 2],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 2 }
- }
- },
- range: [0, 2],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 2 }
- }
- },
-
- '3': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 3,
- raw: '3',
- range: [0, 1]
- },
- range: [0, 1]
- }],
- range: [0, 1],
- tokens: [{
- type: 'Numeric',
- value: '3',
- range: [0, 1]
- }]
- },
-
- '5': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 5,
- raw: '5',
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- }],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- },
- tokens: [{
- type: 'Numeric',
- value: '5',
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- }]
- },
-
- '.14': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 0.14,
- raw: '.14',
- range: [0, 3],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 3 }
- }
- },
- range: [0, 3],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 3 }
- }
- },
-
- '3.14159': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 3.14159,
- raw: '3.14159',
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
-
- '6.02214179e+23': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 6.02214179e+23,
- raw: '6.02214179e+23',
- range: [0, 14],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 14 }
- }
- },
- range: [0, 14],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 14 }
- }
- },
-
- '1.492417830e-10': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 1.49241783e-10,
- raw: '1.492417830e-10',
- range: [0, 15],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 15 }
- }
- },
- range: [0, 15],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 15 }
- }
- },
-
- '0x0': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 0,
- raw: '0x0',
- range: [0, 3],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 3 }
- }
- },
- range: [0, 3],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 3 }
- }
- },
-
- '0x0;': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 0,
- raw: '0x0',
- range: [0, 3],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 3 }
- }
- },
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- }
- },
-
- '0e+100 ': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 0,
- raw: '0e+100',
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
-
- '0e+100': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 0,
- raw: '0e+100',
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
-
- '0xabc': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 0xabc,
- raw: '0xabc',
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
-
- '0xdef': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 0xdef,
- raw: '0xdef',
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
-
- '0X1A': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 0x1A,
- raw: '0X1A',
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- }
- },
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- }
- },
-
- '0x10': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 0x10,
- raw: '0x10',
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- }
- },
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- }
- },
-
- '0x100': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 0x100,
- raw: '0x100',
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
-
- '0X04': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 0X04,
- raw: '0X04',
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- }
- },
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- }
- },
-
- '02': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 2,
- raw: '02',
- range: [0, 2],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 2 }
- }
- },
- range: [0, 2],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 2 }
- }
- },
-
- '012': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 10,
- raw: '012',
- range: [0, 3],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 3 }
- }
- },
- range: [0, 3],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 3 }
- }
- },
-
- '0012': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 10,
- raw: '0012',
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- }
- },
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- }
- },
-
- '08': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 8,
- raw: '08',
- range: [0, 2],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 2 }
- }
- },
- range: [0, 2],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 2 }
- }
- },
-
- '0008': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 8,
- raw: '0008',
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- }
- },
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- }
- },
-
- '09': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 9,
- raw: '09',
- range: [0, 2],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 2 }
- }
- },
- range: [0, 2],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 2 }
- }
- },
-
- '09.5': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 9.5,
- raw: '09.5',
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- }
- },
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- }
- }
-
- },
-
- 'String Literals': {
-
- '"Hello"': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'Hello',
- raw: '"Hello"',
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
-
- '"\\n\\r\\t\\v\\b\\f\\\\\\\'\\"\\0"': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: '\n\r\t\x0B\b\f\\\'"\x00',
- raw: '"\\n\\r\\t\\v\\b\\f\\\\\\\'\\"\\0"',
- range: [0, 22],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 22 }
- }
- },
- range: [0, 22],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 22 }
- }
- },
-
- '"\\u0061"': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'a',
- raw: '"\\u0061"',
- range: [0, 8],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 8 }
- }
- },
- range: [0, 8],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 8 }
- }
- },
-
- '"\\x61"': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'a',
- raw: '"\\x61"',
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
-
- '"\\u00"': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'u00',
- raw: '"\\u00"',
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
-
- '"\\xt"': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'xt',
- raw: '"\\xt"',
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
-
- '"Hello\\nworld"': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'Hello\nworld',
- raw: '"Hello\\nworld"',
- range: [0, 14],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 14 }
- }
- },
- range: [0, 14],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 14 }
- }
- },
-
- '"Hello\\\nworld"': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'Helloworld',
- raw: '"Hello\\\nworld"',
- range: [0, 14],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 2, column: 6 }
- }
- },
- range: [0, 14],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 2, column: 6 }
- }
- },
-
- '"Hello\\02World"': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'Hello\u0002World',
- raw: '"Hello\\02World"',
- range: [0, 15],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 15 }
- }
- },
- range: [0, 15],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 15 }
- }
- },
-
- '"Hello\\012World"': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'Hello\u000AWorld',
- raw: '"Hello\\012World"',
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- },
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- },
-
- '"Hello\\122World"': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'Hello\122World',
- raw: '"Hello\\122World"',
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- },
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- },
-
- '"Hello\\0122World"': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'Hello\u000A2World',
- raw: '"Hello\\0122World"',
- range: [0, 17],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 17 }
- }
- },
- range: [0, 17],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 17 }
- }
- },
-
- '"Hello\\312World"': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'Hello\u00CAWorld',
- raw: '"Hello\\312World"',
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- },
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- },
-
- '"Hello\\412World"': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'Hello\412World',
- raw: '"Hello\\412World"',
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- },
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- },
-
- '"Hello\\812World"': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'Hello812World',
- raw: '"Hello\\812World"',
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- },
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- },
-
- '"Hello\\712World"': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'Hello\712World',
- raw: '"Hello\\712World"',
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- },
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- },
-
- '"Hello\\0World"': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'Hello\u0000World',
- raw: '"Hello\\0World"',
- range: [0, 14],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 14 }
- }
- },
- range: [0, 14],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 14 }
- }
- },
-
- '"Hello\\\r\nworld"': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'Helloworld',
- raw: '"Hello\\\r\nworld"',
- range: [0, 15],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 2, column: 6 }
- }
- },
- range: [0, 15],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 2, column: 6 }
- }
- },
-
- '"Hello\\1World"': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'Hello\u0001World',
- raw: '"Hello\\1World"',
- range: [0, 14],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 14 }
- }
- },
- range: [0, 14],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 14 }
- }
- }
- },
-
- 'Regular Expression Literals': {
-
- 'var x = /[a-z]/i': {
- type: 'Program',
- body: [{
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- init: {
- type: 'Literal',
- value: '/[a-z]/i',
- raw: '/[a-z]/i',
- range: [8, 16],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 16 }
- }
- },
- range: [4, 16],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 16 }
- }
- }],
- kind: 'var',
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- }],
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- },
- tokens: [{
- type: 'Keyword',
- value: 'var',
- range: [0, 3],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 3 }
- }
- }, {
- type: 'Identifier',
- value: 'x',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- }, {
- type: 'Punctuator',
- value: '=',
- range: [6, 7],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 7 }
- }
- }, {
- type: 'RegularExpression',
- value: '/[a-z]/i',
- range: [8, 16],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 16 }
- }
- }]
- },
-
- 'var x = /[x-z]/i': {
- type: 'Program',
- body: [{
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- range: [4, 5]
- },
- init: {
- type: 'Literal',
- value: '/[x-z]/i',
- raw: '/[x-z]/i',
- range: [8, 16]
- },
- range: [4, 16]
- }],
- kind: 'var',
- range: [0, 16]
- }],
- range: [0, 16],
- tokens: [{
- type: 'Keyword',
- value: 'var',
- range: [0, 3]
- }, {
- type: 'Identifier',
- value: 'x',
- range: [4, 5]
- }, {
- type: 'Punctuator',
- value: '=',
- range: [6, 7]
- }, {
- type: 'RegularExpression',
- value: '/[x-z]/i',
- range: [8, 16]
- }]
- },
-
- 'var x = /[a-c]/i': {
- type: 'Program',
- body: [{
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- init: {
- type: 'Literal',
- value: '/[a-c]/i',
- raw: '/[a-c]/i',
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 16 }
- }
- },
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 16 }
- }
- }],
- kind: 'var',
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- }],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- },
- tokens: [{
- type: 'Keyword',
- value: 'var',
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 3 }
- }
- }, {
- type: 'Identifier',
- value: 'x',
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- }, {
- type: 'Punctuator',
- value: '=',
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 7 }
- }
- }, {
- type: 'RegularExpression',
- value: '/[a-c]/i',
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 16 }
- }
- }]
- },
-
- 'var x = /[P QR]/i': {
- type: 'Program',
- body: [{
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- init: {
- type: 'Literal',
- value: '/[P QR]/i',
- raw: '/[P QR]/i',
- range: [8, 17],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 17 }
- }
- },
- range: [4, 17],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 17 }
- }
- }],
- kind: 'var',
- range: [0, 17],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 17 }
- }
- }],
- range: [0, 17],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 17 }
- },
- tokens: [{
- type: 'Keyword',
- value: 'var',
- range: [0, 3],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 3 }
- }
- }, {
- type: 'Identifier',
- value: 'x',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- }, {
- type: 'Punctuator',
- value: '=',
- range: [6, 7],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 7 }
- }
- }, {
- type: 'RegularExpression',
- value: '/[P QR]/i',
- range: [8, 17],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 17 }
- }
- }]
- },
-
- 'var x = /[\\]/]/': {
- type: 'Program',
- body: [{
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- init: {
- type: 'Literal',
- value: new RegExp('[\\]/]').toString(),
- raw: '/[\\]/]/',
- range: [8, 15],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 15 }
- }
- },
- range: [4, 15],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 15 }
- }
- }],
- kind: 'var',
- range: [0, 15],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 15 }
- }
- }],
- range: [0, 15],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 15 }
- },
- tokens: [{
- type: 'Keyword',
- value: 'var',
- range: [0, 3],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 3 }
- }
- }, {
- type: 'Identifier',
- value: 'x',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- }, {
- type: 'Punctuator',
- value: '=',
- range: [6, 7],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 7 }
- }
- }, {
- type: 'RegularExpression',
- value: '/[\\]/]/',
- range: [8, 15],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 15 }
- }
- }]
- },
-
- 'var x = /foo\\/bar/': {
- type: 'Program',
- body: [{
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- init: {
- type: 'Literal',
- value: '/foo\\/bar/',
- raw: '/foo\\/bar/',
- range: [8, 18],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 18 }
- }
- },
- range: [4, 18],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 18 }
- }
- }],
- kind: 'var',
- range: [0, 18],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 18 }
- }
- }],
- range: [0, 18],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 18 }
- },
- tokens: [{
- type: 'Keyword',
- value: 'var',
- range: [0, 3],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 3 }
- }
- }, {
- type: 'Identifier',
- value: 'x',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- }, {
- type: 'Punctuator',
- value: '=',
- range: [6, 7],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 7 }
- }
- }, {
- type: 'RegularExpression',
- value: '/foo\\/bar/',
- range: [8, 18],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 18 }
- }
- }]
- },
-
- 'var x = /=([^=\\s])+/g': {
- type: 'Program',
- body: [{
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- init: {
- type: 'Literal',
- value: '/=([^=\\s])+/g',
- raw: '/=([^=\\s])+/g',
- range: [8, 21],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 21 }
- }
- },
- range: [4, 21],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 21 }
- }
- }],
- kind: 'var',
- range: [0, 21],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 21 }
- }
- }],
- range: [0, 21],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 21 }
- },
- tokens: [{
- type: 'Keyword',
- value: 'var',
- range: [0, 3],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 3 }
- }
- }, {
- type: 'Identifier',
- value: 'x',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- }, {
- type: 'Punctuator',
- value: '=',
- range: [6, 7],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 7 }
- }
- }, {
- type: 'RegularExpression',
- value: '/=([^=\\s])+/g',
- range: [8, 21],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 21 }
- }
- }]
- },
-
- 'var x = /42/g.test': {
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- init: {
- type: 'MemberExpression',
- computed: false,
- object: {
- type: 'Literal',
- value: '/42/g',
- raw: '/42/g',
- range: [8, 13],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 13 }
- }
- },
- property: {
- type: 'Identifier',
- name: 'test',
- range: [14, 18],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 18 }
- }
- },
- range: [8, 18],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 18 }
- }
- },
- range: [4, 18],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 18 }
- }
- }],
- kind: 'var',
- range: [0, 18],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 18 }
- }
- }
-
- },
-
- 'Left-Hand-Side Expression': {
-
- 'new Button': {
- type: 'ExpressionStatement',
- expression: {
- type: 'NewExpression',
- callee: {
- type: 'Identifier',
- name: 'Button',
- range: [4, 10],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 10 }
- }
- },
- 'arguments': [],
- range: [0, 10],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 10 }
- }
- },
- range: [0, 10],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 10 }
- }
- },
-
- 'new Button()': {
- type: 'ExpressionStatement',
- expression: {
- type: 'NewExpression',
- callee: {
- type: 'Identifier',
- name: 'Button',
- range: [4, 10],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 10 }
- }
- },
- 'arguments': [],
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
-
- 'new new foo': {
- type: 'ExpressionStatement',
- expression: {
- type: 'NewExpression',
- callee: {
- type: 'NewExpression',
- callee: {
- type: 'Identifier',
- name: 'foo',
- range: [8, 11],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 11 }
- }
- },
- 'arguments': [],
- range: [4, 11],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 11 }
- }
- },
- 'arguments': [],
- range: [0, 11],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 11 }
- }
- },
- range: [0, 11],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 11 }
- }
- },
-
- 'new new foo()': {
- type: 'ExpressionStatement',
- expression: {
- type: 'NewExpression',
- callee: {
- type: 'NewExpression',
- callee: {
- type: 'Identifier',
- name: 'foo',
- range: [8, 11],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 11 }
- }
- },
- 'arguments': [],
- range: [4, 13],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 13 }
- }
- },
- 'arguments': [],
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- },
-
- 'new foo().bar()': {
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'MemberExpression',
- computed: false,
- object: {
- type: 'NewExpression',
- callee: {
- type: 'Identifier',
- name: 'foo',
- range: [4, 7],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 7 }
- }
- },
- 'arguments': [],
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
- property: {
- type: 'Identifier',
- name: 'bar',
- range: [10, 13],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 13 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- },
- 'arguments': [],
- range: [0, 15],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 15 }
- }
- },
- range: [0, 15],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 15 }
- }
- },
-
- 'new foo[bar]': {
- type: 'ExpressionStatement',
- expression: {
- type: 'NewExpression',
- callee: {
- type: 'MemberExpression',
- computed: true,
- object: {
- type: 'Identifier',
- name: 'foo',
- range: [4, 7],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 7 }
- }
- },
- property: {
- type: 'Identifier',
- name: 'bar',
- range: [8, 11],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 11 }
- }
- },
- range: [4, 12],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 12 }
- }
- },
- 'arguments': [],
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
-
- 'new foo.bar()': {
- type: 'ExpressionStatement',
- expression: {
- type: 'NewExpression',
- callee: {
- type: 'MemberExpression',
- computed: false,
- object: {
- type: 'Identifier',
- name: 'foo',
- range: [4, 7],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 7 }
- }
- },
- property: {
- type: 'Identifier',
- name: 'bar',
- range: [8, 11],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 11 }
- }
- },
- range: [4, 11],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 11 }
- }
- },
- 'arguments': [],
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- },
-
- '( new foo).bar()': {
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'MemberExpression',
- computed: false,
- object: {
- type: 'NewExpression',
- callee: {
- type: 'Identifier',
- name: 'foo',
- range: [6, 9],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 9 }
- }
- },
- 'arguments': [],
- range: [2, 9],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 9 }
- }
- },
- property: {
- type: 'Identifier',
- name: 'bar',
- range: [11, 14],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 1, column: 14 }
- }
- },
- range: [0, 14],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 14 }
- }
- },
- 'arguments': [],
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- },
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- },
-
- 'foo(bar, baz)': {
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'foo',
- range: [0, 3],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 3 }
- }
- },
- 'arguments': [{
- type: 'Identifier',
- name: 'bar',
- range: [4, 7],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 7 }
- }
- }, {
- type: 'Identifier',
- name: 'baz',
- range: [9, 12],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 12 }
- }
- }],
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- },
-
- '( foo )()': {
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'foo',
- range: [5, 8],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 8 }
- }
- },
- 'arguments': [],
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- },
-
- 'universe.milkyway': {
- type: 'ExpressionStatement',
- expression: {
- type: 'MemberExpression',
- computed: false,
- object: {
- type: 'Identifier',
- name: 'universe',
- range: [0, 8],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 8 }
- }
- },
- property: {
- type: 'Identifier',
- name: 'milkyway',
- range: [9, 17],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 17 }
- }
- },
- range: [0, 17],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 17 }
- }
- },
- range: [0, 17],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 17 }
- }
- },
-
- 'universe.milkyway.solarsystem': {
- type: 'ExpressionStatement',
- expression: {
- type: 'MemberExpression',
- computed: false,
- object: {
- type: 'MemberExpression',
- computed: false,
- object: {
- type: 'Identifier',
- name: 'universe',
- range: [0, 8],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 8 }
- }
- },
- property: {
- type: 'Identifier',
- name: 'milkyway',
- range: [9, 17],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 17 }
- }
- },
- range: [0, 17],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 17 }
- }
- },
- property: {
- type: 'Identifier',
- name: 'solarsystem',
- range: [18, 29],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 29 }
- }
- },
- range: [0, 29],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 29 }
- }
- },
- range: [0, 29],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 29 }
- }
- },
-
- 'universe.milkyway.solarsystem.Earth': {
- type: 'ExpressionStatement',
- expression: {
- type: 'MemberExpression',
- computed: false,
- object: {
- type: 'MemberExpression',
- computed: false,
- object: {
- type: 'MemberExpression',
- computed: false,
- object: {
- type: 'Identifier',
- name: 'universe',
- range: [0, 8],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 8 }
- }
- },
- property: {
- type: 'Identifier',
- name: 'milkyway',
- range: [9, 17],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 17 }
- }
- },
- range: [0, 17],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 17 }
- }
- },
- property: {
- type: 'Identifier',
- name: 'solarsystem',
- range: [18, 29],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 29 }
- }
- },
- range: [0, 29],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 29 }
- }
- },
- property: {
- type: 'Identifier',
- name: 'Earth',
- range: [30, 35],
- loc: {
- start: { line: 1, column: 30 },
- end: { line: 1, column: 35 }
- }
- },
- range: [0, 35],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 35 }
- }
- },
- range: [0, 35],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 35 }
- }
- },
-
- 'universe[galaxyName, otherUselessName]': {
- type: 'ExpressionStatement',
- expression: {
- type: 'MemberExpression',
- computed: true,
- object: {
- type: 'Identifier',
- name: 'universe',
- range: [0, 8],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 8 }
- }
- },
- property: {
- type: 'SequenceExpression',
- expressions: [{
- type: 'Identifier',
- name: 'galaxyName',
- range: [9, 19],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 19 }
- }
- }, {
- type: 'Identifier',
- name: 'otherUselessName',
- range: [21, 37],
- loc: {
- start: { line: 1, column: 21 },
- end: { line: 1, column: 37 }
- }
- }],
- range: [9, 37],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 37 }
- }
- },
- range: [0, 38],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 38 }
- }
- },
- range: [0, 38],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 38 }
- }
- },
-
- 'universe[galaxyName]': {
- type: 'ExpressionStatement',
- expression: {
- type: 'MemberExpression',
- computed: true,
- object: {
- type: 'Identifier',
- name: 'universe',
- range: [0, 8],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 8 }
- }
- },
- property: {
- type: 'Identifier',
- name: 'galaxyName',
- range: [9, 19],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 19 }
- }
- },
- range: [0, 20],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 20 }
- }
- },
- range: [0, 20],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 20 }
- }
- },
-
- 'universe[42].galaxies': {
- type: 'ExpressionStatement',
- expression: {
- type: 'MemberExpression',
- computed: false,
- object: {
- type: 'MemberExpression',
- computed: true,
- object: {
- type: 'Identifier',
- name: 'universe',
- range: [0, 8],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 8 }
- }
- },
- property: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [9, 11],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 11 }
- }
- },
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- property: {
- type: 'Identifier',
- name: 'galaxies',
- range: [13, 21],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 21 }
- }
- },
- range: [0, 21],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 21 }
- }
- },
- range: [0, 21],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 21 }
- }
- },
-
- 'universe(42).galaxies': {
- type: 'ExpressionStatement',
- expression: {
- type: 'MemberExpression',
- computed: false,
- object: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'universe',
- range: [0, 8],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 8 }
- }
- },
- 'arguments': [{
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [9, 11],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 11 }
- }
- }],
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- property: {
- type: 'Identifier',
- name: 'galaxies',
- range: [13, 21],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 21 }
- }
- },
- range: [0, 21],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 21 }
- }
- },
- range: [0, 21],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 21 }
- }
- },
-
- 'universe(42).galaxies(14, 3, 77).milkyway': {
- type: 'ExpressionStatement',
- expression: {
- type: 'MemberExpression',
- computed: false,
- object: {
- type: 'CallExpression',
- callee: {
- type: 'MemberExpression',
- computed: false,
- object: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'universe',
- range: [0, 8],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 8 }
- }
- },
- 'arguments': [{
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [9, 11],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 11 }
- }
- }],
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- property: {
- type: 'Identifier',
- name: 'galaxies',
- range: [13, 21],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 21 }
- }
- },
- range: [0, 21],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 21 }
- }
- },
- 'arguments': [{
- type: 'Literal',
- value: 14,
- raw: '14',
- range: [22, 24],
- loc: {
- start: { line: 1, column: 22 },
- end: { line: 1, column: 24 }
- }
- }, {
- type: 'Literal',
- value: 3,
- raw: '3',
- range: [26, 27],
- loc: {
- start: { line: 1, column: 26 },
- end: { line: 1, column: 27 }
- }
- }, {
- type: 'Literal',
- value: 77,
- raw: '77',
- range: [29, 31],
- loc: {
- start: { line: 1, column: 29 },
- end: { line: 1, column: 31 }
- }
- }],
- range: [0, 32],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 32 }
- }
- },
- property: {
- type: 'Identifier',
- name: 'milkyway',
- range: [33, 41],
- loc: {
- start: { line: 1, column: 33 },
- end: { line: 1, column: 41 }
- }
- },
- range: [0, 41],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 41 }
- }
- },
- range: [0, 41],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 41 }
- }
- },
-
- 'earth.asia.Indonesia.prepareForElection(2014)': {
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'MemberExpression',
- computed: false,
- object: {
- type: 'MemberExpression',
- computed: false,
- object: {
- type: 'MemberExpression',
- computed: false,
- object: {
- type: 'Identifier',
- name: 'earth',
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
- property: {
- type: 'Identifier',
- name: 'asia',
- range: [6, 10],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 10 }
- }
- },
- range: [0, 10],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 10 }
- }
- },
- property: {
- type: 'Identifier',
- name: 'Indonesia',
- range: [11, 20],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 1, column: 20 }
- }
- },
- range: [0, 20],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 20 }
- }
- },
- property: {
- type: 'Identifier',
- name: 'prepareForElection',
- range: [21, 39],
- loc: {
- start: { line: 1, column: 21 },
- end: { line: 1, column: 39 }
- }
- },
- range: [0, 39],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 39 }
- }
- },
- 'arguments': [{
- type: 'Literal',
- value: 2014,
- raw: '2014',
- range: [40, 44],
- loc: {
- start: { line: 1, column: 40 },
- end: { line: 1, column: 44 }
- }
- }],
- range: [0, 45],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 45 }
- }
- },
- range: [0, 45],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 45 }
- }
- },
-
- 'universe.if': {
- type: 'ExpressionStatement',
- expression: {
- type: 'MemberExpression',
- computed: false,
- object: {
- type: 'Identifier',
- name: 'universe',
- range: [0, 8],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 8 }
- }
- },
- property: {
- type: 'Identifier',
- name: 'if',
- range: [9, 11],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 11 }
- }
- },
- range: [0, 11],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 11 }
- }
- },
- range: [0, 11],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 11 }
- }
- },
-
- 'universe.true': {
- type: 'ExpressionStatement',
- expression: {
- type: 'MemberExpression',
- computed: false,
- object: {
- type: 'Identifier',
- name: 'universe',
- range: [0, 8],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 8 }
- }
- },
- property: {
- type: 'Identifier',
- name: 'true',
- range: [9, 13],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 13 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- },
-
- 'universe.false': {
- type: 'ExpressionStatement',
- expression: {
- type: 'MemberExpression',
- computed: false,
- object: {
- type: 'Identifier',
- name: 'universe',
- range: [0, 8],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 8 }
- }
- },
- property: {
- type: 'Identifier',
- name: 'false',
- range: [9, 14],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 14 }
- }
- },
- range: [0, 14],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 14 }
- }
- },
- range: [0, 14],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 14 }
- }
- },
-
- 'universe.null': {
- type: 'ExpressionStatement',
- expression: {
- type: 'MemberExpression',
- computed: false,
- object: {
- type: 'Identifier',
- name: 'universe',
- range: [0, 8],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 8 }
- }
- },
- property: {
- type: 'Identifier',
- name: 'null',
- range: [9, 13],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 13 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- }
-
- },
-
- 'Postfix Expressions': {
-
- 'x++': {
- type: 'ExpressionStatement',
- expression: {
- type: 'UpdateExpression',
- operator: '++',
- argument: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- prefix: false,
- range: [0, 3],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 3 }
- }
- },
- range: [0, 3],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 3 }
- }
- },
-
- 'x--': {
- type: 'ExpressionStatement',
- expression: {
- type: 'UpdateExpression',
- operator: '--',
- argument: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- prefix: false,
- range: [0, 3],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 3 }
- }
- },
- range: [0, 3],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 3 }
- }
- },
-
- 'eval++': {
- type: 'ExpressionStatement',
- expression: {
- type: 'UpdateExpression',
- operator: '++',
- argument: {
- type: 'Identifier',
- name: 'eval',
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- }
- },
- prefix: false,
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
-
- 'eval--': {
- type: 'ExpressionStatement',
- expression: {
- type: 'UpdateExpression',
- operator: '--',
- argument: {
- type: 'Identifier',
- name: 'eval',
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- }
- },
- prefix: false,
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
-
- 'arguments++': {
- type: 'ExpressionStatement',
- expression: {
- type: 'UpdateExpression',
- operator: '++',
- argument: {
- type: 'Identifier',
- name: 'arguments',
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
- prefix: false,
- range: [0, 11],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 11 }
- }
- },
- range: [0, 11],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 11 }
- }
- },
-
- 'arguments--': {
- type: 'ExpressionStatement',
- expression: {
- type: 'UpdateExpression',
- operator: '--',
- argument: {
- type: 'Identifier',
- name: 'arguments',
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
- prefix: false,
- range: [0, 11],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 11 }
- }
- },
- range: [0, 11],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 11 }
- }
- }
-
- },
-
- 'Unary Operators': {
-
- '++x': {
- type: 'ExpressionStatement',
- expression: {
- type: 'UpdateExpression',
- operator: '++',
- argument: {
- type: 'Identifier',
- name: 'x',
- range: [2, 3],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 3 }
- }
- },
- prefix: true,
- range: [0, 3],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 3 }
- }
- },
- range: [0, 3],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 3 }
- }
- },
-
- '--x': {
- type: 'ExpressionStatement',
- expression: {
- type: 'UpdateExpression',
- operator: '--',
- argument: {
- type: 'Identifier',
- name: 'x',
- range: [2, 3],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 3 }
- }
- },
- prefix: true,
- range: [0, 3],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 3 }
- }
- },
- range: [0, 3],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 3 }
- }
- },
-
- '++eval': {
- type: 'ExpressionStatement',
- expression: {
- type: 'UpdateExpression',
- operator: '++',
- argument: {
- type: 'Identifier',
- name: 'eval',
- range: [2, 6],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 6 }
- }
- },
- prefix: true,
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
-
- '--eval': {
- type: 'ExpressionStatement',
- expression: {
- type: 'UpdateExpression',
- operator: '--',
- argument: {
- type: 'Identifier',
- name: 'eval',
- range: [2, 6],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 6 }
- }
- },
- prefix: true,
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
-
- '++arguments': {
- type: 'ExpressionStatement',
- expression: {
- type: 'UpdateExpression',
- operator: '++',
- argument: {
- type: 'Identifier',
- name: 'arguments',
- range: [2, 11],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 11 }
- }
- },
- prefix: true,
- range: [0, 11],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 11 }
- }
- },
- range: [0, 11],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 11 }
- }
- },
-
- '--arguments': {
- type: 'ExpressionStatement',
- expression: {
- type: 'UpdateExpression',
- operator: '--',
- argument: {
- type: 'Identifier',
- name: 'arguments',
- range: [2, 11],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 11 }
- }
- },
- prefix: true,
- range: [0, 11],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 11 }
- }
- },
- range: [0, 11],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 11 }
- }
- },
-
- '+x': {
- type: 'ExpressionStatement',
- expression: {
- type: 'UnaryExpression',
- operator: '+',
- argument: {
- type: 'Identifier',
- name: 'x',
- range: [1, 2],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 1, column: 2 }
- }
- },
- prefix: true,
- range: [0, 2],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 2 }
- }
- },
- range: [0, 2],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 2 }
- }
- },
-
- '-x': {
- type: 'ExpressionStatement',
- expression: {
- type: 'UnaryExpression',
- operator: '-',
- argument: {
- type: 'Identifier',
- name: 'x',
- range: [1, 2],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 1, column: 2 }
- }
- },
- prefix: true,
- range: [0, 2],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 2 }
- }
- },
- range: [0, 2],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 2 }
- }
- },
-
- '~x': {
- type: 'ExpressionStatement',
- expression: {
- type: 'UnaryExpression',
- operator: '~',
- argument: {
- type: 'Identifier',
- name: 'x',
- range: [1, 2],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 1, column: 2 }
- }
- },
- prefix: true,
- range: [0, 2],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 2 }
- }
- },
- range: [0, 2],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 2 }
- }
- },
-
- '!x': {
- type: 'ExpressionStatement',
- expression: {
- type: 'UnaryExpression',
- operator: '!',
- argument: {
- type: 'Identifier',
- name: 'x',
- range: [1, 2],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 1, column: 2 }
- }
- },
- prefix: true,
- range: [0, 2],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 2 }
- }
- },
- range: [0, 2],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 2 }
- }
- },
-
- 'void x': {
- type: 'ExpressionStatement',
- expression: {
- type: 'UnaryExpression',
- operator: 'void',
- argument: {
- type: 'Identifier',
- name: 'x',
- range: [5, 6],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 6 }
- }
- },
- prefix: true,
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
-
- 'delete x': {
- type: 'ExpressionStatement',
- expression: {
- type: 'UnaryExpression',
- operator: 'delete',
- argument: {
- type: 'Identifier',
- name: 'x',
- range: [7, 8],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 8 }
- }
- },
- prefix: true,
- range: [0, 8],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 8 }
- }
- },
- range: [0, 8],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 8 }
- }
- },
-
- 'typeof x': {
- type: 'ExpressionStatement',
- expression: {
- type: 'UnaryExpression',
- operator: 'typeof',
- argument: {
- type: 'Identifier',
- name: 'x',
- range: [7, 8],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 8 }
- }
- },
- prefix: true,
- range: [0, 8],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 8 }
- }
- },
- range: [0, 8],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 8 }
- }
- }
-
- },
-
- 'Multiplicative Operators': {
-
- 'x * y': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '*',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
-
- 'x / y': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '/',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
-
- 'x % y': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '%',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- }
-
- },
-
- 'Additive Operators': {
-
- 'x + y': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '+',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
-
- 'x - y': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '-',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
-
- '"use strict" + 42': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '+',
- left: {
- type: 'Literal',
- value: 'use strict',
- raw: '"use strict"',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- right: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [15, 17],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 17 }
- }
- },
- range: [0, 17],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 17 }
- }
- },
- range: [0, 17],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 17 }
- }
- }
-
- },
-
- 'Bitwise Shift Operator': {
-
- 'x << y': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '<<',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [5, 6],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
-
- 'x >> y': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '>>',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [5, 6],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
-
- 'x >>> y': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '>>>',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [6, 7],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- }
-
- },
-
- 'Relational Operators': {
-
- 'x < y': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '<',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
-
- 'x > y': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '>',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
-
- 'x <= y': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '<=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [5, 6],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
-
- 'x >= y': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '>=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [5, 6],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
-
- 'x in y': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: 'in',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [5, 6],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
-
- 'x instanceof y': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: 'instanceof',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [13, 14],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 14 }
- }
- },
- range: [0, 14],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 14 }
- }
- },
- range: [0, 14],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 14 }
- }
- },
-
- 'x < y < z': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '<',
- left: {
- type: 'BinaryExpression',
- operator: '<',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'z',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- }
-
- },
-
- 'Equality Operators': {
-
- 'x == y': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '==',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [5, 6],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
-
- 'x != y': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '!=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [5, 6],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
-
- 'x === y': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '===',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [6, 7],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
-
- 'x !== y': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '!==',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [6, 7],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- }
-
- },
-
- 'Binary Bitwise Operators': {
-
- 'x & y': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '&',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
-
- 'x ^ y': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '^',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
-
- 'x | y': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '|',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- }
-
- },
-
- 'Binary Expressions': {
-
- 'x + y + z': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '+',
- left: {
- type: 'BinaryExpression',
- operator: '+',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'z',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
-
- 'x - y + z': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '+',
- left: {
- type: 'BinaryExpression',
- operator: '-',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'z',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
-
- 'x + y - z': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '-',
- left: {
- type: 'BinaryExpression',
- operator: '+',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'z',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
-
- 'x - y - z': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '-',
- left: {
- type: 'BinaryExpression',
- operator: '-',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'z',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
-
- 'x + y * z': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '+',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'BinaryExpression',
- operator: '*',
- left: {
- type: 'Identifier',
- name: 'y',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'z',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- range: [4, 9],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
-
- 'x + y / z': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '+',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'BinaryExpression',
- operator: '/',
- left: {
- type: 'Identifier',
- name: 'y',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'z',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- range: [4, 9],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
-
- 'x - y % z': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '-',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'BinaryExpression',
- operator: '%',
- left: {
- type: 'Identifier',
- name: 'y',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'z',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- range: [4, 9],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
-
- 'x * y * z': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '*',
- left: {
- type: 'BinaryExpression',
- operator: '*',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'z',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
-
- 'x * y / z': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '/',
- left: {
- type: 'BinaryExpression',
- operator: '*',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'z',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
-
- 'x * y % z': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '%',
- left: {
- type: 'BinaryExpression',
- operator: '*',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'z',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
-
- 'x % y * z': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '*',
- left: {
- type: 'BinaryExpression',
- operator: '%',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'z',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
-
- 'x << y << z': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '<<',
- left: {
- type: 'BinaryExpression',
- operator: '<<',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [5, 6],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'z',
- range: [10, 11],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 11 }
- }
- },
- range: [0, 11],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 11 }
- }
- },
- range: [0, 11],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 11 }
- }
- },
-
- 'x | y | z': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '|',
- left: {
- type: 'BinaryExpression',
- operator: '|',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'z',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
-
- 'x & y & z': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '&',
- left: {
- type: 'BinaryExpression',
- operator: '&',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'z',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
-
- 'x ^ y ^ z': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '^',
- left: {
- type: 'BinaryExpression',
- operator: '^',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'z',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
-
- 'x & y | z': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '|',
- left: {
- type: 'BinaryExpression',
- operator: '&',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'z',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
-
- 'x | y ^ z': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '|',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'BinaryExpression',
- operator: '^',
- left: {
- type: 'Identifier',
- name: 'y',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'z',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- range: [4, 9],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
-
- 'x | y & z': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '|',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'BinaryExpression',
- operator: '&',
- left: {
- type: 'Identifier',
- name: 'y',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'z',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- range: [4, 9],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- }
-
- },
-
- 'Binary Logical Operators': {
-
- 'x || y': {
- type: 'ExpressionStatement',
- expression: {
- type: 'LogicalExpression',
- operator: '||',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [5, 6],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
-
- 'x && y': {
- type: 'ExpressionStatement',
- expression: {
- type: 'LogicalExpression',
- operator: '&&',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [5, 6],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
-
- 'x || y || z': {
- type: 'ExpressionStatement',
- expression: {
- type: 'LogicalExpression',
- operator: '||',
- left: {
- type: 'LogicalExpression',
- operator: '||',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [5, 6],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'z',
- range: [10, 11],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 11 }
- }
- },
- range: [0, 11],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 11 }
- }
- },
- range: [0, 11],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 11 }
- }
- },
-
- 'x && y && z': {
- type: 'ExpressionStatement',
- expression: {
- type: 'LogicalExpression',
- operator: '&&',
- left: {
- type: 'LogicalExpression',
- operator: '&&',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [5, 6],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'z',
- range: [10, 11],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 11 }
- }
- },
- range: [0, 11],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 11 }
- }
- },
- range: [0, 11],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 11 }
- }
- },
-
- 'x || y && z': {
- type: 'ExpressionStatement',
- expression: {
- type: 'LogicalExpression',
- operator: '||',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'LogicalExpression',
- operator: '&&',
- left: {
- type: 'Identifier',
- name: 'y',
- range: [5, 6],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 6 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'z',
- range: [10, 11],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 11 }
- }
- },
- range: [5, 11],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 11 }
- }
- },
- range: [0, 11],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 11 }
- }
- },
- range: [0, 11],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 11 }
- }
- },
-
- 'x || y ^ z': {
- type: 'ExpressionStatement',
- expression: {
- type: 'LogicalExpression',
- operator: '||',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'BinaryExpression',
- operator: '^',
- left: {
- type: 'Identifier',
- name: 'y',
- range: [5, 6],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 6 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'z',
- range: [9, 10],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 10 }
- }
- },
- range: [5, 10],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 10 }
- }
- },
- range: [0, 10],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 10 }
- }
- },
- range: [0, 10],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 10 }
- }
- }
-
- },
-
- 'Conditional Operator': {
-
- 'y ? 1 : 2': {
- type: 'ExpressionStatement',
- expression: {
- type: 'ConditionalExpression',
- test: {
- type: 'Identifier',
- name: 'y',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- consequent: {
- type: 'Literal',
- value: 1,
- raw: '1',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- alternate: {
- type: 'Literal',
- value: 2,
- raw: '2',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
-
- 'x && y ? 1 : 2': {
- type: 'ExpressionStatement',
- expression: {
- type: 'ConditionalExpression',
- test: {
- type: 'LogicalExpression',
- operator: '&&',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [5, 6],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
- consequent: {
- type: 'Literal',
- value: 1,
- raw: '1',
- range: [9, 10],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 10 }
- }
- },
- alternate: {
- type: 'Literal',
- value: 2,
- raw: '2',
- range: [13, 14],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 14 }
- }
- },
- range: [0, 14],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 14 }
- }
- },
- range: [0, 14],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 14 }
- }
- },
- 'x = (0) ? 1 : 2' : {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [ 0, 1 ],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'ConditionalExpression',
- test: {
- type: 'Literal',
- value: 0,
- raw: '0',
- range: [ 5, 6 ],
- loc: { start: { line: 1, column: 5 }, end: { line: 1, column: 6 } }
- },
- consequent: {
- type: 'Literal',
- value: 1,
- raw: '1',
- range: [ 10, 11 ],
- loc: { start: { line: 1, column: 10 }, end: { line: 1, column: 11 } }
- },
- alternate: {
- type: 'Literal',
- value: 2,
- raw: '2',
- range: [ 14, 15 ],
- loc: { start: { line: 1, column: 14 }, end: { line: 1, column: 15 } }
- },
- range: [ 4, 15 ],
- loc: { start: { line: 1, column: 4 }, end: { line: 1, column: 15 } }
- },
- range: [ 0, 15 ],
- loc: { start: { line: 1, column: 0 }, end: { line: 1, column: 15 } }
- },
- range: [ 0, 15 ],
- loc: { start: { line: 1, column: 0 }, end: { line: 1, column: 15 } }
- }
- },
-
- 'Assignment Operators': {
-
- 'x = 42': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [4, 6],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
-
- 'eval = 42': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'eval',
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- }
- },
- right: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [7, 9],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
-
- 'arguments = 42': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'arguments',
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
- right: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [12, 14],
- loc: {
- start: { line: 1, column: 12 },
- end: { line: 1, column: 14 }
- }
- },
- range: [0, 14],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 14 }
- }
- },
- range: [0, 14],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 14 }
- }
- },
-
- 'x *= 42': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '*=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [5, 7],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
-
- 'x /= 42': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '/=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [5, 7],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
-
- 'x %= 42': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '%=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [5, 7],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
-
- 'x += 42': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '+=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [5, 7],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
-
- 'x -= 42': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '-=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [5, 7],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
-
- 'x <<= 42': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '<<=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [6, 8],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 8 }
- }
- },
- range: [0, 8],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 8 }
- }
- },
- range: [0, 8],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 8 }
- }
- },
-
- 'x >>= 42': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '>>=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [6, 8],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 8 }
- }
- },
- range: [0, 8],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 8 }
- }
- },
- range: [0, 8],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 8 }
- }
- },
-
- 'x >>>= 42': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '>>>=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [7, 9],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
-
- 'x &= 42': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '&=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [5, 7],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
-
- 'x ^= 42': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '^=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [5, 7],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
-
- 'x |= 42': {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '|=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [5, 7],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- }
-
- },
-
- 'Complex Expression': {
-
- 'a || b && c | d ^ e & f == g < h >>> i + j * k': {
- type: 'ExpressionStatement',
- expression: {
- type: 'LogicalExpression',
- operator: '||',
- left: {
- type: 'Identifier',
- name: 'a',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'LogicalExpression',
- operator: '&&',
- left: {
- type: 'Identifier',
- name: 'b',
- range: [5, 6],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 6 }
- }
- },
- right: {
- type: 'BinaryExpression',
- operator: '|',
- left: {
- type: 'Identifier',
- name: 'c',
- range: [10, 11],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 11 }
- }
- },
- right: {
- type: 'BinaryExpression',
- operator: '^',
- left: {
- type: 'Identifier',
- name: 'd',
- range: [14, 15],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 15 }
- }
- },
- right: {
- type: 'BinaryExpression',
- operator: '&',
- left: {
- type: 'Identifier',
- name: 'e',
- range: [18, 19],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 19 }
- }
- },
- right: {
- type: 'BinaryExpression',
- operator: '==',
- left: {
- type: 'Identifier',
- name: 'f',
- range: [22, 23],
- loc: {
- start: { line: 1, column: 22 },
- end: { line: 1, column: 23 }
- }
- },
- right: {
- type: 'BinaryExpression',
- operator: '<',
- left: {
- type: 'Identifier',
- name: 'g',
- range: [27, 28],
- loc: {
- start: { line: 1, column: 27 },
- end: { line: 1, column: 28 }
- }
- },
- right: {
- type: 'BinaryExpression',
- operator: '>>>',
- left: {
- type: 'Identifier',
- name: 'h',
- range: [31, 32],
- loc: {
- start: { line: 1, column: 31 },
- end: { line: 1, column: 32 }
- }
- },
- right: {
- type: 'BinaryExpression',
- operator: '+',
- left: {
- type: 'Identifier',
- name: 'i',
- range: [37, 38],
- loc: {
- start: { line: 1, column: 37 },
- end: { line: 1, column: 38 }
- }
- },
- right: {
- type: 'BinaryExpression',
- operator: '*',
- left: {
- type: 'Identifier',
- name: 'j',
- range: [41, 42],
- loc: {
- start: { line: 1, column: 41 },
- end: { line: 1, column: 42 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'k',
- range: [45, 46],
- loc: {
- start: { line: 1, column: 45 },
- end: { line: 1, column: 46 }
- }
- },
- range: [41, 46],
- loc: {
- start: { line: 1, column: 41 },
- end: { line: 1, column: 46 }
- }
- },
- range: [37, 46],
- loc: {
- start: { line: 1, column: 37 },
- end: { line: 1, column: 46 }
- }
- },
- range: [31, 46],
- loc: {
- start: { line: 1, column: 31 },
- end: { line: 1, column: 46 }
- }
- },
- range: [27, 46],
- loc: {
- start: { line: 1, column: 27 },
- end: { line: 1, column: 46 }
- }
- },
- range: [22, 46],
- loc: {
- start: { line: 1, column: 22 },
- end: { line: 1, column: 46 }
- }
- },
- range: [18, 46],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 46 }
- }
- },
- range: [14, 46],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 46 }
- }
- },
- range: [10, 46],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 46 }
- }
- },
- range: [5, 46],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 46 }
- }
- },
- range: [0, 46],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 46 }
- }
- },
- range: [0, 46],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 46 }
- }
- }
-
- },
-
- 'Block': {
-
- '{ foo }': {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Identifier',
- name: 'foo',
- range: [2, 5],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 5 }
- }
- },
- range: [2, 6],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 6 }
- }
- }],
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
-
- '{ doThis(); doThat(); }': {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'doThis',
- range: [2, 8],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 8 }
- }
- },
- 'arguments': [],
- range: [2, 10],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 10 }
- }
- },
- range: [2, 11],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 11 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'doThat',
- range: [12, 18],
- loc: {
- start: { line: 1, column: 12 },
- end: { line: 1, column: 18 }
- }
- },
- 'arguments': [],
- range: [12, 20],
- loc: {
- start: { line: 1, column: 12 },
- end: { line: 1, column: 20 }
- }
- },
- range: [12, 21],
- loc: {
- start: { line: 1, column: 12 },
- end: { line: 1, column: 21 }
- }
- }],
- range: [0, 23],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 23 }
- }
- },
-
- '{}': {
- type: 'BlockStatement',
- body: [],
- range: [0, 2],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 2 }
- }
- }
-
- },
-
- 'Variable Statement': {
-
- 'var x': {
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- init: null,
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- }],
- kind: 'var',
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
-
- 'var x, y;': {
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- init: null,
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- }, {
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'y',
- range: [7, 8],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 8 }
- }
- },
- init: null,
- range: [7, 8],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 8 }
- }
- }],
- kind: 'var',
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
-
- 'var x = 42': {
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- init: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [8, 10],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 10 }
- }
- },
- range: [4, 10],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 10 }
- }
- }],
- kind: 'var',
- range: [0, 10],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 10 }
- }
- },
-
- 'var eval = 42, arguments = 42': {
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'eval',
- range: [4, 8],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 8 }
- }
- },
- init: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [11, 13],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 1, column: 13 }
- }
- },
- range: [4, 13],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'arguments',
- range: [15, 24],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 24 }
- }
- },
- init: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [27, 29],
- loc: {
- start: { line: 1, column: 27 },
- end: { line: 1, column: 29 }
- }
- },
- range: [15, 29],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 29 }
- }
- }],
- kind: 'var',
- range: [0, 29],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 29 }
- }
- },
-
- 'var x = 14, y = 3, z = 1977': {
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- init: {
- type: 'Literal',
- value: 14,
- raw: '14',
- range: [8, 10],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 10 }
- }
- },
- range: [4, 10],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 10 }
- }
- }, {
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'y',
- range: [12, 13],
- loc: {
- start: { line: 1, column: 12 },
- end: { line: 1, column: 13 }
- }
- },
- init: {
- type: 'Literal',
- value: 3,
- raw: '3',
- range: [16, 17],
- loc: {
- start: { line: 1, column: 16 },
- end: { line: 1, column: 17 }
- }
- },
- range: [12, 17],
- loc: {
- start: { line: 1, column: 12 },
- end: { line: 1, column: 17 }
- }
- }, {
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'z',
- range: [19, 20],
- loc: {
- start: { line: 1, column: 19 },
- end: { line: 1, column: 20 }
- }
- },
- init: {
- type: 'Literal',
- value: 1977,
- raw: '1977',
- range: [23, 27],
- loc: {
- start: { line: 1, column: 23 },
- end: { line: 1, column: 27 }
- }
- },
- range: [19, 27],
- loc: {
- start: { line: 1, column: 19 },
- end: { line: 1, column: 27 }
- }
- }],
- kind: 'var',
- range: [0, 27],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 27 }
- }
- },
-
- 'var implements, interface, package': {
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'implements',
- range: [4, 14],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 14 }
- }
- },
- init: null,
- range: [4, 14],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 14 }
- }
- }, {
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'interface',
- range: [16, 25],
- loc: {
- start: { line: 1, column: 16 },
- end: { line: 1, column: 25 }
- }
- },
- init: null,
- range: [16, 25],
- loc: {
- start: { line: 1, column: 16 },
- end: { line: 1, column: 25 }
- }
- }, {
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'package',
- range: [27, 34],
- loc: {
- start: { line: 1, column: 27 },
- end: { line: 1, column: 34 }
- }
- },
- init: null,
- range: [27, 34],
- loc: {
- start: { line: 1, column: 27 },
- end: { line: 1, column: 34 }
- }
- }],
- kind: 'var',
- range: [0, 34],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 34 }
- }
- },
-
- 'var private, protected, public, static': {
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'private',
- range: [4, 11],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 11 }
- }
- },
- init: null,
- range: [4, 11],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 11 }
- }
- }, {
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'protected',
- range: [13, 22],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 22 }
- }
- },
- init: null,
- range: [13, 22],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 22 }
- }
- }, {
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'public',
- range: [24, 30],
- loc: {
- start: { line: 1, column: 24 },
- end: { line: 1, column: 30 }
- }
- },
- init: null,
- range: [24, 30],
- loc: {
- start: { line: 1, column: 24 },
- end: { line: 1, column: 30 }
- }
- }, {
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'static',
- range: [32, 38],
- loc: {
- start: { line: 1, column: 32 },
- end: { line: 1, column: 38 }
- }
- },
- init: null,
- range: [32, 38],
- loc: {
- start: { line: 1, column: 32 },
- end: { line: 1, column: 38 }
- }
- }],
- kind: 'var',
- range: [0, 38],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 38 }
- }
- }
-
- },
-
- 'Let Statement': {
-
- 'let x': {
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- init: null,
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- }],
- kind: 'let',
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
-
- '{ let x }': {
- type: 'BlockStatement',
- body: [{
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- range: [6, 7],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 7 }
- }
- },
- init: null,
- range: [6, 7],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 7 }
- }
- }],
- kind: 'let',
- range: [2, 8],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 8 }
- }
- }],
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
-
- '{ let x = 42 }': {
- type: 'BlockStatement',
- body: [{
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- range: [6, 7],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 7 }
- }
- },
- init: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [10, 12],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 12 }
- }
- },
- range: [6, 12],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 12 }
- }
- }],
- kind: 'let',
- range: [2, 13],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 13 }
- }
- }],
- range: [0, 14],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 14 }
- }
- },
-
- '{ let x = 14, y = 3, z = 1977 }': {
- type: 'BlockStatement',
- body: [{
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- range: [6, 7],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 7 }
- }
- },
- init: {
- type: 'Literal',
- value: 14,
- raw: '14',
- range: [10, 12],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 12 }
- }
- },
- range: [6, 12],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 12 }
- }
- }, {
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'y',
- range: [14, 15],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 15 }
- }
- },
- init: {
- type: 'Literal',
- value: 3,
- raw: '3',
- range: [18, 19],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 19 }
- }
- },
- range: [14, 19],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 19 }
- }
- }, {
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'z',
- range: [21, 22],
- loc: {
- start: { line: 1, column: 21 },
- end: { line: 1, column: 22 }
- }
- },
- init: {
- type: 'Literal',
- value: 1977,
- raw: '1977',
- range: [25, 29],
- loc: {
- start: { line: 1, column: 25 },
- end: { line: 1, column: 29 }
- }
- },
- range: [21, 29],
- loc: {
- start: { line: 1, column: 21 },
- end: { line: 1, column: 29 }
- }
- }],
- kind: 'let',
- range: [2, 30],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 30 }
- }
- }],
- range: [0, 31],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 31 }
- }
- }
-
- },
-
- 'Const Statement': {
-
- 'const x = 42': {
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- range: [6, 7],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 7 }
- }
- },
- init: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [10, 12],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 12 }
- }
- },
- range: [6, 12],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 12 }
- }
- }],
- kind: 'const',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
-
- '{ const x = 42 }': {
- type: 'BlockStatement',
- body: [{
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- init: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [12, 14],
- loc: {
- start: { line: 1, column: 12 },
- end: { line: 1, column: 14 }
- }
- },
- range: [8, 14],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 14 }
- }
- }],
- kind: 'const',
- range: [2, 15],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 15 }
- }
- }],
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- },
-
- '{ const x = 14, y = 3, z = 1977 }': {
- type: 'BlockStatement',
- body: [{
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- init: {
- type: 'Literal',
- value: 14,
- raw: '14',
- range: [12, 14],
- loc: {
- start: { line: 1, column: 12 },
- end: { line: 1, column: 14 }
- }
- },
- range: [8, 14],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 14 }
- }
- }, {
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'y',
- range: [16, 17],
- loc: {
- start: { line: 1, column: 16 },
- end: { line: 1, column: 17 }
- }
- },
- init: {
- type: 'Literal',
- value: 3,
- raw: '3',
- range: [20, 21],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 21 }
- }
- },
- range: [16, 21],
- loc: {
- start: { line: 1, column: 16 },
- end: { line: 1, column: 21 }
- }
- }, {
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'z',
- range: [23, 24],
- loc: {
- start: { line: 1, column: 23 },
- end: { line: 1, column: 24 }
- }
- },
- init: {
- type: 'Literal',
- value: 1977,
- raw: '1977',
- range: [27, 31],
- loc: {
- start: { line: 1, column: 27 },
- end: { line: 1, column: 31 }
- }
- },
- range: [23, 31],
- loc: {
- start: { line: 1, column: 23 },
- end: { line: 1, column: 31 }
- }
- }],
- kind: 'const',
- range: [2, 32],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 32 }
- }
- }],
- range: [0, 33],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 33 }
- }
- }
-
- },
-
- 'Empty Statement': {
-
- ';': {
- type: 'EmptyStatement',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- }
-
- },
-
- 'Expression Statement': {
-
- 'x': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
-
- 'x, y': {
- type: 'ExpressionStatement',
- expression: {
- type: 'SequenceExpression',
- expressions: [{
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- }, {
- type: 'Identifier',
- name: 'y',
- range: [3, 4],
- loc: {
- start: { line: 1, column: 3 },
- end: { line: 1, column: 4 }
- }
- }],
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- }
- },
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- }
- },
-
- '\\u0061': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Identifier',
- name: 'a',
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- },
-
- 'a\\u0061': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Identifier',
- name: 'aa',
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
-
- '\\u0061a': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Identifier',
- name: 'aa',
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
-
- '\\u0061a ': {
- type: 'ExpressionStatement',
- expression: {
- type: 'Identifier',
- name: 'aa',
- range: [0, 7],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 8],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 8 }
- }
- }
- },
-
- 'If Statement': {
-
- 'if (morning) goodMorning()': {
- type: 'IfStatement',
- test: {
- type: 'Identifier',
- name: 'morning',
- range: [4, 11],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 11 }
- }
- },
- consequent: {
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'goodMorning',
- range: [13, 24],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 24 }
- }
- },
- 'arguments': [],
- range: [13, 26],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 26 }
- }
- },
- range: [13, 26],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 26 }
- }
- },
- alternate: null,
- range: [0, 26],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 26 }
- }
- },
-
- 'if (morning) (function(){})': {
- type: 'IfStatement',
- test: {
- type: 'Identifier',
- name: 'morning',
- range: [4, 11],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 11 }
- }
- },
- consequent: {
- type: 'ExpressionStatement',
- expression: {
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [24, 26],
- loc: {
- start: { line: 1, column: 24 },
- end: { line: 1, column: 26 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [14, 26],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 26 }
- }
- },
- range: [13, 27],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 27 }
- }
- },
- alternate: null,
- range: [0, 27],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 27 }
- }
- },
-
- 'if (morning) var x = 0;': {
- type: 'IfStatement',
- test: {
- type: 'Identifier',
- name: 'morning',
- range: [4, 11],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 11 }
- }
- },
- consequent: {
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- range: [17, 18],
- loc: {
- start: { line: 1, column: 17 },
- end: { line: 1, column: 18 }
- }
- },
- init: {
- type: 'Literal',
- value: 0,
- raw: '0',
- range: [21, 22],
- loc: {
- start: { line: 1, column: 21 },
- end: { line: 1, column: 22 }
- }
- },
- range: [17, 22],
- loc: {
- start: { line: 1, column: 17 },
- end: { line: 1, column: 22 }
- }
- }],
- kind: 'var',
- range: [13, 23],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 23 }
- }
- },
- alternate: null,
- range: [0, 23],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 23 }
- }
- },
-
- 'if (morning) function a(){}': {
- type: 'IfStatement',
- test: {
- type: 'Identifier',
- name: 'morning',
- range: [4, 11],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 11 }
- }
- },
- consequent: {
- type: 'FunctionDeclaration',
- id: {
- type: 'Identifier',
- name: 'a',
- range: [22, 23],
- loc: {
- start: { line: 1, column: 22 },
- end: { line: 1, column: 23 }
- }
- },
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [25, 27],
- loc: {
- start: { line: 1, column: 25 },
- end: { line: 1, column: 27 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [13, 27],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 27 }
- }
- },
- alternate: null,
- range: [0, 27],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 27 }
- }
- },
-
- 'if (morning) goodMorning(); else goodDay()': {
- type: 'IfStatement',
- test: {
- type: 'Identifier',
- name: 'morning',
- range: [4, 11],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 11 }
- }
- },
- consequent: {
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'goodMorning',
- range: [13, 24],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 24 }
- }
- },
- 'arguments': [],
- range: [13, 26],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 26 }
- }
- },
- range: [13, 27],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 27 }
- }
- },
- alternate: {
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'goodDay',
- range: [33, 40],
- loc: {
- start: { line: 1, column: 33 },
- end: { line: 1, column: 40 }
- }
- },
- 'arguments': [],
- range: [33, 42],
- loc: {
- start: { line: 1, column: 33 },
- end: { line: 1, column: 42 }
- }
- },
- range: [33, 42],
- loc: {
- start: { line: 1, column: 33 },
- end: { line: 1, column: 42 }
- }
- },
- range: [0, 42],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 42 }
- }
- },
-
- 'if (true) that()\n; else;': {
- type: "IfStatement",
- test: {
- type: "Literal",
- value: true,
- raw: "true",
- range: [4, 8],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 8 }
- }
- },
- consequent: {
- type: "ExpressionStatement",
- expression: {
- type: "CallExpression",
- callee: {
- type: "Identifier",
- name: "that",
- range: [10, 14],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 14 }
- }
- },
- "arguments": [],
- range: [10, 16],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 16 }
- }
- },
- range: [10, 18],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 2, column: 1 }
- }
- },
- alternate: {
- type: "EmptyStatement",
- range: [23, 24],
- loc: {
- start: { line: 2, column: 6 },
- end: { line: 2, column: 7 }
- }
- },
- range: [0, 24],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 2, column: 7 }
- }
- },
-
- 'if (true) that(); else;': {
- type: "IfStatement",
- test: {
- type: "Literal",
- value: true,
- raw: "true",
- range: [4, 8],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 8 }
- }
- },
- consequent: {
- type: "ExpressionStatement",
- expression: {
- type: "CallExpression",
- callee: {
- type: "Identifier",
- name: "that",
- range: [10, 14],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 14 }
- }
- },
- "arguments": [],
- range: [10, 16],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 16 }
- }
- },
- range: [10, 17],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 17 }
- }
- },
- alternate: {
- type: "EmptyStatement",
- range: [22, 23],
- loc: {
- start: { line: 1, column: 22 },
- end: { line: 1, column: 23 }
- }
- },
- range: [0, 23],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 23 }
- }
- }
-
- },
-
- 'Iteration Statements': {
-
- 'do keep(); while (true)': {
- type: 'DoWhileStatement',
- body: {
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'keep',
- range: [3, 7],
- loc: {
- start: { line: 1, column: 3 },
- end: { line: 1, column: 7 }
- }
- },
- 'arguments': [],
- range: [3, 9],
- loc: {
- start: { line: 1, column: 3 },
- end: { line: 1, column: 9 }
- }
- },
- range: [3, 10],
- loc: {
- start: { line: 1, column: 3 },
- end: { line: 1, column: 10 }
- }
- },
- test: {
- type: 'Literal',
- value: true,
- raw: 'true',
- range: [18, 22],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 22 }
- }
- },
- range: [0, 23],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 23 }
- }
- },
-
- 'do keep(); while (true);': {
- type: 'DoWhileStatement',
- body: {
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'keep',
- range: [3, 7],
- loc: {
- start: { line: 1, column: 3 },
- end: { line: 1, column: 7 }
- }
- },
- 'arguments': [],
- range: [3, 9],
- loc: {
- start: { line: 1, column: 3 },
- end: { line: 1, column: 9 }
- }
- },
- range: [3, 10],
- loc: {
- start: { line: 1, column: 3 },
- end: { line: 1, column: 10 }
- }
- },
- test: {
- type: 'Literal',
- value: true,
- raw: 'true',
- range: [18, 22],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 22 }
- }
- },
- range: [0, 24],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 24 }
- }
- },
-
- 'do { x++; y--; } while (x < 10)': {
- type: 'DoWhileStatement',
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'UpdateExpression',
- operator: '++',
- argument: {
- type: 'Identifier',
- name: 'x',
- range: [5, 6],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 6 }
- }
- },
- prefix: false,
- range: [5, 8],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 8 }
- }
- },
- range: [5, 9],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 9 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'UpdateExpression',
- operator: '--',
- argument: {
- type: 'Identifier',
- name: 'y',
- range: [10, 11],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 11 }
- }
- },
- prefix: false,
- range: [10, 13],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 13 }
- }
- },
- range: [10, 14],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 14 }
- }
- }],
- range: [3, 16],
- loc: {
- start: { line: 1, column: 3 },
- end: { line: 1, column: 16 }
- }
- },
- test: {
- type: 'BinaryExpression',
- operator: '<',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [24, 25],
- loc: {
- start: { line: 1, column: 24 },
- end: { line: 1, column: 25 }
- }
- },
- right: {
- type: 'Literal',
- value: 10,
- raw: '10',
- range: [28, 30],
- loc: {
- start: { line: 1, column: 28 },
- end: { line: 1, column: 30 }
- }
- },
- range: [24, 30],
- loc: {
- start: { line: 1, column: 24 },
- end: { line: 1, column: 30 }
- }
- },
- range: [0, 31],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 31 }
- }
- },
-
- '{ do { } while (false) false }': {
- type: 'BlockStatement',
- body: [{
- type: 'DoWhileStatement',
- body: {
- type: 'BlockStatement',
- body: [],
- range: [5, 8],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 8 }
- }
- },
- test: {
- type: 'Literal',
- value: false,
- raw: 'false',
- range: [16, 21],
- loc: {
- start: { line: 1, column: 16 },
- end: { line: 1, column: 21 }
- }
- },
- range: [2, 22],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 22 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: false,
- raw: 'false',
- range: [23, 28],
- loc: {
- start: { line: 1, column: 23 },
- end: { line: 1, column: 28 }
- }
- },
- range: [23, 29],
- loc: {
- start: { line: 1, column: 23 },
- end: { line: 1, column: 29 }
- }
- }],
- range: [0, 30],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 30 }
- }
- },
-
- 'do that();while (true)': {
- type: "DoWhileStatement",
- body: {
- type: "ExpressionStatement",
- expression: {
- type: "CallExpression",
- callee: {
- type: "Identifier",
- name: "that",
- range: [3, 7],
- loc: {
- start: { line: 1, column: 3 },
- end: { line: 1, column: 7 }
- }
- },
- "arguments": [],
- range: [3, 9],
- loc: {
- start: { line: 1, column: 3 },
- end: { line: 1, column: 9 }
- }
- },
- range: [3, 10],
- loc: {
- start: { line: 1, column: 3 },
- end: { line: 1, column: 10 }
- }
- },
- test: {
- type: "Literal",
- value: true,
- raw: "true",
- range: [17, 21],
- loc: {
- start: { line: 1, column: 17 },
- end: { line: 1, column: 21 }
- }
- },
- range: [0, 22],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 22 }
- }
- },
-
- 'do that()\n;while (true)': {
- type: "DoWhileStatement",
- body: {
- type: "ExpressionStatement",
- expression: {
- type: "CallExpression",
- callee: {
- type: "Identifier",
- name: "that",
- range: [3, 7],
- loc: {
- start: { line: 1, column: 3 },
- end: { line: 1, column: 7 }
- }
- },
- "arguments": [],
- range: [3, 9],
- loc: {
- start: { line: 1, column: 3 },
- end: { line: 1, column: 9 }
- }
- },
- range: [3, 11],
- loc: {
- start: { line: 1, column: 3 },
- end: { line: 2, column: 1 }
- }
- },
- test: {
- type: "Literal",
- value: true,
- raw: "true",
- range: [18, 22],
- loc: {
- start: { line: 2, column: 8 },
- end: { line: 2, column: 12 }
- }
- },
- range: [0, 23],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 2, column: 13 }
- }
- },
-
- 'while (true) doSomething()': {
- type: 'WhileStatement',
- test: {
- type: 'Literal',
- value: true,
- raw: 'true',
- range: [7, 11],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 11 }
- }
- },
- body: {
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'doSomething',
- range: [13, 24],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 24 }
- }
- },
- 'arguments': [],
- range: [13, 26],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 26 }
- }
- },
- range: [13, 26],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 26 }
- }
- },
- range: [0, 26],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 26 }
- }
- },
-
- 'while (x < 10) { x++; y--; }': {
- type: 'WhileStatement',
- test: {
- type: 'BinaryExpression',
- operator: '<',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [7, 8],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 8 }
- }
- },
- right: {
- type: 'Literal',
- value: 10,
- raw: '10',
- range: [11, 13],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 1, column: 13 }
- }
- },
- range: [7, 13],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 13 }
- }
- },
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'UpdateExpression',
- operator: '++',
- argument: {
- type: 'Identifier',
- name: 'x',
- range: [17, 18],
- loc: {
- start: { line: 1, column: 17 },
- end: { line: 1, column: 18 }
- }
- },
- prefix: false,
- range: [17, 20],
- loc: {
- start: { line: 1, column: 17 },
- end: { line: 1, column: 20 }
- }
- },
- range: [17, 21],
- loc: {
- start: { line: 1, column: 17 },
- end: { line: 1, column: 21 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'UpdateExpression',
- operator: '--',
- argument: {
- type: 'Identifier',
- name: 'y',
- range: [22, 23],
- loc: {
- start: { line: 1, column: 22 },
- end: { line: 1, column: 23 }
- }
- },
- prefix: false,
- range: [22, 25],
- loc: {
- start: { line: 1, column: 22 },
- end: { line: 1, column: 25 }
- }
- },
- range: [22, 26],
- loc: {
- start: { line: 1, column: 22 },
- end: { line: 1, column: 26 }
- }
- }],
- range: [15, 28],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 28 }
- }
- },
- range: [0, 28],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 28 }
- }
- },
-
- 'for(;;);': {
- type: 'ForStatement',
- init: null,
- test: null,
- update: null,
- body: {
- type: 'EmptyStatement',
- range: [7, 8],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 8 }
- }
- },
- range: [0, 8],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 8 }
- }
- },
-
- 'for(;;){}': {
- type: 'ForStatement',
- init: null,
- test: null,
- update: null,
- body: {
- type: 'BlockStatement',
- body: [],
- range: [7, 9],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 9 }
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
-
- 'for(x = 0;;);': {
- type: 'ForStatement',
- init: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- right: {
- type: 'Literal',
- value: 0,
- raw: '0',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- range: [4, 9],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 9 }
- }
- },
- test: null,
- update: null,
- body: {
- type: 'EmptyStatement',
- range: [12, 13],
- loc: {
- start: { line: 1, column: 12 },
- end: { line: 1, column: 13 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- },
-
- 'for(var x = 0;;);': {
- type: 'ForStatement',
- init: {
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- init: {
- type: 'Literal',
- value: 0,
- raw: '0',
- range: [12, 13],
- loc: {
- start: { line: 1, column: 12 },
- end: { line: 1, column: 13 }
- }
- },
- range: [8, 13],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 13 }
- }
- }],
- kind: 'var',
- range: [4, 13],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 13 }
- }
- },
- test: null,
- update: null,
- body: {
- type: 'EmptyStatement',
- range: [16, 17],
- loc: {
- start: { line: 1, column: 16 },
- end: { line: 1, column: 17 }
- }
- },
- range: [0, 17],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 17 }
- }
- },
-
- 'for(let x = 0;;);': {
- type: 'ForStatement',
- init: {
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- init: {
- type: 'Literal',
- value: 0,
- raw: '0',
- range: [12, 13],
- loc: {
- start: { line: 1, column: 12 },
- end: { line: 1, column: 13 }
- }
- },
- range: [8, 13],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 13 }
- }
- }],
- kind: 'let',
- range: [4, 13],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 13 }
- }
- },
- test: null,
- update: null,
- body: {
- type: 'EmptyStatement',
- range: [16, 17],
- loc: {
- start: { line: 1, column: 16 },
- end: { line: 1, column: 17 }
- }
- },
- range: [0, 17],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 17 }
- }
- },
-
- 'for(var x = 0, y = 1;;);': {
- type: 'ForStatement',
- init: {
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- init: {
- type: 'Literal',
- value: 0,
- raw: '0',
- range: [12, 13],
- loc: {
- start: { line: 1, column: 12 },
- end: { line: 1, column: 13 }
- }
- },
- range: [8, 13],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'y',
- range: [15, 16],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 16 }
- }
- },
- init: {
- type: 'Literal',
- value: 1,
- raw: '1',
- range: [19, 20],
- loc: {
- start: { line: 1, column: 19 },
- end: { line: 1, column: 20 }
- }
- },
- range: [15, 20],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 20 }
- }
- }],
- kind: 'var',
- range: [4, 20],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 20 }
- }
- },
- test: null,
- update: null,
- body: {
- type: 'EmptyStatement',
- range: [23, 24],
- loc: {
- start: { line: 1, column: 23 },
- end: { line: 1, column: 24 }
- }
- },
- range: [0, 24],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 24 }
- }
- },
-
- 'for(x = 0; x < 42;);': {
- type: 'ForStatement',
- init: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- right: {
- type: 'Literal',
- value: 0,
- raw: '0',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- range: [4, 9],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 9 }
- }
- },
- test: {
- type: 'BinaryExpression',
- operator: '<',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [11, 12],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 1, column: 12 }
- }
- },
- right: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [15, 17],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 17 }
- }
- },
- range: [11, 17],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 1, column: 17 }
- }
- },
- update: null,
- body: {
- type: 'EmptyStatement',
- range: [19, 20],
- loc: {
- start: { line: 1, column: 19 },
- end: { line: 1, column: 20 }
- }
- },
- range: [0, 20],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 20 }
- }
- },
-
- 'for(x = 0; x < 42; x++);': {
- type: 'ForStatement',
- init: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- right: {
- type: 'Literal',
- value: 0,
- raw: '0',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- range: [4, 9],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 9 }
- }
- },
- test: {
- type: 'BinaryExpression',
- operator: '<',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [11, 12],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 1, column: 12 }
- }
- },
- right: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [15, 17],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 17 }
- }
- },
- range: [11, 17],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 1, column: 17 }
- }
- },
- update: {
- type: 'UpdateExpression',
- operator: '++',
- argument: {
- type: 'Identifier',
- name: 'x',
- range: [19, 20],
- loc: {
- start: { line: 1, column: 19 },
- end: { line: 1, column: 20 }
- }
- },
- prefix: false,
- range: [19, 22],
- loc: {
- start: { line: 1, column: 19 },
- end: { line: 1, column: 22 }
- }
- },
- body: {
- type: 'EmptyStatement',
- range: [23, 24],
- loc: {
- start: { line: 1, column: 23 },
- end: { line: 1, column: 24 }
- }
- },
- range: [0, 24],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 24 }
- }
- },
-
- 'for(x = 0; x < 42; x++) process(x);': {
- type: 'ForStatement',
- init: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- right: {
- type: 'Literal',
- value: 0,
- raw: '0',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- range: [4, 9],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 9 }
- }
- },
- test: {
- type: 'BinaryExpression',
- operator: '<',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [11, 12],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 1, column: 12 }
- }
- },
- right: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [15, 17],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 17 }
- }
- },
- range: [11, 17],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 1, column: 17 }
- }
- },
- update: {
- type: 'UpdateExpression',
- operator: '++',
- argument: {
- type: 'Identifier',
- name: 'x',
- range: [19, 20],
- loc: {
- start: { line: 1, column: 19 },
- end: { line: 1, column: 20 }
- }
- },
- prefix: false,
- range: [19, 22],
- loc: {
- start: { line: 1, column: 19 },
- end: { line: 1, column: 22 }
- }
- },
- body: {
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'process',
- range: [24, 31],
- loc: {
- start: { line: 1, column: 24 },
- end: { line: 1, column: 31 }
- }
- },
- 'arguments': [{
- type: 'Identifier',
- name: 'x',
- range: [32, 33],
- loc: {
- start: { line: 1, column: 32 },
- end: { line: 1, column: 33 }
- }
- }],
- range: [24, 34],
- loc: {
- start: { line: 1, column: 24 },
- end: { line: 1, column: 34 }
- }
- },
- range: [24, 35],
- loc: {
- start: { line: 1, column: 24 },
- end: { line: 1, column: 35 }
- }
- },
- range: [0, 35],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 35 }
- }
- },
-
- 'for(x in list) process(x);': {
- type: 'ForInStatement',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'list',
- range: [9, 13],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 13 }
- }
- },
- body: {
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'process',
- range: [15, 22],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 22 }
- }
- },
- 'arguments': [{
- type: 'Identifier',
- name: 'x',
- range: [23, 24],
- loc: {
- start: { line: 1, column: 23 },
- end: { line: 1, column: 24 }
- }
- }],
- range: [15, 25],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 25 }
- }
- },
- range: [15, 26],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 26 }
- }
- },
- each: false,
- range: [0, 26],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 26 }
- }
- },
-
- 'for (var x in list) process(x);': {
- type: 'ForInStatement',
- left: {
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- range: [9, 10],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 10 }
- }
- },
- init: null,
- range: [9, 10],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 10 }
- }
- }],
- kind: 'var',
- range: [5, 10],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 10 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'list',
- range: [14, 18],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 18 }
- }
- },
- body: {
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'process',
- range: [20, 27],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 27 }
- }
- },
- 'arguments': [{
- type: 'Identifier',
- name: 'x',
- range: [28, 29],
- loc: {
- start: { line: 1, column: 28 },
- end: { line: 1, column: 29 }
- }
- }],
- range: [20, 30],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 30 }
- }
- },
- range: [20, 31],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 31 }
- }
- },
- each: false,
- range: [0, 31],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 31 }
- }
- },
-
- 'for (var x = 42 in list) process(x);': {
- type: 'ForInStatement',
- left: {
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- range: [9, 10],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 10 }
- }
- },
- init: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [13, 15],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 15 }
- }
- },
- range: [9, 15],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 15 }
- }
- }],
- kind: 'var',
- range: [5, 15],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 15 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'list',
- range: [19, 23],
- loc: {
- start: { line: 1, column: 19 },
- end: { line: 1, column: 23 }
- }
- },
- body: {
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'process',
- range: [25, 32],
- loc: {
- start: { line: 1, column: 25 },
- end: { line: 1, column: 32 }
- }
- },
- 'arguments': [{
- type: 'Identifier',
- name: 'x',
- range: [33, 34],
- loc: {
- start: { line: 1, column: 33 },
- end: { line: 1, column: 34 }
- }
- }],
- range: [25, 35],
- loc: {
- start: { line: 1, column: 25 },
- end: { line: 1, column: 35 }
- }
- },
- range: [25, 36],
- loc: {
- start: { line: 1, column: 25 },
- end: { line: 1, column: 36 }
- }
- },
- each: false,
- range: [0, 36],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 36 }
- }
- },
-
- 'for (let x in list) process(x);': {
- type: 'ForInStatement',
- left: {
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- range: [9, 10],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 10 }
- }
- },
- init: null,
- range: [9, 10],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 10 }
- }
- }],
- kind: 'let',
- range: [5, 10],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 10 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'list',
- range: [14, 18],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 18 }
- }
- },
- body: {
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'process',
- range: [20, 27],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 27 }
- }
- },
- 'arguments': [{
- type: 'Identifier',
- name: 'x',
- range: [28, 29],
- loc: {
- start: { line: 1, column: 28 },
- end: { line: 1, column: 29 }
- }
- }],
- range: [20, 30],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 30 }
- }
- },
- range: [20, 31],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 31 }
- }
- },
- each: false,
- range: [0, 31],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 31 }
- }
- },
-
- 'for (var x = y = z in q);': {
- type: 'ForInStatement',
- left: {
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- range: [9, 10],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 10 }
- }
- },
- init: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'y',
- range: [13, 14],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 14 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'z',
- range: [17, 18],
- loc: {
- start: { line: 1, column: 17 },
- end: { line: 1, column: 18 }
- }
- },
- range: [13, 18],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 18 }
- }
- },
- range: [9, 18],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 18 }
- }
- }],
- kind: 'var',
- range: [5, 18],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 18 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'q',
- range: [22, 23],
- loc: {
- start: { line: 1, column: 22 },
- end: { line: 1, column: 23 }
- }
- },
- body: {
- type: 'EmptyStatement',
- range: [24, 25],
- loc: {
- start: { line: 1, column: 24 },
- end: { line: 1, column: 25 }
- }
- },
- each: false,
- range: [0, 25],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 25 }
- }
- },
-
- 'for (var a = b = c = (d in e) in z);': {
- type: 'ForInStatement',
- left: {
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'a',
- range: [9, 10],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 10 }
- }
- },
- init: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'b',
- range: [13, 14],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 14 }
- }
- },
- right: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'c',
- range: [17, 18],
- loc: {
- start: { line: 1, column: 17 },
- end: { line: 1, column: 18 }
- }
- },
- right: {
- type: 'BinaryExpression',
- operator: 'in',
- left: {
- type: 'Identifier',
- name: 'd',
- range: [22, 23],
- loc: {
- start: { line: 1, column: 22 },
- end: { line: 1, column: 23 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'e',
- range: [27, 28],
- loc: {
- start: { line: 1, column: 27 },
- end: { line: 1, column: 28 }
- }
- },
- range: [22, 28],
- loc: {
- start: { line: 1, column: 22 },
- end: { line: 1, column: 28 }
- }
- },
- range: [17, 29],
- loc: {
- start: { line: 1, column: 17 },
- end: { line: 1, column: 29 }
- }
- },
- range: [13, 29],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 29 }
- }
- },
- range: [9, 29],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 29 }
- }
- }],
- kind: 'var',
- range: [5, 29],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 29 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'z',
- range: [33, 34],
- loc: {
- start: { line: 1, column: 33 },
- end: { line: 1, column: 34 }
- }
- },
- body: {
- type: 'EmptyStatement',
- range: [35, 36],
- loc: {
- start: { line: 1, column: 35 },
- end: { line: 1, column: 36 }
- }
- },
- each: false,
- range: [0, 36],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 36 }
- }
- },
-
- 'for (var i = function() { return 10 in [] } in list) process(x);': {
- type: 'ForInStatement',
- left: {
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'i',
- range: [9, 10],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 10 }
- }
- },
- init: {
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ReturnStatement',
- argument: {
- type: 'BinaryExpression',
- operator: 'in',
- left: {
- type: 'Literal',
- value: 10,
- raw: '10',
- range: [33, 35],
- loc: {
- start: { line: 1, column: 33 },
- end: { line: 1, column: 35 }
- }
- },
- right: {
- type: 'ArrayExpression',
- elements: [],
- range: [39, 41],
- loc: {
- start: { line: 1, column: 39 },
- end: { line: 1, column: 41 }
- }
- },
- range: [33, 41],
- loc: {
- start: { line: 1, column: 33 },
- end: { line: 1, column: 41 }
- }
- },
- range: [26, 42],
- loc: {
- start: { line: 1, column: 26 },
- end: { line: 1, column: 42 }
- }
- }],
- range: [24, 43],
- loc: {
- start: { line: 1, column: 24 },
- end: { line: 1, column: 43 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [13, 43],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 43 }
- }
- },
- range: [9, 43],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 43 }
- }
- }],
- kind: 'var',
- range: [5, 43],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 43 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'list',
- range: [47, 51],
- loc: {
- start: { line: 1, column: 47 },
- end: { line: 1, column: 51 }
- }
- },
- body: {
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'process',
- range: [53, 60],
- loc: {
- start: { line: 1, column: 53 },
- end: { line: 1, column: 60 }
- }
- },
- 'arguments': [{
- type: 'Identifier',
- name: 'x',
- range: [61, 62],
- loc: {
- start: { line: 1, column: 61 },
- end: { line: 1, column: 62 }
- }
- }],
- range: [53, 63],
- loc: {
- start: { line: 1, column: 53 },
- end: { line: 1, column: 63 }
- }
- },
- range: [53, 64],
- loc: {
- start: { line: 1, column: 53 },
- end: { line: 1, column: 64 }
- }
- },
- each: false,
- range: [0, 64],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 64 }
- }
- },
-
- 'for (a[b in c] in d);': {
- type: 'ForInStatement',
- left: {
- type: 'MemberExpression',
- computed: true,
- object: {
- type: 'Identifier',
- name: 'a',
- range: [5, 6],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 6 }
- }
- },
- property: {
- type: 'BinaryExpression',
- operator: 'in',
- left: {
- type: 'Identifier',
- name: 'b',
- range: [7, 8],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 8 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'c',
- range: [12, 13],
- loc: {
- start: { line: 1, column: 12 },
- end: { line: 1, column: 13 }
- }
- },
- range: [7, 13],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 13 }
- }
- },
- range: [5, 14],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 14 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'd',
- range: [18, 19],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 19 }
- }
- },
- body: {
- type: 'EmptyStatement',
- range: [20, 21],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 21 }
- }
- },
- each: false,
- range: [0, 21],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 21 }
- }
- },
-
- 'for (a(b in c)[0] in d);': {
- type: 'ForInStatement',
- left: {
- type: 'MemberExpression',
- computed: true,
- object: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'a',
- range: [5, 6],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 6 }
- }
- },
- arguments: [{
- type: 'BinaryExpression',
- operator: 'in',
- left: {
- type: 'Identifier',
- name: 'b',
- range: [7, 8],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 8 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'c',
- range: [12, 13],
- loc: {
- start: { line: 1, column: 12 },
- end: { line: 1, column: 13 }
- }
- },
- range: [7, 13],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 13 }
- }
- }],
- range: [5, 14],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 14 }
- }
- },
- property: {
- type: 'Literal',
- value: 0,
- raw: '0',
- range: [15, 16],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 16 }
- }
- },
- range: [5, 17],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 17 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'd',
- range: [21, 22],
- loc: {
- start: { line: 1, column: 21 },
- end: { line: 1, column: 22 }
- }
- },
- body: {
- type: 'EmptyStatement',
- range: [23, 24],
- loc: {
- start: { line: 1, column: 23 },
- end: { line: 1, column: 24 }
- }
- },
- each: false,
- range: [0, 24],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 24 }
- }
- },
-
- 'for (a.in in a);': {
- type: 'ForInStatement',
- left: {
- type: 'MemberExpression',
- computed: false,
- object: {
- type: 'Identifier',
- name: 'a',
- range: [5, 6],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 6 }
- }
- },
- property: {
- type: 'Identifier',
- name: 'in',
- range: [7, 9],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 9 }
- }
- },
- range: [5, 9],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 9 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'a',
- range: [13, 14],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 14 }
- }
- },
- body: {
- type: 'EmptyStatement',
- range: [15, 16],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 16 }
- }
- },
- each: false,
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- }
-
- },
-
- 'continue statement': {
-
- 'while (true) { continue; }': {
- type: 'WhileStatement',
- test: {
- type: 'Literal',
- value: true,
- raw: 'true',
- range: [7, 11],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 11 }
- }
- },
- body: {
- type: 'BlockStatement',
- body: [
- {
- type: 'ContinueStatement',
- label: null,
- range: [15, 24],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 24 }
- }
- }
- ],
- range: [13, 26],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 26 }
- }
- },
- range: [0, 26],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 26 }
- }
- },
-
- 'while (true) { continue }': {
- type: 'WhileStatement',
- test: {
- type: 'Literal',
- value: true,
- raw: 'true',
- range: [7, 11],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 11 }
- }
- },
- body: {
- type: 'BlockStatement',
- body: [
- {
- type: 'ContinueStatement',
- label: null,
- range: [15, 24],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 24 }
- }
- }
- ],
- range: [13, 25],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 25 }
- }
- },
- range: [0, 25],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 25 }
- }
- },
-
- 'done: while (true) { continue done }': {
- type: 'LabeledStatement',
- label: {
- type: 'Identifier',
- name: 'done',
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- }
- },
- body: {
- type: 'WhileStatement',
- test: {
- type: 'Literal',
- value: true,
- raw: 'true',
- range: [13, 17],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 17 }
- }
- },
- body: {
- type: 'BlockStatement',
- body: [
- {
- type: 'ContinueStatement',
- label: {
- type: 'Identifier',
- name: 'done',
- range: [30, 34],
- loc: {
- start: { line: 1, column: 30 },
- end: { line: 1, column: 34 }
- }
- },
- range: [21, 35],
- loc: {
- start: { line: 1, column: 21 },
- end: { line: 1, column: 35 }
- }
- }
- ],
- range: [19, 36],
- loc: {
- start: { line: 1, column: 19 },
- end: { line: 1, column: 36 }
- }
- },
- range: [6, 36],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 36 }
- }
- },
- range: [0, 36],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 36 }
- }
- },
-
- 'done: while (true) { continue done; }': {
- type: 'LabeledStatement',
- label: {
- type: 'Identifier',
- name: 'done',
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- }
- },
- body: {
- type: 'WhileStatement',
- test: {
- type: 'Literal',
- value: true,
- raw: 'true',
- range: [13, 17],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 17 }
- }
- },
- body: {
- type: 'BlockStatement',
- body: [
- {
- type: 'ContinueStatement',
- label: {
- type: 'Identifier',
- name: 'done',
- range: [30, 34],
- loc: {
- start: { line: 1, column: 30 },
- end: { line: 1, column: 34 }
- }
- },
- range: [21, 35],
- loc: {
- start: { line: 1, column: 21 },
- end: { line: 1, column: 35 }
- }
- }
- ],
- range: [19, 37],
- loc: {
- start: { line: 1, column: 19 },
- end: { line: 1, column: 37 }
- }
- },
- range: [6, 37],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 37 }
- }
- },
- range: [0, 37],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 37 }
- }
- },
-
- '__proto__: while (true) { continue __proto__; }': {
- type: 'LabeledStatement',
- label: {
- type: 'Identifier',
- name: '__proto__',
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
- body: {
- type: 'WhileStatement',
- test: {
- type: 'Literal',
- value: true,
- raw: 'true',
- range: [18, 22],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 22 }
- }
- },
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ContinueStatement',
- label: {
- type: 'Identifier',
- name: '__proto__',
- range: [35, 44],
- loc: {
- start: { line: 1, column: 35 },
- end: { line: 1, column: 44 }
- }
- },
- range: [26, 45],
- loc: {
- start: { line: 1, column: 26 },
- end: { line: 1, column: 45 }
- }
- }],
- range: [24, 47],
- loc: {
- start: { line: 1, column: 24 },
- end: { line: 1, column: 47 }
- }
- },
- range: [11, 47],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 1, column: 47 }
- }
- },
- range: [0, 47],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 47 }
- }
- }
-
- },
-
- 'break statement': {
-
- 'while (true) { break }': {
- type: 'WhileStatement',
- test: {
- type: 'Literal',
- value: true,
- raw: 'true',
- range: [7, 11],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 11 }
- }
- },
- body: {
- type: 'BlockStatement',
- body: [
- {
- type: 'BreakStatement',
- label: null,
- range: [15, 21],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 21 }
- }
- }
- ],
- range: [13, 22],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 22 }
- }
- },
- range: [0, 22],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 22 }
- }
- },
-
- 'done: while (true) { break done }': {
- type: 'LabeledStatement',
- label: {
- type: 'Identifier',
- name: 'done',
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- }
- },
- body: {
- type: 'WhileStatement',
- test: {
- type: 'Literal',
- value: true,
- raw: 'true',
- range: [13, 17],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 17 }
- }
- },
- body: {
- type: 'BlockStatement',
- body: [
- {
- type: 'BreakStatement',
- label: {
- type: 'Identifier',
- name: 'done',
- range: [27, 31],
- loc: {
- start: { line: 1, column: 27 },
- end: { line: 1, column: 31 }
- }
- },
- range: [21, 32],
- loc: {
- start: { line: 1, column: 21 },
- end: { line: 1, column: 32 }
- }
- }
- ],
- range: [19, 33],
- loc: {
- start: { line: 1, column: 19 },
- end: { line: 1, column: 33 }
- }
- },
- range: [6, 33],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 33 }
- }
- },
- range: [0, 33],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 33 }
- }
- },
-
- 'done: while (true) { break done; }': {
- type: 'LabeledStatement',
- label: {
- type: 'Identifier',
- name: 'done',
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- }
- },
- body: {
- type: 'WhileStatement',
- test: {
- type: 'Literal',
- value: true,
- raw: 'true',
- range: [13, 17],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 17 }
- }
- },
- body: {
- type: 'BlockStatement',
- body: [
- {
- type: 'BreakStatement',
- label: {
- type: 'Identifier',
- name: 'done',
- range: [27, 31],
- loc: {
- start: { line: 1, column: 27 },
- end: { line: 1, column: 31 }
- }
- },
- range: [21, 32],
- loc: {
- start: { line: 1, column: 21 },
- end: { line: 1, column: 32 }
- }
- }
- ],
- range: [19, 34],
- loc: {
- start: { line: 1, column: 19 },
- end: { line: 1, column: 34 }
- }
- },
- range: [6, 34],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 34 }
- }
- },
- range: [0, 34],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 34 }
- }
- },
-
- '__proto__: while (true) { break __proto__; }': {
- type: 'LabeledStatement',
- label: {
- type: 'Identifier',
- name: '__proto__',
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
- body: {
- type: 'WhileStatement',
- test: {
- type: 'Literal',
- value: true,
- raw: 'true',
- range: [18, 22],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 22 }
- }
- },
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'BreakStatement',
- label: {
- type: 'Identifier',
- name: '__proto__',
- range: [32, 41],
- loc: {
- start: { line: 1, column: 32 },
- end: { line: 1, column: 41 }
- }
- },
- range: [26, 42],
- loc: {
- start: { line: 1, column: 26 },
- end: { line: 1, column: 42 }
- }
- }],
- range: [24, 44],
- loc: {
- start: { line: 1, column: 24 },
- end: { line: 1, column: 44 }
- }
- },
- range: [11, 44],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 1, column: 44 }
- }
- },
- range: [0, 44],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 44 }
- }
- }
-
- },
-
- 'return statement': {
-
- '(function(){ return })': {
- type: 'ExpressionStatement',
- expression: {
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [
- {
- type: 'ReturnStatement',
- argument: null,
- range: [13, 20],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 20 }
- }
- }
- ],
- range: [11, 21],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 1, column: 21 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [1, 21],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 1, column: 21 }
- }
- },
- range: [0, 22],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 22 }
- }
- },
-
- '(function(){ return; })': {
- type: 'ExpressionStatement',
- expression: {
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [
- {
- type: 'ReturnStatement',
- argument: null,
- range: [13, 20],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 20 }
- }
- }
- ],
- range: [11, 22],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 1, column: 22 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [1, 22],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 1, column: 22 }
- }
- },
- range: [0, 23],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 23 }
- }
- },
-
- '(function(){ return x; })': {
- type: 'ExpressionStatement',
- expression: {
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [
- {
- type: 'ReturnStatement',
- argument: {
- type: 'Identifier',
- name: 'x',
- range: [20, 21],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 21 }
- }
- },
- range: [13, 22],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 22 }
- }
- }
- ],
- range: [11, 24],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 1, column: 24 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [1, 24],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 1, column: 24 }
- }
- },
- range: [0, 25],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 25 }
- }
- },
-
- '(function(){ return x * y })': {
- type: 'ExpressionStatement',
- expression: {
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [
- {
- type: 'ReturnStatement',
- argument: {
- type: 'BinaryExpression',
- operator: '*',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [20, 21],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 21 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [24, 25],
- loc: {
- start: { line: 1, column: 24 },
- end: { line: 1, column: 25 }
- }
- },
- range: [20, 25],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 25 }
- }
- },
- range: [13, 26],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 26 }
- }
- }
- ],
- range: [11, 27],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 1, column: 27 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [1, 27],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 1, column: 27 }
- }
- },
- range: [0, 28],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 28 }
- }
- }
- },
-
- 'with statement': {
-
- 'with (x) foo = bar': {
- type: 'WithStatement',
- object: {
- type: 'Identifier',
- name: 'x',
- range: [6, 7],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 7 }
- }
- },
- body: {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'foo',
- range: [9, 12],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 12 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'bar',
- range: [15, 18],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 18 }
- }
- },
- range: [9, 18],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 18 }
- }
- },
- range: [9, 18],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 18 }
- }
- },
- range: [0, 18],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 18 }
- }
- },
-
- 'with (x) foo = bar;': {
- type: 'WithStatement',
- object: {
- type: 'Identifier',
- name: 'x',
- range: [6, 7],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 7 }
- }
- },
- body: {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'foo',
- range: [9, 12],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 12 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'bar',
- range: [15, 18],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 18 }
- }
- },
- range: [9, 18],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 18 }
- }
- },
- range: [9, 19],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 19 }
- }
- },
- range: [0, 19],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 19 }
- }
- },
-
- 'with (x) { foo = bar }': {
- type: 'WithStatement',
- object: {
- type: 'Identifier',
- name: 'x',
- range: [6, 7],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 7 }
- }
- },
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'foo',
- range: [11, 14],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 1, column: 14 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'bar',
- range: [17, 20],
- loc: {
- start: { line: 1, column: 17 },
- end: { line: 1, column: 20 }
- }
- },
- range: [11, 20],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 1, column: 20 }
- }
- },
- range: [11, 21],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 1, column: 21 }
- }
- }],
- range: [9, 22],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 22 }
- }
- },
- range: [0, 22],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 22 }
- }
- }
-
- },
-
- 'switch statement': {
-
- 'switch (x) {}': {
- type: 'SwitchStatement',
- discriminant: {
- type: 'Identifier',
- name: 'x',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 }
- }
- },
- cases:[],
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- },
-
- 'switch (answer) { case 42: hi(); break; }': {
- type: 'SwitchStatement',
- discriminant: {
- type: 'Identifier',
- name: 'answer',
- range: [8, 14],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 14 }
- }
- },
- cases: [{
- type: 'SwitchCase',
- test: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [23, 25],
- loc: {
- start: { line: 1, column: 23 },
- end: { line: 1, column: 25 }
- }
- },
- consequent: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'hi',
- range: [27, 29],
- loc: {
- start: { line: 1, column: 27 },
- end: { line: 1, column: 29 }
- }
- },
- 'arguments': [],
- range: [27, 31],
- loc: {
- start: { line: 1, column: 27 },
- end: { line: 1, column: 31 }
- }
- },
- range: [27, 32],
- loc: {
- start: { line: 1, column: 27 },
- end: { line: 1, column: 32 }
- }
- }, {
- type: 'BreakStatement',
- label: null,
- range: [33, 39],
- loc: {
- start: { line: 1, column: 33 },
- end: { line: 1, column: 39 }
- }
- }],
- range: [18, 39],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 39 }
- }
- }],
- range: [0, 41],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 41 }
- }
- },
-
- 'switch (answer) { case 42: hi(); break; default: break }': {
- type: 'SwitchStatement',
- discriminant: {
- type: 'Identifier',
- name: 'answer',
- range: [8, 14],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 14 }
- }
- },
- cases: [{
- type: 'SwitchCase',
- test: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [23, 25],
- loc: {
- start: { line: 1, column: 23 },
- end: { line: 1, column: 25 }
- }
- },
- consequent: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'hi',
- range: [27, 29],
- loc: {
- start: { line: 1, column: 27 },
- end: { line: 1, column: 29 }
- }
- },
- 'arguments': [],
- range: [27, 31],
- loc: {
- start: { line: 1, column: 27 },
- end: { line: 1, column: 31 }
- }
- },
- range: [27, 32],
- loc: {
- start: { line: 1, column: 27 },
- end: { line: 1, column: 32 }
- }
- }, {
- type: 'BreakStatement',
- label: null,
- range: [33, 39],
- loc: {
- start: { line: 1, column: 33 },
- end: { line: 1, column: 39 }
- }
- }],
- range: [18, 39],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 39 }
- }
- }, {
- type: 'SwitchCase',
- test: null,
- consequent: [{
- type: 'BreakStatement',
- label: null,
- range: [49, 55],
- loc: {
- start: { line: 1, column: 49 },
- end: { line: 1, column: 55 }
- }
- }],
- range: [40, 55],
- loc: {
- start: { line: 1, column: 40 },
- end: { line: 1, column: 55 }
- }
- }],
- range: [0, 56],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 56 }
- }
- }
-
- },
-
- 'Labelled Statements': {
-
- 'start: for (;;) break start': {
- type: 'LabeledStatement',
- label: {
- type: 'Identifier',
- name: 'start',
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
- body: {
- type: 'ForStatement',
- init: null,
- test: null,
- update: null,
- body: {
- type: 'BreakStatement',
- label: {
- type: 'Identifier',
- name: 'start',
- range: [22, 27],
- loc: {
- start: { line: 1, column: 22 },
- end: { line: 1, column: 27 }
- }
- },
- range: [16, 27],
- loc: {
- start: { line: 1, column: 16 },
- end: { line: 1, column: 27 }
- }
- },
- range: [7, 27],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 27 }
- }
- },
- range: [0, 27],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 27 }
- }
- },
-
- 'start: while (true) break start': {
- type: 'LabeledStatement',
- label: {
- type: 'Identifier',
- name: 'start',
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
- body: {
- type: 'WhileStatement',
- test: {
- type: 'Literal',
- value: true,
- raw: 'true',
- range: [14, 18],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 18 }
- }
- },
- body: {
- type: 'BreakStatement',
- label: {
- type: 'Identifier',
- name: 'start',
- range: [26, 31],
- loc: {
- start: { line: 1, column: 26 },
- end: { line: 1, column: 31 }
- }
- },
- range: [20, 31],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 31 }
- }
- },
- range: [7, 31],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 31 }
- }
- },
- range: [0, 31],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 31 }
- }
- },
-
- '__proto__: test': {
- type: 'LabeledStatement',
- label: {
- type: 'Identifier',
- name: '__proto__',
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- },
- body: {
- type: 'ExpressionStatement',
- expression: {
- type: 'Identifier',
- name: 'test',
- range: [11, 15],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 1, column: 15 }
- }
- },
- range: [11, 15],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 1, column: 15 }
- }
- },
- range: [0, 15],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 15 }
- }
- }
-
- },
-
- 'throw statement': {
-
- 'throw x;': {
- type: 'ThrowStatement',
- argument: {
- type: 'Identifier',
- name: 'x',
- range: [6, 7],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 7 }
- }
- },
- range: [0, 8],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 8 }
- }
- },
-
- 'throw x * y': {
- type: 'ThrowStatement',
- argument: {
- type: 'BinaryExpression',
- operator: '*',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [6, 7],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 7 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [10, 11],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 11 }
- }
- },
- range: [6, 11],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 11 }
- }
- },
- range: [0, 11],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 11 }
- }
- },
-
- 'throw { message: "Error" }': {
- type: 'ThrowStatement',
- argument: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'message',
- range: [8, 15],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 15 }
- }
- },
- value: {
- type: 'Literal',
- value: 'Error',
- raw: '"Error"',
- range: [17, 24],
- loc: {
- start: { line: 1, column: 17 },
- end: { line: 1, column: 24 }
- }
- },
- kind: 'init',
- range: [8, 24],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 24 }
- }
- }],
- range: [6, 26],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 26 }
- }
- },
- range: [0, 26],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 26 }
- }
- }
-
- },
-
- 'try statement': {
-
- 'try { } catch (e) { }': {
- type: 'TryStatement',
- block: {
- type: 'BlockStatement',
- body: [],
- range: [4, 7],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 7 }
- }
- },
- guardedHandlers: [],
- handlers: [{
- type: 'CatchClause',
- param: {
- type: 'Identifier',
- name: 'e',
- range: [15, 16],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 16 }
- }
- },
- body: {
- type: 'BlockStatement',
- body: [],
- range: [18, 21],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 21 }
- }
- },
- range: [8, 21],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 21 }
- }
- }],
- finalizer: null,
- range: [0, 21],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 21 }
- }
- },
-
- 'try { } catch (eval) { }': {
- type: 'TryStatement',
- block: {
- type: 'BlockStatement',
- body: [],
- range: [4, 7],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 7 }
- }
- },
- guardedHandlers: [],
- handlers: [{
- type: 'CatchClause',
- param: {
- type: 'Identifier',
- name: 'eval',
- range: [15, 19],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 19 }
- }
- },
- body: {
- type: 'BlockStatement',
- body: [],
- range: [21, 24],
- loc: {
- start: { line: 1, column: 21 },
- end: { line: 1, column: 24 }
- }
- },
- range: [8, 24],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 24 }
- }
- }],
- finalizer: null,
- range: [0, 24],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 24 }
- }
- },
-
- 'try { } catch (arguments) { }': {
- type: 'TryStatement',
- block: {
- type: 'BlockStatement',
- body: [],
- range: [4, 7],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 7 }
- }
- },
- guardedHandlers: [],
- handlers: [{
- type: 'CatchClause',
- param: {
- type: 'Identifier',
- name: 'arguments',
- range: [15, 24],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 24 }
- }
- },
- body: {
- type: 'BlockStatement',
- body: [],
- range: [26, 29],
- loc: {
- start: { line: 1, column: 26 },
- end: { line: 1, column: 29 }
- }
- },
- range: [8, 29],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 29 }
- }
- }],
- finalizer: null,
- range: [0, 29],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 29 }
- }
- },
-
- 'try { } catch (e) { say(e) }': {
- type: 'TryStatement',
- block: {
- type: 'BlockStatement',
- body: [],
- range: [4, 7],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 7 }
- }
- },
- guardedHandlers: [],
- handlers: [{
- type: 'CatchClause',
- param: {
- type: 'Identifier',
- name: 'e',
- range: [15, 16],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 16 }
- }
- },
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'say',
- range: [20, 23],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 23 }
- }
- },
- 'arguments': [{
- type: 'Identifier',
- name: 'e',
- range: [24, 25],
- loc: {
- start: { line: 1, column: 24 },
- end: { line: 1, column: 25 }
- }
- }],
- range: [20, 26],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 26 }
- }
- },
- range: [20, 27],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 27 }
- }
- }],
- range: [18, 28],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 28 }
- }
- },
- range: [8, 28],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 28 }
- }
- }],
- finalizer: null,
- range: [0, 28],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 28 }
- }
- },
-
- 'try { } finally { cleanup(stuff) }': {
- type: 'TryStatement',
- block: {
- type: 'BlockStatement',
- body: [],
- range: [4, 7],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 7 }
- }
- },
- guardedHandlers: [],
- handlers: [],
- finalizer: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'cleanup',
- range: [18, 25],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 25 }
- }
- },
- 'arguments': [{
- type: 'Identifier',
- name: 'stuff',
- range: [26, 31],
- loc: {
- start: { line: 1, column: 26 },
- end: { line: 1, column: 31 }
- }
- }],
- range: [18, 32],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 32 }
- }
- },
- range: [18, 33],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 33 }
- }
- }],
- range: [16, 34],
- loc: {
- start: { line: 1, column: 16 },
- end: { line: 1, column: 34 }
- }
- },
- range: [0, 34],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 34 }
- }
- },
-
- 'try { doThat(); } catch (e) { say(e) }': {
- type: 'TryStatement',
- block: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'doThat',
- range: [6, 12],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 12 }
- }
- },
- 'arguments': [],
- range: [6, 14],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 14 }
- }
- },
- range: [6, 15],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 15 }
- }
- }],
- range: [4, 17],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 17 }
- }
- },
- guardedHandlers: [],
- handlers: [{
- type: 'CatchClause',
- param: {
- type: 'Identifier',
- name: 'e',
- range: [25, 26],
- loc: {
- start: { line: 1, column: 25 },
- end: { line: 1, column: 26 }
- }
- },
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'say',
- range: [30, 33],
- loc: {
- start: { line: 1, column: 30 },
- end: { line: 1, column: 33 }
- }
- },
- 'arguments': [{
- type: 'Identifier',
- name: 'e',
- range: [34, 35],
- loc: {
- start: { line: 1, column: 34 },
- end: { line: 1, column: 35 }
- }
- }],
- range: [30, 36],
- loc: {
- start: { line: 1, column: 30 },
- end: { line: 1, column: 36 }
- }
- },
- range: [30, 37],
- loc: {
- start: { line: 1, column: 30 },
- end: { line: 1, column: 37 }
- }
- }],
- range: [28, 38],
- loc: {
- start: { line: 1, column: 28 },
- end: { line: 1, column: 38 }
- }
- },
- range: [18, 38],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 38 }
- }
- }],
- finalizer: null,
- range: [0, 38],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 38 }
- }
- },
-
- 'try { doThat(); } catch (e) { say(e) } finally { cleanup(stuff) }': {
- type: 'TryStatement',
- block: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'doThat',
- range: [6, 12],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 12 }
- }
- },
- 'arguments': [],
- range: [6, 14],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 14 }
- }
- },
- range: [6, 15],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 15 }
- }
- }],
- range: [4, 17],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 17 }
- }
- },
- guardedHandlers: [],
- handlers: [{
- type: 'CatchClause',
- param: {
- type: 'Identifier',
- name: 'e',
- range: [25, 26],
- loc: {
- start: { line: 1, column: 25 },
- end: { line: 1, column: 26 }
- }
- },
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'say',
- range: [30, 33],
- loc: {
- start: { line: 1, column: 30 },
- end: { line: 1, column: 33 }
- }
- },
- 'arguments': [{
- type: 'Identifier',
- name: 'e',
- range: [34, 35],
- loc: {
- start: { line: 1, column: 34 },
- end: { line: 1, column: 35 }
- }
- }],
- range: [30, 36],
- loc: {
- start: { line: 1, column: 30 },
- end: { line: 1, column: 36 }
- }
- },
- range: [30, 37],
- loc: {
- start: { line: 1, column: 30 },
- end: { line: 1, column: 37 }
- }
- }],
- range: [28, 38],
- loc: {
- start: { line: 1, column: 28 },
- end: { line: 1, column: 38 }
- }
- },
- range: [18, 38],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 38 }
- }
- }],
- finalizer: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'cleanup',
- range: [49, 56],
- loc: {
- start: { line: 1, column: 49 },
- end: { line: 1, column: 56 }
- }
- },
- 'arguments': [{
- type: 'Identifier',
- name: 'stuff',
- range: [57, 62],
- loc: {
- start: { line: 1, column: 57 },
- end: { line: 1, column: 62 }
- }
- }],
- range: [49, 63],
- loc: {
- start: { line: 1, column: 49 },
- end: { line: 1, column: 63 }
- }
- },
- range: [49, 64],
- loc: {
- start: { line: 1, column: 49 },
- end: { line: 1, column: 64 }
- }
- }],
- range: [47, 65],
- loc: {
- start: { line: 1, column: 47 },
- end: { line: 1, column: 65 }
- }
- },
- range: [0, 65],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 65 }
- }
- }
-
- },
-
- 'debugger statement': {
-
- 'debugger;': {
- type: 'DebuggerStatement',
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 }
- }
- }
-
- },
-
- 'Function Definition': {
-
- 'function hello() { sayHi(); }': {
- type: 'FunctionDeclaration',
- id: {
- type: 'Identifier',
- name: 'hello',
- range: [9, 14],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 14 }
- }
- },
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'sayHi',
- range: [19, 24],
- loc: {
- start: { line: 1, column: 19 },
- end: { line: 1, column: 24 }
- }
- },
- 'arguments': [],
- range: [19, 26],
- loc: {
- start: { line: 1, column: 19 },
- end: { line: 1, column: 26 }
- }
- },
- range: [19, 27],
- loc: {
- start: { line: 1, column: 19 },
- end: { line: 1, column: 27 }
- }
- }],
- range: [17, 29],
- loc: {
- start: { line: 1, column: 17 },
- end: { line: 1, column: 29 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [0, 29],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 29 }
- }
- },
-
- 'function eval() { }': {
- type: 'FunctionDeclaration',
- id: {
- type: 'Identifier',
- name: 'eval',
- range: [9, 13],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 13 }
- }
- },
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [16, 19],
- loc: {
- start: { line: 1, column: 16 },
- end: { line: 1, column: 19 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [0, 19],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 19 }
- }
- },
-
- 'function arguments() { }': {
- type: 'FunctionDeclaration',
- id: {
- type: 'Identifier',
- name: 'arguments',
- range: [9, 18],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 18 }
- }
- },
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [21, 24],
- loc: {
- start: { line: 1, column: 21 },
- end: { line: 1, column: 24 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [0, 24],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 24 }
- }
- },
-
- 'function test(t, t) { }': {
- type: 'FunctionDeclaration',
- id: {
- type: 'Identifier',
- name: 'test',
- range: [9, 13],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 13 }
- }
- },
- params: [{
- type: 'Identifier',
- name: 't',
- range: [14, 15],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 15 }
- }
- }, {
- type: 'Identifier',
- name: 't',
- range: [17, 18],
- loc: {
- start: { line: 1, column: 17 },
- end: { line: 1, column: 18 }
- }
- }],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [20, 23],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 23 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [0, 23],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 23 }
- }
- },
-
- '(function test(t, t) { })': {
- type: 'ExpressionStatement',
- expression: {
- type: 'FunctionExpression',
- id: {
- type: 'Identifier',
- name: 'test',
- range: [10, 14],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 14 }
- }
- },
- params: [{
- type: 'Identifier',
- name: 't',
- range: [15, 16],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 16 }
- }
- }, {
- type: 'Identifier',
- name: 't',
- range: [18, 19],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 19 }
- }
- }],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [21, 24],
- loc: {
- start: { line: 1, column: 21 },
- end: { line: 1, column: 24 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [1, 24],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 1, column: 24 }
- }
- },
- range: [0, 25],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 25 }
- }
- },
-
- 'function eval() { function inner() { "use strict" } }': {
- type: 'FunctionDeclaration',
- id: {
- type: 'Identifier',
- name: 'eval',
- range: [9, 13],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 13 }
- }
- },
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'FunctionDeclaration',
- id: {
- type: 'Identifier',
- name: 'inner',
- range: [27, 32],
- loc: {
- start: { line: 1, column: 27 },
- end: { line: 1, column: 32 }
- }
- },
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '\"use strict\"',
- range: [37, 49],
- loc: {
- start: { line: 1, column: 37 },
- end: { line: 1, column: 49 }
- }
- },
- range: [37, 50],
- loc: {
- start: { line: 1, column: 37 },
- end: { line: 1, column: 50 }
- }
- }],
- range: [35, 51],
- loc: {
- start: { line: 1, column: 35 },
- end: { line: 1, column: 51 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [18, 51],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 51 }
- }
- }],
- range: [16, 53],
- loc: {
- start: { line: 1, column: 16 },
- end: { line: 1, column: 53 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [0, 53],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 53 }
- }
- },
-
- 'function hello(a) { sayHi(); }': {
- type: 'FunctionDeclaration',
- id: {
- type: 'Identifier',
- name: 'hello',
- range: [9, 14],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 14 }
- }
- },
- params: [{
- type: 'Identifier',
- name: 'a',
- range: [15, 16],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 16 }
- }
- }],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'sayHi',
- range: [20, 25],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 25 }
- }
- },
- 'arguments': [],
- range: [20, 27],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 27 }
- }
- },
- range: [20, 28],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 28 }
- }
- }],
- range: [18, 30],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 30 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [0, 30],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 30 }
- }
- },
-
- 'function hello(a, b) { sayHi(); }': {
- type: 'FunctionDeclaration',
- id: {
- type: 'Identifier',
- name: 'hello',
- range: [9, 14],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 14 }
- }
- },
- params: [{
- type: 'Identifier',
- name: 'a',
- range: [15, 16],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 16 }
- }
- }, {
- type: 'Identifier',
- name: 'b',
- range: [18, 19],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 19 }
- }
- }],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'sayHi',
- range: [23, 28],
- loc: {
- start: { line: 1, column: 23 },
- end: { line: 1, column: 28 }
- }
- },
- 'arguments': [],
- range: [23, 30],
- loc: {
- start: { line: 1, column: 23 },
- end: { line: 1, column: 30 }
- }
- },
- range: [23, 31],
- loc: {
- start: { line: 1, column: 23 },
- end: { line: 1, column: 31 }
- }
- }],
- range: [21, 33],
- loc: {
- start: { line: 1, column: 21 },
- end: { line: 1, column: 33 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [0, 33],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 33 }
- }
- },
-
- 'var hi = function() { sayHi() };': {
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'hi',
- range: [4, 6],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 6 }
- }
- },
- init: {
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'sayHi',
- range: [22, 27],
- loc: {
- start: { line: 1, column: 22 },
- end: { line: 1, column: 27 }
- }
- },
- 'arguments': [],
- range: [22, 29],
- loc: {
- start: { line: 1, column: 22 },
- end: { line: 1, column: 29 }
- }
- },
- range: [22, 30],
- loc: {
- start: { line: 1, column: 22 },
- end: { line: 1, column: 30 }
- }
- }],
- range: [20, 31],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 31 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [9, 31],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 31 }
- }
- },
- range: [4, 31],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 31 }
- }
- }],
- kind: 'var',
- range: [0, 32],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 32 }
- }
- },
-
- 'var hi = function eval() { };': {
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'hi',
- range: [4, 6],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 6 }
- }
- },
- init: {
- type: 'FunctionExpression',
- id: {
- type: 'Identifier',
- name: 'eval',
- range: [18, 22],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 22 }
- }
- },
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [25, 28],
- loc: {
- start: { line: 1, column: 25 },
- end: { line: 1, column: 28 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [9, 28],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 28 }
- }
- },
- range: [4, 28],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 28 }
- }
- }],
- kind: 'var',
- range: [0, 29],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 29 }
- }
- },
-
- 'var hi = function arguments() { };': {
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'hi',
- range: [4, 6],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 6 }
- }
- },
- init: {
- type: 'FunctionExpression',
- id: {
- type: 'Identifier',
- name: 'arguments',
- range: [18, 27],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 27 }
- }
- },
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [30, 33],
- loc: {
- start: { line: 1, column: 30 },
- end: { line: 1, column: 33 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [9, 33],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 33 }
- }
- },
- range: [4, 33],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 33 }
- }
- }],
- kind: 'var',
- range: [0, 34],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 34 }
- }
- },
-
- 'var hello = function hi() { sayHi() };': {
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'hello',
- range: [4, 9],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 9 }
- }
- },
- init: {
- type: 'FunctionExpression',
- id: {
- type: 'Identifier',
- name: 'hi',
- range: [21, 23],
- loc: {
- start: { line: 1, column: 21 },
- end: { line: 1, column: 23 }
- }
- },
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'sayHi',
- range: [28, 33],
- loc: {
- start: { line: 1, column: 28 },
- end: { line: 1, column: 33 }
- }
- },
- 'arguments': [],
- range: [28, 35],
- loc: {
- start: { line: 1, column: 28 },
- end: { line: 1, column: 35 }
- }
- },
- range: [28, 36],
- loc: {
- start: { line: 1, column: 28 },
- end: { line: 1, column: 36 }
- }
- }],
- range: [26, 37],
- loc: {
- start: { line: 1, column: 26 },
- end: { line: 1, column: 37 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [12, 37],
- loc: {
- start: { line: 1, column: 12 },
- end: { line: 1, column: 37 }
- }
- },
- range: [4, 37],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 37 }
- }
- }],
- kind: 'var',
- range: [0, 38],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 38 }
- }
- },
-
- '(function(){})': {
- type: 'ExpressionStatement',
- expression: {
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [11, 13],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 1, column: 13 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [1, 13],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 1, column: 13 }
- }
- },
- range: [0, 14],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 14 }
- }
- },
-
- 'function universe(__proto__) { }': {
- type: 'FunctionDeclaration',
- id: {
- type: 'Identifier',
- name: 'universe',
- range: [9, 17],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 17 }
- }
- },
- params: [{
- type: 'Identifier',
- name: '__proto__',
- range: [18, 27],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 27 }
- }
- }],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [29, 32],
- loc: {
- start: { line: 1, column: 29 },
- end: { line: 1, column: 32 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [0, 32],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 32 }
- }
- },
-
- 'function test() { "use strict" + 42; }': {
- type: 'FunctionDeclaration',
- id: {
- type: 'Identifier',
- name: 'test',
- range: [9, 13],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 13 }
- }
- },
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '+',
- left: {
- type: 'Literal',
- value: 'use strict',
- raw: '"use strict"',
- range: [18, 30],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 30 }
- }
- },
- right: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [33, 35],
- loc: {
- start: { line: 1, column: 33 },
- end: { line: 1, column: 35 }
- }
- },
- range: [18, 35],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 35 }
- }
- },
- range: [18, 36],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 36 }
- }
- }],
- range: [16, 38],
- loc: {
- start: { line: 1, column: 16 },
- end: { line: 1, column: 38 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [0, 38],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 38 }
- }
- }
-
- },
-
- 'Automatic semicolon insertion': {
-
- '{ x\n++y }': {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Identifier',
- name: 'x',
- range: [2, 3],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 3 }
- }
- },
- range: [2, 3],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 3 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'UpdateExpression',
- operator: '++',
- argument: {
- type: 'Identifier',
- name: 'y',
- range: [6, 7],
- loc: {
- start: { line: 2, column: 2 },
- end: { line: 2, column: 3 }
- }
- },
- prefix: true,
- range: [4, 7],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 3 }
- }
- },
- range: [4, 8],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 4 }
- }
- }],
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 2, column: 5 }
- }
- },
-
- '{ x\n--y }': {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Identifier',
- name: 'x',
- range: [2, 3],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 3 }
- }
- },
- range: [2, 3],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 3 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'UpdateExpression',
- operator: '--',
- argument: {
- type: 'Identifier',
- name: 'y',
- range: [6, 7],
- loc: {
- start: { line: 2, column: 2 },
- end: { line: 2, column: 3 }
- }
- },
- prefix: true,
- range: [4, 7],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 3 }
- }
- },
- range: [4, 8],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 4 }
- }
- }],
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 2, column: 5 }
- }
- },
-
- 'var x /* comment */;': {
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- init: null,
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- }],
- kind: 'var',
- range: [0, 20],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 20 }
- }
- },
-
- '{ var x = 14, y = 3\nz; }': {
- type: 'BlockStatement',
- body: [{
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- range: [6, 7],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 7 }
- }
- },
- init: {
- type: 'Literal',
- value: 14,
- raw: '14',
- range: [10, 12],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 12 }
- }
- },
- range: [6, 12],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 12 }
- }
- }, {
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'y',
- range: [14, 15],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 15 }
- }
- },
- init: {
- type: 'Literal',
- value: 3,
- raw: '3',
- range: [18, 19],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 19 }
- }
- },
- range: [14, 19],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 19 }
- }
- }],
- kind: 'var',
- range: [2, 19],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 19 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'Identifier',
- name: 'z',
- range: [20, 21],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 1 }
- }
- },
- range: [20, 22],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 2 }
- }
- }],
- range: [0, 24],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 2, column: 4 }
- }
- },
-
- 'while (true) { continue\nthere; }': {
- type: 'WhileStatement',
- test: {
- type: 'Literal',
- value: true,
- raw: 'true',
- range: [7, 11],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 11 }
- }
- },
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ContinueStatement',
- label: null,
- range: [15, 23],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 23 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'Identifier',
- name: 'there',
- range: [24, 29],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 5 }
- }
- },
- range: [24, 30],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 6 }
- }
- }],
- range: [13, 32],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 2, column: 8 }
- }
- },
- range: [0, 32],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 2, column: 8 }
- }
- },
-
- 'while (true) { continue // Comment\nthere; }': {
- type: 'WhileStatement',
- test: {
- type: 'Literal',
- value: true,
- raw: 'true',
- range: [7, 11],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 11 }
- }
- },
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ContinueStatement',
- label: null,
- range: [15, 23],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 23 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'Identifier',
- name: 'there',
- range: [35, 40],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 5 }
- }
- },
- range: [35, 41],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 6 }
- }
- }],
- range: [13, 43],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 2, column: 8 }
- }
- },
- range: [0, 43],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 2, column: 8 }
- }
- },
-
- 'while (true) { continue /* Multiline\nComment */there; }': {
- type: 'WhileStatement',
- test: {
- type: 'Literal',
- value: true,
- raw: 'true',
- range: [7, 11],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 11 }
- }
- },
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ContinueStatement',
- label: null,
- range: [15, 23],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 23 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'Identifier',
- name: 'there',
- range: [47, 52],
- loc: {
- start: { line: 2, column: 10 },
- end: { line: 2, column: 15 }
- }
- },
- range: [47, 53],
- loc: {
- start: { line: 2, column: 10 },
- end: { line: 2, column: 16 }
- }
- }],
- range: [13, 55],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 2, column: 18 }
- }
- },
- range: [0, 55],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 2, column: 18 }
- }
- },
-
- 'while (true) { break\nthere; }': {
- type: 'WhileStatement',
- test: {
- type: 'Literal',
- value: true,
- raw: 'true',
- range: [7, 11],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 11 }
- }
- },
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'BreakStatement',
- label: null,
- range: [15, 20],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 20 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'Identifier',
- name: 'there',
- range: [21, 26],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 5 }
- }
- },
- range: [21, 27],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 6 }
- }
- }],
- range: [13, 29],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 2, column: 8 }
- }
- },
- range: [0, 29],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 2, column: 8 }
- }
- },
-
- 'while (true) { break // Comment\nthere; }': {
- type: 'WhileStatement',
- test: {
- type: 'Literal',
- value: true,
- raw: 'true',
- range: [7, 11],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 11 }
- }
- },
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'BreakStatement',
- label: null,
- range: [15, 20],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 20 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'Identifier',
- name: 'there',
- range: [32, 37],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 5 }
- }
- },
- range: [32, 38],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 6 }
- }
- }],
- range: [13, 40],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 2, column: 8 }
- }
- },
- range: [0, 40],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 2, column: 8 }
- }
- },
-
- 'while (true) { break /* Multiline\nComment */there; }': {
- type: 'WhileStatement',
- test: {
- type: 'Literal',
- value: true,
- raw: 'true',
- range: [7, 11],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 11 }
- }
- },
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'BreakStatement',
- label: null,
- range: [15, 20],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 20 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'Identifier',
- name: 'there',
- range: [44, 49],
- loc: {
- start: { line: 2, column: 10 },
- end: { line: 2, column: 15 }
- }
- },
- range: [44, 50],
- loc: {
- start: { line: 2, column: 10 },
- end: { line: 2, column: 16 }
- }
- }],
- range: [13, 52],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 2, column: 18 }
- }
- },
- range: [0, 52],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 2, column: 18 }
- }
- },
-
- '(function(){ return\nx; })': {
- type: 'ExpressionStatement',
- expression: {
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [
- {
- type: 'ReturnStatement',
- argument: null,
- range: [13, 19],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 19 }
- }
- },
- {
- type: 'ExpressionStatement',
- expression: {
- type: 'Identifier',
- name: 'x',
- range: [20, 21],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 1 }
- }
- },
- range: [20, 22],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 2 }
- }
- }
- ],
- range: [11, 24],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 2, column: 4 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [1, 24],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 2, column: 4 }
- }
- },
- range: [0, 25],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 2, column: 5 }
- }
- },
-
- '(function(){ return // Comment\nx; })': {
- type: 'ExpressionStatement',
- expression: {
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [
- {
- type: 'ReturnStatement',
- argument: null,
- range: [13, 19],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 19 }
- }
- },
- {
- type: 'ExpressionStatement',
- expression: {
- type: 'Identifier',
- name: 'x',
- range: [31, 32],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 1 }
- }
- },
- range: [31, 33],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 2 }
- }
- }
- ],
- range: [11, 35],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 2, column: 4 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [1, 35],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 2, column: 4 }
- }
- },
- range: [0, 36],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 2, column: 5 }
- }
- },
-
- '(function(){ return/* Multiline\nComment */x; })': {
- type: 'ExpressionStatement',
- expression: {
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [
- {
- type: 'ReturnStatement',
- argument: null,
- range: [13, 19],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 19 }
- }
- },
- {
- type: 'ExpressionStatement',
- expression: {
- type: 'Identifier',
- name: 'x',
- range: [42, 43],
- loc: {
- start: { line: 2, column: 10 },
- end: { line: 2, column: 11 }
- }
- },
- range: [42, 44],
- loc: {
- start: { line: 2, column: 10 },
- end: { line: 2, column: 12 }
- }
- }
- ],
- range: [11, 46],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 2, column: 14 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [1, 46],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 2, column: 14 }
- }
- },
- range: [0, 47],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 2, column: 15 }
- }
- },
-
- '{ throw error\nerror; }': {
- type: 'BlockStatement',
- body: [{
- type: 'ThrowStatement',
- argument: {
- type: 'Identifier',
- name: 'error',
- range: [8, 13],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 13 }
- }
- },
- range: [2, 13],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'Identifier',
- name: 'error',
- range: [14, 19],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 5 }
- }
- },
- range: [14, 20],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 6 }
- }
- }],
- range: [0, 22],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 2, column: 8 }
- }
- },
-
- '{ throw error// Comment\nerror; }': {
- type: 'BlockStatement',
- body: [{
- type: 'ThrowStatement',
- argument: {
- type: 'Identifier',
- name: 'error',
- range: [8, 13],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 13 }
- }
- },
- range: [2, 13],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'Identifier',
- name: 'error',
- range: [24, 29],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 5 }
- }
- },
- range: [24, 30],
- loc: {
- start: { line: 2, column: 0 },
- end: { line: 2, column: 6 }
- }
- }],
- range: [0, 32],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 2, column: 8 }
- }
- },
-
- '{ throw error/* Multiline\nComment */error; }': {
- type: 'BlockStatement',
- body: [{
- type: 'ThrowStatement',
- argument: {
- type: 'Identifier',
- name: 'error',
- range: [8, 13],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 13 }
- }
- },
- range: [2, 13],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'Identifier',
- name: 'error',
- range: [36, 41],
- loc: {
- start: { line: 2, column: 10 },
- end: { line: 2, column: 15 }
- }
- },
- range: [36, 42],
- loc: {
- start: { line: 2, column: 10 },
- end: { line: 2, column: 16 }
- }
- }],
- range: [0, 44],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 2, column: 18 }
- }
- }
-
- },
-
- 'Directive Prolog': {
-
- '(function () { \'use\\x20strict\'; with (i); }())': {
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '\'use\\x20strict\'',
- range: [15, 30],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 30 }
- }
- },
- range: [15, 31],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 31 }
- }
- }, {
- type: 'WithStatement',
- object: {
- type: 'Identifier',
- name: 'i',
- range: [38, 39],
- loc: {
- start: { line: 1, column: 38 },
- end: { line: 1, column: 39 }
- }
- },
- body: {
- type: 'EmptyStatement',
- range: [40, 41],
- loc: {
- start: { line: 1, column: 40 },
- end: { line: 1, column: 41 }
- }
- },
- range: [32, 41],
- loc: {
- start: { line: 1, column: 32 },
- end: { line: 1, column: 41 }
- }
- }],
- range: [13, 43],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 43 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [1, 43],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 1, column: 43 }
- }
- },
- 'arguments': [],
- range: [1, 45],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 1, column: 45 }
- }
- },
- range: [0, 46],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 46 }
- }
- },
-
- '(function () { \'use\\nstrict\'; with (i); }())': {
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use\nstrict',
- raw: '\'use\\nstrict\'',
- range: [15, 28],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 28 }
- }
- },
- range: [15, 29],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 29 }
- }
- }, {
- type: 'WithStatement',
- object: {
- type: 'Identifier',
- name: 'i',
- range: [36, 37],
- loc: {
- start: { line: 1, column: 36 },
- end: { line: 1, column: 37 }
- }
- },
- body: {
- type: 'EmptyStatement',
- range: [38, 39],
- loc: {
- start: { line: 1, column: 38 },
- end: { line: 1, column: 39 }
- }
- },
- range: [30, 39],
- loc: {
- start: { line: 1, column: 30 },
- end: { line: 1, column: 39 }
- }
- }],
- range: [13, 41],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 41 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [1, 41],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 1, column: 41 }
- }
- },
- 'arguments': [],
- range: [1, 43],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 1, column: 43 }
- }
- },
- range: [0, 44],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 44 }
- }
- }
-
- },
-
- 'Whitespace': {
-
- 'new\x20\x09\x0B\x0C\xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\uFEFFa': {
- type: 'ExpressionStatement',
- expression: {
- type: 'NewExpression',
- callee: {
- type: 'Identifier',
- name: 'a',
- range: [25, 26],
- loc: {
- start: {line: 1, column: 25},
- end: {line: 1, column: 26}
- }
- },
- arguments: [],
- range: [0, 26],
- loc: {
- start: {line: 1, column: 0},
- end: {line: 1, column: 26}
- }
- },
- range: [0, 26],
- loc: {
- start: {line: 1, column: 0},
- end: {line: 1, column: 26}
- }
- },
-
- '{0\x0A1\x0D2\u20283\u20294}': {
- type: 'BlockStatement',
- body: [
- {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 0,
- raw: '0',
- range: [1, 2],
- loc: {
- start: {line: 1, column: 1},
- end: {line: 1, column: 2}
- }
- },
- range: [1, 2],
- loc: {
- start: {line: 1, column: 1},
- end: {line: 1, column: 2}
- }
- },
- {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 1,
- raw: '1',
- range: [3, 4],
- loc: {
- start: {line: 2, column: 0},
- end: {line: 2, column: 1}
- }
- },
- range: [3, 4],
- loc: {
- start: {line: 2, column: 0},
- end: {line: 2, column: 1}
- }
- },
- {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 2,
- raw: '2',
- range: [5, 6],
- loc: {
- start: {line: 3, column: 0},
- end: {line: 3, column: 1}
- }
- },
- range: [5, 6],
- loc: {
- start: {line: 3, column: 0},
- end: {line: 3, column: 1}
- }
- },
- {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 3,
- raw: '3',
- range: [7, 8],
- loc: {
- start: {line: 4, column: 0},
- end: {line: 4, column: 1}
- }
- },
- range: [7, 8],
- loc: {
- start: {line: 4, column: 0},
- end: {line: 4, column: 1}
- }
- },
- {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 4,
- raw: '4',
- range: [9, 10],
- loc: {
- start: {line: 5, column: 0},
- end: {line: 5, column: 1}
- }
- },
- range: [9, 10],
- loc: {
- start: {line: 5, column: 0},
- end: {line: 5, column: 1}
- }
- }
- ],
- range: [0, 11],
- loc: {
- start: {line: 1, column: 0},
- end: {line: 5, column: 2}
- }
- }
-
- },
-
- 'Source elements': {
-
- '': {
- type: 'Program',
- body: [],
- range: [0, 0],
- loc: {
- start: { line: 0, column: 0 },
- end: { line: 0, column: 0 }
- },
- tokens: []
- }
- },
-
- 'Source option': {
- 'x + y - z': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '-',
- left: {
- type: 'BinaryExpression',
- operator: '+',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 },
- source: '42.js'
- }
- },
- right: {
- type: 'Identifier',
- name: 'y',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 },
- source: '42.js'
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 },
- source: '42.js'
- }
- },
- right: {
- type: 'Identifier',
- name: 'z',
- range: [8, 9],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 9 },
- source: '42.js'
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 },
- source: '42.js'
- }
- },
- range: [0, 9],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 9 },
- source: '42.js'
- }
- },
-
- 'a + (b < (c * d)) + e': {
- type: 'ExpressionStatement',
- expression: {
- type: 'BinaryExpression',
- operator: '+',
- left: {
- type: 'BinaryExpression',
- operator: '+',
- left: {
- type: 'Identifier',
- name: 'a',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 },
- source: '42.js'
- }
- },
- right: {
- type: 'BinaryExpression',
- operator: '<',
- left: {
- type: 'Identifier',
- name: 'b',
- range: [5, 6],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 6 },
- source: '42.js'
- }
- },
- right: {
- type: 'BinaryExpression',
- operator: '*',
- left: {
- type: 'Identifier',
- name: 'c',
- range: [10, 11],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 11 },
- source: '42.js'
- }
- },
- right: {
- type: 'Identifier',
- name: 'd',
- range: [14, 15],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 15 },
- source: '42.js'
- }
- },
- range: [10, 15],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 15 },
- source: '42.js'
- }
- },
- range: [5, 16],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 16 },
- source: '42.js'
- }
- },
- range: [0, 17],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 17 },
- source: '42.js'
- }
- },
- right: {
- type: 'Identifier',
- name: 'e',
- range: [20, 21],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 21 },
- source: '42.js'
- }
- },
- range: [0, 21],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 21 },
- source: '42.js'
- }
- },
- range: [0, 21],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 21 },
- source: '42.js'
- }
- }
-
- },
-
-
- 'Invalid syntax': {
-
- '{': {
- index: 1,
- lineNumber: 1,
- column: 2,
- message: 'Error: Line 1: Unexpected end of input'
- },
-
- '}': {
- index: 0,
- lineNumber: 1,
- column: 1,
- message: 'Error: Line 1: Unexpected token }'
- },
-
- '3ea': {
- index: 2,
- lineNumber: 1,
- column: 3,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- '3in []': {
- index: 1,
- lineNumber: 1,
- column: 2,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- '3e': {
- index: 2,
- lineNumber: 1,
- column: 3,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- '3e+': {
- index: 3,
- lineNumber: 1,
- column: 4,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- '3e-': {
- index: 3,
- lineNumber: 1,
- column: 4,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- '3x': {
- index: 1,
- lineNumber: 1,
- column: 2,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- '3x0': {
- index: 1,
- lineNumber: 1,
- column: 2,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- '0x': {
- index: 2,
- lineNumber: 1,
- column: 3,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- '01a': {
- index: 2,
- lineNumber: 1,
- column: 3,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- '3in[]': {
- index: 1,
- lineNumber: 1,
- column: 2,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- '0x3in[]': {
- index: 3,
- lineNumber: 1,
- column: 4,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- '"Hello\nWorld"': {
- index: 7,
- lineNumber: 1,
- column: 8,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- 'x\\': {
- index: 2,
- lineNumber: 1,
- column: 3,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- 'x\\u005c': {
- index: 7,
- lineNumber: 1,
- column: 8,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- 'x\\u002a': {
- index: 7,
- lineNumber: 1,
- column: 8,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- 'var x = /(s/g': {
- index: 13,
- lineNumber: 1,
- column: 14,
- message: 'Error: Line 1: Invalid regular expression'
- },
-
- 'a\\u': {
- index: 3,
- lineNumber: 1,
- column: 4,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- '\\ua': {
- index: 3,
- lineNumber: 1,
- column: 4,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- '/': {
- index: 1,
- lineNumber: 1,
- column: 2,
- message: 'Error: Line 1: Invalid regular expression: missing /'
- },
-
- '/test': {
- index: 5,
- lineNumber: 1,
- column: 6,
- message: 'Error: Line 1: Invalid regular expression: missing /'
- },
-
- '/test\n/': {
- index: 6,
- lineNumber: 1,
- column: 7,
- message: 'Error: Line 1: Invalid regular expression: missing /'
- },
-
- 'var x = /[a-z]/\\ux': {
- index: 17,
- lineNumber: 1,
- column: 18,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- 'var x = /[a-z\n]/\\ux': {
- index: 14,
- lineNumber: 1,
- column: 15,
- message: 'Error: Line 1: Invalid regular expression: missing /'
- },
-
- 'var x = /[a-z]/\\\\ux': {
- index: 16,
- lineNumber: 1,
- column: 17,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- 'var x = /[P QR]/\\\\u0067': {
- index: 17,
- lineNumber: 1,
- column: 18,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- '3 = 4': {
- index: 1,
- lineNumber: 1,
- column: 2,
- message: 'Error: Line 1: Invalid left-hand side in assignment'
- },
-
- 'func() = 4': {
- index: 6,
- lineNumber: 1,
- column: 7,
- message: 'Error: Line 1: Invalid left-hand side in assignment'
- },
-
- '(1 + 1) = 10': {
- index: 7,
- lineNumber: 1,
- column: 8,
- message: 'Error: Line 1: Invalid left-hand side in assignment'
- },
-
- '1++': {
- index: 1,
- lineNumber: 1,
- column: 2,
- message: 'Error: Line 1: Invalid left-hand side in assignment'
- },
-
- '1--': {
- index: 1,
- lineNumber: 1,
- column: 2,
- message: 'Error: Line 1: Invalid left-hand side in assignment'
- },
-
- '++1': {
- index: 3,
- lineNumber: 1,
- column: 4,
- message: 'Error: Line 1: Invalid left-hand side in assignment'
- },
-
- '--1': {
- index: 3,
- lineNumber: 1,
- column: 4,
- message: 'Error: Line 1: Invalid left-hand side in assignment'
- },
-
- 'for((1 + 1) in list) process(x);': {
- index: 11,
- lineNumber: 1,
- column: 12,
- message: 'Error: Line 1: Invalid left-hand side in for-in'
- },
-
- '[': {
- index: 1,
- lineNumber: 1,
- column: 2,
- message: 'Error: Line 1: Unexpected end of input'
- },
-
- '[,': {
- index: 2,
- lineNumber: 1,
- column: 3,
- message: 'Error: Line 1: Unexpected end of input'
- },
-
- '1 + {': {
- index: 5,
- lineNumber: 1,
- column: 6,
- message: 'Error: Line 1: Unexpected end of input'
- },
-
- '1 + { t:t ': {
- index: 10,
- lineNumber: 1,
- column: 11,
- message: 'Error: Line 1: Unexpected end of input'
- },
-
- '1 + { t:t,': {
- index: 10,
- lineNumber: 1,
- column: 11,
- message: 'Error: Line 1: Unexpected end of input'
- },
-
- 'var x = /\n/': {
- index: 10,
- lineNumber: 1,
- column: 11,
- message: 'Error: Line 1: Invalid regular expression: missing /'
- },
-
- 'var x = "\n': {
- index: 10,
- lineNumber: 1,
- column: 11,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- 'var if = 42': {
- index: 4,
- lineNumber: 1,
- column: 5,
- message: 'Error: Line 1: Unexpected token if'
- },
-
- 'i #= 42': {
- index: 2,
- lineNumber: 1,
- column: 3,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- 'i + 2 = 42': {
- index: 5,
- lineNumber: 1,
- column: 6,
- message: 'Error: Line 1: Invalid left-hand side in assignment'
- },
-
- '+i = 42': {
- index: 2,
- lineNumber: 1,
- column: 3,
- message: 'Error: Line 1: Invalid left-hand side in assignment'
- },
-
- '1 + (': {
- index: 5,
- lineNumber: 1,
- column: 6,
- message: 'Error: Line 1: Unexpected end of input'
- },
-
- '\n\n\n{': {
- index: 4,
- lineNumber: 4,
- column: 2,
- message: 'Error: Line 4: Unexpected end of input'
- },
-
- '\n/* Some multiline\ncomment */\n)': {
- index: 30,
- lineNumber: 4,
- column: 1,
- message: 'Error: Line 4: Unexpected token )'
- },
-
- '{ set 1 }': {
- index: 6,
- lineNumber: 1,
- column: 7,
- message: 'Error: Line 1: Unexpected number'
- },
-
- '{ get 2 }': {
- index: 6,
- lineNumber: 1,
- column: 7,
- message: 'Error: Line 1: Unexpected number'
- },
-
- '({ set: s(if) { } })': {
- index: 10,
- lineNumber: 1,
- column: 11,
- message: 'Error: Line 1: Unexpected token if'
- },
-
- '({ set s(.) { } })': {
- index: 9,
- lineNumber: 1,
- column: 10,
- message: 'Error: Line 1: Unexpected token .'
- },
-
- '({ set s() { } })': {
- index: 9,
- lineNumber: 1,
- column: 10,
- message: 'Error: Line 1: Unexpected token )'
- },
-
- '({ set: s() { } })': {
- index: 12,
- lineNumber: 1,
- column: 13,
- message: 'Error: Line 1: Unexpected token {'
- },
-
- '({ set: s(a, b) { } })': {
- index: 16,
- lineNumber: 1,
- column: 17,
- message: 'Error: Line 1: Unexpected token {'
- },
-
- '({ get: g(d) { } })': {
- index: 13,
- lineNumber: 1,
- column: 14,
- message: 'Error: Line 1: Unexpected token {'
- },
-
- '({ get i() { }, i: 42 })': {
- index: 21,
- lineNumber: 1,
- column: 22,
- message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
- },
-
- '({ i: 42, get i() { } })': {
- index: 21,
- lineNumber: 1,
- column: 22,
- message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
- },
-
- '({ set i(x) { }, i: 42 })': {
- index: 22,
- lineNumber: 1,
- column: 23,
- message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
- },
-
- '({ i: 42, set i(x) { } })': {
- index: 22,
- lineNumber: 1,
- column: 23,
- message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
- },
-
- '({ get i() { }, get i() { } })': {
- index: 27,
- lineNumber: 1,
- column: 28,
- message: 'Error: Line 1: Object literal may not have multiple get/set accessors with the same name'
- },
-
- '({ set i(x) { }, set i(x) { } })': {
- index: 29,
- lineNumber: 1,
- column: 30,
- message: 'Error: Line 1: Object literal may not have multiple get/set accessors with the same name'
- },
-
- 'function t(if) { }': {
- index: 11,
- lineNumber: 1,
- column: 12,
- message: 'Error: Line 1: Unexpected token if'
- },
-
- 'function t(true) { }': {
- index: 11,
- lineNumber: 1,
- column: 12,
- message: 'Error: Line 1: Unexpected token true'
- },
-
- 'function t(false) { }': {
- index: 11,
- lineNumber: 1,
- column: 12,
- message: 'Error: Line 1: Unexpected token false'
- },
-
- 'function t(null) { }': {
- index: 11,
- lineNumber: 1,
- column: 12,
- message: 'Error: Line 1: Unexpected token null'
- },
-
- 'function null() { }': {
- index: 9,
- lineNumber: 1,
- column: 10,
- message: 'Error: Line 1: Unexpected token null'
- },
-
- 'function true() { }': {
- index: 9,
- lineNumber: 1,
- column: 10,
- message: 'Error: Line 1: Unexpected token true'
- },
-
- 'function false() { }': {
- index: 9,
- lineNumber: 1,
- column: 10,
- message: 'Error: Line 1: Unexpected token false'
- },
-
- 'function if() { }': {
- index: 9,
- lineNumber: 1,
- column: 10,
- message: 'Error: Line 1: Unexpected token if'
- },
-
- 'a b;': {
- index: 2,
- lineNumber: 1,
- column: 3,
- message: 'Error: Line 1: Unexpected identifier'
- },
-
- 'if.a;': {
- index: 2,
- lineNumber: 1,
- column: 3,
- message: 'Error: Line 1: Unexpected token .'
- },
-
- 'a if;': {
- index: 2,
- lineNumber: 1,
- column: 3,
- message: 'Error: Line 1: Unexpected token if'
- },
-
- 'a class;': {
- index: 2,
- lineNumber: 1,
- column: 3,
- message: 'Error: Line 1: Unexpected reserved word'
- },
-
- 'break\n': {
- index: 5,
- lineNumber: 1,
- column: 6,
- message: 'Error: Line 1: Illegal break statement'
- },
-
- 'break 1;': {
- index: 6,
- lineNumber: 1,
- column: 7,
- message: 'Error: Line 1: Unexpected number'
- },
-
- 'continue\n': {
- index: 8,
- lineNumber: 1,
- column: 9,
- message: 'Error: Line 1: Illegal continue statement'
- },
-
- 'continue 2;': {
- index: 9,
- lineNumber: 1,
- column: 10,
- message: 'Error: Line 1: Unexpected number'
- },
-
- 'throw': {
- index: 5,
- lineNumber: 1,
- column: 6,
- message: 'Error: Line 1: Unexpected end of input'
- },
-
- 'throw;': {
- index: 5,
- lineNumber: 1,
- column: 6,
- message: 'Error: Line 1: Unexpected token ;'
- },
-
- 'throw\n': {
- index: 5,
- lineNumber: 1,
- column: 6,
- message: 'Error: Line 1: Illegal newline after throw'
- },
-
- 'for (var i, i2 in {});': {
- index: 15,
- lineNumber: 1,
- column: 16,
- message: 'Error: Line 1: Unexpected token in'
- },
-
- 'for ((i in {}));': {
- index: 14,
- lineNumber: 1,
- column: 15,
- message: 'Error: Line 1: Unexpected token )'
- },
-
- 'for (i + 1 in {});': {
- index: 10,
- lineNumber: 1,
- column: 11,
- message: 'Error: Line 1: Invalid left-hand side in for-in'
- },
-
- 'for (+i in {});': {
- index: 7,
- lineNumber: 1,
- column: 8,
- message: 'Error: Line 1: Invalid left-hand side in for-in'
- },
-
- 'if(false)': {
- index: 9,
- lineNumber: 1,
- column: 10,
- message: 'Error: Line 1: Unexpected end of input'
- },
-
- 'if(false) doThis(); else': {
- index: 24,
- lineNumber: 1,
- column: 25,
- message: 'Error: Line 1: Unexpected end of input'
- },
-
- 'do': {
- index: 2,
- lineNumber: 1,
- column: 3,
- message: 'Error: Line 1: Unexpected end of input'
- },
-
- 'while(false)': {
- index: 12,
- lineNumber: 1,
- column: 13,
- message: 'Error: Line 1: Unexpected end of input'
- },
-
- 'for(;;)': {
- index: 7,
- lineNumber: 1,
- column: 8,
- message: 'Error: Line 1: Unexpected end of input'
- },
-
- 'with(x)': {
- index: 7,
- lineNumber: 1,
- column: 8,
- message: 'Error: Line 1: Unexpected end of input'
- },
-
- 'try { }': {
- index: 7,
- lineNumber: 1,
- column: 8,
- message: 'Error: Line 1: Missing catch or finally after try'
- },
-
- 'try {} catch (42) {} ': {
- index: 14,
- lineNumber: 1,
- column: 15,
- message: 'Error: Line 1: Unexpected number'
- },
-
- 'try {} catch (answer()) {} ': {
- index: 20,
- lineNumber: 1,
- column: 21,
- message: 'Error: Line 1: Unexpected token ('
- },
-
- 'try {} catch (-x) {} ': {
- index: 14,
- lineNumber: 1,
- column: 15,
- message: 'Error: Line 1: Unexpected token -'
- },
-
-
- '\u203F = 10': {
- index: 0,
- lineNumber: 1,
- column: 1,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- 'const x = 12, y;': {
- index: 15,
- lineNumber: 1,
- column: 16,
- message: 'Error: Line 1: Unexpected token ;'
- },
-
- 'const x, y = 12;': {
- index: 7,
- lineNumber: 1,
- column: 8,
- message: 'Error: Line 1: Unexpected token ,'
- },
-
- 'const x;': {
- index: 7,
- lineNumber: 1,
- column: 8,
- message: 'Error: Line 1: Unexpected token ;'
- },
-
- 'if(true) let a = 1;': {
- index: 9,
- lineNumber: 1,
- column: 10,
- message: 'Error: Line 1: Unexpected token let'
- },
-
- 'if(true) const a = 1;': {
- index: 9,
- lineNumber: 1,
- column: 10,
- message: 'Error: Line 1: Unexpected token const'
- },
-
- 'switch (c) { default: default: }': {
- index: 30,
- lineNumber: 1,
- column: 31,
- message: 'Error: Line 1: More than one default clause in switch statement'
- },
-
- 'new X()."s"': {
- index: 8,
- lineNumber: 1,
- column: 9,
- message: 'Error: Line 1: Unexpected string'
- },
-
- '/*': {
- index: 2,
- lineNumber: 1,
- column: 3,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- '/*\n\n\n': {
- index: 5,
- lineNumber: 4,
- column: 1,
- message: 'Error: Line 4: Unexpected token ILLEGAL'
- },
-
- '/**': {
- index: 3,
- lineNumber: 1,
- column: 4,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- '/*\n\n*': {
- index: 5,
- lineNumber: 3,
- column: 2,
- message: 'Error: Line 3: Unexpected token ILLEGAL'
- },
-
- '/*hello': {
- index: 7,
- lineNumber: 1,
- column: 8,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- '/*hello *': {
- index: 10,
- lineNumber: 1,
- column: 11,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- '\n]': {
- index: 1,
- lineNumber: 2,
- column: 1,
- message: 'Error: Line 2: Unexpected token ]'
- },
-
- '\r]': {
- index: 1,
- lineNumber: 2,
- column: 1,
- message: 'Error: Line 2: Unexpected token ]'
- },
-
- '\r\n]': {
- index: 2,
- lineNumber: 2,
- column: 1,
- message: 'Error: Line 2: Unexpected token ]'
- },
-
- '\n\r]': {
- index: 2,
- lineNumber: 3,
- column: 1,
- message: 'Error: Line 3: Unexpected token ]'
- },
-
- '//\r\n]': {
- index: 4,
- lineNumber: 2,
- column: 1,
- message: 'Error: Line 2: Unexpected token ]'
- },
-
- '//\n\r]': {
- index: 4,
- lineNumber: 3,
- column: 1,
- message: 'Error: Line 3: Unexpected token ]'
- },
-
- '/a\\\n/': {
- index: 4,
- lineNumber: 1,
- column: 5,
- message: 'Error: Line 1: Invalid regular expression: missing /'
- },
-
- '//\r \n]': {
- index: 5,
- lineNumber: 3,
- column: 1,
- message: 'Error: Line 3: Unexpected token ]'
- },
-
- '/*\r\n*/]': {
- index: 6,
- lineNumber: 2,
- column: 3,
- message: 'Error: Line 2: Unexpected token ]'
- },
-
- '/*\n\r*/]': {
- index: 6,
- lineNumber: 3,
- column: 3,
- message: 'Error: Line 3: Unexpected token ]'
- },
-
- '/*\r \n*/]': {
- index: 7,
- lineNumber: 3,
- column: 3,
- message: 'Error: Line 3: Unexpected token ]'
- },
-
- '\\\\': {
- index: 1,
- lineNumber: 1,
- column: 2,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- '\\u005c': {
- index: 6,
- lineNumber: 1,
- column: 7,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
-
- '\\x': {
- index: 1,
- lineNumber: 1,
- column: 2,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- '\\u0000': {
- index: 6,
- lineNumber: 1,
- column: 7,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- '\u200C = []': {
- index: 0,
- lineNumber: 1,
- column: 1,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- '\u200D = []': {
- index: 0,
- lineNumber: 1,
- column: 1,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- '"\\': {
- index: 3,
- lineNumber: 1,
- column: 4,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- '"\\u': {
- index: 3,
- lineNumber: 1,
- column: 4,
- message: 'Error: Line 1: Unexpected token ILLEGAL'
- },
-
- 'try { } catch() {}': {
- index: 14,
- lineNumber: 1,
- column: 15,
- message: 'Error: Line 1: Unexpected token )'
- },
-
- 'return': {
- index: 6,
- lineNumber: 1,
- column: 7,
- message: 'Error: Line 1: Illegal return statement'
- },
-
- 'break': {
- index: 5,
- lineNumber: 1,
- column: 6,
- message: 'Error: Line 1: Illegal break statement'
- },
-
- 'continue': {
- index: 8,
- lineNumber: 1,
- column: 9,
- message: 'Error: Line 1: Illegal continue statement'
- },
-
- 'switch (x) { default: continue; }': {
- index: 31,
- lineNumber: 1,
- column: 32,
- message: 'Error: Line 1: Illegal continue statement'
- },
-
- 'do { x } *': {
- index: 9,
- lineNumber: 1,
- column: 10,
- message: 'Error: Line 1: Unexpected token *'
- },
-
- 'while (true) { break x; }': {
- index: 22,
- lineNumber: 1,
- column: 23,
- message: 'Error: Line 1: Undefined label \'x\''
- },
-
- 'while (true) { continue x; }': {
- index: 25,
- lineNumber: 1,
- column: 26,
- message: 'Error: Line 1: Undefined label \'x\''
- },
-
- 'x: while (true) { (function () { break x; }); }': {
- index: 40,
- lineNumber: 1,
- column: 41,
- message: 'Error: Line 1: Undefined label \'x\''
- },
-
- 'x: while (true) { (function () { continue x; }); }': {
- index: 43,
- lineNumber: 1,
- column: 44,
- message: 'Error: Line 1: Undefined label \'x\''
- },
-
- 'x: while (true) { (function () { break; }); }': {
- index: 39,
- lineNumber: 1,
- column: 40,
- message: 'Error: Line 1: Illegal break statement'
- },
-
- 'x: while (true) { (function () { continue; }); }': {
- index: 42,
- lineNumber: 1,
- column: 43,
- message: 'Error: Line 1: Illegal continue statement'
- },
-
- 'x: while (true) { x: while (true) { } }': {
- index: 20,
- lineNumber: 1,
- column: 21,
- message: 'Error: Line 1: Label \'x\' has already been declared'
- },
-
- '(function () { \'use strict\'; delete i; }())': {
- index: 37,
- lineNumber: 1,
- column: 38,
- message: 'Error: Line 1: Delete of an unqualified identifier in strict mode.'
- },
-
- '(function () { \'use strict\'; with (i); }())': {
- index: 29,
- lineNumber: 1,
- column: 30,
- message: 'Error: Line 1: Strict mode code may not include a with statement'
- },
-
- 'function hello() {\'use strict\'; ({ i: 42, i: 42 }) }': {
- index: 47,
- lineNumber: 1,
- column: 48,
- message: 'Error: Line 1: Duplicate data property in object literal not allowed in strict mode'
- },
-
- 'function hello() {\'use strict\'; ({ hasOwnProperty: 42, hasOwnProperty: 42 }) }': {
- index: 73,
- lineNumber: 1,
- column: 74,
- message: 'Error: Line 1: Duplicate data property in object literal not allowed in strict mode'
- },
-
- 'function hello() {\'use strict\'; var eval = 10; }': {
- index: 40,
- lineNumber: 1,
- column: 41,
- message: 'Error: Line 1: Variable name may not be eval or arguments in strict mode'
- },
-
- 'function hello() {\'use strict\'; var arguments = 10; }': {
- index: 45,
- lineNumber: 1,
- column: 46,
- message: 'Error: Line 1: Variable name may not be eval or arguments in strict mode'
- },
-
- 'function hello() {\'use strict\'; try { } catch (eval) { } }': {
- index: 51,
- lineNumber: 1,
- column: 52,
- message: 'Error: Line 1: Catch variable may not be eval or arguments in strict mode'
- },
-
- 'function hello() {\'use strict\'; try { } catch (arguments) { } }': {
- index: 56,
- lineNumber: 1,
- column: 57,
- message: 'Error: Line 1: Catch variable may not be eval or arguments in strict mode'
- },
-
- 'function hello() {\'use strict\'; eval = 10; }': {
- index: 32,
- lineNumber: 1,
- column: 33,
- message: 'Error: Line 1: Assignment to eval or arguments is not allowed in strict mode'
- },
-
- 'function hello() {\'use strict\'; arguments = 10; }': {
- index: 32,
- lineNumber: 1,
- column: 33,
- message: 'Error: Line 1: Assignment to eval or arguments is not allowed in strict mode'
- },
-
- 'function hello() {\'use strict\'; ++eval; }': {
- index: 38,
- lineNumber: 1,
- column: 39,
- message: 'Error: Line 1: Prefix increment/decrement may not have eval or arguments operand in strict mode'
- },
-
- 'function hello() {\'use strict\'; --eval; }': {
- index: 38,
- lineNumber: 1,
- column: 39,
- message: 'Error: Line 1: Prefix increment/decrement may not have eval or arguments operand in strict mode'
- },
-
- 'function hello() {\'use strict\'; ++arguments; }': {
- index: 43,
- lineNumber: 1,
- column: 44,
- message: 'Error: Line 1: Prefix increment/decrement may not have eval or arguments operand in strict mode'
- },
-
- 'function hello() {\'use strict\'; --arguments; }': {
- index: 43,
- lineNumber: 1,
- column: 44,
- message: 'Error: Line 1: Prefix increment/decrement may not have eval or arguments operand in strict mode'
- },
-
- 'function hello() {\'use strict\'; eval++; }': {
- index: 36,
- lineNumber: 1,
- column: 37,
- message: 'Error: Line 1: Postfix increment/decrement may not have eval or arguments operand in strict mode'
- },
-
- 'function hello() {\'use strict\'; eval--; }': {
- index: 36,
- lineNumber: 1,
- column: 37,
- message: 'Error: Line 1: Postfix increment/decrement may not have eval or arguments operand in strict mode'
- },
-
- 'function hello() {\'use strict\'; arguments++; }': {
- index: 41,
- lineNumber: 1,
- column: 42,
- message: 'Error: Line 1: Postfix increment/decrement may not have eval or arguments operand in strict mode'
- },
-
- 'function hello() {\'use strict\'; arguments--; }': {
- index: 41,
- lineNumber: 1,
- column: 42,
- message: 'Error: Line 1: Postfix increment/decrement may not have eval or arguments operand in strict mode'
- },
-
- 'function hello() {\'use strict\'; function eval() { } }': {
- index: 41,
- lineNumber: 1,
- column: 42,
- message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
- },
-
- 'function hello() {\'use strict\'; function arguments() { } }': {
- index: 41,
- lineNumber: 1,
- column: 42,
- message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
- },
-
- 'function eval() {\'use strict\'; }': {
- index: 9,
- lineNumber: 1,
- column: 10,
- message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
- },
-
- 'function arguments() {\'use strict\'; }': {
- index: 9,
- lineNumber: 1,
- column: 10,
- message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
- },
-
- 'function hello() {\'use strict\'; (function eval() { }()) }': {
- index: 42,
- lineNumber: 1,
- column: 43,
- message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
- },
-
- 'function hello() {\'use strict\'; (function arguments() { }()) }': {
- index: 42,
- lineNumber: 1,
- column: 43,
- message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
- },
-
- '(function eval() {\'use strict\'; })()': {
- index: 10,
- lineNumber: 1,
- column: 11,
- message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
- },
-
- '(function arguments() {\'use strict\'; })()': {
- index: 10,
- lineNumber: 1,
- column: 11,
- message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
- },
-
- 'function hello() {\'use strict\'; ({ s: function eval() { } }); }': {
- index: 47,
- lineNumber: 1,
- column: 48,
- message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
- },
-
- '(function package() {\'use strict\'; })()': {
- index: 10,
- lineNumber: 1,
- column: 11,
- message: 'Error: Line 1: Use of future reserved word in strict mode'
- },
-
- 'function hello() {\'use strict\'; ({ i: 10, set s(eval) { } }); }': {
- index: 48,
- lineNumber: 1,
- column: 49,
- message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
- },
-
- 'function hello() {\'use strict\'; ({ set s(eval) { } }); }': {
- index: 41,
- lineNumber: 1,
- column: 42,
- message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
- },
-
- 'function hello() {\'use strict\'; ({ s: function s(eval) { } }); }': {
- index: 49,
- lineNumber: 1,
- column: 50,
- message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
- },
-
- 'function hello(eval) {\'use strict\';}': {
- index: 15,
- lineNumber: 1,
- column: 16,
- message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
- },
-
- 'function hello(arguments) {\'use strict\';}': {
- index: 15,
- lineNumber: 1,
- column: 16,
- message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
- },
-
- 'function hello() { \'use strict\'; function inner(eval) {} }': {
- index: 48,
- lineNumber: 1,
- column: 49,
- message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
- },
-
- 'function hello() { \'use strict\'; function inner(arguments) {} }': {
- index: 48,
- lineNumber: 1,
- column: 49,
- message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
- },
-
- ' "\\1"; \'use strict\';': {
- index: 1,
- lineNumber: 1,
- column: 2,
- message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
- },
-
- 'function hello() { \'use strict\'; "\\1"; }': {
- index: 33,
- lineNumber: 1,
- column: 34,
- message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
- },
-
- 'function hello() { \'use strict\'; 021; }': {
- index: 33,
- lineNumber: 1,
- column: 34,
- message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
- },
-
- 'function hello() { \'use strict\'; ({ "\\1": 42 }); }': {
- index: 36,
- lineNumber: 1,
- column: 37,
- message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
- },
-
- 'function hello() { \'use strict\'; ({ 021: 42 }); }': {
- index: 36,
- lineNumber: 1,
- column: 37,
- message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
- },
-
- 'function hello() { "octal directive\\1"; "use strict"; }': {
- index: 19,
- lineNumber: 1,
- column: 20,
- message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
- },
-
- 'function hello() { "octal directive\\1"; "octal directive\\2"; "use strict"; }': {
- index: 19,
- lineNumber: 1,
- column: 20,
- message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
- },
-
- 'function hello() { "use strict"; function inner() { "octal directive\\1"; } }': {
- index: 52,
- lineNumber: 1,
- column: 53,
- message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
- },
-
- 'function hello() { "use strict"; var implements; }': {
- index: 37,
- lineNumber: 1,
- column: 38,
- message: 'Error: Line 1: Use of future reserved word in strict mode'
- },
-
- 'function hello() { "use strict"; var interface; }': {
- index: 37,
- lineNumber: 1,
- column: 38,
- message: 'Error: Line 1: Use of future reserved word in strict mode'
- },
-
- 'function hello() { "use strict"; var package; }': {
- index: 37,
- lineNumber: 1,
- column: 38,
- message: 'Error: Line 1: Use of future reserved word in strict mode'
- },
-
- 'function hello() { "use strict"; var private; }': {
- index: 37,
- lineNumber: 1,
- column: 38,
- message: 'Error: Line 1: Use of future reserved word in strict mode'
- },
-
- 'function hello() { "use strict"; var protected; }': {
- index: 37,
- lineNumber: 1,
- column: 38,
- message: 'Error: Line 1: Use of future reserved word in strict mode'
- },
-
- 'function hello() { "use strict"; var public; }': {
- index: 37,
- lineNumber: 1,
- column: 38,
- message: 'Error: Line 1: Use of future reserved word in strict mode'
- },
-
- 'function hello() { "use strict"; var static; }': {
- index: 37,
- lineNumber: 1,
- column: 38,
- message: 'Error: Line 1: Use of future reserved word in strict mode'
- },
-
- 'function hello() { "use strict"; var yield; }': {
- index: 37,
- lineNumber: 1,
- column: 38,
- message: 'Error: Line 1: Use of future reserved word in strict mode'
- },
-
- 'function hello() { "use strict"; var let; }': {
- index: 37,
- lineNumber: 1,
- column: 38,
- message: 'Error: Line 1: Use of future reserved word in strict mode'
- },
-
- 'function hello(static) { "use strict"; }': {
- index: 15,
- lineNumber: 1,
- column: 16,
- message: 'Error: Line 1: Use of future reserved word in strict mode'
- },
-
- 'function static() { "use strict"; }': {
- index: 9,
- lineNumber: 1,
- column: 10,
- message: 'Error: Line 1: Use of future reserved word in strict mode'
- },
-
- 'function eval(a) { "use strict"; }': {
- index: 9,
- lineNumber: 1,
- column: 10,
- message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
- },
-
- 'function arguments(a) { "use strict"; }': {
- index: 9,
- lineNumber: 1,
- column: 10,
- message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
- },
-
- 'var yield': {
- index: 4,
- lineNumber: 1,
- column: 5,
- message: 'Error: Line 1: Unexpected token yield'
- },
-
- 'var let': {
- index: 4,
- lineNumber: 1,
- column: 5,
- message: 'Error: Line 1: Unexpected token let'
- },
-
- '"use strict"; function static() { }': {
- index: 23,
- lineNumber: 1,
- column: 24,
- message: 'Error: Line 1: Use of future reserved word in strict mode'
- },
-
- 'function a(t, t) { "use strict"; }': {
- index: 14,
- lineNumber: 1,
- column: 15,
- message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
- },
-
- 'function a(eval) { "use strict"; }': {
- index: 11,
- lineNumber: 1,
- column: 12,
- message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
- },
-
- 'function a(package) { "use strict"; }': {
- index: 11,
- lineNumber: 1,
- column: 12,
- message: 'Error: Line 1: Use of future reserved word in strict mode'
- },
-
- 'function a() { "use strict"; function b(t, t) { }; }': {
- index: 43,
- lineNumber: 1,
- column: 44,
- message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
- },
-
- '(function a(t, t) { "use strict"; })': {
- index: 15,
- lineNumber: 1,
- column: 16,
- message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
- },
-
- 'function a() { "use strict"; (function b(t, t) { }); }': {
- index: 44,
- lineNumber: 1,
- column: 45,
- message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
- },
-
- '(function a(eval) { "use strict"; })': {
- index: 12,
- lineNumber: 1,
- column: 13,
- message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
- },
-
- '(function a(package) { "use strict"; })': {
- index: 12,
- lineNumber: 1,
- column: 13,
- message: 'Error: Line 1: Use of future reserved word in strict mode'
- },
-
- '__proto__: __proto__: 42;': {
- index: 21,
- lineNumber: 1,
- column: 22,
- message: 'Error: Line 1: Label \'__proto__\' has already been declared'
- },
-
- '"use strict"; function t(__proto__, __proto__) { }': {
- index: 36,
- lineNumber: 1,
- column: 37,
- message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
- },
-
- '"use strict"; x = { __proto__: 42, __proto__: 43 }': {
- index: 48,
- lineNumber: 1,
- column: 49,
- message: 'Error: Line 1: Duplicate data property in object literal not allowed in strict mode'
- },
-
- '"use strict"; x = { get __proto__() { }, __proto__: 43 }': {
- index: 54,
- lineNumber: 1,
- column: 55,
- message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
- },
-
- 'var': {
- index: 3,
- lineNumber: 1,
- column: 4,
- message: 'Error: Line 1: Unexpected end of input'
- },
-
- 'let': {
- index: 3,
- lineNumber: 1,
- column: 4,
- message: 'Error: Line 1: Unexpected end of input'
- },
-
- 'const': {
- index: 5,
- lineNumber: 1,
- column: 6,
- message: 'Error: Line 1: Unexpected end of input'
- },
-
- '{ ; ; ': {
- index: 8,
- lineNumber: 1,
- column: 9,
- message: 'Error: Line 1: Unexpected end of input'
- },
-
- 'function t() { ; ; ': {
- index: 21,
- lineNumber: 1,
- column: 22,
- message: 'Error: Line 1: Unexpected end of input'
- }
-
- },
-
- 'Tokenize': {
- 'tokenize(/42/)': [
- {
- "type": "Identifier",
- "value": "tokenize",
- "range": [
- 0,
- 8
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 0
- },
- "end": {
- "line": 1,
- "column": 8
- }
- }
- },
- {
- "type": "Punctuator",
- "value": "(",
- "range": [
- 8,
- 9
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 8
- },
- "end": {
- "line": 1,
- "column": 9
- }
- }
- },
- {
- "type": "RegularExpression",
- "value": "/42/",
- "range": [
- 9,
- 13
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 9
- },
- "end": {
- "line": 1,
- "column": 13
- }
- }
- },
- {
- "type": "Punctuator",
- "value": ")",
- "range": [
- 13,
- 14
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 13
- },
- "end": {
- "line": 1,
- "column": 14
- }
- }
- }
- ],
-
- 'if (false) { /42/ }': [
- {
- "type": "Keyword",
- "value": "if",
- "range": [
- 0,
- 2
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 0
- },
- "end": {
- "line": 1,
- "column": 2
- }
- }
- },
- {
- "type": "Punctuator",
- "value": "(",
- "range": [
- 3,
- 4
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 3
- },
- "end": {
- "line": 1,
- "column": 4
- }
- }
- },
- {
- "type": "Boolean",
- "value": "false",
- "range": [
- 4,
- 9
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 4
- },
- "end": {
- "line": 1,
- "column": 9
- }
- }
- },
- {
- "type": "Punctuator",
- "value": ")",
- "range": [
- 9,
- 10
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 9
- },
- "end": {
- "line": 1,
- "column": 10
- }
- }
- },
- {
- "type": "Punctuator",
- "value": "{",
- "range": [
- 11,
- 12
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 11
- },
- "end": {
- "line": 1,
- "column": 12
- }
- }
- },
- {
- "type": "RegularExpression",
- "value": "/42/",
- "range": [
- 13,
- 17
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 13
- },
- "end": {
- "line": 1,
- "column": 17
- }
- }
- },
- {
- "type": "Punctuator",
- "value": "}",
- "range": [
- 18,
- 19
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 18
- },
- "end": {
- "line": 1,
- "column": 19
- }
- }
- }
- ],
-
- 'with (false) /42/': [
- {
- "type": "Keyword",
- "value": "with",
- "range": [
- 0,
- 4
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 0
- },
- "end": {
- "line": 1,
- "column": 4
- }
- }
- },
- {
- "type": "Punctuator",
- "value": "(",
- "range": [
- 5,
- 6
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 5
- },
- "end": {
- "line": 1,
- "column": 6
- }
- }
- },
- {
- "type": "Boolean",
- "value": "false",
- "range": [
- 6,
- 11
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 6
- },
- "end": {
- "line": 1,
- "column": 11
- }
- }
- },
- {
- "type": "Punctuator",
- "value": ")",
- "range": [
- 11,
- 12
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 11
- },
- "end": {
- "line": 1,
- "column": 12
- }
- }
- },
- {
- "type": "RegularExpression",
- "value": "/42/",
- "range": [
- 13,
- 17
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 13
- },
- "end": {
- "line": 1,
- "column": 17
- }
- }
- }
- ],
-
- '(false) /42/': [
- {
- "type": "Punctuator",
- "value": "(",
- "range": [
- 0,
- 1
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 0
- },
- "end": {
- "line": 1,
- "column": 1
- }
- }
- },
- {
- "type": "Boolean",
- "value": "false",
- "range": [
- 1,
- 6
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 1
- },
- "end": {
- "line": 1,
- "column": 6
- }
- }
- },
- {
- "type": "Punctuator",
- "value": ")",
- "range": [
- 6,
- 7
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 6
- },
- "end": {
- "line": 1,
- "column": 7
- }
- }
- },
- {
- "type": "Punctuator",
- "value": "/",
- "range": [
- 8,
- 9
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 8
- },
- "end": {
- "line": 1,
- "column": 9
- }
- }
- },
- {
- "type": "Numeric",
- "value": "42",
- "range": [
- 9,
- 11
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 9
- },
- "end": {
- "line": 1,
- "column": 11
- }
- }
- },
- {
- "type": "Punctuator",
- "value": "/",
- "range": [
- 11,
- 12
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 11
- },
- "end": {
- "line": 1,
- "column": 12
- }
- }
- }
- ],
-
- 'function f(){} /42/': [
- {
- "type": "Keyword",
- "value": "function",
- "range": [
- 0,
- 8
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 0
- },
- "end": {
- "line": 1,
- "column": 8
- }
- }
- },
- {
- "type": "Identifier",
- "value": "f",
- "range": [
- 9,
- 10
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 9
- },
- "end": {
- "line": 1,
- "column": 10
- }
- }
- },
- {
- "type": "Punctuator",
- "value": "(",
- "range": [
- 10,
- 11
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 10
- },
- "end": {
- "line": 1,
- "column": 11
- }
- }
- },
- {
- "type": "Punctuator",
- "value": ")",
- "range": [
- 11,
- 12
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 11
- },
- "end": {
- "line": 1,
- "column": 12
- }
- }
- },
- {
- "type": "Punctuator",
- "value": "{",
- "range": [
- 12,
- 13
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 12
- },
- "end": {
- "line": 1,
- "column": 13
- }
- }
- },
- {
- "type": "Punctuator",
- "value": "}",
- "range": [
- 13,
- 14
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 13
- },
- "end": {
- "line": 1,
- "column": 14
- }
- }
- },
- {
- "type": "RegularExpression",
- "value": "/42/",
- "range": [
- 15,
- 19
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 15
- },
- "end": {
- "line": 1,
- "column": 19
- }
- }
- }
- ],
-
- 'function(){} /42': [
- {
- "type": "Keyword",
- "value": "function",
- "range": [
- 0,
- 8
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 0
- },
- "end": {
- "line": 1,
- "column": 8
- }
- }
- },
- {
- "type": "Punctuator",
- "value": "(",
- "range": [
- 8,
- 9
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 8
- },
- "end": {
- "line": 1,
- "column": 9
- }
- }
- },
- {
- "type": "Punctuator",
- "value": ")",
- "range": [
- 9,
- 10
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 9
- },
- "end": {
- "line": 1,
- "column": 10
- }
- }
- },
- {
- "type": "Punctuator",
- "value": "{",
- "range": [
- 10,
- 11
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 10
- },
- "end": {
- "line": 1,
- "column": 11
- }
- }
- },
- {
- "type": "Punctuator",
- "value": "}",
- "range": [
- 11,
- 12
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 11
- },
- "end": {
- "line": 1,
- "column": 12
- }
- }
- },
- {
- "type": "Punctuator",
- "value": "/",
- "range": [
- 13,
- 14
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 13
- },
- "end": {
- "line": 1,
- "column": 14
- }
- }
- },
- {
- "type": "Numeric",
- "value": "42",
- "range": [
- 14,
- 16
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 14
- },
- "end": {
- "line": 1,
- "column": 16
- }
- }
- }
- ],
-
- '{} /42': [
- {
- "type": "Punctuator",
- "value": "{",
- "range": [
- 0,
- 1
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 0
- },
- "end": {
- "line": 1,
- "column": 1
- }
- }
- },
- {
- "type": "Punctuator",
- "value": "}",
- "range": [
- 1,
- 2
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 1
- },
- "end": {
- "line": 1,
- "column": 2
- }
- }
- },
- {
- "type": "Punctuator",
- "value": "/",
- "range": [
- 3,
- 4
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 3
- },
- "end": {
- "line": 1,
- "column": 4
- }
- }
- },
- {
- "type": "Numeric",
- "value": "42",
- "range": [
- 4,
- 6
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 4
- },
- "end": {
- "line": 1,
- "column": 6
- }
- }
- }
- ],
-
- '[function(){} /42]': [
- {
- "type": "Punctuator",
- "value": "[",
- "range": [
- 0,
- 1
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 0
- },
- "end": {
- "line": 1,
- "column": 1
- }
- }
- },
- {
- "type": "Keyword",
- "value": "function",
- "range": [
- 1,
- 9
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 1
- },
- "end": {
- "line": 1,
- "column": 9
- }
- }
- },
- {
- "type": "Punctuator",
- "value": "(",
- "range": [
- 9,
- 10
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 9
- },
- "end": {
- "line": 1,
- "column": 10
- }
- }
- },
- {
- "type": "Punctuator",
- "value": ")",
- "range": [
- 10,
- 11
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 10
- },
- "end": {
- "line": 1,
- "column": 11
- }
- }
- },
- {
- "type": "Punctuator",
- "value": "{",
- "range": [
- 11,
- 12
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 11
- },
- "end": {
- "line": 1,
- "column": 12
- }
- }
- },
- {
- "type": "Punctuator",
- "value": "}",
- "range": [
- 12,
- 13
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 12
- },
- "end": {
- "line": 1,
- "column": 13
- }
- }
- },
- {
- "type": "Punctuator",
- "value": "/",
- "range": [
- 14,
- 15
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 14
- },
- "end": {
- "line": 1,
- "column": 15
- }
- }
- },
- {
- "type": "Numeric",
- "value": "42",
- "range": [
- 15,
- 17
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 15
- },
- "end": {
- "line": 1,
- "column": 17
- }
- }
- },
- {
- "type": "Punctuator",
- "value": "]",
- "range": [
- 17,
- 18
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 17
- },
- "end": {
- "line": 1,
- "column": 18
- }
- }
- }
- ],
-
- ';function f(){} /42/': [
- {
- "type": "Punctuator",
- "value": ";",
- "range": [
- 0,
- 1
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 0
- },
- "end": {
- "line": 1,
- "column": 1
- }
- }
- },
- {
- "type": "Keyword",
- "value": "function",
- "range": [
- 1,
- 9
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 1
- },
- "end": {
- "line": 1,
- "column": 9
- }
- }
- },
- {
- "type": "Identifier",
- "value": "f",
- "range": [
- 10,
- 11
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 10
- },
- "end": {
- "line": 1,
- "column": 11
- }
- }
- },
- {
- "type": "Punctuator",
- "value": "(",
- "range": [
- 11,
- 12
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 11
- },
- "end": {
- "line": 1,
- "column": 12
- }
- }
- },
- {
- "type": "Punctuator",
- "value": ")",
- "range": [
- 12,
- 13
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 12
- },
- "end": {
- "line": 1,
- "column": 13
- }
- }
- },
- {
- "type": "Punctuator",
- "value": "{",
- "range": [
- 13,
- 14
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 13
- },
- "end": {
- "line": 1,
- "column": 14
- }
- }
- },
- {
- "type": "Punctuator",
- "value": "}",
- "range": [
- 14,
- 15
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 14
- },
- "end": {
- "line": 1,
- "column": 15
- }
- }
- },
- {
- "type": "RegularExpression",
- "value": "/42/",
- "range": [
- 16,
- 20
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 16
- },
- "end": {
- "line": 1,
- "column": 20
- }
- }
- }
- ],
-
- 'void /42/': [
- {
- "type": "Keyword",
- "value": "void",
- "range": [
- 0,
- 4
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 0
- },
- "end": {
- "line": 1,
- "column": 4
- }
- }
- },
- {
- "type": "RegularExpression",
- "value": "/42/",
- "range": [
- 5,
- 9
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 5
- },
- "end": {
- "line": 1,
- "column": 9
- }
- }
- }
- ],
-
- '/42/': [
- {
- "type": "RegularExpression",
- "value": "/42/",
- "range": [
- 0,
- 4
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 0
- },
- "end": {
- "line": 1,
- "column": 4
- }
- }
- }
- ],
-
- 'foo[/42]': [
- {
- "type": "Identifier",
- "value": "foo",
- "range": [
- 0,
- 3
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 0
- },
- "end": {
- "line": 1,
- "column": 3
- }
- }
- },
- {
- "type": "Punctuator",
- "value": "[",
- "range": [
- 3,
- 4
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 3
- },
- "end": {
- "line": 1,
- "column": 4
- }
- }
- }
- ],
-
- '[a] / b': [
- {
- "type": "Punctuator",
- "value": "[",
- "range": [
- 0,
- 1
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 0
- },
- "end": {
- "line": 1,
- "column": 1
- }
- }
- },
- {
- "type": "Identifier",
- "value": "a",
- "range": [
- 1,
- 2
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 1
- },
- "end": {
- "line": 1,
- "column": 2
- }
- }
- },
- {
- "type": "Punctuator",
- "value": "]",
- "range": [
- 2,
- 3
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 2
- },
- "end": {
- "line": 1,
- "column": 3
- }
- }
- },
- {
- "type": "Punctuator",
- "value": "/",
- "range": [
- 4,
- 5
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 4
- },
- "end": {
- "line": 1,
- "column": 5
- }
- }
- },
- {
- "type": "Identifier",
- "value": "b",
- "range": [
- 6,
- 7
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 6
- },
- "end": {
- "line": 1,
- "column": 7
- }
- }
- }
- ],
-
- '': [],
-
- '/42': {
- tokenize: true,
- index: 3,
- lineNumber: 1,
- column: 4,
- message: 'Error: Line 1: Invalid regular expression: missing /'
- },
-
- 'foo[/42': {
- tokenize: true,
- index: 7,
- lineNumber: 1,
- column: 8,
- message: 'Error: Line 1: Invalid regular expression: missing /'
- },
-
- 'this / 100;': [
- {
- "type": "Keyword",
- "value": "this",
- "range": [
- 0,
- 4
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 0
- },
- "end": {
- "line": 1,
- "column": 4
- }
- }
- },
- {
- "type": "Punctuator",
- "value": "/",
- "range": [
- 5,
- 6
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 5
- },
- "end": {
- "line": 1,
- "column": 6
- }
- }
- },
- {
- "type": "Numeric",
- "value": "100",
- "range": [
- 7,
- 10
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 7
- },
- "end": {
- "line": 1,
- "column": 10
- }
- }
- },
- {
- "type": "Punctuator",
- "value": ";",
- "range": [
- 10,
- 11
- ],
- "loc": {
- "start": {
- "line": 1,
- "column": 10
- },
- "end": {
- "line": 1,
- "column": 11
- }
- }
- }
- ]
- },
-
- 'API': {
- 'parse()': {
- call: 'parse',
- args: [],
- result: {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Identifier',
- name: 'undefined'
- }
- }]
- }
- },
-
- 'parse(null)': {
- call: 'parse',
- args: [null],
- result: {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: null,
- raw: 'null'
- }
- }]
- }
- },
-
- 'parse(42)': {
- call: 'parse',
- args: [42],
- result: {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 42,
- raw: '42'
- }
- }]
- }
- },
-
- 'parse(true)': {
- call: 'parse',
- args: [true],
- result: {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: true,
- raw: 'true'
- }
- }]
- }
- },
-
- 'parse(undefined)': {
- call: 'parse',
- args: [void 0],
- result: {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Identifier',
- name: 'undefined'
- }
- }]
- }
- },
-
- 'parse(new String("test"))': {
- call: 'parse',
- args: [new String('test')],
- result: {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Identifier',
- name: 'test'
- }
- }]
- }
- },
-
- 'parse(new Number(42))': {
- call: 'parse',
- args: [new Number(42)],
- result: {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 42,
- raw: '42'
- }
- }]
- }
- },
-
- 'parse(new Boolean(true))': {
- call: 'parse',
- args: [new Boolean(true)],
- result: {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: true,
- raw: 'true'
- }
- }]
- }
- },
-
- 'Syntax': {
- property: 'Syntax',
- result: {
- AssignmentExpression: 'AssignmentExpression',
- ArrayExpression: 'ArrayExpression',
- BlockStatement: 'BlockStatement',
- BinaryExpression: 'BinaryExpression',
- BreakStatement: 'BreakStatement',
- CallExpression: 'CallExpression',
- CatchClause: 'CatchClause',
- ConditionalExpression: 'ConditionalExpression',
- ContinueStatement: 'ContinueStatement',
- DoWhileStatement: 'DoWhileStatement',
- DebuggerStatement: 'DebuggerStatement',
- EmptyStatement: 'EmptyStatement',
- ExpressionStatement: 'ExpressionStatement',
- ForStatement: 'ForStatement',
- ForInStatement: 'ForInStatement',
- FunctionDeclaration: 'FunctionDeclaration',
- FunctionExpression: 'FunctionExpression',
- Identifier: 'Identifier',
- IfStatement: 'IfStatement',
- Literal: 'Literal',
- LabeledStatement: 'LabeledStatement',
- LogicalExpression: 'LogicalExpression',
- MemberExpression: 'MemberExpression',
- NewExpression: 'NewExpression',
- ObjectExpression: 'ObjectExpression',
- Program: 'Program',
- Property: 'Property',
- ReturnStatement: 'ReturnStatement',
- SequenceExpression: 'SequenceExpression',
- SwitchStatement: 'SwitchStatement',
- SwitchCase: 'SwitchCase',
- ThisExpression: 'ThisExpression',
- ThrowStatement: 'ThrowStatement',
- TryStatement: 'TryStatement',
- UnaryExpression: 'UnaryExpression',
- UpdateExpression: 'UpdateExpression',
- VariableDeclaration: 'VariableDeclaration',
- VariableDeclarator: 'VariableDeclarator',
- WhileStatement: 'WhileStatement',
- WithStatement: 'WithStatement'
- }
- },
-
- 'tokenize()': {
- call: 'tokenize',
- args: [],
- result: [{
- type: 'Identifier',
- value: 'undefined'
- }]
- },
-
- 'tokenize(null)': {
- call: 'tokenize',
- args: [null],
- result: [{
- type: 'Null',
- value: 'null'
- }]
- },
-
- 'tokenize(42)': {
- call: 'tokenize',
- args: [42],
- result: [{
- type: 'Numeric',
- value: '42'
- }]
- },
-
- 'tokenize(true)': {
- call: 'tokenize',
- args: [true],
- result: [{
- type: 'Boolean',
- value: 'true'
- }]
- },
-
- 'tokenize(undefined)': {
- call: 'tokenize',
- args: [void 0],
- result: [{
- type: 'Identifier',
- value: 'undefined'
- }]
- },
-
- 'tokenize(new String("test"))': {
- call: 'tokenize',
- args: [new String('test')],
- result: [{
- type: 'Identifier',
- value: 'test'
- }]
- },
-
- 'tokenize(new Number(42))': {
- call: 'tokenize',
- args: [new Number(42)],
- result: [{
- type: 'Numeric',
- value: '42'
- }]
- },
-
- 'tokenize(new Boolean(true))': {
- call: 'tokenize',
- args: [new Boolean(true)],
- result: [{
- type: 'Boolean',
- value: 'true'
- }]
- }
- },
-
- 'Tolerant parse': {
- 'return': {
- type: 'Program',
- body: [{
- type: 'ReturnStatement',
- 'argument': null,
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- }
- }],
- range: [0, 6],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 6 }
- },
- errors: [{
- index: 6,
- lineNumber: 1,
- column: 7,
- message: 'Error: Line 1: Illegal return statement'
- }]
- },
-
- '(function () { \'use strict\'; with (i); }())': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '\'use strict\'',
- range: [15, 27],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 27 }
- }
- },
- range: [15, 28],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 28 }
- }
- }, {
- type: 'WithStatement',
- object: {
- type: 'Identifier',
- name: 'i',
- range: [35, 36],
- loc: {
- start: { line: 1, column: 35 },
- end: { line: 1, column: 36 }
- }
- },
- body: {
- type: 'EmptyStatement',
- range: [37, 38],
- loc: {
- start: { line: 1, column: 37 },
- end: { line: 1, column: 38 }
- }
- },
- range: [29, 38],
- loc: {
- start: { line: 1, column: 29 },
- end: { line: 1, column: 38 }
- }
- }],
- range: [13, 40],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 40 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [1, 40],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 1, column: 40 }
- }
- },
- 'arguments': [],
- range: [1, 42],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 1, column: 42 }
- }
- },
- range: [0, 43],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 43 }
- }
- }],
- range: [0, 43],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 43 }
- },
- errors: [{
- index: 29,
- lineNumber: 1,
- column: 30,
- message: 'Error: Line 1: Strict mode code may not include a with statement'
- }]
- },
-
- '(function () { \'use strict\'; 021 }())': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'CallExpression',
- callee: {
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '\'use strict\'',
- range: [15, 27],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 27 }
- }
- },
- range: [15, 28],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 28 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 17,
- raw: "021",
- range: [29, 32],
- loc: {
- start: { line: 1, column: 29 },
- end: { line: 1, column: 32 }
- }
- },
- range: [29, 33],
- loc: {
- start: { line: 1, column: 29 },
- end: { line: 1, column: 33 }
- }
- }],
- range: [13, 34],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 34 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [1, 34],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 1, column: 34 }
- }
- },
- 'arguments': [],
- range: [1, 36],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 1, column: 36 }
- }
- },
- range: [0, 37],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 37 }
- }
- }],
- range: [0, 37],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 37 }
- },
- errors: [{
- index: 29,
- lineNumber: 1,
- column: 30,
- message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
- }]
- },
-
- '"use strict"; delete x': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '"use strict"',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'UnaryExpression',
- operator: 'delete',
- argument: {
- type: 'Identifier',
- name: 'x',
- range: [21, 22],
- loc: {
- start: { line: 1, column: 21 },
- end: { line: 1, column: 22 }
- }
- },
- prefix: true,
- range: [14, 22],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 22 }
- }
- },
- range: [14, 22],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 22 }
- }
- }],
- range: [0, 22],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 22 }
- },
- errors: [{
- index: 22,
- lineNumber: 1,
- column: 23,
- message: 'Error: Line 1: Delete of an unqualified identifier in strict mode.'
- }]
- },
-
- '"use strict"; try {} catch (eval) {}': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '"use strict"',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'TryStatement',
- block: {
- type: 'BlockStatement',
- body: [],
- range: [18, 20],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 20 }
- }
- },
- guardedHandlers: [],
- handlers: [{
- type: 'CatchClause',
- param: {
- type: 'Identifier',
- name: 'eval',
- range: [28, 32],
- loc: {
- start: { line: 1, column: 28 },
- end: { line: 1, column: 32 }
- }
- },
- body: {
- type: 'BlockStatement',
- body: [],
- range: [34, 36],
- loc: {
- start: { line: 1, column: 34 },
- end: { line: 1, column: 36 }
- }
- },
- range: [21, 36],
- loc: {
- start: { line: 1, column: 21 },
- end: { line: 1, column: 36 }
- }
- }],
- finalizer: null,
- range: [14, 36],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 36 }
- }
- }],
- range: [0, 36],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 36 }
- },
- errors: [{
- index: 32,
- lineNumber: 1,
- column: 33,
- message: 'Error: Line 1: Catch variable may not be eval or arguments in strict mode'
- }]
- },
-
- '"use strict"; try {} catch (arguments) {}': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '"use strict"',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'TryStatement',
- block: {
- type: 'BlockStatement',
- body: [],
- range: [18, 20],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 20 }
- }
- },
- guardedHandlers: [],
- handlers: [{
- type: 'CatchClause',
- param: {
- type: 'Identifier',
- name: 'arguments',
- range: [28, 37],
- loc: {
- start: { line: 1, column: 28 },
- end: { line: 1, column: 37 }
- }
- },
- body: {
- type: 'BlockStatement',
- body: [],
- range: [39, 41],
- loc: {
- start: { line: 1, column: 39 },
- end: { line: 1, column: 41 }
- }
- },
- range: [21, 41],
- loc: {
- start: { line: 1, column: 21 },
- end: { line: 1, column: 41 }
- }
- }],
- finalizer: null,
- range: [14, 41],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 41 }
- }
- }],
- range: [0, 41],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 41 }
- },
- errors: [{
- index: 37,
- lineNumber: 1,
- column: 38,
- message: 'Error: Line 1: Catch variable may not be eval or arguments in strict mode'
- }]
- },
-
- '"use strict"; var eval;': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '"use strict"',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'eval',
- range: [18, 22],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 22 }
- }
- },
- init: null,
- range: [18, 22],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 22 }
- }
- }],
- kind: 'var',
- range: [14, 23],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 23 }
- }
- }],
- range: [0, 23],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 23 }
- },
- errors: [{
- index: 22,
- lineNumber: 1,
- column: 23,
- message: 'Error: Line 1: Variable name may not be eval or arguments in strict mode'
- }]
- },
-
- '"use strict"; var arguments;': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '"use strict"',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'arguments',
- range: [18, 27],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 27 }
- }
- },
- init: null,
- range: [18, 27],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 27 }
- }
- }],
- kind: 'var',
- range: [14, 28],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 28 }
- }
- }],
- range: [0, 28],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 28 }
- },
- errors: [{
- index: 27,
- lineNumber: 1,
- column: 28,
- message: 'Error: Line 1: Variable name may not be eval or arguments in strict mode'
- }]
- },
-
- '"use strict"; eval = 0;': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '"use strict"',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'eval',
- range: [14, 18],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 18 }
- }
- },
- right: {
- type: 'Literal',
- value: 0,
- raw: '0',
- range: [21, 22],
- loc: {
- start: { line: 1, column: 21 },
- end: { line: 1, column: 22 }
- }
- },
- range: [14, 22],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 22 }
- }
- },
- range: [14, 23],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 23 }
- }
- }],
- range: [0, 23],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 23 }
- },
- errors: [{
- index: 14,
- lineNumber: 1,
- column: 15,
- message: 'Error: Line 1: Assignment to eval or arguments is not allowed in strict mode'
- }]
- },
-
- '"use strict"; eval++;': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '"use strict"',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'UpdateExpression',
- operator: '++',
- argument: {
- type: 'Identifier',
- name: 'eval',
- range: [14, 18],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 18 }
- }
- },
- prefix: false,
- range: [14, 20],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 20 }
- }
- },
- range: [14, 21],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 21 }
- }
- }],
- range: [0, 21],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 21 }
- },
- errors: [{
- index: 18,
- lineNumber: 1,
- column: 19,
- message: 'Error: Line 1: Postfix increment/decrement may not have eval or arguments operand in strict mode'
- }]
- },
-
- '"use strict"; --eval;': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '"use strict"',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'UpdateExpression',
- operator: '--',
- argument: {
- type: 'Identifier',
- name: 'eval',
- range: [16, 20],
- loc: {
- start: { line: 1, column: 16 },
- end: { line: 1, column: 20 }
- }
- },
- prefix: true,
- range: [14, 20],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 20 }
- }
- },
- range: [14, 21],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 21 }
- }
- }],
- range: [0, 21],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 21 }
- },
- errors: [{
- index: 20,
- lineNumber: 1,
- column: 21,
- message: 'Error: Line 1: Prefix increment/decrement may not have eval or arguments operand in strict mode'
- }]
- },
-
- '"use strict"; arguments = 0;': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '"use strict"',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'arguments',
- range: [14, 23],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 23 }
- }
- },
- right: {
- type: 'Literal',
- value: 0,
- raw: '0',
- range: [26, 27],
- loc: {
- start: { line: 1, column: 26 },
- end: { line: 1, column: 27 }
- }
- },
- range: [14, 27],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 27 }
- }
- },
- range: [14, 28],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 28 }
- }
- }],
- range: [0, 28],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 28 }
- },
- errors: [{
- index: 14,
- lineNumber: 1,
- column: 15,
- message: 'Error: Line 1: Assignment to eval or arguments is not allowed in strict mode'
- }]
- },
-
- '"use strict"; arguments--;': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '"use strict"',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'UpdateExpression',
- operator: '--',
- argument: {
- type: 'Identifier',
- name: 'arguments',
- range: [14, 23],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 23 }
- }
- },
- prefix: false,
- range: [14, 25],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 25 }
- }
- },
- range: [14, 26],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 26 }
- }
- }],
- range: [0, 26],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 26 }
- },
- errors: [{
- index: 23,
- lineNumber: 1,
- column: 24,
- message: 'Error: Line 1: Postfix increment/decrement may not have eval or arguments operand in strict mode'
- }]
- },
-
- '"use strict"; ++arguments;': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '"use strict"',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'UpdateExpression',
- operator: '++',
- argument: {
- type: 'Identifier',
- name: 'arguments',
- range: [16, 25],
- loc: {
- start: { line: 1, column: 16 },
- end: { line: 1, column: 25 }
- }
- },
- prefix: true,
- range: [14, 25],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 25 }
- }
- },
- range: [14, 26],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 26 }
- }
- }],
- range: [0, 26],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 26 }
- },
- errors: [{
- index: 25,
- lineNumber: 1,
- column: 26,
- message: 'Error: Line 1: Prefix increment/decrement may not have eval or arguments operand in strict mode'
- }]
- },
-
-
- '"use strict";x={y:1,y:1}': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '"use strict"',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [13, 14],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 14 }
- }
- },
- right: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'y',
- range: [16, 17],
- loc: {
- start: { line: 1, column: 16 },
- end: { line: 1, column: 17 }
- }
- },
- value: {
- type: 'Literal',
- value: 1,
- raw: '1',
- range: [18, 19],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 19 }
- }
- },
- kind: 'init',
- range: [16, 19],
- loc: {
- start: { line: 1, column: 16 },
- end: { line: 1, column: 19 }
- }
- }, {
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'y',
- range: [20, 21],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 21 }
- }
- },
- value: {
- type: 'Literal',
- value: 1,
- raw: '1',
- range: [22, 23],
- loc: {
- start: { line: 1, column: 22 },
- end: { line: 1, column: 23 }
- }
- },
- kind: 'init',
- range: [20, 23],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 23 }
- }
- }],
- range: [15, 24],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 24 }
- }
- },
- range: [13, 24],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 24 }
- }
- },
- range: [13, 24],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 24 }
- }
- }],
- range: [0, 24],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 24 }
- },
- errors: [{
- index: 23,
- lineNumber: 1,
- column: 24,
- message: 'Error: Line 1: Duplicate data property in object literal not allowed in strict mode'
- }]
- },
-
- '"use strict"; function eval() {};': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '"use strict"',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'FunctionDeclaration',
- id: {
- type: 'Identifier',
- name: 'eval',
- range: [23, 27],
- loc: {
- start: { line: 1, column: 23 },
- end: { line: 1, column: 27 }
- }
- },
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [30, 32],
- loc: {
- start: { line: 1, column: 30 },
- end: { line: 1, column: 32 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [14, 32],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 32 }
- }
- }, {
- type: 'EmptyStatement',
- range: [32, 33],
- loc: {
- start: { line: 1, column: 32 },
- end: { line: 1, column: 33 }
- }
- }],
- range: [0, 33],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 33 }
- },
- errors: [{
- index: 23,
- lineNumber: 1,
- column: 24,
- message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
- }]
- },
-
- '"use strict"; function arguments() {};': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '"use strict"',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'FunctionDeclaration',
- id: {
- type: 'Identifier',
- name: 'arguments',
- range: [23, 32],
- loc: {
- start: { line: 1, column: 23 },
- end: { line: 1, column: 32 }
- }
- },
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [35, 37],
- loc: {
- start: { line: 1, column: 35 },
- end: { line: 1, column: 37 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [14, 37],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 37 }
- }
- }, {
- type: 'EmptyStatement',
- range: [37, 38],
- loc: {
- start: { line: 1, column: 37 },
- end: { line: 1, column: 38 }
- }
- }],
- range: [0, 38],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 38 }
- },
- errors: [{
- index: 23,
- lineNumber: 1,
- column: 24,
- message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
- }]
- },
-
- '"use strict"; function interface() {};': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '"use strict"',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'FunctionDeclaration',
- id: {
- type: 'Identifier',
- name: 'interface',
- range: [23, 32],
- loc: {
- start: { line: 1, column: 23 },
- end: { line: 1, column: 32 }
- }
- },
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [35, 37],
- loc: {
- start: { line: 1, column: 35 },
- end: { line: 1, column: 37 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [14, 37],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 37 }
- }
- }, {
- type: 'EmptyStatement',
- range: [37, 38],
- loc: {
- start: { line: 1, column: 37 },
- end: { line: 1, column: 38 }
- }
- }],
- range: [0, 38],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 38 }
- },
- errors: [{
- index: 23,
- lineNumber: 1,
- column: 24,
- message: 'Error: Line 1: Use of future reserved word in strict mode'
- }]
- },
-
- '"use strict"; (function eval() {});': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '"use strict"',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'FunctionExpression',
- id: {
- type: 'Identifier',
- name: 'eval',
- range: [24, 28],
- loc: {
- start: { line: 1, column: 24 },
- end: { line: 1, column: 28 }
- }
- },
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [31, 33],
- loc: {
- start: { line: 1, column: 31 },
- end: { line: 1, column: 33 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [15, 33],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 33 }
- }
- },
- range: [14, 35],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 35 }
- }
- }],
- range: [0, 35],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 35 }
- },
- errors: [{
- index: 24,
- lineNumber: 1,
- column: 25,
- message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
- }]
- },
-
- '"use strict"; (function arguments() {});': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '"use strict"',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'FunctionExpression',
- id: {
- type: 'Identifier',
- name: 'arguments',
- range: [24, 33],
- loc: {
- start: { line: 1, column: 24 },
- end: { line: 1, column: 33 }
- }
- },
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [36, 38],
- loc: {
- start: { line: 1, column: 36 },
- end: { line: 1, column: 38 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [15, 38],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 38 }
- }
- },
- range: [14, 40],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 40 }
- }
- }],
- range: [0, 40],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 40 }
- },
- errors: [{
- index: 24,
- lineNumber: 1,
- column: 25,
- message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
- }]
- },
-
- '"use strict"; (function interface() {});': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '"use strict"',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'FunctionExpression',
- id: {
- type: 'Identifier',
- name: 'interface',
- range: [24, 33],
- loc: {
- start: { line: 1, column: 24 },
- end: { line: 1, column: 33 }
- }
- },
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [36, 38],
- loc: {
- start: { line: 1, column: 36 },
- end: { line: 1, column: 38 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [15, 38],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 38 }
- }
- },
- range: [14, 40],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 40 }
- }
- }],
- range: [0, 40],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 40 }
- },
- errors: [{
- index: 24,
- lineNumber: 1,
- column: 25,
- message: 'Error: Line 1: Use of future reserved word in strict mode'
- }]
- },
-
- '"use strict"; function f(eval) {};': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '"use strict"',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'FunctionDeclaration',
- id: {
- type: 'Identifier',
- name: 'f',
- range: [23, 24],
- loc: {
- start: { line: 1, column: 23 },
- end: { line: 1, column: 24 }
- }
- },
- params: [{
- type: 'Identifier',
- name: 'eval',
- range: [25, 29],
- loc: {
- start: { line: 1, column: 25 },
- end: { line: 1, column: 29 }
- }
- }],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [31, 33],
- loc: {
- start: { line: 1, column: 31 },
- end: { line: 1, column: 33 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [14, 33],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 33 }
- }
- }, {
- type: 'EmptyStatement',
- range: [33, 34],
- loc: {
- start: { line: 1, column: 33 },
- end: { line: 1, column: 34 }
- }
- }],
- range: [0, 34],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 34 }
- },
- errors: [{
- index: 25,
- lineNumber: 1,
- column: 26,
- message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
- }]
- },
-
- '"use strict"; function f(arguments) {};': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '"use strict"',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'FunctionDeclaration',
- id: {
- type: 'Identifier',
- name: 'f',
- range: [23, 24],
- loc: {
- start: { line: 1, column: 23 },
- end: { line: 1, column: 24 }
- }
- },
- params: [{
- type: 'Identifier',
- name: 'arguments',
- range: [25, 34],
- loc: {
- start: { line: 1, column: 25 },
- end: { line: 1, column: 34 }
- }
- }],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [36, 38],
- loc: {
- start: { line: 1, column: 36 },
- end: { line: 1, column: 38 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [14, 38],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 38 }
- }
- }, {
- type: 'EmptyStatement',
- range: [38, 39],
- loc: {
- start: { line: 1, column: 38 },
- end: { line: 1, column: 39 }
- }
- }],
- range: [0, 39],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 39 }
- },
- errors: [{
- index: 25,
- lineNumber: 1,
- column: 26,
- message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
- }]
- },
-
- '"use strict"; function f(foo, foo) {};': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '"use strict"',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'FunctionDeclaration',
- id: {
- type: 'Identifier',
- name: 'f',
- range: [23, 24],
- loc: {
- start: { line: 1, column: 23 },
- end: { line: 1, column: 24 }
- }
- },
- params: [{
- type: 'Identifier',
- name: 'foo',
- range: [25, 28],
- loc: {
- start: { line: 1, column: 25 },
- end: { line: 1, column: 28 }
- }
- }, {
- type: 'Identifier',
- name: 'foo',
- range: [31, 34],
- loc: {
- start: { line: 1, column: 31 },
- end: { line: 1, column: 34 }
- }
- }],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [36, 38],
- loc: {
- start: { line: 1, column: 36 },
- end: { line: 1, column: 38 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [14, 38],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 38 }
- }
- }, {
- type: 'EmptyStatement',
- range: [38, 39],
- loc: {
- start: { line: 1, column: 38 },
- end: { line: 1, column: 39 }
- }
- }],
- range: [0, 39],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 39 }
- },
- errors: [{
- index: 31,
- lineNumber: 1,
- column: 32,
- message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
- }]
- },
-
- '"use strict"; (function f(eval) {});': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '"use strict"',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'FunctionExpression',
- id: {
- type: 'Identifier',
- name: 'f',
- range: [24, 25],
- loc: {
- start: { line: 1, column: 24 },
- end: { line: 1, column: 25 }
- }
- },
- params: [{
- type: 'Identifier',
- name: 'eval',
- range: [26, 30],
- loc: {
- start: { line: 1, column: 26 },
- end: { line: 1, column: 30 }
- }
- }],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [32, 34],
- loc: {
- start: { line: 1, column: 32 },
- end: { line: 1, column: 34 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [15, 34],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 34 }
- }
- },
- range: [14, 36],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 36 }
- }
- }],
- range: [0, 36],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 36 }
- },
- errors: [{
- index: 26,
- lineNumber: 1,
- column: 27,
- message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
- }]
- },
-
-
- '"use strict"; (function f(arguments) {});': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '"use strict"',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'FunctionExpression',
- id: {
- type: 'Identifier',
- name: 'f',
- range: [24, 25],
- loc: {
- start: { line: 1, column: 24 },
- end: { line: 1, column: 25 }
- }
- },
- params: [{
- type: 'Identifier',
- name: 'arguments',
- range: [26, 35],
- loc: {
- start: { line: 1, column: 26 },
- end: { line: 1, column: 35 }
- }
- }],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [37, 39],
- loc: {
- start: { line: 1, column: 37 },
- end: { line: 1, column: 39 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [15, 39],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 39 }
- }
- },
- range: [14, 41],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 41 }
- }
- }],
- range: [0, 41],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 41 }
- },
- errors: [{
- index: 26,
- lineNumber: 1,
- column: 27,
- message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
- }]
- },
-
- '"use strict"; (function f(foo, foo) {});': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '"use strict"',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'FunctionExpression',
- id: {
- type: 'Identifier',
- name: 'f',
- range: [24, 25],
- loc: {
- start: { line: 1, column: 24 },
- end: { line: 1, column: 25 }
- }
- },
- params: [{
- type: 'Identifier',
- name: 'foo',
- range: [26, 29],
- loc: {
- start: { line: 1, column: 26 },
- end: { line: 1, column: 29 }
- }
- }, {
- type: 'Identifier',
- name: 'foo',
- range: [32, 35],
- loc: {
- start: { line: 1, column: 32 },
- end: { line: 1, column: 35 }
- }
- }],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [37, 39],
- loc: {
- start: { line: 1, column: 37 },
- end: { line: 1, column: 39 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [15, 39],
- loc: {
- start: { line: 1, column: 15 },
- end: { line: 1, column: 39 }
- }
- },
- range: [14, 41],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 41 }
- }
- }],
- range: [0, 41],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 41 }
- },
- errors: [{
- index: 32,
- lineNumber: 1,
- column: 33,
- message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
- }]
- },
-
- '"use strict"; x = { set f(eval) {} }' : {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '"use strict"',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Identifier',
- name: 'x',
- range: [14, 15],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 15 }
- }
- },
- right: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'f',
- range: [24, 25],
- loc: {
- start: { line: 1, column: 24 },
- end: { line: 1, column: 25 }
- }
- },
- value : {
- type: 'FunctionExpression',
- id: null,
- params: [{
- type: 'Identifier',
- name: 'eval',
- range: [26, 30],
- loc: {
- start: { line: 1, column: 26 },
- end: { line: 1, column: 30 }
- }
- }],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [32, 34],
- loc: {
- start: { line: 1, column: 32 },
- end: { line: 1, column: 34 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [32, 34],
- loc: {
- start: { line: 1, column: 32 },
- end: { line: 1, column: 34 }
- }
- },
- kind: 'set',
- range: [20, 34],
- loc: {
- start: { line: 1, column: 20 },
- end: { line: 1, column: 34 }
- }
- }],
- range: [18, 36],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 36 }
- }
- },
- range: [14, 36],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 36 }
- }
- },
- range: [14, 36],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 36 }
- }
- }],
- range: [0, 36],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 36 }
- },
- errors: [{
- index: 26,
- lineNumber: 1,
- column: 27,
- message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
- }]
- },
-
- 'function hello() { "octal directive\\1"; "use strict"; }': {
- type: 'Program',
- body: [{
- type: 'FunctionDeclaration',
- id: {
- type: 'Identifier',
- name: 'hello',
- range: [9, 14],
- loc: {
- start: { line: 1, column: 9 },
- end: { line: 1, column: 14 }
- }
- },
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'octal directive\u0001',
- raw: '"octal directive\\1"',
- range: [19, 38],
- loc: {
- start: { line: 1, column: 19 },
- end: { line: 1, column: 38 }
- }
- },
- range: [19, 39],
- loc: {
- start: { line: 1, column: 19 },
- end: { line: 1, column: 39 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '"use strict"',
- range: [40, 52],
- loc: {
- start: { line: 1, column: 40 },
- end: { line: 1, column: 52 }
- }
- },
- range: [40, 53],
- loc: {
- start: { line: 1, column: 40 },
- end: { line: 1, column: 53 }
- }
- }],
- range: [17, 55],
- loc: {
- start: { line: 1, column: 17 },
- end: { line: 1, column: 55 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [0, 55],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 55 }
- }
- }],
- range: [0, 55],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 55 }
- },
- errors: [{
- index: 19,
- lineNumber: 1,
- column: 20,
- message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
- }]
- },
-
- '"\\1"; \'use strict\';': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: '\u0001',
- raw: '"\\1"',
- range: [0, 4],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 4 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- }, {
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '\'use strict\'',
- range: [6, 18],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 18 }
- }
- },
- range: [6, 19],
- loc: {
- start: { line: 1, column: 6 },
- end: { line: 1, column: 19 }
- }
- }],
- range: [0, 19],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 19 }
- },
- errors: [{
- index: 0,
- lineNumber: 1,
- column: 1,
- message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
- }]
- },
-
- '"use strict"; var x = { 014: 3}': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '"use strict"',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- range: [18, 19],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 19 }
- }
- },
- init: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Literal',
- value: 12,
- raw: '014',
- range: [24, 27],
- loc: {
- start: { line: 1, column: 24 },
- end: { line: 1, column: 27 }
- }
- },
- value: {
- type: 'Literal',
- value: 3,
- raw: '3',
- range: [29, 30],
- loc: {
- start: { line: 1, column: 29 },
- end: { line: 1, column: 30 }
- }
- },
- kind: 'init',
- range: [24, 30],
- loc: {
- start: { line: 1, column: 24 },
- end: { line: 1, column: 30 }
- }
- }],
- range: [22, 31],
- loc: {
- start: { line: 1, column: 22 },
- end: { line: 1, column: 31 }
- }
- },
- range: [18, 31],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 31 }
- }
- }],
- kind: 'var',
- range: [14, 31],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 31 }
- }
- }],
- range: [0, 31],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 31 }
- },
- errors: [{
- index: 24,
- lineNumber: 1,
- column: 25,
- message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
- }]
- },
-
- '"use strict"; var x = { get i() {}, get i() {} }': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '"use strict"',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- range: [18, 19],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 19 }
- }
- },
- init: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'i',
- range: [28, 29],
- loc: {
- start: { line: 1, column: 28 },
- end: { line: 1, column: 29 }
- }
- },
- value: {
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [32, 34],
- loc: {
- start: { line: 1, column: 32 },
- end: { line: 1, column: 34 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [32, 34],
- loc: {
- start: { line: 1, column: 32 },
- end: { line: 1, column: 34 }
- }
- },
- kind: 'get',
- range: [24, 34],
- loc: {
- start: { line: 1, column: 24 },
- end: { line: 1, column: 34 }
- }
- }, {
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'i',
- range: [40, 41],
- loc: {
- start: { line: 1, column: 40 },
- end: { line: 1, column: 41 }
- }
- },
- value: {
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [44, 46],
- loc: {
- start: { line: 1, column: 44 },
- end: { line: 1, column: 46 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [44, 46],
- loc: {
- start: { line: 1, column: 44 },
- end: { line: 1, column: 46 }
- }
- },
- kind: 'get',
- range: [36, 46],
- loc: {
- start: { line: 1, column: 36 },
- end: { line: 1, column: 46 }
- }
- }],
- range: [22, 48],
- loc: {
- start: { line: 1, column: 22 },
- end: { line: 1, column: 48 }
- }
- },
- range: [18, 48],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 48 }
- }
- }],
- kind: 'var',
- range: [14, 48],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 48 }
- }
- }],
- range: [0, 48],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 48 }
- },
- errors: [{
- index: 46,
- lineNumber: 1,
- column: 47,
- message: 'Error: Line 1: Object literal may not have multiple get/set accessors with the same name'
- }]
- },
-
- '"use strict"; var x = { i: 42, get i() {} }': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '"use strict"',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- range: [18, 19],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 19 }
- }
- },
- init: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'i',
- range: [24, 25],
- loc: {
- start: { line: 1, column: 24 },
- end: { line: 1, column: 25 }
- }
- },
- value: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [27, 29],
- loc: {
- start: { line: 1, column: 27 },
- end: { line: 1, column: 29 }
- }
- },
- kind: 'init',
- range: [24, 29],
- loc: {
- start: { line: 1, column: 24 },
- end: { line: 1, column: 29 }
- }
- }, {
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'i',
- range: [35, 36],
- loc: {
- start: { line: 1, column: 35 },
- end: { line: 1, column: 36 }
- }
- },
- value: {
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [39, 41],
- loc: {
- start: { line: 1, column: 39 },
- end: { line: 1, column: 41 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [39, 41],
- loc: {
- start: { line: 1, column: 39 },
- end: { line: 1, column: 41 }
- }
- },
- kind: 'get',
- range: [31, 41],
- loc: {
- start: { line: 1, column: 31 },
- end: { line: 1, column: 41 }
- }
- }],
- range: [22, 43],
- loc: {
- start: { line: 1, column: 22 },
- end: { line: 1, column: 43 }
- }
- },
- range: [18, 43],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 43 }
- }
- }],
- kind: 'var',
- range: [14, 43],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 43 }
- }
- }],
- range: [0, 43],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 43 }
- },
- errors: [{
- index: 41,
- lineNumber: 1,
- column: 42,
- message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
- }]
- },
-
- '"use strict"; var x = { set i(x) {}, i: 42 }': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'Literal',
- value: 'use strict',
- raw: '"use strict"',
- range: [0, 12],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 12 }
- }
- },
- range: [0, 13],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 13 }
- }
- }, {
- type: 'VariableDeclaration',
- declarations: [{
- type: 'VariableDeclarator',
- id: {
- type: 'Identifier',
- name: 'x',
- range: [18, 19],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 19 }
- }
- },
- init: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'i',
- range: [28, 29],
- loc: {
- start: { line: 1, column: 28 },
- end: { line: 1, column: 29 }
- }
- },
- value: {
- type: 'FunctionExpression',
- id: null,
- params: [{
- type: 'Identifier',
- name: 'x',
- range: [30, 31],
- loc: {
- start: { line: 1, column: 30 },
- end: { line: 1, column: 31 }
- }
- }],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [33, 35],
- loc: {
- start: { line: 1, column: 33 },
- end: { line: 1, column: 35 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [33, 35],
- loc: {
- start: { line: 1, column: 33 },
- end: { line: 1, column: 35 }
- }
- },
- kind: 'set',
- range: [24, 35],
- loc: {
- start: { line: 1, column: 24 },
- end: { line: 1, column: 35 }
- }
- }, {
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 'i',
- range: [37, 38],
- loc: {
- start: { line: 1, column: 37 },
- end: { line: 1, column: 38 }
- }
- },
- value: {
- type: 'Literal',
- value: 42,
- raw: '42',
- range: [40, 42],
- loc: {
- start: { line: 1, column: 40 },
- end: { line: 1, column: 42 }
- }
- },
- kind: 'init',
- range: [37, 42],
- loc: {
- start: { line: 1, column: 37 },
- end: { line: 1, column: 42 }
- }
- }],
- range: [22, 44],
- loc: {
- start: { line: 1, column: 22 },
- end: { line: 1, column: 44 }
- }
- },
- range: [18, 44],
- loc: {
- start: { line: 1, column: 18 },
- end: { line: 1, column: 44 }
- }
- }],
- kind: 'var',
- range: [14, 44],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 44 }
- }
- }],
- range: [0, 44],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 44 }
- },
- errors: [{
- index: 42,
- lineNumber: 1,
- column: 43,
- message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
- }]
-
-
- },
-
- '({ set s() { } })': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'ObjectExpression',
- properties: [{
- type: 'Property',
- key: {
- type: 'Identifier',
- name: 's',
- range: [7, 8],
- loc: {
- start: { line: 1, column: 7 },
- end: { line: 1, column: 8 }
- }
- },
- value: {
- type: 'FunctionExpression',
- id: null,
- params: [],
- defaults: [],
- body: {
- type: 'BlockStatement',
- body: [],
- range: [11, 14],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 1, column: 14 }
- }
- },
- rest: null,
- generator: false,
- expression: false,
- range: [11, 14],
- loc: {
- start: { line: 1, column: 11 },
- end: { line: 1, column: 14 }
- }
- },
- kind: 'set',
- range: [3, 14],
- loc: {
- start: { line: 1, column: 3 },
- end: { line: 1, column: 14 }
- }
- }],
- range: [1, 16],
- loc: {
- start: { line: 1, column: 1 },
- end: { line: 1, column: 16 }
- }
- },
- range: [0, 17],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 17 }
- }
- }],
- range: [0, 17],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 17 }
- },
- errors: [{
- index: 9,
- lineNumber: 1,
- column: 10,
- message: 'Error: Line 1: Unexpected token )'
- }]
- },
-
- 'foo("bar") = baz': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'CallExpression',
- callee: {
- type: 'Identifier',
- name: 'foo',
- range: [0, 3],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 3 }
- }
- },
- 'arguments': [{
- type: 'Literal',
- value: 'bar',
- raw: '"bar"',
- range: [4, 9],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 9 }
- }
- }],
- range: [0, 10],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 10 }
- }
- },
- right: {
- type: 'Identifier',
- name: 'baz',
- range: [13, 16],
- loc: {
- start: { line: 1, column: 13 },
- end: { line: 1, column: 16 }
- }
- },
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- },
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- }],
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- },
- errors: [{
- index: 10,
- lineNumber: 1,
- column: 11,
- message: 'Error: Line 1: Invalid left-hand side in assignment'
- }]
- },
-
- '1 = 2': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'AssignmentExpression',
- operator: '=',
- left: {
- type: 'Literal',
- value: 1,
- raw: '1',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- right: {
- type: 'Literal',
- value: 2,
- raw: '2',
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- },
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- }
- }],
- range: [0, 5],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 5 }
- },
- errors: [{
- index: 1,
- lineNumber: 1,
- column: 2,
- message: 'Error: Line 1: Invalid left-hand side in assignment'
- }]
- },
-
- '3++': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'UpdateExpression',
- operator: '++',
- argument: {
- type: 'Literal',
- value: 3,
- raw: '3',
- range: [0, 1],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 1 }
- }
- },
- prefix: false,
- range: [0, 3],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 3 }
- }
- },
- range: [0, 3],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 3 }
- }
- }],
- range: [0, 3],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 3 }
- },
- errors: [{
- index: 1,
- lineNumber: 1,
- column: 2,
- message: 'Error: Line 1: Invalid left-hand side in assignment'
- }]
- },
-
- '--4': {
- type: 'Program',
- body: [{
- type: 'ExpressionStatement',
- expression: {
- type: 'UpdateExpression',
- operator: '--',
- argument: {
- type: 'Literal',
- value: 4,
- raw: '4',
- range: [2, 3],
- loc: {
- start: { line: 1, column: 2 },
- end: { line: 1, column: 3 }
- }
- },
- prefix: true,
- range: [0, 3],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 3 }
- }
- },
- range: [0, 3],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 3 }
- }
- }],
- range: [0, 3],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 3 }
- },
- errors: [{
- index: 3,
- lineNumber: 1,
- column: 4,
- message: 'Error: Line 1: Invalid left-hand side in assignment'
- }]
- },
-
- 'for (5 in []) {}': {
- type: 'Program',
- body: [{
- type: 'ForInStatement',
- left: {
- type: 'Literal',
- value: 5,
- raw: '5',
- range: [5, 6],
- loc: {
- start: { line: 1, column: 5 },
- end: { line: 1, column: 6 }
- }
- },
- right: {
- type: 'ArrayExpression',
- elements: [],
- range: [10, 12],
- loc: {
- start: { line: 1, column: 10 },
- end: { line: 1, column: 12 }
- }
- },
- body: {
- type: 'BlockStatement',
- body: [],
- range: [14, 16],
- loc: {
- start: { line: 1, column: 14 },
- end: { line: 1, column: 16 }
- }
- },
- each: false,
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- }
- }],
- range: [0, 16],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 16 }
- },
- errors: [{
- index: 6,
- lineNumber: 1,
- column: 7,
- message: 'Error: Line 1: Invalid left-hand side in for-in'
- }]
- },
-
- 'var x = /[P QR]/\\g': {
- type: "Program",
- body: [{
- type: "VariableDeclaration",
- declarations: [{
- type: "VariableDeclarator",
- id: {
- type: "Identifier",
- name: "x",
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- init: {
- type: "Literal",
- value: "/[P QR]/g",
- raw: "/[P QR]/\\g",
- range: [8, 18],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 18 }
- }
- },
- range: [4, 18],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 18 }
- }
- }],
- kind: "var",
- range: [0, 18],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 18 }
- }
- }],
- range: [0, 18],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 18 }
- },
- errors: [{
- index: 17,
- lineNumber: 1,
- column: 18,
- message: "Error: Line 1: Unexpected token ILLEGAL"
- }]
- },
-
- 'var x = /[P QR]/\\\\u0067': {
- type: "Program",
- body: [{
- type: "VariableDeclaration",
- declarations: [{
- type: "VariableDeclarator",
- id: {
- type: "Identifier",
- name: "x",
- range: [4, 5],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 5 }
- }
- },
- init: {
- type: "Literal",
- value: "/[P QR]/g",
- raw: "/[P QR]/\\\\u0067",
- range: [8, 23],
- loc: {
- start: { line: 1, column: 8 },
- end: { line: 1, column: 23 }
- }
- },
- range: [4, 23],
- loc: {
- start: { line: 1, column: 4 },
- end: { line: 1, column: 23 }
- }
- }],
- kind: "var",
- range: [0, 23],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 23 }
- }
- }],
- range: [0, 23],
- loc: {
- start: { line: 1, column: 0 },
- end: { line: 1, column: 23 }
- },
- errors: [{
- index: 17,
- lineNumber: 1,
- column: 18,
- message: "Error: Line 1: Unexpected token ILLEGAL"
- }, {
- index: 23,
- lineNumber: 1,
- column: 24,
- message: "Error: Line 1: Unexpected token ILLEGAL"
- }]
- }
-
- }
-};