2 Copyright (C) 2012 Ariya Hidayat <ariya.hidayat@gmail.com>
3 Copyright (C) 2012 Joost-Wim Boekesteijn <joost-wim@boekesteijn.nl>
4 Copyright (C) 2012 Yusuke Suzuki <utatane.tea@gmail.com>
5 Copyright (C) 2012 Arpad Borsos <arpad.borsos@googlemail.com>
6 Copyright (C) 2011 Ariya Hidayat <ariya.hidayat@gmail.com>
7 Copyright (C) 2011 Yusuke Suzuki <utatane.tea@gmail.com>
8 Copyright (C) 2011 Arpad Borsos <arpad.borsos@googlemail.com>
10 Redistribution and use in source and binary forms, with or without
11 modification, are permitted provided that the following conditions are met:
13 * Redistributions of source code must retain the above copyright
14 notice, this list of conditions and the following disclaimer.
15 * Redistributions in binary form must reproduce the above copyright
16 notice, this list of conditions and the following disclaimer in the
17 documentation and/or other materials provided with the distribution.
19 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
23 DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26 ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28 THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 'Primary Expression': {
38 type: 'ExpressionStatement',
40 type: 'ThisExpression',
43 start: { line: 1, column: 0 },
44 end: { line: 1, column: 4 }
49 start: { line: 1, column: 0 },
50 end: { line: 2, column: 0 }
55 start: { line: 1, column: 0 },
56 end: { line: 2, column: 0 }
63 start: { line: 1, column: 0 },
64 end: { line: 1, column: 4 }
72 type: 'ExpressionStatement',
79 start: { line: 1, column: 0 },
80 end: { line: 1, column: 4 }
85 start: { line: 1, column: 0 },
86 end: { line: 2, column: 0 }
91 start: { line: 1, column: 0 },
92 end: { line: 2, column: 0 }
99 start: { line: 1, column: 0 },
100 end: { line: 1, column: 4 }
108 type: 'ExpressionStatement',
115 start: { line: 2, column: 4 },
116 end: { line: 2, column: 6 }
121 start: { line: 2, column: 4 },
122 end: { line: 4, column: 0 }
127 start: { line: 2, column: 4 },
128 end: { line: 4, column: 0 }
135 start: { line: 2, column: 4 },
136 end: { line: 2, column: 6 }
142 type: 'ExpressionStatement',
144 type: 'BinaryExpression',
147 type: 'BinaryExpression',
155 start: { line: 1, column: 1 },
156 end: { line: 1, column: 2 }
165 start: { line: 1, column: 5 },
166 end: { line: 1, column: 6 }
171 start: { line: 1, column: 1 },
172 end: { line: 1, column: 6 }
181 start: { line: 1, column: 11 },
182 end: { line: 1, column: 12 }
187 start: { line: 1, column: 0 },
188 end: { line: 1, column: 12 }
193 start: { line: 1, column: 0 },
194 end: { line: 1, column: 12 }
200 'Grouping Operator': {
203 type: 'ExpressionStatement',
205 type: 'BinaryExpression',
208 type: 'BinaryExpression',
216 start: { line: 1, column: 1 },
217 end: { line: 1, column: 2 }
226 start: { line: 1, column: 7 },
227 end: { line: 1, column: 8 }
232 start: { line: 1, column: 0 },
233 end: { line: 1, column: 11 }
242 start: { line: 1, column: 14 },
243 end: { line: 1, column: 15 }
248 start: { line: 1, column: 0 },
249 end: { line: 1, column: 15 }
254 start: { line: 1, column: 0 },
255 end: { line: 1, column: 15 }
260 type: 'ExpressionStatement',
262 type: 'BinaryExpression',
265 type: 'BinaryExpression',
273 start: { line: 1, column: 0 },
274 end: { line: 1, column: 1 }
283 start: { line: 1, column: 4 },
284 end: { line: 1, column: 5 }
289 start: { line: 1, column: 0 },
290 end: { line: 1, column: 5 }
299 start: { line: 1, column: 10 },
300 end: { line: 1, column: 11 }
305 start: { line: 1, column: 0 },
306 end: { line: 1, column: 12 }
311 start: { line: 1, column: 0 },
312 end: { line: 1, column: 12 }
318 'Array Initializer': {
323 type: 'ExpressionStatement',
325 type: 'AssignmentExpression',
332 start: { line: 1, column: 0 },
333 end: { line: 1, column: 1 }
337 type: 'ArrayExpression',
341 start: { line: 1, column: 4 },
342 end: { line: 1, column: 6 }
347 start: { line: 1, column: 0 },
348 end: { line: 1, column: 6 }
353 start: { line: 1, column: 0 },
354 end: { line: 1, column: 6 }
359 start: { line: 1, column: 0 },
360 end: { line: 1, column: 6 }
367 start: { line: 1, column: 0 },
368 end: { line: 1, column: 1 }
375 start: { line: 1, column: 2 },
376 end: { line: 1, column: 3 }
383 start: { line: 1, column: 4 },
384 end: { line: 1, column: 5 }
391 start: { line: 1, column: 5 },
392 end: { line: 1, column: 6 }
398 type: 'ExpressionStatement',
400 type: 'AssignmentExpression',
407 start: { line: 1, column: 0 },
408 end: { line: 1, column: 1 }
412 type: 'ArrayExpression',
416 start: { line: 1, column: 4 },
417 end: { line: 1, column: 7 }
422 start: { line: 1, column: 0 },
423 end: { line: 1, column: 7 }
428 start: { line: 1, column: 0 },
429 end: { line: 1, column: 7 }
434 type: 'ExpressionStatement',
436 type: 'AssignmentExpression',
443 start: { line: 1, column: 0 },
444 end: { line: 1, column: 1 }
448 type: 'ArrayExpression',
455 start: { line: 1, column: 6 },
456 end: { line: 1, column: 8 }
461 start: { line: 1, column: 4 },
462 end: { line: 1, column: 10 }
467 start: { line: 1, column: 0 },
468 end: { line: 1, column: 10 }
473 start: { line: 1, column: 0 },
474 end: { line: 1, column: 10 }
479 type: 'ExpressionStatement',
481 type: 'AssignmentExpression',
488 start: { line: 1, column: 0 },
489 end: { line: 1, column: 1 }
493 type: 'ArrayExpression',
500 start: { line: 1, column: 6 },
501 end: { line: 1, column: 8 }
506 start: { line: 1, column: 4 },
507 end: { line: 1, column: 11 }
512 start: { line: 1, column: 0 },
513 end: { line: 1, column: 11 }
518 start: { line: 1, column: 0 },
519 end: { line: 1, column: 11 }
524 type: 'ExpressionStatement',
526 type: 'AssignmentExpression',
533 start: { line: 1, column: 0 },
534 end: { line: 1, column: 1 }
538 type: 'ArrayExpression',
548 start: { line: 1, column: 9 },
549 end: { line: 1, column: 11 }
554 start: { line: 1, column: 4 },
555 end: { line: 1, column: 13 }
560 start: { line: 1, column: 0 },
561 end: { line: 1, column: 13 }
566 start: { line: 1, column: 0 },
567 end: { line: 1, column: 13 }
571 'x = [ 1, 2, 3, ]': {
572 type: 'ExpressionStatement',
574 type: 'AssignmentExpression',
581 start: { line: 1, column: 0 },
582 end: { line: 1, column: 1 }
586 type: 'ArrayExpression',
593 start: { line: 1, column: 6 },
594 end: { line: 1, column: 7 }
602 start: { line: 1, column: 9 },
603 end: { line: 1, column: 10 }
611 start: { line: 1, column: 12 },
612 end: { line: 1, column: 13 }
617 start: { line: 1, column: 4 },
618 end: { line: 1, column: 16 }
623 start: { line: 1, column: 0 },
624 end: { line: 1, column: 16 }
629 start: { line: 1, column: 0 },
630 end: { line: 1, column: 16 }
634 'x = [ 1, 2,, 3, ]': {
635 type: 'ExpressionStatement',
637 type: 'AssignmentExpression',
644 start: { line: 1, column: 0 },
645 end: { line: 1, column: 1 }
649 type: 'ArrayExpression',
656 start: { line: 1, column: 6 },
657 end: { line: 1, column: 7 }
665 start: { line: 1, column: 9 },
666 end: { line: 1, column: 10 }
674 start: { line: 1, column: 13 },
675 end: { line: 1, column: 14 }
680 start: { line: 1, column: 4 },
681 end: { line: 1, column: 17 }
686 start: { line: 1, column: 0 },
687 end: { line: 1, column: 17 }
692 start: { line: 1, column: 0 },
693 end: { line: 1, column: 17 }
698 type: 'ExpressionStatement',
700 type: 'AssignmentExpression',
707 start: { line: 1, column: 0 },
708 end: { line: 1, column: 3 }
712 type: 'ArrayExpression',
716 start: { line: 1, column: 6 },
717 end: { line: 1, column: 8 }
722 start: { line: 1, column: 0 },
723 end: { line: 1, column: 8 }
728 start: { line: 1, column: 0 },
729 end: { line: 1, column: 8 }
734 type: 'ExpressionStatement',
736 type: 'AssignmentExpression',
743 start: { line: 1, column: 0 },
744 end: { line: 1, column: 2 }
748 type: 'ArrayExpression',
752 start: { line: 1, column: 5 },
753 end: { line: 1, column: 7 }
758 start: { line: 1, column: 0 },
759 end: { line: 1, column: 7 }
764 start: { line: 1, column: 0 },
765 end: { line: 1, column: 7 }
770 type: 'ExpressionStatement',
772 type: 'AssignmentExpression',
779 start: { line: 1, column: 0 },
780 end: { line: 1, column: 2 }
784 type: 'ArrayExpression',
788 start: { line: 1, column: 5 },
789 end: { line: 1, column: 7 }
794 start: { line: 1, column: 0 },
795 end: { line: 1, column: 7 }
800 start: { line: 1, column: 0 },
801 end: { line: 1, column: 7 }
806 type: 'ExpressionStatement',
808 type: 'AssignmentExpression',
815 start: { line: 1, column: 0 },
816 end: { line: 1, column: 2 }
820 type: 'ArrayExpression',
824 start: { line: 1, column: 5 },
825 end: { line: 1, column: 7 }
830 start: { line: 1, column: 0 },
831 end: { line: 1, column: 7 }
836 start: { line: 1, column: 0 },
837 end: { line: 1, column: 7 }
841 '\u2163\u2161 = []': {
842 type: 'ExpressionStatement',
844 type: 'AssignmentExpression',
848 name: '\u2163\u2161',
851 start: { line: 1, column: 0 },
852 end: { line: 1, column: 2 }
856 type: 'ArrayExpression',
860 start: { line: 1, column: 5 },
861 end: { line: 1, column: 7 }
866 start: { line: 1, column: 0 },
867 end: { line: 1, column: 7 }
872 start: { line: 1, column: 0 },
873 end: { line: 1, column: 7 }
877 '\u2163\u2161\u200A=\u2009[]': {
878 type: 'ExpressionStatement',
880 type: 'AssignmentExpression',
884 name: '\u2163\u2161',
887 start: { line: 1, column: 0 },
888 end: { line: 1, column: 2 }
892 type: 'ArrayExpression',
896 start: { line: 1, column: 5 },
897 end: { line: 1, column: 7 }
902 start: { line: 1, column: 0 },
903 end: { line: 1, column: 7 }
908 start: { line: 1, column: 0 },
909 end: { line: 1, column: 7 }
915 'Object Initializer': {
918 type: 'ExpressionStatement',
920 type: 'AssignmentExpression',
927 start: { line: 1, column: 0 },
928 end: { line: 1, column: 1 }
932 type: 'ObjectExpression',
936 start: { line: 1, column: 4 },
937 end: { line: 1, column: 6 }
942 start: { line: 1, column: 0 },
943 end: { line: 1, column: 6 }
948 start: { line: 1, column: 0 },
949 end: { line: 1, column: 6 }
954 type: 'ExpressionStatement',
956 type: 'AssignmentExpression',
963 start: { line: 1, column: 0 },
964 end: { line: 1, column: 1 }
968 type: 'ObjectExpression',
972 start: { line: 1, column: 4 },
973 end: { line: 1, column: 7 }
978 start: { line: 1, column: 0 },
979 end: { line: 1, column: 7 }
984 start: { line: 1, column: 0 },
985 end: { line: 1, column: 7 }
989 'x = { answer: 42 }': {
990 type: 'ExpressionStatement',
992 type: 'AssignmentExpression',
999 start: { line: 1, column: 0 },
1000 end: { line: 1, column: 1 }
1004 type: 'ObjectExpression',
1012 start: { line: 1, column: 6 },
1013 end: { line: 1, column: 12 }
1022 start: { line: 1, column: 14 },
1023 end: { line: 1, column: 16 }
1029 start: { line: 1, column: 6 },
1030 end: { line: 1, column: 16 }
1035 start: { line: 1, column: 4 },
1036 end: { line: 1, column: 18 }
1041 start: { line: 1, column: 0 },
1042 end: { line: 1, column: 18 }
1047 start: { line: 1, column: 0 },
1048 end: { line: 1, column: 18 }
1053 type: 'ExpressionStatement',
1055 type: 'AssignmentExpression',
1062 start: { line: 1, column: 0 },
1063 end: { line: 1, column: 1 }
1067 type: 'ObjectExpression',
1075 start: { line: 1, column: 6 },
1076 end: { line: 1, column: 8 }
1085 start: { line: 1, column: 10 },
1086 end: { line: 1, column: 12 }
1092 start: { line: 1, column: 6 },
1093 end: { line: 1, column: 12 }
1098 start: { line: 1, column: 4 },
1099 end: { line: 1, column: 14 }
1104 start: { line: 1, column: 0 },
1105 end: { line: 1, column: 14 }
1110 start: { line: 1, column: 0 },
1111 end: { line: 1, column: 14 }
1115 'x = { true: 42 }': {
1116 type: 'ExpressionStatement',
1118 type: 'AssignmentExpression',
1125 start: { line: 1, column: 0 },
1126 end: { line: 1, column: 1 }
1130 type: 'ObjectExpression',
1138 start: { line: 1, column: 6 },
1139 end: { line: 1, column: 10 }
1148 start: { line: 1, column: 12 },
1149 end: { line: 1, column: 14 }
1155 start: { line: 1, column: 6 },
1156 end: { line: 1, column: 14 }
1161 start: { line: 1, column: 4 },
1162 end: { line: 1, column: 16 }
1167 start: { line: 1, column: 0 },
1168 end: { line: 1, column: 16 }
1173 start: { line: 1, column: 0 },
1174 end: { line: 1, column: 16 }
1178 'x = { false: 42 }': {
1179 type: 'ExpressionStatement',
1181 type: 'AssignmentExpression',
1188 start: { line: 1, column: 0 },
1189 end: { line: 1, column: 1 }
1193 type: 'ObjectExpression',
1201 start: { line: 1, column: 6 },
1202 end: { line: 1, column: 11 }
1211 start: { line: 1, column: 13 },
1212 end: { line: 1, column: 15 }
1218 start: { line: 1, column: 6 },
1219 end: { line: 1, column: 15 }
1224 start: { line: 1, column: 4 },
1225 end: { line: 1, column: 17 }
1230 start: { line: 1, column: 0 },
1231 end: { line: 1, column: 17 }
1236 start: { line: 1, column: 0 },
1237 end: { line: 1, column: 17 }
1241 'x = { null: 42 }': {
1242 type: 'ExpressionStatement',
1244 type: 'AssignmentExpression',
1251 start: { line: 1, column: 0 },
1252 end: { line: 1, column: 1 }
1256 type: 'ObjectExpression',
1264 start: { line: 1, column: 6 },
1265 end: { line: 1, column: 10 }
1274 start: { line: 1, column: 12 },
1275 end: { line: 1, column: 14 }
1281 start: { line: 1, column: 6 },
1282 end: { line: 1, column: 14 }
1287 start: { line: 1, column: 4 },
1288 end: { line: 1, column: 16 }
1293 start: { line: 1, column: 0 },
1294 end: { line: 1, column: 16 }
1299 start: { line: 1, column: 0 },
1300 end: { line: 1, column: 16 }
1304 'x = { "answer": 42 }': {
1305 type: 'ExpressionStatement',
1307 type: 'AssignmentExpression',
1314 start: { line: 1, column: 0 },
1315 end: { line: 1, column: 1 }
1319 type: 'ObjectExpression',
1328 start: { line: 1, column: 6 },
1329 end: { line: 1, column: 14 }
1338 start: { line: 1, column: 16 },
1339 end: { line: 1, column: 18 }
1345 start: { line: 1, column: 6 },
1346 end: { line: 1, column: 18 }
1351 start: { line: 1, column: 4 },
1352 end: { line: 1, column: 20 }
1357 start: { line: 1, column: 0 },
1358 end: { line: 1, column: 20 }
1363 start: { line: 1, column: 0 },
1364 end: { line: 1, column: 20 }
1368 'x = { x: 1, x: 2 }': {
1369 type: 'ExpressionStatement',
1371 type: 'AssignmentExpression',
1378 start: { line: 1, column: 0 },
1379 end: { line: 1, column: 1 }
1383 type: 'ObjectExpression',
1392 start: { line: 1, column: 6 },
1393 end: { line: 1, column: 7 }
1402 start: { line: 1, column: 9 },
1403 end: { line: 1, column: 10 }
1409 start: { line: 1, column: 6 },
1410 end: { line: 1, column: 10 }
1420 start: { line: 1, column: 12 },
1421 end: { line: 1, column: 13 }
1430 start: { line: 1, column: 15 },
1431 end: { line: 1, column: 16 }
1437 start: { line: 1, column: 12 },
1438 end: { line: 1, column: 16 }
1444 start: { line: 1, column: 4 },
1445 end: { line: 1, column: 18 }
1450 start: { line: 1, column: 0 },
1451 end: { line: 1, column: 18 }
1456 start: { line: 1, column: 0 },
1457 end: { line: 1, column: 18 }
1461 'x = { get width() { return m_width } }': {
1462 type: 'ExpressionStatement',
1464 type: 'AssignmentExpression',
1471 start: { line: 1, column: 0 },
1472 end: { line: 1, column: 1 }
1476 type: 'ObjectExpression',
1484 start: { line: 1, column: 10 },
1485 end: { line: 1, column: 15 }
1489 type: 'FunctionExpression',
1494 type: 'BlockStatement',
1496 type: 'ReturnStatement',
1502 start: { line: 1, column: 27 },
1503 end: { line: 1, column: 34 }
1508 start: { line: 1, column: 20 },
1509 end: { line: 1, column: 35 }
1514 start: { line: 1, column: 18 },
1515 end: { line: 1, column: 36 }
1523 start: { line: 1, column: 18 },
1524 end: { line: 1, column: 36 }
1530 start: { line: 1, column: 6 },
1531 end: { line: 1, column: 36 }
1536 start: { line: 1, column: 4 },
1537 end: { line: 1, column: 38 }
1542 start: { line: 1, column: 0 },
1543 end: { line: 1, column: 38 }
1548 start: { line: 1, column: 0 },
1549 end: { line: 1, column: 38 }
1553 'x = { get undef() {} }': {
1554 type: 'ExpressionStatement',
1556 type: 'AssignmentExpression',
1563 start: { line: 1, column: 0 },
1564 end: { line: 1, column: 1 }
1568 type: 'ObjectExpression',
1576 start: { line: 1, column: 10 },
1577 end: { line: 1, column: 15 }
1581 type: 'FunctionExpression',
1586 type: 'BlockStatement',
1590 start: { line: 1, column: 18 },
1591 end: { line: 1, column: 20 }
1599 start: { line: 1, column: 18 },
1600 end: { line: 1, column: 20 }
1606 start: { line: 1, column: 6 },
1607 end: { line: 1, column: 20 }
1612 start: { line: 1, column: 4 },
1613 end: { line: 1, column: 22 }
1618 start: { line: 1, column: 0 },
1619 end: { line: 1, column: 22 }
1624 start: { line: 1, column: 0 },
1625 end: { line: 1, column: 22 }
1629 'x = { get if() {} }': {
1630 type: 'ExpressionStatement',
1632 type: 'AssignmentExpression',
1639 start: { line: 1, column: 0 },
1640 end: { line: 1, column: 1 }
1644 type: 'ObjectExpression',
1652 start: { line: 1, column: 10 },
1653 end: { line: 1, column: 12 }
1657 type: 'FunctionExpression',
1662 type: 'BlockStatement',
1666 start: { line: 1, column: 15 },
1667 end: { line: 1, column: 17 }
1675 start: { line: 1, column: 15 },
1676 end: { line: 1, column: 17 }
1682 start: { line: 1, column: 6 },
1683 end: { line: 1, column: 17 }
1688 start: { line: 1, column: 4 },
1689 end: { line: 1, column: 19 }
1694 start: { line: 1, column: 0 },
1695 end: { line: 1, column: 19 }
1700 start: { line: 1, column: 0 },
1701 end: { line: 1, column: 19 }
1705 'x = { get true() {} }': {
1706 type: 'ExpressionStatement',
1708 type: 'AssignmentExpression',
1715 start: { line: 1, column: 0 },
1716 end: { line: 1, column: 1 }
1720 type: 'ObjectExpression',
1728 start: { line: 1, column: 10 },
1729 end: { line: 1, column: 14 }
1733 type: 'FunctionExpression',
1738 type: 'BlockStatement',
1742 start: { line: 1, column: 17 },
1743 end: { line: 1, column: 19 }
1751 start: { line: 1, column: 17 },
1752 end: { line: 1, column: 19 }
1758 start: { line: 1, column: 6 },
1759 end: { line: 1, column: 19 }
1764 start: { line: 1, column: 4 },
1765 end: { line: 1, column: 21 }
1770 start: { line: 1, column: 0 },
1771 end: { line: 1, column: 21 }
1776 start: { line: 1, column: 0 },
1777 end: { line: 1, column: 21 }
1781 'x = { get false() {} }': {
1782 type: 'ExpressionStatement',
1784 type: 'AssignmentExpression',
1791 start: { line: 1, column: 0 },
1792 end: { line: 1, column: 1 }
1796 type: 'ObjectExpression',
1804 start: { line: 1, column: 10 },
1805 end: { line: 1, column: 15 }
1809 type: 'FunctionExpression',
1814 type: 'BlockStatement',
1818 start: { line: 1, column: 18 },
1819 end: { line: 1, column: 20 }
1827 start: { line: 1, column: 18 },
1828 end: { line: 1, column: 20 }
1834 start: { line: 1, column: 6 },
1835 end: { line: 1, column: 20 }
1840 start: { line: 1, column: 4 },
1841 end: { line: 1, column: 22 }
1846 start: { line: 1, column: 0 },
1847 end: { line: 1, column: 22 }
1852 start: { line: 1, column: 0 },
1853 end: { line: 1, column: 22 }
1857 'x = { get null() {} }': {
1858 type: 'ExpressionStatement',
1860 type: 'AssignmentExpression',
1867 start: { line: 1, column: 0 },
1868 end: { line: 1, column: 1 }
1872 type: 'ObjectExpression',
1880 start: { line: 1, column: 10 },
1881 end: { line: 1, column: 14 }
1885 type: 'FunctionExpression',
1890 type: 'BlockStatement',
1894 start: { line: 1, column: 17 },
1895 end: { line: 1, column: 19 }
1903 start: { line: 1, column: 17 },
1904 end: { line: 1, column: 19 }
1910 start: { line: 1, column: 6 },
1911 end: { line: 1, column: 19 }
1916 start: { line: 1, column: 4 },
1917 end: { line: 1, column: 21 }
1922 start: { line: 1, column: 0 },
1923 end: { line: 1, column: 21 }
1928 start: { line: 1, column: 0 },
1929 end: { line: 1, column: 21 }
1933 'x = { get "undef"() {} }': {
1934 type: 'ExpressionStatement',
1936 type: 'AssignmentExpression',
1943 start: { line: 1, column: 0 },
1944 end: { line: 1, column: 1 }
1948 type: 'ObjectExpression',
1957 start: { line: 1, column: 10 },
1958 end: { line: 1, column: 17 }
1962 type: 'FunctionExpression',
1967 type: 'BlockStatement',
1971 start: { line: 1, column: 20 },
1972 end: { line: 1, column: 22 }
1980 start: { line: 1, column: 20 },
1981 end: { line: 1, column: 22 }
1987 start: { line: 1, column: 6 },
1988 end: { line: 1, column: 22 }
1993 start: { line: 1, column: 4 },
1994 end: { line: 1, column: 24 }
1999 start: { line: 1, column: 0 },
2000 end: { line: 1, column: 24 }
2005 start: { line: 1, column: 0 },
2006 end: { line: 1, column: 24 }
2010 'x = { get 10() {} }': {
2011 type: 'ExpressionStatement',
2013 type: 'AssignmentExpression',
2020 start: { line: 1, column: 0 },
2021 end: { line: 1, column: 1 }
2025 type: 'ObjectExpression',
2034 start: { line: 1, column: 10 },
2035 end: { line: 1, column: 12 }
2039 type: 'FunctionExpression',
2044 type: 'BlockStatement',
2048 start: { line: 1, column: 15 },
2049 end: { line: 1, column: 17 }
2057 start: { line: 1, column: 15 },
2058 end: { line: 1, column: 17 }
2064 start: { line: 1, column: 6 },
2065 end: { line: 1, column: 17 }
2070 start: { line: 1, column: 4 },
2071 end: { line: 1, column: 19 }
2076 start: { line: 1, column: 0 },
2077 end: { line: 1, column: 19 }
2082 start: { line: 1, column: 0 },
2083 end: { line: 1, column: 19 }
2087 'x = { set width(w) { m_width = w } }': {
2088 type: 'ExpressionStatement',
2090 type: 'AssignmentExpression',
2097 start: { line: 1, column: 0 },
2098 end: { line: 1, column: 1 }
2102 type: 'ObjectExpression',
2110 start: { line: 1, column: 10 },
2111 end: { line: 1, column: 15 }
2115 type: 'FunctionExpression',
2122 start: { line: 1, column: 16 },
2123 end: { line: 1, column: 17 }
2128 type: 'BlockStatement',
2130 type: 'ExpressionStatement',
2132 type: 'AssignmentExpression',
2139 start: { line: 1, column: 21 },
2140 end: { line: 1, column: 28 }
2148 start: { line: 1, column: 31 },
2149 end: { line: 1, column: 32 }
2154 start: { line: 1, column: 21 },
2155 end: { line: 1, column: 32 }
2160 start: { line: 1, column: 21 },
2161 end: { line: 1, column: 33 }
2166 start: { line: 1, column: 19 },
2167 end: { line: 1, column: 34 }
2175 start: { line: 1, column: 19 },
2176 end: { line: 1, column: 34 }
2182 start: { line: 1, column: 6 },
2183 end: { line: 1, column: 34 }
2188 start: { line: 1, column: 4 },
2189 end: { line: 1, column: 36 }
2194 start: { line: 1, column: 0 },
2195 end: { line: 1, column: 36 }
2200 start: { line: 1, column: 0 },
2201 end: { line: 1, column: 36 }
2205 'x = { set if(w) { m_if = w } }': {
2206 type: 'ExpressionStatement',
2208 type: 'AssignmentExpression',
2215 start: { line: 1, column: 0 },
2216 end: { line: 1, column: 1 }
2220 type: 'ObjectExpression',
2228 start: { line: 1, column: 10 },
2229 end: { line: 1, column: 12 }
2233 type: 'FunctionExpression',
2240 start: { line: 1, column: 13 },
2241 end: { line: 1, column: 14 }
2246 type: 'BlockStatement',
2248 type: 'ExpressionStatement',
2250 type: 'AssignmentExpression',
2257 start: { line: 1, column: 18 },
2258 end: { line: 1, column: 22 }
2266 start: { line: 1, column: 25 },
2267 end: { line: 1, column: 26 }
2272 start: { line: 1, column: 18 },
2273 end: { line: 1, column: 26 }
2278 start: { line: 1, column: 18 },
2279 end: { line: 1, column: 27 }
2284 start: { line: 1, column: 16 },
2285 end: { line: 1, column: 28 }
2293 start: { line: 1, column: 16 },
2294 end: { line: 1, column: 28 }
2300 start: { line: 1, column: 6 },
2301 end: { line: 1, column: 28 }
2306 start: { line: 1, column: 4 },
2307 end: { line: 1, column: 30 }
2312 start: { line: 1, column: 0 },
2313 end: { line: 1, column: 30 }
2318 start: { line: 1, column: 0 },
2319 end: { line: 1, column: 30 }
2323 'x = { set true(w) { m_true = w } }': {
2324 type: 'ExpressionStatement',
2326 type: 'AssignmentExpression',
2333 start: { line: 1, column: 0 },
2334 end: { line: 1, column: 1 }
2338 type: 'ObjectExpression',
2346 start: { line: 1, column: 10 },
2347 end: { line: 1, column: 14 }
2351 type: 'FunctionExpression',
2358 start: { line: 1, column: 15 },
2359 end: { line: 1, column: 16 }
2364 type: 'BlockStatement',
2366 type: 'ExpressionStatement',
2368 type: 'AssignmentExpression',
2375 start: { line: 1, column: 20 },
2376 end: { line: 1, column: 26 }
2384 start: { line: 1, column: 29 },
2385 end: { line: 1, column: 30 }
2390 start: { line: 1, column: 20 },
2391 end: { line: 1, column: 30 }
2396 start: { line: 1, column: 20 },
2397 end: { line: 1, column: 31 }
2402 start: { line: 1, column: 18 },
2403 end: { line: 1, column: 32 }
2411 start: { line: 1, column: 18 },
2412 end: { line: 1, column: 32 }
2418 start: { line: 1, column: 6 },
2419 end: { line: 1, column: 32 }
2424 start: { line: 1, column: 4 },
2425 end: { line: 1, column: 34 }
2430 start: { line: 1, column: 0 },
2431 end: { line: 1, column: 34 }
2436 start: { line: 1, column: 0 },
2437 end: { line: 1, column: 34 }
2441 'x = { set false(w) { m_false = w } }': {
2442 type: 'ExpressionStatement',
2444 type: 'AssignmentExpression',
2451 start: { line: 1, column: 0 },
2452 end: { line: 1, column: 1 }
2456 type: 'ObjectExpression',
2464 start: { line: 1, column: 10 },
2465 end: { line: 1, column: 15 }
2469 type: 'FunctionExpression',
2476 start: { line: 1, column: 16 },
2477 end: { line: 1, column: 17 }
2482 type: 'BlockStatement',
2484 type: 'ExpressionStatement',
2486 type: 'AssignmentExpression',
2493 start: { line: 1, column: 21 },
2494 end: { line: 1, column: 28 }
2502 start: { line: 1, column: 31 },
2503 end: { line: 1, column: 32 }
2508 start: { line: 1, column: 21 },
2509 end: { line: 1, column: 32 }
2514 start: { line: 1, column: 21 },
2515 end: { line: 1, column: 33 }
2520 start: { line: 1, column: 19 },
2521 end: { line: 1, column: 34 }
2529 start: { line: 1, column: 19 },
2530 end: { line: 1, column: 34 }
2536 start: { line: 1, column: 6 },
2537 end: { line: 1, column: 34 }
2542 start: { line: 1, column: 4 },
2543 end: { line: 1, column: 36 }
2548 start: { line: 1, column: 0 },
2549 end: { line: 1, column: 36 }
2554 start: { line: 1, column: 0 },
2555 end: { line: 1, column: 36 }
2559 'x = { set null(w) { m_null = w } }': {
2560 type: 'ExpressionStatement',
2562 type: 'AssignmentExpression',
2569 start: { line: 1, column: 0 },
2570 end: { line: 1, column: 1 }
2574 type: 'ObjectExpression',
2582 start: { line: 1, column: 10 },
2583 end: { line: 1, column: 14 }
2587 type: 'FunctionExpression',
2594 start: { line: 1, column: 15 },
2595 end: { line: 1, column: 16 }
2600 type: 'BlockStatement',
2602 type: 'ExpressionStatement',
2604 type: 'AssignmentExpression',
2611 start: { line: 1, column: 20 },
2612 end: { line: 1, column: 26 }
2620 start: { line: 1, column: 29 },
2621 end: { line: 1, column: 30 }
2626 start: { line: 1, column: 20 },
2627 end: { line: 1, column: 30 }
2632 start: { line: 1, column: 20 },
2633 end: { line: 1, column: 31 }
2638 start: { line: 1, column: 18 },
2639 end: { line: 1, column: 32 }
2647 start: { line: 1, column: 18 },
2648 end: { line: 1, column: 32 }
2654 start: { line: 1, column: 6 },
2655 end: { line: 1, column: 32 }
2660 start: { line: 1, column: 4 },
2661 end: { line: 1, column: 34 }
2666 start: { line: 1, column: 0 },
2667 end: { line: 1, column: 34 }
2672 start: { line: 1, column: 0 },
2673 end: { line: 1, column: 34 }
2677 'x = { set "null"(w) { m_null = w } }': {
2678 type: 'ExpressionStatement',
2680 type: 'AssignmentExpression',
2687 start: { line: 1, column: 0 },
2688 end: { line: 1, column: 1 }
2692 type: 'ObjectExpression',
2701 start: { line: 1, column: 10 },
2702 end: { line: 1, column: 16 }
2706 type: 'FunctionExpression',
2713 start: { line: 1, column: 17 },
2714 end: { line: 1, column: 18 }
2719 type: 'BlockStatement',
2721 type: 'ExpressionStatement',
2723 type: 'AssignmentExpression',
2730 start: { line: 1, column: 22 },
2731 end: { line: 1, column: 28 }
2739 start: { line: 1, column: 31 },
2740 end: { line: 1, column: 32 }
2745 start: { line: 1, column: 22 },
2746 end: { line: 1, column: 32 }
2751 start: { line: 1, column: 22 },
2752 end: { line: 1, column: 33 }
2757 start: { line: 1, column: 20 },
2758 end: { line: 1, column: 34 }
2766 start: { line: 1, column: 20 },
2767 end: { line: 1, column: 34 }
2773 start: { line: 1, column: 6 },
2774 end: { line: 1, column: 34 }
2779 start: { line: 1, column: 4 },
2780 end: { line: 1, column: 36 }
2785 start: { line: 1, column: 0 },
2786 end: { line: 1, column: 36 }
2791 start: { line: 1, column: 0 },
2792 end: { line: 1, column: 36 }
2796 'x = { set 10(w) { m_null = w } }': {
2797 type: 'ExpressionStatement',
2799 type: 'AssignmentExpression',
2806 start: { line: 1, column: 0 },
2807 end: { line: 1, column: 1 }
2811 type: 'ObjectExpression',
2820 start: { line: 1, column: 10 },
2821 end: { line: 1, column: 12 }
2825 type: 'FunctionExpression',
2832 start: { line: 1, column: 13 },
2833 end: { line: 1, column: 14 }
2838 type: 'BlockStatement',
2840 type: 'ExpressionStatement',
2842 type: 'AssignmentExpression',
2849 start: { line: 1, column: 18 },
2850 end: { line: 1, column: 24 }
2858 start: { line: 1, column: 27 },
2859 end: { line: 1, column: 28 }
2864 start: { line: 1, column: 18 },
2865 end: { line: 1, column: 28 }
2870 start: { line: 1, column: 18 },
2871 end: { line: 1, column: 29 }
2876 start: { line: 1, column: 16 },
2877 end: { line: 1, column: 30 }
2885 start: { line: 1, column: 16 },
2886 end: { line: 1, column: 30 }
2892 start: { line: 1, column: 6 },
2893 end: { line: 1, column: 30 }
2898 start: { line: 1, column: 4 },
2899 end: { line: 1, column: 32 }
2904 start: { line: 1, column: 0 },
2905 end: { line: 1, column: 32 }
2910 start: { line: 1, column: 0 },
2911 end: { line: 1, column: 32 }
2915 'x = { get: 42 }': {
2916 type: 'ExpressionStatement',
2918 type: 'AssignmentExpression',
2925 start: { line: 1, column: 0 },
2926 end: { line: 1, column: 1 }
2930 type: 'ObjectExpression',
2938 start: { line: 1, column: 6 },
2939 end: { line: 1, column: 9 }
2948 start: { line: 1, column: 11 },
2949 end: { line: 1, column: 13 }
2955 start: { line: 1, column: 6 },
2956 end: { line: 1, column: 13 }
2961 start: { line: 1, column: 4 },
2962 end: { line: 1, column: 15 }
2967 start: { line: 1, column: 0 },
2968 end: { line: 1, column: 15 }
2973 start: { line: 1, column: 0 },
2974 end: { line: 1, column: 15 }
2978 'x = { set: 43 }': {
2979 type: 'ExpressionStatement',
2981 type: 'AssignmentExpression',
2988 start: { line: 1, column: 0 },
2989 end: { line: 1, column: 1 }
2993 type: 'ObjectExpression',
3001 start: { line: 1, column: 6 },
3002 end: { line: 1, column: 9 }
3011 start: { line: 1, column: 11 },
3012 end: { line: 1, column: 13 }
3018 start: { line: 1, column: 6 },
3019 end: { line: 1, column: 13 }
3024 start: { line: 1, column: 4 },
3025 end: { line: 1, column: 15 }
3030 start: { line: 1, column: 0 },
3031 end: { line: 1, column: 15 }
3036 start: { line: 1, column: 0 },
3037 end: { line: 1, column: 15 }
3045 '/* block comment */ 42': {
3046 type: 'ExpressionStatement',
3053 start: { line: 1, column: 20 },
3054 end: { line: 1, column: 22 }
3059 start: { line: 1, column: 20 },
3060 end: { line: 1, column: 22 }
3064 '42 /*The*/ /*Answer*/': {
3067 type: 'ExpressionStatement',
3074 start: { line: 1, column: 0 },
3075 end: { line: 1, column: 2 }
3080 start: { line: 1, column: 0 },
3081 end: { line: 1, column: 21 }
3086 start: { line: 1, column: 0 },
3087 end: { line: 1, column: 21 }
3094 start: { line: 1, column: 3 },
3095 end: { line: 1, column: 10 }
3102 start: { line: 1, column: 11 },
3103 end: { line: 1, column: 21 }
3108 '42 /*the*/ /*answer*/': {
3111 type: 'ExpressionStatement',
3132 '/* multiline\ncomment\nshould\nbe\nignored */ 42': {
3133 type: 'ExpressionStatement',
3140 start: { line: 5, column: 11 },
3141 end: { line: 5, column: 13 }
3146 start: { line: 5, column: 11 },
3147 end: { line: 5, column: 13 }
3154 type: 'ExpressionStatement',
3161 start: { line: 2, column: 4 },
3162 end: { line: 2, column: 6 }
3167 start: { line: 2, column: 4 },
3168 end: { line: 2, column: 6 }
3173 start: { line: 2, column: 4 },
3174 end: { line: 2, column: 6 }
3181 start: { line: 1, column: 0 },
3182 end: { line: 2, column: 3 }
3190 type: 'ExpressionStatement',
3197 start: { line: 2, column: 4 },
3198 end: { line: 2, column: 6 }
3203 start: { line: 2, column: 4 },
3204 end: { line: 2, column: 6 }
3209 start: { line: 2, column: 4 },
3210 end: { line: 2, column: 6 }
3217 start: { line: 1, column: 0 },
3218 end: { line: 2, column: 3 }
3226 type: 'ExpressionStatement',
3233 start: { line: 2, column: 4 },
3234 end: { line: 2, column: 6 }
3239 start: { line: 2, column: 4 },
3240 end: { line: 2, column: 6 }
3245 start: { line: 2, column: 4 },
3246 end: { line: 2, column: 6 }
3253 start: { line: 1, column: 0 },
3254 end: { line: 2, column: 3 }
3262 type: 'ExpressionStatement',
3268 start: { line: 2, column: 4 },
3269 end: { line: 2, column: 6 }
3273 start: { line: 2, column: 4 },
3274 end: { line: 2, column: 6 }
3278 start: { line: 2, column: 4 },
3279 end: { line: 2, column: 6 }
3285 start: { line: 1, column: 0 },
3286 end: { line: 2, column: 3 }
3291 '// line comment\n42': {
3292 type: 'ExpressionStatement',
3299 start: { line: 2, column: 0 },
3300 end: { line: 2, column: 2 }
3305 start: { line: 2, column: 0 },
3306 end: { line: 2, column: 2 }
3310 '42 // line comment': {
3313 type: 'ExpressionStatement',
3320 start: { line: 1, column: 0 },
3321 end: { line: 1, column: 2 }
3326 start: { line: 1, column: 0 },
3327 end: { line: 1, column: 18 }
3332 start: { line: 1, column: 0 },
3333 end: { line: 1, column: 18 }
3337 value: ' line comment',
3340 start: { line: 1, column: 3 },
3341 end: { line: 1, column: 18 }
3346 '// Hello, world!\n42': {
3349 type: 'ExpressionStatement',
3356 start: { line: 2, column: 0 },
3357 end: { line: 2, column: 2 }
3362 start: { line: 2, column: 0 },
3363 end: { line: 2, column: 2 }
3368 start: { line: 2, column: 0 },
3369 end: { line: 2, column: 2 }
3373 value: ' Hello, world!',
3376 start: { line: 1, column: 0 },
3377 end: { line: 1, column: 16 }
3382 '// Hello, world!\n': {
3387 start: { line: 2, column: 0 },
3388 end: { line: 2, column: 0 }
3392 value: ' Hello, world!',
3395 start: { line: 1, column: 0 },
3396 end: { line: 1, column: 16 }
3401 '// Hallo, world!\n': {
3405 start: { line: 2, column: 0 },
3406 end: { line: 2, column: 0 }
3410 value: ' Hallo, world!',
3412 start: { line: 1, column: 0 },
3413 end: { line: 1, column: 16 }
3421 type: 'ExpressionStatement',
3428 start: { line: 2, column: 0 },
3429 end: { line: 2, column: 2 }
3434 start: { line: 2, column: 0 },
3435 end: { line: 2, column: 2 }
3440 start: { line: 2, column: 0 },
3441 end: { line: 2, column: 2 }
3448 start: { line: 1, column: 0 },
3449 end: { line: 1, column: 2 }
3459 start: { line: 1, column: 2 },
3460 end: { line: 1, column: 2 }
3467 start: { line: 1, column: 0 },
3468 end: { line: 1, column: 2 }
3487 type: 'ExpressionStatement',
3494 start: { line: 1, column: 4 },
3495 end: { line: 1, column: 6 }
3500 start: { line: 1, column: 4 },
3501 end: { line: 1, column: 6 }
3506 start: { line: 1, column: 4 },
3507 end: { line: 1, column: 6 }
3514 start: { line: 1, column: 0 },
3515 end: { line: 1, column: 4 }
3520 '// Hello, world!\n\n// Another hello\n42': {
3523 type: 'ExpressionStatement',
3530 start: { line: 4, column: 0 },
3531 end: { line: 4, column: 2 }
3536 start: { line: 4, column: 0 },
3537 end: { line: 4, column: 2 }
3542 start: { line: 4, column: 0 },
3543 end: { line: 4, column: 2 }
3547 value: ' Hello, world!',
3550 start: { line: 1, column: 0 },
3551 end: { line: 1, column: 16 }
3555 value: ' Another hello',
3558 start: { line: 3, column: 0 },
3559 end: { line: 3, column: 18 }
3564 'if (x) { // Some comment\ndoThat(); }': {
3567 type: 'IfStatement',
3573 start: { line: 1, column: 4 },
3574 end: { line: 1, column: 5 }
3578 type: 'BlockStatement',
3580 type: 'ExpressionStatement',
3582 type: 'CallExpression',
3588 start: { line: 2, column: 0 },
3589 end: { line: 2, column: 6 }
3595 start: { line: 2, column: 0 },
3596 end: { line: 2, column: 8 }
3601 start: { line: 2, column: 0 },
3602 end: { line: 2, column: 9 }
3607 start: { line: 1, column: 7 },
3608 end: { line: 2, column: 11 }
3614 start: { line: 1, column: 0 },
3615 end: { line: 2, column: 11 }
3620 start: { line: 1, column: 0 },
3621 end: { line: 2, column: 11 }
3625 value: ' Some comment',
3628 start: { line: 1, column: 9 },
3629 end: { line: 1, column: 24 }
3634 'switch (answer) { case 42: /* perfect */ bingo() }': {
3637 type: 'SwitchStatement',
3643 start: { line: 1, column: 8 },
3644 end: { line: 1, column: 14 }
3655 start: { line: 1, column: 23 },
3656 end: { line: 1, column: 25 }
3660 type: 'ExpressionStatement',
3662 type: 'CallExpression',
3668 start: { line: 1, column: 41 },
3669 end: { line: 1, column: 46 }
3675 start: { line: 1, column: 41 },
3676 end: { line: 1, column: 48 }
3681 start: { line: 1, column: 41 },
3682 end: { line: 1, column: 49 }
3687 start: { line: 1, column: 18 },
3688 end: { line: 1, column: 49 }
3693 start: { line: 1, column: 0 },
3694 end: { line: 1, column: 50 }
3699 start: { line: 1, column: 0 },
3700 end: { line: 1, column: 50 }
3707 start: { line: 1, column: 27 },
3708 end: { line: 1, column: 40 }
3715 'Numeric Literals': {
3718 type: 'ExpressionStatement',
3725 start: { line: 1, column: 0 },
3726 end: { line: 1, column: 1 }
3731 start: { line: 1, column: 0 },
3732 end: { line: 1, column: 1 }
3737 type: 'ExpressionStatement',
3744 start: { line: 1, column: 0 },
3745 end: { line: 1, column: 2 }
3750 start: { line: 1, column: 0 },
3751 end: { line: 1, column: 2 }
3758 type: 'ExpressionStatement',
3778 type: 'ExpressionStatement',
3784 start: { line: 1, column: 0 },
3785 end: { line: 1, column: 1 }
3789 start: { line: 1, column: 0 },
3790 end: { line: 1, column: 1 }
3794 start: { line: 1, column: 0 },
3795 end: { line: 1, column: 1 }
3801 start: { line: 1, column: 0 },
3802 end: { line: 1, column: 1 }
3808 type: 'ExpressionStatement',
3815 start: { line: 1, column: 0 },
3816 end: { line: 1, column: 3 }
3821 start: { line: 1, column: 0 },
3822 end: { line: 1, column: 3 }
3827 type: 'ExpressionStatement',
3834 start: { line: 1, column: 0 },
3835 end: { line: 1, column: 7 }
3840 start: { line: 1, column: 0 },
3841 end: { line: 1, column: 7 }
3846 type: 'ExpressionStatement',
3849 value: 6.02214179e+23,
3850 raw: '6.02214179e+23',
3853 start: { line: 1, column: 0 },
3854 end: { line: 1, column: 14 }
3859 start: { line: 1, column: 0 },
3860 end: { line: 1, column: 14 }
3864 '1.492417830e-10': {
3865 type: 'ExpressionStatement',
3868 value: 1.49241783e-10,
3869 raw: '1.492417830e-10',
3872 start: { line: 1, column: 0 },
3873 end: { line: 1, column: 15 }
3878 start: { line: 1, column: 0 },
3879 end: { line: 1, column: 15 }
3884 type: 'ExpressionStatement',
3891 start: { line: 1, column: 0 },
3892 end: { line: 1, column: 3 }
3897 start: { line: 1, column: 0 },
3898 end: { line: 1, column: 3 }
3903 type: 'ExpressionStatement',
3910 start: { line: 1, column: 0 },
3911 end: { line: 1, column: 6 }
3916 start: { line: 1, column: 0 },
3917 end: { line: 1, column: 6 }
3922 type: 'ExpressionStatement',
3929 start: { line: 1, column: 0 },
3930 end: { line: 1, column: 5 }
3935 start: { line: 1, column: 0 },
3936 end: { line: 1, column: 5 }
3941 type: 'ExpressionStatement',
3948 start: { line: 1, column: 0 },
3949 end: { line: 1, column: 5 }
3954 start: { line: 1, column: 0 },
3955 end: { line: 1, column: 5 }
3960 type: 'ExpressionStatement',
3967 start: { line: 1, column: 0 },
3968 end: { line: 1, column: 4 }
3973 start: { line: 1, column: 0 },
3974 end: { line: 1, column: 4 }
3979 type: 'ExpressionStatement',
3986 start: { line: 1, column: 0 },
3987 end: { line: 1, column: 4 }
3992 start: { line: 1, column: 0 },
3993 end: { line: 1, column: 4 }
3998 type: 'ExpressionStatement',
4005 start: { line: 1, column: 0 },
4006 end: { line: 1, column: 5 }
4011 start: { line: 1, column: 0 },
4012 end: { line: 1, column: 5 }
4017 type: 'ExpressionStatement',
4024 start: { line: 1, column: 0 },
4025 end: { line: 1, column: 4 }
4030 start: { line: 1, column: 0 },
4031 end: { line: 1, column: 4 }
4036 type: 'ExpressionStatement',
4043 start: { line: 1, column: 0 },
4044 end: { line: 1, column: 2 }
4049 start: { line: 1, column: 0 },
4050 end: { line: 1, column: 2 }
4055 type: 'ExpressionStatement',
4062 start: { line: 1, column: 0 },
4063 end: { line: 1, column: 3 }
4068 start: { line: 1, column: 0 },
4069 end: { line: 1, column: 3 }
4074 type: 'ExpressionStatement',
4081 start: { line: 1, column: 0 },
4082 end: { line: 1, column: 4 }
4087 start: { line: 1, column: 0 },
4088 end: { line: 1, column: 4 }
4094 'String Literals': {
4097 type: 'ExpressionStatement',
4104 start: { line: 1, column: 0 },
4105 end: { line: 1, column: 7 }
4110 start: { line: 1, column: 0 },
4111 end: { line: 1, column: 7 }
4115 '"\\n\\r\\t\\v\\b\\f\\\\\\\'\\"\\0"': {
4116 type: 'ExpressionStatement',
4119 value: '\n\r\t\x0B\b\f\\\'"\x00',
4120 raw: '"\\n\\r\\t\\v\\b\\f\\\\\\\'\\"\\0"',
4123 start: { line: 1, column: 0 },
4124 end: { line: 1, column: 22 }
4129 start: { line: 1, column: 0 },
4130 end: { line: 1, column: 22 }
4135 type: 'ExpressionStatement',
4142 start: { line: 1, column: 0 },
4143 end: { line: 1, column: 8 }
4148 start: { line: 1, column: 0 },
4149 end: { line: 1, column: 8 }
4154 type: 'ExpressionStatement',
4161 start: { line: 1, column: 0 },
4162 end: { line: 1, column: 6 }
4167 start: { line: 1, column: 0 },
4168 end: { line: 1, column: 6 }
4173 type: 'ExpressionStatement',
4180 start: { line: 1, column: 0 },
4181 end: { line: 1, column: 6 }
4186 start: { line: 1, column: 0 },
4187 end: { line: 1, column: 6 }
4192 type: 'ExpressionStatement',
4199 start: { line: 1, column: 0 },
4200 end: { line: 1, column: 5 }
4205 start: { line: 1, column: 0 },
4206 end: { line: 1, column: 5 }
4210 '"Hello\\nworld"': {
4211 type: 'ExpressionStatement',
4214 value: 'Hello\nworld',
4215 raw: '"Hello\\nworld"',
4218 start: { line: 1, column: 0 },
4219 end: { line: 1, column: 14 }
4224 start: { line: 1, column: 0 },
4225 end: { line: 1, column: 14 }
4229 '"Hello\\\nworld"': {
4230 type: 'ExpressionStatement',
4233 value: 'Helloworld',
4234 raw: '"Hello\\\nworld"',
4237 start: { line: 1, column: 0 },
4238 end: { line: 2, column: 14 }
4243 start: { line: 1, column: 0 },
4244 end: { line: 2, column: 14 }
4248 '"Hello\\02World"': {
4249 type: 'ExpressionStatement',
4252 value: 'Hello\u0002World',
4253 raw: '"Hello\\02World"',
4256 start: { line: 1, column: 0 },
4257 end: { line: 1, column: 15 }
4262 start: { line: 1, column: 0 },
4263 end: { line: 1, column: 15 }
4267 '"Hello\\012World"': {
4268 type: 'ExpressionStatement',
4271 value: 'Hello\u000AWorld',
4272 raw: '"Hello\\012World"',
4275 start: { line: 1, column: 0 },
4276 end: { line: 1, column: 16 }
4281 start: { line: 1, column: 0 },
4282 end: { line: 1, column: 16 }
4286 '"Hello\\122World"': {
4287 type: 'ExpressionStatement',
4290 value: 'Hello\122World',
4291 raw: '"Hello\\122World"',
4294 start: { line: 1, column: 0 },
4295 end: { line: 1, column: 16 }
4300 start: { line: 1, column: 0 },
4301 end: { line: 1, column: 16 }
4305 '"Hello\\0122World"': {
4306 type: 'ExpressionStatement',
4309 value: 'Hello\u000A2World',
4310 raw: '"Hello\\0122World"',
4313 start: { line: 1, column: 0 },
4314 end: { line: 1, column: 17 }
4319 start: { line: 1, column: 0 },
4320 end: { line: 1, column: 17 }
4324 '"Hello\\312World"': {
4325 type: 'ExpressionStatement',
4328 value: 'Hello\u00CAWorld',
4329 raw: '"Hello\\312World"',
4332 start: { line: 1, column: 0 },
4333 end: { line: 1, column: 16 }
4338 start: { line: 1, column: 0 },
4339 end: { line: 1, column: 16 }
4343 '"Hello\\412World"': {
4344 type: 'ExpressionStatement',
4347 value: 'Hello\412World',
4348 raw: '"Hello\\412World"',
4351 start: { line: 1, column: 0 },
4352 end: { line: 1, column: 16 }
4357 start: { line: 1, column: 0 },
4358 end: { line: 1, column: 16 }
4362 '"Hello\\812World"': {
4363 type: 'ExpressionStatement',
4366 value: 'Hello812World',
4367 raw: '"Hello\\812World"',
4370 start: { line: 1, column: 0 },
4371 end: { line: 1, column: 16 }
4376 start: { line: 1, column: 0 },
4377 end: { line: 1, column: 16 }
4381 '"Hello\\712World"': {
4382 type: 'ExpressionStatement',
4385 value: 'Hello\712World',
4386 raw: '"Hello\\712World"',
4389 start: { line: 1, column: 0 },
4390 end: { line: 1, column: 16 }
4395 start: { line: 1, column: 0 },
4396 end: { line: 1, column: 16 }
4400 '"Hello\\0World"': {
4401 type: 'ExpressionStatement',
4404 value: 'Hello\u0000World',
4405 raw: '"Hello\\0World"',
4408 start: { line: 1, column: 0 },
4409 end: { line: 1, column: 14 }
4414 start: { line: 1, column: 0 },
4415 end: { line: 1, column: 14 }
4419 '"Hello\\\r\nworld"': {
4420 type: 'ExpressionStatement',
4423 value: 'Helloworld',
4424 raw: '"Hello\\\r\nworld"',
4427 start: { line: 1, column: 0 },
4428 end: { line: 2, column: 15 }
4433 start: { line: 1, column: 0 },
4434 end: { line: 2, column: 15 }
4438 '"Hello\\1World"': {
4439 type: 'ExpressionStatement',
4442 value: 'Hello\u0001World',
4443 raw: '"Hello\\1World"',
4446 start: { line: 1, column: 0 },
4447 end: { line: 1, column: 14 }
4452 start: { line: 1, column: 0 },
4453 end: { line: 1, column: 14 }
4458 'Regular Expression Literals': {
4460 'var x = /[a-z]/i': {
4463 type: 'VariableDeclaration',
4465 type: 'VariableDeclarator',
4471 start: { line: 1, column: 4 },
4472 end: { line: 1, column: 5 }
4481 start: { line: 1, column: 8 },
4482 end: { line: 1, column: 16 }
4487 start: { line: 1, column: 4 },
4488 end: { line: 1, column: 16 }
4494 start: { line: 1, column: 0 },
4495 end: { line: 1, column: 16 }
4500 start: { line: 1, column: 0 },
4501 end: { line: 1, column: 16 }
4508 start: { line: 1, column: 0 },
4509 end: { line: 1, column: 3 }
4516 start: { line: 1, column: 4 },
4517 end: { line: 1, column: 5 }
4524 start: { line: 1, column: 6 },
4525 end: { line: 1, column: 7 }
4528 type: 'RegularExpression',
4532 start: { line: 1, column: 8 },
4533 end: { line: 1, column: 16 }
4538 'var x = /[x-z]/i': {
4541 type: 'VariableDeclaration',
4543 type: 'VariableDeclarator',
4574 type: 'RegularExpression',
4580 'var x = /[a-c]/i': {
4583 type: 'VariableDeclaration',
4585 type: 'VariableDeclarator',
4590 start: { line: 1, column: 4 },
4591 end: { line: 1, column: 5 }
4599 start: { line: 1, column: 8 },
4600 end: { line: 1, column: 16 }
4604 start: { line: 1, column: 4 },
4605 end: { line: 1, column: 16 }
4610 start: { line: 1, column: 0 },
4611 end: { line: 1, column: 16 }
4615 start: { line: 1, column: 0 },
4616 end: { line: 1, column: 16 }
4622 start: { line: 1, column: 0 },
4623 end: { line: 1, column: 3 }
4629 start: { line: 1, column: 4 },
4630 end: { line: 1, column: 5 }
4636 start: { line: 1, column: 6 },
4637 end: { line: 1, column: 7 }
4640 type: 'RegularExpression',
4643 start: { line: 1, column: 8 },
4644 end: { line: 1, column: 16 }
4649 'var x = /[P QR]/i': {
4652 type: 'VariableDeclaration',
4654 type: 'VariableDeclarator',
4660 start: { line: 1, column: 4 },
4661 end: { line: 1, column: 5 }
4670 start: { line: 1, column: 8 },
4671 end: { line: 1, column: 17 }
4676 start: { line: 1, column: 4 },
4677 end: { line: 1, column: 17 }
4683 start: { line: 1, column: 0 },
4684 end: { line: 1, column: 17 }
4689 start: { line: 1, column: 0 },
4690 end: { line: 1, column: 17 }
4697 start: { line: 1, column: 0 },
4698 end: { line: 1, column: 3 }
4705 start: { line: 1, column: 4 },
4706 end: { line: 1, column: 5 }
4713 start: { line: 1, column: 6 },
4714 end: { line: 1, column: 7 }
4717 type: 'RegularExpression',
4721 start: { line: 1, column: 8 },
4722 end: { line: 1, column: 17 }
4727 'var x = /[\\]/]/': {
4730 type: 'VariableDeclaration',
4732 type: 'VariableDeclarator',
4738 start: { line: 1, column: 4 },
4739 end: { line: 1, column: 5 }
4744 value: new RegExp('[\\]/]').toString(),
4748 start: { line: 1, column: 8 },
4749 end: { line: 1, column: 15 }
4754 start: { line: 1, column: 4 },
4755 end: { line: 1, column: 15 }
4761 start: { line: 1, column: 0 },
4762 end: { line: 1, column: 15 }
4767 start: { line: 1, column: 0 },
4768 end: { line: 1, column: 15 }
4775 start: { line: 1, column: 0 },
4776 end: { line: 1, column: 3 }
4783 start: { line: 1, column: 4 },
4784 end: { line: 1, column: 5 }
4791 start: { line: 1, column: 6 },
4792 end: { line: 1, column: 7 }
4795 type: 'RegularExpression',
4799 start: { line: 1, column: 8 },
4800 end: { line: 1, column: 15 }
4805 'var x = /foo\\/bar/': {
4808 type: 'VariableDeclaration',
4810 type: 'VariableDeclarator',
4816 start: { line: 1, column: 4 },
4817 end: { line: 1, column: 5 }
4822 value: '/foo\\/bar/',
4826 start: { line: 1, column: 8 },
4827 end: { line: 1, column: 18 }
4832 start: { line: 1, column: 4 },
4833 end: { line: 1, column: 18 }
4839 start: { line: 1, column: 0 },
4840 end: { line: 1, column: 18 }
4845 start: { line: 1, column: 0 },
4846 end: { line: 1, column: 18 }
4853 start: { line: 1, column: 0 },
4854 end: { line: 1, column: 3 }
4861 start: { line: 1, column: 4 },
4862 end: { line: 1, column: 5 }
4869 start: { line: 1, column: 6 },
4870 end: { line: 1, column: 7 }
4873 type: 'RegularExpression',
4874 value: '/foo\\/bar/',
4877 start: { line: 1, column: 8 },
4878 end: { line: 1, column: 18 }
4883 'var x = /=([^=\\s])+/g': {
4886 type: 'VariableDeclaration',
4888 type: 'VariableDeclarator',
4894 start: { line: 1, column: 4 },
4895 end: { line: 1, column: 5 }
4900 value: '/=([^=\\s])+/g',
4901 raw: '/=([^=\\s])+/g',
4904 start: { line: 1, column: 8 },
4905 end: { line: 1, column: 21 }
4910 start: { line: 1, column: 4 },
4911 end: { line: 1, column: 21 }
4917 start: { line: 1, column: 0 },
4918 end: { line: 1, column: 21 }
4923 start: { line: 1, column: 0 },
4924 end: { line: 1, column: 21 }
4931 start: { line: 1, column: 0 },
4932 end: { line: 1, column: 3 }
4939 start: { line: 1, column: 4 },
4940 end: { line: 1, column: 5 }
4947 start: { line: 1, column: 6 },
4948 end: { line: 1, column: 7 }
4951 type: 'RegularExpression',
4952 value: '/=([^=\\s])+/g',
4955 start: { line: 1, column: 8 },
4956 end: { line: 1, column: 21 }
4961 'var x = /[P QR]/\\u0067': {
4964 type: 'VariableDeclaration',
4966 type: 'VariableDeclarator',
4972 start: { line: 1, column: 4 },
4973 end: { line: 1, column: 5 }
4979 raw: '/[P QR]/\\u0067',
4982 start: { line: 1, column: 8 },
4983 end: { line: 1, column: 22 }
4988 start: { line: 1, column: 4 },
4989 end: { line: 1, column: 22 }
4995 start: { line: 1, column: 0 },
4996 end: { line: 1, column: 22 }
5001 start: { line: 1, column: 0 },
5002 end: { line: 1, column: 22 }
5009 start: { line: 1, column: 0 },
5010 end: { line: 1, column: 3 }
5017 start: { line: 1, column: 4 },
5018 end: { line: 1, column: 5 }
5025 start: { line: 1, column: 6 },
5026 end: { line: 1, column: 7 }
5029 type: 'RegularExpression',
5030 value: '/[P QR]/\\u0067',
5033 start: { line: 1, column: 8 },
5034 end: { line: 1, column: 22 }
5039 'var x = /[P QR]/\\g': {
5042 type: 'VariableDeclaration',
5044 type: 'VariableDeclarator',
5050 start: { line: 1, column: 4 },
5051 end: { line: 1, column: 5 }
5060 start: { line: 1, column: 8 },
5061 end: { line: 1, column: 18 }
5066 start: { line: 1, column: 4 },
5067 end: { line: 1, column: 18 }
5073 start: { line: 1, column: 0 },
5074 end: { line: 1, column: 18 }
5079 start: { line: 1, column: 0 },
5080 end: { line: 1, column: 18 }
5087 start: { line: 1, column: 0 },
5088 end: { line: 1, column: 3 }
5095 start: { line: 1, column: 4 },
5096 end: { line: 1, column: 5 }
5103 start: { line: 1, column: 6 },
5104 end: { line: 1, column: 7 }
5107 type: 'RegularExpression',
5108 value: '/[P QR]/\\g',
5111 start: { line: 1, column: 8 },
5112 end: { line: 1, column: 18 }
5119 'Left-Hand-Side Expression': {
5122 type: 'ExpressionStatement',
5124 type: 'NewExpression',
5130 start: { line: 1, column: 4 },
5131 end: { line: 1, column: 10 }
5137 start: { line: 1, column: 0 },
5138 end: { line: 1, column: 10 }
5143 start: { line: 1, column: 0 },
5144 end: { line: 1, column: 10 }
5149 type: 'ExpressionStatement',
5151 type: 'NewExpression',
5157 start: { line: 1, column: 4 },
5158 end: { line: 1, column: 10 }
5164 start: { line: 1, column: 0 },
5165 end: { line: 1, column: 12 }
5170 start: { line: 1, column: 0 },
5171 end: { line: 1, column: 12 }
5176 type: 'ExpressionStatement',
5178 type: 'NewExpression',
5180 type: 'NewExpression',
5186 start: { line: 1, column: 8 },
5187 end: { line: 1, column: 11 }
5193 start: { line: 1, column: 4 },
5194 end: { line: 1, column: 11 }
5200 start: { line: 1, column: 0 },
5201 end: { line: 1, column: 11 }
5206 start: { line: 1, column: 0 },
5207 end: { line: 1, column: 11 }
5212 type: 'ExpressionStatement',
5214 type: 'NewExpression',
5216 type: 'NewExpression',
5222 start: { line: 1, column: 8 },
5223 end: { line: 1, column: 11 }
5229 start: { line: 1, column: 4 },
5230 end: { line: 1, column: 13 }
5236 start: { line: 1, column: 0 },
5237 end: { line: 1, column: 13 }
5242 start: { line: 1, column: 0 },
5243 end: { line: 1, column: 13 }
5247 'new foo().bar()': {
5248 type: 'ExpressionStatement',
5250 type: 'CallExpression',
5252 type: 'MemberExpression',
5255 type: 'NewExpression',
5261 start: { line: 1, column: 4 },
5262 end: { line: 1, column: 7 }
5268 start: { line: 1, column: 0 },
5269 end: { line: 1, column: 9 }
5277 start: { line: 1, column: 10 },
5278 end: { line: 1, column: 13 }
5283 start: { line: 1, column: 0 },
5284 end: { line: 1, column: 13 }
5290 start: { line: 1, column: 0 },
5291 end: { line: 1, column: 15 }
5296 start: { line: 1, column: 0 },
5297 end: { line: 1, column: 15 }
5302 type: 'ExpressionStatement',
5304 type: 'NewExpression',
5306 type: 'MemberExpression',
5313 start: { line: 1, column: 4 },
5314 end: { line: 1, column: 7 }
5322 start: { line: 1, column: 8 },
5323 end: { line: 1, column: 11 }
5328 start: { line: 1, column: 4 },
5329 end: { line: 1, column: 12 }
5335 start: { line: 1, column: 0 },
5336 end: { line: 1, column: 12 }
5341 start: { line: 1, column: 0 },
5342 end: { line: 1, column: 12 }
5347 type: 'ExpressionStatement',
5349 type: 'NewExpression',
5351 type: 'MemberExpression',
5358 start: { line: 1, column: 4 },
5359 end: { line: 1, column: 7 }
5367 start: { line: 1, column: 8 },
5368 end: { line: 1, column: 11 }
5373 start: { line: 1, column: 4 },
5374 end: { line: 1, column: 11 }
5380 start: { line: 1, column: 0 },
5381 end: { line: 1, column: 13 }
5386 start: { line: 1, column: 0 },
5387 end: { line: 1, column: 13 }
5391 '( new foo).bar()': {
5392 type: 'ExpressionStatement',
5394 type: 'CallExpression',
5396 type: 'MemberExpression',
5399 type: 'NewExpression',
5405 start: { line: 1, column: 6 },
5406 end: { line: 1, column: 9 }
5412 start: { line: 1, column: 2 },
5413 end: { line: 1, column: 9 }
5421 start: { line: 1, column: 11 },
5422 end: { line: 1, column: 14 }
5427 start: { line: 1, column: 0 },
5428 end: { line: 1, column: 14 }
5434 start: { line: 1, column: 0 },
5435 end: { line: 1, column: 16 }
5440 start: { line: 1, column: 0 },
5441 end: { line: 1, column: 16 }
5446 type: 'ExpressionStatement',
5448 type: 'CallExpression',
5454 start: { line: 1, column: 0 },
5455 end: { line: 1, column: 3 }
5463 start: { line: 1, column: 4 },
5464 end: { line: 1, column: 7 }
5471 start: { line: 1, column: 9 },
5472 end: { line: 1, column: 12 }
5477 start: { line: 1, column: 0 },
5478 end: { line: 1, column: 13 }
5483 start: { line: 1, column: 0 },
5484 end: { line: 1, column: 13 }
5489 type: 'ExpressionStatement',
5491 type: 'CallExpression',
5497 start: { line: 1, column: 5 },
5498 end: { line: 1, column: 8 }
5504 start: { line: 1, column: 0 },
5505 end: { line: 1, column: 13 }
5510 start: { line: 1, column: 0 },
5511 end: { line: 1, column: 13 }
5515 'universe.milkyway': {
5516 type: 'ExpressionStatement',
5518 type: 'MemberExpression',
5525 start: { line: 1, column: 0 },
5526 end: { line: 1, column: 8 }
5534 start: { line: 1, column: 9 },
5535 end: { line: 1, column: 17 }
5540 start: { line: 1, column: 0 },
5541 end: { line: 1, column: 17 }
5546 start: { line: 1, column: 0 },
5547 end: { line: 1, column: 17 }
5551 'universe.milkyway.solarsystem': {
5552 type: 'ExpressionStatement',
5554 type: 'MemberExpression',
5557 type: 'MemberExpression',
5564 start: { line: 1, column: 0 },
5565 end: { line: 1, column: 8 }
5573 start: { line: 1, column: 9 },
5574 end: { line: 1, column: 17 }
5579 start: { line: 1, column: 0 },
5580 end: { line: 1, column: 17 }
5585 name: 'solarsystem',
5588 start: { line: 1, column: 18 },
5589 end: { line: 1, column: 29 }
5594 start: { line: 1, column: 0 },
5595 end: { line: 1, column: 29 }
5600 start: { line: 1, column: 0 },
5601 end: { line: 1, column: 29 }
5605 'universe.milkyway.solarsystem.Earth': {
5606 type: 'ExpressionStatement',
5608 type: 'MemberExpression',
5611 type: 'MemberExpression',
5614 type: 'MemberExpression',
5621 start: { line: 1, column: 0 },
5622 end: { line: 1, column: 8 }
5630 start: { line: 1, column: 9 },
5631 end: { line: 1, column: 17 }
5636 start: { line: 1, column: 0 },
5637 end: { line: 1, column: 17 }
5642 name: 'solarsystem',
5645 start: { line: 1, column: 18 },
5646 end: { line: 1, column: 29 }
5651 start: { line: 1, column: 0 },
5652 end: { line: 1, column: 29 }
5660 start: { line: 1, column: 30 },
5661 end: { line: 1, column: 35 }
5666 start: { line: 1, column: 0 },
5667 end: { line: 1, column: 35 }
5672 start: { line: 1, column: 0 },
5673 end: { line: 1, column: 35 }
5677 'universe[galaxyName, otherUselessName]': {
5678 type: 'ExpressionStatement',
5680 type: 'MemberExpression',
5687 start: { line: 1, column: 0 },
5688 end: { line: 1, column: 8 }
5692 type: 'SequenceExpression',
5698 start: { line: 1, column: 9 },
5699 end: { line: 1, column: 19 }
5703 name: 'otherUselessName',
5706 start: { line: 1, column: 21 },
5707 end: { line: 1, column: 37 }
5712 start: { line: 1, column: 9 },
5713 end: { line: 1, column: 37 }
5718 start: { line: 1, column: 0 },
5719 end: { line: 1, column: 38 }
5724 start: { line: 1, column: 0 },
5725 end: { line: 1, column: 38 }
5729 'universe[galaxyName]': {
5730 type: 'ExpressionStatement',
5732 type: 'MemberExpression',
5739 start: { line: 1, column: 0 },
5740 end: { line: 1, column: 8 }
5748 start: { line: 1, column: 9 },
5749 end: { line: 1, column: 19 }
5754 start: { line: 1, column: 0 },
5755 end: { line: 1, column: 20 }
5760 start: { line: 1, column: 0 },
5761 end: { line: 1, column: 20 }
5765 'universe[42].galaxies': {
5766 type: 'ExpressionStatement',
5768 type: 'MemberExpression',
5771 type: 'MemberExpression',
5778 start: { line: 1, column: 0 },
5779 end: { line: 1, column: 8 }
5788 start: { line: 1, column: 9 },
5789 end: { line: 1, column: 11 }
5794 start: { line: 1, column: 0 },
5795 end: { line: 1, column: 12 }
5803 start: { line: 1, column: 13 },
5804 end: { line: 1, column: 21 }
5809 start: { line: 1, column: 0 },
5810 end: { line: 1, column: 21 }
5815 start: { line: 1, column: 0 },
5816 end: { line: 1, column: 21 }
5820 'universe(42).galaxies': {
5821 type: 'ExpressionStatement',
5823 type: 'MemberExpression',
5826 type: 'CallExpression',
5832 start: { line: 1, column: 0 },
5833 end: { line: 1, column: 8 }
5842 start: { line: 1, column: 9 },
5843 end: { line: 1, column: 11 }
5848 start: { line: 1, column: 0 },
5849 end: { line: 1, column: 12 }
5857 start: { line: 1, column: 13 },
5858 end: { line: 1, column: 21 }
5863 start: { line: 1, column: 0 },
5864 end: { line: 1, column: 21 }
5869 start: { line: 1, column: 0 },
5870 end: { line: 1, column: 21 }
5874 'universe(42).galaxies(14, 3, 77).milkyway': {
5875 type: 'ExpressionStatement',
5877 type: 'MemberExpression',
5880 type: 'CallExpression',
5882 type: 'MemberExpression',
5885 type: 'CallExpression',
5891 start: { line: 1, column: 0 },
5892 end: { line: 1, column: 8 }
5901 start: { line: 1, column: 9 },
5902 end: { line: 1, column: 11 }
5907 start: { line: 1, column: 0 },
5908 end: { line: 1, column: 12 }
5916 start: { line: 1, column: 13 },
5917 end: { line: 1, column: 21 }
5922 start: { line: 1, column: 0 },
5923 end: { line: 1, column: 21 }
5932 start: { line: 1, column: 22 },
5933 end: { line: 1, column: 24 }
5941 start: { line: 1, column: 26 },
5942 end: { line: 1, column: 27 }
5950 start: { line: 1, column: 29 },
5951 end: { line: 1, column: 31 }
5956 start: { line: 1, column: 0 },
5957 end: { line: 1, column: 32 }
5965 start: { line: 1, column: 33 },
5966 end: { line: 1, column: 41 }
5971 start: { line: 1, column: 0 },
5972 end: { line: 1, column: 41 }
5977 start: { line: 1, column: 0 },
5978 end: { line: 1, column: 41 }
5982 'earth.asia.Indonesia.prepareForElection(2014)': {
5983 type: 'ExpressionStatement',
5985 type: 'CallExpression',
5987 type: 'MemberExpression',
5990 type: 'MemberExpression',
5993 type: 'MemberExpression',
6000 start: { line: 1, column: 0 },
6001 end: { line: 1, column: 5 }
6009 start: { line: 1, column: 6 },
6010 end: { line: 1, column: 10 }
6015 start: { line: 1, column: 0 },
6016 end: { line: 1, column: 10 }
6024 start: { line: 1, column: 11 },
6025 end: { line: 1, column: 20 }
6030 start: { line: 1, column: 0 },
6031 end: { line: 1, column: 20 }
6036 name: 'prepareForElection',
6039 start: { line: 1, column: 21 },
6040 end: { line: 1, column: 39 }
6045 start: { line: 1, column: 0 },
6046 end: { line: 1, column: 39 }
6055 start: { line: 1, column: 40 },
6056 end: { line: 1, column: 44 }
6061 start: { line: 1, column: 0 },
6062 end: { line: 1, column: 45 }
6067 start: { line: 1, column: 0 },
6068 end: { line: 1, column: 45 }
6073 type: 'ExpressionStatement',
6075 type: 'MemberExpression',
6082 start: { line: 1, column: 0 },
6083 end: { line: 1, column: 8 }
6091 start: { line: 1, column: 9 },
6092 end: { line: 1, column: 11 }
6097 start: { line: 1, column: 0 },
6098 end: { line: 1, column: 11 }
6103 start: { line: 1, column: 0 },
6104 end: { line: 1, column: 11 }
6109 type: 'ExpressionStatement',
6111 type: 'MemberExpression',
6118 start: { line: 1, column: 0 },
6119 end: { line: 1, column: 8 }
6127 start: { line: 1, column: 9 },
6128 end: { line: 1, column: 13 }
6133 start: { line: 1, column: 0 },
6134 end: { line: 1, column: 13 }
6139 start: { line: 1, column: 0 },
6140 end: { line: 1, column: 13 }
6145 type: 'ExpressionStatement',
6147 type: 'MemberExpression',
6154 start: { line: 1, column: 0 },
6155 end: { line: 1, column: 8 }
6163 start: { line: 1, column: 9 },
6164 end: { line: 1, column: 14 }
6169 start: { line: 1, column: 0 },
6170 end: { line: 1, column: 14 }
6175 start: { line: 1, column: 0 },
6176 end: { line: 1, column: 14 }
6181 type: 'ExpressionStatement',
6183 type: 'MemberExpression',
6190 start: { line: 1, column: 0 },
6191 end: { line: 1, column: 8 }
6199 start: { line: 1, column: 9 },
6200 end: { line: 1, column: 13 }
6205 start: { line: 1, column: 0 },
6206 end: { line: 1, column: 13 }
6211 start: { line: 1, column: 0 },
6212 end: { line: 1, column: 13 }
6218 'Postfix Expressions': {
6221 type: 'ExpressionStatement',
6223 type: 'UpdateExpression',
6230 start: { line: 1, column: 0 },
6231 end: { line: 1, column: 1 }
6237 start: { line: 1, column: 0 },
6238 end: { line: 1, column: 3 }
6243 start: { line: 1, column: 0 },
6244 end: { line: 1, column: 3 }
6249 type: 'ExpressionStatement',
6251 type: 'UpdateExpression',
6258 start: { line: 1, column: 0 },
6259 end: { line: 1, column: 1 }
6265 start: { line: 1, column: 0 },
6266 end: { line: 1, column: 3 }
6271 start: { line: 1, column: 0 },
6272 end: { line: 1, column: 3 }
6277 type: 'ExpressionStatement',
6279 type: 'UpdateExpression',
6286 start: { line: 1, column: 0 },
6287 end: { line: 1, column: 4 }
6293 start: { line: 1, column: 0 },
6294 end: { line: 1, column: 6 }
6299 start: { line: 1, column: 0 },
6300 end: { line: 1, column: 6 }
6305 type: 'ExpressionStatement',
6307 type: 'UpdateExpression',
6314 start: { line: 1, column: 0 },
6315 end: { line: 1, column: 4 }
6321 start: { line: 1, column: 0 },
6322 end: { line: 1, column: 6 }
6327 start: { line: 1, column: 0 },
6328 end: { line: 1, column: 6 }
6333 type: 'ExpressionStatement',
6335 type: 'UpdateExpression',
6342 start: { line: 1, column: 0 },
6343 end: { line: 1, column: 9 }
6349 start: { line: 1, column: 0 },
6350 end: { line: 1, column: 11 }
6355 start: { line: 1, column: 0 },
6356 end: { line: 1, column: 11 }
6361 type: 'ExpressionStatement',
6363 type: 'UpdateExpression',
6370 start: { line: 1, column: 0 },
6371 end: { line: 1, column: 9 }
6377 start: { line: 1, column: 0 },
6378 end: { line: 1, column: 11 }
6383 start: { line: 1, column: 0 },
6384 end: { line: 1, column: 11 }
6390 'Unary Operators': {
6393 type: 'ExpressionStatement',
6395 type: 'UpdateExpression',
6402 start: { line: 1, column: 2 },
6403 end: { line: 1, column: 3 }
6409 start: { line: 1, column: 0 },
6410 end: { line: 1, column: 3 }
6415 start: { line: 1, column: 0 },
6416 end: { line: 1, column: 3 }
6421 type: 'ExpressionStatement',
6423 type: 'UpdateExpression',
6430 start: { line: 1, column: 2 },
6431 end: { line: 1, column: 3 }
6437 start: { line: 1, column: 0 },
6438 end: { line: 1, column: 3 }
6443 start: { line: 1, column: 0 },
6444 end: { line: 1, column: 3 }
6449 type: 'ExpressionStatement',
6451 type: 'UpdateExpression',
6458 start: { line: 1, column: 2 },
6459 end: { line: 1, column: 6 }
6465 start: { line: 1, column: 0 },
6466 end: { line: 1, column: 6 }
6471 start: { line: 1, column: 0 },
6472 end: { line: 1, column: 6 }
6477 type: 'ExpressionStatement',
6479 type: 'UpdateExpression',
6486 start: { line: 1, column: 2 },
6487 end: { line: 1, column: 6 }
6493 start: { line: 1, column: 0 },
6494 end: { line: 1, column: 6 }
6499 start: { line: 1, column: 0 },
6500 end: { line: 1, column: 6 }
6505 type: 'ExpressionStatement',
6507 type: 'UpdateExpression',
6514 start: { line: 1, column: 2 },
6515 end: { line: 1, column: 11 }
6521 start: { line: 1, column: 0 },
6522 end: { line: 1, column: 11 }
6527 start: { line: 1, column: 0 },
6528 end: { line: 1, column: 11 }
6533 type: 'ExpressionStatement',
6535 type: 'UpdateExpression',
6542 start: { line: 1, column: 2 },
6543 end: { line: 1, column: 11 }
6549 start: { line: 1, column: 0 },
6550 end: { line: 1, column: 11 }
6555 start: { line: 1, column: 0 },
6556 end: { line: 1, column: 11 }
6561 type: 'ExpressionStatement',
6563 type: 'UnaryExpression',
6570 start: { line: 1, column: 1 },
6571 end: { line: 1, column: 2 }
6577 start: { line: 1, column: 0 },
6578 end: { line: 1, column: 2 }
6583 start: { line: 1, column: 0 },
6584 end: { line: 1, column: 2 }
6589 type: 'ExpressionStatement',
6591 type: 'UnaryExpression',
6598 start: { line: 1, column: 1 },
6599 end: { line: 1, column: 2 }
6605 start: { line: 1, column: 0 },
6606 end: { line: 1, column: 2 }
6611 start: { line: 1, column: 0 },
6612 end: { line: 1, column: 2 }
6617 type: 'ExpressionStatement',
6619 type: 'UnaryExpression',
6626 start: { line: 1, column: 1 },
6627 end: { line: 1, column: 2 }
6633 start: { line: 1, column: 0 },
6634 end: { line: 1, column: 2 }
6639 start: { line: 1, column: 0 },
6640 end: { line: 1, column: 2 }
6645 type: 'ExpressionStatement',
6647 type: 'UnaryExpression',
6654 start: { line: 1, column: 1 },
6655 end: { line: 1, column: 2 }
6661 start: { line: 1, column: 0 },
6662 end: { line: 1, column: 2 }
6667 start: { line: 1, column: 0 },
6668 end: { line: 1, column: 2 }
6673 type: 'ExpressionStatement',
6675 type: 'UnaryExpression',
6682 start: { line: 1, column: 5 },
6683 end: { line: 1, column: 6 }
6689 start: { line: 1, column: 0 },
6690 end: { line: 1, column: 6 }
6695 start: { line: 1, column: 0 },
6696 end: { line: 1, column: 6 }
6701 type: 'ExpressionStatement',
6703 type: 'UnaryExpression',
6710 start: { line: 1, column: 7 },
6711 end: { line: 1, column: 8 }
6717 start: { line: 1, column: 0 },
6718 end: { line: 1, column: 8 }
6723 start: { line: 1, column: 0 },
6724 end: { line: 1, column: 8 }
6729 type: 'ExpressionStatement',
6731 type: 'UnaryExpression',
6738 start: { line: 1, column: 7 },
6739 end: { line: 1, column: 8 }
6745 start: { line: 1, column: 0 },
6746 end: { line: 1, column: 8 }
6751 start: { line: 1, column: 0 },
6752 end: { line: 1, column: 8 }
6758 'Multiplicative Operators': {
6761 type: 'ExpressionStatement',
6763 type: 'BinaryExpression',
6770 start: { line: 1, column: 0 },
6771 end: { line: 1, column: 1 }
6779 start: { line: 1, column: 4 },
6780 end: { line: 1, column: 5 }
6785 start: { line: 1, column: 0 },
6786 end: { line: 1, column: 5 }
6791 start: { line: 1, column: 0 },
6792 end: { line: 1, column: 5 }
6797 type: 'ExpressionStatement',
6799 type: 'BinaryExpression',
6806 start: { line: 1, column: 0 },
6807 end: { line: 1, column: 1 }
6815 start: { line: 1, column: 4 },
6816 end: { line: 1, column: 5 }
6821 start: { line: 1, column: 0 },
6822 end: { line: 1, column: 5 }
6827 start: { line: 1, column: 0 },
6828 end: { line: 1, column: 5 }
6833 type: 'ExpressionStatement',
6835 type: 'BinaryExpression',
6842 start: { line: 1, column: 0 },
6843 end: { line: 1, column: 1 }
6851 start: { line: 1, column: 4 },
6852 end: { line: 1, column: 5 }
6857 start: { line: 1, column: 0 },
6858 end: { line: 1, column: 5 }
6863 start: { line: 1, column: 0 },
6864 end: { line: 1, column: 5 }
6870 'Additive Operators': {
6873 type: 'ExpressionStatement',
6875 type: 'BinaryExpression',
6882 start: { line: 1, column: 0 },
6883 end: { line: 1, column: 1 }
6891 start: { line: 1, column: 4 },
6892 end: { line: 1, column: 5 }
6897 start: { line: 1, column: 0 },
6898 end: { line: 1, column: 5 }
6903 start: { line: 1, column: 0 },
6904 end: { line: 1, column: 5 }
6909 type: 'ExpressionStatement',
6911 type: 'BinaryExpression',
6918 start: { line: 1, column: 0 },
6919 end: { line: 1, column: 1 }
6927 start: { line: 1, column: 4 },
6928 end: { line: 1, column: 5 }
6933 start: { line: 1, column: 0 },
6934 end: { line: 1, column: 5 }
6939 start: { line: 1, column: 0 },
6940 end: { line: 1, column: 5 }
6946 'Bitwise Shift Operator': {
6949 type: 'ExpressionStatement',
6951 type: 'BinaryExpression',
6958 start: { line: 1, column: 0 },
6959 end: { line: 1, column: 1 }
6967 start: { line: 1, column: 5 },
6968 end: { line: 1, column: 6 }
6973 start: { line: 1, column: 0 },
6974 end: { line: 1, column: 6 }
6979 start: { line: 1, column: 0 },
6980 end: { line: 1, column: 6 }
6985 type: 'ExpressionStatement',
6987 type: 'BinaryExpression',
6994 start: { line: 1, column: 0 },
6995 end: { line: 1, column: 1 }
7003 start: { line: 1, column: 5 },
7004 end: { line: 1, column: 6 }
7009 start: { line: 1, column: 0 },
7010 end: { line: 1, column: 6 }
7015 start: { line: 1, column: 0 },
7016 end: { line: 1, column: 6 }
7021 type: 'ExpressionStatement',
7023 type: 'BinaryExpression',
7030 start: { line: 1, column: 0 },
7031 end: { line: 1, column: 1 }
7039 start: { line: 1, column: 6 },
7040 end: { line: 1, column: 7 }
7045 start: { line: 1, column: 0 },
7046 end: { line: 1, column: 7 }
7051 start: { line: 1, column: 0 },
7052 end: { line: 1, column: 7 }
7058 'Relational Operators': {
7061 type: 'ExpressionStatement',
7063 type: 'BinaryExpression',
7070 start: { line: 1, column: 0 },
7071 end: { line: 1, column: 1 }
7079 start: { line: 1, column: 4 },
7080 end: { line: 1, column: 5 }
7085 start: { line: 1, column: 0 },
7086 end: { line: 1, column: 5 }
7091 start: { line: 1, column: 0 },
7092 end: { line: 1, column: 5 }
7097 type: 'ExpressionStatement',
7099 type: 'BinaryExpression',
7106 start: { line: 1, column: 0 },
7107 end: { line: 1, column: 1 }
7115 start: { line: 1, column: 4 },
7116 end: { line: 1, column: 5 }
7121 start: { line: 1, column: 0 },
7122 end: { line: 1, column: 5 }
7127 start: { line: 1, column: 0 },
7128 end: { line: 1, column: 5 }
7133 type: 'ExpressionStatement',
7135 type: 'BinaryExpression',
7142 start: { line: 1, column: 0 },
7143 end: { line: 1, column: 1 }
7151 start: { line: 1, column: 5 },
7152 end: { line: 1, column: 6 }
7157 start: { line: 1, column: 0 },
7158 end: { line: 1, column: 6 }
7163 start: { line: 1, column: 0 },
7164 end: { line: 1, column: 6 }
7169 type: 'ExpressionStatement',
7171 type: 'BinaryExpression',
7178 start: { line: 1, column: 0 },
7179 end: { line: 1, column: 1 }
7187 start: { line: 1, column: 5 },
7188 end: { line: 1, column: 6 }
7193 start: { line: 1, column: 0 },
7194 end: { line: 1, column: 6 }
7199 start: { line: 1, column: 0 },
7200 end: { line: 1, column: 6 }
7205 type: 'ExpressionStatement',
7207 type: 'BinaryExpression',
7214 start: { line: 1, column: 0 },
7215 end: { line: 1, column: 1 }
7223 start: { line: 1, column: 5 },
7224 end: { line: 1, column: 6 }
7229 start: { line: 1, column: 0 },
7230 end: { line: 1, column: 6 }
7235 start: { line: 1, column: 0 },
7236 end: { line: 1, column: 6 }
7241 type: 'ExpressionStatement',
7243 type: 'BinaryExpression',
7244 operator: 'instanceof',
7250 start: { line: 1, column: 0 },
7251 end: { line: 1, column: 1 }
7259 start: { line: 1, column: 13 },
7260 end: { line: 1, column: 14 }
7265 start: { line: 1, column: 0 },
7266 end: { line: 1, column: 14 }
7271 start: { line: 1, column: 0 },
7272 end: { line: 1, column: 14 }
7277 type: 'ExpressionStatement',
7279 type: 'BinaryExpression',
7282 type: 'BinaryExpression',
7289 start: { line: 1, column: 0 },
7290 end: { line: 1, column: 1 }
7298 start: { line: 1, column: 4 },
7299 end: { line: 1, column: 5 }
7304 start: { line: 1, column: 0 },
7305 end: { line: 1, column: 5 }
7313 start: { line: 1, column: 8 },
7314 end: { line: 1, column: 9 }
7319 start: { line: 1, column: 0 },
7320 end: { line: 1, column: 9 }
7325 start: { line: 1, column: 0 },
7326 end: { line: 1, column: 9 }
7332 'Equality Operators': {
7335 type: 'ExpressionStatement',
7337 type: 'BinaryExpression',
7344 start: { line: 1, column: 0 },
7345 end: { line: 1, column: 1 }
7353 start: { line: 1, column: 5 },
7354 end: { line: 1, column: 6 }
7359 start: { line: 1, column: 0 },
7360 end: { line: 1, column: 6 }
7365 start: { line: 1, column: 0 },
7366 end: { line: 1, column: 6 }
7371 type: 'ExpressionStatement',
7373 type: 'BinaryExpression',
7380 start: { line: 1, column: 0 },
7381 end: { line: 1, column: 1 }
7389 start: { line: 1, column: 5 },
7390 end: { line: 1, column: 6 }
7395 start: { line: 1, column: 0 },
7396 end: { line: 1, column: 6 }
7401 start: { line: 1, column: 0 },
7402 end: { line: 1, column: 6 }
7407 type: 'ExpressionStatement',
7409 type: 'BinaryExpression',
7416 start: { line: 1, column: 0 },
7417 end: { line: 1, column: 1 }
7425 start: { line: 1, column: 6 },
7426 end: { line: 1, column: 7 }
7431 start: { line: 1, column: 0 },
7432 end: { line: 1, column: 7 }
7437 start: { line: 1, column: 0 },
7438 end: { line: 1, column: 7 }
7443 type: 'ExpressionStatement',
7445 type: 'BinaryExpression',
7452 start: { line: 1, column: 0 },
7453 end: { line: 1, column: 1 }
7461 start: { line: 1, column: 6 },
7462 end: { line: 1, column: 7 }
7467 start: { line: 1, column: 0 },
7468 end: { line: 1, column: 7 }
7473 start: { line: 1, column: 0 },
7474 end: { line: 1, column: 7 }
7480 'Binary Bitwise Operators': {
7483 type: 'ExpressionStatement',
7485 type: 'BinaryExpression',
7492 start: { line: 1, column: 0 },
7493 end: { line: 1, column: 1 }
7501 start: { line: 1, column: 4 },
7502 end: { line: 1, column: 5 }
7507 start: { line: 1, column: 0 },
7508 end: { line: 1, column: 5 }
7513 start: { line: 1, column: 0 },
7514 end: { line: 1, column: 5 }
7519 type: 'ExpressionStatement',
7521 type: 'BinaryExpression',
7528 start: { line: 1, column: 0 },
7529 end: { line: 1, column: 1 }
7537 start: { line: 1, column: 4 },
7538 end: { line: 1, column: 5 }
7543 start: { line: 1, column: 0 },
7544 end: { line: 1, column: 5 }
7549 start: { line: 1, column: 0 },
7550 end: { line: 1, column: 5 }
7555 type: 'ExpressionStatement',
7557 type: 'BinaryExpression',
7564 start: { line: 1, column: 0 },
7565 end: { line: 1, column: 1 }
7573 start: { line: 1, column: 4 },
7574 end: { line: 1, column: 5 }
7579 start: { line: 1, column: 0 },
7580 end: { line: 1, column: 5 }
7585 start: { line: 1, column: 0 },
7586 end: { line: 1, column: 5 }
7592 'Binary Expressions': {
7595 type: 'ExpressionStatement',
7597 type: 'BinaryExpression',
7600 type: 'BinaryExpression',
7607 start: { line: 1, column: 0 },
7608 end: { line: 1, column: 1 }
7616 start: { line: 1, column: 4 },
7617 end: { line: 1, column: 5 }
7622 start: { line: 1, column: 0 },
7623 end: { line: 1, column: 5 }
7631 start: { line: 1, column: 8 },
7632 end: { line: 1, column: 9 }
7637 start: { line: 1, column: 0 },
7638 end: { line: 1, column: 9 }
7643 start: { line: 1, column: 0 },
7644 end: { line: 1, column: 9 }
7649 type: 'ExpressionStatement',
7651 type: 'BinaryExpression',
7654 type: 'BinaryExpression',
7661 start: { line: 1, column: 0 },
7662 end: { line: 1, column: 1 }
7670 start: { line: 1, column: 4 },
7671 end: { line: 1, column: 5 }
7676 start: { line: 1, column: 0 },
7677 end: { line: 1, column: 5 }
7685 start: { line: 1, column: 8 },
7686 end: { line: 1, column: 9 }
7691 start: { line: 1, column: 0 },
7692 end: { line: 1, column: 9 }
7697 start: { line: 1, column: 0 },
7698 end: { line: 1, column: 9 }
7703 type: 'ExpressionStatement',
7705 type: 'BinaryExpression',
7708 type: 'BinaryExpression',
7715 start: { line: 1, column: 0 },
7716 end: { line: 1, column: 1 }
7724 start: { line: 1, column: 4 },
7725 end: { line: 1, column: 5 }
7730 start: { line: 1, column: 0 },
7731 end: { line: 1, column: 5 }
7739 start: { line: 1, column: 8 },
7740 end: { line: 1, column: 9 }
7745 start: { line: 1, column: 0 },
7746 end: { line: 1, column: 9 }
7751 start: { line: 1, column: 0 },
7752 end: { line: 1, column: 9 }
7757 type: 'ExpressionStatement',
7759 type: 'BinaryExpression',
7762 type: 'BinaryExpression',
7769 start: { line: 1, column: 0 },
7770 end: { line: 1, column: 1 }
7778 start: { line: 1, column: 4 },
7779 end: { line: 1, column: 5 }
7784 start: { line: 1, column: 0 },
7785 end: { line: 1, column: 5 }
7793 start: { line: 1, column: 8 },
7794 end: { line: 1, column: 9 }
7799 start: { line: 1, column: 0 },
7800 end: { line: 1, column: 9 }
7805 start: { line: 1, column: 0 },
7806 end: { line: 1, column: 9 }
7811 type: 'ExpressionStatement',
7813 type: 'BinaryExpression',
7820 start: { line: 1, column: 0 },
7821 end: { line: 1, column: 1 }
7825 type: 'BinaryExpression',
7832 start: { line: 1, column: 4 },
7833 end: { line: 1, column: 5 }
7841 start: { line: 1, column: 8 },
7842 end: { line: 1, column: 9 }
7847 start: { line: 1, column: 4 },
7848 end: { line: 1, column: 9 }
7853 start: { line: 1, column: 0 },
7854 end: { line: 1, column: 9 }
7859 start: { line: 1, column: 0 },
7860 end: { line: 1, column: 9 }
7865 type: 'ExpressionStatement',
7867 type: 'BinaryExpression',
7874 start: { line: 1, column: 0 },
7875 end: { line: 1, column: 1 }
7879 type: 'BinaryExpression',
7886 start: { line: 1, column: 4 },
7887 end: { line: 1, column: 5 }
7895 start: { line: 1, column: 8 },
7896 end: { line: 1, column: 9 }
7901 start: { line: 1, column: 4 },
7902 end: { line: 1, column: 9 }
7907 start: { line: 1, column: 0 },
7908 end: { line: 1, column: 9 }
7913 start: { line: 1, column: 0 },
7914 end: { line: 1, column: 9 }
7919 type: 'ExpressionStatement',
7921 type: 'BinaryExpression',
7928 start: { line: 1, column: 0 },
7929 end: { line: 1, column: 1 }
7933 type: 'BinaryExpression',
7940 start: { line: 1, column: 4 },
7941 end: { line: 1, column: 5 }
7949 start: { line: 1, column: 8 },
7950 end: { line: 1, column: 9 }
7955 start: { line: 1, column: 4 },
7956 end: { line: 1, column: 9 }
7961 start: { line: 1, column: 0 },
7962 end: { line: 1, column: 9 }
7967 start: { line: 1, column: 0 },
7968 end: { line: 1, column: 9 }
7973 type: 'ExpressionStatement',
7975 type: 'BinaryExpression',
7978 type: 'BinaryExpression',
7985 start: { line: 1, column: 0 },
7986 end: { line: 1, column: 1 }
7994 start: { line: 1, column: 4 },
7995 end: { line: 1, column: 5 }
8000 start: { line: 1, column: 0 },
8001 end: { line: 1, column: 5 }
8009 start: { line: 1, column: 8 },
8010 end: { line: 1, column: 9 }
8015 start: { line: 1, column: 0 },
8016 end: { line: 1, column: 9 }
8021 start: { line: 1, column: 0 },
8022 end: { line: 1, column: 9 }
8027 type: 'ExpressionStatement',
8029 type: 'BinaryExpression',
8032 type: 'BinaryExpression',
8039 start: { line: 1, column: 0 },
8040 end: { line: 1, column: 1 }
8048 start: { line: 1, column: 4 },
8049 end: { line: 1, column: 5 }
8054 start: { line: 1, column: 0 },
8055 end: { line: 1, column: 5 }
8063 start: { line: 1, column: 8 },
8064 end: { line: 1, column: 9 }
8069 start: { line: 1, column: 0 },
8070 end: { line: 1, column: 9 }
8075 start: { line: 1, column: 0 },
8076 end: { line: 1, column: 9 }
8081 type: 'ExpressionStatement',
8083 type: 'BinaryExpression',
8086 type: 'BinaryExpression',
8093 start: { line: 1, column: 0 },
8094 end: { line: 1, column: 1 }
8102 start: { line: 1, column: 4 },
8103 end: { line: 1, column: 5 }
8108 start: { line: 1, column: 0 },
8109 end: { line: 1, column: 5 }
8117 start: { line: 1, column: 8 },
8118 end: { line: 1, column: 9 }
8123 start: { line: 1, column: 0 },
8124 end: { line: 1, column: 9 }
8129 start: { line: 1, column: 0 },
8130 end: { line: 1, column: 9 }
8135 type: 'ExpressionStatement',
8137 type: 'BinaryExpression',
8140 type: 'BinaryExpression',
8147 start: { line: 1, column: 0 },
8148 end: { line: 1, column: 1 }
8156 start: { line: 1, column: 4 },
8157 end: { line: 1, column: 5 }
8162 start: { line: 1, column: 0 },
8163 end: { line: 1, column: 5 }
8171 start: { line: 1, column: 8 },
8172 end: { line: 1, column: 9 }
8177 start: { line: 1, column: 0 },
8178 end: { line: 1, column: 9 }
8183 start: { line: 1, column: 0 },
8184 end: { line: 1, column: 9 }
8189 type: 'ExpressionStatement',
8191 type: 'BinaryExpression',
8194 type: 'BinaryExpression',
8201 start: { line: 1, column: 0 },
8202 end: { line: 1, column: 1 }
8210 start: { line: 1, column: 5 },
8211 end: { line: 1, column: 6 }
8216 start: { line: 1, column: 0 },
8217 end: { line: 1, column: 6 }
8225 start: { line: 1, column: 10 },
8226 end: { line: 1, column: 11 }
8231 start: { line: 1, column: 0 },
8232 end: { line: 1, column: 11 }
8237 start: { line: 1, column: 0 },
8238 end: { line: 1, column: 11 }
8243 type: 'ExpressionStatement',
8245 type: 'BinaryExpression',
8248 type: 'BinaryExpression',
8255 start: { line: 1, column: 0 },
8256 end: { line: 1, column: 1 }
8264 start: { line: 1, column: 4 },
8265 end: { line: 1, column: 5 }
8270 start: { line: 1, column: 0 },
8271 end: { line: 1, column: 5 }
8279 start: { line: 1, column: 8 },
8280 end: { line: 1, column: 9 }
8285 start: { line: 1, column: 0 },
8286 end: { line: 1, column: 9 }
8291 start: { line: 1, column: 0 },
8292 end: { line: 1, column: 9 }
8297 type: 'ExpressionStatement',
8299 type: 'BinaryExpression',
8302 type: 'BinaryExpression',
8309 start: { line: 1, column: 0 },
8310 end: { line: 1, column: 1 }
8318 start: { line: 1, column: 4 },
8319 end: { line: 1, column: 5 }
8324 start: { line: 1, column: 0 },
8325 end: { line: 1, column: 5 }
8333 start: { line: 1, column: 8 },
8334 end: { line: 1, column: 9 }
8339 start: { line: 1, column: 0 },
8340 end: { line: 1, column: 9 }
8345 start: { line: 1, column: 0 },
8346 end: { line: 1, column: 9 }
8351 type: 'ExpressionStatement',
8353 type: 'BinaryExpression',
8356 type: 'BinaryExpression',
8363 start: { line: 1, column: 0 },
8364 end: { line: 1, column: 1 }
8372 start: { line: 1, column: 4 },
8373 end: { line: 1, column: 5 }
8378 start: { line: 1, column: 0 },
8379 end: { line: 1, column: 5 }
8387 start: { line: 1, column: 8 },
8388 end: { line: 1, column: 9 }
8393 start: { line: 1, column: 0 },
8394 end: { line: 1, column: 9 }
8399 start: { line: 1, column: 0 },
8400 end: { line: 1, column: 9 }
8405 type: 'ExpressionStatement',
8407 type: 'BinaryExpression',
8410 type: 'BinaryExpression',
8417 start: { line: 1, column: 0 },
8418 end: { line: 1, column: 1 }
8426 start: { line: 1, column: 4 },
8427 end: { line: 1, column: 5 }
8432 start: { line: 1, column: 0 },
8433 end: { line: 1, column: 5 }
8441 start: { line: 1, column: 8 },
8442 end: { line: 1, column: 9 }
8447 start: { line: 1, column: 0 },
8448 end: { line: 1, column: 9 }
8453 start: { line: 1, column: 0 },
8454 end: { line: 1, column: 9 }
8459 type: 'ExpressionStatement',
8461 type: 'BinaryExpression',
8468 start: { line: 1, column: 0 },
8469 end: { line: 1, column: 1 }
8473 type: 'BinaryExpression',
8480 start: { line: 1, column: 4 },
8481 end: { line: 1, column: 5 }
8489 start: { line: 1, column: 8 },
8490 end: { line: 1, column: 9 }
8495 start: { line: 1, column: 4 },
8496 end: { line: 1, column: 9 }
8501 start: { line: 1, column: 0 },
8502 end: { line: 1, column: 9 }
8507 start: { line: 1, column: 0 },
8508 end: { line: 1, column: 9 }
8513 type: 'ExpressionStatement',
8515 type: 'BinaryExpression',
8522 start: { line: 1, column: 0 },
8523 end: { line: 1, column: 1 }
8527 type: 'BinaryExpression',
8534 start: { line: 1, column: 4 },
8535 end: { line: 1, column: 5 }
8543 start: { line: 1, column: 8 },
8544 end: { line: 1, column: 9 }
8549 start: { line: 1, column: 4 },
8550 end: { line: 1, column: 9 }
8555 start: { line: 1, column: 0 },
8556 end: { line: 1, column: 9 }
8561 start: { line: 1, column: 0 },
8562 end: { line: 1, column: 9 }
8568 'Binary Logical Operators': {
8571 type: 'ExpressionStatement',
8573 type: 'LogicalExpression',
8580 start: { line: 1, column: 0 },
8581 end: { line: 1, column: 1 }
8589 start: { line: 1, column: 5 },
8590 end: { line: 1, column: 6 }
8595 start: { line: 1, column: 0 },
8596 end: { line: 1, column: 6 }
8601 start: { line: 1, column: 0 },
8602 end: { line: 1, column: 6 }
8607 type: 'ExpressionStatement',
8609 type: 'LogicalExpression',
8616 start: { line: 1, column: 0 },
8617 end: { line: 1, column: 1 }
8625 start: { line: 1, column: 5 },
8626 end: { line: 1, column: 6 }
8631 start: { line: 1, column: 0 },
8632 end: { line: 1, column: 6 }
8637 start: { line: 1, column: 0 },
8638 end: { line: 1, column: 6 }
8643 type: 'ExpressionStatement',
8645 type: 'LogicalExpression',
8648 type: 'LogicalExpression',
8655 start: { line: 1, column: 0 },
8656 end: { line: 1, column: 1 }
8664 start: { line: 1, column: 5 },
8665 end: { line: 1, column: 6 }
8670 start: { line: 1, column: 0 },
8671 end: { line: 1, column: 6 }
8679 start: { line: 1, column: 10 },
8680 end: { line: 1, column: 11 }
8685 start: { line: 1, column: 0 },
8686 end: { line: 1, column: 11 }
8691 start: { line: 1, column: 0 },
8692 end: { line: 1, column: 11 }
8697 type: 'ExpressionStatement',
8699 type: 'LogicalExpression',
8702 type: 'LogicalExpression',
8709 start: { line: 1, column: 0 },
8710 end: { line: 1, column: 1 }
8718 start: { line: 1, column: 5 },
8719 end: { line: 1, column: 6 }
8724 start: { line: 1, column: 0 },
8725 end: { line: 1, column: 6 }
8733 start: { line: 1, column: 10 },
8734 end: { line: 1, column: 11 }
8739 start: { line: 1, column: 0 },
8740 end: { line: 1, column: 11 }
8745 start: { line: 1, column: 0 },
8746 end: { line: 1, column: 11 }
8751 type: 'ExpressionStatement',
8753 type: 'LogicalExpression',
8760 start: { line: 1, column: 0 },
8761 end: { line: 1, column: 1 }
8765 type: 'LogicalExpression',
8772 start: { line: 1, column: 5 },
8773 end: { line: 1, column: 6 }
8781 start: { line: 1, column: 10 },
8782 end: { line: 1, column: 11 }
8787 start: { line: 1, column: 5 },
8788 end: { line: 1, column: 11 }
8793 start: { line: 1, column: 0 },
8794 end: { line: 1, column: 11 }
8799 start: { line: 1, column: 0 },
8800 end: { line: 1, column: 11 }
8805 type: 'ExpressionStatement',
8807 type: 'LogicalExpression',
8814 start: { line: 1, column: 0 },
8815 end: { line: 1, column: 1 }
8819 type: 'BinaryExpression',
8826 start: { line: 1, column: 5 },
8827 end: { line: 1, column: 6 }
8835 start: { line: 1, column: 9 },
8836 end: { line: 1, column: 10 }
8841 start: { line: 1, column: 5 },
8842 end: { line: 1, column: 10 }
8847 start: { line: 1, column: 0 },
8848 end: { line: 1, column: 10 }
8853 start: { line: 1, column: 0 },
8854 end: { line: 1, column: 10 }
8860 'Conditional Operator': {
8863 type: 'ExpressionStatement',
8865 type: 'ConditionalExpression',
8871 start: { line: 1, column: 0 },
8872 end: { line: 1, column: 1 }
8881 start: { line: 1, column: 4 },
8882 end: { line: 1, column: 5 }
8891 start: { line: 1, column: 8 },
8892 end: { line: 1, column: 9 }
8897 start: { line: 1, column: 0 },
8898 end: { line: 1, column: 9 }
8903 start: { line: 1, column: 0 },
8904 end: { line: 1, column: 9 }
8909 type: 'ExpressionStatement',
8911 type: 'ConditionalExpression',
8913 type: 'LogicalExpression',
8920 start: { line: 1, column: 0 },
8921 end: { line: 1, column: 1 }
8929 start: { line: 1, column: 5 },
8930 end: { line: 1, column: 6 }
8935 start: { line: 1, column: 0 },
8936 end: { line: 1, column: 6 }
8945 start: { line: 1, column: 9 },
8946 end: { line: 1, column: 10 }
8955 start: { line: 1, column: 13 },
8956 end: { line: 1, column: 14 }
8961 start: { line: 1, column: 0 },
8962 end: { line: 1, column: 14 }
8967 start: { line: 1, column: 0 },
8968 end: { line: 1, column: 14 }
8974 'Assignment Operators': {
8977 type: 'ExpressionStatement',
8979 type: 'AssignmentExpression',
8986 start: { line: 1, column: 0 },
8987 end: { line: 1, column: 1 }
8996 start: { line: 1, column: 4 },
8997 end: { line: 1, column: 6 }
9002 start: { line: 1, column: 0 },
9003 end: { line: 1, column: 6 }
9008 start: { line: 1, column: 0 },
9009 end: { line: 1, column: 6 }
9014 type: 'ExpressionStatement',
9016 type: 'AssignmentExpression',
9023 start: { line: 1, column: 0 },
9024 end: { line: 1, column: 4 }
9033 start: { line: 1, column: 7 },
9034 end: { line: 1, column: 9 }
9039 start: { line: 1, column: 0 },
9040 end: { line: 1, column: 9 }
9045 start: { line: 1, column: 0 },
9046 end: { line: 1, column: 9 }
9051 type: 'ExpressionStatement',
9053 type: 'AssignmentExpression',
9060 start: { line: 1, column: 0 },
9061 end: { line: 1, column: 9 }
9070 start: { line: 1, column: 12 },
9071 end: { line: 1, column: 14 }
9076 start: { line: 1, column: 0 },
9077 end: { line: 1, column: 14 }
9082 start: { line: 1, column: 0 },
9083 end: { line: 1, column: 14 }
9088 type: 'ExpressionStatement',
9090 type: 'AssignmentExpression',
9097 start: { line: 1, column: 0 },
9098 end: { line: 1, column: 1 }
9107 start: { line: 1, column: 5 },
9108 end: { line: 1, column: 7 }
9113 start: { line: 1, column: 0 },
9114 end: { line: 1, column: 7 }
9119 start: { line: 1, column: 0 },
9120 end: { line: 1, column: 7 }
9125 type: 'ExpressionStatement',
9127 type: 'AssignmentExpression',
9134 start: { line: 1, column: 0 },
9135 end: { line: 1, column: 1 }
9144 start: { line: 1, column: 5 },
9145 end: { line: 1, column: 7 }
9150 start: { line: 1, column: 0 },
9151 end: { line: 1, column: 7 }
9156 start: { line: 1, column: 0 },
9157 end: { line: 1, column: 7 }
9162 type: 'ExpressionStatement',
9164 type: 'AssignmentExpression',
9171 start: { line: 1, column: 0 },
9172 end: { line: 1, column: 1 }
9181 start: { line: 1, column: 5 },
9182 end: { line: 1, column: 7 }
9187 start: { line: 1, column: 0 },
9188 end: { line: 1, column: 7 }
9193 start: { line: 1, column: 0 },
9194 end: { line: 1, column: 7 }
9199 type: 'ExpressionStatement',
9201 type: 'AssignmentExpression',
9208 start: { line: 1, column: 0 },
9209 end: { line: 1, column: 1 }
9218 start: { line: 1, column: 5 },
9219 end: { line: 1, column: 7 }
9224 start: { line: 1, column: 0 },
9225 end: { line: 1, column: 7 }
9230 start: { line: 1, column: 0 },
9231 end: { line: 1, column: 7 }
9236 type: 'ExpressionStatement',
9238 type: 'AssignmentExpression',
9245 start: { line: 1, column: 0 },
9246 end: { line: 1, column: 1 }
9255 start: { line: 1, column: 5 },
9256 end: { line: 1, column: 7 }
9261 start: { line: 1, column: 0 },
9262 end: { line: 1, column: 7 }
9267 start: { line: 1, column: 0 },
9268 end: { line: 1, column: 7 }
9273 type: 'ExpressionStatement',
9275 type: 'AssignmentExpression',
9282 start: { line: 1, column: 0 },
9283 end: { line: 1, column: 1 }
9292 start: { line: 1, column: 6 },
9293 end: { line: 1, column: 8 }
9298 start: { line: 1, column: 0 },
9299 end: { line: 1, column: 8 }
9304 start: { line: 1, column: 0 },
9305 end: { line: 1, column: 8 }
9310 type: 'ExpressionStatement',
9312 type: 'AssignmentExpression',
9319 start: { line: 1, column: 0 },
9320 end: { line: 1, column: 1 }
9329 start: { line: 1, column: 6 },
9330 end: { line: 1, column: 8 }
9335 start: { line: 1, column: 0 },
9336 end: { line: 1, column: 8 }
9341 start: { line: 1, column: 0 },
9342 end: { line: 1, column: 8 }
9347 type: 'ExpressionStatement',
9349 type: 'AssignmentExpression',
9356 start: { line: 1, column: 0 },
9357 end: { line: 1, column: 1 }
9366 start: { line: 1, column: 7 },
9367 end: { line: 1, column: 9 }
9372 start: { line: 1, column: 0 },
9373 end: { line: 1, column: 9 }
9378 start: { line: 1, column: 0 },
9379 end: { line: 1, column: 9 }
9384 type: 'ExpressionStatement',
9386 type: 'AssignmentExpression',
9393 start: { line: 1, column: 0 },
9394 end: { line: 1, column: 1 }
9403 start: { line: 1, column: 5 },
9404 end: { line: 1, column: 7 }
9409 start: { line: 1, column: 0 },
9410 end: { line: 1, column: 7 }
9415 start: { line: 1, column: 0 },
9416 end: { line: 1, column: 7 }
9421 type: 'ExpressionStatement',
9423 type: 'AssignmentExpression',
9430 start: { line: 1, column: 0 },
9431 end: { line: 1, column: 1 }
9440 start: { line: 1, column: 5 },
9441 end: { line: 1, column: 7 }
9446 start: { line: 1, column: 0 },
9447 end: { line: 1, column: 7 }
9452 start: { line: 1, column: 0 },
9453 end: { line: 1, column: 7 }
9458 type: 'ExpressionStatement',
9460 type: 'AssignmentExpression',
9467 start: { line: 1, column: 0 },
9468 end: { line: 1, column: 1 }
9477 start: { line: 1, column: 5 },
9478 end: { line: 1, column: 7 }
9483 start: { line: 1, column: 0 },
9484 end: { line: 1, column: 7 }
9489 start: { line: 1, column: 0 },
9490 end: { line: 1, column: 7 }
9499 type: 'BlockStatement',
9501 type: 'ExpressionStatement',
9507 start: { line: 1, column: 2 },
9508 end: { line: 1, column: 5 }
9513 start: { line: 1, column: 2 },
9514 end: { line: 1, column: 6 }
9519 start: { line: 1, column: 0 },
9520 end: { line: 1, column: 7 }
9524 '{ doThis(); doThat(); }': {
9525 type: 'BlockStatement',
9527 type: 'ExpressionStatement',
9529 type: 'CallExpression',
9535 start: { line: 1, column: 2 },
9536 end: { line: 1, column: 8 }
9542 start: { line: 1, column: 2 },
9543 end: { line: 1, column: 10 }
9548 start: { line: 1, column: 2 },
9549 end: { line: 1, column: 11 }
9552 type: 'ExpressionStatement',
9554 type: 'CallExpression',
9560 start: { line: 1, column: 12 },
9561 end: { line: 1, column: 18 }
9567 start: { line: 1, column: 12 },
9568 end: { line: 1, column: 20 }
9573 start: { line: 1, column: 12 },
9574 end: { line: 1, column: 21 }
9579 start: { line: 1, column: 0 },
9580 end: { line: 1, column: 23 }
9585 type: 'BlockStatement',
9589 start: { line: 1, column: 0 },
9590 end: { line: 1, column: 2 }
9596 'Variable Statement': {
9599 type: 'VariableDeclaration',
9601 type: 'VariableDeclarator',
9607 start: { line: 1, column: 4 },
9608 end: { line: 1, column: 5 }
9614 start: { line: 1, column: 4 },
9615 end: { line: 1, column: 5 }
9621 start: { line: 1, column: 0 },
9622 end: { line: 1, column: 5 }
9627 type: 'VariableDeclaration',
9629 type: 'VariableDeclarator',
9635 start: { line: 1, column: 4 },
9636 end: { line: 1, column: 5 }
9642 start: { line: 1, column: 4 },
9643 end: { line: 1, column: 5 }
9646 type: 'VariableDeclarator',
9652 start: { line: 1, column: 7 },
9653 end: { line: 1, column: 8 }
9659 start: { line: 1, column: 7 },
9660 end: { line: 1, column: 8 }
9666 start: { line: 1, column: 0 },
9667 end: { line: 1, column: 9 }
9672 type: 'VariableDeclaration',
9674 type: 'VariableDeclarator',
9680 start: { line: 1, column: 4 },
9681 end: { line: 1, column: 5 }
9690 start: { line: 1, column: 8 },
9691 end: { line: 1, column: 10 }
9696 start: { line: 1, column: 4 },
9697 end: { line: 1, column: 10 }
9703 start: { line: 1, column: 0 },
9704 end: { line: 1, column: 10 }
9708 'var eval = 42, arguments = 42': {
9709 type: 'VariableDeclaration',
9711 type: 'VariableDeclarator',
9717 start: { line: 1, column: 4 },
9718 end: { line: 1, column: 8 }
9727 start: { line: 1, column: 11 },
9728 end: { line: 1, column: 13 }
9733 start: { line: 1, column: 4 },
9734 end: { line: 1, column: 13 }
9737 type: 'VariableDeclarator',
9743 start: { line: 1, column: 15 },
9744 end: { line: 1, column: 24 }
9753 start: { line: 1, column: 27 },
9754 end: { line: 1, column: 29 }
9759 start: { line: 1, column: 15 },
9760 end: { line: 1, column: 29 }
9766 start: { line: 1, column: 0 },
9767 end: { line: 1, column: 29 }
9771 'var x = 14, y = 3, z = 1977': {
9772 type: 'VariableDeclaration',
9774 type: 'VariableDeclarator',
9780 start: { line: 1, column: 4 },
9781 end: { line: 1, column: 5 }
9790 start: { line: 1, column: 8 },
9791 end: { line: 1, column: 10 }
9796 start: { line: 1, column: 4 },
9797 end: { line: 1, column: 10 }
9800 type: 'VariableDeclarator',
9806 start: { line: 1, column: 12 },
9807 end: { line: 1, column: 13 }
9816 start: { line: 1, column: 16 },
9817 end: { line: 1, column: 17 }
9822 start: { line: 1, column: 12 },
9823 end: { line: 1, column: 17 }
9826 type: 'VariableDeclarator',
9832 start: { line: 1, column: 19 },
9833 end: { line: 1, column: 20 }
9842 start: { line: 1, column: 23 },
9843 end: { line: 1, column: 27 }
9848 start: { line: 1, column: 19 },
9849 end: { line: 1, column: 27 }
9855 start: { line: 1, column: 0 },
9856 end: { line: 1, column: 27 }
9860 'var implements, interface, package': {
9861 type: 'VariableDeclaration',
9863 type: 'VariableDeclarator',
9869 start: { line: 1, column: 4 },
9870 end: { line: 1, column: 14 }
9876 start: { line: 1, column: 4 },
9877 end: { line: 1, column: 14 }
9880 type: 'VariableDeclarator',
9886 start: { line: 1, column: 16 },
9887 end: { line: 1, column: 25 }
9893 start: { line: 1, column: 16 },
9894 end: { line: 1, column: 25 }
9897 type: 'VariableDeclarator',
9903 start: { line: 1, column: 27 },
9904 end: { line: 1, column: 34 }
9910 start: { line: 1, column: 27 },
9911 end: { line: 1, column: 34 }
9917 start: { line: 1, column: 0 },
9918 end: { line: 1, column: 34 }
9922 'var private, protected, public, static': {
9923 type: 'VariableDeclaration',
9925 type: 'VariableDeclarator',
9931 start: { line: 1, column: 4 },
9932 end: { line: 1, column: 11 }
9938 start: { line: 1, column: 4 },
9939 end: { line: 1, column: 11 }
9942 type: 'VariableDeclarator',
9948 start: { line: 1, column: 13 },
9949 end: { line: 1, column: 22 }
9955 start: { line: 1, column: 13 },
9956 end: { line: 1, column: 22 }
9959 type: 'VariableDeclarator',
9965 start: { line: 1, column: 24 },
9966 end: { line: 1, column: 30 }
9972 start: { line: 1, column: 24 },
9973 end: { line: 1, column: 30 }
9976 type: 'VariableDeclarator',
9982 start: { line: 1, column: 32 },
9983 end: { line: 1, column: 38 }
9989 start: { line: 1, column: 32 },
9990 end: { line: 1, column: 38 }
9996 start: { line: 1, column: 0 },
9997 end: { line: 1, column: 38 }
10006 type: 'VariableDeclaration',
10008 type: 'VariableDeclarator',
10010 type: 'Identifier',
10014 start: { line: 1, column: 4 },
10015 end: { line: 1, column: 5 }
10021 start: { line: 1, column: 4 },
10022 end: { line: 1, column: 5 }
10028 start: { line: 1, column: 0 },
10029 end: { line: 1, column: 5 }
10034 type: 'BlockStatement',
10036 type: 'VariableDeclaration',
10038 type: 'VariableDeclarator',
10040 type: 'Identifier',
10044 start: { line: 1, column: 6 },
10045 end: { line: 1, column: 7 }
10051 start: { line: 1, column: 6 },
10052 end: { line: 1, column: 7 }
10058 start: { line: 1, column: 2 },
10059 end: { line: 1, column: 8 }
10064 start: { line: 1, column: 0 },
10065 end: { line: 1, column: 9 }
10069 '{ let x = 42 }': {
10070 type: 'BlockStatement',
10072 type: 'VariableDeclaration',
10074 type: 'VariableDeclarator',
10076 type: 'Identifier',
10080 start: { line: 1, column: 6 },
10081 end: { line: 1, column: 7 }
10090 start: { line: 1, column: 10 },
10091 end: { line: 1, column: 12 }
10096 start: { line: 1, column: 6 },
10097 end: { line: 1, column: 12 }
10103 start: { line: 1, column: 2 },
10104 end: { line: 1, column: 13 }
10109 start: { line: 1, column: 0 },
10110 end: { line: 1, column: 14 }
10114 '{ let x = 14, y = 3, z = 1977 }': {
10115 type: 'BlockStatement',
10117 type: 'VariableDeclaration',
10119 type: 'VariableDeclarator',
10121 type: 'Identifier',
10125 start: { line: 1, column: 6 },
10126 end: { line: 1, column: 7 }
10135 start: { line: 1, column: 10 },
10136 end: { line: 1, column: 12 }
10141 start: { line: 1, column: 6 },
10142 end: { line: 1, column: 12 }
10145 type: 'VariableDeclarator',
10147 type: 'Identifier',
10151 start: { line: 1, column: 14 },
10152 end: { line: 1, column: 15 }
10161 start: { line: 1, column: 18 },
10162 end: { line: 1, column: 19 }
10167 start: { line: 1, column: 14 },
10168 end: { line: 1, column: 19 }
10171 type: 'VariableDeclarator',
10173 type: 'Identifier',
10177 start: { line: 1, column: 21 },
10178 end: { line: 1, column: 22 }
10187 start: { line: 1, column: 25 },
10188 end: { line: 1, column: 29 }
10193 start: { line: 1, column: 21 },
10194 end: { line: 1, column: 29 }
10200 start: { line: 1, column: 2 },
10201 end: { line: 1, column: 30 }
10206 start: { line: 1, column: 0 },
10207 end: { line: 1, column: 31 }
10213 'Const Statement': {
10216 type: 'VariableDeclaration',
10218 type: 'VariableDeclarator',
10220 type: 'Identifier',
10224 start: { line: 1, column: 6 },
10225 end: { line: 1, column: 7 }
10234 start: { line: 1, column: 10 },
10235 end: { line: 1, column: 12 }
10240 start: { line: 1, column: 6 },
10241 end: { line: 1, column: 12 }
10247 start: { line: 1, column: 0 },
10248 end: { line: 1, column: 12 }
10252 '{ const x = 42 }': {
10253 type: 'BlockStatement',
10255 type: 'VariableDeclaration',
10257 type: 'VariableDeclarator',
10259 type: 'Identifier',
10263 start: { line: 1, column: 8 },
10264 end: { line: 1, column: 9 }
10273 start: { line: 1, column: 12 },
10274 end: { line: 1, column: 14 }
10279 start: { line: 1, column: 8 },
10280 end: { line: 1, column: 14 }
10286 start: { line: 1, column: 2 },
10287 end: { line: 1, column: 15 }
10292 start: { line: 1, column: 0 },
10293 end: { line: 1, column: 16 }
10297 '{ const x = 14, y = 3, z = 1977 }': {
10298 type: 'BlockStatement',
10300 type: 'VariableDeclaration',
10302 type: 'VariableDeclarator',
10304 type: 'Identifier',
10308 start: { line: 1, column: 8 },
10309 end: { line: 1, column: 9 }
10318 start: { line: 1, column: 12 },
10319 end: { line: 1, column: 14 }
10324 start: { line: 1, column: 8 },
10325 end: { line: 1, column: 14 }
10328 type: 'VariableDeclarator',
10330 type: 'Identifier',
10334 start: { line: 1, column: 16 },
10335 end: { line: 1, column: 17 }
10344 start: { line: 1, column: 20 },
10345 end: { line: 1, column: 21 }
10350 start: { line: 1, column: 16 },
10351 end: { line: 1, column: 21 }
10354 type: 'VariableDeclarator',
10356 type: 'Identifier',
10360 start: { line: 1, column: 23 },
10361 end: { line: 1, column: 24 }
10370 start: { line: 1, column: 27 },
10371 end: { line: 1, column: 31 }
10376 start: { line: 1, column: 23 },
10377 end: { line: 1, column: 31 }
10383 start: { line: 1, column: 2 },
10384 end: { line: 1, column: 32 }
10389 start: { line: 1, column: 0 },
10390 end: { line: 1, column: 33 }
10396 'Empty Statement': {
10399 type: 'EmptyStatement',
10402 start: { line: 1, column: 0 },
10403 end: { line: 1, column: 1 }
10409 'Expression Statement': {
10412 type: 'ExpressionStatement',
10414 type: 'Identifier',
10418 start: { line: 1, column: 0 },
10419 end: { line: 1, column: 1 }
10424 start: { line: 1, column: 0 },
10425 end: { line: 1, column: 1 }
10430 type: 'ExpressionStatement',
10432 type: 'SequenceExpression',
10434 type: 'Identifier',
10438 start: { line: 1, column: 0 },
10439 end: { line: 1, column: 1 }
10442 type: 'Identifier',
10446 start: { line: 1, column: 3 },
10447 end: { line: 1, column: 4 }
10452 start: { line: 1, column: 0 },
10453 end: { line: 1, column: 4 }
10458 start: { line: 1, column: 0 },
10459 end: { line: 1, column: 4 }
10464 type: 'ExpressionStatement',
10466 type: 'Identifier',
10470 start: { line: 1, column: 0 },
10471 end: { line: 1, column: 6 }
10476 start: { line: 1, column: 0 },
10477 end: { line: 1, column: 6 }
10482 type: 'ExpressionStatement',
10484 type: 'Identifier',
10488 start: { line: 1, column: 0 },
10489 end: { line: 1, column: 7 }
10494 start: { line: 1, column: 0 },
10495 end: { line: 1, column: 7 }
10500 type: 'ExpressionStatement',
10502 type: 'Identifier',
10506 start: { line: 1, column: 0 },
10507 end: { line: 1, column: 3 }
10512 start: { line: 1, column: 0 },
10513 end: { line: 1, column: 3 }
10518 type: 'ExpressionStatement',
10520 type: 'Identifier',
10524 start: { line: 1, column: 0 },
10525 end: { line: 1, column: 3 }
10530 start: { line: 1, column: 0 },
10531 end: { line: 1, column: 3 }
10539 'if (morning) goodMorning()': {
10540 type: 'IfStatement',
10542 type: 'Identifier',
10546 start: { line: 1, column: 4 },
10547 end: { line: 1, column: 11 }
10551 type: 'ExpressionStatement',
10553 type: 'CallExpression',
10555 type: 'Identifier',
10556 name: 'goodMorning',
10559 start: { line: 1, column: 13 },
10560 end: { line: 1, column: 24 }
10566 start: { line: 1, column: 13 },
10567 end: { line: 1, column: 26 }
10572 start: { line: 1, column: 13 },
10573 end: { line: 1, column: 26 }
10579 start: { line: 1, column: 0 },
10580 end: { line: 1, column: 26 }
10584 'if (morning) (function(){})': {
10585 type: 'IfStatement',
10587 type: 'Identifier',
10591 start: { line: 1, column: 4 },
10592 end: { line: 1, column: 11 }
10596 type: 'ExpressionStatement',
10598 type: 'FunctionExpression',
10603 type: 'BlockStatement',
10607 start: { line: 1, column: 24 },
10608 end: { line: 1, column: 26 }
10616 start: { line: 1, column: 14 },
10617 end: { line: 1, column: 26 }
10622 start: { line: 1, column: 13 },
10623 end: { line: 1, column: 27 }
10629 start: { line: 1, column: 0 },
10630 end: { line: 1, column: 27 }
10634 'if (morning) var x = 0;': {
10635 type: 'IfStatement',
10637 type: 'Identifier',
10641 start: { line: 1, column: 4 },
10642 end: { line: 1, column: 11 }
10646 type: 'VariableDeclaration',
10648 type: 'VariableDeclarator',
10650 type: 'Identifier',
10654 start: { line: 1, column: 17 },
10655 end: { line: 1, column: 18 }
10664 start: { line: 1, column: 21 },
10665 end: { line: 1, column: 22 }
10670 start: { line: 1, column: 17 },
10671 end: { line: 1, column: 22 }
10677 start: { line: 1, column: 13 },
10678 end: { line: 1, column: 23 }
10684 start: { line: 1, column: 0 },
10685 end: { line: 1, column: 23 }
10689 'if (morning) function a(){}': {
10690 type: 'IfStatement',
10692 type: 'Identifier',
10696 start: { line: 1, column: 4 },
10697 end: { line: 1, column: 11 }
10701 type: 'FunctionDeclaration',
10703 type: 'Identifier',
10707 start: { line: 1, column: 22 },
10708 end: { line: 1, column: 23 }
10714 type: 'BlockStatement',
10718 start: { line: 1, column: 25 },
10719 end: { line: 1, column: 27 }
10727 start: { line: 1, column: 13 },
10728 end: { line: 1, column: 27 }
10734 start: { line: 1, column: 0 },
10735 end: { line: 1, column: 27 }
10739 'if (morning) goodMorning(); else goodDay()': {
10740 type: 'IfStatement',
10742 type: 'Identifier',
10746 start: { line: 1, column: 4 },
10747 end: { line: 1, column: 11 }
10751 type: 'ExpressionStatement',
10753 type: 'CallExpression',
10755 type: 'Identifier',
10756 name: 'goodMorning',
10759 start: { line: 1, column: 13 },
10760 end: { line: 1, column: 24 }
10766 start: { line: 1, column: 13 },
10767 end: { line: 1, column: 26 }
10772 start: { line: 1, column: 13 },
10773 end: { line: 1, column: 27 }
10777 type: 'ExpressionStatement',
10779 type: 'CallExpression',
10781 type: 'Identifier',
10785 start: { line: 1, column: 33 },
10786 end: { line: 1, column: 40 }
10792 start: { line: 1, column: 33 },
10793 end: { line: 1, column: 42 }
10798 start: { line: 1, column: 33 },
10799 end: { line: 1, column: 42 }
10804 start: { line: 1, column: 0 },
10805 end: { line: 1, column: 42 }
10811 'Iteration Statements': {
10813 'do keep(); while (true)': {
10814 type: 'DoWhileStatement',
10816 type: 'ExpressionStatement',
10818 type: 'CallExpression',
10820 type: 'Identifier',
10824 start: { line: 1, column: 3 },
10825 end: { line: 1, column: 7 }
10831 start: { line: 1, column: 3 },
10832 end: { line: 1, column: 9 }
10837 start: { line: 1, column: 3 },
10838 end: { line: 1, column: 10 }
10847 start: { line: 1, column: 18 },
10848 end: { line: 1, column: 22 }
10853 start: { line: 1, column: 0 },
10854 end: { line: 1, column: 23 }
10858 'do keep(); while (true);': {
10859 type: 'DoWhileStatement',
10861 type: 'ExpressionStatement',
10863 type: 'CallExpression',
10865 type: 'Identifier',
10869 start: { line: 1, column: 3 },
10870 end: { line: 1, column: 7 }
10876 start: { line: 1, column: 3 },
10877 end: { line: 1, column: 9 }
10882 start: { line: 1, column: 3 },
10883 end: { line: 1, column: 10 }
10892 start: { line: 1, column: 18 },
10893 end: { line: 1, column: 22 }
10898 start: { line: 1, column: 0 },
10899 end: { line: 1, column: 24 }
10903 'do { x++; y--; } while (x < 10)': {
10904 type: 'DoWhileStatement',
10906 type: 'BlockStatement',
10908 type: 'ExpressionStatement',
10910 type: 'UpdateExpression',
10913 type: 'Identifier',
10917 start: { line: 1, column: 5 },
10918 end: { line: 1, column: 6 }
10924 start: { line: 1, column: 5 },
10925 end: { line: 1, column: 8 }
10930 start: { line: 1, column: 5 },
10931 end: { line: 1, column: 9 }
10934 type: 'ExpressionStatement',
10936 type: 'UpdateExpression',
10939 type: 'Identifier',
10943 start: { line: 1, column: 10 },
10944 end: { line: 1, column: 11 }
10950 start: { line: 1, column: 10 },
10951 end: { line: 1, column: 13 }
10956 start: { line: 1, column: 10 },
10957 end: { line: 1, column: 14 }
10962 start: { line: 1, column: 3 },
10963 end: { line: 1, column: 16 }
10967 type: 'BinaryExpression',
10970 type: 'Identifier',
10974 start: { line: 1, column: 24 },
10975 end: { line: 1, column: 25 }
10984 start: { line: 1, column: 28 },
10985 end: { line: 1, column: 30 }
10990 start: { line: 1, column: 24 },
10991 end: { line: 1, column: 30 }
10996 start: { line: 1, column: 0 },
10997 end: { line: 1, column: 31 }
11001 '{ do { } while (false) false }': {
11002 type: 'BlockStatement',
11004 type: 'DoWhileStatement',
11006 type: 'BlockStatement',
11010 start: { line: 1, column: 5 },
11011 end: { line: 1, column: 8 }
11020 start: { line: 1, column: 16 },
11021 end: { line: 1, column: 21 }
11026 start: { line: 1, column: 2 },
11027 end: { line: 1, column: 22 }
11030 type: 'ExpressionStatement',
11037 start: { line: 1, column: 23 },
11038 end: { line: 1, column: 28 }
11043 start: { line: 1, column: 23 },
11044 end: { line: 1, column: 29 }
11049 start: { line: 1, column: 0 },
11050 end: { line: 1, column: 30 }
11054 'while (true) doSomething()': {
11055 type: 'WhileStatement',
11062 start: { line: 1, column: 7 },
11063 end: { line: 1, column: 11 }
11067 type: 'ExpressionStatement',
11069 type: 'CallExpression',
11071 type: 'Identifier',
11072 name: 'doSomething',
11075 start: { line: 1, column: 13 },
11076 end: { line: 1, column: 24 }
11082 start: { line: 1, column: 13 },
11083 end: { line: 1, column: 26 }
11088 start: { line: 1, column: 13 },
11089 end: { line: 1, column: 26 }
11094 start: { line: 1, column: 0 },
11095 end: { line: 1, column: 26 }
11099 'while (x < 10) { x++; y--; }': {
11100 type: 'WhileStatement',
11102 type: 'BinaryExpression',
11105 type: 'Identifier',
11109 start: { line: 1, column: 7 },
11110 end: { line: 1, column: 8 }
11119 start: { line: 1, column: 11 },
11120 end: { line: 1, column: 13 }
11125 start: { line: 1, column: 7 },
11126 end: { line: 1, column: 13 }
11130 type: 'BlockStatement',
11132 type: 'ExpressionStatement',
11134 type: 'UpdateExpression',
11137 type: 'Identifier',
11141 start: { line: 1, column: 17 },
11142 end: { line: 1, column: 18 }
11148 start: { line: 1, column: 17 },
11149 end: { line: 1, column: 20 }
11154 start: { line: 1, column: 17 },
11155 end: { line: 1, column: 21 }
11158 type: 'ExpressionStatement',
11160 type: 'UpdateExpression',
11163 type: 'Identifier',
11167 start: { line: 1, column: 22 },
11168 end: { line: 1, column: 23 }
11174 start: { line: 1, column: 22 },
11175 end: { line: 1, column: 25 }
11180 start: { line: 1, column: 22 },
11181 end: { line: 1, column: 26 }
11186 start: { line: 1, column: 15 },
11187 end: { line: 1, column: 28 }
11192 start: { line: 1, column: 0 },
11193 end: { line: 1, column: 28 }
11198 type: 'ForStatement',
11203 type: 'EmptyStatement',
11206 start: { line: 1, column: 7 },
11207 end: { line: 1, column: 8 }
11212 start: { line: 1, column: 0 },
11213 end: { line: 1, column: 8 }
11218 type: 'ForStatement',
11223 type: 'BlockStatement',
11227 start: { line: 1, column: 7 },
11228 end: { line: 1, column: 9 }
11233 start: { line: 1, column: 0 },
11234 end: { line: 1, column: 9 }
11239 type: 'ForStatement',
11241 type: 'AssignmentExpression',
11244 type: 'Identifier',
11248 start: { line: 1, column: 4 },
11249 end: { line: 1, column: 5 }
11258 start: { line: 1, column: 8 },
11259 end: { line: 1, column: 9 }
11264 start: { line: 1, column: 4 },
11265 end: { line: 1, column: 9 }
11271 type: 'EmptyStatement',
11274 start: { line: 1, column: 12 },
11275 end: { line: 1, column: 13 }
11280 start: { line: 1, column: 0 },
11281 end: { line: 1, column: 13 }
11285 'for(var x = 0;;);': {
11286 type: 'ForStatement',
11288 type: 'VariableDeclaration',
11290 type: 'VariableDeclarator',
11292 type: 'Identifier',
11296 start: { line: 1, column: 8 },
11297 end: { line: 1, column: 9 }
11306 start: { line: 1, column: 12 },
11307 end: { line: 1, column: 13 }
11312 start: { line: 1, column: 8 },
11313 end: { line: 1, column: 13 }
11319 start: { line: 1, column: 4 },
11320 end: { line: 1, column: 13 }
11326 type: 'EmptyStatement',
11329 start: { line: 1, column: 16 },
11330 end: { line: 1, column: 17 }
11335 start: { line: 1, column: 0 },
11336 end: { line: 1, column: 17 }
11340 'for(let x = 0;;);': {
11341 type: 'ForStatement',
11343 type: 'VariableDeclaration',
11345 type: 'VariableDeclarator',
11347 type: 'Identifier',
11351 start: { line: 1, column: 8 },
11352 end: { line: 1, column: 9 }
11361 start: { line: 1, column: 12 },
11362 end: { line: 1, column: 13 }
11367 start: { line: 1, column: 8 },
11368 end: { line: 1, column: 13 }
11374 start: { line: 1, column: 4 },
11375 end: { line: 1, column: 13 }
11381 type: 'EmptyStatement',
11384 start: { line: 1, column: 16 },
11385 end: { line: 1, column: 17 }
11390 start: { line: 1, column: 0 },
11391 end: { line: 1, column: 17 }
11395 'for(var x = 0, y = 1;;);': {
11396 type: 'ForStatement',
11398 type: 'VariableDeclaration',
11400 type: 'VariableDeclarator',
11402 type: 'Identifier',
11406 start: { line: 1, column: 8 },
11407 end: { line: 1, column: 9 }
11416 start: { line: 1, column: 12 },
11417 end: { line: 1, column: 13 }
11422 start: { line: 1, column: 8 },
11423 end: { line: 1, column: 13 }
11426 type: 'VariableDeclarator',
11428 type: 'Identifier',
11432 start: { line: 1, column: 15 },
11433 end: { line: 1, column: 16 }
11442 start: { line: 1, column: 19 },
11443 end: { line: 1, column: 20 }
11448 start: { line: 1, column: 15 },
11449 end: { line: 1, column: 20 }
11455 start: { line: 1, column: 4 },
11456 end: { line: 1, column: 20 }
11462 type: 'EmptyStatement',
11465 start: { line: 1, column: 23 },
11466 end: { line: 1, column: 24 }
11471 start: { line: 1, column: 0 },
11472 end: { line: 1, column: 24 }
11476 'for(x = 0; x < 42;);': {
11477 type: 'ForStatement',
11479 type: 'AssignmentExpression',
11482 type: 'Identifier',
11486 start: { line: 1, column: 4 },
11487 end: { line: 1, column: 5 }
11496 start: { line: 1, column: 8 },
11497 end: { line: 1, column: 9 }
11502 start: { line: 1, column: 4 },
11503 end: { line: 1, column: 9 }
11507 type: 'BinaryExpression',
11510 type: 'Identifier',
11514 start: { line: 1, column: 11 },
11515 end: { line: 1, column: 12 }
11524 start: { line: 1, column: 15 },
11525 end: { line: 1, column: 17 }
11530 start: { line: 1, column: 11 },
11531 end: { line: 1, column: 17 }
11536 type: 'EmptyStatement',
11539 start: { line: 1, column: 19 },
11540 end: { line: 1, column: 20 }
11545 start: { line: 1, column: 0 },
11546 end: { line: 1, column: 20 }
11550 'for(x = 0; x < 42; x++);': {
11551 type: 'ForStatement',
11553 type: 'AssignmentExpression',
11556 type: 'Identifier',
11560 start: { line: 1, column: 4 },
11561 end: { line: 1, column: 5 }
11570 start: { line: 1, column: 8 },
11571 end: { line: 1, column: 9 }
11576 start: { line: 1, column: 4 },
11577 end: { line: 1, column: 9 }
11581 type: 'BinaryExpression',
11584 type: 'Identifier',
11588 start: { line: 1, column: 11 },
11589 end: { line: 1, column: 12 }
11598 start: { line: 1, column: 15 },
11599 end: { line: 1, column: 17 }
11604 start: { line: 1, column: 11 },
11605 end: { line: 1, column: 17 }
11609 type: 'UpdateExpression',
11612 type: 'Identifier',
11616 start: { line: 1, column: 19 },
11617 end: { line: 1, column: 20 }
11623 start: { line: 1, column: 19 },
11624 end: { line: 1, column: 22 }
11628 type: 'EmptyStatement',
11631 start: { line: 1, column: 23 },
11632 end: { line: 1, column: 24 }
11637 start: { line: 1, column: 0 },
11638 end: { line: 1, column: 24 }
11642 'for(x = 0; x < 42; x++) process(x);': {
11643 type: 'ForStatement',
11645 type: 'AssignmentExpression',
11648 type: 'Identifier',
11652 start: { line: 1, column: 4 },
11653 end: { line: 1, column: 5 }
11662 start: { line: 1, column: 8 },
11663 end: { line: 1, column: 9 }
11668 start: { line: 1, column: 4 },
11669 end: { line: 1, column: 9 }
11673 type: 'BinaryExpression',
11676 type: 'Identifier',
11680 start: { line: 1, column: 11 },
11681 end: { line: 1, column: 12 }
11690 start: { line: 1, column: 15 },
11691 end: { line: 1, column: 17 }
11696 start: { line: 1, column: 11 },
11697 end: { line: 1, column: 17 }
11701 type: 'UpdateExpression',
11704 type: 'Identifier',
11708 start: { line: 1, column: 19 },
11709 end: { line: 1, column: 20 }
11715 start: { line: 1, column: 19 },
11716 end: { line: 1, column: 22 }
11720 type: 'ExpressionStatement',
11722 type: 'CallExpression',
11724 type: 'Identifier',
11728 start: { line: 1, column: 24 },
11729 end: { line: 1, column: 31 }
11733 type: 'Identifier',
11737 start: { line: 1, column: 32 },
11738 end: { line: 1, column: 33 }
11743 start: { line: 1, column: 24 },
11744 end: { line: 1, column: 34 }
11749 start: { line: 1, column: 24 },
11750 end: { line: 1, column: 35 }
11755 start: { line: 1, column: 0 },
11756 end: { line: 1, column: 35 }
11760 'for(x in list) process(x);': {
11761 type: 'ForInStatement',
11763 type: 'Identifier',
11767 start: { line: 1, column: 4 },
11768 end: { line: 1, column: 5 }
11772 type: 'Identifier',
11776 start: { line: 1, column: 9 },
11777 end: { line: 1, column: 13 }
11781 type: 'ExpressionStatement',
11783 type: 'CallExpression',
11785 type: 'Identifier',
11789 start: { line: 1, column: 15 },
11790 end: { line: 1, column: 22 }
11794 type: 'Identifier',
11798 start: { line: 1, column: 23 },
11799 end: { line: 1, column: 24 }
11804 start: { line: 1, column: 15 },
11805 end: { line: 1, column: 25 }
11810 start: { line: 1, column: 15 },
11811 end: { line: 1, column: 26 }
11817 start: { line: 1, column: 0 },
11818 end: { line: 1, column: 26 }
11822 'for (var x in list) process(x);': {
11823 type: 'ForInStatement',
11825 type: 'VariableDeclaration',
11827 type: 'VariableDeclarator',
11829 type: 'Identifier',
11833 start: { line: 1, column: 9 },
11834 end: { line: 1, column: 10 }
11840 start: { line: 1, column: 9 },
11841 end: { line: 1, column: 10 }
11847 start: { line: 1, column: 5 },
11848 end: { line: 1, column: 10 }
11852 type: 'Identifier',
11856 start: { line: 1, column: 14 },
11857 end: { line: 1, column: 18 }
11861 type: 'ExpressionStatement',
11863 type: 'CallExpression',
11865 type: 'Identifier',
11869 start: { line: 1, column: 20 },
11870 end: { line: 1, column: 27 }
11874 type: 'Identifier',
11878 start: { line: 1, column: 28 },
11879 end: { line: 1, column: 29 }
11884 start: { line: 1, column: 20 },
11885 end: { line: 1, column: 30 }
11890 start: { line: 1, column: 20 },
11891 end: { line: 1, column: 31 }
11897 start: { line: 1, column: 0 },
11898 end: { line: 1, column: 31 }
11902 'for (var x = 42 in list) process(x);': {
11903 type: 'ForInStatement',
11905 type: 'VariableDeclaration',
11907 type: 'VariableDeclarator',
11909 type: 'Identifier',
11913 start: { line: 1, column: 9 },
11914 end: { line: 1, column: 10 }
11923 start: { line: 1, column: 13 },
11924 end: { line: 1, column: 15 }
11929 start: { line: 1, column: 9 },
11930 end: { line: 1, column: 15 }
11936 start: { line: 1, column: 5 },
11937 end: { line: 1, column: 15 }
11941 type: 'Identifier',
11945 start: { line: 1, column: 19 },
11946 end: { line: 1, column: 23 }
11950 type: 'ExpressionStatement',
11952 type: 'CallExpression',
11954 type: 'Identifier',
11958 start: { line: 1, column: 25 },
11959 end: { line: 1, column: 32 }
11963 type: 'Identifier',
11967 start: { line: 1, column: 33 },
11968 end: { line: 1, column: 34 }
11973 start: { line: 1, column: 25 },
11974 end: { line: 1, column: 35 }
11979 start: { line: 1, column: 25 },
11980 end: { line: 1, column: 36 }
11986 start: { line: 1, column: 0 },
11987 end: { line: 1, column: 36 }
11991 'for (let x in list) process(x);': {
11992 type: 'ForInStatement',
11994 type: 'VariableDeclaration',
11996 type: 'VariableDeclarator',
11998 type: 'Identifier',
12002 start: { line: 1, column: 9 },
12003 end: { line: 1, column: 10 }
12009 start: { line: 1, column: 9 },
12010 end: { line: 1, column: 10 }
12016 start: { line: 1, column: 5 },
12017 end: { line: 1, column: 10 }
12021 type: 'Identifier',
12025 start: { line: 1, column: 14 },
12026 end: { line: 1, column: 18 }
12030 type: 'ExpressionStatement',
12032 type: 'CallExpression',
12034 type: 'Identifier',
12038 start: { line: 1, column: 20 },
12039 end: { line: 1, column: 27 }
12043 type: 'Identifier',
12047 start: { line: 1, column: 28 },
12048 end: { line: 1, column: 29 }
12053 start: { line: 1, column: 20 },
12054 end: { line: 1, column: 30 }
12059 start: { line: 1, column: 20 },
12060 end: { line: 1, column: 31 }
12066 start: { line: 1, column: 0 },
12067 end: { line: 1, column: 31 }
12071 'for (let x = 42 in list) process(x);': {
12072 type: 'ForInStatement',
12074 type: 'VariableDeclaration',
12076 type: 'VariableDeclarator',
12078 type: 'Identifier',
12082 start: { line: 1, column: 9 },
12083 end: { line: 1, column: 10 }
12092 start: { line: 1, column: 13 },
12093 end: { line: 1, column: 15 }
12098 start: { line: 1, column: 9 },
12099 end: { line: 1, column: 15 }
12105 start: { line: 1, column: 5 },
12106 end: { line: 1, column: 15 }
12110 type: 'Identifier',
12114 start: { line: 1, column: 19 },
12115 end: { line: 1, column: 23 }
12119 type: 'ExpressionStatement',
12121 type: 'CallExpression',
12123 type: 'Identifier',
12127 start: { line: 1, column: 25 },
12128 end: { line: 1, column: 32 }
12132 type: 'Identifier',
12136 start: { line: 1, column: 33 },
12137 end: { line: 1, column: 34 }
12142 start: { line: 1, column: 25 },
12143 end: { line: 1, column: 35 }
12148 start: { line: 1, column: 25 },
12149 end: { line: 1, column: 36 }
12155 start: { line: 1, column: 0 },
12156 end: { line: 1, column: 36 }
12160 'for (var i = function() { return 10 in [] } in list) process(x);': {
12161 type: 'ForInStatement',
12163 type: 'VariableDeclaration',
12165 type: 'VariableDeclarator',
12167 type: 'Identifier',
12171 start: { line: 1, column: 9 },
12172 end: { line: 1, column: 10 }
12176 type: 'FunctionExpression',
12181 type: 'BlockStatement',
12183 type: 'ReturnStatement',
12185 type: 'BinaryExpression',
12193 start: { line: 1, column: 33 },
12194 end: { line: 1, column: 35 }
12198 type: 'ArrayExpression',
12202 start: { line: 1, column: 39 },
12203 end: { line: 1, column: 41 }
12208 start: { line: 1, column: 33 },
12209 end: { line: 1, column: 41 }
12214 start: { line: 1, column: 26 },
12215 end: { line: 1, column: 42 }
12220 start: { line: 1, column: 24 },
12221 end: { line: 1, column: 43 }
12229 start: { line: 1, column: 13 },
12230 end: { line: 1, column: 43 }
12235 start: { line: 1, column: 9 },
12236 end: { line: 1, column: 43 }
12242 start: { line: 1, column: 5 },
12243 end: { line: 1, column: 43 }
12247 type: 'Identifier',
12251 start: { line: 1, column: 47 },
12252 end: { line: 1, column: 51 }
12256 type: 'ExpressionStatement',
12258 type: 'CallExpression',
12260 type: 'Identifier',
12264 start: { line: 1, column: 53 },
12265 end: { line: 1, column: 60 }
12269 type: 'Identifier',
12273 start: { line: 1, column: 61 },
12274 end: { line: 1, column: 62 }
12279 start: { line: 1, column: 53 },
12280 end: { line: 1, column: 63 }
12285 start: { line: 1, column: 53 },
12286 end: { line: 1, column: 64 }
12292 start: { line: 1, column: 0 },
12293 end: { line: 1, column: 64 }
12299 'continue statement': {
12301 'while (true) { continue; }': {
12302 type: 'WhileStatement',
12309 start: { line: 1, column: 7 },
12310 end: { line: 1, column: 11 }
12314 type: 'BlockStatement',
12317 type: 'ContinueStatement',
12321 start: { line: 1, column: 15 },
12322 end: { line: 1, column: 24 }
12328 start: { line: 1, column: 13 },
12329 end: { line: 1, column: 26 }
12334 start: { line: 1, column: 0 },
12335 end: { line: 1, column: 26 }
12339 'while (true) { continue }': {
12340 type: 'WhileStatement',
12347 start: { line: 1, column: 7 },
12348 end: { line: 1, column: 11 }
12352 type: 'BlockStatement',
12355 type: 'ContinueStatement',
12359 start: { line: 1, column: 15 },
12360 end: { line: 1, column: 24 }
12366 start: { line: 1, column: 13 },
12367 end: { line: 1, column: 25 }
12372 start: { line: 1, column: 0 },
12373 end: { line: 1, column: 25 }
12377 'done: while (true) { continue done }': {
12378 type: 'LabeledStatement',
12380 type: 'Identifier',
12384 start: { line: 1, column: 0 },
12385 end: { line: 1, column: 4 }
12389 type: 'WhileStatement',
12396 start: { line: 1, column: 13 },
12397 end: { line: 1, column: 17 }
12401 type: 'BlockStatement',
12404 type: 'ContinueStatement',
12406 type: 'Identifier',
12410 start: { line: 1, column: 30 },
12411 end: { line: 1, column: 34 }
12416 start: { line: 1, column: 21 },
12417 end: { line: 1, column: 35 }
12423 start: { line: 1, column: 19 },
12424 end: { line: 1, column: 36 }
12429 start: { line: 1, column: 6 },
12430 end: { line: 1, column: 36 }
12435 start: { line: 1, column: 0 },
12436 end: { line: 1, column: 36 }
12440 'done: while (true) { continue done; }': {
12441 type: 'LabeledStatement',
12443 type: 'Identifier',
12447 start: { line: 1, column: 0 },
12448 end: { line: 1, column: 4 }
12452 type: 'WhileStatement',
12459 start: { line: 1, column: 13 },
12460 end: { line: 1, column: 17 }
12464 type: 'BlockStatement',
12467 type: 'ContinueStatement',
12469 type: 'Identifier',
12473 start: { line: 1, column: 30 },
12474 end: { line: 1, column: 34 }
12479 start: { line: 1, column: 21 },
12480 end: { line: 1, column: 35 }
12486 start: { line: 1, column: 19 },
12487 end: { line: 1, column: 37 }
12492 start: { line: 1, column: 6 },
12493 end: { line: 1, column: 37 }
12498 start: { line: 1, column: 0 },
12499 end: { line: 1, column: 37 }
12505 'break statement': {
12507 'while (true) { break }': {
12508 type: 'WhileStatement',
12515 start: { line: 1, column: 7 },
12516 end: { line: 1, column: 11 }
12520 type: 'BlockStatement',
12523 type: 'BreakStatement',
12527 start: { line: 1, column: 15 },
12528 end: { line: 1, column: 21 }
12534 start: { line: 1, column: 13 },
12535 end: { line: 1, column: 22 }
12540 start: { line: 1, column: 0 },
12541 end: { line: 1, column: 22 }
12545 'done: while (true) { break done }': {
12546 type: 'LabeledStatement',
12548 type: 'Identifier',
12552 start: { line: 1, column: 0 },
12553 end: { line: 1, column: 4 }
12557 type: 'WhileStatement',
12564 start: { line: 1, column: 13 },
12565 end: { line: 1, column: 17 }
12569 type: 'BlockStatement',
12572 type: 'BreakStatement',
12574 type: 'Identifier',
12578 start: { line: 1, column: 27 },
12579 end: { line: 1, column: 31 }
12584 start: { line: 1, column: 21 },
12585 end: { line: 1, column: 32 }
12591 start: { line: 1, column: 19 },
12592 end: { line: 1, column: 33 }
12597 start: { line: 1, column: 6 },
12598 end: { line: 1, column: 33 }
12603 start: { line: 1, column: 0 },
12604 end: { line: 1, column: 33 }
12608 'done: while (true) { break done; }': {
12609 type: 'LabeledStatement',
12611 type: 'Identifier',
12615 start: { line: 1, column: 0 },
12616 end: { line: 1, column: 4 }
12620 type: 'WhileStatement',
12627 start: { line: 1, column: 13 },
12628 end: { line: 1, column: 17 }
12632 type: 'BlockStatement',
12635 type: 'BreakStatement',
12637 type: 'Identifier',
12641 start: { line: 1, column: 27 },
12642 end: { line: 1, column: 31 }
12647 start: { line: 1, column: 21 },
12648 end: { line: 1, column: 32 }
12654 start: { line: 1, column: 19 },
12655 end: { line: 1, column: 34 }
12660 start: { line: 1, column: 6 },
12661 end: { line: 1, column: 34 }
12666 start: { line: 1, column: 0 },
12667 end: { line: 1, column: 34 }
12673 'return statement': {
12675 '(function(){ return })': {
12676 type: 'ExpressionStatement',
12678 type: 'FunctionExpression',
12683 type: 'BlockStatement',
12686 type: 'ReturnStatement',
12690 start: { line: 1, column: 13 },
12691 end: { line: 1, column: 20 }
12697 start: { line: 1, column: 11 },
12698 end: { line: 1, column: 21 }
12706 start: { line: 1, column: 1 },
12707 end: { line: 1, column: 21 }
12712 start: { line: 1, column: 0 },
12713 end: { line: 1, column: 22 }
12717 '(function(){ return; })': {
12718 type: 'ExpressionStatement',
12720 type: 'FunctionExpression',
12725 type: 'BlockStatement',
12728 type: 'ReturnStatement',
12732 start: { line: 1, column: 13 },
12733 end: { line: 1, column: 20 }
12739 start: { line: 1, column: 11 },
12740 end: { line: 1, column: 22 }
12748 start: { line: 1, column: 1 },
12749 end: { line: 1, column: 22 }
12754 start: { line: 1, column: 0 },
12755 end: { line: 1, column: 23 }
12759 '(function(){ return x; })': {
12760 type: 'ExpressionStatement',
12762 type: 'FunctionExpression',
12767 type: 'BlockStatement',
12770 type: 'ReturnStatement',
12772 type: 'Identifier',
12776 start: { line: 1, column: 20 },
12777 end: { line: 1, column: 21 }
12782 start: { line: 1, column: 13 },
12783 end: { line: 1, column: 22 }
12789 start: { line: 1, column: 11 },
12790 end: { line: 1, column: 24 }
12798 start: { line: 1, column: 1 },
12799 end: { line: 1, column: 24 }
12804 start: { line: 1, column: 0 },
12805 end: { line: 1, column: 25 }
12809 '(function(){ return x * y })': {
12810 type: 'ExpressionStatement',
12812 type: 'FunctionExpression',
12817 type: 'BlockStatement',
12820 type: 'ReturnStatement',
12822 type: 'BinaryExpression',
12825 type: 'Identifier',
12829 start: { line: 1, column: 20 },
12830 end: { line: 1, column: 21 }
12834 type: 'Identifier',
12838 start: { line: 1, column: 24 },
12839 end: { line: 1, column: 25 }
12844 start: { line: 1, column: 20 },
12845 end: { line: 1, column: 25 }
12850 start: { line: 1, column: 13 },
12851 end: { line: 1, column: 26 }
12857 start: { line: 1, column: 11 },
12858 end: { line: 1, column: 27 }
12866 start: { line: 1, column: 1 },
12867 end: { line: 1, column: 27 }
12872 start: { line: 1, column: 0 },
12873 end: { line: 1, column: 28 }
12878 'with statement': {
12880 'with (x) foo = bar': {
12881 type: 'WithStatement',
12883 type: 'Identifier',
12887 start: { line: 1, column: 6 },
12888 end: { line: 1, column: 7 }
12892 type: 'ExpressionStatement',
12894 type: 'AssignmentExpression',
12897 type: 'Identifier',
12901 start: { line: 1, column: 9 },
12902 end: { line: 1, column: 12 }
12906 type: 'Identifier',
12910 start: { line: 1, column: 15 },
12911 end: { line: 1, column: 18 }
12916 start: { line: 1, column: 9 },
12917 end: { line: 1, column: 18 }
12922 start: { line: 1, column: 9 },
12923 end: { line: 1, column: 18 }
12928 start: { line: 1, column: 0 },
12929 end: { line: 1, column: 18 }
12933 'with (x) foo = bar;': {
12934 type: 'WithStatement',
12936 type: 'Identifier',
12940 start: { line: 1, column: 6 },
12941 end: { line: 1, column: 7 }
12945 type: 'ExpressionStatement',
12947 type: 'AssignmentExpression',
12950 type: 'Identifier',
12954 start: { line: 1, column: 9 },
12955 end: { line: 1, column: 12 }
12959 type: 'Identifier',
12963 start: { line: 1, column: 15 },
12964 end: { line: 1, column: 18 }
12969 start: { line: 1, column: 9 },
12970 end: { line: 1, column: 18 }
12975 start: { line: 1, column: 9 },
12976 end: { line: 1, column: 19 }
12981 start: { line: 1, column: 0 },
12982 end: { line: 1, column: 19 }
12986 'with (x) { foo = bar }': {
12987 type: 'WithStatement',
12989 type: 'Identifier',
12993 start: { line: 1, column: 6 },
12994 end: { line: 1, column: 7 }
12998 type: 'BlockStatement',
13000 type: 'ExpressionStatement',
13002 type: 'AssignmentExpression',
13005 type: 'Identifier',
13009 start: { line: 1, column: 11 },
13010 end: { line: 1, column: 14 }
13014 type: 'Identifier',
13018 start: { line: 1, column: 17 },
13019 end: { line: 1, column: 20 }
13024 start: { line: 1, column: 11 },
13025 end: { line: 1, column: 20 }
13030 start: { line: 1, column: 11 },
13031 end: { line: 1, column: 21 }
13036 start: { line: 1, column: 9 },
13037 end: { line: 1, column: 22 }
13042 start: { line: 1, column: 0 },
13043 end: { line: 1, column: 22 }
13049 'switch statement': {
13052 type: 'SwitchStatement',
13054 type: 'Identifier',
13058 start: { line: 1, column: 8 },
13059 end: { line: 1, column: 9 }
13065 start: { line: 1, column: 0 },
13066 end: { line: 1, column: 13 }
13070 'switch (answer) { case 42: hi(); break; }': {
13071 type: 'SwitchStatement',
13073 type: 'Identifier',
13077 start: { line: 1, column: 8 },
13078 end: { line: 1, column: 14 }
13082 type: 'SwitchCase',
13089 start: { line: 1, column: 23 },
13090 end: { line: 1, column: 25 }
13094 type: 'ExpressionStatement',
13096 type: 'CallExpression',
13098 type: 'Identifier',
13102 start: { line: 1, column: 27 },
13103 end: { line: 1, column: 29 }
13109 start: { line: 1, column: 27 },
13110 end: { line: 1, column: 31 }
13115 start: { line: 1, column: 27 },
13116 end: { line: 1, column: 32 }
13119 type: 'BreakStatement',
13123 start: { line: 1, column: 33 },
13124 end: { line: 1, column: 39 }
13129 start: { line: 1, column: 18 },
13130 end: { line: 1, column: 39 }
13135 start: { line: 1, column: 0 },
13136 end: { line: 1, column: 41 }
13140 'switch (answer) { case 42: hi(); break; default: break }': {
13141 type: 'SwitchStatement',
13143 type: 'Identifier',
13147 start: { line: 1, column: 8 },
13148 end: { line: 1, column: 14 }
13152 type: 'SwitchCase',
13159 start: { line: 1, column: 23 },
13160 end: { line: 1, column: 25 }
13164 type: 'ExpressionStatement',
13166 type: 'CallExpression',
13168 type: 'Identifier',
13172 start: { line: 1, column: 27 },
13173 end: { line: 1, column: 29 }
13179 start: { line: 1, column: 27 },
13180 end: { line: 1, column: 31 }
13185 start: { line: 1, column: 27 },
13186 end: { line: 1, column: 32 }
13189 type: 'BreakStatement',
13193 start: { line: 1, column: 33 },
13194 end: { line: 1, column: 39 }
13199 start: { line: 1, column: 18 },
13200 end: { line: 1, column: 39 }
13203 type: 'SwitchCase',
13206 type: 'BreakStatement',
13210 start: { line: 1, column: 49 },
13211 end: { line: 1, column: 55 }
13216 start: { line: 1, column: 40 },
13217 end: { line: 1, column: 55 }
13222 start: { line: 1, column: 0 },
13223 end: { line: 1, column: 56 }
13229 'Labelled Statements': {
13231 'start: for (;;) break start': {
13232 type: 'LabeledStatement',
13234 type: 'Identifier',
13238 start: { line: 1, column: 0 },
13239 end: { line: 1, column: 5 }
13243 type: 'ForStatement',
13248 type: 'BreakStatement',
13250 type: 'Identifier',
13254 start: { line: 1, column: 22 },
13255 end: { line: 1, column: 27 }
13260 start: { line: 1, column: 16 },
13261 end: { line: 1, column: 27 }
13266 start: { line: 1, column: 7 },
13267 end: { line: 1, column: 27 }
13272 start: { line: 1, column: 0 },
13273 end: { line: 1, column: 27 }
13277 'start: while (true) break start': {
13278 type: 'LabeledStatement',
13280 type: 'Identifier',
13284 start: { line: 1, column: 0 },
13285 end: { line: 1, column: 5 }
13289 type: 'WhileStatement',
13296 start: { line: 1, column: 14 },
13297 end: { line: 1, column: 18 }
13301 type: 'BreakStatement',
13303 type: 'Identifier',
13307 start: { line: 1, column: 26 },
13308 end: { line: 1, column: 31 }
13313 start: { line: 1, column: 20 },
13314 end: { line: 1, column: 31 }
13319 start: { line: 1, column: 7 },
13320 end: { line: 1, column: 31 }
13325 start: { line: 1, column: 0 },
13326 end: { line: 1, column: 31 }
13332 'throw statement': {
13335 type: 'ThrowStatement',
13337 type: 'Identifier',
13341 start: { line: 1, column: 6 },
13342 end: { line: 1, column: 7 }
13347 start: { line: 1, column: 0 },
13348 end: { line: 1, column: 8 }
13353 type: 'ThrowStatement',
13355 type: 'BinaryExpression',
13358 type: 'Identifier',
13362 start: { line: 1, column: 6 },
13363 end: { line: 1, column: 7 }
13367 type: 'Identifier',
13371 start: { line: 1, column: 10 },
13372 end: { line: 1, column: 11 }
13377 start: { line: 1, column: 6 },
13378 end: { line: 1, column: 11 }
13383 start: { line: 1, column: 0 },
13384 end: { line: 1, column: 11 }
13388 'throw { message: "Error" }': {
13389 type: 'ThrowStatement',
13391 type: 'ObjectExpression',
13395 type: 'Identifier',
13399 start: { line: 1, column: 8 },
13400 end: { line: 1, column: 15 }
13409 start: { line: 1, column: 17 },
13410 end: { line: 1, column: 24 }
13416 start: { line: 1, column: 8 },
13417 end: { line: 1, column: 24 }
13422 start: { line: 1, column: 6 },
13423 end: { line: 1, column: 26 }
13428 start: { line: 1, column: 0 },
13429 end: { line: 1, column: 26 }
13437 'try { } catch (e) { }': {
13438 type: 'TryStatement',
13440 type: 'BlockStatement',
13444 start: { line: 1, column: 4 },
13445 end: { line: 1, column: 7 }
13448 guardedHandlers: [],
13450 type: 'CatchClause',
13452 type: 'Identifier',
13456 start: { line: 1, column: 15 },
13457 end: { line: 1, column: 16 }
13461 type: 'BlockStatement',
13465 start: { line: 1, column: 18 },
13466 end: { line: 1, column: 21 }
13471 start: { line: 1, column: 8 },
13472 end: { line: 1, column: 21 }
13478 start: { line: 1, column: 0 },
13479 end: { line: 1, column: 21 }
13483 'try { } catch (eval) { }': {
13484 type: 'TryStatement',
13486 type: 'BlockStatement',
13490 start: { line: 1, column: 4 },
13491 end: { line: 1, column: 7 }
13494 guardedHandlers: [],
13496 type: 'CatchClause',
13498 type: 'Identifier',
13502 start: { line: 1, column: 15 },
13503 end: { line: 1, column: 19 }
13507 type: 'BlockStatement',
13511 start: { line: 1, column: 21 },
13512 end: { line: 1, column: 24 }
13517 start: { line: 1, column: 8 },
13518 end: { line: 1, column: 24 }
13524 start: { line: 1, column: 0 },
13525 end: { line: 1, column: 24 }
13529 'try { } catch (arguments) { }': {
13530 type: 'TryStatement',
13532 type: 'BlockStatement',
13536 start: { line: 1, column: 4 },
13537 end: { line: 1, column: 7 }
13540 guardedHandlers: [],
13542 type: 'CatchClause',
13544 type: 'Identifier',
13548 start: { line: 1, column: 15 },
13549 end: { line: 1, column: 24 }
13553 type: 'BlockStatement',
13557 start: { line: 1, column: 26 },
13558 end: { line: 1, column: 29 }
13563 start: { line: 1, column: 8 },
13564 end: { line: 1, column: 29 }
13570 start: { line: 1, column: 0 },
13571 end: { line: 1, column: 29 }
13575 'try { } catch (e) { say(e) }': {
13576 type: 'TryStatement',
13578 type: 'BlockStatement',
13582 start: { line: 1, column: 4 },
13583 end: { line: 1, column: 7 }
13586 guardedHandlers: [],
13588 type: 'CatchClause',
13590 type: 'Identifier',
13594 start: { line: 1, column: 15 },
13595 end: { line: 1, column: 16 }
13599 type: 'BlockStatement',
13601 type: 'ExpressionStatement',
13603 type: 'CallExpression',
13605 type: 'Identifier',
13609 start: { line: 1, column: 20 },
13610 end: { line: 1, column: 23 }
13614 type: 'Identifier',
13618 start: { line: 1, column: 24 },
13619 end: { line: 1, column: 25 }
13624 start: { line: 1, column: 20 },
13625 end: { line: 1, column: 26 }
13630 start: { line: 1, column: 20 },
13631 end: { line: 1, column: 27 }
13636 start: { line: 1, column: 18 },
13637 end: { line: 1, column: 28 }
13642 start: { line: 1, column: 8 },
13643 end: { line: 1, column: 28 }
13649 start: { line: 1, column: 0 },
13650 end: { line: 1, column: 28 }
13654 'try { } finally { cleanup(stuff) }': {
13655 type: 'TryStatement',
13657 type: 'BlockStatement',
13661 start: { line: 1, column: 4 },
13662 end: { line: 1, column: 7 }
13665 guardedHandlers: [],
13668 type: 'BlockStatement',
13670 type: 'ExpressionStatement',
13672 type: 'CallExpression',
13674 type: 'Identifier',
13678 start: { line: 1, column: 18 },
13679 end: { line: 1, column: 25 }
13683 type: 'Identifier',
13687 start: { line: 1, column: 26 },
13688 end: { line: 1, column: 31 }
13693 start: { line: 1, column: 18 },
13694 end: { line: 1, column: 32 }
13699 start: { line: 1, column: 18 },
13700 end: { line: 1, column: 33 }
13705 start: { line: 1, column: 16 },
13706 end: { line: 1, column: 34 }
13711 start: { line: 1, column: 0 },
13712 end: { line: 1, column: 34 }
13716 'try { doThat(); } catch (e) { say(e) }': {
13717 type: 'TryStatement',
13719 type: 'BlockStatement',
13721 type: 'ExpressionStatement',
13723 type: 'CallExpression',
13725 type: 'Identifier',
13729 start: { line: 1, column: 6 },
13730 end: { line: 1, column: 12 }
13736 start: { line: 1, column: 6 },
13737 end: { line: 1, column: 14 }
13742 start: { line: 1, column: 6 },
13743 end: { line: 1, column: 15 }
13748 start: { line: 1, column: 4 },
13749 end: { line: 1, column: 17 }
13752 guardedHandlers: [],
13754 type: 'CatchClause',
13756 type: 'Identifier',
13760 start: { line: 1, column: 25 },
13761 end: { line: 1, column: 26 }
13765 type: 'BlockStatement',
13767 type: 'ExpressionStatement',
13769 type: 'CallExpression',
13771 type: 'Identifier',
13775 start: { line: 1, column: 30 },
13776 end: { line: 1, column: 33 }
13780 type: 'Identifier',
13784 start: { line: 1, column: 34 },
13785 end: { line: 1, column: 35 }
13790 start: { line: 1, column: 30 },
13791 end: { line: 1, column: 36 }
13796 start: { line: 1, column: 30 },
13797 end: { line: 1, column: 37 }
13802 start: { line: 1, column: 28 },
13803 end: { line: 1, column: 38 }
13808 start: { line: 1, column: 18 },
13809 end: { line: 1, column: 38 }
13815 start: { line: 1, column: 0 },
13816 end: { line: 1, column: 38 }
13820 'try { doThat(); } catch (e) { say(e) } finally { cleanup(stuff) }': {
13821 type: 'TryStatement',
13823 type: 'BlockStatement',
13825 type: 'ExpressionStatement',
13827 type: 'CallExpression',
13829 type: 'Identifier',
13833 start: { line: 1, column: 6 },
13834 end: { line: 1, column: 12 }
13840 start: { line: 1, column: 6 },
13841 end: { line: 1, column: 14 }
13846 start: { line: 1, column: 6 },
13847 end: { line: 1, column: 15 }
13852 start: { line: 1, column: 4 },
13853 end: { line: 1, column: 17 }
13856 guardedHandlers: [],
13858 type: 'CatchClause',
13860 type: 'Identifier',
13864 start: { line: 1, column: 25 },
13865 end: { line: 1, column: 26 }
13869 type: 'BlockStatement',
13871 type: 'ExpressionStatement',
13873 type: 'CallExpression',
13875 type: 'Identifier',
13879 start: { line: 1, column: 30 },
13880 end: { line: 1, column: 33 }
13884 type: 'Identifier',
13888 start: { line: 1, column: 34 },
13889 end: { line: 1, column: 35 }
13894 start: { line: 1, column: 30 },
13895 end: { line: 1, column: 36 }
13900 start: { line: 1, column: 30 },
13901 end: { line: 1, column: 37 }
13906 start: { line: 1, column: 28 },
13907 end: { line: 1, column: 38 }
13912 start: { line: 1, column: 18 },
13913 end: { line: 1, column: 38 }
13917 type: 'BlockStatement',
13919 type: 'ExpressionStatement',
13921 type: 'CallExpression',
13923 type: 'Identifier',
13927 start: { line: 1, column: 49 },
13928 end: { line: 1, column: 56 }
13932 type: 'Identifier',
13936 start: { line: 1, column: 57 },
13937 end: { line: 1, column: 62 }
13942 start: { line: 1, column: 49 },
13943 end: { line: 1, column: 63 }
13948 start: { line: 1, column: 49 },
13949 end: { line: 1, column: 64 }
13954 start: { line: 1, column: 47 },
13955 end: { line: 1, column: 65 }
13960 start: { line: 1, column: 0 },
13961 end: { line: 1, column: 65 }
13967 'debugger statement': {
13970 type: 'DebuggerStatement',
13973 start: { line: 1, column: 0 },
13974 end: { line: 1, column: 9 }
13980 'Function Definition': {
13982 'function hello() { sayHi(); }': {
13983 type: 'FunctionDeclaration',
13985 type: 'Identifier',
13989 start: { line: 1, column: 9 },
13990 end: { line: 1, column: 14 }
13996 type: 'BlockStatement',
13998 type: 'ExpressionStatement',
14000 type: 'CallExpression',
14002 type: 'Identifier',
14006 start: { line: 1, column: 19 },
14007 end: { line: 1, column: 24 }
14013 start: { line: 1, column: 19 },
14014 end: { line: 1, column: 26 }
14019 start: { line: 1, column: 19 },
14020 end: { line: 1, column: 27 }
14025 start: { line: 1, column: 17 },
14026 end: { line: 1, column: 29 }
14034 start: { line: 1, column: 0 },
14035 end: { line: 1, column: 29 }
14039 'function eval() { }': {
14040 type: 'FunctionDeclaration',
14042 type: 'Identifier',
14046 start: { line: 1, column: 9 },
14047 end: { line: 1, column: 13 }
14053 type: 'BlockStatement',
14057 start: { line: 1, column: 16 },
14058 end: { line: 1, column: 19 }
14066 start: { line: 1, column: 0 },
14067 end: { line: 1, column: 19 }
14071 'function arguments() { }': {
14072 type: 'FunctionDeclaration',
14074 type: 'Identifier',
14078 start: { line: 1, column: 9 },
14079 end: { line: 1, column: 18 }
14085 type: 'BlockStatement',
14089 start: { line: 1, column: 21 },
14090 end: { line: 1, column: 24 }
14098 start: { line: 1, column: 0 },
14099 end: { line: 1, column: 24 }
14103 'function test(t, t) { }': {
14104 type: 'FunctionDeclaration',
14106 type: 'Identifier',
14110 start: { line: 1, column: 9 },
14111 end: { line: 1, column: 13 }
14115 type: 'Identifier',
14119 start: { line: 1, column: 14 },
14120 end: { line: 1, column: 15 }
14123 type: 'Identifier',
14127 start: { line: 1, column: 17 },
14128 end: { line: 1, column: 18 }
14133 type: 'BlockStatement',
14137 start: { line: 1, column: 20 },
14138 end: { line: 1, column: 23 }
14146 start: { line: 1, column: 0 },
14147 end: { line: 1, column: 23 }
14151 '(function test(t, t) { })': {
14152 type: 'ExpressionStatement',
14154 type: 'FunctionExpression',
14156 type: 'Identifier',
14160 start: { line: 1, column: 10 },
14161 end: { line: 1, column: 14 }
14165 type: 'Identifier',
14169 start: { line: 1, column: 15 },
14170 end: { line: 1, column: 16 }
14173 type: 'Identifier',
14177 start: { line: 1, column: 18 },
14178 end: { line: 1, column: 19 }
14183 type: 'BlockStatement',
14187 start: { line: 1, column: 21 },
14188 end: { line: 1, column: 24 }
14196 start: { line: 1, column: 1 },
14197 end: { line: 1, column: 24 }
14202 start: { line: 1, column: 0 },
14203 end: { line: 1, column: 25 }
14207 'function eval() { function inner() { "use strict" } }': {
14208 type: 'FunctionDeclaration',
14210 type: 'Identifier',
14214 start: { line: 1, column: 9 },
14215 end: { line: 1, column: 13 }
14221 type: 'BlockStatement',
14223 type: 'FunctionDeclaration',
14225 type: 'Identifier',
14229 start: { line: 1, column: 27 },
14230 end: { line: 1, column: 32 }
14236 type: 'BlockStatement',
14238 type: 'ExpressionStatement',
14241 value: 'use strict',
14242 raw: '\"use strict\"',
14245 start: { line: 1, column: 37 },
14246 end: { line: 1, column: 49 }
14251 start: { line: 1, column: 37 },
14252 end: { line: 1, column: 50 }
14257 start: { line: 1, column: 35 },
14258 end: { line: 1, column: 51 }
14266 start: { line: 1, column: 18 },
14267 end: { line: 1, column: 51 }
14272 start: { line: 1, column: 16 },
14273 end: { line: 1, column: 53 }
14281 start: { line: 1, column: 0 },
14282 end: { line: 1, column: 53 }
14286 'function hello(a) { sayHi(); }': {
14287 type: 'FunctionDeclaration',
14289 type: 'Identifier',
14293 start: { line: 1, column: 9 },
14294 end: { line: 1, column: 14 }
14298 type: 'Identifier',
14302 start: { line: 1, column: 15 },
14303 end: { line: 1, column: 16 }
14308 type: 'BlockStatement',
14310 type: 'ExpressionStatement',
14312 type: 'CallExpression',
14314 type: 'Identifier',
14318 start: { line: 1, column: 20 },
14319 end: { line: 1, column: 25 }
14325 start: { line: 1, column: 20 },
14326 end: { line: 1, column: 27 }
14331 start: { line: 1, column: 20 },
14332 end: { line: 1, column: 28 }
14337 start: { line: 1, column: 18 },
14338 end: { line: 1, column: 30 }
14346 start: { line: 1, column: 0 },
14347 end: { line: 1, column: 30 }
14351 'function hello(a, b) { sayHi(); }': {
14352 type: 'FunctionDeclaration',
14354 type: 'Identifier',
14358 start: { line: 1, column: 9 },
14359 end: { line: 1, column: 14 }
14363 type: 'Identifier',
14367 start: { line: 1, column: 15 },
14368 end: { line: 1, column: 16 }
14371 type: 'Identifier',
14375 start: { line: 1, column: 18 },
14376 end: { line: 1, column: 19 }
14381 type: 'BlockStatement',
14383 type: 'ExpressionStatement',
14385 type: 'CallExpression',
14387 type: 'Identifier',
14391 start: { line: 1, column: 23 },
14392 end: { line: 1, column: 28 }
14398 start: { line: 1, column: 23 },
14399 end: { line: 1, column: 30 }
14404 start: { line: 1, column: 23 },
14405 end: { line: 1, column: 31 }
14410 start: { line: 1, column: 21 },
14411 end: { line: 1, column: 33 }
14419 start: { line: 1, column: 0 },
14420 end: { line: 1, column: 33 }
14424 'var hi = function() { sayHi() };': {
14425 type: 'VariableDeclaration',
14427 type: 'VariableDeclarator',
14429 type: 'Identifier',
14433 start: { line: 1, column: 4 },
14434 end: { line: 1, column: 6 }
14438 type: 'FunctionExpression',
14443 type: 'BlockStatement',
14445 type: 'ExpressionStatement',
14447 type: 'CallExpression',
14449 type: 'Identifier',
14453 start: { line: 1, column: 22 },
14454 end: { line: 1, column: 27 }
14460 start: { line: 1, column: 22 },
14461 end: { line: 1, column: 29 }
14466 start: { line: 1, column: 22 },
14467 end: { line: 1, column: 30 }
14472 start: { line: 1, column: 20 },
14473 end: { line: 1, column: 31 }
14481 start: { line: 1, column: 9 },
14482 end: { line: 1, column: 31 }
14487 start: { line: 1, column: 4 },
14488 end: { line: 1, column: 31 }
14494 start: { line: 1, column: 0 },
14495 end: { line: 1, column: 32 }
14499 'var hi = function eval() { };': {
14500 type: 'VariableDeclaration',
14502 type: 'VariableDeclarator',
14504 type: 'Identifier',
14508 start: { line: 1, column: 4 },
14509 end: { line: 1, column: 6 }
14513 type: 'FunctionExpression',
14515 type: 'Identifier',
14519 start: { line: 1, column: 18 },
14520 end: { line: 1, column: 22 }
14526 type: 'BlockStatement',
14530 start: { line: 1, column: 25 },
14531 end: { line: 1, column: 28 }
14539 start: { line: 1, column: 9 },
14540 end: { line: 1, column: 28 }
14545 start: { line: 1, column: 4 },
14546 end: { line: 1, column: 28 }
14552 start: { line: 1, column: 0 },
14553 end: { line: 1, column: 29 }
14557 'var hi = function arguments() { };': {
14558 type: 'VariableDeclaration',
14560 type: 'VariableDeclarator',
14562 type: 'Identifier',
14566 start: { line: 1, column: 4 },
14567 end: { line: 1, column: 6 }
14571 type: 'FunctionExpression',
14573 type: 'Identifier',
14577 start: { line: 1, column: 18 },
14578 end: { line: 1, column: 27 }
14584 type: 'BlockStatement',
14588 start: { line: 1, column: 30 },
14589 end: { line: 1, column: 33 }
14597 start: { line: 1, column: 9 },
14598 end: { line: 1, column: 33 }
14603 start: { line: 1, column: 4 },
14604 end: { line: 1, column: 33 }
14610 start: { line: 1, column: 0 },
14611 end: { line: 1, column: 34 }
14615 'var hello = function hi() { sayHi() };': {
14616 type: 'VariableDeclaration',
14618 type: 'VariableDeclarator',
14620 type: 'Identifier',
14624 start: { line: 1, column: 4 },
14625 end: { line: 1, column: 9 }
14629 type: 'FunctionExpression',
14631 type: 'Identifier',
14635 start: { line: 1, column: 21 },
14636 end: { line: 1, column: 23 }
14642 type: 'BlockStatement',
14644 type: 'ExpressionStatement',
14646 type: 'CallExpression',
14648 type: 'Identifier',
14652 start: { line: 1, column: 28 },
14653 end: { line: 1, column: 33 }
14659 start: { line: 1, column: 28 },
14660 end: { line: 1, column: 35 }
14665 start: { line: 1, column: 28 },
14666 end: { line: 1, column: 36 }
14671 start: { line: 1, column: 26 },
14672 end: { line: 1, column: 37 }
14680 start: { line: 1, column: 12 },
14681 end: { line: 1, column: 37 }
14686 start: { line: 1, column: 4 },
14687 end: { line: 1, column: 37 }
14693 start: { line: 1, column: 0 },
14694 end: { line: 1, column: 38 }
14698 '(function(){})': {
14699 type: 'ExpressionStatement',
14701 type: 'FunctionExpression',
14706 type: 'BlockStatement',
14710 start: { line: 1, column: 11 },
14711 end: { line: 1, column: 13 }
14719 start: { line: 1, column: 1 },
14720 end: { line: 1, column: 13 }
14725 start: { line: 1, column: 0 },
14726 end: { line: 1, column: 14 }
14732 'Automatic semicolon insertion': {
14735 type: 'BlockStatement',
14737 type: 'ExpressionStatement',
14739 type: 'Identifier',
14743 start: { line: 1, column: 2 },
14744 end: { line: 1, column: 3 }
14749 start: { line: 1, column: 2 },
14750 end: { line: 2, column: 0 }
14753 type: 'ExpressionStatement',
14755 type: 'UpdateExpression',
14758 type: 'Identifier',
14762 start: { line: 2, column: 2 },
14763 end: { line: 2, column: 3 }
14769 start: { line: 2, column: 0 },
14770 end: { line: 2, column: 3 }
14775 start: { line: 2, column: 0 },
14776 end: { line: 2, column: 4 }
14781 start: { line: 1, column: 0 },
14782 end: { line: 2, column: 5 }
14787 type: 'BlockStatement',
14789 type: 'ExpressionStatement',
14791 type: 'Identifier',
14795 start: { line: 1, column: 2 },
14796 end: { line: 1, column: 3 }
14801 start: { line: 1, column: 2 },
14802 end: { line: 2, column: 0 }
14805 type: 'ExpressionStatement',
14807 type: 'UpdateExpression',
14810 type: 'Identifier',
14814 start: { line: 2, column: 2 },
14815 end: { line: 2, column: 3 }
14821 start: { line: 2, column: 0 },
14822 end: { line: 2, column: 3 }
14827 start: { line: 2, column: 0 },
14828 end: { line: 2, column: 4 }
14833 start: { line: 1, column: 0 },
14834 end: { line: 2, column: 5 }
14838 'var x /* comment */;': {
14839 type: 'VariableDeclaration',
14841 type: 'VariableDeclarator',
14843 type: 'Identifier',
14847 start: { line: 1, column: 4 },
14848 end: { line: 1, column: 5 }
14854 start: { line: 1, column: 4 },
14855 end: { line: 1, column: 5 }
14861 start: { line: 1, column: 0 },
14862 end: { line: 1, column: 20 }
14866 '{ var x = 14, y = 3\nz; }': {
14867 type: 'BlockStatement',
14869 type: 'VariableDeclaration',
14871 type: 'VariableDeclarator',
14873 type: 'Identifier',
14877 start: { line: 1, column: 6 },
14878 end: { line: 1, column: 7 }
14887 start: { line: 1, column: 10 },
14888 end: { line: 1, column: 12 }
14893 start: { line: 1, column: 6 },
14894 end: { line: 1, column: 12 }
14897 type: 'VariableDeclarator',
14899 type: 'Identifier',
14903 start: { line: 1, column: 14 },
14904 end: { line: 1, column: 15 }
14913 start: { line: 1, column: 18 },
14914 end: { line: 1, column: 19 }
14919 start: { line: 1, column: 14 },
14920 end: { line: 1, column: 19 }
14926 start: { line: 1, column: 2 },
14927 end: { line: 2, column: 0 }
14930 type: 'ExpressionStatement',
14932 type: 'Identifier',
14936 start: { line: 2, column: 0 },
14937 end: { line: 2, column: 1 }
14942 start: { line: 2, column: 0 },
14943 end: { line: 2, column: 2 }
14948 start: { line: 1, column: 0 },
14949 end: { line: 2, column: 4 }
14953 'while (true) { continue\nthere; }': {
14954 type: 'WhileStatement',
14961 start: { line: 1, column: 7 },
14962 end: { line: 1, column: 11 }
14966 type: 'BlockStatement',
14968 type: 'ContinueStatement',
14972 start: { line: 1, column: 15 },
14973 end: { line: 1, column: 23 }
14976 type: 'ExpressionStatement',
14978 type: 'Identifier',
14982 start: { line: 2, column: 0 },
14983 end: { line: 2, column: 5 }
14988 start: { line: 2, column: 0 },
14989 end: { line: 2, column: 6 }
14994 start: { line: 1, column: 13 },
14995 end: { line: 2, column: 8 }
15000 start: { line: 1, column: 0 },
15001 end: { line: 2, column: 8 }
15005 'while (true) { continue // Comment\nthere; }': {
15006 type: 'WhileStatement',
15013 start: { line: 1, column: 7 },
15014 end: { line: 1, column: 11 }
15018 type: 'BlockStatement',
15020 type: 'ContinueStatement',
15024 start: { line: 1, column: 15 },
15025 end: { line: 1, column: 23 }
15028 type: 'ExpressionStatement',
15030 type: 'Identifier',
15034 start: { line: 2, column: 0 },
15035 end: { line: 2, column: 5 }
15040 start: { line: 2, column: 0 },
15041 end: { line: 2, column: 6 }
15046 start: { line: 1, column: 13 },
15047 end: { line: 2, column: 8 }
15052 start: { line: 1, column: 0 },
15053 end: { line: 2, column: 8 }
15057 'while (true) { continue /* Multiline\nComment */there; }': {
15058 type: 'WhileStatement',
15065 start: { line: 1, column: 7 },
15066 end: { line: 1, column: 11 }
15070 type: 'BlockStatement',
15072 type: 'ContinueStatement',
15076 start: { line: 1, column: 15 },
15077 end: { line: 1, column: 23 }
15080 type: 'ExpressionStatement',
15082 type: 'Identifier',
15086 start: { line: 2, column: 10 },
15087 end: { line: 2, column: 15 }
15092 start: { line: 2, column: 10 },
15093 end: { line: 2, column: 16 }
15098 start: { line: 1, column: 13 },
15099 end: { line: 2, column: 18 }
15104 start: { line: 1, column: 0 },
15105 end: { line: 2, column: 18 }
15109 'while (true) { break\nthere; }': {
15110 type: 'WhileStatement',
15117 start: { line: 1, column: 7 },
15118 end: { line: 1, column: 11 }
15122 type: 'BlockStatement',
15124 type: 'BreakStatement',
15128 start: { line: 1, column: 15 },
15129 end: { line: 1, column: 20 }
15132 type: 'ExpressionStatement',
15134 type: 'Identifier',
15138 start: { line: 2, column: 0 },
15139 end: { line: 2, column: 5 }
15144 start: { line: 2, column: 0 },
15145 end: { line: 2, column: 6 }
15150 start: { line: 1, column: 13 },
15151 end: { line: 2, column: 8 }
15156 start: { line: 1, column: 0 },
15157 end: { line: 2, column: 8 }
15161 'while (true) { break // Comment\nthere; }': {
15162 type: 'WhileStatement',
15169 start: { line: 1, column: 7 },
15170 end: { line: 1, column: 11 }
15174 type: 'BlockStatement',
15176 type: 'BreakStatement',
15180 start: { line: 1, column: 15 },
15181 end: { line: 1, column: 20 }
15184 type: 'ExpressionStatement',
15186 type: 'Identifier',
15190 start: { line: 2, column: 0 },
15191 end: { line: 2, column: 5 }
15196 start: { line: 2, column: 0 },
15197 end: { line: 2, column: 6 }
15202 start: { line: 1, column: 13 },
15203 end: { line: 2, column: 8 }
15208 start: { line: 1, column: 0 },
15209 end: { line: 2, column: 8 }
15213 'while (true) { break /* Multiline\nComment */there; }': {
15214 type: 'WhileStatement',
15221 start: { line: 1, column: 7 },
15222 end: { line: 1, column: 11 }
15226 type: 'BlockStatement',
15228 type: 'BreakStatement',
15232 start: { line: 1, column: 15 },
15233 end: { line: 1, column: 20 }
15236 type: 'ExpressionStatement',
15238 type: 'Identifier',
15242 start: { line: 2, column: 10 },
15243 end: { line: 2, column: 15 }
15248 start: { line: 2, column: 10 },
15249 end: { line: 2, column: 16 }
15254 start: { line: 1, column: 13 },
15255 end: { line: 2, column: 18 }
15260 start: { line: 1, column: 0 },
15261 end: { line: 2, column: 18 }
15265 '(function(){ return\nx; })': {
15266 type: 'ExpressionStatement',
15268 type: 'FunctionExpression',
15273 type: 'BlockStatement',
15276 type: 'ReturnStatement',
15280 start: { line: 1, column: 13 },
15281 end: { line: 1, column: 19 }
15285 type: 'ExpressionStatement',
15287 type: 'Identifier',
15291 start: { line: 2, column: 0 },
15292 end: { line: 2, column: 1 }
15297 start: { line: 2, column: 0 },
15298 end: { line: 2, column: 2 }
15304 start: { line: 1, column: 11 },
15305 end: { line: 2, column: 4 }
15313 start: { line: 1, column: 1 },
15314 end: { line: 2, column: 4 }
15319 start: { line: 1, column: 0 },
15320 end: { line: 2, column: 5 }
15324 '(function(){ return // Comment\nx; })': {
15325 type: 'ExpressionStatement',
15327 type: 'FunctionExpression',
15332 type: 'BlockStatement',
15335 type: 'ReturnStatement',
15339 start: { line: 1, column: 13 },
15340 end: { line: 1, column: 19 }
15344 type: 'ExpressionStatement',
15346 type: 'Identifier',
15350 start: { line: 2, column: 0 },
15351 end: { line: 2, column: 1 }
15356 start: { line: 2, column: 0 },
15357 end: { line: 2, column: 2 }
15363 start: { line: 1, column: 11 },
15364 end: { line: 2, column: 4 }
15372 start: { line: 1, column: 1 },
15373 end: { line: 2, column: 4 }
15378 start: { line: 1, column: 0 },
15379 end: { line: 2, column: 5 }
15383 '(function(){ return/* Multiline\nComment */x; })': {
15384 type: 'ExpressionStatement',
15386 type: 'FunctionExpression',
15391 type: 'BlockStatement',
15394 type: 'ReturnStatement',
15398 start: { line: 1, column: 13 },
15399 end: { line: 1, column: 19 }
15403 type: 'ExpressionStatement',
15405 type: 'Identifier',
15409 start: { line: 2, column: 10 },
15410 end: { line: 2, column: 11 }
15415 start: { line: 2, column: 10 },
15416 end: { line: 2, column: 12 }
15422 start: { line: 1, column: 11 },
15423 end: { line: 2, column: 14 }
15431 start: { line: 1, column: 1 },
15432 end: { line: 2, column: 14 }
15437 start: { line: 1, column: 0 },
15438 end: { line: 2, column: 15 }
15442 '{ throw error\nerror; }': {
15443 type: 'BlockStatement',
15445 type: 'ThrowStatement',
15447 type: 'Identifier',
15451 start: { line: 1, column: 8 },
15452 end: { line: 1, column: 13 }
15457 start: { line: 1, column: 2 },
15458 end: { line: 2, column: 0 }
15461 type: 'ExpressionStatement',
15463 type: 'Identifier',
15467 start: { line: 2, column: 0 },
15468 end: { line: 2, column: 5 }
15473 start: { line: 2, column: 0 },
15474 end: { line: 2, column: 6 }
15479 start: { line: 1, column: 0 },
15480 end: { line: 2, column: 8 }
15484 '{ throw error// Comment\nerror; }': {
15485 type: 'BlockStatement',
15487 type: 'ThrowStatement',
15489 type: 'Identifier',
15493 start: { line: 1, column: 8 },
15494 end: { line: 1, column: 13 }
15499 start: { line: 1, column: 2 },
15500 end: { line: 2, column: 0 }
15503 type: 'ExpressionStatement',
15505 type: 'Identifier',
15509 start: { line: 2, column: 0 },
15510 end: { line: 2, column: 5 }
15515 start: { line: 2, column: 0 },
15516 end: { line: 2, column: 6 }
15521 start: { line: 1, column: 0 },
15522 end: { line: 2, column: 8 }
15526 '{ throw error/* Multiline\nComment */error; }': {
15527 type: 'BlockStatement',
15529 type: 'ThrowStatement',
15531 type: 'Identifier',
15535 start: { line: 1, column: 8 },
15536 end: { line: 1, column: 13 }
15541 start: { line: 1, column: 2 },
15542 end: { line: 2, column: 10 }
15545 type: 'ExpressionStatement',
15547 type: 'Identifier',
15551 start: { line: 2, column: 10 },
15552 end: { line: 2, column: 15 }
15557 start: { line: 2, column: 10 },
15558 end: { line: 2, column: 16 }
15563 start: { line: 1, column: 0 },
15564 end: { line: 2, column: 18 }
15570 'Source elements': {
15577 start: { line: 0, column: 0 },
15578 end: { line: 0, column: 0 }
15584 'Invalid syntax': {
15590 message: 'Error: Line 1: Unexpected end of input'
15597 message: 'Error: Line 1: Unexpected token }'
15604 message: 'Error: Line 1: Unexpected token ILLEGAL'
15611 message: 'Error: Line 1: Unexpected token ILLEGAL'
15618 message: 'Error: Line 1: Unexpected token ILLEGAL'
15625 message: 'Error: Line 1: Unexpected token ILLEGAL'
15632 message: 'Error: Line 1: Unexpected token ILLEGAL'
15639 message: 'Error: Line 1: Unexpected token ILLEGAL'
15646 message: 'Error: Line 1: Unexpected token ILLEGAL'
15653 message: 'Error: Line 1: Unexpected token ILLEGAL'
15660 message: 'Error: Line 1: Unexpected token ILLEGAL'
15667 message: 'Error: Line 1: Unexpected token ILLEGAL'
15674 message: 'Error: Line 1: Unexpected token ILLEGAL'
15681 message: 'Error: Line 1: Unexpected token ILLEGAL'
15688 message: 'Error: Line 1: Unexpected token ILLEGAL'
15691 '"Hello\nWorld"': {
15695 message: 'Error: Line 1: Unexpected token ILLEGAL'
15702 message: 'Error: Line 1: Unexpected token ILLEGAL'
15709 message: 'Error: Line 1: Unexpected token ILLEGAL'
15716 message: 'Error: Line 1: Unexpected token ILLEGAL'
15723 message: 'Error: Line 1: Invalid regular expression'
15730 message: 'Error: Line 1: Invalid regular expression: missing /'
15737 message: 'Error: Line 1: Invalid regular expression: missing /'
15740 'var x = /[a-z]/\\ux': {
15744 message: 'Error: Line 1: Invalid regular expression'
15751 message: 'Error: Line 1: Invalid left-hand side in assignment'
15758 message: 'Error: Line 1: Invalid left-hand side in assignment'
15765 message: 'Error: Line 1: Invalid left-hand side in assignment'
15772 message: 'Error: Line 1: Invalid left-hand side in assignment'
15779 message: 'Error: Line 1: Invalid left-hand side in assignment'
15786 message: 'Error: Line 1: Invalid left-hand side in assignment'
15793 message: 'Error: Line 1: Invalid left-hand side in assignment'
15796 'for((1 + 1) in list) process(x);': {
15800 message: 'Error: Line 1: Invalid left-hand side in for-in'
15807 message: 'Error: Line 1: Unexpected end of input'
15814 message: 'Error: Line 1: Unexpected end of input'
15821 message: 'Error: Line 1: Unexpected end of input'
15828 message: 'Error: Line 1: Unexpected end of input'
15835 message: 'Error: Line 1: Unexpected end of input'
15842 message: 'Error: Line 1: Invalid regular expression: missing /'
15849 message: 'Error: Line 1: Unexpected token ILLEGAL'
15856 message: 'Error: Line 1: Unexpected token if'
15863 message: 'Error: Line 1: Invalid left-hand side in assignment'
15870 message: 'Error: Line 1: Invalid left-hand side in assignment'
15877 message: 'Error: Line 1: Unexpected end of input'
15884 message: 'Error: Line 4: Unexpected end of input'
15887 '\n/* Some multiline\ncomment */\n)': {
15891 message: 'Error: Line 4: Unexpected token )'
15898 message: 'Error: Line 1: Unexpected number'
15905 message: 'Error: Line 1: Unexpected number'
15908 '({ set: s(if) { } })': {
15912 message: 'Error: Line 1: Unexpected token if'
15915 '({ set s(.) { } })': {
15919 message: 'Error: Line 1: Unexpected token .'
15922 '({ set s() { } })': {
15926 message: 'Error: Line 1: Unexpected token )'
15929 '({ set: s() { } })': {
15933 message: 'Error: Line 1: Unexpected token {'
15936 '({ set: s(a, b) { } })': {
15940 message: 'Error: Line 1: Unexpected token {'
15943 '({ get: g(d) { } })': {
15947 message: 'Error: Line 1: Unexpected token {'
15950 '({ get i() { }, i: 42 })': {
15954 message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
15957 '({ i: 42, get i() { } })': {
15961 message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
15964 '({ set i(x) { }, i: 42 })': {
15968 message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
15971 '({ i: 42, set i(x) { } })': {
15975 message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
15978 '({ get i() { }, get i() { } })': {
15982 message: 'Error: Line 1: Object literal may not have multiple get/set accessors with the same name'
15985 '({ set i(x) { }, set i(x) { } })': {
15989 message: 'Error: Line 1: Object literal may not have multiple get/set accessors with the same name'
15992 'function t(if) { }': {
15996 message: 'Error: Line 1: Unexpected token if'
15999 'function t(true) { }': {
16003 message: 'Error: Line 1: Unexpected token true'
16006 'function t(false) { }': {
16010 message: 'Error: Line 1: Unexpected token false'
16013 'function t(null) { }': {
16017 message: 'Error: Line 1: Unexpected token null'
16020 'function null() { }': {
16024 message: 'Error: Line 1: Unexpected token null'
16027 'function true() { }': {
16031 message: 'Error: Line 1: Unexpected token true'
16034 'function false() { }': {
16038 message: 'Error: Line 1: Unexpected token false'
16041 'function if() { }': {
16045 message: 'Error: Line 1: Unexpected token if'
16052 message: 'Error: Line 1: Unexpected identifier'
16059 message: 'Error: Line 1: Unexpected token .'
16066 message: 'Error: Line 1: Unexpected token if'
16073 message: 'Error: Line 1: Unexpected reserved word'
16080 message: 'Error: Line 1: Illegal break statement'
16087 message: 'Error: Line 1: Unexpected number'
16094 message: 'Error: Line 1: Illegal continue statement'
16101 message: 'Error: Line 1: Unexpected number'
16108 message: 'Error: Line 1: Unexpected end of input'
16115 message: 'Error: Line 1: Unexpected token ;'
16122 message: 'Error: Line 1: Illegal newline after throw'
16125 'for (var i, i2 in {});': {
16129 message: 'Error: Line 1: Unexpected token in'
16132 'for ((i in {}));': {
16136 message: 'Error: Line 1: Unexpected token )'
16139 'for (i + 1 in {});': {
16143 message: 'Error: Line 1: Invalid left-hand side in for-in'
16146 'for (+i in {});': {
16150 message: 'Error: Line 1: Invalid left-hand side in for-in'
16157 message: 'Error: Line 1: Unexpected end of input'
16160 'if(false) doThis(); else': {
16164 message: 'Error: Line 1: Unexpected end of input'
16171 message: 'Error: Line 1: Unexpected end of input'
16178 message: 'Error: Line 1: Unexpected end of input'
16185 message: 'Error: Line 1: Unexpected end of input'
16192 message: 'Error: Line 1: Unexpected end of input'
16199 message: 'Error: Line 1: Missing catch or finally after try'
16202 'try {} catch (42) {} ': {
16206 message: 'Error: Line 1: Unexpected number'
16209 'try {} catch (answer()) {} ': {
16213 message: 'Error: Line 1: Unexpected token ('
16216 'try {} catch (-x) {} ': {
16220 message: 'Error: Line 1: Unexpected token -'
16228 message: 'Error: Line 1: Unexpected token ILLEGAL'
16231 'const x = 12, y;': {
16235 message: 'Error: Line 1: Unexpected token ;'
16238 'const x, y = 12;': {
16242 message: 'Error: Line 1: Unexpected token ,'
16249 message: 'Error: Line 1: Unexpected token ;'
16252 'if(true) let a = 1;': {
16256 message: 'Error: Line 1: Unexpected token let'
16259 'if(true) const a = 1;': {
16263 message: 'Error: Line 1: Unexpected token const'
16266 'switch (c) { default: default: }': {
16270 message: 'Error: Line 1: More than one default clause in switch statement'
16277 message: 'Error: Line 1: Unexpected string'
16284 message: 'Error: Line 1: Unexpected token ILLEGAL'
16291 message: 'Error: Line 4: Unexpected token ILLEGAL'
16298 message: 'Error: Line 1: Unexpected token ILLEGAL'
16305 message: 'Error: Line 3: Unexpected token ILLEGAL'
16312 message: 'Error: Line 1: Unexpected token ILLEGAL'
16319 message: 'Error: Line 1: Unexpected token ILLEGAL'
16326 message: 'Error: Line 2: Unexpected token ]'
16333 message: 'Error: Line 2: Unexpected token ]'
16340 message: 'Error: Line 2: Unexpected token ]'
16347 message: 'Error: Line 3: Unexpected token ]'
16354 message: 'Error: Line 2: Unexpected token ]'
16361 message: 'Error: Line 3: Unexpected token ]'
16368 message: 'Error: Line 1: Invalid regular expression: missing /'
16375 message: 'Error: Line 3: Unexpected token ]'
16382 message: 'Error: Line 2: Unexpected token ]'
16389 message: 'Error: Line 3: Unexpected token ]'
16396 message: 'Error: Line 3: Unexpected token ]'
16403 message: 'Error: Line 1: Unexpected token ILLEGAL'
16410 message: 'Error: Line 1: Unexpected token ILLEGAL'
16418 message: 'Error: Line 1: Unexpected token ILLEGAL'
16425 message: 'Error: Line 1: Unexpected token ILLEGAL'
16432 message: 'Error: Line 1: Unexpected token ILLEGAL'
16439 message: 'Error: Line 1: Unexpected token ILLEGAL'
16446 message: 'Error: Line 1: Unexpected token ILLEGAL'
16453 message: 'Error: Line 1: Unexpected token ILLEGAL'
16456 'try { } catch() {}': {
16460 message: 'Error: Line 1: Unexpected token )'
16467 message: 'Error: Line 1: Illegal return statement'
16474 message: 'Error: Line 1: Illegal break statement'
16481 message: 'Error: Line 1: Illegal continue statement'
16484 'switch (x) { default: continue; }': {
16488 message: 'Error: Line 1: Illegal continue statement'
16495 message: 'Error: Line 1: Unexpected token *'
16498 'while (true) { break x; }': {
16502 message: 'Error: Line 1: Undefined label \'x\''
16505 'while (true) { continue x; }': {
16509 message: 'Error: Line 1: Undefined label \'x\''
16512 'x: while (true) { (function () { break x; }); }': {
16516 message: 'Error: Line 1: Undefined label \'x\''
16519 'x: while (true) { (function () { continue x; }); }': {
16523 message: 'Error: Line 1: Undefined label \'x\''
16526 'x: while (true) { (function () { break; }); }': {
16530 message: 'Error: Line 1: Illegal break statement'
16533 'x: while (true) { (function () { continue; }); }': {
16537 message: 'Error: Line 1: Illegal continue statement'
16540 'x: while (true) { x: while (true) { } }': {
16544 message: 'Error: Line 1: Label \'x\' has already been declared'
16547 '(function () { \'use strict\'; delete i; }())': {
16551 message: 'Error: Line 1: Delete of an unqualified identifier in strict mode.'
16554 '(function () { \'use strict\'; with (i); }())': {
16558 message: 'Error: Line 1: Strict mode code may not include a with statement'
16561 'function hello() {\'use strict\'; ({ i: 42, i: 42 }) }': {
16565 message: 'Error: Line 1: Duplicate data property in object literal not allowed in strict mode'
16568 'function hello() {\'use strict\'; ({ hasOwnProperty: 42, hasOwnProperty: 42 }) }': {
16572 message: 'Error: Line 1: Duplicate data property in object literal not allowed in strict mode'
16575 'function hello() {\'use strict\'; var eval = 10; }': {
16579 message: 'Error: Line 1: Variable name may not be eval or arguments in strict mode'
16582 'function hello() {\'use strict\'; var arguments = 10; }': {
16586 message: 'Error: Line 1: Variable name may not be eval or arguments in strict mode'
16589 'function hello() {\'use strict\'; try { } catch (eval) { } }': {
16593 message: 'Error: Line 1: Catch variable may not be eval or arguments in strict mode'
16596 'function hello() {\'use strict\'; try { } catch (arguments) { } }': {
16600 message: 'Error: Line 1: Catch variable may not be eval or arguments in strict mode'
16603 'function hello() {\'use strict\'; eval = 10; }': {
16607 message: 'Error: Line 1: Assignment to eval or arguments is not allowed in strict mode'
16610 'function hello() {\'use strict\'; arguments = 10; }': {
16614 message: 'Error: Line 1: Assignment to eval or arguments is not allowed in strict mode'
16617 'function hello() {\'use strict\'; ++eval; }': {
16621 message: 'Error: Line 1: Prefix increment/decrement may not have eval or arguments operand in strict mode'
16624 'function hello() {\'use strict\'; --eval; }': {
16628 message: 'Error: Line 1: Prefix increment/decrement may not have eval or arguments operand in strict mode'
16631 'function hello() {\'use strict\'; ++arguments; }': {
16635 message: 'Error: Line 1: Prefix increment/decrement may not have eval or arguments operand in strict mode'
16638 'function hello() {\'use strict\'; --arguments; }': {
16642 message: 'Error: Line 1: Prefix increment/decrement may not have eval or arguments operand in strict mode'
16645 'function hello() {\'use strict\'; eval++; }': {
16649 message: 'Error: Line 1: Postfix increment/decrement may not have eval or arguments operand in strict mode'
16652 'function hello() {\'use strict\'; eval--; }': {
16656 message: 'Error: Line 1: Postfix increment/decrement may not have eval or arguments operand in strict mode'
16659 'function hello() {\'use strict\'; arguments++; }': {
16663 message: 'Error: Line 1: Postfix increment/decrement may not have eval or arguments operand in strict mode'
16666 'function hello() {\'use strict\'; arguments--; }': {
16670 message: 'Error: Line 1: Postfix increment/decrement may not have eval or arguments operand in strict mode'
16673 'function hello() {\'use strict\'; function eval() { } }': {
16677 message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
16680 'function hello() {\'use strict\'; function arguments() { } }': {
16684 message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
16687 'function eval() {\'use strict\'; }': {
16691 message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
16694 'function arguments() {\'use strict\'; }': {
16698 message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
16701 'function hello() {\'use strict\'; (function eval() { }()) }': {
16705 message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
16708 'function hello() {\'use strict\'; (function arguments() { }()) }': {
16712 message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
16715 '(function eval() {\'use strict\'; })()': {
16719 message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
16722 '(function arguments() {\'use strict\'; })()': {
16726 message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
16729 'function hello() {\'use strict\'; ({ s: function eval() { } }); }': {
16733 message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
16736 '(function package() {\'use strict\'; })()': {
16740 message: 'Error: Line 1: Use of future reserved word in strict mode'
16743 'function hello() {\'use strict\'; ({ i: 10, set s(eval) { } }); }': {
16747 message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
16750 'function hello() {\'use strict\'; ({ set s(eval) { } }); }': {
16754 message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
16757 'function hello() {\'use strict\'; ({ s: function s(eval) { } }); }': {
16761 message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
16764 'function hello(eval) {\'use strict\';}': {
16768 message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
16771 'function hello(arguments) {\'use strict\';}': {
16775 message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
16778 'function hello() { \'use strict\'; function inner(eval) {} }': {
16782 message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
16785 'function hello() { \'use strict\'; function inner(arguments) {} }': {
16789 message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
16792 ' "\\1"; \'use strict\';': {
16796 message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
16799 'function hello() { \'use strict\'; "\\1"; }': {
16803 message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
16806 'function hello() { \'use strict\'; 021; }': {
16810 message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
16813 'function hello() { \'use strict\'; ({ "\\1": 42 }); }': {
16817 message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
16820 'function hello() { \'use strict\'; ({ 021: 42 }); }': {
16824 message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
16827 'function hello() { "octal directive\\1"; "use strict"; }': {
16831 message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
16834 'function hello() { "octal directive\\1"; "octal directive\\2"; "use strict"; }': {
16838 message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
16841 'function hello() { "use strict"; function inner() { "octal directive\\1"; } }': {
16845 message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
16848 'function hello() { "use strict"; var implements; }': {
16852 message: 'Error: Line 1: Use of future reserved word in strict mode'
16855 'function hello() { "use strict"; var interface; }': {
16859 message: 'Error: Line 1: Use of future reserved word in strict mode'
16862 'function hello() { "use strict"; var package; }': {
16866 message: 'Error: Line 1: Use of future reserved word in strict mode'
16869 'function hello() { "use strict"; var private; }': {
16873 message: 'Error: Line 1: Use of future reserved word in strict mode'
16876 'function hello() { "use strict"; var protected; }': {
16880 message: 'Error: Line 1: Use of future reserved word in strict mode'
16883 'function hello() { "use strict"; var public; }': {
16887 message: 'Error: Line 1: Use of future reserved word in strict mode'
16890 'function hello() { "use strict"; var static; }': {
16894 message: 'Error: Line 1: Use of future reserved word in strict mode'
16897 'function hello() { "use strict"; var yield; }': {
16901 message: 'Error: Line 1: Use of future reserved word in strict mode'
16904 'function hello() { "use strict"; var let; }': {
16908 message: 'Error: Line 1: Use of future reserved word in strict mode'
16911 'function hello(static) { "use strict"; }': {
16915 message: 'Error: Line 1: Use of future reserved word in strict mode'
16918 'function static() { "use strict"; }': {
16922 message: 'Error: Line 1: Use of future reserved word in strict mode'
16929 message: 'Error: Line 1: Unexpected token yield'
16936 message: 'Error: Line 1: Unexpected token let'
16939 '"use strict"; function static() { }': {
16943 message: 'Error: Line 1: Use of future reserved word in strict mode'
16946 'function a(t, t) { "use strict"; }': {
16950 message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
16953 'function a(eval) { "use strict"; }': {
16957 message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
16960 'function a(package) { "use strict"; }': {
16964 message: 'Error: Line 1: Use of future reserved word in strict mode'
16967 'function a() { "use strict"; function b(t, t) { }; }': {
16971 message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
16974 '(function a(t, t) { "use strict"; })': {
16978 message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
16981 'function a() { "use strict"; (function b(t, t) { }); }': {
16985 message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
16988 '(function a(eval) { "use strict"; })': {
16992 message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
16995 '(function a(package) { "use strict"; })': {
16999 message: 'Error: Line 1: Use of future reserved word in strict mode'
17006 message: 'Error: Line 1: Unexpected end of input'
17013 message: 'Error: Line 1: Unexpected end of input'
17020 message: 'Error: Line 1: Unexpected end of input'
17032 type: 'ExpressionStatement',
17034 type: 'Identifier',
17047 type: 'ExpressionStatement',
17062 type: 'ExpressionStatement',
17077 type: 'ExpressionStatement',
17086 'parse(undefined)': {
17092 type: 'ExpressionStatement',
17094 type: 'Identifier',
17101 'parse(new String("test"))': {
17103 args: [new String('test')],
17107 type: 'ExpressionStatement',
17109 type: 'Identifier',
17116 'parse(new Number(42))': {
17118 args: [new Number(42)],
17122 type: 'ExpressionStatement',
17131 'parse(new Boolean(true))': {
17133 args: [new Boolean(true)],
17137 type: 'ExpressionStatement',
17147 property: 'Syntax',
17149 AssignmentExpression: 'AssignmentExpression',
17150 ArrayExpression: 'ArrayExpression',
17151 BlockStatement: 'BlockStatement',
17152 BinaryExpression: 'BinaryExpression',
17153 BreakStatement: 'BreakStatement',
17154 CallExpression: 'CallExpression',
17155 CatchClause: 'CatchClause',
17156 ConditionalExpression: 'ConditionalExpression',
17157 ContinueStatement: 'ContinueStatement',
17158 DoWhileStatement: 'DoWhileStatement',
17159 DebuggerStatement: 'DebuggerStatement',
17160 EmptyStatement: 'EmptyStatement',
17161 ExpressionStatement: 'ExpressionStatement',
17162 ForStatement: 'ForStatement',
17163 ForInStatement: 'ForInStatement',
17164 FunctionDeclaration: 'FunctionDeclaration',
17165 FunctionExpression: 'FunctionExpression',
17166 Identifier: 'Identifier',
17167 IfStatement: 'IfStatement',
17168 Literal: 'Literal',
17169 LabeledStatement: 'LabeledStatement',
17170 LogicalExpression: 'LogicalExpression',
17171 MemberExpression: 'MemberExpression',
17172 NewExpression: 'NewExpression',
17173 ObjectExpression: 'ObjectExpression',
17174 Program: 'Program',
17175 Property: 'Property',
17176 ReturnStatement: 'ReturnStatement',
17177 SequenceExpression: 'SequenceExpression',
17178 SwitchStatement: 'SwitchStatement',
17179 SwitchCase: 'SwitchCase',
17180 ThisExpression: 'ThisExpression',
17181 ThrowStatement: 'ThrowStatement',
17182 TryStatement: 'TryStatement',
17183 UnaryExpression: 'UnaryExpression',
17184 UpdateExpression: 'UpdateExpression',
17185 VariableDeclaration: 'VariableDeclaration',
17186 VariableDeclarator: 'VariableDeclarator',
17187 WhileStatement: 'WhileStatement',
17188 WithStatement: 'WithStatement'
17194 'Tolerant parse': {
17198 type: 'ReturnStatement',
17202 start: { line: 1, column: 0 },
17203 end: { line: 1, column: 6 }
17208 start: { line: 1, column: 0 },
17209 end: { line: 1, column: 6 }
17215 message: 'Error: Line 1: Illegal return statement'
17219 '(function () { \'use strict\'; with (i); }())': {
17222 type: 'ExpressionStatement',
17224 type: 'CallExpression',
17226 type: 'FunctionExpression',
17231 type: 'BlockStatement',
17233 type: 'ExpressionStatement',
17236 value: 'use strict',
17237 raw: '\'use strict\'',
17240 start: { line: 1, column: 15 },
17241 end: { line: 1, column: 27 }
17246 start: { line: 1, column: 15 },
17247 end: { line: 1, column: 28 }
17250 type: 'WithStatement',
17252 type: 'Identifier',
17256 start: { line: 1, column: 35 },
17257 end: { line: 1, column: 36 }
17261 type: 'EmptyStatement',
17264 start: { line: 1, column: 37 },
17265 end: { line: 1, column: 38 }
17270 start: { line: 1, column: 29 },
17271 end: { line: 1, column: 38 }
17276 start: { line: 1, column: 13 },
17277 end: { line: 1, column: 40 }
17285 start: { line: 1, column: 1 },
17286 end: { line: 1, column: 40 }
17292 start: { line: 1, column: 1 },
17293 end: { line: 1, column: 42 }
17298 start: { line: 1, column: 0 },
17299 end: { line: 1, column: 43 }
17304 start: { line: 1, column: 0 },
17305 end: { line: 1, column: 43 }
17311 message: 'Error: Line 1: Strict mode code may not include a with statement'
17315 '(function () { \'use strict\'; 021 }())': {
17318 type: 'ExpressionStatement',
17320 type: 'CallExpression',
17322 type: 'FunctionExpression',
17327 type: 'BlockStatement',
17329 type: 'ExpressionStatement',
17332 value: 'use strict',
17333 raw: '\'use strict\'',
17336 start: { line: 1, column: 15 },
17337 end: { line: 1, column: 27 }
17342 start: { line: 1, column: 15 },
17343 end: { line: 1, column: 28 }
17346 type: 'ExpressionStatement',
17353 start: { line: 1, column: 29 },
17354 end: { line: 1, column: 32 }
17359 start: { line: 1, column: 29 },
17360 end: { line: 1, column: 33 }
17365 start: { line: 1, column: 13 },
17366 end: { line: 1, column: 34 }
17374 start: { line: 1, column: 1 },
17375 end: { line: 1, column: 34 }
17381 start: { line: 1, column: 1 },
17382 end: { line: 1, column: 36 }
17387 start: { line: 1, column: 0 },
17388 end: { line: 1, column: 37 }
17393 start: { line: 1, column: 0 },
17394 end: { line: 1, column: 37 }
17400 message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
17404 '"use strict"; delete x': {
17407 type: 'ExpressionStatement',
17410 value: 'use strict',
17411 raw: '"use strict"',
17414 start: { line: 1, column: 0 },
17415 end: { line: 1, column: 12 }
17420 start: { line: 1, column: 0 },
17421 end: { line: 1, column: 13 }
17424 type: 'ExpressionStatement',
17426 type: 'UnaryExpression',
17427 operator: 'delete',
17429 type: 'Identifier',
17433 start: { line: 1, column: 21 },
17434 end: { line: 1, column: 22 }
17440 start: { line: 1, column: 14 },
17441 end: { line: 1, column: 22 }
17446 start: { line: 1, column: 14 },
17447 end: { line: 1, column: 22 }
17452 start: { line: 1, column: 0 },
17453 end: { line: 1, column: 22 }
17459 message: 'Error: Line 1: Delete of an unqualified identifier in strict mode.'
17463 '"use strict"; try {} catch (eval) {}': {
17466 type: 'ExpressionStatement',
17469 value: 'use strict',
17470 raw: '"use strict"',
17473 start: { line: 1, column: 0 },
17474 end: { line: 1, column: 12 }
17479 start: { line: 1, column: 0 },
17480 end: { line: 1, column: 13 }
17483 type: 'TryStatement',
17485 type: 'BlockStatement',
17489 start: { line: 1, column: 18 },
17490 end: { line: 1, column: 20 }
17493 guardedHandlers: [],
17495 type: 'CatchClause',
17497 type: 'Identifier',
17501 start: { line: 1, column: 28 },
17502 end: { line: 1, column: 32 }
17506 type: 'BlockStatement',
17510 start: { line: 1, column: 34 },
17511 end: { line: 1, column: 36 }
17516 start: { line: 1, column: 21 },
17517 end: { line: 1, column: 36 }
17523 start: { line: 1, column: 14 },
17524 end: { line: 1, column: 36 }
17529 start: { line: 1, column: 0 },
17530 end: { line: 1, column: 36 }
17536 message: 'Error: Line 1: Catch variable may not be eval or arguments in strict mode'
17540 '"use strict"; try {} catch (arguments) {}': {
17543 type: 'ExpressionStatement',
17546 value: 'use strict',
17547 raw: '"use strict"',
17550 start: { line: 1, column: 0 },
17551 end: { line: 1, column: 12 }
17556 start: { line: 1, column: 0 },
17557 end: { line: 1, column: 13 }
17560 type: 'TryStatement',
17562 type: 'BlockStatement',
17566 start: { line: 1, column: 18 },
17567 end: { line: 1, column: 20 }
17570 guardedHandlers: [],
17572 type: 'CatchClause',
17574 type: 'Identifier',
17578 start: { line: 1, column: 28 },
17579 end: { line: 1, column: 37 }
17583 type: 'BlockStatement',
17587 start: { line: 1, column: 39 },
17588 end: { line: 1, column: 41 }
17593 start: { line: 1, column: 21 },
17594 end: { line: 1, column: 41 }
17600 start: { line: 1, column: 14 },
17601 end: { line: 1, column: 41 }
17606 start: { line: 1, column: 0 },
17607 end: { line: 1, column: 41 }
17613 message: 'Error: Line 1: Catch variable may not be eval or arguments in strict mode'
17617 '"use strict"; var eval;': {
17620 type: 'ExpressionStatement',
17623 value: 'use strict',
17624 raw: '"use strict"',
17627 start: { line: 1, column: 0 },
17628 end: { line: 1, column: 12 }
17633 start: { line: 1, column: 0 },
17634 end: { line: 1, column: 13 }
17637 type: 'VariableDeclaration',
17639 type: 'VariableDeclarator',
17641 type: 'Identifier',
17645 start: { line: 1, column: 18 },
17646 end: { line: 1, column: 22 }
17652 start: { line: 1, column: 18 },
17653 end: { line: 1, column: 22 }
17659 start: { line: 1, column: 14 },
17660 end: { line: 1, column: 23 }
17665 start: { line: 1, column: 0 },
17666 end: { line: 1, column: 23 }
17672 message: 'Error: Line 1: Variable name may not be eval or arguments in strict mode'
17676 '"use strict"; var arguments;': {
17679 type: 'ExpressionStatement',
17682 value: 'use strict',
17683 raw: '"use strict"',
17686 start: { line: 1, column: 0 },
17687 end: { line: 1, column: 12 }
17692 start: { line: 1, column: 0 },
17693 end: { line: 1, column: 13 }
17696 type: 'VariableDeclaration',
17698 type: 'VariableDeclarator',
17700 type: 'Identifier',
17704 start: { line: 1, column: 18 },
17705 end: { line: 1, column: 27 }
17711 start: { line: 1, column: 18 },
17712 end: { line: 1, column: 27 }
17718 start: { line: 1, column: 14 },
17719 end: { line: 1, column: 28 }
17724 start: { line: 1, column: 0 },
17725 end: { line: 1, column: 28 }
17731 message: 'Error: Line 1: Variable name may not be eval or arguments in strict mode'
17735 '"use strict"; eval = 0;': {
17738 type: 'ExpressionStatement',
17741 value: 'use strict',
17742 raw: '"use strict"',
17745 start: { line: 1, column: 0 },
17746 end: { line: 1, column: 12 }
17751 start: { line: 1, column: 0 },
17752 end: { line: 1, column: 13 }
17755 type: 'ExpressionStatement',
17757 type: 'AssignmentExpression',
17760 type: 'Identifier',
17764 start: { line: 1, column: 14 },
17765 end: { line: 1, column: 18 }
17774 start: { line: 1, column: 21 },
17775 end: { line: 1, column: 22 }
17780 start: { line: 1, column: 14 },
17781 end: { line: 1, column: 22 }
17786 start: { line: 1, column: 14 },
17787 end: { line: 1, column: 23 }
17792 start: { line: 1, column: 0 },
17793 end: { line: 1, column: 23 }
17799 message: 'Error: Line 1: Assignment to eval or arguments is not allowed in strict mode'
17803 '"use strict"; eval++;': {
17806 type: 'ExpressionStatement',
17809 value: 'use strict',
17810 raw: '"use strict"',
17813 start: { line: 1, column: 0 },
17814 end: { line: 1, column: 12 }
17819 start: { line: 1, column: 0 },
17820 end: { line: 1, column: 13 }
17823 type: 'ExpressionStatement',
17825 type: 'UpdateExpression',
17828 type: 'Identifier',
17832 start: { line: 1, column: 14 },
17833 end: { line: 1, column: 18 }
17839 start: { line: 1, column: 14 },
17840 end: { line: 1, column: 20 }
17845 start: { line: 1, column: 14 },
17846 end: { line: 1, column: 21 }
17851 start: { line: 1, column: 0 },
17852 end: { line: 1, column: 21 }
17858 message: 'Error: Line 1: Postfix increment/decrement may not have eval or arguments operand in strict mode'
17862 '"use strict"; --eval;': {
17865 type: 'ExpressionStatement',
17868 value: 'use strict',
17869 raw: '"use strict"',
17872 start: { line: 1, column: 0 },
17873 end: { line: 1, column: 12 }
17878 start: { line: 1, column: 0 },
17879 end: { line: 1, column: 13 }
17882 type: 'ExpressionStatement',
17884 type: 'UpdateExpression',
17887 type: 'Identifier',
17891 start: { line: 1, column: 16 },
17892 end: { line: 1, column: 20 }
17898 start: { line: 1, column: 14 },
17899 end: { line: 1, column: 20 }
17904 start: { line: 1, column: 14 },
17905 end: { line: 1, column: 21 }
17910 start: { line: 1, column: 0 },
17911 end: { line: 1, column: 21 }
17917 message: 'Error: Line 1: Prefix increment/decrement may not have eval or arguments operand in strict mode'
17921 '"use strict"; arguments = 0;': {
17924 type: 'ExpressionStatement',
17927 value: 'use strict',
17928 raw: '"use strict"',
17931 start: { line: 1, column: 0 },
17932 end: { line: 1, column: 12 }
17937 start: { line: 1, column: 0 },
17938 end: { line: 1, column: 13 }
17941 type: 'ExpressionStatement',
17943 type: 'AssignmentExpression',
17946 type: 'Identifier',
17950 start: { line: 1, column: 14 },
17951 end: { line: 1, column: 23 }
17960 start: { line: 1, column: 26 },
17961 end: { line: 1, column: 27 }
17966 start: { line: 1, column: 14 },
17967 end: { line: 1, column: 27 }
17972 start: { line: 1, column: 14 },
17973 end: { line: 1, column: 28 }
17978 start: { line: 1, column: 0 },
17979 end: { line: 1, column: 28 }
17985 message: 'Error: Line 1: Assignment to eval or arguments is not allowed in strict mode'
17989 '"use strict"; arguments--;': {
17992 type: 'ExpressionStatement',
17995 value: 'use strict',
17996 raw: '"use strict"',
17999 start: { line: 1, column: 0 },
18000 end: { line: 1, column: 12 }
18005 start: { line: 1, column: 0 },
18006 end: { line: 1, column: 13 }
18009 type: 'ExpressionStatement',
18011 type: 'UpdateExpression',
18014 type: 'Identifier',
18018 start: { line: 1, column: 14 },
18019 end: { line: 1, column: 23 }
18025 start: { line: 1, column: 14 },
18026 end: { line: 1, column: 25 }
18031 start: { line: 1, column: 14 },
18032 end: { line: 1, column: 26 }
18037 start: { line: 1, column: 0 },
18038 end: { line: 1, column: 26 }
18044 message: 'Error: Line 1: Postfix increment/decrement may not have eval or arguments operand in strict mode'
18048 '"use strict"; ++arguments;': {
18051 type: 'ExpressionStatement',
18054 value: 'use strict',
18055 raw: '"use strict"',
18058 start: { line: 1, column: 0 },
18059 end: { line: 1, column: 12 }
18064 start: { line: 1, column: 0 },
18065 end: { line: 1, column: 13 }
18068 type: 'ExpressionStatement',
18070 type: 'UpdateExpression',
18073 type: 'Identifier',
18077 start: { line: 1, column: 16 },
18078 end: { line: 1, column: 25 }
18084 start: { line: 1, column: 14 },
18085 end: { line: 1, column: 25 }
18090 start: { line: 1, column: 14 },
18091 end: { line: 1, column: 26 }
18096 start: { line: 1, column: 0 },
18097 end: { line: 1, column: 26 }
18103 message: 'Error: Line 1: Prefix increment/decrement may not have eval or arguments operand in strict mode'
18108 '"use strict";x={y:1,y:1}': {
18111 type: 'ExpressionStatement',
18114 value: 'use strict',
18115 raw: '"use strict"',
18118 start: { line: 1, column: 0 },
18119 end: { line: 1, column: 12 }
18124 start: { line: 1, column: 0 },
18125 end: { line: 1, column: 13 }
18128 type: 'ExpressionStatement',
18130 type: 'AssignmentExpression',
18133 type: 'Identifier',
18137 start: { line: 1, column: 13 },
18138 end: { line: 1, column: 14 }
18142 type: 'ObjectExpression',
18146 type: 'Identifier',
18150 start: { line: 1, column: 16 },
18151 end: { line: 1, column: 17 }
18160 start: { line: 1, column: 18 },
18161 end: { line: 1, column: 19 }
18167 start: { line: 1, column: 16 },
18168 end: { line: 1, column: 19 }
18173 type: 'Identifier',
18177 start: { line: 1, column: 20 },
18178 end: { line: 1, column: 21 }
18187 start: { line: 1, column: 22 },
18188 end: { line: 1, column: 23 }
18194 start: { line: 1, column: 20 },
18195 end: { line: 1, column: 23 }
18200 start: { line: 1, column: 15 },
18201 end: { line: 1, column: 24 }
18206 start: { line: 1, column: 13 },
18207 end: { line: 1, column: 24 }
18212 start: { line: 1, column: 13 },
18213 end: { line: 1, column: 24 }
18218 start: { line: 1, column: 0 },
18219 end: { line: 1, column: 24 }
18225 message: 'Error: Line 1: Duplicate data property in object literal not allowed in strict mode'
18229 '"use strict"; function eval() {};': {
18232 type: 'ExpressionStatement',
18235 value: 'use strict',
18236 raw: '"use strict"',
18239 start: { line: 1, column: 0 },
18240 end: { line: 1, column: 12 }
18245 start: { line: 1, column: 0 },
18246 end: { line: 1, column: 13 }
18249 type: 'FunctionDeclaration',
18251 type: 'Identifier',
18255 start: { line: 1, column: 23 },
18256 end: { line: 1, column: 27 }
18262 type: 'BlockStatement',
18266 start: { line: 1, column: 30 },
18267 end: { line: 1, column: 32 }
18275 start: { line: 1, column: 14 },
18276 end: { line: 1, column: 32 }
18279 type: 'EmptyStatement',
18282 start: { line: 1, column: 32 },
18283 end: { line: 1, column: 33 }
18288 start: { line: 1, column: 0 },
18289 end: { line: 1, column: 33 }
18295 message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
18299 '"use strict"; function arguments() {};': {
18302 type: 'ExpressionStatement',
18305 value: 'use strict',
18306 raw: '"use strict"',
18309 start: { line: 1, column: 0 },
18310 end: { line: 1, column: 12 }
18315 start: { line: 1, column: 0 },
18316 end: { line: 1, column: 13 }
18319 type: 'FunctionDeclaration',
18321 type: 'Identifier',
18325 start: { line: 1, column: 23 },
18326 end: { line: 1, column: 32 }
18332 type: 'BlockStatement',
18336 start: { line: 1, column: 35 },
18337 end: { line: 1, column: 37 }
18345 start: { line: 1, column: 14 },
18346 end: { line: 1, column: 37 }
18349 type: 'EmptyStatement',
18352 start: { line: 1, column: 37 },
18353 end: { line: 1, column: 38 }
18358 start: { line: 1, column: 0 },
18359 end: { line: 1, column: 38 }
18365 message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
18369 '"use strict"; function interface() {};': {
18372 type: 'ExpressionStatement',
18375 value: 'use strict',
18376 raw: '"use strict"',
18379 start: { line: 1, column: 0 },
18380 end: { line: 1, column: 12 }
18385 start: { line: 1, column: 0 },
18386 end: { line: 1, column: 13 }
18389 type: 'FunctionDeclaration',
18391 type: 'Identifier',
18395 start: { line: 1, column: 23 },
18396 end: { line: 1, column: 32 }
18402 type: 'BlockStatement',
18406 start: { line: 1, column: 35 },
18407 end: { line: 1, column: 37 }
18415 start: { line: 1, column: 14 },
18416 end: { line: 1, column: 37 }
18419 type: 'EmptyStatement',
18422 start: { line: 1, column: 37 },
18423 end: { line: 1, column: 38 }
18428 start: { line: 1, column: 0 },
18429 end: { line: 1, column: 38 }
18435 message: 'Error: Line 1: Use of future reserved word in strict mode'
18439 '"use strict"; (function eval() {});': {
18442 type: 'ExpressionStatement',
18445 value: 'use strict',
18446 raw: '"use strict"',
18449 start: { line: 1, column: 0 },
18450 end: { line: 1, column: 12 }
18455 start: { line: 1, column: 0 },
18456 end: { line: 1, column: 13 }
18459 type: 'ExpressionStatement',
18461 type: 'FunctionExpression',
18463 type: 'Identifier',
18467 start: { line: 1, column: 24 },
18468 end: { line: 1, column: 28 }
18474 type: 'BlockStatement',
18478 start: { line: 1, column: 31 },
18479 end: { line: 1, column: 33 }
18487 start: { line: 1, column: 15 },
18488 end: { line: 1, column: 33 }
18493 start: { line: 1, column: 14 },
18494 end: { line: 1, column: 35 }
18499 start: { line: 1, column: 0 },
18500 end: { line: 1, column: 35 }
18506 message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
18510 '"use strict"; (function arguments() {});': {
18513 type: 'ExpressionStatement',
18516 value: 'use strict',
18517 raw: '"use strict"',
18520 start: { line: 1, column: 0 },
18521 end: { line: 1, column: 12 }
18526 start: { line: 1, column: 0 },
18527 end: { line: 1, column: 13 }
18530 type: 'ExpressionStatement',
18532 type: 'FunctionExpression',
18534 type: 'Identifier',
18538 start: { line: 1, column: 24 },
18539 end: { line: 1, column: 33 }
18545 type: 'BlockStatement',
18549 start: { line: 1, column: 36 },
18550 end: { line: 1, column: 38 }
18558 start: { line: 1, column: 15 },
18559 end: { line: 1, column: 38 }
18564 start: { line: 1, column: 14 },
18565 end: { line: 1, column: 40 }
18570 start: { line: 1, column: 0 },
18571 end: { line: 1, column: 40 }
18577 message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
18581 '"use strict"; (function interface() {});': {
18584 type: 'ExpressionStatement',
18587 value: 'use strict',
18588 raw: '"use strict"',
18591 start: { line: 1, column: 0 },
18592 end: { line: 1, column: 12 }
18597 start: { line: 1, column: 0 },
18598 end: { line: 1, column: 13 }
18601 type: 'ExpressionStatement',
18603 type: 'FunctionExpression',
18605 type: 'Identifier',
18609 start: { line: 1, column: 24 },
18610 end: { line: 1, column: 33 }
18616 type: 'BlockStatement',
18620 start: { line: 1, column: 36 },
18621 end: { line: 1, column: 38 }
18629 start: { line: 1, column: 15 },
18630 end: { line: 1, column: 38 }
18635 start: { line: 1, column: 14 },
18636 end: { line: 1, column: 40 }
18641 start: { line: 1, column: 0 },
18642 end: { line: 1, column: 40 }
18648 message: 'Error: Line 1: Use of future reserved word in strict mode'
18652 '"use strict"; function f(eval) {};': {
18655 type: 'ExpressionStatement',
18658 value: 'use strict',
18659 raw: '"use strict"',
18662 start: { line: 1, column: 0 },
18663 end: { line: 1, column: 12 }
18668 start: { line: 1, column: 0 },
18669 end: { line: 1, column: 13 }
18672 type: 'FunctionDeclaration',
18674 type: 'Identifier',
18678 start: { line: 1, column: 23 },
18679 end: { line: 1, column: 24 }
18683 type: 'Identifier',
18687 start: { line: 1, column: 25 },
18688 end: { line: 1, column: 29 }
18693 type: 'BlockStatement',
18697 start: { line: 1, column: 31 },
18698 end: { line: 1, column: 33 }
18706 start: { line: 1, column: 14 },
18707 end: { line: 1, column: 33 }
18710 type: 'EmptyStatement',
18713 start: { line: 1, column: 33 },
18714 end: { line: 1, column: 34 }
18719 start: { line: 1, column: 0 },
18720 end: { line: 1, column: 34 }
18726 message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
18730 '"use strict"; function f(arguments) {};': {
18733 type: 'ExpressionStatement',
18736 value: 'use strict',
18737 raw: '"use strict"',
18740 start: { line: 1, column: 0 },
18741 end: { line: 1, column: 12 }
18746 start: { line: 1, column: 0 },
18747 end: { line: 1, column: 13 }
18750 type: 'FunctionDeclaration',
18752 type: 'Identifier',
18756 start: { line: 1, column: 23 },
18757 end: { line: 1, column: 24 }
18761 type: 'Identifier',
18765 start: { line: 1, column: 25 },
18766 end: { line: 1, column: 34 }
18771 type: 'BlockStatement',
18775 start: { line: 1, column: 36 },
18776 end: { line: 1, column: 38 }
18784 start: { line: 1, column: 14 },
18785 end: { line: 1, column: 38 }
18788 type: 'EmptyStatement',
18791 start: { line: 1, column: 38 },
18792 end: { line: 1, column: 39 }
18797 start: { line: 1, column: 0 },
18798 end: { line: 1, column: 39 }
18804 message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
18808 '"use strict"; function f(foo, foo) {};': {
18811 type: 'ExpressionStatement',
18814 value: 'use strict',
18815 raw: '"use strict"',
18818 start: { line: 1, column: 0 },
18819 end: { line: 1, column: 12 }
18824 start: { line: 1, column: 0 },
18825 end: { line: 1, column: 13 }
18828 type: 'FunctionDeclaration',
18830 type: 'Identifier',
18834 start: { line: 1, column: 23 },
18835 end: { line: 1, column: 24 }
18839 type: 'Identifier',
18843 start: { line: 1, column: 25 },
18844 end: { line: 1, column: 28 }
18847 type: 'Identifier',
18851 start: { line: 1, column: 31 },
18852 end: { line: 1, column: 34 }
18857 type: 'BlockStatement',
18861 start: { line: 1, column: 36 },
18862 end: { line: 1, column: 38 }
18870 start: { line: 1, column: 14 },
18871 end: { line: 1, column: 38 }
18874 type: 'EmptyStatement',
18877 start: { line: 1, column: 38 },
18878 end: { line: 1, column: 39 }
18883 start: { line: 1, column: 0 },
18884 end: { line: 1, column: 39 }
18890 message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
18894 '"use strict"; (function f(eval) {});': {
18897 type: 'ExpressionStatement',
18900 value: 'use strict',
18901 raw: '"use strict"',
18904 start: { line: 1, column: 0 },
18905 end: { line: 1, column: 12 }
18910 start: { line: 1, column: 0 },
18911 end: { line: 1, column: 13 }
18914 type: 'ExpressionStatement',
18916 type: 'FunctionExpression',
18918 type: 'Identifier',
18922 start: { line: 1, column: 24 },
18923 end: { line: 1, column: 25 }
18927 type: 'Identifier',
18931 start: { line: 1, column: 26 },
18932 end: { line: 1, column: 30 }
18937 type: 'BlockStatement',
18941 start: { line: 1, column: 32 },
18942 end: { line: 1, column: 34 }
18950 start: { line: 1, column: 15 },
18951 end: { line: 1, column: 34 }
18956 start: { line: 1, column: 14 },
18957 end: { line: 1, column: 36 }
18962 start: { line: 1, column: 0 },
18963 end: { line: 1, column: 36 }
18969 message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
18974 '"use strict"; (function f(arguments) {});': {
18977 type: 'ExpressionStatement',
18980 value: 'use strict',
18981 raw: '"use strict"',
18984 start: { line: 1, column: 0 },
18985 end: { line: 1, column: 12 }
18990 start: { line: 1, column: 0 },
18991 end: { line: 1, column: 13 }
18994 type: 'ExpressionStatement',
18996 type: 'FunctionExpression',
18998 type: 'Identifier',
19002 start: { line: 1, column: 24 },
19003 end: { line: 1, column: 25 }
19007 type: 'Identifier',
19011 start: { line: 1, column: 26 },
19012 end: { line: 1, column: 35 }
19017 type: 'BlockStatement',
19021 start: { line: 1, column: 37 },
19022 end: { line: 1, column: 39 }
19030 start: { line: 1, column: 15 },
19031 end: { line: 1, column: 39 }
19036 start: { line: 1, column: 14 },
19037 end: { line: 1, column: 41 }
19042 start: { line: 1, column: 0 },
19043 end: { line: 1, column: 41 }
19049 message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
19053 '"use strict"; (function f(foo, foo) {});': {
19056 type: 'ExpressionStatement',
19059 value: 'use strict',
19060 raw: '"use strict"',
19063 start: { line: 1, column: 0 },
19064 end: { line: 1, column: 12 }
19069 start: { line: 1, column: 0 },
19070 end: { line: 1, column: 13 }
19073 type: 'ExpressionStatement',
19075 type: 'FunctionExpression',
19077 type: 'Identifier',
19081 start: { line: 1, column: 24 },
19082 end: { line: 1, column: 25 }
19086 type: 'Identifier',
19090 start: { line: 1, column: 26 },
19091 end: { line: 1, column: 29 }
19094 type: 'Identifier',
19098 start: { line: 1, column: 32 },
19099 end: { line: 1, column: 35 }
19104 type: 'BlockStatement',
19108 start: { line: 1, column: 37 },
19109 end: { line: 1, column: 39 }
19117 start: { line: 1, column: 15 },
19118 end: { line: 1, column: 39 }
19123 start: { line: 1, column: 14 },
19124 end: { line: 1, column: 41 }
19129 start: { line: 1, column: 0 },
19130 end: { line: 1, column: 41 }
19136 message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
19140 '"use strict"; x = { set f(eval) {} }' : {
19143 type: 'ExpressionStatement',
19146 value: 'use strict',
19147 raw: '"use strict"',
19150 start: { line: 1, column: 0 },
19151 end: { line: 1, column: 12 }
19156 start: { line: 1, column: 0 },
19157 end: { line: 1, column: 13 }
19160 type: 'ExpressionStatement',
19162 type: 'AssignmentExpression',
19165 type: 'Identifier',
19169 start: { line: 1, column: 14 },
19170 end: { line: 1, column: 15 }
19174 type: 'ObjectExpression',
19178 type: 'Identifier',
19182 start: { line: 1, column: 24 },
19183 end: { line: 1, column: 25 }
19187 type: 'FunctionExpression',
19190 type: 'Identifier',
19194 start: { line: 1, column: 26 },
19195 end: { line: 1, column: 30 }
19200 type: 'BlockStatement',
19204 start: { line: 1, column: 32 },
19205 end: { line: 1, column: 34 }
19213 start: { line: 1, column: 32 },
19214 end: { line: 1, column: 34 }
19220 start: { line: 1, column: 20 },
19221 end: { line: 1, column: 34 }
19226 start: { line: 1, column: 18 },
19227 end: { line: 1, column: 36 }
19232 start: { line: 1, column: 14 },
19233 end: { line: 1, column: 36 }
19238 start: { line: 1, column: 14 },
19239 end: { line: 1, column: 36 }
19244 start: { line: 1, column: 0 },
19245 end: { line: 1, column: 36 }
19251 message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
19255 'function hello() { "octal directive\\1"; "use strict"; }': {
19258 type: 'FunctionDeclaration',
19260 type: 'Identifier',
19264 start: { line: 1, column: 9 },
19265 end: { line: 1, column: 14 }
19271 type: 'BlockStatement',
19273 type: 'ExpressionStatement',
19276 value: 'octal directive\u0001',
19277 raw: '"octal directive\\1"',
19280 start: { line: 1, column: 19 },
19281 end: { line: 1, column: 38 }
19286 start: { line: 1, column: 19 },
19287 end: { line: 1, column: 39 }
19290 type: 'ExpressionStatement',
19293 value: 'use strict',
19294 raw: '"use strict"',
19297 start: { line: 1, column: 40 },
19298 end: { line: 1, column: 52 }
19303 start: { line: 1, column: 40 },
19304 end: { line: 1, column: 53 }
19309 start: { line: 1, column: 17 },
19310 end: { line: 1, column: 55 }
19318 start: { line: 1, column: 0 },
19319 end: { line: 1, column: 55 }
19324 start: { line: 1, column: 0 },
19325 end: { line: 1, column: 55 }
19331 message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
19335 '"\\1"; \'use strict\';': {
19338 type: 'ExpressionStatement',
19345 start: { line: 1, column: 0 },
19346 end: { line: 1, column: 4 }
19351 start: { line: 1, column: 0 },
19352 end: { line: 1, column: 5 }
19355 type: 'ExpressionStatement',
19358 value: 'use strict',
19359 raw: '\'use strict\'',
19362 start: { line: 1, column: 6 },
19363 end: { line: 1, column: 18 }
19368 start: { line: 1, column: 6 },
19369 end: { line: 1, column: 19 }
19374 start: { line: 1, column: 0 },
19375 end: { line: 1, column: 19 }
19381 message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
19385 '"use strict"; var x = { 014: 3}': {
19388 type: 'ExpressionStatement',
19391 value: 'use strict',
19392 raw: '"use strict"',
19395 start: { line: 1, column: 0 },
19396 end: { line: 1, column: 12 }
19401 start: { line: 1, column: 0 },
19402 end: { line: 1, column: 13 }
19405 type: 'VariableDeclaration',
19407 type: 'VariableDeclarator',
19409 type: 'Identifier',
19413 start: { line: 1, column: 18 },
19414 end: { line: 1, column: 19 }
19418 type: 'ObjectExpression',
19427 start: { line: 1, column: 24 },
19428 end: { line: 1, column: 27 }
19437 start: { line: 1, column: 29 },
19438 end: { line: 1, column: 30 }
19444 start: { line: 1, column: 24 },
19445 end: { line: 1, column: 30 }
19450 start: { line: 1, column: 22 },
19451 end: { line: 1, column: 31 }
19456 start: { line: 1, column: 18 },
19457 end: { line: 1, column: 31 }
19463 start: { line: 1, column: 14 },
19464 end: { line: 1, column: 31 }
19469 start: { line: 1, column: 0 },
19470 end: { line: 1, column: 31 }
19476 message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
19480 '"use strict"; var x = { get i() {}, get i() {} }': {
19483 type: 'ExpressionStatement',
19486 value: 'use strict',
19487 raw: '"use strict"',
19490 start: { line: 1, column: 0 },
19491 end: { line: 1, column: 12 }
19496 start: { line: 1, column: 0 },
19497 end: { line: 1, column: 13 }
19500 type: 'VariableDeclaration',
19502 type: 'VariableDeclarator',
19504 type: 'Identifier',
19508 start: { line: 1, column: 18 },
19509 end: { line: 1, column: 19 }
19513 type: 'ObjectExpression',
19517 type: 'Identifier',
19521 start: { line: 1, column: 28 },
19522 end: { line: 1, column: 29 }
19526 type: 'FunctionExpression',
19531 type: 'BlockStatement',
19535 start: { line: 1, column: 32 },
19536 end: { line: 1, column: 34 }
19544 start: { line: 1, column: 32 },
19545 end: { line: 1, column: 34 }
19551 start: { line: 1, column: 24 },
19552 end: { line: 1, column: 34 }
19557 type: 'Identifier',
19561 start: { line: 1, column: 40 },
19562 end: { line: 1, column: 41 }
19566 type: 'FunctionExpression',
19571 type: 'BlockStatement',
19575 start: { line: 1, column: 44 },
19576 end: { line: 1, column: 46 }
19584 start: { line: 1, column: 44 },
19585 end: { line: 1, column: 46 }
19591 start: { line: 1, column: 36 },
19592 end: { line: 1, column: 46 }
19597 start: { line: 1, column: 22 },
19598 end: { line: 1, column: 48 }
19603 start: { line: 1, column: 18 },
19604 end: { line: 1, column: 48 }
19610 start: { line: 1, column: 14 },
19611 end: { line: 1, column: 48 }
19616 start: { line: 1, column: 0 },
19617 end: { line: 1, column: 48 }
19623 message: 'Error: Line 1: Object literal may not have multiple get/set accessors with the same name'
19627 '"use strict"; var x = { i: 42, get i() {} }': {
19630 type: 'ExpressionStatement',
19633 value: 'use strict',
19634 raw: '"use strict"',
19637 start: { line: 1, column: 0 },
19638 end: { line: 1, column: 12 }
19643 start: { line: 1, column: 0 },
19644 end: { line: 1, column: 13 }
19647 type: 'VariableDeclaration',
19649 type: 'VariableDeclarator',
19651 type: 'Identifier',
19655 start: { line: 1, column: 18 },
19656 end: { line: 1, column: 19 }
19660 type: 'ObjectExpression',
19664 type: 'Identifier',
19668 start: { line: 1, column: 24 },
19669 end: { line: 1, column: 25 }
19678 start: { line: 1, column: 27 },
19679 end: { line: 1, column: 29 }
19685 start: { line: 1, column: 24 },
19686 end: { line: 1, column: 29 }
19691 type: 'Identifier',
19695 start: { line: 1, column: 35 },
19696 end: { line: 1, column: 36 }
19700 type: 'FunctionExpression',
19705 type: 'BlockStatement',
19709 start: { line: 1, column: 39 },
19710 end: { line: 1, column: 41 }
19718 start: { line: 1, column: 39 },
19719 end: { line: 1, column: 41 }
19725 start: { line: 1, column: 31 },
19726 end: { line: 1, column: 41 }
19731 start: { line: 1, column: 22 },
19732 end: { line: 1, column: 43 }
19737 start: { line: 1, column: 18 },
19738 end: { line: 1, column: 43 }
19744 start: { line: 1, column: 14 },
19745 end: { line: 1, column: 43 }
19750 start: { line: 1, column: 0 },
19751 end: { line: 1, column: 43 }
19757 message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
19761 '"use strict"; var x = { set i(x) {}, i: 42 }': {
19764 type: 'ExpressionStatement',
19767 value: 'use strict',
19768 raw: '"use strict"',
19771 start: { line: 1, column: 0 },
19772 end: { line: 1, column: 12 }
19777 start: { line: 1, column: 0 },
19778 end: { line: 1, column: 13 }
19781 type: 'VariableDeclaration',
19783 type: 'VariableDeclarator',
19785 type: 'Identifier',
19789 start: { line: 1, column: 18 },
19790 end: { line: 1, column: 19 }
19794 type: 'ObjectExpression',
19798 type: 'Identifier',
19802 start: { line: 1, column: 28 },
19803 end: { line: 1, column: 29 }
19807 type: 'FunctionExpression',
19810 type: 'Identifier',
19814 start: { line: 1, column: 30 },
19815 end: { line: 1, column: 31 }
19820 type: 'BlockStatement',
19824 start: { line: 1, column: 33 },
19825 end: { line: 1, column: 35 }
19833 start: { line: 1, column: 33 },
19834 end: { line: 1, column: 35 }
19840 start: { line: 1, column: 24 },
19841 end: { line: 1, column: 35 }
19846 type: 'Identifier',
19850 start: { line: 1, column: 37 },
19851 end: { line: 1, column: 38 }
19860 start: { line: 1, column: 40 },
19861 end: { line: 1, column: 42 }
19867 start: { line: 1, column: 37 },
19868 end: { line: 1, column: 42 }
19873 start: { line: 1, column: 22 },
19874 end: { line: 1, column: 44 }
19879 start: { line: 1, column: 18 },
19880 end: { line: 1, column: 44 }
19886 start: { line: 1, column: 14 },
19887 end: { line: 1, column: 44 }
19892 start: { line: 1, column: 0 },
19893 end: { line: 1, column: 44 }
19899 message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
19905 '({ set s() { } })': {
19908 type: 'ExpressionStatement',
19910 type: 'ObjectExpression',
19914 type: 'Identifier',
19918 start: { line: 1, column: 7 },
19919 end: { line: 1, column: 8 }
19923 type: 'FunctionExpression',
19928 type: 'BlockStatement',
19932 start: { line: 1, column: 11 },
19933 end: { line: 1, column: 14 }
19941 start: { line: 1, column: 11 },
19942 end: { line: 1, column: 14 }
19948 start: { line: 1, column: 3 },
19949 end: { line: 1, column: 14 }
19954 start: { line: 1, column: 1 },
19955 end: { line: 1, column: 16 }
19960 start: { line: 1, column: 0 },
19961 end: { line: 1, column: 17 }
19966 start: { line: 1, column: 0 },
19967 end: { line: 1, column: 17 }
19973 message: 'Error: Line 1: Unexpected token )'
19977 'foo("bar") = baz': {
19980 type: 'ExpressionStatement',
19982 type: 'AssignmentExpression',
19985 type: 'CallExpression',
19987 type: 'Identifier',
19991 start: { line: 1, column: 0 },
19992 end: { line: 1, column: 3 }
20001 start: { line: 1, column: 4 },
20002 end: { line: 1, column: 9 }
20007 start: { line: 1, column: 0 },
20008 end: { line: 1, column: 10 }
20012 type: 'Identifier',
20016 start: { line: 1, column: 13 },
20017 end: { line: 1, column: 16 }
20022 start: { line: 1, column: 0 },
20023 end: { line: 1, column: 16 }
20028 start: { line: 1, column: 0 },
20029 end: { line: 1, column: 16 }
20034 start: { line: 1, column: 0 },
20035 end: { line: 1, column: 16 }
20041 message: 'Error: Line 1: Invalid left-hand side in assignment'
20048 type: 'ExpressionStatement',
20050 type: 'AssignmentExpression',
20058 start: { line: 1, column: 0 },
20059 end: { line: 1, column: 1 }
20068 start: { line: 1, column: 4 },
20069 end: { line: 1, column: 5 }
20074 start: { line: 1, column: 0 },
20075 end: { line: 1, column: 5 }
20080 start: { line: 1, column: 0 },
20081 end: { line: 1, column: 5 }
20086 start: { line: 1, column: 0 },
20087 end: { line: 1, column: 5 }
20093 message: 'Error: Line 1: Invalid left-hand side in assignment'
20100 type: 'ExpressionStatement',
20102 type: 'UpdateExpression',
20110 start: { line: 1, column: 0 },
20111 end: { line: 1, column: 1 }
20117 start: { line: 1, column: 0 },
20118 end: { line: 1, column: 3 }
20123 start: { line: 1, column: 0 },
20124 end: { line: 1, column: 3 }
20129 start: { line: 1, column: 0 },
20130 end: { line: 1, column: 3 }
20136 message: 'Error: Line 1: Invalid left-hand side in assignment'
20143 type: 'ExpressionStatement',
20145 type: 'UpdateExpression',
20153 start: { line: 1, column: 2 },
20154 end: { line: 1, column: 3 }
20160 start: { line: 1, column: 0 },
20161 end: { line: 1, column: 3 }
20166 start: { line: 1, column: 0 },
20167 end: { line: 1, column: 3 }
20172 start: { line: 1, column: 0 },
20173 end: { line: 1, column: 3 }
20179 message: 'Error: Line 1: Invalid left-hand side in assignment'
20183 'for (5 in []) {}': {
20186 type: 'ForInStatement',
20193 start: { line: 1, column: 5 },
20194 end: { line: 1, column: 6 }
20198 type: 'ArrayExpression',
20202 start: { line: 1, column: 10 },
20203 end: { line: 1, column: 12 }
20207 type: 'BlockStatement',
20211 start: { line: 1, column: 14 },
20212 end: { line: 1, column: 16 }
20218 start: { line: 1, column: 0 },
20219 end: { line: 1, column: 16 }
20224 start: { line: 1, column: 0 },
20225 end: { line: 1, column: 16 }
20231 message: 'Error: Line 1: Invalid left-hand side in for-in'