UNPKG

751 kBJavaScriptView Raw
1/*
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>
9
10 Redistribution and use in source and binary forms, with or without
11 modification, are permitted provided that the following conditions are met:
12
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.
18
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.
29*/
30
31var testFixture = {
32
33 'Primary Expression': {
34
35 'this\n': {
36 type: 'Program',
37 body: [{
38 type: 'ExpressionStatement',
39 expression: {
40 type: 'ThisExpression',
41 range: [0, 4],
42 loc: {
43 start: { line: 1, column: 0 },
44 end: { line: 1, column: 4 }
45 }
46 },
47 range: [0, 5],
48 loc: {
49 start: { line: 1, column: 0 },
50 end: { line: 2, column: 0 }
51 }
52 }],
53 range: [0, 5],
54 loc: {
55 start: { line: 1, column: 0 },
56 end: { line: 2, column: 0 }
57 },
58 tokens: [{
59 type: 'Keyword',
60 value: 'this',
61 range: [0, 4],
62 loc: {
63 start: { line: 1, column: 0 },
64 end: { line: 1, column: 4 }
65 }
66 }]
67 },
68
69 'null\n': {
70 type: 'Program',
71 body: [{
72 type: 'ExpressionStatement',
73 expression: {
74 type: 'Literal',
75 value: null,
76 raw: 'null',
77 range: [0, 4],
78 loc: {
79 start: { line: 1, column: 0 },
80 end: { line: 1, column: 4 }
81 }
82 },
83 range: [0, 5],
84 loc: {
85 start: { line: 1, column: 0 },
86 end: { line: 2, column: 0 }
87 }
88 }],
89 range: [0, 5],
90 loc: {
91 start: { line: 1, column: 0 },
92 end: { line: 2, column: 0 }
93 },
94 tokens: [{
95 type: 'Null',
96 value: 'null',
97 range: [0, 4],
98 loc: {
99 start: { line: 1, column: 0 },
100 end: { line: 1, column: 4 }
101 }
102 }]
103 },
104
105 '\n 42\n\n': {
106 type: 'Program',
107 body: [{
108 type: 'ExpressionStatement',
109 expression: {
110 type: 'Literal',
111 value: 42,
112 raw: '42',
113 range: [5, 7],
114 loc: {
115 start: { line: 2, column: 4 },
116 end: { line: 2, column: 6 }
117 }
118 },
119 range: [5, 9],
120 loc: {
121 start: { line: 2, column: 4 },
122 end: { line: 4, column: 0 }
123 }
124 }],
125 range: [5, 9],
126 loc: {
127 start: { line: 2, column: 4 },
128 end: { line: 4, column: 0 }
129 },
130 tokens: [{
131 type: 'Numeric',
132 value: '42',
133 range: [5, 7],
134 loc: {
135 start: { line: 2, column: 4 },
136 end: { line: 2, column: 6 }
137 }
138 }]
139 },
140
141 '(1 + 2 ) * 3': {
142 type: 'ExpressionStatement',
143 expression: {
144 type: 'BinaryExpression',
145 operator: '*',
146 left: {
147 type: 'BinaryExpression',
148 operator: '+',
149 left: {
150 type: 'Literal',
151 value: 1,
152 raw: '1',
153 range: [1, 2],
154 loc: {
155 start: { line: 1, column: 1 },
156 end: { line: 1, column: 2 }
157 }
158 },
159 right: {
160 type: 'Literal',
161 value: 2,
162 raw: '2',
163 range: [5, 6],
164 loc: {
165 start: { line: 1, column: 5 },
166 end: { line: 1, column: 6 }
167 }
168 },
169 range: [1, 6],
170 loc: {
171 start: { line: 1, column: 1 },
172 end: { line: 1, column: 6 }
173 }
174 },
175 right: {
176 type: 'Literal',
177 value: 3,
178 raw: '3',
179 range: [11, 12],
180 loc: {
181 start: { line: 1, column: 11 },
182 end: { line: 1, column: 12 }
183 }
184 },
185 range: [0, 12],
186 loc: {
187 start: { line: 1, column: 0 },
188 end: { line: 1, column: 12 }
189 }
190 },
191 range: [0, 12],
192 loc: {
193 start: { line: 1, column: 0 },
194 end: { line: 1, column: 12 }
195 }
196 }
197
198 },
199
200 'Grouping Operator': {
201
202 '(1) + (2 ) + 3': {
203 type: 'ExpressionStatement',
204 expression: {
205 type: 'BinaryExpression',
206 operator: '+',
207 left: {
208 type: 'BinaryExpression',
209 operator: '+',
210 left: {
211 type: 'Literal',
212 value: 1,
213 raw: '1',
214 range: [1, 2],
215 loc: {
216 start: { line: 1, column: 1 },
217 end: { line: 1, column: 2 }
218 }
219 },
220 right: {
221 type: 'Literal',
222 value: 2,
223 raw: '2',
224 range: [7, 8],
225 loc: {
226 start: { line: 1, column: 7 },
227 end: { line: 1, column: 8 }
228 }
229 },
230 range: [0, 11],
231 loc: {
232 start: { line: 1, column: 0 },
233 end: { line: 1, column: 11 }
234 }
235 },
236 right: {
237 type: 'Literal',
238 value: 3,
239 raw: '3',
240 range: [14, 15],
241 loc: {
242 start: { line: 1, column: 14 },
243 end: { line: 1, column: 15 }
244 }
245 },
246 range: [0, 15],
247 loc: {
248 start: { line: 1, column: 0 },
249 end: { line: 1, column: 15 }
250 }
251 },
252 range: [0, 15],
253 loc: {
254 start: { line: 1, column: 0 },
255 end: { line: 1, column: 15 }
256 }
257 },
258
259 '4 + 5 << (6)': {
260 type: 'ExpressionStatement',
261 expression: {
262 type: 'BinaryExpression',
263 operator: '<<',
264 left: {
265 type: 'BinaryExpression',
266 operator: '+',
267 left: {
268 type: 'Literal',
269 value: 4,
270 raw: '4',
271 range: [0, 1],
272 loc: {
273 start: { line: 1, column: 0 },
274 end: { line: 1, column: 1 }
275 }
276 },
277 right: {
278 type: 'Literal',
279 value: 5,
280 raw: '5',
281 range: [4, 5],
282 loc: {
283 start: { line: 1, column: 4 },
284 end: { line: 1, column: 5 }
285 }
286 },
287 range: [0, 5],
288 loc: {
289 start: { line: 1, column: 0 },
290 end: { line: 1, column: 5 }
291 }
292 },
293 right: {
294 type: 'Literal',
295 value: 6,
296 raw: '6',
297 range: [10, 11],
298 loc: {
299 start: { line: 1, column: 10 },
300 end: { line: 1, column: 11 }
301 }
302 },
303 range: [0, 12],
304 loc: {
305 start: { line: 1, column: 0 },
306 end: { line: 1, column: 12 }
307 }
308 },
309 range: [0, 12],
310 loc: {
311 start: { line: 1, column: 0 },
312 end: { line: 1, column: 12 }
313 }
314 }
315
316 },
317
318 'Array Initializer': {
319
320 'x = []': {
321 type: 'Program',
322 body: [{
323 type: 'ExpressionStatement',
324 expression: {
325 type: 'AssignmentExpression',
326 operator: '=',
327 left: {
328 type: 'Identifier',
329 name: 'x',
330 range: [0, 1],
331 loc: {
332 start: { line: 1, column: 0 },
333 end: { line: 1, column: 1 }
334 }
335 },
336 right: {
337 type: 'ArrayExpression',
338 elements: [],
339 range: [4, 6],
340 loc: {
341 start: { line: 1, column: 4 },
342 end: { line: 1, column: 6 }
343 }
344 },
345 range: [0, 6],
346 loc: {
347 start: { line: 1, column: 0 },
348 end: { line: 1, column: 6 }
349 }
350 },
351 range: [0, 6],
352 loc: {
353 start: { line: 1, column: 0 },
354 end: { line: 1, column: 6 }
355 }
356 }],
357 range: [0, 6],
358 loc: {
359 start: { line: 1, column: 0 },
360 end: { line: 1, column: 6 }
361 },
362 tokens: [{
363 type: 'Identifier',
364 value: 'x',
365 range: [0, 1],
366 loc: {
367 start: { line: 1, column: 0 },
368 end: { line: 1, column: 1 }
369 }
370 }, {
371 type: 'Punctuator',
372 value: '=',
373 range: [2, 3],
374 loc: {
375 start: { line: 1, column: 2 },
376 end: { line: 1, column: 3 }
377 }
378 }, {
379 type: 'Punctuator',
380 value: '[',
381 range: [4, 5],
382 loc: {
383 start: { line: 1, column: 4 },
384 end: { line: 1, column: 5 }
385 }
386 }, {
387 type: 'Punctuator',
388 value: ']',
389 range: [5, 6],
390 loc: {
391 start: { line: 1, column: 5 },
392 end: { line: 1, column: 6 }
393 }
394 }]
395 },
396
397 'x = [ ]': {
398 type: 'ExpressionStatement',
399 expression: {
400 type: 'AssignmentExpression',
401 operator: '=',
402 left: {
403 type: 'Identifier',
404 name: 'x',
405 range: [0, 1],
406 loc: {
407 start: { line: 1, column: 0 },
408 end: { line: 1, column: 1 }
409 }
410 },
411 right: {
412 type: 'ArrayExpression',
413 elements: [],
414 range: [4, 7],
415 loc: {
416 start: { line: 1, column: 4 },
417 end: { line: 1, column: 7 }
418 }
419 },
420 range: [0, 7],
421 loc: {
422 start: { line: 1, column: 0 },
423 end: { line: 1, column: 7 }
424 }
425 },
426 range: [0, 7],
427 loc: {
428 start: { line: 1, column: 0 },
429 end: { line: 1, column: 7 }
430 }
431 },
432
433 'x = [ 42 ]': {
434 type: 'ExpressionStatement',
435 expression: {
436 type: 'AssignmentExpression',
437 operator: '=',
438 left: {
439 type: 'Identifier',
440 name: 'x',
441 range: [0, 1],
442 loc: {
443 start: { line: 1, column: 0 },
444 end: { line: 1, column: 1 }
445 }
446 },
447 right: {
448 type: 'ArrayExpression',
449 elements: [{
450 type: 'Literal',
451 value: 42,
452 raw: '42',
453 range: [6, 8],
454 loc: {
455 start: { line: 1, column: 6 },
456 end: { line: 1, column: 8 }
457 }
458 }],
459 range: [4, 10],
460 loc: {
461 start: { line: 1, column: 4 },
462 end: { line: 1, column: 10 }
463 }
464 },
465 range: [0, 10],
466 loc: {
467 start: { line: 1, column: 0 },
468 end: { line: 1, column: 10 }
469 }
470 },
471 range: [0, 10],
472 loc: {
473 start: { line: 1, column: 0 },
474 end: { line: 1, column: 10 }
475 }
476 },
477
478 'x = [ 42, ]': {
479 type: 'ExpressionStatement',
480 expression: {
481 type: 'AssignmentExpression',
482 operator: '=',
483 left: {
484 type: 'Identifier',
485 name: 'x',
486 range: [0, 1],
487 loc: {
488 start: { line: 1, column: 0 },
489 end: { line: 1, column: 1 }
490 }
491 },
492 right: {
493 type: 'ArrayExpression',
494 elements: [{
495 type: 'Literal',
496 value: 42,
497 raw: '42',
498 range: [6, 8],
499 loc: {
500 start: { line: 1, column: 6 },
501 end: { line: 1, column: 8 }
502 }
503 }],
504 range: [4, 11],
505 loc: {
506 start: { line: 1, column: 4 },
507 end: { line: 1, column: 11 }
508 }
509 },
510 range: [0, 11],
511 loc: {
512 start: { line: 1, column: 0 },
513 end: { line: 1, column: 11 }
514 }
515 },
516 range: [0, 11],
517 loc: {
518 start: { line: 1, column: 0 },
519 end: { line: 1, column: 11 }
520 }
521 },
522
523 'x = [ ,, 42 ]': {
524 type: 'ExpressionStatement',
525 expression: {
526 type: 'AssignmentExpression',
527 operator: '=',
528 left: {
529 type: 'Identifier',
530 name: 'x',
531 range: [0, 1],
532 loc: {
533 start: { line: 1, column: 0 },
534 end: { line: 1, column: 1 }
535 }
536 },
537 right: {
538 type: 'ArrayExpression',
539 elements: [
540 null,
541 null,
542 {
543 type: 'Literal',
544 value: 42,
545 raw: '42',
546 range: [9, 11],
547 loc: {
548 start: { line: 1, column: 9 },
549 end: { line: 1, column: 11 }
550 }
551 }],
552 range: [4, 13],
553 loc: {
554 start: { line: 1, column: 4 },
555 end: { line: 1, column: 13 }
556 }
557 },
558 range: [0, 13],
559 loc: {
560 start: { line: 1, column: 0 },
561 end: { line: 1, column: 13 }
562 }
563 },
564 range: [0, 13],
565 loc: {
566 start: { line: 1, column: 0 },
567 end: { line: 1, column: 13 }
568 }
569 },
570
571 'x = [ 1, 2, 3, ]': {
572 type: 'ExpressionStatement',
573 expression: {
574 type: 'AssignmentExpression',
575 operator: '=',
576 left: {
577 type: 'Identifier',
578 name: 'x',
579 range: [0, 1],
580 loc: {
581 start: { line: 1, column: 0 },
582 end: { line: 1, column: 1 }
583 }
584 },
585 right: {
586 type: 'ArrayExpression',
587 elements: [{
588 type: 'Literal',
589 value: 1,
590 raw: '1',
591 range: [6, 7],
592 loc: {
593 start: { line: 1, column: 6 },
594 end: { line: 1, column: 7 }
595 }
596 }, {
597 type: 'Literal',
598 value: 2,
599 raw: '2',
600 range: [9, 10],
601 loc: {
602 start: { line: 1, column: 9 },
603 end: { line: 1, column: 10 }
604 }
605 }, {
606 type: 'Literal',
607 value: 3,
608 raw: '3',
609 range: [12, 13],
610 loc: {
611 start: { line: 1, column: 12 },
612 end: { line: 1, column: 13 }
613 }
614 }],
615 range: [4, 16],
616 loc: {
617 start: { line: 1, column: 4 },
618 end: { line: 1, column: 16 }
619 }
620 },
621 range: [0, 16],
622 loc: {
623 start: { line: 1, column: 0 },
624 end: { line: 1, column: 16 }
625 }
626 },
627 range: [0, 16],
628 loc: {
629 start: { line: 1, column: 0 },
630 end: { line: 1, column: 16 }
631 }
632 },
633
634 'x = [ 1, 2,, 3, ]': {
635 type: 'ExpressionStatement',
636 expression: {
637 type: 'AssignmentExpression',
638 operator: '=',
639 left: {
640 type: 'Identifier',
641 name: 'x',
642 range: [0, 1],
643 loc: {
644 start: { line: 1, column: 0 },
645 end: { line: 1, column: 1 }
646 }
647 },
648 right: {
649 type: 'ArrayExpression',
650 elements: [{
651 type: 'Literal',
652 value: 1,
653 raw: '1',
654 range: [6, 7],
655 loc: {
656 start: { line: 1, column: 6 },
657 end: { line: 1, column: 7 }
658 }
659 }, {
660 type: 'Literal',
661 value: 2,
662 raw: '2',
663 range: [9, 10],
664 loc: {
665 start: { line: 1, column: 9 },
666 end: { line: 1, column: 10 }
667 }
668 }, null, {
669 type: 'Literal',
670 value: 3,
671 raw: '3',
672 range: [13, 14],
673 loc: {
674 start: { line: 1, column: 13 },
675 end: { line: 1, column: 14 }
676 }
677 }],
678 range: [4, 17],
679 loc: {
680 start: { line: 1, column: 4 },
681 end: { line: 1, column: 17 }
682 }
683 },
684 range: [0, 17],
685 loc: {
686 start: { line: 1, column: 0 },
687 end: { line: 1, column: 17 }
688 }
689 },
690 range: [0, 17],
691 loc: {
692 start: { line: 1, column: 0 },
693 end: { line: 1, column: 17 }
694 }
695 },
696
697 'x = [ "finally", "for" ]': {
698 type: 'ExpressionStatement',
699 expression: {
700 type: 'AssignmentExpression',
701 operator: '=',
702 left: {
703 type: 'Identifier',
704 name: 'x',
705 range: [0, 1],
706 loc: {
707 start: { line: 1, column: 0 },
708 end: { line: 1, column: 1 }
709 }
710 },
711 right: {
712 type: 'ArrayExpression',
713 elements: [{
714 type: 'Literal',
715 value: 'finally',
716 raw: '"finally"',
717 range: [6, 15],
718 loc: {
719 start: { line: 1, column: 6 },
720 end: { line: 1, column: 15 }
721 }
722 }, {
723 type: 'Literal',
724 value: 'for',
725 raw: '"for"',
726 range: [17, 22],
727 loc: {
728 start: { line: 1, column: 17 },
729 end: { line: 1, column: 22 }
730 }
731 }],
732 range: [4, 24],
733 loc: {
734 start: { line: 1, column: 4 },
735 end: { line: 1, column: 24 }
736 }
737 },
738 range: [0, 24],
739 loc: {
740 start: { line: 1, column: 0 },
741 end: { line: 1, column: 24 }
742 }
743 },
744 range: [0, 24],
745 loc: {
746 start: { line: 1, column: 0 },
747 end: { line: 1, column: 24 }
748 }
749 },
750
751 '日本語 = []': {
752 type: 'ExpressionStatement',
753 expression: {
754 type: 'AssignmentExpression',
755 operator: '=',
756 left: {
757 type: 'Identifier',
758 name: '日本語',
759 range: [0, 3],
760 loc: {
761 start: { line: 1, column: 0 },
762 end: { line: 1, column: 3 }
763 }
764 },
765 right: {
766 type: 'ArrayExpression',
767 elements: [],
768 range: [6, 8],
769 loc: {
770 start: { line: 1, column: 6 },
771 end: { line: 1, column: 8 }
772 }
773 },
774 range: [0, 8],
775 loc: {
776 start: { line: 1, column: 0 },
777 end: { line: 1, column: 8 }
778 }
779 },
780 range: [0, 8],
781 loc: {
782 start: { line: 1, column: 0 },
783 end: { line: 1, column: 8 }
784 }
785 },
786
787 'T\u203F = []': {
788 type: 'ExpressionStatement',
789 expression: {
790 type: 'AssignmentExpression',
791 operator: '=',
792 left: {
793 type: 'Identifier',
794 name: 'T\u203F',
795 range: [0, 2],
796 loc: {
797 start: { line: 1, column: 0 },
798 end: { line: 1, column: 2 }
799 }
800 },
801 right: {
802 type: 'ArrayExpression',
803 elements: [],
804 range: [5, 7],
805 loc: {
806 start: { line: 1, column: 5 },
807 end: { line: 1, column: 7 }
808 }
809 },
810 range: [0, 7],
811 loc: {
812 start: { line: 1, column: 0 },
813 end: { line: 1, column: 7 }
814 }
815 },
816 range: [0, 7],
817 loc: {
818 start: { line: 1, column: 0 },
819 end: { line: 1, column: 7 }
820 }
821 },
822
823 'T\u200C = []': {
824 type: 'ExpressionStatement',
825 expression: {
826 type: 'AssignmentExpression',
827 operator: '=',
828 left: {
829 type: 'Identifier',
830 name: 'T\u200C',
831 range: [0, 2],
832 loc: {
833 start: { line: 1, column: 0 },
834 end: { line: 1, column: 2 }
835 }
836 },
837 right: {
838 type: 'ArrayExpression',
839 elements: [],
840 range: [5, 7],
841 loc: {
842 start: { line: 1, column: 5 },
843 end: { line: 1, column: 7 }
844 }
845 },
846 range: [0, 7],
847 loc: {
848 start: { line: 1, column: 0 },
849 end: { line: 1, column: 7 }
850 }
851 },
852 range: [0, 7],
853 loc: {
854 start: { line: 1, column: 0 },
855 end: { line: 1, column: 7 }
856 }
857 },
858
859 'T\u200D = []': {
860 type: 'ExpressionStatement',
861 expression: {
862 type: 'AssignmentExpression',
863 operator: '=',
864 left: {
865 type: 'Identifier',
866 name: 'T\u200D',
867 range: [0, 2],
868 loc: {
869 start: { line: 1, column: 0 },
870 end: { line: 1, column: 2 }
871 }
872 },
873 right: {
874 type: 'ArrayExpression',
875 elements: [],
876 range: [5, 7],
877 loc: {
878 start: { line: 1, column: 5 },
879 end: { line: 1, column: 7 }
880 }
881 },
882 range: [0, 7],
883 loc: {
884 start: { line: 1, column: 0 },
885 end: { line: 1, column: 7 }
886 }
887 },
888 range: [0, 7],
889 loc: {
890 start: { line: 1, column: 0 },
891 end: { line: 1, column: 7 }
892 }
893 },
894
895 '\u2163\u2161 = []': {
896 type: 'ExpressionStatement',
897 expression: {
898 type: 'AssignmentExpression',
899 operator: '=',
900 left: {
901 type: 'Identifier',
902 name: '\u2163\u2161',
903 range: [0, 2],
904 loc: {
905 start: { line: 1, column: 0 },
906 end: { line: 1, column: 2 }
907 }
908 },
909 right: {
910 type: 'ArrayExpression',
911 elements: [],
912 range: [5, 7],
913 loc: {
914 start: { line: 1, column: 5 },
915 end: { line: 1, column: 7 }
916 }
917 },
918 range: [0, 7],
919 loc: {
920 start: { line: 1, column: 0 },
921 end: { line: 1, column: 7 }
922 }
923 },
924 range: [0, 7],
925 loc: {
926 start: { line: 1, column: 0 },
927 end: { line: 1, column: 7 }
928 }
929 },
930
931 '\u2163\u2161\u200A=\u2009[]': {
932 type: 'ExpressionStatement',
933 expression: {
934 type: 'AssignmentExpression',
935 operator: '=',
936 left: {
937 type: 'Identifier',
938 name: '\u2163\u2161',
939 range: [0, 2],
940 loc: {
941 start: { line: 1, column: 0 },
942 end: { line: 1, column: 2 }
943 }
944 },
945 right: {
946 type: 'ArrayExpression',
947 elements: [],
948 range: [5, 7],
949 loc: {
950 start: { line: 1, column: 5 },
951 end: { line: 1, column: 7 }
952 }
953 },
954 range: [0, 7],
955 loc: {
956 start: { line: 1, column: 0 },
957 end: { line: 1, column: 7 }
958 }
959 },
960 range: [0, 7],
961 loc: {
962 start: { line: 1, column: 0 },
963 end: { line: 1, column: 7 }
964 }
965 },
966
967 '[",", "second"]': {
968 type: 'ExpressionStatement',
969 expression: {
970 type: 'ArrayExpression',
971 elements: [{
972 type: 'Literal',
973 value: ',',
974 raw: '","',
975 range: [1, 4],
976 loc: {
977 start: { line: 1, column: 1 },
978 end: { line: 1, column: 4 }
979 }
980 }, {
981 type: 'Literal',
982 value: 'second',
983 raw: '"second"',
984 range: [6, 14],
985 loc: {
986 start: { line: 1, column: 6 },
987 end: { line: 1, column: 14 }
988 }
989 }],
990 range: [0, 15],
991 loc: {
992 start: { line: 1, column: 0 },
993 end: { line: 1, column: 15 }
994 }
995 },
996 range: [0, 15],
997 loc: {
998 start: { line: 1, column: 0 },
999 end: { line: 1, column: 15 }
1000 }
1001 },
1002
1003 '["notAToken", "if"]': {
1004 type: 'ExpressionStatement',
1005 expression: {
1006 type: 'ArrayExpression',
1007 elements: [{
1008 type: 'Literal',
1009 value: 'notAToken',
1010 raw: '"notAToken"',
1011 range: [1, 12],
1012 loc: {
1013 start: { line: 1, column: 1 },
1014 end: { line: 1, column: 12 }
1015 }
1016 }, {
1017 type: 'Literal',
1018 value: 'if',
1019 raw: '"if"',
1020 range: [14, 18],
1021 loc: {
1022 start: { line: 1, column: 14 },
1023 end: { line: 1, column: 18 }
1024 }
1025 }],
1026 range: [0, 19],
1027 loc: {
1028 start: { line: 1, column: 0 },
1029 end: { line: 1, column: 19 }
1030 }
1031 },
1032 range: [0, 19],
1033 loc: {
1034 start: { line: 1, column: 0 },
1035 end: { line: 1, column: 19 }
1036 }
1037 }
1038 },
1039
1040 'Object Initializer': {
1041
1042 'x = {}': {
1043 type: 'ExpressionStatement',
1044 expression: {
1045 type: 'AssignmentExpression',
1046 operator: '=',
1047 left: {
1048 type: 'Identifier',
1049 name: 'x',
1050 range: [0, 1],
1051 loc: {
1052 start: { line: 1, column: 0 },
1053 end: { line: 1, column: 1 }
1054 }
1055 },
1056 right: {
1057 type: 'ObjectExpression',
1058 properties: [],
1059 range: [4, 6],
1060 loc: {
1061 start: { line: 1, column: 4 },
1062 end: { line: 1, column: 6 }
1063 }
1064 },
1065 range: [0, 6],
1066 loc: {
1067 start: { line: 1, column: 0 },
1068 end: { line: 1, column: 6 }
1069 }
1070 },
1071 range: [0, 6],
1072 loc: {
1073 start: { line: 1, column: 0 },
1074 end: { line: 1, column: 6 }
1075 }
1076 },
1077
1078 'x = { }': {
1079 type: 'ExpressionStatement',
1080 expression: {
1081 type: 'AssignmentExpression',
1082 operator: '=',
1083 left: {
1084 type: 'Identifier',
1085 name: 'x',
1086 range: [0, 1],
1087 loc: {
1088 start: { line: 1, column: 0 },
1089 end: { line: 1, column: 1 }
1090 }
1091 },
1092 right: {
1093 type: 'ObjectExpression',
1094 properties: [],
1095 range: [4, 7],
1096 loc: {
1097 start: { line: 1, column: 4 },
1098 end: { line: 1, column: 7 }
1099 }
1100 },
1101 range: [0, 7],
1102 loc: {
1103 start: { line: 1, column: 0 },
1104 end: { line: 1, column: 7 }
1105 }
1106 },
1107 range: [0, 7],
1108 loc: {
1109 start: { line: 1, column: 0 },
1110 end: { line: 1, column: 7 }
1111 }
1112 },
1113
1114 'x = { answer: 42 }': {
1115 type: 'ExpressionStatement',
1116 expression: {
1117 type: 'AssignmentExpression',
1118 operator: '=',
1119 left: {
1120 type: 'Identifier',
1121 name: 'x',
1122 range: [0, 1],
1123 loc: {
1124 start: { line: 1, column: 0 },
1125 end: { line: 1, column: 1 }
1126 }
1127 },
1128 right: {
1129 type: 'ObjectExpression',
1130 properties: [{
1131 type: 'Property',
1132 key: {
1133 type: 'Identifier',
1134 name: 'answer',
1135 range: [6, 12],
1136 loc: {
1137 start: { line: 1, column: 6 },
1138 end: { line: 1, column: 12 }
1139 }
1140 },
1141 value: {
1142 type: 'Literal',
1143 value: 42,
1144 raw: '42',
1145 range: [14, 16],
1146 loc: {
1147 start: { line: 1, column: 14 },
1148 end: { line: 1, column: 16 }
1149 }
1150 },
1151 kind: 'init',
1152 method: false,
1153 shorthand: false,
1154 range: [6, 16],
1155 loc: {
1156 start: { line: 1, column: 6 },
1157 end: { line: 1, column: 16 }
1158 }
1159 }],
1160 range: [4, 18],
1161 loc: {
1162 start: { line: 1, column: 4 },
1163 end: { line: 1, column: 18 }
1164 }
1165 },
1166 range: [0, 18],
1167 loc: {
1168 start: { line: 1, column: 0 },
1169 end: { line: 1, column: 18 }
1170 }
1171 },
1172 range: [0, 18],
1173 loc: {
1174 start: { line: 1, column: 0 },
1175 end: { line: 1, column: 18 }
1176 }
1177 },
1178
1179 'x = { if: 42 }': {
1180 type: 'ExpressionStatement',
1181 expression: {
1182 type: 'AssignmentExpression',
1183 operator: '=',
1184 left: {
1185 type: 'Identifier',
1186 name: 'x',
1187 range: [0, 1],
1188 loc: {
1189 start: { line: 1, column: 0 },
1190 end: { line: 1, column: 1 }
1191 }
1192 },
1193 right: {
1194 type: 'ObjectExpression',
1195 properties: [{
1196 type: 'Property',
1197 key: {
1198 type: 'Identifier',
1199 name: 'if',
1200 range: [6, 8],
1201 loc: {
1202 start: { line: 1, column: 6 },
1203 end: { line: 1, column: 8 }
1204 }
1205 },
1206 value: {
1207 type: 'Literal',
1208 value: 42,
1209 raw: '42',
1210 range: [10, 12],
1211 loc: {
1212 start: { line: 1, column: 10 },
1213 end: { line: 1, column: 12 }
1214 }
1215 },
1216 kind: 'init',
1217 method: false,
1218 shorthand: false,
1219 range: [6, 12],
1220 loc: {
1221 start: { line: 1, column: 6 },
1222 end: { line: 1, column: 12 }
1223 }
1224 }],
1225 range: [4, 14],
1226 loc: {
1227 start: { line: 1, column: 4 },
1228 end: { line: 1, column: 14 }
1229 }
1230 },
1231 range: [0, 14],
1232 loc: {
1233 start: { line: 1, column: 0 },
1234 end: { line: 1, column: 14 }
1235 }
1236 },
1237 range: [0, 14],
1238 loc: {
1239 start: { line: 1, column: 0 },
1240 end: { line: 1, column: 14 }
1241 }
1242 },
1243
1244 'x = { true: 42 }': {
1245 type: 'ExpressionStatement',
1246 expression: {
1247 type: 'AssignmentExpression',
1248 operator: '=',
1249 left: {
1250 type: 'Identifier',
1251 name: 'x',
1252 range: [0, 1],
1253 loc: {
1254 start: { line: 1, column: 0 },
1255 end: { line: 1, column: 1 }
1256 }
1257 },
1258 right: {
1259 type: 'ObjectExpression',
1260 properties: [{
1261 type: 'Property',
1262 key: {
1263 type: 'Identifier',
1264 name: 'true',
1265 range: [6, 10],
1266 loc: {
1267 start: { line: 1, column: 6 },
1268 end: { line: 1, column: 10 }
1269 }
1270 },
1271 value: {
1272 type: 'Literal',
1273 value: 42,
1274 raw: '42',
1275 range: [12, 14],
1276 loc: {
1277 start: { line: 1, column: 12 },
1278 end: { line: 1, column: 14 }
1279 }
1280 },
1281 kind: 'init',
1282 method: false,
1283 shorthand: false,
1284 range: [6, 14],
1285 loc: {
1286 start: { line: 1, column: 6 },
1287 end: { line: 1, column: 14 }
1288 }
1289 }],
1290 range: [4, 16],
1291 loc: {
1292 start: { line: 1, column: 4 },
1293 end: { line: 1, column: 16 }
1294 }
1295 },
1296 range: [0, 16],
1297 loc: {
1298 start: { line: 1, column: 0 },
1299 end: { line: 1, column: 16 }
1300 }
1301 },
1302 range: [0, 16],
1303 loc: {
1304 start: { line: 1, column: 0 },
1305 end: { line: 1, column: 16 }
1306 }
1307 },
1308
1309 'x = { false: 42 }': {
1310 type: 'ExpressionStatement',
1311 expression: {
1312 type: 'AssignmentExpression',
1313 operator: '=',
1314 left: {
1315 type: 'Identifier',
1316 name: 'x',
1317 range: [0, 1],
1318 loc: {
1319 start: { line: 1, column: 0 },
1320 end: { line: 1, column: 1 }
1321 }
1322 },
1323 right: {
1324 type: 'ObjectExpression',
1325 properties: [{
1326 type: 'Property',
1327 key: {
1328 type: 'Identifier',
1329 name: 'false',
1330 range: [6, 11],
1331 loc: {
1332 start: { line: 1, column: 6 },
1333 end: { line: 1, column: 11 }
1334 }
1335 },
1336 value: {
1337 type: 'Literal',
1338 value: 42,
1339 raw: '42',
1340 range: [13, 15],
1341 loc: {
1342 start: { line: 1, column: 13 },
1343 end: { line: 1, column: 15 }
1344 }
1345 },
1346 kind: 'init',
1347 method: false,
1348 shorthand: false,
1349 range: [6, 15],
1350 loc: {
1351 start: { line: 1, column: 6 },
1352 end: { line: 1, column: 15 }
1353 }
1354 }],
1355 range: [4, 17],
1356 loc: {
1357 start: { line: 1, column: 4 },
1358 end: { line: 1, column: 17 }
1359 }
1360 },
1361 range: [0, 17],
1362 loc: {
1363 start: { line: 1, column: 0 },
1364 end: { line: 1, column: 17 }
1365 }
1366 },
1367 range: [0, 17],
1368 loc: {
1369 start: { line: 1, column: 0 },
1370 end: { line: 1, column: 17 }
1371 }
1372 },
1373
1374 'x = { null: 42 }': {
1375 type: 'ExpressionStatement',
1376 expression: {
1377 type: 'AssignmentExpression',
1378 operator: '=',
1379 left: {
1380 type: 'Identifier',
1381 name: 'x',
1382 range: [0, 1],
1383 loc: {
1384 start: { line: 1, column: 0 },
1385 end: { line: 1, column: 1 }
1386 }
1387 },
1388 right: {
1389 type: 'ObjectExpression',
1390 properties: [{
1391 type: 'Property',
1392 key: {
1393 type: 'Identifier',
1394 name: 'null',
1395 range: [6, 10],
1396 loc: {
1397 start: { line: 1, column: 6 },
1398 end: { line: 1, column: 10 }
1399 }
1400 },
1401 value: {
1402 type: 'Literal',
1403 value: 42,
1404 raw: '42',
1405 range: [12, 14],
1406 loc: {
1407 start: { line: 1, column: 12 },
1408 end: { line: 1, column: 14 }
1409 }
1410 },
1411 kind: 'init',
1412 method: false,
1413 shorthand: false,
1414 range: [6, 14],
1415 loc: {
1416 start: { line: 1, column: 6 },
1417 end: { line: 1, column: 14 }
1418 }
1419 }],
1420 range: [4, 16],
1421 loc: {
1422 start: { line: 1, column: 4 },
1423 end: { line: 1, column: 16 }
1424 }
1425 },
1426 range: [0, 16],
1427 loc: {
1428 start: { line: 1, column: 0 },
1429 end: { line: 1, column: 16 }
1430 }
1431 },
1432 range: [0, 16],
1433 loc: {
1434 start: { line: 1, column: 0 },
1435 end: { line: 1, column: 16 }
1436 }
1437 },
1438
1439 'x = { "answer": 42 }': {
1440 type: 'ExpressionStatement',
1441 expression: {
1442 type: 'AssignmentExpression',
1443 operator: '=',
1444 left: {
1445 type: 'Identifier',
1446 name: 'x',
1447 range: [0, 1],
1448 loc: {
1449 start: { line: 1, column: 0 },
1450 end: { line: 1, column: 1 }
1451 }
1452 },
1453 right: {
1454 type: 'ObjectExpression',
1455 properties: [{
1456 type: 'Property',
1457 key: {
1458 type: 'Literal',
1459 value: 'answer',
1460 raw: '"answer"',
1461 range: [6, 14],
1462 loc: {
1463 start: { line: 1, column: 6 },
1464 end: { line: 1, column: 14 }
1465 }
1466 },
1467 value: {
1468 type: 'Literal',
1469 value: 42,
1470 raw: '42',
1471 range: [16, 18],
1472 loc: {
1473 start: { line: 1, column: 16 },
1474 end: { line: 1, column: 18 }
1475 }
1476 },
1477 kind: 'init',
1478 method: false,
1479 shorthand: false,
1480 range: [6, 18],
1481 loc: {
1482 start: { line: 1, column: 6 },
1483 end: { line: 1, column: 18 }
1484 }
1485 }],
1486 range: [4, 20],
1487 loc: {
1488 start: { line: 1, column: 4 },
1489 end: { line: 1, column: 20 }
1490 }
1491 },
1492 range: [0, 20],
1493 loc: {
1494 start: { line: 1, column: 0 },
1495 end: { line: 1, column: 20 }
1496 }
1497 },
1498 range: [0, 20],
1499 loc: {
1500 start: { line: 1, column: 0 },
1501 end: { line: 1, column: 20 }
1502 }
1503 },
1504
1505 'x = { x: 1, x: 2 }': {
1506 type: 'ExpressionStatement',
1507 expression: {
1508 type: 'AssignmentExpression',
1509 operator: '=',
1510 left: {
1511 type: 'Identifier',
1512 name: 'x',
1513 range: [0, 1],
1514 loc: {
1515 start: { line: 1, column: 0 },
1516 end: { line: 1, column: 1 }
1517 }
1518 },
1519 right: {
1520 type: 'ObjectExpression',
1521 properties: [
1522 {
1523 type: 'Property',
1524 key: {
1525 type: 'Identifier',
1526 name: 'x',
1527 range: [6, 7],
1528 loc: {
1529 start: { line: 1, column: 6 },
1530 end: { line: 1, column: 7 }
1531 }
1532 },
1533 value: {
1534 type: 'Literal',
1535 value: 1,
1536 raw: '1',
1537 range: [9, 10],
1538 loc: {
1539 start: { line: 1, column: 9 },
1540 end: { line: 1, column: 10 }
1541 }
1542 },
1543 kind: 'init',
1544 method: false,
1545 shorthand: false,
1546 range: [6, 10],
1547 loc: {
1548 start: { line: 1, column: 6 },
1549 end: { line: 1, column: 10 }
1550 }
1551 },
1552 {
1553 type: 'Property',
1554 key: {
1555 type: 'Identifier',
1556 name: 'x',
1557 range: [12, 13],
1558 loc: {
1559 start: { line: 1, column: 12 },
1560 end: { line: 1, column: 13 }
1561 }
1562 },
1563 value: {
1564 type: 'Literal',
1565 value: 2,
1566 raw: '2',
1567 range: [15, 16],
1568 loc: {
1569 start: { line: 1, column: 15 },
1570 end: { line: 1, column: 16 }
1571 }
1572 },
1573 kind: 'init',
1574 method: false,
1575 shorthand: false,
1576 range: [12, 16],
1577 loc: {
1578 start: { line: 1, column: 12 },
1579 end: { line: 1, column: 16 }
1580 }
1581 }
1582 ],
1583 range: [4, 18],
1584 loc: {
1585 start: { line: 1, column: 4 },
1586 end: { line: 1, column: 18 }
1587 }
1588 },
1589 range: [0, 18],
1590 loc: {
1591 start: { line: 1, column: 0 },
1592 end: { line: 1, column: 18 }
1593 }
1594 },
1595 range: [0, 18],
1596 loc: {
1597 start: { line: 1, column: 0 },
1598 end: { line: 1, column: 18 }
1599 }
1600 },
1601
1602 'x = { get width() { return m_width } }': {
1603 type: 'ExpressionStatement',
1604 expression: {
1605 type: 'AssignmentExpression',
1606 operator: '=',
1607 left: {
1608 type: 'Identifier',
1609 name: 'x',
1610 range: [0, 1],
1611 loc: {
1612 start: { line: 1, column: 0 },
1613 end: { line: 1, column: 1 }
1614 }
1615 },
1616 right: {
1617 type: 'ObjectExpression',
1618 properties: [{
1619 type: 'Property',
1620 key: {
1621 type: 'Identifier',
1622 name: 'width',
1623 range: [10, 15],
1624 loc: {
1625 start: { line: 1, column: 10 },
1626 end: { line: 1, column: 15 }
1627 }
1628 },
1629 value: {
1630 type: 'FunctionExpression',
1631 id: null,
1632 params: [],
1633 defaults: [],
1634 body: {
1635 type: 'BlockStatement',
1636 body: [{
1637 type: 'ReturnStatement',
1638 argument: {
1639 type: 'Identifier',
1640 name: 'm_width',
1641 range: [27, 34],
1642 loc: {
1643 start: { line: 1, column: 27 },
1644 end: { line: 1, column: 34 }
1645 }
1646 },
1647 range: [20, 35],
1648 loc: {
1649 start: { line: 1, column: 20 },
1650 end: { line: 1, column: 35 }
1651 }
1652 }],
1653 range: [18, 36],
1654 loc: {
1655 start: { line: 1, column: 18 },
1656 end: { line: 1, column: 36 }
1657 }
1658 },
1659 rest: null,
1660 generator: false,
1661 expression: false,
1662 range: [18, 36],
1663 loc: {
1664 start: { line: 1, column: 18 },
1665 end: { line: 1, column: 36 }
1666 }
1667 },
1668 kind: 'get',
1669 method: false,
1670 shorthand: false,
1671 range: [6, 36],
1672 loc: {
1673 start: { line: 1, column: 6 },
1674 end: { line: 1, column: 36 }
1675 }
1676 }],
1677 range: [4, 38],
1678 loc: {
1679 start: { line: 1, column: 4 },
1680 end: { line: 1, column: 38 }
1681 }
1682 },
1683 range: [0, 38],
1684 loc: {
1685 start: { line: 1, column: 0 },
1686 end: { line: 1, column: 38 }
1687 }
1688 },
1689 range: [0, 38],
1690 loc: {
1691 start: { line: 1, column: 0 },
1692 end: { line: 1, column: 38 }
1693 }
1694 },
1695
1696 'x = { get undef() {} }': {
1697 type: 'ExpressionStatement',
1698 expression: {
1699 type: 'AssignmentExpression',
1700 operator: '=',
1701 left: {
1702 type: 'Identifier',
1703 name: 'x',
1704 range: [0, 1],
1705 loc: {
1706 start: { line: 1, column: 0 },
1707 end: { line: 1, column: 1 }
1708 }
1709 },
1710 right: {
1711 type: 'ObjectExpression',
1712 properties: [{
1713 type: 'Property',
1714 key: {
1715 type: 'Identifier',
1716 name: 'undef',
1717 range: [10, 15],
1718 loc: {
1719 start: { line: 1, column: 10 },
1720 end: { line: 1, column: 15 }
1721 }
1722 },
1723 value: {
1724 type: 'FunctionExpression',
1725 id: null,
1726 params: [],
1727 defaults: [],
1728 body: {
1729 type: 'BlockStatement',
1730 body: [],
1731 range: [18, 20],
1732 loc: {
1733 start: { line: 1, column: 18 },
1734 end: { line: 1, column: 20 }
1735 }
1736 },
1737 rest: null,
1738 generator: false,
1739 expression: false,
1740 range: [18, 20],
1741 loc: {
1742 start: { line: 1, column: 18 },
1743 end: { line: 1, column: 20 }
1744 }
1745 },
1746 kind: 'get',
1747 method: false,
1748 shorthand: false,
1749 range: [6, 20],
1750 loc: {
1751 start: { line: 1, column: 6 },
1752 end: { line: 1, column: 20 }
1753 }
1754 }],
1755 range: [4, 22],
1756 loc: {
1757 start: { line: 1, column: 4 },
1758 end: { line: 1, column: 22 }
1759 }
1760 },
1761 range: [0, 22],
1762 loc: {
1763 start: { line: 1, column: 0 },
1764 end: { line: 1, column: 22 }
1765 }
1766 },
1767 range: [0, 22],
1768 loc: {
1769 start: { line: 1, column: 0 },
1770 end: { line: 1, column: 22 }
1771 }
1772 },
1773
1774 'x = { get if() {} }': {
1775 type: 'ExpressionStatement',
1776 expression: {
1777 type: 'AssignmentExpression',
1778 operator: '=',
1779 left: {
1780 type: 'Identifier',
1781 name: 'x',
1782 range: [0, 1],
1783 loc: {
1784 start: { line: 1, column: 0 },
1785 end: { line: 1, column: 1 }
1786 }
1787 },
1788 right: {
1789 type: 'ObjectExpression',
1790 properties: [{
1791 type: 'Property',
1792 key: {
1793 type: 'Identifier',
1794 name: 'if',
1795 range: [10, 12],
1796 loc: {
1797 start: { line: 1, column: 10 },
1798 end: { line: 1, column: 12 }
1799 }
1800 },
1801 value: {
1802 type: 'FunctionExpression',
1803 id: null,
1804 params: [],
1805 defaults: [],
1806 body: {
1807 type: 'BlockStatement',
1808 body: [],
1809 range: [15, 17],
1810 loc: {
1811 start: { line: 1, column: 15 },
1812 end: { line: 1, column: 17 }
1813 }
1814 },
1815 rest: null,
1816 generator: false,
1817 expression: false,
1818 range: [15, 17],
1819 loc: {
1820 start: { line: 1, column: 15 },
1821 end: { line: 1, column: 17 }
1822 }
1823 },
1824 kind: 'get',
1825 method: false,
1826 shorthand: false,
1827 range: [6, 17],
1828 loc: {
1829 start: { line: 1, column: 6 },
1830 end: { line: 1, column: 17 }
1831 }
1832 }],
1833 range: [4, 19],
1834 loc: {
1835 start: { line: 1, column: 4 },
1836 end: { line: 1, column: 19 }
1837 }
1838 },
1839 range: [0, 19],
1840 loc: {
1841 start: { line: 1, column: 0 },
1842 end: { line: 1, column: 19 }
1843 }
1844 },
1845 range: [0, 19],
1846 loc: {
1847 start: { line: 1, column: 0 },
1848 end: { line: 1, column: 19 }
1849 }
1850 },
1851
1852 'x = { get true() {} }': {
1853 type: 'ExpressionStatement',
1854 expression: {
1855 type: 'AssignmentExpression',
1856 operator: '=',
1857 left: {
1858 type: 'Identifier',
1859 name: 'x',
1860 range: [0, 1],
1861 loc: {
1862 start: { line: 1, column: 0 },
1863 end: { line: 1, column: 1 }
1864 }
1865 },
1866 right: {
1867 type: 'ObjectExpression',
1868 properties: [{
1869 type: 'Property',
1870 key: {
1871 type: 'Identifier',
1872 name: 'true',
1873 range: [10, 14],
1874 loc: {
1875 start: { line: 1, column: 10 },
1876 end: { line: 1, column: 14 }
1877 }
1878 },
1879 value: {
1880 type: 'FunctionExpression',
1881 id: null,
1882 params: [],
1883 defaults: [],
1884 body: {
1885 type: 'BlockStatement',
1886 body: [],
1887 range: [17, 19],
1888 loc: {
1889 start: { line: 1, column: 17 },
1890 end: { line: 1, column: 19 }
1891 }
1892 },
1893 rest: null,
1894 generator: false,
1895 expression: false,
1896 range: [17, 19],
1897 loc: {
1898 start: { line: 1, column: 17 },
1899 end: { line: 1, column: 19 }
1900 }
1901 },
1902 kind: 'get',
1903 method: false,
1904 shorthand: false,
1905 range: [6, 19],
1906 loc: {
1907 start: { line: 1, column: 6 },
1908 end: { line: 1, column: 19 }
1909 }
1910 }],
1911 range: [4, 21],
1912 loc: {
1913 start: { line: 1, column: 4 },
1914 end: { line: 1, column: 21 }
1915 }
1916 },
1917 range: [0, 21],
1918 loc: {
1919 start: { line: 1, column: 0 },
1920 end: { line: 1, column: 21 }
1921 }
1922 },
1923 range: [0, 21],
1924 loc: {
1925 start: { line: 1, column: 0 },
1926 end: { line: 1, column: 21 }
1927 }
1928 },
1929
1930 'x = { get false() {} }': {
1931 type: 'ExpressionStatement',
1932 expression: {
1933 type: 'AssignmentExpression',
1934 operator: '=',
1935 left: {
1936 type: 'Identifier',
1937 name: 'x',
1938 range: [0, 1],
1939 loc: {
1940 start: { line: 1, column: 0 },
1941 end: { line: 1, column: 1 }
1942 }
1943 },
1944 right: {
1945 type: 'ObjectExpression',
1946 properties: [{
1947 type: 'Property',
1948 key: {
1949 type: 'Identifier',
1950 name: 'false',
1951 range: [10, 15],
1952 loc: {
1953 start: { line: 1, column: 10 },
1954 end: { line: 1, column: 15 }
1955 }
1956 },
1957 value: {
1958 type: 'FunctionExpression',
1959 id: null,
1960 params: [],
1961 defaults: [],
1962 body: {
1963 type: 'BlockStatement',
1964 body: [],
1965 range: [18, 20],
1966 loc: {
1967 start: { line: 1, column: 18 },
1968 end: { line: 1, column: 20 }
1969 }
1970 },
1971 rest: null,
1972 generator: false,
1973 expression: false,
1974 range: [18, 20],
1975 loc: {
1976 start: { line: 1, column: 18 },
1977 end: { line: 1, column: 20 }
1978 }
1979 },
1980 kind: 'get',
1981 method: false,
1982 shorthand: false,
1983 range: [6, 20],
1984 loc: {
1985 start: { line: 1, column: 6 },
1986 end: { line: 1, column: 20 }
1987 }
1988 }],
1989 range: [4, 22],
1990 loc: {
1991 start: { line: 1, column: 4 },
1992 end: { line: 1, column: 22 }
1993 }
1994 },
1995 range: [0, 22],
1996 loc: {
1997 start: { line: 1, column: 0 },
1998 end: { line: 1, column: 22 }
1999 }
2000 },
2001 range: [0, 22],
2002 loc: {
2003 start: { line: 1, column: 0 },
2004 end: { line: 1, column: 22 }
2005 }
2006 },
2007
2008 'x = { get null() {} }': {
2009 type: 'ExpressionStatement',
2010 expression: {
2011 type: 'AssignmentExpression',
2012 operator: '=',
2013 left: {
2014 type: 'Identifier',
2015 name: 'x',
2016 range: [0, 1],
2017 loc: {
2018 start: { line: 1, column: 0 },
2019 end: { line: 1, column: 1 }
2020 }
2021 },
2022 right: {
2023 type: 'ObjectExpression',
2024 properties: [{
2025 type: 'Property',
2026 key: {
2027 type: 'Identifier',
2028 name: 'null',
2029 range: [10, 14],
2030 loc: {
2031 start: { line: 1, column: 10 },
2032 end: { line: 1, column: 14 }
2033 }
2034 },
2035 value: {
2036 type: 'FunctionExpression',
2037 id: null,
2038 params: [],
2039 defaults: [],
2040 body: {
2041 type: 'BlockStatement',
2042 body: [],
2043 range: [17, 19],
2044 loc: {
2045 start: { line: 1, column: 17 },
2046 end: { line: 1, column: 19 }
2047 }
2048 },
2049 rest: null,
2050 generator: false,
2051 expression: false,
2052 range: [17, 19],
2053 loc: {
2054 start: { line: 1, column: 17 },
2055 end: { line: 1, column: 19 }
2056 }
2057 },
2058 kind: 'get',
2059 method: false,
2060 shorthand: false,
2061 range: [6, 19],
2062 loc: {
2063 start: { line: 1, column: 6 },
2064 end: { line: 1, column: 19 }
2065 }
2066 }],
2067 range: [4, 21],
2068 loc: {
2069 start: { line: 1, column: 4 },
2070 end: { line: 1, column: 21 }
2071 }
2072 },
2073 range: [0, 21],
2074 loc: {
2075 start: { line: 1, column: 0 },
2076 end: { line: 1, column: 21 }
2077 }
2078 },
2079 range: [0, 21],
2080 loc: {
2081 start: { line: 1, column: 0 },
2082 end: { line: 1, column: 21 }
2083 }
2084 },
2085
2086 'x = { get "undef"() {} }': {
2087 type: 'ExpressionStatement',
2088 expression: {
2089 type: 'AssignmentExpression',
2090 operator: '=',
2091 left: {
2092 type: 'Identifier',
2093 name: 'x',
2094 range: [0, 1],
2095 loc: {
2096 start: { line: 1, column: 0 },
2097 end: { line: 1, column: 1 }
2098 }
2099 },
2100 right: {
2101 type: 'ObjectExpression',
2102 properties: [{
2103 type: 'Property',
2104 key: {
2105 type: 'Literal',
2106 value: 'undef',
2107 raw: '"undef"',
2108 range: [10, 17],
2109 loc: {
2110 start: { line: 1, column: 10 },
2111 end: { line: 1, column: 17 }
2112 }
2113 },
2114 value: {
2115 type: 'FunctionExpression',
2116 id: null,
2117 params: [],
2118 defaults: [],
2119 body: {
2120 type: 'BlockStatement',
2121 body: [],
2122 range: [20, 22],
2123 loc: {
2124 start: { line: 1, column: 20 },
2125 end: { line: 1, column: 22 }
2126 }
2127 },
2128 rest: null,
2129 generator: false,
2130 expression: false,
2131 range: [20, 22],
2132 loc: {
2133 start: { line: 1, column: 20 },
2134 end: { line: 1, column: 22 }
2135 }
2136 },
2137 kind: 'get',
2138 method: false,
2139 shorthand: false,
2140 range: [6, 22],
2141 loc: {
2142 start: { line: 1, column: 6 },
2143 end: { line: 1, column: 22 }
2144 }
2145 }],
2146 range: [4, 24],
2147 loc: {
2148 start: { line: 1, column: 4 },
2149 end: { line: 1, column: 24 }
2150 }
2151 },
2152 range: [0, 24],
2153 loc: {
2154 start: { line: 1, column: 0 },
2155 end: { line: 1, column: 24 }
2156 }
2157 },
2158 range: [0, 24],
2159 loc: {
2160 start: { line: 1, column: 0 },
2161 end: { line: 1, column: 24 }
2162 }
2163 },
2164
2165 'x = { get 10() {} }': {
2166 type: 'ExpressionStatement',
2167 expression: {
2168 type: 'AssignmentExpression',
2169 operator: '=',
2170 left: {
2171 type: 'Identifier',
2172 name: 'x',
2173 range: [0, 1],
2174 loc: {
2175 start: { line: 1, column: 0 },
2176 end: { line: 1, column: 1 }
2177 }
2178 },
2179 right: {
2180 type: 'ObjectExpression',
2181 properties: [{
2182 type: 'Property',
2183 key: {
2184 type: 'Literal',
2185 value: 10,
2186 raw: '10',
2187 range: [10, 12],
2188 loc: {
2189 start: { line: 1, column: 10 },
2190 end: { line: 1, column: 12 }
2191 }
2192 },
2193 value: {
2194 type: 'FunctionExpression',
2195 id: null,
2196 params: [],
2197 defaults: [],
2198 body: {
2199 type: 'BlockStatement',
2200 body: [],
2201 range: [15, 17],
2202 loc: {
2203 start: { line: 1, column: 15 },
2204 end: { line: 1, column: 17 }
2205 }
2206 },
2207 rest: null,
2208 generator: false,
2209 expression: false,
2210 range: [15, 17],
2211 loc: {
2212 start: { line: 1, column: 15 },
2213 end: { line: 1, column: 17 }
2214 }
2215 },
2216 kind: 'get',
2217 method: false,
2218 shorthand: false,
2219 range: [6, 17],
2220 loc: {
2221 start: { line: 1, column: 6 },
2222 end: { line: 1, column: 17 }
2223 }
2224 }],
2225 range: [4, 19],
2226 loc: {
2227 start: { line: 1, column: 4 },
2228 end: { line: 1, column: 19 }
2229 }
2230 },
2231 range: [0, 19],
2232 loc: {
2233 start: { line: 1, column: 0 },
2234 end: { line: 1, column: 19 }
2235 }
2236 },
2237 range: [0, 19],
2238 loc: {
2239 start: { line: 1, column: 0 },
2240 end: { line: 1, column: 19 }
2241 }
2242 },
2243
2244 'x = { set width(w) { m_width = w } }': {
2245 type: 'ExpressionStatement',
2246 expression: {
2247 type: 'AssignmentExpression',
2248 operator: '=',
2249 left: {
2250 type: 'Identifier',
2251 name: 'x',
2252 range: [0, 1],
2253 loc: {
2254 start: { line: 1, column: 0 },
2255 end: { line: 1, column: 1 }
2256 }
2257 },
2258 right: {
2259 type: 'ObjectExpression',
2260 properties: [{
2261 type: 'Property',
2262 key: {
2263 type: 'Identifier',
2264 name: 'width',
2265 range: [10, 15],
2266 loc: {
2267 start: { line: 1, column: 10 },
2268 end: { line: 1, column: 15 }
2269 }
2270 },
2271 value: {
2272 type: 'FunctionExpression',
2273 id: null,
2274 params: [{
2275 type: 'Identifier',
2276 name: 'w',
2277 range: [16, 17],
2278 loc: {
2279 start: { line: 1, column: 16 },
2280 end: { line: 1, column: 17 }
2281 }
2282 }],
2283 defaults: [],
2284 body: {
2285 type: 'BlockStatement',
2286 body: [{
2287 type: 'ExpressionStatement',
2288 expression: {
2289 type: 'AssignmentExpression',
2290 operator: '=',
2291 left: {
2292 type: 'Identifier',
2293 name: 'm_width',
2294 range: [21, 28],
2295 loc: {
2296 start: { line: 1, column: 21 },
2297 end: { line: 1, column: 28 }
2298 }
2299 },
2300 right: {
2301 type: 'Identifier',
2302 name: 'w',
2303 range: [31, 32],
2304 loc: {
2305 start: { line: 1, column: 31 },
2306 end: { line: 1, column: 32 }
2307 }
2308 },
2309 range: [21, 32],
2310 loc: {
2311 start: { line: 1, column: 21 },
2312 end: { line: 1, column: 32 }
2313 }
2314 },
2315 range: [21, 33],
2316 loc: {
2317 start: { line: 1, column: 21 },
2318 end: { line: 1, column: 33 }
2319 }
2320 }],
2321 range: [19, 34],
2322 loc: {
2323 start: { line: 1, column: 19 },
2324 end: { line: 1, column: 34 }
2325 }
2326 },
2327 rest: null,
2328 generator: false,
2329 expression: false,
2330 range: [19, 34],
2331 loc: {
2332 start: { line: 1, column: 19 },
2333 end: { line: 1, column: 34 }
2334 }
2335 },
2336 kind: 'set',
2337 method: false,
2338 shorthand: false,
2339 range: [6, 34],
2340 loc: {
2341 start: { line: 1, column: 6 },
2342 end: { line: 1, column: 34 }
2343 }
2344 }],
2345 range: [4, 36],
2346 loc: {
2347 start: { line: 1, column: 4 },
2348 end: { line: 1, column: 36 }
2349 }
2350 },
2351 range: [0, 36],
2352 loc: {
2353 start: { line: 1, column: 0 },
2354 end: { line: 1, column: 36 }
2355 }
2356 },
2357 range: [0, 36],
2358 loc: {
2359 start: { line: 1, column: 0 },
2360 end: { line: 1, column: 36 }
2361 }
2362 },
2363
2364 'x = { set if(w) { m_if = w } }': {
2365 type: 'ExpressionStatement',
2366 expression: {
2367 type: 'AssignmentExpression',
2368 operator: '=',
2369 left: {
2370 type: 'Identifier',
2371 name: 'x',
2372 range: [0, 1],
2373 loc: {
2374 start: { line: 1, column: 0 },
2375 end: { line: 1, column: 1 }
2376 }
2377 },
2378 right: {
2379 type: 'ObjectExpression',
2380 properties: [{
2381 type: 'Property',
2382 key: {
2383 type: 'Identifier',
2384 name: 'if',
2385 range: [10, 12],
2386 loc: {
2387 start: { line: 1, column: 10 },
2388 end: { line: 1, column: 12 }
2389 }
2390 },
2391 value: {
2392 type: 'FunctionExpression',
2393 id: null,
2394 params: [{
2395 type: 'Identifier',
2396 name: 'w',
2397 range: [13, 14],
2398 loc: {
2399 start: { line: 1, column: 13 },
2400 end: { line: 1, column: 14 }
2401 }
2402 }],
2403 defaults: [],
2404 body: {
2405 type: 'BlockStatement',
2406 body: [{
2407 type: 'ExpressionStatement',
2408 expression: {
2409 type: 'AssignmentExpression',
2410 operator: '=',
2411 left: {
2412 type: 'Identifier',
2413 name: 'm_if',
2414 range: [18, 22],
2415 loc: {
2416 start: { line: 1, column: 18 },
2417 end: { line: 1, column: 22 }
2418 }
2419 },
2420 right: {
2421 type: 'Identifier',
2422 name: 'w',
2423 range: [25, 26],
2424 loc: {
2425 start: { line: 1, column: 25 },
2426 end: { line: 1, column: 26 }
2427 }
2428 },
2429 range: [18, 26],
2430 loc: {
2431 start: { line: 1, column: 18 },
2432 end: { line: 1, column: 26 }
2433 }
2434 },
2435 range: [18, 27],
2436 loc: {
2437 start: { line: 1, column: 18 },
2438 end: { line: 1, column: 27 }
2439 }
2440 }],
2441 range: [16, 28],
2442 loc: {
2443 start: { line: 1, column: 16 },
2444 end: { line: 1, column: 28 }
2445 }
2446 },
2447 rest: null,
2448 generator: false,
2449 expression: false,
2450 range: [16, 28],
2451 loc: {
2452 start: { line: 1, column: 16 },
2453 end: { line: 1, column: 28 }
2454 }
2455 },
2456 kind: 'set',
2457 method: false,
2458 shorthand: false,
2459 range: [6, 28],
2460 loc: {
2461 start: { line: 1, column: 6 },
2462 end: { line: 1, column: 28 }
2463 }
2464 }],
2465 range: [4, 30],
2466 loc: {
2467 start: { line: 1, column: 4 },
2468 end: { line: 1, column: 30 }
2469 }
2470 },
2471 range: [0, 30],
2472 loc: {
2473 start: { line: 1, column: 0 },
2474 end: { line: 1, column: 30 }
2475 }
2476 },
2477 range: [0, 30],
2478 loc: {
2479 start: { line: 1, column: 0 },
2480 end: { line: 1, column: 30 }
2481 }
2482 },
2483
2484 'x = { set true(w) { m_true = w } }': {
2485 type: 'ExpressionStatement',
2486 expression: {
2487 type: 'AssignmentExpression',
2488 operator: '=',
2489 left: {
2490 type: 'Identifier',
2491 name: 'x',
2492 range: [0, 1],
2493 loc: {
2494 start: { line: 1, column: 0 },
2495 end: { line: 1, column: 1 }
2496 }
2497 },
2498 right: {
2499 type: 'ObjectExpression',
2500 properties: [{
2501 type: 'Property',
2502 key: {
2503 type: 'Identifier',
2504 name: 'true',
2505 range: [10, 14],
2506 loc: {
2507 start: { line: 1, column: 10 },
2508 end: { line: 1, column: 14 }
2509 }
2510 },
2511 value: {
2512 type: 'FunctionExpression',
2513 id: null,
2514 params: [{
2515 type: 'Identifier',
2516 name: 'w',
2517 range: [15, 16],
2518 loc: {
2519 start: { line: 1, column: 15 },
2520 end: { line: 1, column: 16 }
2521 }
2522 }],
2523 defaults: [],
2524 body: {
2525 type: 'BlockStatement',
2526 body: [{
2527 type: 'ExpressionStatement',
2528 expression: {
2529 type: 'AssignmentExpression',
2530 operator: '=',
2531 left: {
2532 type: 'Identifier',
2533 name: 'm_true',
2534 range: [20, 26],
2535 loc: {
2536 start: { line: 1, column: 20 },
2537 end: { line: 1, column: 26 }
2538 }
2539 },
2540 right: {
2541 type: 'Identifier',
2542 name: 'w',
2543 range: [29, 30],
2544 loc: {
2545 start: { line: 1, column: 29 },
2546 end: { line: 1, column: 30 }
2547 }
2548 },
2549 range: [20, 30],
2550 loc: {
2551 start: { line: 1, column: 20 },
2552 end: { line: 1, column: 30 }
2553 }
2554 },
2555 range: [20, 31],
2556 loc: {
2557 start: { line: 1, column: 20 },
2558 end: { line: 1, column: 31 }
2559 }
2560 }],
2561 range: [18, 32],
2562 loc: {
2563 start: { line: 1, column: 18 },
2564 end: { line: 1, column: 32 }
2565 }
2566 },
2567 rest: null,
2568 generator: false,
2569 expression: false,
2570 range: [18, 32],
2571 loc: {
2572 start: { line: 1, column: 18 },
2573 end: { line: 1, column: 32 }
2574 }
2575 },
2576 kind: 'set',
2577 method: false,
2578 shorthand: false,
2579 range: [6, 32],
2580 loc: {
2581 start: { line: 1, column: 6 },
2582 end: { line: 1, column: 32 }
2583 }
2584 }],
2585 range: [4, 34],
2586 loc: {
2587 start: { line: 1, column: 4 },
2588 end: { line: 1, column: 34 }
2589 }
2590 },
2591 range: [0, 34],
2592 loc: {
2593 start: { line: 1, column: 0 },
2594 end: { line: 1, column: 34 }
2595 }
2596 },
2597 range: [0, 34],
2598 loc: {
2599 start: { line: 1, column: 0 },
2600 end: { line: 1, column: 34 }
2601 }
2602 },
2603
2604 'x = { set false(w) { m_false = w } }': {
2605 type: 'ExpressionStatement',
2606 expression: {
2607 type: 'AssignmentExpression',
2608 operator: '=',
2609 left: {
2610 type: 'Identifier',
2611 name: 'x',
2612 range: [0, 1],
2613 loc: {
2614 start: { line: 1, column: 0 },
2615 end: { line: 1, column: 1 }
2616 }
2617 },
2618 right: {
2619 type: 'ObjectExpression',
2620 properties: [{
2621 type: 'Property',
2622 key: {
2623 type: 'Identifier',
2624 name: 'false',
2625 range: [10, 15],
2626 loc: {
2627 start: { line: 1, column: 10 },
2628 end: { line: 1, column: 15 }
2629 }
2630 },
2631 value: {
2632 type: 'FunctionExpression',
2633 id: null,
2634 params: [{
2635 type: 'Identifier',
2636 name: 'w',
2637 range: [16, 17],
2638 loc: {
2639 start: { line: 1, column: 16 },
2640 end: { line: 1, column: 17 }
2641 }
2642 }],
2643 defaults: [],
2644 body: {
2645 type: 'BlockStatement',
2646 body: [{
2647 type: 'ExpressionStatement',
2648 expression: {
2649 type: 'AssignmentExpression',
2650 operator: '=',
2651 left: {
2652 type: 'Identifier',
2653 name: 'm_false',
2654 range: [21, 28],
2655 loc: {
2656 start: { line: 1, column: 21 },
2657 end: { line: 1, column: 28 }
2658 }
2659 },
2660 right: {
2661 type: 'Identifier',
2662 name: 'w',
2663 range: [31, 32],
2664 loc: {
2665 start: { line: 1, column: 31 },
2666 end: { line: 1, column: 32 }
2667 }
2668 },
2669 range: [21, 32],
2670 loc: {
2671 start: { line: 1, column: 21 },
2672 end: { line: 1, column: 32 }
2673 }
2674 },
2675 range: [21, 33],
2676 loc: {
2677 start: { line: 1, column: 21 },
2678 end: { line: 1, column: 33 }
2679 }
2680 }],
2681 range: [19, 34],
2682 loc: {
2683 start: { line: 1, column: 19 },
2684 end: { line: 1, column: 34 }
2685 }
2686 },
2687 rest: null,
2688 generator: false,
2689 expression: false,
2690 range: [19, 34],
2691 loc: {
2692 start: { line: 1, column: 19 },
2693 end: { line: 1, column: 34 }
2694 }
2695 },
2696 kind: 'set',
2697 method: false,
2698 shorthand: false,
2699 range: [6, 34],
2700 loc: {
2701 start: { line: 1, column: 6 },
2702 end: { line: 1, column: 34 }
2703 }
2704 }],
2705 range: [4, 36],
2706 loc: {
2707 start: { line: 1, column: 4 },
2708 end: { line: 1, column: 36 }
2709 }
2710 },
2711 range: [0, 36],
2712 loc: {
2713 start: { line: 1, column: 0 },
2714 end: { line: 1, column: 36 }
2715 }
2716 },
2717 range: [0, 36],
2718 loc: {
2719 start: { line: 1, column: 0 },
2720 end: { line: 1, column: 36 }
2721 }
2722 },
2723
2724 'x = { set null(w) { m_null = w } }': {
2725 type: 'ExpressionStatement',
2726 expression: {
2727 type: 'AssignmentExpression',
2728 operator: '=',
2729 left: {
2730 type: 'Identifier',
2731 name: 'x',
2732 range: [0, 1],
2733 loc: {
2734 start: { line: 1, column: 0 },
2735 end: { line: 1, column: 1 }
2736 }
2737 },
2738 right: {
2739 type: 'ObjectExpression',
2740 properties: [{
2741 type: 'Property',
2742 key: {
2743 type: 'Identifier',
2744 name: 'null',
2745 range: [10, 14],
2746 loc: {
2747 start: { line: 1, column: 10 },
2748 end: { line: 1, column: 14 }
2749 }
2750 },
2751 value: {
2752 type: 'FunctionExpression',
2753 id: null,
2754 params: [{
2755 type: 'Identifier',
2756 name: 'w',
2757 range: [15, 16],
2758 loc: {
2759 start: { line: 1, column: 15 },
2760 end: { line: 1, column: 16 }
2761 }
2762 }],
2763 defaults: [],
2764 body: {
2765 type: 'BlockStatement',
2766 body: [{
2767 type: 'ExpressionStatement',
2768 expression: {
2769 type: 'AssignmentExpression',
2770 operator: '=',
2771 left: {
2772 type: 'Identifier',
2773 name: 'm_null',
2774 range: [20, 26],
2775 loc: {
2776 start: { line: 1, column: 20 },
2777 end: { line: 1, column: 26 }
2778 }
2779 },
2780 right: {
2781 type: 'Identifier',
2782 name: 'w',
2783 range: [29, 30],
2784 loc: {
2785 start: { line: 1, column: 29 },
2786 end: { line: 1, column: 30 }
2787 }
2788 },
2789 range: [20, 30],
2790 loc: {
2791 start: { line: 1, column: 20 },
2792 end: { line: 1, column: 30 }
2793 }
2794 },
2795 range: [20, 31],
2796 loc: {
2797 start: { line: 1, column: 20 },
2798 end: { line: 1, column: 31 }
2799 }
2800 }],
2801 range: [18, 32],
2802 loc: {
2803 start: { line: 1, column: 18 },
2804 end: { line: 1, column: 32 }
2805 }
2806 },
2807 rest: null,
2808 generator: false,
2809 expression: false,
2810 range: [18, 32],
2811 loc: {
2812 start: { line: 1, column: 18 },
2813 end: { line: 1, column: 32 }
2814 }
2815 },
2816 kind: 'set',
2817 method: false,
2818 shorthand: false,
2819 range: [6, 32],
2820 loc: {
2821 start: { line: 1, column: 6 },
2822 end: { line: 1, column: 32 }
2823 }
2824 }],
2825 range: [4, 34],
2826 loc: {
2827 start: { line: 1, column: 4 },
2828 end: { line: 1, column: 34 }
2829 }
2830 },
2831 range: [0, 34],
2832 loc: {
2833 start: { line: 1, column: 0 },
2834 end: { line: 1, column: 34 }
2835 }
2836 },
2837 range: [0, 34],
2838 loc: {
2839 start: { line: 1, column: 0 },
2840 end: { line: 1, column: 34 }
2841 }
2842 },
2843
2844 'x = { set "null"(w) { m_null = w } }': {
2845 type: 'ExpressionStatement',
2846 expression: {
2847 type: 'AssignmentExpression',
2848 operator: '=',
2849 left: {
2850 type: 'Identifier',
2851 name: 'x',
2852 range: [0, 1],
2853 loc: {
2854 start: { line: 1, column: 0 },
2855 end: { line: 1, column: 1 }
2856 }
2857 },
2858 right: {
2859 type: 'ObjectExpression',
2860 properties: [{
2861 type: 'Property',
2862 key: {
2863 type: 'Literal',
2864 value: 'null',
2865 raw: '"null"',
2866 range: [10, 16],
2867 loc: {
2868 start: { line: 1, column: 10 },
2869 end: { line: 1, column: 16 }
2870 }
2871 },
2872 value: {
2873 type: 'FunctionExpression',
2874 id: null,
2875 params: [{
2876 type: 'Identifier',
2877 name: 'w',
2878 range: [17, 18],
2879 loc: {
2880 start: { line: 1, column: 17 },
2881 end: { line: 1, column: 18 }
2882 }
2883 }],
2884 defaults: [],
2885 body: {
2886 type: 'BlockStatement',
2887 body: [{
2888 type: 'ExpressionStatement',
2889 expression: {
2890 type: 'AssignmentExpression',
2891 operator: '=',
2892 left: {
2893 type: 'Identifier',
2894 name: 'm_null',
2895 range: [22, 28],
2896 loc: {
2897 start: { line: 1, column: 22 },
2898 end: { line: 1, column: 28 }
2899 }
2900 },
2901 right: {
2902 type: 'Identifier',
2903 name: 'w',
2904 range: [31, 32],
2905 loc: {
2906 start: { line: 1, column: 31 },
2907 end: { line: 1, column: 32 }
2908 }
2909 },
2910 range: [22, 32],
2911 loc: {
2912 start: { line: 1, column: 22 },
2913 end: { line: 1, column: 32 }
2914 }
2915 },
2916 range: [22, 33],
2917 loc: {
2918 start: { line: 1, column: 22 },
2919 end: { line: 1, column: 33 }
2920 }
2921 }],
2922 range: [20, 34],
2923 loc: {
2924 start: { line: 1, column: 20 },
2925 end: { line: 1, column: 34 }
2926 }
2927 },
2928 rest: null,
2929 generator: false,
2930 expression: false,
2931 range: [20, 34],
2932 loc: {
2933 start: { line: 1, column: 20 },
2934 end: { line: 1, column: 34 }
2935 }
2936 },
2937 kind: 'set',
2938 method: false,
2939 shorthand: false,
2940 range: [6, 34],
2941 loc: {
2942 start: { line: 1, column: 6 },
2943 end: { line: 1, column: 34 }
2944 }
2945 }],
2946 range: [4, 36],
2947 loc: {
2948 start: { line: 1, column: 4 },
2949 end: { line: 1, column: 36 }
2950 }
2951 },
2952 range: [0, 36],
2953 loc: {
2954 start: { line: 1, column: 0 },
2955 end: { line: 1, column: 36 }
2956 }
2957 },
2958 range: [0, 36],
2959 loc: {
2960 start: { line: 1, column: 0 },
2961 end: { line: 1, column: 36 }
2962 }
2963 },
2964
2965 'x = { set 10(w) { m_null = w } }': {
2966 type: 'ExpressionStatement',
2967 expression: {
2968 type: 'AssignmentExpression',
2969 operator: '=',
2970 left: {
2971 type: 'Identifier',
2972 name: 'x',
2973 range: [0, 1],
2974 loc: {
2975 start: { line: 1, column: 0 },
2976 end: { line: 1, column: 1 }
2977 }
2978 },
2979 right: {
2980 type: 'ObjectExpression',
2981 properties: [{
2982 type: 'Property',
2983 key: {
2984 type: 'Literal',
2985 value: 10,
2986 raw: '10',
2987 range: [10, 12],
2988 loc: {
2989 start: { line: 1, column: 10 },
2990 end: { line: 1, column: 12 }
2991 }
2992 },
2993 value: {
2994 type: 'FunctionExpression',
2995 id: null,
2996 params: [{
2997 type: 'Identifier',
2998 name: 'w',
2999 range: [13, 14],
3000 loc: {
3001 start: { line: 1, column: 13 },
3002 end: { line: 1, column: 14 }
3003 }
3004 }],
3005 defaults: [],
3006 body: {
3007 type: 'BlockStatement',
3008 body: [{
3009 type: 'ExpressionStatement',
3010 expression: {
3011 type: 'AssignmentExpression',
3012 operator: '=',
3013 left: {
3014 type: 'Identifier',
3015 name: 'm_null',
3016 range: [18, 24],
3017 loc: {
3018 start: { line: 1, column: 18 },
3019 end: { line: 1, column: 24 }
3020 }
3021 },
3022 right: {
3023 type: 'Identifier',
3024 name: 'w',
3025 range: [27, 28],
3026 loc: {
3027 start: { line: 1, column: 27 },
3028 end: { line: 1, column: 28 }
3029 }
3030 },
3031 range: [18, 28],
3032 loc: {
3033 start: { line: 1, column: 18 },
3034 end: { line: 1, column: 28 }
3035 }
3036 },
3037 range: [18, 29],
3038 loc: {
3039 start: { line: 1, column: 18 },
3040 end: { line: 1, column: 29 }
3041 }
3042 }],
3043 range: [16, 30],
3044 loc: {
3045 start: { line: 1, column: 16 },
3046 end: { line: 1, column: 30 }
3047 }
3048 },
3049 rest: null,
3050 generator: false,
3051 expression: false,
3052 range: [16, 30],
3053 loc: {
3054 start: { line: 1, column: 16 },
3055 end: { line: 1, column: 30 }
3056 }
3057 },
3058 kind: 'set',
3059 method: false,
3060 shorthand: false,
3061 range: [6, 30],
3062 loc: {
3063 start: { line: 1, column: 6 },
3064 end: { line: 1, column: 30 }
3065 }
3066 }],
3067 range: [4, 32],
3068 loc: {
3069 start: { line: 1, column: 4 },
3070 end: { line: 1, column: 32 }
3071 }
3072 },
3073 range: [0, 32],
3074 loc: {
3075 start: { line: 1, column: 0 },
3076 end: { line: 1, column: 32 }
3077 }
3078 },
3079 range: [0, 32],
3080 loc: {
3081 start: { line: 1, column: 0 },
3082 end: { line: 1, column: 32 }
3083 }
3084 },
3085
3086 'x = { get: 42 }': {
3087 type: 'ExpressionStatement',
3088 expression: {
3089 type: 'AssignmentExpression',
3090 operator: '=',
3091 left: {
3092 type: 'Identifier',
3093 name: 'x',
3094 range: [0, 1],
3095 loc: {
3096 start: { line: 1, column: 0 },
3097 end: { line: 1, column: 1 }
3098 }
3099 },
3100 right: {
3101 type: 'ObjectExpression',
3102 properties: [{
3103 type: 'Property',
3104 key: {
3105 type: 'Identifier',
3106 name: 'get',
3107 range: [6, 9],
3108 loc: {
3109 start: { line: 1, column: 6 },
3110 end: { line: 1, column: 9 }
3111 }
3112 },
3113 value: {
3114 type: 'Literal',
3115 value: 42,
3116 raw: '42',
3117 range: [11, 13],
3118 loc: {
3119 start: { line: 1, column: 11 },
3120 end: { line: 1, column: 13 }
3121 }
3122 },
3123 kind: 'init',
3124 method: false,
3125 shorthand: false,
3126 range: [6, 13],
3127 loc: {
3128 start: { line: 1, column: 6 },
3129 end: { line: 1, column: 13 }
3130 }
3131 }],
3132 range: [4, 15],
3133 loc: {
3134 start: { line: 1, column: 4 },
3135 end: { line: 1, column: 15 }
3136 }
3137 },
3138 range: [0, 15],
3139 loc: {
3140 start: { line: 1, column: 0 },
3141 end: { line: 1, column: 15 }
3142 }
3143 },
3144 range: [0, 15],
3145 loc: {
3146 start: { line: 1, column: 0 },
3147 end: { line: 1, column: 15 }
3148 }
3149 },
3150
3151 'x = { set: 43 }': {
3152 type: 'ExpressionStatement',
3153 expression: {
3154 type: 'AssignmentExpression',
3155 operator: '=',
3156 left: {
3157 type: 'Identifier',
3158 name: 'x',
3159 range: [0, 1],
3160 loc: {
3161 start: { line: 1, column: 0 },
3162 end: { line: 1, column: 1 }
3163 }
3164 },
3165 right: {
3166 type: 'ObjectExpression',
3167 properties: [{
3168 type: 'Property',
3169 key: {
3170 type: 'Identifier',
3171 name: 'set',
3172 range: [6, 9],
3173 loc: {
3174 start: { line: 1, column: 6 },
3175 end: { line: 1, column: 9 }
3176 }
3177 },
3178 value: {
3179 type: 'Literal',
3180 value: 43,
3181 raw: '43',
3182 range: [11, 13],
3183 loc: {
3184 start: { line: 1, column: 11 },
3185 end: { line: 1, column: 13 }
3186 }
3187 },
3188 kind: 'init',
3189 method: false,
3190 shorthand: false,
3191 range: [6, 13],
3192 loc: {
3193 start: { line: 1, column: 6 },
3194 end: { line: 1, column: 13 }
3195 }
3196 }],
3197 range: [4, 15],
3198 loc: {
3199 start: { line: 1, column: 4 },
3200 end: { line: 1, column: 15 }
3201 }
3202 },
3203 range: [0, 15],
3204 loc: {
3205 start: { line: 1, column: 0 },
3206 end: { line: 1, column: 15 }
3207 }
3208 },
3209 range: [0, 15],
3210 loc: {
3211 start: { line: 1, column: 0 },
3212 end: { line: 1, column: 15 }
3213 }
3214 },
3215
3216 'x = { __proto__: 2 }': {
3217 type: 'ExpressionStatement',
3218 expression: {
3219 type: 'AssignmentExpression',
3220 operator: '=',
3221 left: {
3222 type: 'Identifier',
3223 name: 'x',
3224 range: [0, 1],
3225 loc: {
3226 start: { line: 1, column: 0 },
3227 end: { line: 1, column: 1 }
3228 }
3229 },
3230 right: {
3231 type: 'ObjectExpression',
3232 properties: [{
3233 type: 'Property',
3234 key: {
3235 type: 'Identifier',
3236 name: '__proto__',
3237 range: [6, 15],
3238 loc: {
3239 start: { line: 1, column: 6 },
3240 end: { line: 1, column: 15 }
3241 }
3242 },
3243 value: {
3244 type: 'Literal',
3245 value: 2,
3246 raw: '2',
3247 range: [17, 18],
3248 loc: {
3249 start: { line: 1, column: 17 },
3250 end: { line: 1, column: 18 }
3251 }
3252 },
3253 kind: 'init',
3254 method: false,
3255 shorthand: false,
3256 range: [6, 18],
3257 loc: {
3258 start: { line: 1, column: 6 },
3259 end: { line: 1, column: 18 }
3260 }
3261 }],
3262 range: [4, 20],
3263 loc: {
3264 start: { line: 1, column: 4 },
3265 end: { line: 1, column: 20 }
3266 }
3267 },
3268 range: [0, 20],
3269 loc: {
3270 start: { line: 1, column: 0 },
3271 end: { line: 1, column: 20 }
3272 }
3273 },
3274 range: [0, 20],
3275 loc: {
3276 start: { line: 1, column: 0 },
3277 end: { line: 1, column: 20 }
3278 }
3279 },
3280
3281 'x = {"__proto__": 2 }': {
3282 type: 'ExpressionStatement',
3283 expression: {
3284 type: 'AssignmentExpression',
3285 operator: '=',
3286 left: {
3287 type: 'Identifier',
3288 name: 'x',
3289 range: [0, 1],
3290 loc: {
3291 start: { line: 1, column: 0 },
3292 end: { line: 1, column: 1 }
3293 }
3294 },
3295 right: {
3296 type: 'ObjectExpression',
3297 properties: [{
3298 type: 'Property',
3299 key: {
3300 type: 'Literal',
3301 value: '__proto__',
3302 raw: '"__proto__"',
3303 range: [5, 16],
3304 loc: {
3305 start: { line: 1, column: 5 },
3306 end: { line: 1, column: 16 }
3307 }
3308 },
3309 value: {
3310 type: 'Literal',
3311 value: 2,
3312 raw: '2',
3313 range: [18, 19],
3314 loc: {
3315 start: { line: 1, column: 18 },
3316 end: { line: 1, column: 19 }
3317 }
3318 },
3319 kind: 'init',
3320 method: false,
3321 shorthand: false,
3322 range: [5, 19],
3323 loc: {
3324 start: { line: 1, column: 5 },
3325 end: { line: 1, column: 19 }
3326 }
3327 }],
3328 range: [4, 21],
3329 loc: {
3330 start: { line: 1, column: 4 },
3331 end: { line: 1, column: 21 }
3332 }
3333 },
3334 range: [0, 21],
3335 loc: {
3336 start: { line: 1, column: 0 },
3337 end: { line: 1, column: 21 }
3338 }
3339 },
3340 range: [0, 21],
3341 loc: {
3342 start: { line: 1, column: 0 },
3343 end: { line: 1, column: 21 }
3344 }
3345 },
3346
3347 'x = { get width() { return m_width }, set width(width) { m_width = width; } }': {
3348 type: 'ExpressionStatement',
3349 expression: {
3350 type: 'AssignmentExpression',
3351 operator: '=',
3352 left: {
3353 type: 'Identifier',
3354 name: 'x',
3355 range: [0, 1],
3356 loc: {
3357 start: { line: 1, column: 0 },
3358 end: { line: 1, column: 1 }
3359 }
3360 },
3361 right: {
3362 type: 'ObjectExpression',
3363 properties: [{
3364 type: 'Property',
3365 key: {
3366 type: 'Identifier',
3367 name: 'width',
3368 range: [10, 15],
3369 loc: {
3370 start: { line: 1, column: 10 },
3371 end: { line: 1, column: 15 }
3372 }
3373 },
3374 value: {
3375 type: 'FunctionExpression',
3376 id: null,
3377 params: [],
3378 defaults: [],
3379 body: {
3380 type: 'BlockStatement',
3381 body: [{
3382 type: 'ReturnStatement',
3383 argument: {
3384 type: 'Identifier',
3385 name: 'm_width',
3386 range: [27, 34],
3387 loc: {
3388 start: { line: 1, column: 27 },
3389 end: { line: 1, column: 34 }
3390 }
3391 },
3392 range: [20, 35],
3393 loc: {
3394 start: { line: 1, column: 20 },
3395 end: { line: 1, column: 35 }
3396 }
3397 }],
3398 range: [18, 36],
3399 loc: {
3400 start: { line: 1, column: 18 },
3401 end: { line: 1, column: 36 }
3402 }
3403 },
3404 rest: null,
3405 generator: false,
3406 expression: false,
3407 range: [18, 36],
3408 loc: {
3409 start: { line: 1, column: 18 },
3410 end: { line: 1, column: 36 }
3411 }
3412 },
3413 kind: 'get',
3414 method: false,
3415 shorthand: false,
3416 range: [6, 36],
3417 loc: {
3418 start: { line: 1, column: 6 },
3419 end: { line: 1, column: 36 }
3420 }
3421 }, {
3422 type: 'Property',
3423 key: {
3424 type: 'Identifier',
3425 name: 'width',
3426 range: [42, 47],
3427 loc: {
3428 start: { line: 1, column: 42 },
3429 end: { line: 1, column: 47 }
3430 }
3431 },
3432 value: {
3433 type: 'FunctionExpression',
3434 id: null,
3435 params: [{
3436 type: 'Identifier',
3437 name: 'width',
3438 range: [48, 53],
3439 loc: {
3440 start: { line: 1, column: 48 },
3441 end: { line: 1, column: 53 }
3442 }
3443 }],
3444 defaults: [],
3445 body: {
3446 type: 'BlockStatement',
3447 body: [{
3448 type: 'ExpressionStatement',
3449 expression: {
3450 type: 'AssignmentExpression',
3451 operator: '=',
3452 left: {
3453 type: 'Identifier',
3454 name: 'm_width',
3455 range: [57, 64],
3456 loc: {
3457 start: { line: 1, column: 57 },
3458 end: { line: 1, column: 64 }
3459 }
3460 },
3461 right: {
3462 type: 'Identifier',
3463 name: 'width',
3464 range: [67, 72],
3465 loc: {
3466 start: { line: 1, column: 67 },
3467 end: { line: 1, column: 72 }
3468 }
3469 },
3470 range: [57, 72],
3471 loc: {
3472 start: { line: 1, column: 57 },
3473 end: { line: 1, column: 72 }
3474 }
3475 },
3476 range: [57, 73],
3477 loc: {
3478 start: { line: 1, column: 57 },
3479 end: { line: 1, column: 73 }
3480 }
3481 }],
3482 range: [55, 75],
3483 loc: {
3484 start: { line: 1, column: 55 },
3485 end: { line: 1, column: 75 }
3486 }
3487 },
3488 rest: null,
3489 generator: false,
3490 expression: false,
3491 range: [55, 75],
3492 loc: {
3493 start: { line: 1, column: 55 },
3494 end: { line: 1, column: 75 }
3495 }
3496 },
3497 kind: 'set',
3498 method: false,
3499 shorthand: false,
3500 range: [38, 75],
3501 loc: {
3502 start: { line: 1, column: 38 },
3503 end: { line: 1, column: 75 }
3504 }
3505 }],
3506 range: [4, 77],
3507 loc: {
3508 start: { line: 1, column: 4 },
3509 end: { line: 1, column: 77 }
3510 }
3511 },
3512 range: [0, 77],
3513 loc: {
3514 start: { line: 1, column: 0 },
3515 end: { line: 1, column: 77 }
3516 }
3517 },
3518 range: [0, 77],
3519 loc: {
3520 start: { line: 1, column: 0 },
3521 end: { line: 1, column: 77 }
3522 }
3523 }
3524
3525
3526 },
3527
3528 'Comments': {
3529
3530 '/* block comment */ 42': {
3531 type: 'ExpressionStatement',
3532 expression: {
3533 type: 'Literal',
3534 value: 42,
3535 raw: '42',
3536 range: [20, 22],
3537 loc: {
3538 start: { line: 1, column: 20 },
3539 end: { line: 1, column: 22 }
3540 }
3541 },
3542 range: [20, 22],
3543 loc: {
3544 start: { line: 1, column: 20 },
3545 end: { line: 1, column: 22 }
3546 }
3547 },
3548
3549 '42 /*The*/ /*Answer*/': {
3550 type: 'Program',
3551 body: [{
3552 type: 'ExpressionStatement',
3553 expression: {
3554 type: 'Literal',
3555 value: 42,
3556 raw: '42',
3557 range: [0, 2],
3558 loc: {
3559 start: { line: 1, column: 0 },
3560 end: { line: 1, column: 2 }
3561 }
3562 },
3563 range: [0, 21],
3564 loc: {
3565 start: { line: 1, column: 0 },
3566 end: { line: 1, column: 21 }
3567 }
3568 }],
3569 range: [0, 21],
3570 loc: {
3571 start: { line: 1, column: 0 },
3572 end: { line: 1, column: 21 }
3573 },
3574 comments: [{
3575 type: 'Block',
3576 value: 'The',
3577 range: [3, 10],
3578 loc: {
3579 start: { line: 1, column: 3 },
3580 end: { line: 1, column: 10 }
3581 }
3582 }, {
3583 type: 'Block',
3584 value: 'Answer',
3585 range: [11, 21],
3586 loc: {
3587 start: { line: 1, column: 11 },
3588 end: { line: 1, column: 21 }
3589 }
3590 }]
3591 },
3592
3593 '42 /*the*/ /*answer*/': {
3594 type: 'Program',
3595 body: [{
3596 type: 'ExpressionStatement',
3597 expression: {
3598 type: 'Literal',
3599 value: 42,
3600 raw: '42',
3601 range: [0, 2]
3602 },
3603 range: [0, 21]
3604 }],
3605 range: [0, 21],
3606 comments: [{
3607 type: 'Block',
3608 value: 'the',
3609 range: [3, 10]
3610 }, {
3611 type: 'Block',
3612 value: 'answer',
3613 range: [11, 21]
3614 }]
3615 },
3616
3617 '42 /* the * answer */': {
3618 type: 'ExpressionStatement',
3619 expression: {
3620 type: 'Literal',
3621 value: 42,
3622 raw: '42',
3623 range: [0, 2],
3624 loc: {
3625 start: { line: 1, column: 0 },
3626 end: { line: 1, column: 2 }
3627 }
3628 },
3629 range: [0, 21],
3630 loc: {
3631 start: { line: 1, column: 0 },
3632 end: { line: 1, column: 21 }
3633 }
3634 },
3635
3636 '42 /* The * answer */': {
3637 type: 'Program',
3638 body: [{
3639 type: 'ExpressionStatement',
3640 expression: {
3641 type: 'Literal',
3642 value: 42,
3643 raw: '42',
3644 range: [0, 2],
3645 loc: {
3646 start: { line: 1, column: 0 },
3647 end: { line: 1, column: 2 }
3648 }
3649 },
3650 range: [0, 21],
3651 loc: {
3652 start: { line: 1, column: 0 },
3653 end: { line: 1, column: 21 }
3654 }
3655 }],
3656 range: [0, 21],
3657 loc: {
3658 start: { line: 1, column: 0 },
3659 end: { line: 1, column: 21 }
3660 },
3661 comments: [{
3662 type: 'Block',
3663 value: ' The * answer ',
3664 range: [3, 21],
3665 loc: {
3666 start: { line: 1, column: 3 },
3667 end: { line: 1, column: 21 }
3668 }
3669 }]
3670 },
3671
3672 '/* multiline\ncomment\nshould\nbe\nignored */ 42': {
3673 type: 'ExpressionStatement',
3674 expression: {
3675 type: 'Literal',
3676 value: 42,
3677 raw: '42',
3678 range: [42, 44],
3679 loc: {
3680 start: { line: 5, column: 11 },
3681 end: { line: 5, column: 13 }
3682 }
3683 },
3684 range: [42, 44],
3685 loc: {
3686 start: { line: 5, column: 11 },
3687 end: { line: 5, column: 13 }
3688 }
3689 },
3690
3691 '/*a\r\nb*/ 42': {
3692 type: 'Program',
3693 body: [{
3694 type: 'ExpressionStatement',
3695 expression: {
3696 type: 'Literal',
3697 value: 42,
3698 raw: '42',
3699 range: [9, 11],
3700 loc: {
3701 start: { line: 2, column: 4 },
3702 end: { line: 2, column: 6 }
3703 }
3704 },
3705 range: [9, 11],
3706 loc: {
3707 start: { line: 2, column: 4 },
3708 end: { line: 2, column: 6 }
3709 }
3710 }],
3711 range: [9, 11],
3712 loc: {
3713 start: { line: 2, column: 4 },
3714 end: { line: 2, column: 6 }
3715 },
3716 comments: [{
3717 type: 'Block',
3718 value: 'a\r\nb',
3719 range: [0, 8],
3720 loc: {
3721 start: { line: 1, column: 0 },
3722 end: { line: 2, column: 3 }
3723 }
3724 }]
3725 },
3726
3727 '/*a\rb*/ 42': {
3728 type: 'Program',
3729 body: [{
3730 type: 'ExpressionStatement',
3731 expression: {
3732 type: 'Literal',
3733 value: 42,
3734 raw: '42',
3735 range: [8, 10],
3736 loc: {
3737 start: { line: 2, column: 4 },
3738 end: { line: 2, column: 6 }
3739 }
3740 },
3741 range: [8, 10],
3742 loc: {
3743 start: { line: 2, column: 4 },
3744 end: { line: 2, column: 6 }
3745 }
3746 }],
3747 range: [8, 10],
3748 loc: {
3749 start: { line: 2, column: 4 },
3750 end: { line: 2, column: 6 }
3751 },
3752 comments: [{
3753 type: 'Block',
3754 value: 'a\rb',
3755 range: [0, 7],
3756 loc: {
3757 start: { line: 1, column: 0 },
3758 end: { line: 2, column: 3 }
3759 }
3760 }]
3761 },
3762
3763 '/*a\nb*/ 42': {
3764 type: 'Program',
3765 body: [{
3766 type: 'ExpressionStatement',
3767 expression: {
3768 type: 'Literal',
3769 value: 42,
3770 raw: '42',
3771 range: [8, 10],
3772 loc: {
3773 start: { line: 2, column: 4 },
3774 end: { line: 2, column: 6 }
3775 }
3776 },
3777 range: [8, 10],
3778 loc: {
3779 start: { line: 2, column: 4 },
3780 end: { line: 2, column: 6 }
3781 }
3782 }],
3783 range: [8, 10],
3784 loc: {
3785 start: { line: 2, column: 4 },
3786 end: { line: 2, column: 6 }
3787 },
3788 comments: [{
3789 type: 'Block',
3790 value: 'a\nb',
3791 range: [0, 7],
3792 loc: {
3793 start: { line: 1, column: 0 },
3794 end: { line: 2, column: 3 }
3795 }
3796 }]
3797 },
3798
3799 '/*a\nc*/ 42': {
3800 type: 'Program',
3801 body: [{
3802 type: 'ExpressionStatement',
3803 expression: {
3804 type: 'Literal',
3805 value: 42,
3806 raw: '42',
3807 loc: {
3808 start: { line: 2, column: 4 },
3809 end: { line: 2, column: 6 }
3810 }
3811 },
3812 loc: {
3813 start: { line: 2, column: 4 },
3814 end: { line: 2, column: 6 }
3815 }
3816 }],
3817 loc: {
3818 start: { line: 2, column: 4 },
3819 end: { line: 2, column: 6 }
3820 },
3821 comments: [{
3822 type: 'Block',
3823 value: 'a\nc',
3824 loc: {
3825 start: { line: 1, column: 0 },
3826 end: { line: 2, column: 3 }
3827 }
3828 }]
3829 },
3830
3831 '// line comment\n42': {
3832 type: 'ExpressionStatement',
3833 expression: {
3834 type: 'Literal',
3835 value: 42,
3836 raw: '42',
3837 range: [16, 18],
3838 loc: {
3839 start: { line: 2, column: 0 },
3840 end: { line: 2, column: 2 }
3841 }
3842 },
3843 range: [16, 18],
3844 loc: {
3845 start: { line: 2, column: 0 },
3846 end: { line: 2, column: 2 }
3847 }
3848 },
3849
3850 '42 // line comment': {
3851 type: 'Program',
3852 body: [{
3853 type: 'ExpressionStatement',
3854 expression: {
3855 type: 'Literal',
3856 value: 42,
3857 raw: '42',
3858 range: [0, 2],
3859 loc: {
3860 start: { line: 1, column: 0 },
3861 end: { line: 1, column: 2 }
3862 }
3863 },
3864 range: [0, 18],
3865 loc: {
3866 start: { line: 1, column: 0 },
3867 end: { line: 1, column: 18 }
3868 }
3869 }],
3870 range: [0, 18],
3871 loc: {
3872 start: { line: 1, column: 0 },
3873 end: { line: 1, column: 18 }
3874 },
3875 comments: [{
3876 type: 'Line',
3877 value: ' line comment',
3878 range: [3, 18],
3879 loc: {
3880 start: { line: 1, column: 3 },
3881 end: { line: 1, column: 18 }
3882 }
3883 }]
3884 },
3885
3886 '// Hello, world!\n42': {
3887 type: 'Program',
3888 body: [{
3889 type: 'ExpressionStatement',
3890 expression: {
3891 type: 'Literal',
3892 value: 42,
3893 raw: '42',
3894 range: [17, 19],
3895 loc: {
3896 start: { line: 2, column: 0 },
3897 end: { line: 2, column: 2 }
3898 }
3899 },
3900 range: [17, 19],
3901 loc: {
3902 start: { line: 2, column: 0 },
3903 end: { line: 2, column: 2 }
3904 }
3905 }],
3906 range: [17, 19],
3907 loc: {
3908 start: { line: 2, column: 0 },
3909 end: { line: 2, column: 2 }
3910 },
3911 comments: [{
3912 type: 'Line',
3913 value: ' Hello, world!',
3914 range: [0, 16],
3915 loc: {
3916 start: { line: 1, column: 0 },
3917 end: { line: 1, column: 16 }
3918 }
3919 }]
3920 },
3921
3922 '// Hello, world!\n': {
3923 type: 'Program',
3924 body: [],
3925 range: [17, 17],
3926 loc: {
3927 start: { line: 2, column: 0 },
3928 end: { line: 2, column: 0 }
3929 },
3930 comments: [{
3931 type: 'Line',
3932 value: ' Hello, world!',
3933 range: [0, 16],
3934 loc: {
3935 start: { line: 1, column: 0 },
3936 end: { line: 1, column: 16 }
3937 }
3938 }]
3939 },
3940
3941 '// Hallo, world!\n': {
3942 type: 'Program',
3943 body: [],
3944 loc: {
3945 start: { line: 2, column: 0 },
3946 end: { line: 2, column: 0 }
3947 },
3948 comments: [{
3949 type: 'Line',
3950 value: ' Hallo, world!',
3951 loc: {
3952 start: { line: 1, column: 0 },
3953 end: { line: 1, column: 16 }
3954 }
3955 }]
3956 },
3957
3958 '//\n42': {
3959 type: 'Program',
3960 body: [{
3961 type: 'ExpressionStatement',
3962 expression: {
3963 type: 'Literal',
3964 value: 42,
3965 raw: '42',
3966 range: [3, 5],
3967 loc: {
3968 start: { line: 2, column: 0 },
3969 end: { line: 2, column: 2 }
3970 }
3971 },
3972 range: [3, 5],
3973 loc: {
3974 start: { line: 2, column: 0 },
3975 end: { line: 2, column: 2 }
3976 }
3977 }],
3978 range: [3, 5],
3979 loc: {
3980 start: { line: 2, column: 0 },
3981 end: { line: 2, column: 2 }
3982 },
3983 comments: [{
3984 type: 'Line',
3985 value: '',
3986 range: [0, 2],
3987 loc: {
3988 start: { line: 1, column: 0 },
3989 end: { line: 1, column: 2 }
3990 }
3991 }]
3992 },
3993
3994 '//': {
3995 type: 'Program',
3996 body: [],
3997 range: [2, 2],
3998 loc: {
3999 start: { line: 1, column: 2 },
4000 end: { line: 1, column: 2 }
4001 },
4002 comments: [{
4003 type: 'Line',
4004 value: '',
4005 range: [0, 2],
4006 loc: {
4007 start: { line: 1, column: 0 },
4008 end: { line: 1, column: 2 }
4009 }
4010 }]
4011 },
4012
4013 '// ': {
4014 type: 'Program',
4015 body: [],
4016 range: [3, 3],
4017 comments: [{
4018 type: 'Line',
4019 value: ' ',
4020 range: [0, 3]
4021 }]
4022 },
4023
4024 '/**/42': {
4025 type: 'Program',
4026 body: [{
4027 type: 'ExpressionStatement',
4028 expression: {
4029 type: 'Literal',
4030 value: 42,
4031 raw: '42',
4032 range: [4, 6],
4033 loc: {
4034 start: { line: 1, column: 4 },
4035 end: { line: 1, column: 6 }
4036 }
4037 },
4038 range: [4, 6],
4039 loc: {
4040 start: { line: 1, column: 4 },
4041 end: { line: 1, column: 6 }
4042 }
4043 }],
4044 range: [4, 6],
4045 loc: {
4046 start: { line: 1, column: 4 },
4047 end: { line: 1, column: 6 }
4048 },
4049 comments: [{
4050 type: 'Block',
4051 value: '',
4052 range: [0, 4],
4053 loc: {
4054 start: { line: 1, column: 0 },
4055 end: { line: 1, column: 4 }
4056 }
4057 }]
4058 },
4059
4060 '// Hello, world!\n\n// Another hello\n42': {
4061 type: 'Program',
4062 body: [{
4063 type: 'ExpressionStatement',
4064 expression: {
4065 type: 'Literal',
4066 value: 42,
4067 raw: '42',
4068 range: [37, 39],
4069 loc: {
4070 start: { line: 4, column: 0 },
4071 end: { line: 4, column: 2 }
4072 }
4073 },
4074 range: [37, 39],
4075 loc: {
4076 start: { line: 4, column: 0 },
4077 end: { line: 4, column: 2 }
4078 }
4079 }],
4080 range: [37, 39],
4081 loc: {
4082 start: { line: 4, column: 0 },
4083 end: { line: 4, column: 2 }
4084 },
4085 comments: [{
4086 type: 'Line',
4087 value: ' Hello, world!',
4088 range: [0, 16],
4089 loc: {
4090 start: { line: 1, column: 0 },
4091 end: { line: 1, column: 16 }
4092 }
4093 }, {
4094 type: 'Line',
4095 value: ' Another hello',
4096 range: [18, 36],
4097 loc: {
4098 start: { line: 3, column: 0 },
4099 end: { line: 3, column: 18 }
4100 }
4101 }]
4102 },
4103
4104 'if (x) { // Some comment\ndoThat(); }': {
4105 type: 'Program',
4106 body: [{
4107 type: 'IfStatement',
4108 test: {
4109 type: 'Identifier',
4110 name: 'x',
4111 range: [4, 5],
4112 loc: {
4113 start: { line: 1, column: 4 },
4114 end: { line: 1, column: 5 }
4115 }
4116 },
4117 consequent: {
4118 type: 'BlockStatement',
4119 body: [{
4120 type: 'ExpressionStatement',
4121 expression: {
4122 type: 'CallExpression',
4123 callee: {
4124 type: 'Identifier',
4125 name: 'doThat',
4126 range: [25, 31],
4127 loc: {
4128 start: { line: 2, column: 0 },
4129 end: { line: 2, column: 6 }
4130 }
4131 },
4132 'arguments': [],
4133 range: [25, 33],
4134 loc: {
4135 start: { line: 2, column: 0 },
4136 end: { line: 2, column: 8 }
4137 }
4138 },
4139 range: [25, 34],
4140 loc: {
4141 start: { line: 2, column: 0 },
4142 end: { line: 2, column: 9 }
4143 }
4144 }],
4145 range: [7, 36],
4146 loc: {
4147 start: { line: 1, column: 7 },
4148 end: { line: 2, column: 11 }
4149 }
4150 },
4151 alternate: null,
4152 range: [0, 36],
4153 loc: {
4154 start: { line: 1, column: 0 },
4155 end: { line: 2, column: 11 }
4156 }
4157 }],
4158 range: [0, 36],
4159 loc: {
4160 start: { line: 1, column: 0 },
4161 end: { line: 2, column: 11 }
4162 },
4163 comments: [{
4164 type: 'Line',
4165 value: ' Some comment',
4166 range: [9, 24],
4167 loc: {
4168 start: { line: 1, column: 9 },
4169 end: { line: 1, column: 24 }
4170 }
4171 }]
4172 },
4173
4174 'switch (answer) { case 42: /* perfect */ bingo() }': {
4175 type: 'Program',
4176 body: [{
4177 type: 'SwitchStatement',
4178 discriminant: {
4179 type: 'Identifier',
4180 name: 'answer',
4181 range: [8, 14],
4182 loc: {
4183 start: { line: 1, column: 8 },
4184 end: { line: 1, column: 14 }
4185 }
4186 },
4187 cases: [{
4188 type: 'SwitchCase',
4189 test: {
4190 type: 'Literal',
4191 value: 42,
4192 raw: '42',
4193 range: [23, 25],
4194 loc: {
4195 start: { line: 1, column: 23 },
4196 end: { line: 1, column: 25 }
4197 }
4198 },
4199 consequent: [{
4200 type: 'ExpressionStatement',
4201 expression: {
4202 type: 'CallExpression',
4203 callee: {
4204 type: 'Identifier',
4205 name: 'bingo',
4206 range: [41, 46],
4207 loc: {
4208 start: { line: 1, column: 41 },
4209 end: { line: 1, column: 46 }
4210 }
4211 },
4212 'arguments': [],
4213 range: [41, 48],
4214 loc: {
4215 start: { line: 1, column: 41 },
4216 end: { line: 1, column: 48 }
4217 }
4218 },
4219 range: [41, 49],
4220 loc: {
4221 start: { line: 1, column: 41 },
4222 end: { line: 1, column: 49 }
4223 }
4224 }],
4225 range: [18, 49],
4226 loc: {
4227 start: { line: 1, column: 18 },
4228 end: { line: 1, column: 49 }
4229 }
4230 }],
4231 range: [0, 50],
4232 loc: {
4233 start: { line: 1, column: 0 },
4234 end: { line: 1, column: 50 }
4235 }
4236 }],
4237 range: [0, 50],
4238 loc: {
4239 start: { line: 1, column: 0 },
4240 end: { line: 1, column: 50 }
4241 },
4242 comments: [{
4243 type: 'Block',
4244 value: ' perfect ',
4245 range: [27, 40],
4246 loc: {
4247 start: { line: 1, column: 27 },
4248 end: { line: 1, column: 40 }
4249 }
4250 }]
4251 }
4252
4253 },
4254
4255 'Numeric Literals': {
4256
4257 '0': {
4258 type: 'ExpressionStatement',
4259 expression: {
4260 type: 'Literal',
4261 value: 0,
4262 raw: '0',
4263 range: [0, 1],
4264 loc: {
4265 start: { line: 1, column: 0 },
4266 end: { line: 1, column: 1 }
4267 }
4268 },
4269 range: [0, 1],
4270 loc: {
4271 start: { line: 1, column: 0 },
4272 end: { line: 1, column: 1 }
4273 }
4274 },
4275
4276 '42': {
4277 type: 'ExpressionStatement',
4278 expression: {
4279 type: 'Literal',
4280 value: 42,
4281 raw: '42',
4282 range: [0, 2],
4283 loc: {
4284 start: { line: 1, column: 0 },
4285 end: { line: 1, column: 2 }
4286 }
4287 },
4288 range: [0, 2],
4289 loc: {
4290 start: { line: 1, column: 0 },
4291 end: { line: 1, column: 2 }
4292 }
4293 },
4294
4295 '3': {
4296 type: 'Program',
4297 body: [{
4298 type: 'ExpressionStatement',
4299 expression: {
4300 type: 'Literal',
4301 value: 3,
4302 raw: '3',
4303 range: [0, 1]
4304 },
4305 range: [0, 1]
4306 }],
4307 range: [0, 1],
4308 tokens: [{
4309 type: 'Numeric',
4310 value: '3',
4311 range: [0, 1]
4312 }]
4313 },
4314
4315 '5': {
4316 type: 'Program',
4317 body: [{
4318 type: 'ExpressionStatement',
4319 expression: {
4320 type: 'Literal',
4321 value: 5,
4322 raw: '5',
4323 loc: {
4324 start: { line: 1, column: 0 },
4325 end: { line: 1, column: 1 }
4326 }
4327 },
4328 loc: {
4329 start: { line: 1, column: 0 },
4330 end: { line: 1, column: 1 }
4331 }
4332 }],
4333 loc: {
4334 start: { line: 1, column: 0 },
4335 end: { line: 1, column: 1 }
4336 },
4337 tokens: [{
4338 type: 'Numeric',
4339 value: '5',
4340 loc: {
4341 start: { line: 1, column: 0 },
4342 end: { line: 1, column: 1 }
4343 }
4344 }]
4345 },
4346
4347 '.14': {
4348 type: 'ExpressionStatement',
4349 expression: {
4350 type: 'Literal',
4351 value: 0.14,
4352 raw: '.14',
4353 range: [0, 3],
4354 loc: {
4355 start: { line: 1, column: 0 },
4356 end: { line: 1, column: 3 }
4357 }
4358 },
4359 range: [0, 3],
4360 loc: {
4361 start: { line: 1, column: 0 },
4362 end: { line: 1, column: 3 }
4363 }
4364 },
4365
4366 '3.14159': {
4367 type: 'ExpressionStatement',
4368 expression: {
4369 type: 'Literal',
4370 value: 3.14159,
4371 raw: '3.14159',
4372 range: [0, 7],
4373 loc: {
4374 start: { line: 1, column: 0 },
4375 end: { line: 1, column: 7 }
4376 }
4377 },
4378 range: [0, 7],
4379 loc: {
4380 start: { line: 1, column: 0 },
4381 end: { line: 1, column: 7 }
4382 }
4383 },
4384
4385 '6.02214179e+23': {
4386 type: 'ExpressionStatement',
4387 expression: {
4388 type: 'Literal',
4389 value: 6.02214179e+23,
4390 raw: '6.02214179e+23',
4391 range: [0, 14],
4392 loc: {
4393 start: { line: 1, column: 0 },
4394 end: { line: 1, column: 14 }
4395 }
4396 },
4397 range: [0, 14],
4398 loc: {
4399 start: { line: 1, column: 0 },
4400 end: { line: 1, column: 14 }
4401 }
4402 },
4403
4404 '1.492417830e-10': {
4405 type: 'ExpressionStatement',
4406 expression: {
4407 type: 'Literal',
4408 value: 1.49241783e-10,
4409 raw: '1.492417830e-10',
4410 range: [0, 15],
4411 loc: {
4412 start: { line: 1, column: 0 },
4413 end: { line: 1, column: 15 }
4414 }
4415 },
4416 range: [0, 15],
4417 loc: {
4418 start: { line: 1, column: 0 },
4419 end: { line: 1, column: 15 }
4420 }
4421 },
4422
4423 '0x0': {
4424 type: 'ExpressionStatement',
4425 expression: {
4426 type: 'Literal',
4427 value: 0,
4428 raw: '0x0',
4429 range: [0, 3],
4430 loc: {
4431 start: { line: 1, column: 0 },
4432 end: { line: 1, column: 3 }
4433 }
4434 },
4435 range: [0, 3],
4436 loc: {
4437 start: { line: 1, column: 0 },
4438 end: { line: 1, column: 3 }
4439 }
4440 },
4441
4442 '0x0;': {
4443 type: 'ExpressionStatement',
4444 expression: {
4445 type: 'Literal',
4446 value: 0,
4447 raw: '0x0',
4448 range: [0, 3],
4449 loc: {
4450 start: { line: 1, column: 0 },
4451 end: { line: 1, column: 3 }
4452 }
4453 },
4454 range: [0, 4],
4455 loc: {
4456 start: { line: 1, column: 0 },
4457 end: { line: 1, column: 4 }
4458 }
4459 },
4460
4461 '0e+100 ': {
4462 type: 'ExpressionStatement',
4463 expression: {
4464 type: 'Literal',
4465 value: 0,
4466 raw: '0e+100',
4467 range: [0, 6],
4468 loc: {
4469 start: { line: 1, column: 0 },
4470 end: { line: 1, column: 6 }
4471 }
4472 },
4473 range: [0, 7],
4474 loc: {
4475 start: { line: 1, column: 0 },
4476 end: { line: 1, column: 7 }
4477 }
4478 },
4479
4480 '0e+100': {
4481 type: 'ExpressionStatement',
4482 expression: {
4483 type: 'Literal',
4484 value: 0,
4485 raw: '0e+100',
4486 range: [0, 6],
4487 loc: {
4488 start: { line: 1, column: 0 },
4489 end: { line: 1, column: 6 }
4490 }
4491 },
4492 range: [0, 6],
4493 loc: {
4494 start: { line: 1, column: 0 },
4495 end: { line: 1, column: 6 }
4496 }
4497 },
4498
4499 '0xabc': {
4500 type: 'ExpressionStatement',
4501 expression: {
4502 type: 'Literal',
4503 value: 0xabc,
4504 raw: '0xabc',
4505 range: [0, 5],
4506 loc: {
4507 start: { line: 1, column: 0 },
4508 end: { line: 1, column: 5 }
4509 }
4510 },
4511 range: [0, 5],
4512 loc: {
4513 start: { line: 1, column: 0 },
4514 end: { line: 1, column: 5 }
4515 }
4516 },
4517
4518 '0xdef': {
4519 type: 'ExpressionStatement',
4520 expression: {
4521 type: 'Literal',
4522 value: 0xdef,
4523 raw: '0xdef',
4524 range: [0, 5],
4525 loc: {
4526 start: { line: 1, column: 0 },
4527 end: { line: 1, column: 5 }
4528 }
4529 },
4530 range: [0, 5],
4531 loc: {
4532 start: { line: 1, column: 0 },
4533 end: { line: 1, column: 5 }
4534 }
4535 },
4536
4537 '0X1A': {
4538 type: 'ExpressionStatement',
4539 expression: {
4540 type: 'Literal',
4541 value: 0x1A,
4542 raw: '0X1A',
4543 range: [0, 4],
4544 loc: {
4545 start: { line: 1, column: 0 },
4546 end: { line: 1, column: 4 }
4547 }
4548 },
4549 range: [0, 4],
4550 loc: {
4551 start: { line: 1, column: 0 },
4552 end: { line: 1, column: 4 }
4553 }
4554 },
4555
4556 '0x10': {
4557 type: 'ExpressionStatement',
4558 expression: {
4559 type: 'Literal',
4560 value: 0x10,
4561 raw: '0x10',
4562 range: [0, 4],
4563 loc: {
4564 start: { line: 1, column: 0 },
4565 end: { line: 1, column: 4 }
4566 }
4567 },
4568 range: [0, 4],
4569 loc: {
4570 start: { line: 1, column: 0 },
4571 end: { line: 1, column: 4 }
4572 }
4573 },
4574
4575 '0x100': {
4576 type: 'ExpressionStatement',
4577 expression: {
4578 type: 'Literal',
4579 value: 0x100,
4580 raw: '0x100',
4581 range: [0, 5],
4582 loc: {
4583 start: { line: 1, column: 0 },
4584 end: { line: 1, column: 5 }
4585 }
4586 },
4587 range: [0, 5],
4588 loc: {
4589 start: { line: 1, column: 0 },
4590 end: { line: 1, column: 5 }
4591 }
4592 },
4593
4594 '0X04': {
4595 type: 'ExpressionStatement',
4596 expression: {
4597 type: 'Literal',
4598 value: 0X04,
4599 raw: '0X04',
4600 range: [0, 4],
4601 loc: {
4602 start: { line: 1, column: 0 },
4603 end: { line: 1, column: 4 }
4604 }
4605 },
4606 range: [0, 4],
4607 loc: {
4608 start: { line: 1, column: 0 },
4609 end: { line: 1, column: 4 }
4610 }
4611 },
4612
4613 '02': {
4614 type: 'ExpressionStatement',
4615 expression: {
4616 type: 'Literal',
4617 value: 2,
4618 raw: '02',
4619 range: [0, 2],
4620 loc: {
4621 start: { line: 1, column: 0 },
4622 end: { line: 1, column: 2 }
4623 }
4624 },
4625 range: [0, 2],
4626 loc: {
4627 start: { line: 1, column: 0 },
4628 end: { line: 1, column: 2 }
4629 }
4630 },
4631
4632 '012': {
4633 type: 'ExpressionStatement',
4634 expression: {
4635 type: 'Literal',
4636 value: 10,
4637 raw: '012',
4638 range: [0, 3],
4639 loc: {
4640 start: { line: 1, column: 0 },
4641 end: { line: 1, column: 3 }
4642 }
4643 },
4644 range: [0, 3],
4645 loc: {
4646 start: { line: 1, column: 0 },
4647 end: { line: 1, column: 3 }
4648 }
4649 },
4650
4651 '0012': {
4652 type: 'ExpressionStatement',
4653 expression: {
4654 type: 'Literal',
4655 value: 10,
4656 raw: '0012',
4657 range: [0, 4],
4658 loc: {
4659 start: { line: 1, column: 0 },
4660 end: { line: 1, column: 4 }
4661 }
4662 },
4663 range: [0, 4],
4664 loc: {
4665 start: { line: 1, column: 0 },
4666 end: { line: 1, column: 4 }
4667 }
4668 }
4669
4670 },
4671
4672 'String Literals': {
4673
4674 '"Hello"': {
4675 type: 'ExpressionStatement',
4676 expression: {
4677 type: 'Literal',
4678 value: 'Hello',
4679 raw: '"Hello"',
4680 range: [0, 7],
4681 loc: {
4682 start: { line: 1, column: 0 },
4683 end: { line: 1, column: 7 }
4684 }
4685 },
4686 range: [0, 7],
4687 loc: {
4688 start: { line: 1, column: 0 },
4689 end: { line: 1, column: 7 }
4690 }
4691 },
4692
4693 '"\\n\\r\\t\\v\\b\\f\\\\\\\'\\"\\0"': {
4694 type: 'ExpressionStatement',
4695 expression: {
4696 type: 'Literal',
4697 value: '\n\r\t\x0B\b\f\\\'"\x00',
4698 raw: '"\\n\\r\\t\\v\\b\\f\\\\\\\'\\"\\0"',
4699 range: [0, 22],
4700 loc: {
4701 start: { line: 1, column: 0 },
4702 end: { line: 1, column: 22 }
4703 }
4704 },
4705 range: [0, 22],
4706 loc: {
4707 start: { line: 1, column: 0 },
4708 end: { line: 1, column: 22 }
4709 }
4710 },
4711
4712 '"\\u0061"': {
4713 type: 'ExpressionStatement',
4714 expression: {
4715 type: 'Literal',
4716 value: 'a',
4717 raw: '"\\u0061"',
4718 range: [0, 8],
4719 loc: {
4720 start: { line: 1, column: 0 },
4721 end: { line: 1, column: 8 }
4722 }
4723 },
4724 range: [0, 8],
4725 loc: {
4726 start: { line: 1, column: 0 },
4727 end: { line: 1, column: 8 }
4728 }
4729 },
4730
4731 '"\\x61"': {
4732 type: 'ExpressionStatement',
4733 expression: {
4734 type: 'Literal',
4735 value: 'a',
4736 raw: '"\\x61"',
4737 range: [0, 6],
4738 loc: {
4739 start: { line: 1, column: 0 },
4740 end: { line: 1, column: 6 }
4741 }
4742 },
4743 range: [0, 6],
4744 loc: {
4745 start: { line: 1, column: 0 },
4746 end: { line: 1, column: 6 }
4747 }
4748 },
4749
4750 '"\\u00"': {
4751 type: 'ExpressionStatement',
4752 expression: {
4753 type: 'Literal',
4754 value: 'u00',
4755 raw: '"\\u00"',
4756 range: [0, 6],
4757 loc: {
4758 start: { line: 1, column: 0 },
4759 end: { line: 1, column: 6 }
4760 }
4761 },
4762 range: [0, 6],
4763 loc: {
4764 start: { line: 1, column: 0 },
4765 end: { line: 1, column: 6 }
4766 }
4767 },
4768
4769 '"\\xt"': {
4770 type: 'ExpressionStatement',
4771 expression: {
4772 type: 'Literal',
4773 value: 'xt',
4774 raw: '"\\xt"',
4775 range: [0, 5],
4776 loc: {
4777 start: { line: 1, column: 0 },
4778 end: { line: 1, column: 5 }
4779 }
4780 },
4781 range: [0, 5],
4782 loc: {
4783 start: { line: 1, column: 0 },
4784 end: { line: 1, column: 5 }
4785 }
4786 },
4787
4788 '"Hello\\nworld"': {
4789 type: 'ExpressionStatement',
4790 expression: {
4791 type: 'Literal',
4792 value: 'Hello\nworld',
4793 raw: '"Hello\\nworld"',
4794 range: [0, 14],
4795 loc: {
4796 start: { line: 1, column: 0 },
4797 end: { line: 1, column: 14 }
4798 }
4799 },
4800 range: [0, 14],
4801 loc: {
4802 start: { line: 1, column: 0 },
4803 end: { line: 1, column: 14 }
4804 }
4805 },
4806
4807 '"Hello\\\nworld"': {
4808 type: 'ExpressionStatement',
4809 expression: {
4810 type: 'Literal',
4811 value: 'Helloworld',
4812 raw: '"Hello\\\nworld"',
4813 range: [0, 14],
4814 loc: {
4815 start: { line: 1, column: 0 },
4816 end: { line: 2, column: 14 }
4817 }
4818 },
4819 range: [0, 14],
4820 loc: {
4821 start: { line: 1, column: 0 },
4822 end: { line: 2, column: 14 }
4823 }
4824 },
4825
4826 '"Hello\\02World"': {
4827 type: 'ExpressionStatement',
4828 expression: {
4829 type: 'Literal',
4830 value: 'Hello\u0002World',
4831 raw: '"Hello\\02World"',
4832 range: [0, 15],
4833 loc: {
4834 start: { line: 1, column: 0 },
4835 end: { line: 1, column: 15 }
4836 }
4837 },
4838 range: [0, 15],
4839 loc: {
4840 start: { line: 1, column: 0 },
4841 end: { line: 1, column: 15 }
4842 }
4843 },
4844
4845 '"Hello\\012World"': {
4846 type: 'ExpressionStatement',
4847 expression: {
4848 type: 'Literal',
4849 value: 'Hello\u000AWorld',
4850 raw: '"Hello\\012World"',
4851 range: [0, 16],
4852 loc: {
4853 start: { line: 1, column: 0 },
4854 end: { line: 1, column: 16 }
4855 }
4856 },
4857 range: [0, 16],
4858 loc: {
4859 start: { line: 1, column: 0 },
4860 end: { line: 1, column: 16 }
4861 }
4862 },
4863
4864 '"Hello\\122World"': {
4865 type: 'ExpressionStatement',
4866 expression: {
4867 type: 'Literal',
4868 value: 'Hello\122World',
4869 raw: '"Hello\\122World"',
4870 range: [0, 16],
4871 loc: {
4872 start: { line: 1, column: 0 },
4873 end: { line: 1, column: 16 }
4874 }
4875 },
4876 range: [0, 16],
4877 loc: {
4878 start: { line: 1, column: 0 },
4879 end: { line: 1, column: 16 }
4880 }
4881 },
4882
4883 '"Hello\\0122World"': {
4884 type: 'ExpressionStatement',
4885 expression: {
4886 type: 'Literal',
4887 value: 'Hello\u000A2World',
4888 raw: '"Hello\\0122World"',
4889 range: [0, 17],
4890 loc: {
4891 start: { line: 1, column: 0 },
4892 end: { line: 1, column: 17 }
4893 }
4894 },
4895 range: [0, 17],
4896 loc: {
4897 start: { line: 1, column: 0 },
4898 end: { line: 1, column: 17 }
4899 }
4900 },
4901
4902 '"Hello\\312World"': {
4903 type: 'ExpressionStatement',
4904 expression: {
4905 type: 'Literal',
4906 value: 'Hello\u00CAWorld',
4907 raw: '"Hello\\312World"',
4908 range: [0, 16],
4909 loc: {
4910 start: { line: 1, column: 0 },
4911 end: { line: 1, column: 16 }
4912 }
4913 },
4914 range: [0, 16],
4915 loc: {
4916 start: { line: 1, column: 0 },
4917 end: { line: 1, column: 16 }
4918 }
4919 },
4920
4921 '"Hello\\412World"': {
4922 type: 'ExpressionStatement',
4923 expression: {
4924 type: 'Literal',
4925 value: 'Hello\412World',
4926 raw: '"Hello\\412World"',
4927 range: [0, 16],
4928 loc: {
4929 start: { line: 1, column: 0 },
4930 end: { line: 1, column: 16 }
4931 }
4932 },
4933 range: [0, 16],
4934 loc: {
4935 start: { line: 1, column: 0 },
4936 end: { line: 1, column: 16 }
4937 }
4938 },
4939
4940 '"Hello\\812World"': {
4941 type: 'ExpressionStatement',
4942 expression: {
4943 type: 'Literal',
4944 value: 'Hello812World',
4945 raw: '"Hello\\812World"',
4946 range: [0, 16],
4947 loc: {
4948 start: { line: 1, column: 0 },
4949 end: { line: 1, column: 16 }
4950 }
4951 },
4952 range: [0, 16],
4953 loc: {
4954 start: { line: 1, column: 0 },
4955 end: { line: 1, column: 16 }
4956 }
4957 },
4958
4959 '"Hello\\712World"': {
4960 type: 'ExpressionStatement',
4961 expression: {
4962 type: 'Literal',
4963 value: 'Hello\712World',
4964 raw: '"Hello\\712World"',
4965 range: [0, 16],
4966 loc: {
4967 start: { line: 1, column: 0 },
4968 end: { line: 1, column: 16 }
4969 }
4970 },
4971 range: [0, 16],
4972 loc: {
4973 start: { line: 1, column: 0 },
4974 end: { line: 1, column: 16 }
4975 }
4976 },
4977
4978 '"Hello\\0World"': {
4979 type: 'ExpressionStatement',
4980 expression: {
4981 type: 'Literal',
4982 value: 'Hello\u0000World',
4983 raw: '"Hello\\0World"',
4984 range: [0, 14],
4985 loc: {
4986 start: { line: 1, column: 0 },
4987 end: { line: 1, column: 14 }
4988 }
4989 },
4990 range: [0, 14],
4991 loc: {
4992 start: { line: 1, column: 0 },
4993 end: { line: 1, column: 14 }
4994 }
4995 },
4996
4997 '"Hello\\\r\nworld"': {
4998 type: 'ExpressionStatement',
4999 expression: {
5000 type: 'Literal',
5001 value: 'Helloworld',
5002 raw: '"Hello\\\r\nworld"',
5003 range: [0, 15],
5004 loc: {
5005 start: { line: 1, column: 0 },
5006 end: { line: 2, column: 15 }
5007 }
5008 },
5009 range: [0, 15],
5010 loc: {
5011 start: { line: 1, column: 0 },
5012 end: { line: 2, column: 15 }
5013 }
5014 },
5015
5016 '"Hello\\1World"': {
5017 type: 'ExpressionStatement',
5018 expression: {
5019 type: 'Literal',
5020 value: 'Hello\u0001World',
5021 raw: '"Hello\\1World"',
5022 range: [0, 14],
5023 loc: {
5024 start: { line: 1, column: 0 },
5025 end: { line: 1, column: 14 }
5026 }
5027 },
5028 range: [0, 14],
5029 loc: {
5030 start: { line: 1, column: 0 },
5031 end: { line: 1, column: 14 }
5032 }
5033 }
5034 },
5035
5036 'Regular Expression Literals': {
5037
5038 'var x = /[a-z]/i': {
5039 type: 'Program',
5040 body: [{
5041 type: 'VariableDeclaration',
5042 declarations: [{
5043 type: 'VariableDeclarator',
5044 id: {
5045 type: 'Identifier',
5046 name: 'x',
5047 range: [4, 5],
5048 loc: {
5049 start: { line: 1, column: 4 },
5050 end: { line: 1, column: 5 }
5051 }
5052 },
5053 init: {
5054 type: 'Literal',
5055 value: '/[a-z]/i',
5056 raw: '/[a-z]/i',
5057 range: [8, 16],
5058 loc: {
5059 start: { line: 1, column: 8 },
5060 end: { line: 1, column: 16 }
5061 }
5062 },
5063 range: [4, 16],
5064 loc: {
5065 start: { line: 1, column: 4 },
5066 end: { line: 1, column: 16 }
5067 }
5068 }],
5069 kind: 'var',
5070 range: [0, 16],
5071 loc: {
5072 start: { line: 1, column: 0 },
5073 end: { line: 1, column: 16 }
5074 }
5075 }],
5076 range: [0, 16],
5077 loc: {
5078 start: { line: 1, column: 0 },
5079 end: { line: 1, column: 16 }
5080 },
5081 tokens: [{
5082 type: 'Keyword',
5083 value: 'var',
5084 range: [0, 3],
5085 loc: {
5086 start: { line: 1, column: 0 },
5087 end: { line: 1, column: 3 }
5088 }
5089 }, {
5090 type: 'Identifier',
5091 value: 'x',
5092 range: [4, 5],
5093 loc: {
5094 start: { line: 1, column: 4 },
5095 end: { line: 1, column: 5 }
5096 }
5097 }, {
5098 type: 'Punctuator',
5099 value: '=',
5100 range: [6, 7],
5101 loc: {
5102 start: { line: 1, column: 6 },
5103 end: { line: 1, column: 7 }
5104 }
5105 }, {
5106 type: 'RegularExpression',
5107 value: '/[a-z]/i',
5108 range: [8, 16],
5109 loc: {
5110 start: { line: 1, column: 8 },
5111 end: { line: 1, column: 16 }
5112 }
5113 }]
5114 },
5115
5116 'var x = /[x-z]/i': {
5117 type: 'Program',
5118 body: [{
5119 type: 'VariableDeclaration',
5120 declarations: [{
5121 type: 'VariableDeclarator',
5122 id: {
5123 type: 'Identifier',
5124 name: 'x',
5125 range: [4, 5]
5126 },
5127 init: {
5128 type: 'Literal',
5129 value: '/[x-z]/i',
5130 raw: '/[x-z]/i',
5131 range: [8, 16]
5132 },
5133 range: [4, 16]
5134 }],
5135 kind: 'var',
5136 range: [0, 16]
5137 }],
5138 range: [0, 16],
5139 tokens: [{
5140 type: 'Keyword',
5141 value: 'var',
5142 range: [0, 3]
5143 }, {
5144 type: 'Identifier',
5145 value: 'x',
5146 range: [4, 5]
5147 }, {
5148 type: 'Punctuator',
5149 value: '=',
5150 range: [6, 7]
5151 }, {
5152 type: 'RegularExpression',
5153 value: '/[x-z]/i',
5154 range: [8, 16]
5155 }]
5156 },
5157
5158 'var x = /[a-c]/i': {
5159 type: 'Program',
5160 body: [{
5161 type: 'VariableDeclaration',
5162 declarations: [{
5163 type: 'VariableDeclarator',
5164 id: {
5165 type: 'Identifier',
5166 name: 'x',
5167 loc: {
5168 start: { line: 1, column: 4 },
5169 end: { line: 1, column: 5 }
5170 }
5171 },
5172 init: {
5173 type: 'Literal',
5174 value: '/[a-c]/i',
5175 raw: '/[a-c]/i',
5176 loc: {
5177 start: { line: 1, column: 8 },
5178 end: { line: 1, column: 16 }
5179 }
5180 },
5181 loc: {
5182 start: { line: 1, column: 4 },
5183 end: { line: 1, column: 16 }
5184 }
5185 }],
5186 kind: 'var',
5187 loc: {
5188 start: { line: 1, column: 0 },
5189 end: { line: 1, column: 16 }
5190 }
5191 }],
5192 loc: {
5193 start: { line: 1, column: 0 },
5194 end: { line: 1, column: 16 }
5195 },
5196 tokens: [{
5197 type: 'Keyword',
5198 value: 'var',
5199 loc: {
5200 start: { line: 1, column: 0 },
5201 end: { line: 1, column: 3 }
5202 }
5203 }, {
5204 type: 'Identifier',
5205 value: 'x',
5206 loc: {
5207 start: { line: 1, column: 4 },
5208 end: { line: 1, column: 5 }
5209 }
5210 }, {
5211 type: 'Punctuator',
5212 value: '=',
5213 loc: {
5214 start: { line: 1, column: 6 },
5215 end: { line: 1, column: 7 }
5216 }
5217 }, {
5218 type: 'RegularExpression',
5219 value: '/[a-c]/i',
5220 loc: {
5221 start: { line: 1, column: 8 },
5222 end: { line: 1, column: 16 }
5223 }
5224 }]
5225 },
5226
5227 'var x = /[P QR]/i': {
5228 type: 'Program',
5229 body: [{
5230 type: 'VariableDeclaration',
5231 declarations: [{
5232 type: 'VariableDeclarator',
5233 id: {
5234 type: 'Identifier',
5235 name: 'x',
5236 range: [4, 5],
5237 loc: {
5238 start: { line: 1, column: 4 },
5239 end: { line: 1, column: 5 }
5240 }
5241 },
5242 init: {
5243 type: 'Literal',
5244 value: '/[P QR]/i',
5245 raw: '/[P QR]/i',
5246 range: [8, 17],
5247 loc: {
5248 start: { line: 1, column: 8 },
5249 end: { line: 1, column: 17 }
5250 }
5251 },
5252 range: [4, 17],
5253 loc: {
5254 start: { line: 1, column: 4 },
5255 end: { line: 1, column: 17 }
5256 }
5257 }],
5258 kind: 'var',
5259 range: [0, 17],
5260 loc: {
5261 start: { line: 1, column: 0 },
5262 end: { line: 1, column: 17 }
5263 }
5264 }],
5265 range: [0, 17],
5266 loc: {
5267 start: { line: 1, column: 0 },
5268 end: { line: 1, column: 17 }
5269 },
5270 tokens: [{
5271 type: 'Keyword',
5272 value: 'var',
5273 range: [0, 3],
5274 loc: {
5275 start: { line: 1, column: 0 },
5276 end: { line: 1, column: 3 }
5277 }
5278 }, {
5279 type: 'Identifier',
5280 value: 'x',
5281 range: [4, 5],
5282 loc: {
5283 start: { line: 1, column: 4 },
5284 end: { line: 1, column: 5 }
5285 }
5286 }, {
5287 type: 'Punctuator',
5288 value: '=',
5289 range: [6, 7],
5290 loc: {
5291 start: { line: 1, column: 6 },
5292 end: { line: 1, column: 7 }
5293 }
5294 }, {
5295 type: 'RegularExpression',
5296 value: '/[P QR]/i',
5297 range: [8, 17],
5298 loc: {
5299 start: { line: 1, column: 8 },
5300 end: { line: 1, column: 17 }
5301 }
5302 }]
5303 },
5304
5305 'var x = /foo\\/bar/': {
5306 type: 'Program',
5307 body: [{
5308 type: 'VariableDeclaration',
5309 declarations: [{
5310 type: 'VariableDeclarator',
5311 id: {
5312 type: 'Identifier',
5313 name: 'x',
5314 range: [4, 5],
5315 loc: {
5316 start: { line: 1, column: 4 },
5317 end: { line: 1, column: 5 }
5318 }
5319 },
5320 init: {
5321 type: 'Literal',
5322 value: '/foo\\/bar/',
5323 raw: '/foo\\/bar/',
5324 range: [8, 18],
5325 loc: {
5326 start: { line: 1, column: 8 },
5327 end: { line: 1, column: 18 }
5328 }
5329 },
5330 range: [4, 18],
5331 loc: {
5332 start: { line: 1, column: 4 },
5333 end: { line: 1, column: 18 }
5334 }
5335 }],
5336 kind: 'var',
5337 range: [0, 18],
5338 loc: {
5339 start: { line: 1, column: 0 },
5340 end: { line: 1, column: 18 }
5341 }
5342 }],
5343 range: [0, 18],
5344 loc: {
5345 start: { line: 1, column: 0 },
5346 end: { line: 1, column: 18 }
5347 },
5348 tokens: [{
5349 type: 'Keyword',
5350 value: 'var',
5351 range: [0, 3],
5352 loc: {
5353 start: { line: 1, column: 0 },
5354 end: { line: 1, column: 3 }
5355 }
5356 }, {
5357 type: 'Identifier',
5358 value: 'x',
5359 range: [4, 5],
5360 loc: {
5361 start: { line: 1, column: 4 },
5362 end: { line: 1, column: 5 }
5363 }
5364 }, {
5365 type: 'Punctuator',
5366 value: '=',
5367 range: [6, 7],
5368 loc: {
5369 start: { line: 1, column: 6 },
5370 end: { line: 1, column: 7 }
5371 }
5372 }, {
5373 type: 'RegularExpression',
5374 value: '/foo\\/bar/',
5375 range: [8, 18],
5376 loc: {
5377 start: { line: 1, column: 8 },
5378 end: { line: 1, column: 18 }
5379 }
5380 }]
5381 },
5382
5383 'var x = /=([^=\\s])+/g': {
5384 type: 'Program',
5385 body: [{
5386 type: 'VariableDeclaration',
5387 declarations: [{
5388 type: 'VariableDeclarator',
5389 id: {
5390 type: 'Identifier',
5391 name: 'x',
5392 range: [4, 5],
5393 loc: {
5394 start: { line: 1, column: 4 },
5395 end: { line: 1, column: 5 }
5396 }
5397 },
5398 init: {
5399 type: 'Literal',
5400 value: '/=([^=\\s])+/g',
5401 raw: '/=([^=\\s])+/g',
5402 range: [8, 21],
5403 loc: {
5404 start: { line: 1, column: 8 },
5405 end: { line: 1, column: 21 }
5406 }
5407 },
5408 range: [4, 21],
5409 loc: {
5410 start: { line: 1, column: 4 },
5411 end: { line: 1, column: 21 }
5412 }
5413 }],
5414 kind: 'var',
5415 range: [0, 21],
5416 loc: {
5417 start: { line: 1, column: 0 },
5418 end: { line: 1, column: 21 }
5419 }
5420 }],
5421 range: [0, 21],
5422 loc: {
5423 start: { line: 1, column: 0 },
5424 end: { line: 1, column: 21 }
5425 },
5426 tokens: [{
5427 type: 'Keyword',
5428 value: 'var',
5429 range: [0, 3],
5430 loc: {
5431 start: { line: 1, column: 0 },
5432 end: { line: 1, column: 3 }
5433 }
5434 }, {
5435 type: 'Identifier',
5436 value: 'x',
5437 range: [4, 5],
5438 loc: {
5439 start: { line: 1, column: 4 },
5440 end: { line: 1, column: 5 }
5441 }
5442 }, {
5443 type: 'Punctuator',
5444 value: '=',
5445 range: [6, 7],
5446 loc: {
5447 start: { line: 1, column: 6 },
5448 end: { line: 1, column: 7 }
5449 }
5450 }, {
5451 type: 'RegularExpression',
5452 value: '/=([^=\\s])+/g',
5453 range: [8, 21],
5454 loc: {
5455 start: { line: 1, column: 8 },
5456 end: { line: 1, column: 21 }
5457 }
5458 }]
5459 },
5460
5461 'var x = /[P QR]/\\u0067': {
5462 type: 'Program',
5463 body: [{
5464 type: 'VariableDeclaration',
5465 declarations: [{
5466 type: 'VariableDeclarator',
5467 id: {
5468 type: 'Identifier',
5469 name: 'x',
5470 range: [4, 5],
5471 loc: {
5472 start: { line: 1, column: 4 },
5473 end: { line: 1, column: 5 }
5474 }
5475 },
5476 init: {
5477 type: 'Literal',
5478 value: '/[P QR]/g',
5479 raw: '/[P QR]/\\u0067',
5480 range: [8, 22],
5481 loc: {
5482 start: { line: 1, column: 8 },
5483 end: { line: 1, column: 22 }
5484 }
5485 },
5486 range: [4, 22],
5487 loc: {
5488 start: { line: 1, column: 4 },
5489 end: { line: 1, column: 22 }
5490 }
5491 }],
5492 kind: 'var',
5493 range: [0, 22],
5494 loc: {
5495 start: { line: 1, column: 0 },
5496 end: { line: 1, column: 22 }
5497 }
5498 }],
5499 range: [0, 22],
5500 loc: {
5501 start: { line: 1, column: 0 },
5502 end: { line: 1, column: 22 }
5503 },
5504 tokens: [{
5505 type: 'Keyword',
5506 value: 'var',
5507 range: [0, 3],
5508 loc: {
5509 start: { line: 1, column: 0 },
5510 end: { line: 1, column: 3 }
5511 }
5512 }, {
5513 type: 'Identifier',
5514 value: 'x',
5515 range: [4, 5],
5516 loc: {
5517 start: { line: 1, column: 4 },
5518 end: { line: 1, column: 5 }
5519 }
5520 }, {
5521 type: 'Punctuator',
5522 value: '=',
5523 range: [6, 7],
5524 loc: {
5525 start: { line: 1, column: 6 },
5526 end: { line: 1, column: 7 }
5527 }
5528 }, {
5529 type: 'RegularExpression',
5530 value: '/[P QR]/\\u0067',
5531 range: [8, 22],
5532 loc: {
5533 start: { line: 1, column: 8 },
5534 end: { line: 1, column: 22 }
5535 }
5536 }]
5537 },
5538
5539 'var x = /[P QR]/\\g': {
5540 type: 'Program',
5541 body: [{
5542 type: 'VariableDeclaration',
5543 declarations: [{
5544 type: 'VariableDeclarator',
5545 id: {
5546 type: 'Identifier',
5547 name: 'x',
5548 range: [4, 5],
5549 loc: {
5550 start: { line: 1, column: 4 },
5551 end: { line: 1, column: 5 }
5552 }
5553 },
5554 init: {
5555 type: 'Literal',
5556 value: '/[P QR]/g',
5557 raw: '/[P QR]/\\g',
5558 range: [8, 18],
5559 loc: {
5560 start: { line: 1, column: 8 },
5561 end: { line: 1, column: 18 }
5562 }
5563 },
5564 range: [4, 18],
5565 loc: {
5566 start: { line: 1, column: 4 },
5567 end: { line: 1, column: 18 }
5568 }
5569 }],
5570 kind: 'var',
5571 range: [0, 18],
5572 loc: {
5573 start: { line: 1, column: 0 },
5574 end: { line: 1, column: 18 }
5575 }
5576 }],
5577 range: [0, 18],
5578 loc: {
5579 start: { line: 1, column: 0 },
5580 end: { line: 1, column: 18 }
5581 },
5582 tokens: [{
5583 type: 'Keyword',
5584 value: 'var',
5585 range: [0, 3],
5586 loc: {
5587 start: { line: 1, column: 0 },
5588 end: { line: 1, column: 3 }
5589 }
5590 }, {
5591 type: 'Identifier',
5592 value: 'x',
5593 range: [4, 5],
5594 loc: {
5595 start: { line: 1, column: 4 },
5596 end: { line: 1, column: 5 }
5597 }
5598 }, {
5599 type: 'Punctuator',
5600 value: '=',
5601 range: [6, 7],
5602 loc: {
5603 start: { line: 1, column: 6 },
5604 end: { line: 1, column: 7 }
5605 }
5606 }, {
5607 type: 'RegularExpression',
5608 value: '/[P QR]/\\g',
5609 range: [8, 18],
5610 loc: {
5611 start: { line: 1, column: 8 },
5612 end: { line: 1, column: 18 }
5613 }
5614 }]
5615 },
5616
5617 'var x = /42/g.test': {
5618 type: 'VariableDeclaration',
5619 declarations: [{
5620 type: 'VariableDeclarator',
5621 id: {
5622 type: 'Identifier',
5623 name: 'x',
5624 range: [4, 5],
5625 loc: {
5626 start: { line: 1, column: 4 },
5627 end: { line: 1, column: 5 }
5628 }
5629 },
5630 init: {
5631 type: 'MemberExpression',
5632 computed: false,
5633 object: {
5634 type: 'Literal',
5635 value: '/42/g',
5636 raw: '/42/g',
5637 range: [8, 13],
5638 loc: {
5639 start: { line: 1, column: 8 },
5640 end: { line: 1, column: 13 }
5641 }
5642 },
5643 property: {
5644 type: 'Identifier',
5645 name: 'test',
5646 range: [14, 18],
5647 loc: {
5648 start: { line: 1, column: 14 },
5649 end: { line: 1, column: 18 }
5650 }
5651 },
5652 range: [8, 18],
5653 loc: {
5654 start: { line: 1, column: 8 },
5655 end: { line: 1, column: 18 }
5656 }
5657 },
5658 range: [4, 18],
5659 loc: {
5660 start: { line: 1, column: 4 },
5661 end: { line: 1, column: 18 }
5662 }
5663 }],
5664 kind: 'var',
5665 range: [0, 18],
5666 loc: {
5667 start: { line: 1, column: 0 },
5668 end: { line: 1, column: 18 }
5669 }
5670 }
5671
5672 },
5673
5674 'Left-Hand-Side Expression': {
5675
5676 'new Button': {
5677 type: 'ExpressionStatement',
5678 expression: {
5679 type: 'NewExpression',
5680 callee: {
5681 type: 'Identifier',
5682 name: 'Button',
5683 range: [4, 10],
5684 loc: {
5685 start: { line: 1, column: 4 },
5686 end: { line: 1, column: 10 }
5687 }
5688 },
5689 'arguments': [],
5690 range: [0, 10],
5691 loc: {
5692 start: { line: 1, column: 0 },
5693 end: { line: 1, column: 10 }
5694 }
5695 },
5696 range: [0, 10],
5697 loc: {
5698 start: { line: 1, column: 0 },
5699 end: { line: 1, column: 10 }
5700 }
5701 },
5702
5703 'new Button()': {
5704 type: 'ExpressionStatement',
5705 expression: {
5706 type: 'NewExpression',
5707 callee: {
5708 type: 'Identifier',
5709 name: 'Button',
5710 range: [4, 10],
5711 loc: {
5712 start: { line: 1, column: 4 },
5713 end: { line: 1, column: 10 }
5714 }
5715 },
5716 'arguments': [],
5717 range: [0, 12],
5718 loc: {
5719 start: { line: 1, column: 0 },
5720 end: { line: 1, column: 12 }
5721 }
5722 },
5723 range: [0, 12],
5724 loc: {
5725 start: { line: 1, column: 0 },
5726 end: { line: 1, column: 12 }
5727 }
5728 },
5729
5730 'new new foo': {
5731 type: 'ExpressionStatement',
5732 expression: {
5733 type: 'NewExpression',
5734 callee: {
5735 type: 'NewExpression',
5736 callee: {
5737 type: 'Identifier',
5738 name: 'foo',
5739 range: [8, 11],
5740 loc: {
5741 start: { line: 1, column: 8 },
5742 end: { line: 1, column: 11 }
5743 }
5744 },
5745 'arguments': [],
5746 range: [4, 11],
5747 loc: {
5748 start: { line: 1, column: 4 },
5749 end: { line: 1, column: 11 }
5750 }
5751 },
5752 'arguments': [],
5753 range: [0, 11],
5754 loc: {
5755 start: { line: 1, column: 0 },
5756 end: { line: 1, column: 11 }
5757 }
5758 },
5759 range: [0, 11],
5760 loc: {
5761 start: { line: 1, column: 0 },
5762 end: { line: 1, column: 11 }
5763 }
5764 },
5765
5766 'new new foo()': {
5767 type: 'ExpressionStatement',
5768 expression: {
5769 type: 'NewExpression',
5770 callee: {
5771 type: 'NewExpression',
5772 callee: {
5773 type: 'Identifier',
5774 name: 'foo',
5775 range: [8, 11],
5776 loc: {
5777 start: { line: 1, column: 8 },
5778 end: { line: 1, column: 11 }
5779 }
5780 },
5781 'arguments': [],
5782 range: [4, 13],
5783 loc: {
5784 start: { line: 1, column: 4 },
5785 end: { line: 1, column: 13 }
5786 }
5787 },
5788 'arguments': [],
5789 range: [0, 13],
5790 loc: {
5791 start: { line: 1, column: 0 },
5792 end: { line: 1, column: 13 }
5793 }
5794 },
5795 range: [0, 13],
5796 loc: {
5797 start: { line: 1, column: 0 },
5798 end: { line: 1, column: 13 }
5799 }
5800 },
5801
5802 'new foo().bar()': {
5803 type: 'ExpressionStatement',
5804 expression: {
5805 type: 'CallExpression',
5806 callee: {
5807 type: 'MemberExpression',
5808 computed: false,
5809 object: {
5810 type: 'NewExpression',
5811 callee: {
5812 type: 'Identifier',
5813 name: 'foo',
5814 range: [4, 7],
5815 loc: {
5816 start: { line: 1, column: 4 },
5817 end: { line: 1, column: 7 }
5818 }
5819 },
5820 'arguments': [],
5821 range: [0, 9],
5822 loc: {
5823 start: { line: 1, column: 0 },
5824 end: { line: 1, column: 9 }
5825 }
5826 },
5827 property: {
5828 type: 'Identifier',
5829 name: 'bar',
5830 range: [10, 13],
5831 loc: {
5832 start: { line: 1, column: 10 },
5833 end: { line: 1, column: 13 }
5834 }
5835 },
5836 range: [0, 13],
5837 loc: {
5838 start: { line: 1, column: 0 },
5839 end: { line: 1, column: 13 }
5840 }
5841 },
5842 'arguments': [],
5843 range: [0, 15],
5844 loc: {
5845 start: { line: 1, column: 0 },
5846 end: { line: 1, column: 15 }
5847 }
5848 },
5849 range: [0, 15],
5850 loc: {
5851 start: { line: 1, column: 0 },
5852 end: { line: 1, column: 15 }
5853 }
5854 },
5855
5856 'new foo[bar]': {
5857 type: 'ExpressionStatement',
5858 expression: {
5859 type: 'NewExpression',
5860 callee: {
5861 type: 'MemberExpression',
5862 computed: true,
5863 object: {
5864 type: 'Identifier',
5865 name: 'foo',
5866 range: [4, 7],
5867 loc: {
5868 start: { line: 1, column: 4 },
5869 end: { line: 1, column: 7 }
5870 }
5871 },
5872 property: {
5873 type: 'Identifier',
5874 name: 'bar',
5875 range: [8, 11],
5876 loc: {
5877 start: { line: 1, column: 8 },
5878 end: { line: 1, column: 11 }
5879 }
5880 },
5881 range: [4, 12],
5882 loc: {
5883 start: { line: 1, column: 4 },
5884 end: { line: 1, column: 12 }
5885 }
5886 },
5887 'arguments': [],
5888 range: [0, 12],
5889 loc: {
5890 start: { line: 1, column: 0 },
5891 end: { line: 1, column: 12 }
5892 }
5893 },
5894 range: [0, 12],
5895 loc: {
5896 start: { line: 1, column: 0 },
5897 end: { line: 1, column: 12 }
5898 }
5899 },
5900
5901 'new foo.bar()': {
5902 type: 'ExpressionStatement',
5903 expression: {
5904 type: 'NewExpression',
5905 callee: {
5906 type: 'MemberExpression',
5907 computed: false,
5908 object: {
5909 type: 'Identifier',
5910 name: 'foo',
5911 range: [4, 7],
5912 loc: {
5913 start: { line: 1, column: 4 },
5914 end: { line: 1, column: 7 }
5915 }
5916 },
5917 property: {
5918 type: 'Identifier',
5919 name: 'bar',
5920 range: [8, 11],
5921 loc: {
5922 start: { line: 1, column: 8 },
5923 end: { line: 1, column: 11 }
5924 }
5925 },
5926 range: [4, 11],
5927 loc: {
5928 start: { line: 1, column: 4 },
5929 end: { line: 1, column: 11 }
5930 }
5931 },
5932 'arguments': [],
5933 range: [0, 13],
5934 loc: {
5935 start: { line: 1, column: 0 },
5936 end: { line: 1, column: 13 }
5937 }
5938 },
5939 range: [0, 13],
5940 loc: {
5941 start: { line: 1, column: 0 },
5942 end: { line: 1, column: 13 }
5943 }
5944 },
5945
5946 '( new foo).bar()': {
5947 type: 'ExpressionStatement',
5948 expression: {
5949 type: 'CallExpression',
5950 callee: {
5951 type: 'MemberExpression',
5952 computed: false,
5953 object: {
5954 type: 'NewExpression',
5955 callee: {
5956 type: 'Identifier',
5957 name: 'foo',
5958 range: [6, 9],
5959 loc: {
5960 start: { line: 1, column: 6 },
5961 end: { line: 1, column: 9 }
5962 }
5963 },
5964 'arguments': [],
5965 range: [2, 9],
5966 loc: {
5967 start: { line: 1, column: 2 },
5968 end: { line: 1, column: 9 }
5969 }
5970 },
5971 property: {
5972 type: 'Identifier',
5973 name: 'bar',
5974 range: [11, 14],
5975 loc: {
5976 start: { line: 1, column: 11 },
5977 end: { line: 1, column: 14 }
5978 }
5979 },
5980 range: [0, 14],
5981 loc: {
5982 start: { line: 1, column: 0 },
5983 end: { line: 1, column: 14 }
5984 }
5985 },
5986 'arguments': [],
5987 range: [0, 16],
5988 loc: {
5989 start: { line: 1, column: 0 },
5990 end: { line: 1, column: 16 }
5991 }
5992 },
5993 range: [0, 16],
5994 loc: {
5995 start: { line: 1, column: 0 },
5996 end: { line: 1, column: 16 }
5997 }
5998 },
5999
6000 'foo(bar, baz)': {
6001 type: 'ExpressionStatement',
6002 expression: {
6003 type: 'CallExpression',
6004 callee: {
6005 type: 'Identifier',
6006 name: 'foo',
6007 range: [0, 3],
6008 loc: {
6009 start: { line: 1, column: 0 },
6010 end: { line: 1, column: 3 }
6011 }
6012 },
6013 'arguments': [{
6014 type: 'Identifier',
6015 name: 'bar',
6016 range: [4, 7],
6017 loc: {
6018 start: { line: 1, column: 4 },
6019 end: { line: 1, column: 7 }
6020 }
6021 }, {
6022 type: 'Identifier',
6023 name: 'baz',
6024 range: [9, 12],
6025 loc: {
6026 start: { line: 1, column: 9 },
6027 end: { line: 1, column: 12 }
6028 }
6029 }],
6030 range: [0, 13],
6031 loc: {
6032 start: { line: 1, column: 0 },
6033 end: { line: 1, column: 13 }
6034 }
6035 },
6036 range: [0, 13],
6037 loc: {
6038 start: { line: 1, column: 0 },
6039 end: { line: 1, column: 13 }
6040 }
6041 },
6042
6043 '( foo )()': {
6044 type: 'ExpressionStatement',
6045 expression: {
6046 type: 'CallExpression',
6047 callee: {
6048 type: 'Identifier',
6049 name: 'foo',
6050 range: [5, 8],
6051 loc: {
6052 start: { line: 1, column: 5 },
6053 end: { line: 1, column: 8 }
6054 }
6055 },
6056 'arguments': [],
6057 range: [0, 13],
6058 loc: {
6059 start: { line: 1, column: 0 },
6060 end: { line: 1, column: 13 }
6061 }
6062 },
6063 range: [0, 13],
6064 loc: {
6065 start: { line: 1, column: 0 },
6066 end: { line: 1, column: 13 }
6067 }
6068 },
6069
6070 'universe.milkyway': {
6071 type: 'ExpressionStatement',
6072 expression: {
6073 type: 'MemberExpression',
6074 computed: false,
6075 object: {
6076 type: 'Identifier',
6077 name: 'universe',
6078 range: [0, 8],
6079 loc: {
6080 start: { line: 1, column: 0 },
6081 end: { line: 1, column: 8 }
6082 }
6083 },
6084 property: {
6085 type: 'Identifier',
6086 name: 'milkyway',
6087 range: [9, 17],
6088 loc: {
6089 start: { line: 1, column: 9 },
6090 end: { line: 1, column: 17 }
6091 }
6092 },
6093 range: [0, 17],
6094 loc: {
6095 start: { line: 1, column: 0 },
6096 end: { line: 1, column: 17 }
6097 }
6098 },
6099 range: [0, 17],
6100 loc: {
6101 start: { line: 1, column: 0 },
6102 end: { line: 1, column: 17 }
6103 }
6104 },
6105
6106 'universe.milkyway.solarsystem': {
6107 type: 'ExpressionStatement',
6108 expression: {
6109 type: 'MemberExpression',
6110 computed: false,
6111 object: {
6112 type: 'MemberExpression',
6113 computed: false,
6114 object: {
6115 type: 'Identifier',
6116 name: 'universe',
6117 range: [0, 8],
6118 loc: {
6119 start: { line: 1, column: 0 },
6120 end: { line: 1, column: 8 }
6121 }
6122 },
6123 property: {
6124 type: 'Identifier',
6125 name: 'milkyway',
6126 range: [9, 17],
6127 loc: {
6128 start: { line: 1, column: 9 },
6129 end: { line: 1, column: 17 }
6130 }
6131 },
6132 range: [0, 17],
6133 loc: {
6134 start: { line: 1, column: 0 },
6135 end: { line: 1, column: 17 }
6136 }
6137 },
6138 property: {
6139 type: 'Identifier',
6140 name: 'solarsystem',
6141 range: [18, 29],
6142 loc: {
6143 start: { line: 1, column: 18 },
6144 end: { line: 1, column: 29 }
6145 }
6146 },
6147 range: [0, 29],
6148 loc: {
6149 start: { line: 1, column: 0 },
6150 end: { line: 1, column: 29 }
6151 }
6152 },
6153 range: [0, 29],
6154 loc: {
6155 start: { line: 1, column: 0 },
6156 end: { line: 1, column: 29 }
6157 }
6158 },
6159
6160 'universe.milkyway.solarsystem.Earth': {
6161 type: 'ExpressionStatement',
6162 expression: {
6163 type: 'MemberExpression',
6164 computed: false,
6165 object: {
6166 type: 'MemberExpression',
6167 computed: false,
6168 object: {
6169 type: 'MemberExpression',
6170 computed: false,
6171 object: {
6172 type: 'Identifier',
6173 name: 'universe',
6174 range: [0, 8],
6175 loc: {
6176 start: { line: 1, column: 0 },
6177 end: { line: 1, column: 8 }
6178 }
6179 },
6180 property: {
6181 type: 'Identifier',
6182 name: 'milkyway',
6183 range: [9, 17],
6184 loc: {
6185 start: { line: 1, column: 9 },
6186 end: { line: 1, column: 17 }
6187 }
6188 },
6189 range: [0, 17],
6190 loc: {
6191 start: { line: 1, column: 0 },
6192 end: { line: 1, column: 17 }
6193 }
6194 },
6195 property: {
6196 type: 'Identifier',
6197 name: 'solarsystem',
6198 range: [18, 29],
6199 loc: {
6200 start: { line: 1, column: 18 },
6201 end: { line: 1, column: 29 }
6202 }
6203 },
6204 range: [0, 29],
6205 loc: {
6206 start: { line: 1, column: 0 },
6207 end: { line: 1, column: 29 }
6208 }
6209 },
6210 property: {
6211 type: 'Identifier',
6212 name: 'Earth',
6213 range: [30, 35],
6214 loc: {
6215 start: { line: 1, column: 30 },
6216 end: { line: 1, column: 35 }
6217 }
6218 },
6219 range: [0, 35],
6220 loc: {
6221 start: { line: 1, column: 0 },
6222 end: { line: 1, column: 35 }
6223 }
6224 },
6225 range: [0, 35],
6226 loc: {
6227 start: { line: 1, column: 0 },
6228 end: { line: 1, column: 35 }
6229 }
6230 },
6231
6232 'universe[galaxyName, otherUselessName]': {
6233 type: 'ExpressionStatement',
6234 expression: {
6235 type: 'MemberExpression',
6236 computed: true,
6237 object: {
6238 type: 'Identifier',
6239 name: 'universe',
6240 range: [0, 8],
6241 loc: {
6242 start: { line: 1, column: 0 },
6243 end: { line: 1, column: 8 }
6244 }
6245 },
6246 property: {
6247 type: 'SequenceExpression',
6248 expressions: [{
6249 type: 'Identifier',
6250 name: 'galaxyName',
6251 range: [9, 19],
6252 loc: {
6253 start: { line: 1, column: 9 },
6254 end: { line: 1, column: 19 }
6255 }
6256 }, {
6257 type: 'Identifier',
6258 name: 'otherUselessName',
6259 range: [21, 37],
6260 loc: {
6261 start: { line: 1, column: 21 },
6262 end: { line: 1, column: 37 }
6263 }
6264 }],
6265 range: [9, 37],
6266 loc: {
6267 start: { line: 1, column: 9 },
6268 end: { line: 1, column: 37 }
6269 }
6270 },
6271 range: [0, 38],
6272 loc: {
6273 start: { line: 1, column: 0 },
6274 end: { line: 1, column: 38 }
6275 }
6276 },
6277 range: [0, 38],
6278 loc: {
6279 start: { line: 1, column: 0 },
6280 end: { line: 1, column: 38 }
6281 }
6282 },
6283
6284 'universe[galaxyName]': {
6285 type: 'ExpressionStatement',
6286 expression: {
6287 type: 'MemberExpression',
6288 computed: true,
6289 object: {
6290 type: 'Identifier',
6291 name: 'universe',
6292 range: [0, 8],
6293 loc: {
6294 start: { line: 1, column: 0 },
6295 end: { line: 1, column: 8 }
6296 }
6297 },
6298 property: {
6299 type: 'Identifier',
6300 name: 'galaxyName',
6301 range: [9, 19],
6302 loc: {
6303 start: { line: 1, column: 9 },
6304 end: { line: 1, column: 19 }
6305 }
6306 },
6307 range: [0, 20],
6308 loc: {
6309 start: { line: 1, column: 0 },
6310 end: { line: 1, column: 20 }
6311 }
6312 },
6313 range: [0, 20],
6314 loc: {
6315 start: { line: 1, column: 0 },
6316 end: { line: 1, column: 20 }
6317 }
6318 },
6319
6320 'universe[42].galaxies': {
6321 type: 'ExpressionStatement',
6322 expression: {
6323 type: 'MemberExpression',
6324 computed: false,
6325 object: {
6326 type: 'MemberExpression',
6327 computed: true,
6328 object: {
6329 type: 'Identifier',
6330 name: 'universe',
6331 range: [0, 8],
6332 loc: {
6333 start: { line: 1, column: 0 },
6334 end: { line: 1, column: 8 }
6335 }
6336 },
6337 property: {
6338 type: 'Literal',
6339 value: 42,
6340 raw: '42',
6341 range: [9, 11],
6342 loc: {
6343 start: { line: 1, column: 9 },
6344 end: { line: 1, column: 11 }
6345 }
6346 },
6347 range: [0, 12],
6348 loc: {
6349 start: { line: 1, column: 0 },
6350 end: { line: 1, column: 12 }
6351 }
6352 },
6353 property: {
6354 type: 'Identifier',
6355 name: 'galaxies',
6356 range: [13, 21],
6357 loc: {
6358 start: { line: 1, column: 13 },
6359 end: { line: 1, column: 21 }
6360 }
6361 },
6362 range: [0, 21],
6363 loc: {
6364 start: { line: 1, column: 0 },
6365 end: { line: 1, column: 21 }
6366 }
6367 },
6368 range: [0, 21],
6369 loc: {
6370 start: { line: 1, column: 0 },
6371 end: { line: 1, column: 21 }
6372 }
6373 },
6374
6375 'universe(42).galaxies': {
6376 type: 'ExpressionStatement',
6377 expression: {
6378 type: 'MemberExpression',
6379 computed: false,
6380 object: {
6381 type: 'CallExpression',
6382 callee: {
6383 type: 'Identifier',
6384 name: 'universe',
6385 range: [0, 8],
6386 loc: {
6387 start: { line: 1, column: 0 },
6388 end: { line: 1, column: 8 }
6389 }
6390 },
6391 'arguments': [{
6392 type: 'Literal',
6393 value: 42,
6394 raw: '42',
6395 range: [9, 11],
6396 loc: {
6397 start: { line: 1, column: 9 },
6398 end: { line: 1, column: 11 }
6399 }
6400 }],
6401 range: [0, 12],
6402 loc: {
6403 start: { line: 1, column: 0 },
6404 end: { line: 1, column: 12 }
6405 }
6406 },
6407 property: {
6408 type: 'Identifier',
6409 name: 'galaxies',
6410 range: [13, 21],
6411 loc: {
6412 start: { line: 1, column: 13 },
6413 end: { line: 1, column: 21 }
6414 }
6415 },
6416 range: [0, 21],
6417 loc: {
6418 start: { line: 1, column: 0 },
6419 end: { line: 1, column: 21 }
6420 }
6421 },
6422 range: [0, 21],
6423 loc: {
6424 start: { line: 1, column: 0 },
6425 end: { line: 1, column: 21 }
6426 }
6427 },
6428
6429 'universe(42).galaxies(14, 3, 77).milkyway': {
6430 type: 'ExpressionStatement',
6431 expression: {
6432 type: 'MemberExpression',
6433 computed: false,
6434 object: {
6435 type: 'CallExpression',
6436 callee: {
6437 type: 'MemberExpression',
6438 computed: false,
6439 object: {
6440 type: 'CallExpression',
6441 callee: {
6442 type: 'Identifier',
6443 name: 'universe',
6444 range: [0, 8],
6445 loc: {
6446 start: { line: 1, column: 0 },
6447 end: { line: 1, column: 8 }
6448 }
6449 },
6450 'arguments': [{
6451 type: 'Literal',
6452 value: 42,
6453 raw: '42',
6454 range: [9, 11],
6455 loc: {
6456 start: { line: 1, column: 9 },
6457 end: { line: 1, column: 11 }
6458 }
6459 }],
6460 range: [0, 12],
6461 loc: {
6462 start: { line: 1, column: 0 },
6463 end: { line: 1, column: 12 }
6464 }
6465 },
6466 property: {
6467 type: 'Identifier',
6468 name: 'galaxies',
6469 range: [13, 21],
6470 loc: {
6471 start: { line: 1, column: 13 },
6472 end: { line: 1, column: 21 }
6473 }
6474 },
6475 range: [0, 21],
6476 loc: {
6477 start: { line: 1, column: 0 },
6478 end: { line: 1, column: 21 }
6479 }
6480 },
6481 'arguments': [{
6482 type: 'Literal',
6483 value: 14,
6484 raw: '14',
6485 range: [22, 24],
6486 loc: {
6487 start: { line: 1, column: 22 },
6488 end: { line: 1, column: 24 }
6489 }
6490 }, {
6491 type: 'Literal',
6492 value: 3,
6493 raw: '3',
6494 range: [26, 27],
6495 loc: {
6496 start: { line: 1, column: 26 },
6497 end: { line: 1, column: 27 }
6498 }
6499 }, {
6500 type: 'Literal',
6501 value: 77,
6502 raw: '77',
6503 range: [29, 31],
6504 loc: {
6505 start: { line: 1, column: 29 },
6506 end: { line: 1, column: 31 }
6507 }
6508 }],
6509 range: [0, 32],
6510 loc: {
6511 start: { line: 1, column: 0 },
6512 end: { line: 1, column: 32 }
6513 }
6514 },
6515 property: {
6516 type: 'Identifier',
6517 name: 'milkyway',
6518 range: [33, 41],
6519 loc: {
6520 start: { line: 1, column: 33 },
6521 end: { line: 1, column: 41 }
6522 }
6523 },
6524 range: [0, 41],
6525 loc: {
6526 start: { line: 1, column: 0 },
6527 end: { line: 1, column: 41 }
6528 }
6529 },
6530 range: [0, 41],
6531 loc: {
6532 start: { line: 1, column: 0 },
6533 end: { line: 1, column: 41 }
6534 }
6535 },
6536
6537 'earth.asia.Indonesia.prepareForElection(2014)': {
6538 type: 'ExpressionStatement',
6539 expression: {
6540 type: 'CallExpression',
6541 callee: {
6542 type: 'MemberExpression',
6543 computed: false,
6544 object: {
6545 type: 'MemberExpression',
6546 computed: false,
6547 object: {
6548 type: 'MemberExpression',
6549 computed: false,
6550 object: {
6551 type: 'Identifier',
6552 name: 'earth',
6553 range: [0, 5],
6554 loc: {
6555 start: { line: 1, column: 0 },
6556 end: { line: 1, column: 5 }
6557 }
6558 },
6559 property: {
6560 type: 'Identifier',
6561 name: 'asia',
6562 range: [6, 10],
6563 loc: {
6564 start: { line: 1, column: 6 },
6565 end: { line: 1, column: 10 }
6566 }
6567 },
6568 range: [0, 10],
6569 loc: {
6570 start: { line: 1, column: 0 },
6571 end: { line: 1, column: 10 }
6572 }
6573 },
6574 property: {
6575 type: 'Identifier',
6576 name: 'Indonesia',
6577 range: [11, 20],
6578 loc: {
6579 start: { line: 1, column: 11 },
6580 end: { line: 1, column: 20 }
6581 }
6582 },
6583 range: [0, 20],
6584 loc: {
6585 start: { line: 1, column: 0 },
6586 end: { line: 1, column: 20 }
6587 }
6588 },
6589 property: {
6590 type: 'Identifier',
6591 name: 'prepareForElection',
6592 range: [21, 39],
6593 loc: {
6594 start: { line: 1, column: 21 },
6595 end: { line: 1, column: 39 }
6596 }
6597 },
6598 range: [0, 39],
6599 loc: {
6600 start: { line: 1, column: 0 },
6601 end: { line: 1, column: 39 }
6602 }
6603 },
6604 'arguments': [{
6605 type: 'Literal',
6606 value: 2014,
6607 raw: '2014',
6608 range: [40, 44],
6609 loc: {
6610 start: { line: 1, column: 40 },
6611 end: { line: 1, column: 44 }
6612 }
6613 }],
6614 range: [0, 45],
6615 loc: {
6616 start: { line: 1, column: 0 },
6617 end: { line: 1, column: 45 }
6618 }
6619 },
6620 range: [0, 45],
6621 loc: {
6622 start: { line: 1, column: 0 },
6623 end: { line: 1, column: 45 }
6624 }
6625 },
6626
6627 'universe.if': {
6628 type: 'ExpressionStatement',
6629 expression: {
6630 type: 'MemberExpression',
6631 computed: false,
6632 object: {
6633 type: 'Identifier',
6634 name: 'universe',
6635 range: [0, 8],
6636 loc: {
6637 start: { line: 1, column: 0 },
6638 end: { line: 1, column: 8 }
6639 }
6640 },
6641 property: {
6642 type: 'Identifier',
6643 name: 'if',
6644 range: [9, 11],
6645 loc: {
6646 start: { line: 1, column: 9 },
6647 end: { line: 1, column: 11 }
6648 }
6649 },
6650 range: [0, 11],
6651 loc: {
6652 start: { line: 1, column: 0 },
6653 end: { line: 1, column: 11 }
6654 }
6655 },
6656 range: [0, 11],
6657 loc: {
6658 start: { line: 1, column: 0 },
6659 end: { line: 1, column: 11 }
6660 }
6661 },
6662
6663 'universe.true': {
6664 type: 'ExpressionStatement',
6665 expression: {
6666 type: 'MemberExpression',
6667 computed: false,
6668 object: {
6669 type: 'Identifier',
6670 name: 'universe',
6671 range: [0, 8],
6672 loc: {
6673 start: { line: 1, column: 0 },
6674 end: { line: 1, column: 8 }
6675 }
6676 },
6677 property: {
6678 type: 'Identifier',
6679 name: 'true',
6680 range: [9, 13],
6681 loc: {
6682 start: { line: 1, column: 9 },
6683 end: { line: 1, column: 13 }
6684 }
6685 },
6686 range: [0, 13],
6687 loc: {
6688 start: { line: 1, column: 0 },
6689 end: { line: 1, column: 13 }
6690 }
6691 },
6692 range: [0, 13],
6693 loc: {
6694 start: { line: 1, column: 0 },
6695 end: { line: 1, column: 13 }
6696 }
6697 },
6698
6699 'universe.false': {
6700 type: 'ExpressionStatement',
6701 expression: {
6702 type: 'MemberExpression',
6703 computed: false,
6704 object: {
6705 type: 'Identifier',
6706 name: 'universe',
6707 range: [0, 8],
6708 loc: {
6709 start: { line: 1, column: 0 },
6710 end: { line: 1, column: 8 }
6711 }
6712 },
6713 property: {
6714 type: 'Identifier',
6715 name: 'false',
6716 range: [9, 14],
6717 loc: {
6718 start: { line: 1, column: 9 },
6719 end: { line: 1, column: 14 }
6720 }
6721 },
6722 range: [0, 14],
6723 loc: {
6724 start: { line: 1, column: 0 },
6725 end: { line: 1, column: 14 }
6726 }
6727 },
6728 range: [0, 14],
6729 loc: {
6730 start: { line: 1, column: 0 },
6731 end: { line: 1, column: 14 }
6732 }
6733 },
6734
6735 'universe.null': {
6736 type: 'ExpressionStatement',
6737 expression: {
6738 type: 'MemberExpression',
6739 computed: false,
6740 object: {
6741 type: 'Identifier',
6742 name: 'universe',
6743 range: [0, 8],
6744 loc: {
6745 start: { line: 1, column: 0 },
6746 end: { line: 1, column: 8 }
6747 }
6748 },
6749 property: {
6750 type: 'Identifier',
6751 name: 'null',
6752 range: [9, 13],
6753 loc: {
6754 start: { line: 1, column: 9 },
6755 end: { line: 1, column: 13 }
6756 }
6757 },
6758 range: [0, 13],
6759 loc: {
6760 start: { line: 1, column: 0 },
6761 end: { line: 1, column: 13 }
6762 }
6763 },
6764 range: [0, 13],
6765 loc: {
6766 start: { line: 1, column: 0 },
6767 end: { line: 1, column: 13 }
6768 }
6769 }
6770
6771 },
6772
6773 'Postfix Expressions': {
6774
6775 'x++': {
6776 type: 'ExpressionStatement',
6777 expression: {
6778 type: 'UpdateExpression',
6779 operator: '++',
6780 argument: {
6781 type: 'Identifier',
6782 name: 'x',
6783 range: [0, 1],
6784 loc: {
6785 start: { line: 1, column: 0 },
6786 end: { line: 1, column: 1 }
6787 }
6788 },
6789 prefix: false,
6790 range: [0, 3],
6791 loc: {
6792 start: { line: 1, column: 0 },
6793 end: { line: 1, column: 3 }
6794 }
6795 },
6796 range: [0, 3],
6797 loc: {
6798 start: { line: 1, column: 0 },
6799 end: { line: 1, column: 3 }
6800 }
6801 },
6802
6803 'x--': {
6804 type: 'ExpressionStatement',
6805 expression: {
6806 type: 'UpdateExpression',
6807 operator: '--',
6808 argument: {
6809 type: 'Identifier',
6810 name: 'x',
6811 range: [0, 1],
6812 loc: {
6813 start: { line: 1, column: 0 },
6814 end: { line: 1, column: 1 }
6815 }
6816 },
6817 prefix: false,
6818 range: [0, 3],
6819 loc: {
6820 start: { line: 1, column: 0 },
6821 end: { line: 1, column: 3 }
6822 }
6823 },
6824 range: [0, 3],
6825 loc: {
6826 start: { line: 1, column: 0 },
6827 end: { line: 1, column: 3 }
6828 }
6829 },
6830
6831 'eval++': {
6832 type: 'ExpressionStatement',
6833 expression: {
6834 type: 'UpdateExpression',
6835 operator: '++',
6836 argument: {
6837 type: 'Identifier',
6838 name: 'eval',
6839 range: [0, 4],
6840 loc: {
6841 start: { line: 1, column: 0 },
6842 end: { line: 1, column: 4 }
6843 }
6844 },
6845 prefix: false,
6846 range: [0, 6],
6847 loc: {
6848 start: { line: 1, column: 0 },
6849 end: { line: 1, column: 6 }
6850 }
6851 },
6852 range: [0, 6],
6853 loc: {
6854 start: { line: 1, column: 0 },
6855 end: { line: 1, column: 6 }
6856 }
6857 },
6858
6859 'eval--': {
6860 type: 'ExpressionStatement',
6861 expression: {
6862 type: 'UpdateExpression',
6863 operator: '--',
6864 argument: {
6865 type: 'Identifier',
6866 name: 'eval',
6867 range: [0, 4],
6868 loc: {
6869 start: { line: 1, column: 0 },
6870 end: { line: 1, column: 4 }
6871 }
6872 },
6873 prefix: false,
6874 range: [0, 6],
6875 loc: {
6876 start: { line: 1, column: 0 },
6877 end: { line: 1, column: 6 }
6878 }
6879 },
6880 range: [0, 6],
6881 loc: {
6882 start: { line: 1, column: 0 },
6883 end: { line: 1, column: 6 }
6884 }
6885 },
6886
6887 'arguments++': {
6888 type: 'ExpressionStatement',
6889 expression: {
6890 type: 'UpdateExpression',
6891 operator: '++',
6892 argument: {
6893 type: 'Identifier',
6894 name: 'arguments',
6895 range: [0, 9],
6896 loc: {
6897 start: { line: 1, column: 0 },
6898 end: { line: 1, column: 9 }
6899 }
6900 },
6901 prefix: false,
6902 range: [0, 11],
6903 loc: {
6904 start: { line: 1, column: 0 },
6905 end: { line: 1, column: 11 }
6906 }
6907 },
6908 range: [0, 11],
6909 loc: {
6910 start: { line: 1, column: 0 },
6911 end: { line: 1, column: 11 }
6912 }
6913 },
6914
6915 'arguments--': {
6916 type: 'ExpressionStatement',
6917 expression: {
6918 type: 'UpdateExpression',
6919 operator: '--',
6920 argument: {
6921 type: 'Identifier',
6922 name: 'arguments',
6923 range: [0, 9],
6924 loc: {
6925 start: { line: 1, column: 0 },
6926 end: { line: 1, column: 9 }
6927 }
6928 },
6929 prefix: false,
6930 range: [0, 11],
6931 loc: {
6932 start: { line: 1, column: 0 },
6933 end: { line: 1, column: 11 }
6934 }
6935 },
6936 range: [0, 11],
6937 loc: {
6938 start: { line: 1, column: 0 },
6939 end: { line: 1, column: 11 }
6940 }
6941 }
6942
6943 },
6944
6945 'Unary Operators': {
6946
6947 '++x': {
6948 type: 'ExpressionStatement',
6949 expression: {
6950 type: 'UpdateExpression',
6951 operator: '++',
6952 argument: {
6953 type: 'Identifier',
6954 name: 'x',
6955 range: [2, 3],
6956 loc: {
6957 start: { line: 1, column: 2 },
6958 end: { line: 1, column: 3 }
6959 }
6960 },
6961 prefix: true,
6962 range: [0, 3],
6963 loc: {
6964 start: { line: 1, column: 0 },
6965 end: { line: 1, column: 3 }
6966 }
6967 },
6968 range: [0, 3],
6969 loc: {
6970 start: { line: 1, column: 0 },
6971 end: { line: 1, column: 3 }
6972 }
6973 },
6974
6975 '--x': {
6976 type: 'ExpressionStatement',
6977 expression: {
6978 type: 'UpdateExpression',
6979 operator: '--',
6980 argument: {
6981 type: 'Identifier',
6982 name: 'x',
6983 range: [2, 3],
6984 loc: {
6985 start: { line: 1, column: 2 },
6986 end: { line: 1, column: 3 }
6987 }
6988 },
6989 prefix: true,
6990 range: [0, 3],
6991 loc: {
6992 start: { line: 1, column: 0 },
6993 end: { line: 1, column: 3 }
6994 }
6995 },
6996 range: [0, 3],
6997 loc: {
6998 start: { line: 1, column: 0 },
6999 end: { line: 1, column: 3 }
7000 }
7001 },
7002
7003 '++eval': {
7004 type: 'ExpressionStatement',
7005 expression: {
7006 type: 'UpdateExpression',
7007 operator: '++',
7008 argument: {
7009 type: 'Identifier',
7010 name: 'eval',
7011 range: [2, 6],
7012 loc: {
7013 start: { line: 1, column: 2 },
7014 end: { line: 1, column: 6 }
7015 }
7016 },
7017 prefix: true,
7018 range: [0, 6],
7019 loc: {
7020 start: { line: 1, column: 0 },
7021 end: { line: 1, column: 6 }
7022 }
7023 },
7024 range: [0, 6],
7025 loc: {
7026 start: { line: 1, column: 0 },
7027 end: { line: 1, column: 6 }
7028 }
7029 },
7030
7031 '--eval': {
7032 type: 'ExpressionStatement',
7033 expression: {
7034 type: 'UpdateExpression',
7035 operator: '--',
7036 argument: {
7037 type: 'Identifier',
7038 name: 'eval',
7039 range: [2, 6],
7040 loc: {
7041 start: { line: 1, column: 2 },
7042 end: { line: 1, column: 6 }
7043 }
7044 },
7045 prefix: true,
7046 range: [0, 6],
7047 loc: {
7048 start: { line: 1, column: 0 },
7049 end: { line: 1, column: 6 }
7050 }
7051 },
7052 range: [0, 6],
7053 loc: {
7054 start: { line: 1, column: 0 },
7055 end: { line: 1, column: 6 }
7056 }
7057 },
7058
7059 '++arguments': {
7060 type: 'ExpressionStatement',
7061 expression: {
7062 type: 'UpdateExpression',
7063 operator: '++',
7064 argument: {
7065 type: 'Identifier',
7066 name: 'arguments',
7067 range: [2, 11],
7068 loc: {
7069 start: { line: 1, column: 2 },
7070 end: { line: 1, column: 11 }
7071 }
7072 },
7073 prefix: true,
7074 range: [0, 11],
7075 loc: {
7076 start: { line: 1, column: 0 },
7077 end: { line: 1, column: 11 }
7078 }
7079 },
7080 range: [0, 11],
7081 loc: {
7082 start: { line: 1, column: 0 },
7083 end: { line: 1, column: 11 }
7084 }
7085 },
7086
7087 '--arguments': {
7088 type: 'ExpressionStatement',
7089 expression: {
7090 type: 'UpdateExpression',
7091 operator: '--',
7092 argument: {
7093 type: 'Identifier',
7094 name: 'arguments',
7095 range: [2, 11],
7096 loc: {
7097 start: { line: 1, column: 2 },
7098 end: { line: 1, column: 11 }
7099 }
7100 },
7101 prefix: true,
7102 range: [0, 11],
7103 loc: {
7104 start: { line: 1, column: 0 },
7105 end: { line: 1, column: 11 }
7106 }
7107 },
7108 range: [0, 11],
7109 loc: {
7110 start: { line: 1, column: 0 },
7111 end: { line: 1, column: 11 }
7112 }
7113 },
7114
7115 '+x': {
7116 type: 'ExpressionStatement',
7117 expression: {
7118 type: 'UnaryExpression',
7119 operator: '+',
7120 argument: {
7121 type: 'Identifier',
7122 name: 'x',
7123 range: [1, 2],
7124 loc: {
7125 start: { line: 1, column: 1 },
7126 end: { line: 1, column: 2 }
7127 }
7128 },
7129 prefix: true,
7130 range: [0, 2],
7131 loc: {
7132 start: { line: 1, column: 0 },
7133 end: { line: 1, column: 2 }
7134 }
7135 },
7136 range: [0, 2],
7137 loc: {
7138 start: { line: 1, column: 0 },
7139 end: { line: 1, column: 2 }
7140 }
7141 },
7142
7143 '-x': {
7144 type: 'ExpressionStatement',
7145 expression: {
7146 type: 'UnaryExpression',
7147 operator: '-',
7148 argument: {
7149 type: 'Identifier',
7150 name: 'x',
7151 range: [1, 2],
7152 loc: {
7153 start: { line: 1, column: 1 },
7154 end: { line: 1, column: 2 }
7155 }
7156 },
7157 prefix: true,
7158 range: [0, 2],
7159 loc: {
7160 start: { line: 1, column: 0 },
7161 end: { line: 1, column: 2 }
7162 }
7163 },
7164 range: [0, 2],
7165 loc: {
7166 start: { line: 1, column: 0 },
7167 end: { line: 1, column: 2 }
7168 }
7169 },
7170
7171 '~x': {
7172 type: 'ExpressionStatement',
7173 expression: {
7174 type: 'UnaryExpression',
7175 operator: '~',
7176 argument: {
7177 type: 'Identifier',
7178 name: 'x',
7179 range: [1, 2],
7180 loc: {
7181 start: { line: 1, column: 1 },
7182 end: { line: 1, column: 2 }
7183 }
7184 },
7185 prefix: true,
7186 range: [0, 2],
7187 loc: {
7188 start: { line: 1, column: 0 },
7189 end: { line: 1, column: 2 }
7190 }
7191 },
7192 range: [0, 2],
7193 loc: {
7194 start: { line: 1, column: 0 },
7195 end: { line: 1, column: 2 }
7196 }
7197 },
7198
7199 '!x': {
7200 type: 'ExpressionStatement',
7201 expression: {
7202 type: 'UnaryExpression',
7203 operator: '!',
7204 argument: {
7205 type: 'Identifier',
7206 name: 'x',
7207 range: [1, 2],
7208 loc: {
7209 start: { line: 1, column: 1 },
7210 end: { line: 1, column: 2 }
7211 }
7212 },
7213 prefix: true,
7214 range: [0, 2],
7215 loc: {
7216 start: { line: 1, column: 0 },
7217 end: { line: 1, column: 2 }
7218 }
7219 },
7220 range: [0, 2],
7221 loc: {
7222 start: { line: 1, column: 0 },
7223 end: { line: 1, column: 2 }
7224 }
7225 },
7226
7227 'void x': {
7228 type: 'ExpressionStatement',
7229 expression: {
7230 type: 'UnaryExpression',
7231 operator: 'void',
7232 argument: {
7233 type: 'Identifier',
7234 name: 'x',
7235 range: [5, 6],
7236 loc: {
7237 start: { line: 1, column: 5 },
7238 end: { line: 1, column: 6 }
7239 }
7240 },
7241 prefix: true,
7242 range: [0, 6],
7243 loc: {
7244 start: { line: 1, column: 0 },
7245 end: { line: 1, column: 6 }
7246 }
7247 },
7248 range: [0, 6],
7249 loc: {
7250 start: { line: 1, column: 0 },
7251 end: { line: 1, column: 6 }
7252 }
7253 },
7254
7255 'delete x': {
7256 type: 'ExpressionStatement',
7257 expression: {
7258 type: 'UnaryExpression',
7259 operator: 'delete',
7260 argument: {
7261 type: 'Identifier',
7262 name: 'x',
7263 range: [7, 8],
7264 loc: {
7265 start: { line: 1, column: 7 },
7266 end: { line: 1, column: 8 }
7267 }
7268 },
7269 prefix: true,
7270 range: [0, 8],
7271 loc: {
7272 start: { line: 1, column: 0 },
7273 end: { line: 1, column: 8 }
7274 }
7275 },
7276 range: [0, 8],
7277 loc: {
7278 start: { line: 1, column: 0 },
7279 end: { line: 1, column: 8 }
7280 }
7281 },
7282
7283 'typeof x': {
7284 type: 'ExpressionStatement',
7285 expression: {
7286 type: 'UnaryExpression',
7287 operator: 'typeof',
7288 argument: {
7289 type: 'Identifier',
7290 name: 'x',
7291 range: [7, 8],
7292 loc: {
7293 start: { line: 1, column: 7 },
7294 end: { line: 1, column: 8 }
7295 }
7296 },
7297 prefix: true,
7298 range: [0, 8],
7299 loc: {
7300 start: { line: 1, column: 0 },
7301 end: { line: 1, column: 8 }
7302 }
7303 },
7304 range: [0, 8],
7305 loc: {
7306 start: { line: 1, column: 0 },
7307 end: { line: 1, column: 8 }
7308 }
7309 }
7310
7311 },
7312
7313 'Multiplicative Operators': {
7314
7315 'x * y': {
7316 type: 'ExpressionStatement',
7317 expression: {
7318 type: 'BinaryExpression',
7319 operator: '*',
7320 left: {
7321 type: 'Identifier',
7322 name: 'x',
7323 range: [0, 1],
7324 loc: {
7325 start: { line: 1, column: 0 },
7326 end: { line: 1, column: 1 }
7327 }
7328 },
7329 right: {
7330 type: 'Identifier',
7331 name: 'y',
7332 range: [4, 5],
7333 loc: {
7334 start: { line: 1, column: 4 },
7335 end: { line: 1, column: 5 }
7336 }
7337 },
7338 range: [0, 5],
7339 loc: {
7340 start: { line: 1, column: 0 },
7341 end: { line: 1, column: 5 }
7342 }
7343 },
7344 range: [0, 5],
7345 loc: {
7346 start: { line: 1, column: 0 },
7347 end: { line: 1, column: 5 }
7348 }
7349 },
7350
7351 'x / y': {
7352 type: 'ExpressionStatement',
7353 expression: {
7354 type: 'BinaryExpression',
7355 operator: '/',
7356 left: {
7357 type: 'Identifier',
7358 name: 'x',
7359 range: [0, 1],
7360 loc: {
7361 start: { line: 1, column: 0 },
7362 end: { line: 1, column: 1 }
7363 }
7364 },
7365 right: {
7366 type: 'Identifier',
7367 name: 'y',
7368 range: [4, 5],
7369 loc: {
7370 start: { line: 1, column: 4 },
7371 end: { line: 1, column: 5 }
7372 }
7373 },
7374 range: [0, 5],
7375 loc: {
7376 start: { line: 1, column: 0 },
7377 end: { line: 1, column: 5 }
7378 }
7379 },
7380 range: [0, 5],
7381 loc: {
7382 start: { line: 1, column: 0 },
7383 end: { line: 1, column: 5 }
7384 }
7385 },
7386
7387 'x % y': {
7388 type: 'ExpressionStatement',
7389 expression: {
7390 type: 'BinaryExpression',
7391 operator: '%',
7392 left: {
7393 type: 'Identifier',
7394 name: 'x',
7395 range: [0, 1],
7396 loc: {
7397 start: { line: 1, column: 0 },
7398 end: { line: 1, column: 1 }
7399 }
7400 },
7401 right: {
7402 type: 'Identifier',
7403 name: 'y',
7404 range: [4, 5],
7405 loc: {
7406 start: { line: 1, column: 4 },
7407 end: { line: 1, column: 5 }
7408 }
7409 },
7410 range: [0, 5],
7411 loc: {
7412 start: { line: 1, column: 0 },
7413 end: { line: 1, column: 5 }
7414 }
7415 },
7416 range: [0, 5],
7417 loc: {
7418 start: { line: 1, column: 0 },
7419 end: { line: 1, column: 5 }
7420 }
7421 }
7422
7423 },
7424
7425 'Additive Operators': {
7426
7427 'x + y': {
7428 type: 'ExpressionStatement',
7429 expression: {
7430 type: 'BinaryExpression',
7431 operator: '+',
7432 left: {
7433 type: 'Identifier',
7434 name: 'x',
7435 range: [0, 1],
7436 loc: {
7437 start: { line: 1, column: 0 },
7438 end: { line: 1, column: 1 }
7439 }
7440 },
7441 right: {
7442 type: 'Identifier',
7443 name: 'y',
7444 range: [4, 5],
7445 loc: {
7446 start: { line: 1, column: 4 },
7447 end: { line: 1, column: 5 }
7448 }
7449 },
7450 range: [0, 5],
7451 loc: {
7452 start: { line: 1, column: 0 },
7453 end: { line: 1, column: 5 }
7454 }
7455 },
7456 range: [0, 5],
7457 loc: {
7458 start: { line: 1, column: 0 },
7459 end: { line: 1, column: 5 }
7460 }
7461 },
7462
7463 'x - y': {
7464 type: 'ExpressionStatement',
7465 expression: {
7466 type: 'BinaryExpression',
7467 operator: '-',
7468 left: {
7469 type: 'Identifier',
7470 name: 'x',
7471 range: [0, 1],
7472 loc: {
7473 start: { line: 1, column: 0 },
7474 end: { line: 1, column: 1 }
7475 }
7476 },
7477 right: {
7478 type: 'Identifier',
7479 name: 'y',
7480 range: [4, 5],
7481 loc: {
7482 start: { line: 1, column: 4 },
7483 end: { line: 1, column: 5 }
7484 }
7485 },
7486 range: [0, 5],
7487 loc: {
7488 start: { line: 1, column: 0 },
7489 end: { line: 1, column: 5 }
7490 }
7491 },
7492 range: [0, 5],
7493 loc: {
7494 start: { line: 1, column: 0 },
7495 end: { line: 1, column: 5 }
7496 }
7497 },
7498
7499 '"use strict" + 42': {
7500 type: 'ExpressionStatement',
7501 expression: {
7502 type: 'BinaryExpression',
7503 operator: '+',
7504 left: {
7505 type: 'Literal',
7506 value: 'use strict',
7507 raw: '"use strict"',
7508 range: [0, 12],
7509 loc: {
7510 start: { line: 1, column: 0 },
7511 end: { line: 1, column: 12 }
7512 }
7513 },
7514 right: {
7515 type: 'Literal',
7516 value: 42,
7517 raw: '42',
7518 range: [15, 17],
7519 loc: {
7520 start: { line: 1, column: 15 },
7521 end: { line: 1, column: 17 }
7522 }
7523 },
7524 range: [0, 17],
7525 loc: {
7526 start: { line: 1, column: 0 },
7527 end: { line: 1, column: 17 }
7528 }
7529 },
7530 range: [0, 17],
7531 loc: {
7532 start: { line: 1, column: 0 },
7533 end: { line: 1, column: 17 }
7534 }
7535 }
7536
7537 },
7538
7539 'Bitwise Shift Operator': {
7540
7541 'x << y': {
7542 type: 'ExpressionStatement',
7543 expression: {
7544 type: 'BinaryExpression',
7545 operator: '<<',
7546 left: {
7547 type: 'Identifier',
7548 name: 'x',
7549 range: [0, 1],
7550 loc: {
7551 start: { line: 1, column: 0 },
7552 end: { line: 1, column: 1 }
7553 }
7554 },
7555 right: {
7556 type: 'Identifier',
7557 name: 'y',
7558 range: [5, 6],
7559 loc: {
7560 start: { line: 1, column: 5 },
7561 end: { line: 1, column: 6 }
7562 }
7563 },
7564 range: [0, 6],
7565 loc: {
7566 start: { line: 1, column: 0 },
7567 end: { line: 1, column: 6 }
7568 }
7569 },
7570 range: [0, 6],
7571 loc: {
7572 start: { line: 1, column: 0 },
7573 end: { line: 1, column: 6 }
7574 }
7575 },
7576
7577 'x >> y': {
7578 type: 'ExpressionStatement',
7579 expression: {
7580 type: 'BinaryExpression',
7581 operator: '>>',
7582 left: {
7583 type: 'Identifier',
7584 name: 'x',
7585 range: [0, 1],
7586 loc: {
7587 start: { line: 1, column: 0 },
7588 end: { line: 1, column: 1 }
7589 }
7590 },
7591 right: {
7592 type: 'Identifier',
7593 name: 'y',
7594 range: [5, 6],
7595 loc: {
7596 start: { line: 1, column: 5 },
7597 end: { line: 1, column: 6 }
7598 }
7599 },
7600 range: [0, 6],
7601 loc: {
7602 start: { line: 1, column: 0 },
7603 end: { line: 1, column: 6 }
7604 }
7605 },
7606 range: [0, 6],
7607 loc: {
7608 start: { line: 1, column: 0 },
7609 end: { line: 1, column: 6 }
7610 }
7611 },
7612
7613 'x >>> y': {
7614 type: 'ExpressionStatement',
7615 expression: {
7616 type: 'BinaryExpression',
7617 operator: '>>>',
7618 left: {
7619 type: 'Identifier',
7620 name: 'x',
7621 range: [0, 1],
7622 loc: {
7623 start: { line: 1, column: 0 },
7624 end: { line: 1, column: 1 }
7625 }
7626 },
7627 right: {
7628 type: 'Identifier',
7629 name: 'y',
7630 range: [6, 7],
7631 loc: {
7632 start: { line: 1, column: 6 },
7633 end: { line: 1, column: 7 }
7634 }
7635 },
7636 range: [0, 7],
7637 loc: {
7638 start: { line: 1, column: 0 },
7639 end: { line: 1, column: 7 }
7640 }
7641 },
7642 range: [0, 7],
7643 loc: {
7644 start: { line: 1, column: 0 },
7645 end: { line: 1, column: 7 }
7646 }
7647 }
7648
7649 },
7650
7651 'Relational Operators': {
7652
7653 'x < y': {
7654 type: 'ExpressionStatement',
7655 expression: {
7656 type: 'BinaryExpression',
7657 operator: '<',
7658 left: {
7659 type: 'Identifier',
7660 name: 'x',
7661 range: [0, 1],
7662 loc: {
7663 start: { line: 1, column: 0 },
7664 end: { line: 1, column: 1 }
7665 }
7666 },
7667 right: {
7668 type: 'Identifier',
7669 name: 'y',
7670 range: [4, 5],
7671 loc: {
7672 start: { line: 1, column: 4 },
7673 end: { line: 1, column: 5 }
7674 }
7675 },
7676 range: [0, 5],
7677 loc: {
7678 start: { line: 1, column: 0 },
7679 end: { line: 1, column: 5 }
7680 }
7681 },
7682 range: [0, 5],
7683 loc: {
7684 start: { line: 1, column: 0 },
7685 end: { line: 1, column: 5 }
7686 }
7687 },
7688
7689 'x > y': {
7690 type: 'ExpressionStatement',
7691 expression: {
7692 type: 'BinaryExpression',
7693 operator: '>',
7694 left: {
7695 type: 'Identifier',
7696 name: 'x',
7697 range: [0, 1],
7698 loc: {
7699 start: { line: 1, column: 0 },
7700 end: { line: 1, column: 1 }
7701 }
7702 },
7703 right: {
7704 type: 'Identifier',
7705 name: 'y',
7706 range: [4, 5],
7707 loc: {
7708 start: { line: 1, column: 4 },
7709 end: { line: 1, column: 5 }
7710 }
7711 },
7712 range: [0, 5],
7713 loc: {
7714 start: { line: 1, column: 0 },
7715 end: { line: 1, column: 5 }
7716 }
7717 },
7718 range: [0, 5],
7719 loc: {
7720 start: { line: 1, column: 0 },
7721 end: { line: 1, column: 5 }
7722 }
7723 },
7724
7725 'x <= y': {
7726 type: 'ExpressionStatement',
7727 expression: {
7728 type: 'BinaryExpression',
7729 operator: '<=',
7730 left: {
7731 type: 'Identifier',
7732 name: 'x',
7733 range: [0, 1],
7734 loc: {
7735 start: { line: 1, column: 0 },
7736 end: { line: 1, column: 1 }
7737 }
7738 },
7739 right: {
7740 type: 'Identifier',
7741 name: 'y',
7742 range: [5, 6],
7743 loc: {
7744 start: { line: 1, column: 5 },
7745 end: { line: 1, column: 6 }
7746 }
7747 },
7748 range: [0, 6],
7749 loc: {
7750 start: { line: 1, column: 0 },
7751 end: { line: 1, column: 6 }
7752 }
7753 },
7754 range: [0, 6],
7755 loc: {
7756 start: { line: 1, column: 0 },
7757 end: { line: 1, column: 6 }
7758 }
7759 },
7760
7761 'x >= y': {
7762 type: 'ExpressionStatement',
7763 expression: {
7764 type: 'BinaryExpression',
7765 operator: '>=',
7766 left: {
7767 type: 'Identifier',
7768 name: 'x',
7769 range: [0, 1],
7770 loc: {
7771 start: { line: 1, column: 0 },
7772 end: { line: 1, column: 1 }
7773 }
7774 },
7775 right: {
7776 type: 'Identifier',
7777 name: 'y',
7778 range: [5, 6],
7779 loc: {
7780 start: { line: 1, column: 5 },
7781 end: { line: 1, column: 6 }
7782 }
7783 },
7784 range: [0, 6],
7785 loc: {
7786 start: { line: 1, column: 0 },
7787 end: { line: 1, column: 6 }
7788 }
7789 },
7790 range: [0, 6],
7791 loc: {
7792 start: { line: 1, column: 0 },
7793 end: { line: 1, column: 6 }
7794 }
7795 },
7796
7797 'x in y': {
7798 type: 'ExpressionStatement',
7799 expression: {
7800 type: 'BinaryExpression',
7801 operator: 'in',
7802 left: {
7803 type: 'Identifier',
7804 name: 'x',
7805 range: [0, 1],
7806 loc: {
7807 start: { line: 1, column: 0 },
7808 end: { line: 1, column: 1 }
7809 }
7810 },
7811 right: {
7812 type: 'Identifier',
7813 name: 'y',
7814 range: [5, 6],
7815 loc: {
7816 start: { line: 1, column: 5 },
7817 end: { line: 1, column: 6 }
7818 }
7819 },
7820 range: [0, 6],
7821 loc: {
7822 start: { line: 1, column: 0 },
7823 end: { line: 1, column: 6 }
7824 }
7825 },
7826 range: [0, 6],
7827 loc: {
7828 start: { line: 1, column: 0 },
7829 end: { line: 1, column: 6 }
7830 }
7831 },
7832
7833 'x instanceof y': {
7834 type: 'ExpressionStatement',
7835 expression: {
7836 type: 'BinaryExpression',
7837 operator: 'instanceof',
7838 left: {
7839 type: 'Identifier',
7840 name: 'x',
7841 range: [0, 1],
7842 loc: {
7843 start: { line: 1, column: 0 },
7844 end: { line: 1, column: 1 }
7845 }
7846 },
7847 right: {
7848 type: 'Identifier',
7849 name: 'y',
7850 range: [13, 14],
7851 loc: {
7852 start: { line: 1, column: 13 },
7853 end: { line: 1, column: 14 }
7854 }
7855 },
7856 range: [0, 14],
7857 loc: {
7858 start: { line: 1, column: 0 },
7859 end: { line: 1, column: 14 }
7860 }
7861 },
7862 range: [0, 14],
7863 loc: {
7864 start: { line: 1, column: 0 },
7865 end: { line: 1, column: 14 }
7866 }
7867 },
7868
7869 'x < y < z': {
7870 type: 'ExpressionStatement',
7871 expression: {
7872 type: 'BinaryExpression',
7873 operator: '<',
7874 left: {
7875 type: 'BinaryExpression',
7876 operator: '<',
7877 left: {
7878 type: 'Identifier',
7879 name: 'x',
7880 range: [0, 1],
7881 loc: {
7882 start: { line: 1, column: 0 },
7883 end: { line: 1, column: 1 }
7884 }
7885 },
7886 right: {
7887 type: 'Identifier',
7888 name: 'y',
7889 range: [4, 5],
7890 loc: {
7891 start: { line: 1, column: 4 },
7892 end: { line: 1, column: 5 }
7893 }
7894 },
7895 range: [0, 5],
7896 loc: {
7897 start: { line: 1, column: 0 },
7898 end: { line: 1, column: 5 }
7899 }
7900 },
7901 right: {
7902 type: 'Identifier',
7903 name: 'z',
7904 range: [8, 9],
7905 loc: {
7906 start: { line: 1, column: 8 },
7907 end: { line: 1, column: 9 }
7908 }
7909 },
7910 range: [0, 9],
7911 loc: {
7912 start: { line: 1, column: 0 },
7913 end: { line: 1, column: 9 }
7914 }
7915 },
7916 range: [0, 9],
7917 loc: {
7918 start: { line: 1, column: 0 },
7919 end: { line: 1, column: 9 }
7920 }
7921 }
7922
7923 },
7924
7925 'Equality Operators': {
7926
7927 'x == y': {
7928 type: 'ExpressionStatement',
7929 expression: {
7930 type: 'BinaryExpression',
7931 operator: '==',
7932 left: {
7933 type: 'Identifier',
7934 name: 'x',
7935 range: [0, 1],
7936 loc: {
7937 start: { line: 1, column: 0 },
7938 end: { line: 1, column: 1 }
7939 }
7940 },
7941 right: {
7942 type: 'Identifier',
7943 name: 'y',
7944 range: [5, 6],
7945 loc: {
7946 start: { line: 1, column: 5 },
7947 end: { line: 1, column: 6 }
7948 }
7949 },
7950 range: [0, 6],
7951 loc: {
7952 start: { line: 1, column: 0 },
7953 end: { line: 1, column: 6 }
7954 }
7955 },
7956 range: [0, 6],
7957 loc: {
7958 start: { line: 1, column: 0 },
7959 end: { line: 1, column: 6 }
7960 }
7961 },
7962
7963 'x != y': {
7964 type: 'ExpressionStatement',
7965 expression: {
7966 type: 'BinaryExpression',
7967 operator: '!=',
7968 left: {
7969 type: 'Identifier',
7970 name: 'x',
7971 range: [0, 1],
7972 loc: {
7973 start: { line: 1, column: 0 },
7974 end: { line: 1, column: 1 }
7975 }
7976 },
7977 right: {
7978 type: 'Identifier',
7979 name: 'y',
7980 range: [5, 6],
7981 loc: {
7982 start: { line: 1, column: 5 },
7983 end: { line: 1, column: 6 }
7984 }
7985 },
7986 range: [0, 6],
7987 loc: {
7988 start: { line: 1, column: 0 },
7989 end: { line: 1, column: 6 }
7990 }
7991 },
7992 range: [0, 6],
7993 loc: {
7994 start: { line: 1, column: 0 },
7995 end: { line: 1, column: 6 }
7996 }
7997 },
7998
7999 'x === y': {
8000 type: 'ExpressionStatement',
8001 expression: {
8002 type: 'BinaryExpression',
8003 operator: '===',
8004 left: {
8005 type: 'Identifier',
8006 name: 'x',
8007 range: [0, 1],
8008 loc: {
8009 start: { line: 1, column: 0 },
8010 end: { line: 1, column: 1 }
8011 }
8012 },
8013 right: {
8014 type: 'Identifier',
8015 name: 'y',
8016 range: [6, 7],
8017 loc: {
8018 start: { line: 1, column: 6 },
8019 end: { line: 1, column: 7 }
8020 }
8021 },
8022 range: [0, 7],
8023 loc: {
8024 start: { line: 1, column: 0 },
8025 end: { line: 1, column: 7 }
8026 }
8027 },
8028 range: [0, 7],
8029 loc: {
8030 start: { line: 1, column: 0 },
8031 end: { line: 1, column: 7 }
8032 }
8033 },
8034
8035 'x !== y': {
8036 type: 'ExpressionStatement',
8037 expression: {
8038 type: 'BinaryExpression',
8039 operator: '!==',
8040 left: {
8041 type: 'Identifier',
8042 name: 'x',
8043 range: [0, 1],
8044 loc: {
8045 start: { line: 1, column: 0 },
8046 end: { line: 1, column: 1 }
8047 }
8048 },
8049 right: {
8050 type: 'Identifier',
8051 name: 'y',
8052 range: [6, 7],
8053 loc: {
8054 start: { line: 1, column: 6 },
8055 end: { line: 1, column: 7 }
8056 }
8057 },
8058 range: [0, 7],
8059 loc: {
8060 start: { line: 1, column: 0 },
8061 end: { line: 1, column: 7 }
8062 }
8063 },
8064 range: [0, 7],
8065 loc: {
8066 start: { line: 1, column: 0 },
8067 end: { line: 1, column: 7 }
8068 }
8069 }
8070
8071 },
8072
8073 'Binary Bitwise Operators': {
8074
8075 'x & y': {
8076 type: 'ExpressionStatement',
8077 expression: {
8078 type: 'BinaryExpression',
8079 operator: '&',
8080 left: {
8081 type: 'Identifier',
8082 name: 'x',
8083 range: [0, 1],
8084 loc: {
8085 start: { line: 1, column: 0 },
8086 end: { line: 1, column: 1 }
8087 }
8088 },
8089 right: {
8090 type: 'Identifier',
8091 name: 'y',
8092 range: [4, 5],
8093 loc: {
8094 start: { line: 1, column: 4 },
8095 end: { line: 1, column: 5 }
8096 }
8097 },
8098 range: [0, 5],
8099 loc: {
8100 start: { line: 1, column: 0 },
8101 end: { line: 1, column: 5 }
8102 }
8103 },
8104 range: [0, 5],
8105 loc: {
8106 start: { line: 1, column: 0 },
8107 end: { line: 1, column: 5 }
8108 }
8109 },
8110
8111 'x ^ y': {
8112 type: 'ExpressionStatement',
8113 expression: {
8114 type: 'BinaryExpression',
8115 operator: '^',
8116 left: {
8117 type: 'Identifier',
8118 name: 'x',
8119 range: [0, 1],
8120 loc: {
8121 start: { line: 1, column: 0 },
8122 end: { line: 1, column: 1 }
8123 }
8124 },
8125 right: {
8126 type: 'Identifier',
8127 name: 'y',
8128 range: [4, 5],
8129 loc: {
8130 start: { line: 1, column: 4 },
8131 end: { line: 1, column: 5 }
8132 }
8133 },
8134 range: [0, 5],
8135 loc: {
8136 start: { line: 1, column: 0 },
8137 end: { line: 1, column: 5 }
8138 }
8139 },
8140 range: [0, 5],
8141 loc: {
8142 start: { line: 1, column: 0 },
8143 end: { line: 1, column: 5 }
8144 }
8145 },
8146
8147 'x | y': {
8148 type: 'ExpressionStatement',
8149 expression: {
8150 type: 'BinaryExpression',
8151 operator: '|',
8152 left: {
8153 type: 'Identifier',
8154 name: 'x',
8155 range: [0, 1],
8156 loc: {
8157 start: { line: 1, column: 0 },
8158 end: { line: 1, column: 1 }
8159 }
8160 },
8161 right: {
8162 type: 'Identifier',
8163 name: 'y',
8164 range: [4, 5],
8165 loc: {
8166 start: { line: 1, column: 4 },
8167 end: { line: 1, column: 5 }
8168 }
8169 },
8170 range: [0, 5],
8171 loc: {
8172 start: { line: 1, column: 0 },
8173 end: { line: 1, column: 5 }
8174 }
8175 },
8176 range: [0, 5],
8177 loc: {
8178 start: { line: 1, column: 0 },
8179 end: { line: 1, column: 5 }
8180 }
8181 }
8182
8183 },
8184
8185 'Binary Expressions': {
8186
8187 'x + y + z': {
8188 type: 'ExpressionStatement',
8189 expression: {
8190 type: 'BinaryExpression',
8191 operator: '+',
8192 left: {
8193 type: 'BinaryExpression',
8194 operator: '+',
8195 left: {
8196 type: 'Identifier',
8197 name: 'x',
8198 range: [0, 1],
8199 loc: {
8200 start: { line: 1, column: 0 },
8201 end: { line: 1, column: 1 }
8202 }
8203 },
8204 right: {
8205 type: 'Identifier',
8206 name: 'y',
8207 range: [4, 5],
8208 loc: {
8209 start: { line: 1, column: 4 },
8210 end: { line: 1, column: 5 }
8211 }
8212 },
8213 range: [0, 5],
8214 loc: {
8215 start: { line: 1, column: 0 },
8216 end: { line: 1, column: 5 }
8217 }
8218 },
8219 right: {
8220 type: 'Identifier',
8221 name: 'z',
8222 range: [8, 9],
8223 loc: {
8224 start: { line: 1, column: 8 },
8225 end: { line: 1, column: 9 }
8226 }
8227 },
8228 range: [0, 9],
8229 loc: {
8230 start: { line: 1, column: 0 },
8231 end: { line: 1, column: 9 }
8232 }
8233 },
8234 range: [0, 9],
8235 loc: {
8236 start: { line: 1, column: 0 },
8237 end: { line: 1, column: 9 }
8238 }
8239 },
8240
8241 'x - y + z': {
8242 type: 'ExpressionStatement',
8243 expression: {
8244 type: 'BinaryExpression',
8245 operator: '+',
8246 left: {
8247 type: 'BinaryExpression',
8248 operator: '-',
8249 left: {
8250 type: 'Identifier',
8251 name: 'x',
8252 range: [0, 1],
8253 loc: {
8254 start: { line: 1, column: 0 },
8255 end: { line: 1, column: 1 }
8256 }
8257 },
8258 right: {
8259 type: 'Identifier',
8260 name: 'y',
8261 range: [4, 5],
8262 loc: {
8263 start: { line: 1, column: 4 },
8264 end: { line: 1, column: 5 }
8265 }
8266 },
8267 range: [0, 5],
8268 loc: {
8269 start: { line: 1, column: 0 },
8270 end: { line: 1, column: 5 }
8271 }
8272 },
8273 right: {
8274 type: 'Identifier',
8275 name: 'z',
8276 range: [8, 9],
8277 loc: {
8278 start: { line: 1, column: 8 },
8279 end: { line: 1, column: 9 }
8280 }
8281 },
8282 range: [0, 9],
8283 loc: {
8284 start: { line: 1, column: 0 },
8285 end: { line: 1, column: 9 }
8286 }
8287 },
8288 range: [0, 9],
8289 loc: {
8290 start: { line: 1, column: 0 },
8291 end: { line: 1, column: 9 }
8292 }
8293 },
8294
8295 'x + y - z': {
8296 type: 'ExpressionStatement',
8297 expression: {
8298 type: 'BinaryExpression',
8299 operator: '-',
8300 left: {
8301 type: 'BinaryExpression',
8302 operator: '+',
8303 left: {
8304 type: 'Identifier',
8305 name: 'x',
8306 range: [0, 1],
8307 loc: {
8308 start: { line: 1, column: 0 },
8309 end: { line: 1, column: 1 }
8310 }
8311 },
8312 right: {
8313 type: 'Identifier',
8314 name: 'y',
8315 range: [4, 5],
8316 loc: {
8317 start: { line: 1, column: 4 },
8318 end: { line: 1, column: 5 }
8319 }
8320 },
8321 range: [0, 5],
8322 loc: {
8323 start: { line: 1, column: 0 },
8324 end: { line: 1, column: 5 }
8325 }
8326 },
8327 right: {
8328 type: 'Identifier',
8329 name: 'z',
8330 range: [8, 9],
8331 loc: {
8332 start: { line: 1, column: 8 },
8333 end: { line: 1, column: 9 }
8334 }
8335 },
8336 range: [0, 9],
8337 loc: {
8338 start: { line: 1, column: 0 },
8339 end: { line: 1, column: 9 }
8340 }
8341 },
8342 range: [0, 9],
8343 loc: {
8344 start: { line: 1, column: 0 },
8345 end: { line: 1, column: 9 }
8346 }
8347 },
8348
8349 'x - y - z': {
8350 type: 'ExpressionStatement',
8351 expression: {
8352 type: 'BinaryExpression',
8353 operator: '-',
8354 left: {
8355 type: 'BinaryExpression',
8356 operator: '-',
8357 left: {
8358 type: 'Identifier',
8359 name: 'x',
8360 range: [0, 1],
8361 loc: {
8362 start: { line: 1, column: 0 },
8363 end: { line: 1, column: 1 }
8364 }
8365 },
8366 right: {
8367 type: 'Identifier',
8368 name: 'y',
8369 range: [4, 5],
8370 loc: {
8371 start: { line: 1, column: 4 },
8372 end: { line: 1, column: 5 }
8373 }
8374 },
8375 range: [0, 5],
8376 loc: {
8377 start: { line: 1, column: 0 },
8378 end: { line: 1, column: 5 }
8379 }
8380 },
8381 right: {
8382 type: 'Identifier',
8383 name: 'z',
8384 range: [8, 9],
8385 loc: {
8386 start: { line: 1, column: 8 },
8387 end: { line: 1, column: 9 }
8388 }
8389 },
8390 range: [0, 9],
8391 loc: {
8392 start: { line: 1, column: 0 },
8393 end: { line: 1, column: 9 }
8394 }
8395 },
8396 range: [0, 9],
8397 loc: {
8398 start: { line: 1, column: 0 },
8399 end: { line: 1, column: 9 }
8400 }
8401 },
8402
8403 'x + y * z': {
8404 type: 'ExpressionStatement',
8405 expression: {
8406 type: 'BinaryExpression',
8407 operator: '+',
8408 left: {
8409 type: 'Identifier',
8410 name: 'x',
8411 range: [0, 1],
8412 loc: {
8413 start: { line: 1, column: 0 },
8414 end: { line: 1, column: 1 }
8415 }
8416 },
8417 right: {
8418 type: 'BinaryExpression',
8419 operator: '*',
8420 left: {
8421 type: 'Identifier',
8422 name: 'y',
8423 range: [4, 5],
8424 loc: {
8425 start: { line: 1, column: 4 },
8426 end: { line: 1, column: 5 }
8427 }
8428 },
8429 right: {
8430 type: 'Identifier',
8431 name: 'z',
8432 range: [8, 9],
8433 loc: {
8434 start: { line: 1, column: 8 },
8435 end: { line: 1, column: 9 }
8436 }
8437 },
8438 range: [4, 9],
8439 loc: {
8440 start: { line: 1, column: 4 },
8441 end: { line: 1, column: 9 }
8442 }
8443 },
8444 range: [0, 9],
8445 loc: {
8446 start: { line: 1, column: 0 },
8447 end: { line: 1, column: 9 }
8448 }
8449 },
8450 range: [0, 9],
8451 loc: {
8452 start: { line: 1, column: 0 },
8453 end: { line: 1, column: 9 }
8454 }
8455 },
8456
8457 'x + y / z': {
8458 type: 'ExpressionStatement',
8459 expression: {
8460 type: 'BinaryExpression',
8461 operator: '+',
8462 left: {
8463 type: 'Identifier',
8464 name: 'x',
8465 range: [0, 1],
8466 loc: {
8467 start: { line: 1, column: 0 },
8468 end: { line: 1, column: 1 }
8469 }
8470 },
8471 right: {
8472 type: 'BinaryExpression',
8473 operator: '/',
8474 left: {
8475 type: 'Identifier',
8476 name: 'y',
8477 range: [4, 5],
8478 loc: {
8479 start: { line: 1, column: 4 },
8480 end: { line: 1, column: 5 }
8481 }
8482 },
8483 right: {
8484 type: 'Identifier',
8485 name: 'z',
8486 range: [8, 9],
8487 loc: {
8488 start: { line: 1, column: 8 },
8489 end: { line: 1, column: 9 }
8490 }
8491 },
8492 range: [4, 9],
8493 loc: {
8494 start: { line: 1, column: 4 },
8495 end: { line: 1, column: 9 }
8496 }
8497 },
8498 range: [0, 9],
8499 loc: {
8500 start: { line: 1, column: 0 },
8501 end: { line: 1, column: 9 }
8502 }
8503 },
8504 range: [0, 9],
8505 loc: {
8506 start: { line: 1, column: 0 },
8507 end: { line: 1, column: 9 }
8508 }
8509 },
8510
8511 'x - y % z': {
8512 type: 'ExpressionStatement',
8513 expression: {
8514 type: 'BinaryExpression',
8515 operator: '-',
8516 left: {
8517 type: 'Identifier',
8518 name: 'x',
8519 range: [0, 1],
8520 loc: {
8521 start: { line: 1, column: 0 },
8522 end: { line: 1, column: 1 }
8523 }
8524 },
8525 right: {
8526 type: 'BinaryExpression',
8527 operator: '%',
8528 left: {
8529 type: 'Identifier',
8530 name: 'y',
8531 range: [4, 5],
8532 loc: {
8533 start: { line: 1, column: 4 },
8534 end: { line: 1, column: 5 }
8535 }
8536 },
8537 right: {
8538 type: 'Identifier',
8539 name: 'z',
8540 range: [8, 9],
8541 loc: {
8542 start: { line: 1, column: 8 },
8543 end: { line: 1, column: 9 }
8544 }
8545 },
8546 range: [4, 9],
8547 loc: {
8548 start: { line: 1, column: 4 },
8549 end: { line: 1, column: 9 }
8550 }
8551 },
8552 range: [0, 9],
8553 loc: {
8554 start: { line: 1, column: 0 },
8555 end: { line: 1, column: 9 }
8556 }
8557 },
8558 range: [0, 9],
8559 loc: {
8560 start: { line: 1, column: 0 },
8561 end: { line: 1, column: 9 }
8562 }
8563 },
8564
8565 'x * y * z': {
8566 type: 'ExpressionStatement',
8567 expression: {
8568 type: 'BinaryExpression',
8569 operator: '*',
8570 left: {
8571 type: 'BinaryExpression',
8572 operator: '*',
8573 left: {
8574 type: 'Identifier',
8575 name: 'x',
8576 range: [0, 1],
8577 loc: {
8578 start: { line: 1, column: 0 },
8579 end: { line: 1, column: 1 }
8580 }
8581 },
8582 right: {
8583 type: 'Identifier',
8584 name: 'y',
8585 range: [4, 5],
8586 loc: {
8587 start: { line: 1, column: 4 },
8588 end: { line: 1, column: 5 }
8589 }
8590 },
8591 range: [0, 5],
8592 loc: {
8593 start: { line: 1, column: 0 },
8594 end: { line: 1, column: 5 }
8595 }
8596 },
8597 right: {
8598 type: 'Identifier',
8599 name: 'z',
8600 range: [8, 9],
8601 loc: {
8602 start: { line: 1, column: 8 },
8603 end: { line: 1, column: 9 }
8604 }
8605 },
8606 range: [0, 9],
8607 loc: {
8608 start: { line: 1, column: 0 },
8609 end: { line: 1, column: 9 }
8610 }
8611 },
8612 range: [0, 9],
8613 loc: {
8614 start: { line: 1, column: 0 },
8615 end: { line: 1, column: 9 }
8616 }
8617 },
8618
8619 'x * y / z': {
8620 type: 'ExpressionStatement',
8621 expression: {
8622 type: 'BinaryExpression',
8623 operator: '/',
8624 left: {
8625 type: 'BinaryExpression',
8626 operator: '*',
8627 left: {
8628 type: 'Identifier',
8629 name: 'x',
8630 range: [0, 1],
8631 loc: {
8632 start: { line: 1, column: 0 },
8633 end: { line: 1, column: 1 }
8634 }
8635 },
8636 right: {
8637 type: 'Identifier',
8638 name: 'y',
8639 range: [4, 5],
8640 loc: {
8641 start: { line: 1, column: 4 },
8642 end: { line: 1, column: 5 }
8643 }
8644 },
8645 range: [0, 5],
8646 loc: {
8647 start: { line: 1, column: 0 },
8648 end: { line: 1, column: 5 }
8649 }
8650 },
8651 right: {
8652 type: 'Identifier',
8653 name: 'z',
8654 range: [8, 9],
8655 loc: {
8656 start: { line: 1, column: 8 },
8657 end: { line: 1, column: 9 }
8658 }
8659 },
8660 range: [0, 9],
8661 loc: {
8662 start: { line: 1, column: 0 },
8663 end: { line: 1, column: 9 }
8664 }
8665 },
8666 range: [0, 9],
8667 loc: {
8668 start: { line: 1, column: 0 },
8669 end: { line: 1, column: 9 }
8670 }
8671 },
8672
8673 'x * y % z': {
8674 type: 'ExpressionStatement',
8675 expression: {
8676 type: 'BinaryExpression',
8677 operator: '%',
8678 left: {
8679 type: 'BinaryExpression',
8680 operator: '*',
8681 left: {
8682 type: 'Identifier',
8683 name: 'x',
8684 range: [0, 1],
8685 loc: {
8686 start: { line: 1, column: 0 },
8687 end: { line: 1, column: 1 }
8688 }
8689 },
8690 right: {
8691 type: 'Identifier',
8692 name: 'y',
8693 range: [4, 5],
8694 loc: {
8695 start: { line: 1, column: 4 },
8696 end: { line: 1, column: 5 }
8697 }
8698 },
8699 range: [0, 5],
8700 loc: {
8701 start: { line: 1, column: 0 },
8702 end: { line: 1, column: 5 }
8703 }
8704 },
8705 right: {
8706 type: 'Identifier',
8707 name: 'z',
8708 range: [8, 9],
8709 loc: {
8710 start: { line: 1, column: 8 },
8711 end: { line: 1, column: 9 }
8712 }
8713 },
8714 range: [0, 9],
8715 loc: {
8716 start: { line: 1, column: 0 },
8717 end: { line: 1, column: 9 }
8718 }
8719 },
8720 range: [0, 9],
8721 loc: {
8722 start: { line: 1, column: 0 },
8723 end: { line: 1, column: 9 }
8724 }
8725 },
8726
8727 'x % y * z': {
8728 type: 'ExpressionStatement',
8729 expression: {
8730 type: 'BinaryExpression',
8731 operator: '*',
8732 left: {
8733 type: 'BinaryExpression',
8734 operator: '%',
8735 left: {
8736 type: 'Identifier',
8737 name: 'x',
8738 range: [0, 1],
8739 loc: {
8740 start: { line: 1, column: 0 },
8741 end: { line: 1, column: 1 }
8742 }
8743 },
8744 right: {
8745 type: 'Identifier',
8746 name: 'y',
8747 range: [4, 5],
8748 loc: {
8749 start: { line: 1, column: 4 },
8750 end: { line: 1, column: 5 }
8751 }
8752 },
8753 range: [0, 5],
8754 loc: {
8755 start: { line: 1, column: 0 },
8756 end: { line: 1, column: 5 }
8757 }
8758 },
8759 right: {
8760 type: 'Identifier',
8761 name: 'z',
8762 range: [8, 9],
8763 loc: {
8764 start: { line: 1, column: 8 },
8765 end: { line: 1, column: 9 }
8766 }
8767 },
8768 range: [0, 9],
8769 loc: {
8770 start: { line: 1, column: 0 },
8771 end: { line: 1, column: 9 }
8772 }
8773 },
8774 range: [0, 9],
8775 loc: {
8776 start: { line: 1, column: 0 },
8777 end: { line: 1, column: 9 }
8778 }
8779 },
8780
8781 'x << y << z': {
8782 type: 'ExpressionStatement',
8783 expression: {
8784 type: 'BinaryExpression',
8785 operator: '<<',
8786 left: {
8787 type: 'BinaryExpression',
8788 operator: '<<',
8789 left: {
8790 type: 'Identifier',
8791 name: 'x',
8792 range: [0, 1],
8793 loc: {
8794 start: { line: 1, column: 0 },
8795 end: { line: 1, column: 1 }
8796 }
8797 },
8798 right: {
8799 type: 'Identifier',
8800 name: 'y',
8801 range: [5, 6],
8802 loc: {
8803 start: { line: 1, column: 5 },
8804 end: { line: 1, column: 6 }
8805 }
8806 },
8807 range: [0, 6],
8808 loc: {
8809 start: { line: 1, column: 0 },
8810 end: { line: 1, column: 6 }
8811 }
8812 },
8813 right: {
8814 type: 'Identifier',
8815 name: 'z',
8816 range: [10, 11],
8817 loc: {
8818 start: { line: 1, column: 10 },
8819 end: { line: 1, column: 11 }
8820 }
8821 },
8822 range: [0, 11],
8823 loc: {
8824 start: { line: 1, column: 0 },
8825 end: { line: 1, column: 11 }
8826 }
8827 },
8828 range: [0, 11],
8829 loc: {
8830 start: { line: 1, column: 0 },
8831 end: { line: 1, column: 11 }
8832 }
8833 },
8834
8835 'x | y | z': {
8836 type: 'ExpressionStatement',
8837 expression: {
8838 type: 'BinaryExpression',
8839 operator: '|',
8840 left: {
8841 type: 'BinaryExpression',
8842 operator: '|',
8843 left: {
8844 type: 'Identifier',
8845 name: 'x',
8846 range: [0, 1],
8847 loc: {
8848 start: { line: 1, column: 0 },
8849 end: { line: 1, column: 1 }
8850 }
8851 },
8852 right: {
8853 type: 'Identifier',
8854 name: 'y',
8855 range: [4, 5],
8856 loc: {
8857 start: { line: 1, column: 4 },
8858 end: { line: 1, column: 5 }
8859 }
8860 },
8861 range: [0, 5],
8862 loc: {
8863 start: { line: 1, column: 0 },
8864 end: { line: 1, column: 5 }
8865 }
8866 },
8867 right: {
8868 type: 'Identifier',
8869 name: 'z',
8870 range: [8, 9],
8871 loc: {
8872 start: { line: 1, column: 8 },
8873 end: { line: 1, column: 9 }
8874 }
8875 },
8876 range: [0, 9],
8877 loc: {
8878 start: { line: 1, column: 0 },
8879 end: { line: 1, column: 9 }
8880 }
8881 },
8882 range: [0, 9],
8883 loc: {
8884 start: { line: 1, column: 0 },
8885 end: { line: 1, column: 9 }
8886 }
8887 },
8888
8889 'x & y & z': {
8890 type: 'ExpressionStatement',
8891 expression: {
8892 type: 'BinaryExpression',
8893 operator: '&',
8894 left: {
8895 type: 'BinaryExpression',
8896 operator: '&',
8897 left: {
8898 type: 'Identifier',
8899 name: 'x',
8900 range: [0, 1],
8901 loc: {
8902 start: { line: 1, column: 0 },
8903 end: { line: 1, column: 1 }
8904 }
8905 },
8906 right: {
8907 type: 'Identifier',
8908 name: 'y',
8909 range: [4, 5],
8910 loc: {
8911 start: { line: 1, column: 4 },
8912 end: { line: 1, column: 5 }
8913 }
8914 },
8915 range: [0, 5],
8916 loc: {
8917 start: { line: 1, column: 0 },
8918 end: { line: 1, column: 5 }
8919 }
8920 },
8921 right: {
8922 type: 'Identifier',
8923 name: 'z',
8924 range: [8, 9],
8925 loc: {
8926 start: { line: 1, column: 8 },
8927 end: { line: 1, column: 9 }
8928 }
8929 },
8930 range: [0, 9],
8931 loc: {
8932 start: { line: 1, column: 0 },
8933 end: { line: 1, column: 9 }
8934 }
8935 },
8936 range: [0, 9],
8937 loc: {
8938 start: { line: 1, column: 0 },
8939 end: { line: 1, column: 9 }
8940 }
8941 },
8942
8943 'x ^ y ^ z': {
8944 type: 'ExpressionStatement',
8945 expression: {
8946 type: 'BinaryExpression',
8947 operator: '^',
8948 left: {
8949 type: 'BinaryExpression',
8950 operator: '^',
8951 left: {
8952 type: 'Identifier',
8953 name: 'x',
8954 range: [0, 1],
8955 loc: {
8956 start: { line: 1, column: 0 },
8957 end: { line: 1, column: 1 }
8958 }
8959 },
8960 right: {
8961 type: 'Identifier',
8962 name: 'y',
8963 range: [4, 5],
8964 loc: {
8965 start: { line: 1, column: 4 },
8966 end: { line: 1, column: 5 }
8967 }
8968 },
8969 range: [0, 5],
8970 loc: {
8971 start: { line: 1, column: 0 },
8972 end: { line: 1, column: 5 }
8973 }
8974 },
8975 right: {
8976 type: 'Identifier',
8977 name: 'z',
8978 range: [8, 9],
8979 loc: {
8980 start: { line: 1, column: 8 },
8981 end: { line: 1, column: 9 }
8982 }
8983 },
8984 range: [0, 9],
8985 loc: {
8986 start: { line: 1, column: 0 },
8987 end: { line: 1, column: 9 }
8988 }
8989 },
8990 range: [0, 9],
8991 loc: {
8992 start: { line: 1, column: 0 },
8993 end: { line: 1, column: 9 }
8994 }
8995 },
8996
8997 'x & y | z': {
8998 type: 'ExpressionStatement',
8999 expression: {
9000 type: 'BinaryExpression',
9001 operator: '|',
9002 left: {
9003 type: 'BinaryExpression',
9004 operator: '&',
9005 left: {
9006 type: 'Identifier',
9007 name: 'x',
9008 range: [0, 1],
9009 loc: {
9010 start: { line: 1, column: 0 },
9011 end: { line: 1, column: 1 }
9012 }
9013 },
9014 right: {
9015 type: 'Identifier',
9016 name: 'y',
9017 range: [4, 5],
9018 loc: {
9019 start: { line: 1, column: 4 },
9020 end: { line: 1, column: 5 }
9021 }
9022 },
9023 range: [0, 5],
9024 loc: {
9025 start: { line: 1, column: 0 },
9026 end: { line: 1, column: 5 }
9027 }
9028 },
9029 right: {
9030 type: 'Identifier',
9031 name: 'z',
9032 range: [8, 9],
9033 loc: {
9034 start: { line: 1, column: 8 },
9035 end: { line: 1, column: 9 }
9036 }
9037 },
9038 range: [0, 9],
9039 loc: {
9040 start: { line: 1, column: 0 },
9041 end: { line: 1, column: 9 }
9042 }
9043 },
9044 range: [0, 9],
9045 loc: {
9046 start: { line: 1, column: 0 },
9047 end: { line: 1, column: 9 }
9048 }
9049 },
9050
9051 'x | y ^ z': {
9052 type: 'ExpressionStatement',
9053 expression: {
9054 type: 'BinaryExpression',
9055 operator: '|',
9056 left: {
9057 type: 'Identifier',
9058 name: 'x',
9059 range: [0, 1],
9060 loc: {
9061 start: { line: 1, column: 0 },
9062 end: { line: 1, column: 1 }
9063 }
9064 },
9065 right: {
9066 type: 'BinaryExpression',
9067 operator: '^',
9068 left: {
9069 type: 'Identifier',
9070 name: 'y',
9071 range: [4, 5],
9072 loc: {
9073 start: { line: 1, column: 4 },
9074 end: { line: 1, column: 5 }
9075 }
9076 },
9077 right: {
9078 type: 'Identifier',
9079 name: 'z',
9080 range: [8, 9],
9081 loc: {
9082 start: { line: 1, column: 8 },
9083 end: { line: 1, column: 9 }
9084 }
9085 },
9086 range: [4, 9],
9087 loc: {
9088 start: { line: 1, column: 4 },
9089 end: { line: 1, column: 9 }
9090 }
9091 },
9092 range: [0, 9],
9093 loc: {
9094 start: { line: 1, column: 0 },
9095 end: { line: 1, column: 9 }
9096 }
9097 },
9098 range: [0, 9],
9099 loc: {
9100 start: { line: 1, column: 0 },
9101 end: { line: 1, column: 9 }
9102 }
9103 },
9104
9105 'x | y & z': {
9106 type: 'ExpressionStatement',
9107 expression: {
9108 type: 'BinaryExpression',
9109 operator: '|',
9110 left: {
9111 type: 'Identifier',
9112 name: 'x',
9113 range: [0, 1],
9114 loc: {
9115 start: { line: 1, column: 0 },
9116 end: { line: 1, column: 1 }
9117 }
9118 },
9119 right: {
9120 type: 'BinaryExpression',
9121 operator: '&',
9122 left: {
9123 type: 'Identifier',
9124 name: 'y',
9125 range: [4, 5],
9126 loc: {
9127 start: { line: 1, column: 4 },
9128 end: { line: 1, column: 5 }
9129 }
9130 },
9131 right: {
9132 type: 'Identifier',
9133 name: 'z',
9134 range: [8, 9],
9135 loc: {
9136 start: { line: 1, column: 8 },
9137 end: { line: 1, column: 9 }
9138 }
9139 },
9140 range: [4, 9],
9141 loc: {
9142 start: { line: 1, column: 4 },
9143 end: { line: 1, column: 9 }
9144 }
9145 },
9146 range: [0, 9],
9147 loc: {
9148 start: { line: 1, column: 0 },
9149 end: { line: 1, column: 9 }
9150 }
9151 },
9152 range: [0, 9],
9153 loc: {
9154 start: { line: 1, column: 0 },
9155 end: { line: 1, column: 9 }
9156 }
9157 }
9158
9159 },
9160
9161 'Binary Logical Operators': {
9162
9163 'x || y': {
9164 type: 'ExpressionStatement',
9165 expression: {
9166 type: 'LogicalExpression',
9167 operator: '||',
9168 left: {
9169 type: 'Identifier',
9170 name: 'x',
9171 range: [0, 1],
9172 loc: {
9173 start: { line: 1, column: 0 },
9174 end: { line: 1, column: 1 }
9175 }
9176 },
9177 right: {
9178 type: 'Identifier',
9179 name: 'y',
9180 range: [5, 6],
9181 loc: {
9182 start: { line: 1, column: 5 },
9183 end: { line: 1, column: 6 }
9184 }
9185 },
9186 range: [0, 6],
9187 loc: {
9188 start: { line: 1, column: 0 },
9189 end: { line: 1, column: 6 }
9190 }
9191 },
9192 range: [0, 6],
9193 loc: {
9194 start: { line: 1, column: 0 },
9195 end: { line: 1, column: 6 }
9196 }
9197 },
9198
9199 'x && y': {
9200 type: 'ExpressionStatement',
9201 expression: {
9202 type: 'LogicalExpression',
9203 operator: '&&',
9204 left: {
9205 type: 'Identifier',
9206 name: 'x',
9207 range: [0, 1],
9208 loc: {
9209 start: { line: 1, column: 0 },
9210 end: { line: 1, column: 1 }
9211 }
9212 },
9213 right: {
9214 type: 'Identifier',
9215 name: 'y',
9216 range: [5, 6],
9217 loc: {
9218 start: { line: 1, column: 5 },
9219 end: { line: 1, column: 6 }
9220 }
9221 },
9222 range: [0, 6],
9223 loc: {
9224 start: { line: 1, column: 0 },
9225 end: { line: 1, column: 6 }
9226 }
9227 },
9228 range: [0, 6],
9229 loc: {
9230 start: { line: 1, column: 0 },
9231 end: { line: 1, column: 6 }
9232 }
9233 },
9234
9235 'x || y || z': {
9236 type: 'ExpressionStatement',
9237 expression: {
9238 type: 'LogicalExpression',
9239 operator: '||',
9240 left: {
9241 type: 'LogicalExpression',
9242 operator: '||',
9243 left: {
9244 type: 'Identifier',
9245 name: 'x',
9246 range: [0, 1],
9247 loc: {
9248 start: { line: 1, column: 0 },
9249 end: { line: 1, column: 1 }
9250 }
9251 },
9252 right: {
9253 type: 'Identifier',
9254 name: 'y',
9255 range: [5, 6],
9256 loc: {
9257 start: { line: 1, column: 5 },
9258 end: { line: 1, column: 6 }
9259 }
9260 },
9261 range: [0, 6],
9262 loc: {
9263 start: { line: 1, column: 0 },
9264 end: { line: 1, column: 6 }
9265 }
9266 },
9267 right: {
9268 type: 'Identifier',
9269 name: 'z',
9270 range: [10, 11],
9271 loc: {
9272 start: { line: 1, column: 10 },
9273 end: { line: 1, column: 11 }
9274 }
9275 },
9276 range: [0, 11],
9277 loc: {
9278 start: { line: 1, column: 0 },
9279 end: { line: 1, column: 11 }
9280 }
9281 },
9282 range: [0, 11],
9283 loc: {
9284 start: { line: 1, column: 0 },
9285 end: { line: 1, column: 11 }
9286 }
9287 },
9288
9289 'x && y && z': {
9290 type: 'ExpressionStatement',
9291 expression: {
9292 type: 'LogicalExpression',
9293 operator: '&&',
9294 left: {
9295 type: 'LogicalExpression',
9296 operator: '&&',
9297 left: {
9298 type: 'Identifier',
9299 name: 'x',
9300 range: [0, 1],
9301 loc: {
9302 start: { line: 1, column: 0 },
9303 end: { line: 1, column: 1 }
9304 }
9305 },
9306 right: {
9307 type: 'Identifier',
9308 name: 'y',
9309 range: [5, 6],
9310 loc: {
9311 start: { line: 1, column: 5 },
9312 end: { line: 1, column: 6 }
9313 }
9314 },
9315 range: [0, 6],
9316 loc: {
9317 start: { line: 1, column: 0 },
9318 end: { line: 1, column: 6 }
9319 }
9320 },
9321 right: {
9322 type: 'Identifier',
9323 name: 'z',
9324 range: [10, 11],
9325 loc: {
9326 start: { line: 1, column: 10 },
9327 end: { line: 1, column: 11 }
9328 }
9329 },
9330 range: [0, 11],
9331 loc: {
9332 start: { line: 1, column: 0 },
9333 end: { line: 1, column: 11 }
9334 }
9335 },
9336 range: [0, 11],
9337 loc: {
9338 start: { line: 1, column: 0 },
9339 end: { line: 1, column: 11 }
9340 }
9341 },
9342
9343 'x || y && z': {
9344 type: 'ExpressionStatement',
9345 expression: {
9346 type: 'LogicalExpression',
9347 operator: '||',
9348 left: {
9349 type: 'Identifier',
9350 name: 'x',
9351 range: [0, 1],
9352 loc: {
9353 start: { line: 1, column: 0 },
9354 end: { line: 1, column: 1 }
9355 }
9356 },
9357 right: {
9358 type: 'LogicalExpression',
9359 operator: '&&',
9360 left: {
9361 type: 'Identifier',
9362 name: 'y',
9363 range: [5, 6],
9364 loc: {
9365 start: { line: 1, column: 5 },
9366 end: { line: 1, column: 6 }
9367 }
9368 },
9369 right: {
9370 type: 'Identifier',
9371 name: 'z',
9372 range: [10, 11],
9373 loc: {
9374 start: { line: 1, column: 10 },
9375 end: { line: 1, column: 11 }
9376 }
9377 },
9378 range: [5, 11],
9379 loc: {
9380 start: { line: 1, column: 5 },
9381 end: { line: 1, column: 11 }
9382 }
9383 },
9384 range: [0, 11],
9385 loc: {
9386 start: { line: 1, column: 0 },
9387 end: { line: 1, column: 11 }
9388 }
9389 },
9390 range: [0, 11],
9391 loc: {
9392 start: { line: 1, column: 0 },
9393 end: { line: 1, column: 11 }
9394 }
9395 },
9396
9397 'x || y ^ z': {
9398 type: 'ExpressionStatement',
9399 expression: {
9400 type: 'LogicalExpression',
9401 operator: '||',
9402 left: {
9403 type: 'Identifier',
9404 name: 'x',
9405 range: [0, 1],
9406 loc: {
9407 start: { line: 1, column: 0 },
9408 end: { line: 1, column: 1 }
9409 }
9410 },
9411 right: {
9412 type: 'BinaryExpression',
9413 operator: '^',
9414 left: {
9415 type: 'Identifier',
9416 name: 'y',
9417 range: [5, 6],
9418 loc: {
9419 start: { line: 1, column: 5 },
9420 end: { line: 1, column: 6 }
9421 }
9422 },
9423 right: {
9424 type: 'Identifier',
9425 name: 'z',
9426 range: [9, 10],
9427 loc: {
9428 start: { line: 1, column: 9 },
9429 end: { line: 1, column: 10 }
9430 }
9431 },
9432 range: [5, 10],
9433 loc: {
9434 start: { line: 1, column: 5 },
9435 end: { line: 1, column: 10 }
9436 }
9437 },
9438 range: [0, 10],
9439 loc: {
9440 start: { line: 1, column: 0 },
9441 end: { line: 1, column: 10 }
9442 }
9443 },
9444 range: [0, 10],
9445 loc: {
9446 start: { line: 1, column: 0 },
9447 end: { line: 1, column: 10 }
9448 }
9449 }
9450
9451 },
9452
9453 'Conditional Operator': {
9454
9455 'y ? 1 : 2': {
9456 type: 'ExpressionStatement',
9457 expression: {
9458 type: 'ConditionalExpression',
9459 test: {
9460 type: 'Identifier',
9461 name: 'y',
9462 range: [0, 1],
9463 loc: {
9464 start: { line: 1, column: 0 },
9465 end: { line: 1, column: 1 }
9466 }
9467 },
9468 consequent: {
9469 type: 'Literal',
9470 value: 1,
9471 raw: '1',
9472 range: [4, 5],
9473 loc: {
9474 start: { line: 1, column: 4 },
9475 end: { line: 1, column: 5 }
9476 }
9477 },
9478 alternate: {
9479 type: 'Literal',
9480 value: 2,
9481 raw: '2',
9482 range: [8, 9],
9483 loc: {
9484 start: { line: 1, column: 8 },
9485 end: { line: 1, column: 9 }
9486 }
9487 },
9488 range: [0, 9],
9489 loc: {
9490 start: { line: 1, column: 0 },
9491 end: { line: 1, column: 9 }
9492 }
9493 },
9494 range: [0, 9],
9495 loc: {
9496 start: { line: 1, column: 0 },
9497 end: { line: 1, column: 9 }
9498 }
9499 },
9500
9501 'x && y ? 1 : 2': {
9502 type: 'ExpressionStatement',
9503 expression: {
9504 type: 'ConditionalExpression',
9505 test: {
9506 type: 'LogicalExpression',
9507 operator: '&&',
9508 left: {
9509 type: 'Identifier',
9510 name: 'x',
9511 range: [0, 1],
9512 loc: {
9513 start: { line: 1, column: 0 },
9514 end: { line: 1, column: 1 }
9515 }
9516 },
9517 right: {
9518 type: 'Identifier',
9519 name: 'y',
9520 range: [5, 6],
9521 loc: {
9522 start: { line: 1, column: 5 },
9523 end: { line: 1, column: 6 }
9524 }
9525 },
9526 range: [0, 6],
9527 loc: {
9528 start: { line: 1, column: 0 },
9529 end: { line: 1, column: 6 }
9530 }
9531 },
9532 consequent: {
9533 type: 'Literal',
9534 value: 1,
9535 raw: '1',
9536 range: [9, 10],
9537 loc: {
9538 start: { line: 1, column: 9 },
9539 end: { line: 1, column: 10 }
9540 }
9541 },
9542 alternate: {
9543 type: 'Literal',
9544 value: 2,
9545 raw: '2',
9546 range: [13, 14],
9547 loc: {
9548 start: { line: 1, column: 13 },
9549 end: { line: 1, column: 14 }
9550 }
9551 },
9552 range: [0, 14],
9553 loc: {
9554 start: { line: 1, column: 0 },
9555 end: { line: 1, column: 14 }
9556 }
9557 },
9558 range: [0, 14],
9559 loc: {
9560 start: { line: 1, column: 0 },
9561 end: { line: 1, column: 14 }
9562 }
9563 }
9564
9565 },
9566
9567 'Assignment Operators': {
9568
9569 'x = 42': {
9570 type: 'ExpressionStatement',
9571 expression: {
9572 type: 'AssignmentExpression',
9573 operator: '=',
9574 left: {
9575 type: 'Identifier',
9576 name: 'x',
9577 range: [0, 1],
9578 loc: {
9579 start: { line: 1, column: 0 },
9580 end: { line: 1, column: 1 }
9581 }
9582 },
9583 right: {
9584 type: 'Literal',
9585 value: 42,
9586 raw: '42',
9587 range: [4, 6],
9588 loc: {
9589 start: { line: 1, column: 4 },
9590 end: { line: 1, column: 6 }
9591 }
9592 },
9593 range: [0, 6],
9594 loc: {
9595 start: { line: 1, column: 0 },
9596 end: { line: 1, column: 6 }
9597 }
9598 },
9599 range: [0, 6],
9600 loc: {
9601 start: { line: 1, column: 0 },
9602 end: { line: 1, column: 6 }
9603 }
9604 },
9605
9606 'eval = 42': {
9607 type: 'ExpressionStatement',
9608 expression: {
9609 type: 'AssignmentExpression',
9610 operator: '=',
9611 left: {
9612 type: 'Identifier',
9613 name: 'eval',
9614 range: [0, 4],
9615 loc: {
9616 start: { line: 1, column: 0 },
9617 end: { line: 1, column: 4 }
9618 }
9619 },
9620 right: {
9621 type: 'Literal',
9622 value: 42,
9623 raw: '42',
9624 range: [7, 9],
9625 loc: {
9626 start: { line: 1, column: 7 },
9627 end: { line: 1, column: 9 }
9628 }
9629 },
9630 range: [0, 9],
9631 loc: {
9632 start: { line: 1, column: 0 },
9633 end: { line: 1, column: 9 }
9634 }
9635 },
9636 range: [0, 9],
9637 loc: {
9638 start: { line: 1, column: 0 },
9639 end: { line: 1, column: 9 }
9640 }
9641 },
9642
9643 'arguments = 42': {
9644 type: 'ExpressionStatement',
9645 expression: {
9646 type: 'AssignmentExpression',
9647 operator: '=',
9648 left: {
9649 type: 'Identifier',
9650 name: 'arguments',
9651 range: [0, 9],
9652 loc: {
9653 start: { line: 1, column: 0 },
9654 end: { line: 1, column: 9 }
9655 }
9656 },
9657 right: {
9658 type: 'Literal',
9659 value: 42,
9660 raw: '42',
9661 range: [12, 14],
9662 loc: {
9663 start: { line: 1, column: 12 },
9664 end: { line: 1, column: 14 }
9665 }
9666 },
9667 range: [0, 14],
9668 loc: {
9669 start: { line: 1, column: 0 },
9670 end: { line: 1, column: 14 }
9671 }
9672 },
9673 range: [0, 14],
9674 loc: {
9675 start: { line: 1, column: 0 },
9676 end: { line: 1, column: 14 }
9677 }
9678 },
9679
9680 'x *= 42': {
9681 type: 'ExpressionStatement',
9682 expression: {
9683 type: 'AssignmentExpression',
9684 operator: '*=',
9685 left: {
9686 type: 'Identifier',
9687 name: 'x',
9688 range: [0, 1],
9689 loc: {
9690 start: { line: 1, column: 0 },
9691 end: { line: 1, column: 1 }
9692 }
9693 },
9694 right: {
9695 type: 'Literal',
9696 value: 42,
9697 raw: '42',
9698 range: [5, 7],
9699 loc: {
9700 start: { line: 1, column: 5 },
9701 end: { line: 1, column: 7 }
9702 }
9703 },
9704 range: [0, 7],
9705 loc: {
9706 start: { line: 1, column: 0 },
9707 end: { line: 1, column: 7 }
9708 }
9709 },
9710 range: [0, 7],
9711 loc: {
9712 start: { line: 1, column: 0 },
9713 end: { line: 1, column: 7 }
9714 }
9715 },
9716
9717 'x /= 42': {
9718 type: 'ExpressionStatement',
9719 expression: {
9720 type: 'AssignmentExpression',
9721 operator: '/=',
9722 left: {
9723 type: 'Identifier',
9724 name: 'x',
9725 range: [0, 1],
9726 loc: {
9727 start: { line: 1, column: 0 },
9728 end: { line: 1, column: 1 }
9729 }
9730 },
9731 right: {
9732 type: 'Literal',
9733 value: 42,
9734 raw: '42',
9735 range: [5, 7],
9736 loc: {
9737 start: { line: 1, column: 5 },
9738 end: { line: 1, column: 7 }
9739 }
9740 },
9741 range: [0, 7],
9742 loc: {
9743 start: { line: 1, column: 0 },
9744 end: { line: 1, column: 7 }
9745 }
9746 },
9747 range: [0, 7],
9748 loc: {
9749 start: { line: 1, column: 0 },
9750 end: { line: 1, column: 7 }
9751 }
9752 },
9753
9754 'x %= 42': {
9755 type: 'ExpressionStatement',
9756 expression: {
9757 type: 'AssignmentExpression',
9758 operator: '%=',
9759 left: {
9760 type: 'Identifier',
9761 name: 'x',
9762 range: [0, 1],
9763 loc: {
9764 start: { line: 1, column: 0 },
9765 end: { line: 1, column: 1 }
9766 }
9767 },
9768 right: {
9769 type: 'Literal',
9770 value: 42,
9771 raw: '42',
9772 range: [5, 7],
9773 loc: {
9774 start: { line: 1, column: 5 },
9775 end: { line: 1, column: 7 }
9776 }
9777 },
9778 range: [0, 7],
9779 loc: {
9780 start: { line: 1, column: 0 },
9781 end: { line: 1, column: 7 }
9782 }
9783 },
9784 range: [0, 7],
9785 loc: {
9786 start: { line: 1, column: 0 },
9787 end: { line: 1, column: 7 }
9788 }
9789 },
9790
9791 'x += 42': {
9792 type: 'ExpressionStatement',
9793 expression: {
9794 type: 'AssignmentExpression',
9795 operator: '+=',
9796 left: {
9797 type: 'Identifier',
9798 name: 'x',
9799 range: [0, 1],
9800 loc: {
9801 start: { line: 1, column: 0 },
9802 end: { line: 1, column: 1 }
9803 }
9804 },
9805 right: {
9806 type: 'Literal',
9807 value: 42,
9808 raw: '42',
9809 range: [5, 7],
9810 loc: {
9811 start: { line: 1, column: 5 },
9812 end: { line: 1, column: 7 }
9813 }
9814 },
9815 range: [0, 7],
9816 loc: {
9817 start: { line: 1, column: 0 },
9818 end: { line: 1, column: 7 }
9819 }
9820 },
9821 range: [0, 7],
9822 loc: {
9823 start: { line: 1, column: 0 },
9824 end: { line: 1, column: 7 }
9825 }
9826 },
9827
9828 'x -= 42': {
9829 type: 'ExpressionStatement',
9830 expression: {
9831 type: 'AssignmentExpression',
9832 operator: '-=',
9833 left: {
9834 type: 'Identifier',
9835 name: 'x',
9836 range: [0, 1],
9837 loc: {
9838 start: { line: 1, column: 0 },
9839 end: { line: 1, column: 1 }
9840 }
9841 },
9842 right: {
9843 type: 'Literal',
9844 value: 42,
9845 raw: '42',
9846 range: [5, 7],
9847 loc: {
9848 start: { line: 1, column: 5 },
9849 end: { line: 1, column: 7 }
9850 }
9851 },
9852 range: [0, 7],
9853 loc: {
9854 start: { line: 1, column: 0 },
9855 end: { line: 1, column: 7 }
9856 }
9857 },
9858 range: [0, 7],
9859 loc: {
9860 start: { line: 1, column: 0 },
9861 end: { line: 1, column: 7 }
9862 }
9863 },
9864
9865 'x <<= 42': {
9866 type: 'ExpressionStatement',
9867 expression: {
9868 type: 'AssignmentExpression',
9869 operator: '<<=',
9870 left: {
9871 type: 'Identifier',
9872 name: 'x',
9873 range: [0, 1],
9874 loc: {
9875 start: { line: 1, column: 0 },
9876 end: { line: 1, column: 1 }
9877 }
9878 },
9879 right: {
9880 type: 'Literal',
9881 value: 42,
9882 raw: '42',
9883 range: [6, 8],
9884 loc: {
9885 start: { line: 1, column: 6 },
9886 end: { line: 1, column: 8 }
9887 }
9888 },
9889 range: [0, 8],
9890 loc: {
9891 start: { line: 1, column: 0 },
9892 end: { line: 1, column: 8 }
9893 }
9894 },
9895 range: [0, 8],
9896 loc: {
9897 start: { line: 1, column: 0 },
9898 end: { line: 1, column: 8 }
9899 }
9900 },
9901
9902 'x >>= 42': {
9903 type: 'ExpressionStatement',
9904 expression: {
9905 type: 'AssignmentExpression',
9906 operator: '>>=',
9907 left: {
9908 type: 'Identifier',
9909 name: 'x',
9910 range: [0, 1],
9911 loc: {
9912 start: { line: 1, column: 0 },
9913 end: { line: 1, column: 1 }
9914 }
9915 },
9916 right: {
9917 type: 'Literal',
9918 value: 42,
9919 raw: '42',
9920 range: [6, 8],
9921 loc: {
9922 start: { line: 1, column: 6 },
9923 end: { line: 1, column: 8 }
9924 }
9925 },
9926 range: [0, 8],
9927 loc: {
9928 start: { line: 1, column: 0 },
9929 end: { line: 1, column: 8 }
9930 }
9931 },
9932 range: [0, 8],
9933 loc: {
9934 start: { line: 1, column: 0 },
9935 end: { line: 1, column: 8 }
9936 }
9937 },
9938
9939 'x >>>= 42': {
9940 type: 'ExpressionStatement',
9941 expression: {
9942 type: 'AssignmentExpression',
9943 operator: '>>>=',
9944 left: {
9945 type: 'Identifier',
9946 name: 'x',
9947 range: [0, 1],
9948 loc: {
9949 start: { line: 1, column: 0 },
9950 end: { line: 1, column: 1 }
9951 }
9952 },
9953 right: {
9954 type: 'Literal',
9955 value: 42,
9956 raw: '42',
9957 range: [7, 9],
9958 loc: {
9959 start: { line: 1, column: 7 },
9960 end: { line: 1, column: 9 }
9961 }
9962 },
9963 range: [0, 9],
9964 loc: {
9965 start: { line: 1, column: 0 },
9966 end: { line: 1, column: 9 }
9967 }
9968 },
9969 range: [0, 9],
9970 loc: {
9971 start: { line: 1, column: 0 },
9972 end: { line: 1, column: 9 }
9973 }
9974 },
9975
9976 'x &= 42': {
9977 type: 'ExpressionStatement',
9978 expression: {
9979 type: 'AssignmentExpression',
9980 operator: '&=',
9981 left: {
9982 type: 'Identifier',
9983 name: 'x',
9984 range: [0, 1],
9985 loc: {
9986 start: { line: 1, column: 0 },
9987 end: { line: 1, column: 1 }
9988 }
9989 },
9990 right: {
9991 type: 'Literal',
9992 value: 42,
9993 raw: '42',
9994 range: [5, 7],
9995 loc: {
9996 start: { line: 1, column: 5 },
9997 end: { line: 1, column: 7 }
9998 }
9999 },
10000 range: [0, 7],
10001 loc: {
10002 start: { line: 1, column: 0 },
10003 end: { line: 1, column: 7 }
10004 }
10005 },
10006 range: [0, 7],
10007 loc: {
10008 start: { line: 1, column: 0 },
10009 end: { line: 1, column: 7 }
10010 }
10011 },
10012
10013 'x ^= 42': {
10014 type: 'ExpressionStatement',
10015 expression: {
10016 type: 'AssignmentExpression',
10017 operator: '^=',
10018 left: {
10019 type: 'Identifier',
10020 name: 'x',
10021 range: [0, 1],
10022 loc: {
10023 start: { line: 1, column: 0 },
10024 end: { line: 1, column: 1 }
10025 }
10026 },
10027 right: {
10028 type: 'Literal',
10029 value: 42,
10030 raw: '42',
10031 range: [5, 7],
10032 loc: {
10033 start: { line: 1, column: 5 },
10034 end: { line: 1, column: 7 }
10035 }
10036 },
10037 range: [0, 7],
10038 loc: {
10039 start: { line: 1, column: 0 },
10040 end: { line: 1, column: 7 }
10041 }
10042 },
10043 range: [0, 7],
10044 loc: {
10045 start: { line: 1, column: 0 },
10046 end: { line: 1, column: 7 }
10047 }
10048 },
10049
10050 'x |= 42': {
10051 type: 'ExpressionStatement',
10052 expression: {
10053 type: 'AssignmentExpression',
10054 operator: '|=',
10055 left: {
10056 type: 'Identifier',
10057 name: 'x',
10058 range: [0, 1],
10059 loc: {
10060 start: { line: 1, column: 0 },
10061 end: { line: 1, column: 1 }
10062 }
10063 },
10064 right: {
10065 type: 'Literal',
10066 value: 42,
10067 raw: '42',
10068 range: [5, 7],
10069 loc: {
10070 start: { line: 1, column: 5 },
10071 end: { line: 1, column: 7 }
10072 }
10073 },
10074 range: [0, 7],
10075 loc: {
10076 start: { line: 1, column: 0 },
10077 end: { line: 1, column: 7 }
10078 }
10079 },
10080 range: [0, 7],
10081 loc: {
10082 start: { line: 1, column: 0 },
10083 end: { line: 1, column: 7 }
10084 }
10085 }
10086
10087 },
10088
10089 'Complex Expression': {
10090
10091 'a || b && c | d ^ e & f == g < h >>> i + j * k': {
10092 type: 'ExpressionStatement',
10093 expression: {
10094 type: 'LogicalExpression',
10095 operator: '||',
10096 left: {
10097 type: 'Identifier',
10098 name: 'a',
10099 range: [0, 1],
10100 loc: {
10101 start: { line: 1, column: 0 },
10102 end: { line: 1, column: 1 }
10103 }
10104 },
10105 right: {
10106 type: 'LogicalExpression',
10107 operator: '&&',
10108 left: {
10109 type: 'Identifier',
10110 name: 'b',
10111 range: [5, 6],
10112 loc: {
10113 start: { line: 1, column: 5 },
10114 end: { line: 1, column: 6 }
10115 }
10116 },
10117 right: {
10118 type: 'BinaryExpression',
10119 operator: '|',
10120 left: {
10121 type: 'Identifier',
10122 name: 'c',
10123 range: [10, 11],
10124 loc: {
10125 start: { line: 1, column: 10 },
10126 end: { line: 1, column: 11 }
10127 }
10128 },
10129 right: {
10130 type: 'BinaryExpression',
10131 operator: '^',
10132 left: {
10133 type: 'Identifier',
10134 name: 'd',
10135 range: [14, 15],
10136 loc: {
10137 start: { line: 1, column: 14 },
10138 end: { line: 1, column: 15 }
10139 }
10140 },
10141 right: {
10142 type: 'BinaryExpression',
10143 operator: '&',
10144 left: {
10145 type: 'Identifier',
10146 name: 'e',
10147 range: [18, 19],
10148 loc: {
10149 start: { line: 1, column: 18 },
10150 end: { line: 1, column: 19 }
10151 }
10152 },
10153 right: {
10154 type: 'BinaryExpression',
10155 operator: '==',
10156 left: {
10157 type: 'Identifier',
10158 name: 'f',
10159 range: [22, 23],
10160 loc: {
10161 start: { line: 1, column: 22 },
10162 end: { line: 1, column: 23 }
10163 }
10164 },
10165 right: {
10166 type: 'BinaryExpression',
10167 operator: '<',
10168 left: {
10169 type: 'Identifier',
10170 name: 'g',
10171 range: [27, 28],
10172 loc: {
10173 start: { line: 1, column: 27 },
10174 end: { line: 1, column: 28 }
10175 }
10176 },
10177 right: {
10178 type: 'BinaryExpression',
10179 operator: '>>>',
10180 left: {
10181 type: 'Identifier',
10182 name: 'h',
10183 range: [31, 32],
10184 loc: {
10185 start: { line: 1, column: 31 },
10186 end: { line: 1, column: 32 }
10187 }
10188 },
10189 right: {
10190 type: 'BinaryExpression',
10191 operator: '+',
10192 left: {
10193 type: 'Identifier',
10194 name: 'i',
10195 range: [37, 38],
10196 loc: {
10197 start: { line: 1, column: 37 },
10198 end: { line: 1, column: 38 }
10199 }
10200 },
10201 right: {
10202 type: 'BinaryExpression',
10203 operator: '*',
10204 left: {
10205 type: 'Identifier',
10206 name: 'j',
10207 range: [41, 42],
10208 loc: {
10209 start: { line: 1, column: 41 },
10210 end: { line: 1, column: 42 }
10211 }
10212 },
10213 right: {
10214 type: 'Identifier',
10215 name: 'k',
10216 range: [45, 46],
10217 loc: {
10218 start: { line: 1, column: 45 },
10219 end: { line: 1, column: 46 }
10220 }
10221 },
10222 range: [41, 46],
10223 loc: {
10224 start: { line: 1, column: 41 },
10225 end: { line: 1, column: 46 }
10226 }
10227 },
10228 range: [37, 46],
10229 loc: {
10230 start: { line: 1, column: 37 },
10231 end: { line: 1, column: 46 }
10232 }
10233 },
10234 range: [31, 46],
10235 loc: {
10236 start: { line: 1, column: 31 },
10237 end: { line: 1, column: 46 }
10238 }
10239 },
10240 range: [27, 46],
10241 loc: {
10242 start: { line: 1, column: 27 },
10243 end: { line: 1, column: 46 }
10244 }
10245 },
10246 range: [22, 46],
10247 loc: {
10248 start: { line: 1, column: 22 },
10249 end: { line: 1, column: 46 }
10250 }
10251 },
10252 range: [18, 46],
10253 loc: {
10254 start: { line: 1, column: 18 },
10255 end: { line: 1, column: 46 }
10256 }
10257 },
10258 range: [14, 46],
10259 loc: {
10260 start: { line: 1, column: 14 },
10261 end: { line: 1, column: 46 }
10262 }
10263 },
10264 range: [10, 46],
10265 loc: {
10266 start: { line: 1, column: 10 },
10267 end: { line: 1, column: 46 }
10268 }
10269 },
10270 range: [5, 46],
10271 loc: {
10272 start: { line: 1, column: 5 },
10273 end: { line: 1, column: 46 }
10274 }
10275 },
10276 range: [0, 46],
10277 loc: {
10278 start: { line: 1, column: 0 },
10279 end: { line: 1, column: 46 }
10280 }
10281 },
10282 range: [0, 46],
10283 loc: {
10284 start: { line: 1, column: 0 },
10285 end: { line: 1, column: 46 }
10286 }
10287 }
10288
10289 },
10290
10291 'Block': {
10292
10293 '{ foo }': {
10294 type: 'BlockStatement',
10295 body: [{
10296 type: 'ExpressionStatement',
10297 expression: {
10298 type: 'Identifier',
10299 name: 'foo',
10300 range: [2, 5],
10301 loc: {
10302 start: { line: 1, column: 2 },
10303 end: { line: 1, column: 5 }
10304 }
10305 },
10306 range: [2, 6],
10307 loc: {
10308 start: { line: 1, column: 2 },
10309 end: { line: 1, column: 6 }
10310 }
10311 }],
10312 range: [0, 7],
10313 loc: {
10314 start: { line: 1, column: 0 },
10315 end: { line: 1, column: 7 }
10316 }
10317 },
10318
10319 '{ doThis(); doThat(); }': {
10320 type: 'BlockStatement',
10321 body: [{
10322 type: 'ExpressionStatement',
10323 expression: {
10324 type: 'CallExpression',
10325 callee: {
10326 type: 'Identifier',
10327 name: 'doThis',
10328 range: [2, 8],
10329 loc: {
10330 start: { line: 1, column: 2 },
10331 end: { line: 1, column: 8 }
10332 }
10333 },
10334 'arguments': [],
10335 range: [2, 10],
10336 loc: {
10337 start: { line: 1, column: 2 },
10338 end: { line: 1, column: 10 }
10339 }
10340 },
10341 range: [2, 11],
10342 loc: {
10343 start: { line: 1, column: 2 },
10344 end: { line: 1, column: 11 }
10345 }
10346 }, {
10347 type: 'ExpressionStatement',
10348 expression: {
10349 type: 'CallExpression',
10350 callee: {
10351 type: 'Identifier',
10352 name: 'doThat',
10353 range: [12, 18],
10354 loc: {
10355 start: { line: 1, column: 12 },
10356 end: { line: 1, column: 18 }
10357 }
10358 },
10359 'arguments': [],
10360 range: [12, 20],
10361 loc: {
10362 start: { line: 1, column: 12 },
10363 end: { line: 1, column: 20 }
10364 }
10365 },
10366 range: [12, 21],
10367 loc: {
10368 start: { line: 1, column: 12 },
10369 end: { line: 1, column: 21 }
10370 }
10371 }],
10372 range: [0, 23],
10373 loc: {
10374 start: { line: 1, column: 0 },
10375 end: { line: 1, column: 23 }
10376 }
10377 },
10378
10379 '{}': {
10380 type: 'BlockStatement',
10381 body: [],
10382 range: [0, 2],
10383 loc: {
10384 start: { line: 1, column: 0 },
10385 end: { line: 1, column: 2 }
10386 }
10387 }
10388
10389 },
10390
10391 'Variable Statement': {
10392
10393 'var x': {
10394 type: 'VariableDeclaration',
10395 declarations: [{
10396 type: 'VariableDeclarator',
10397 id: {
10398 type: 'Identifier',
10399 name: 'x',
10400 range: [4, 5],
10401 loc: {
10402 start: { line: 1, column: 4 },
10403 end: { line: 1, column: 5 }
10404 }
10405 },
10406 init: null,
10407 range: [4, 5],
10408 loc: {
10409 start: { line: 1, column: 4 },
10410 end: { line: 1, column: 5 }
10411 }
10412 }],
10413 kind: 'var',
10414 range: [0, 5],
10415 loc: {
10416 start: { line: 1, column: 0 },
10417 end: { line: 1, column: 5 }
10418 }
10419 },
10420
10421 'var x, y;': {
10422 type: 'VariableDeclaration',
10423 declarations: [{
10424 type: 'VariableDeclarator',
10425 id: {
10426 type: 'Identifier',
10427 name: 'x',
10428 range: [4, 5],
10429 loc: {
10430 start: { line: 1, column: 4 },
10431 end: { line: 1, column: 5 }
10432 }
10433 },
10434 init: null,
10435 range: [4, 5],
10436 loc: {
10437 start: { line: 1, column: 4 },
10438 end: { line: 1, column: 5 }
10439 }
10440 }, {
10441 type: 'VariableDeclarator',
10442 id: {
10443 type: 'Identifier',
10444 name: 'y',
10445 range: [7, 8],
10446 loc: {
10447 start: { line: 1, column: 7 },
10448 end: { line: 1, column: 8 }
10449 }
10450 },
10451 init: null,
10452 range: [7, 8],
10453 loc: {
10454 start: { line: 1, column: 7 },
10455 end: { line: 1, column: 8 }
10456 }
10457 }],
10458 kind: 'var',
10459 range: [0, 9],
10460 loc: {
10461 start: { line: 1, column: 0 },
10462 end: { line: 1, column: 9 }
10463 }
10464 },
10465
10466 'var x = 42': {
10467 type: 'VariableDeclaration',
10468 declarations: [{
10469 type: 'VariableDeclarator',
10470 id: {
10471 type: 'Identifier',
10472 name: 'x',
10473 range: [4, 5],
10474 loc: {
10475 start: { line: 1, column: 4 },
10476 end: { line: 1, column: 5 }
10477 }
10478 },
10479 init: {
10480 type: 'Literal',
10481 value: 42,
10482 raw: '42',
10483 range: [8, 10],
10484 loc: {
10485 start: { line: 1, column: 8 },
10486 end: { line: 1, column: 10 }
10487 }
10488 },
10489 range: [4, 10],
10490 loc: {
10491 start: { line: 1, column: 4 },
10492 end: { line: 1, column: 10 }
10493 }
10494 }],
10495 kind: 'var',
10496 range: [0, 10],
10497 loc: {
10498 start: { line: 1, column: 0 },
10499 end: { line: 1, column: 10 }
10500 }
10501 },
10502
10503 'var eval = 42, arguments = 42': {
10504 type: 'VariableDeclaration',
10505 declarations: [{
10506 type: 'VariableDeclarator',
10507 id: {
10508 type: 'Identifier',
10509 name: 'eval',
10510 range: [4, 8],
10511 loc: {
10512 start: { line: 1, column: 4 },
10513 end: { line: 1, column: 8 }
10514 }
10515 },
10516 init: {
10517 type: 'Literal',
10518 value: 42,
10519 raw: '42',
10520 range: [11, 13],
10521 loc: {
10522 start: { line: 1, column: 11 },
10523 end: { line: 1, column: 13 }
10524 }
10525 },
10526 range: [4, 13],
10527 loc: {
10528 start: { line: 1, column: 4 },
10529 end: { line: 1, column: 13 }
10530 }
10531 }, {
10532 type: 'VariableDeclarator',
10533 id: {
10534 type: 'Identifier',
10535 name: 'arguments',
10536 range: [15, 24],
10537 loc: {
10538 start: { line: 1, column: 15 },
10539 end: { line: 1, column: 24 }
10540 }
10541 },
10542 init: {
10543 type: 'Literal',
10544 value: 42,
10545 raw: '42',
10546 range: [27, 29],
10547 loc: {
10548 start: { line: 1, column: 27 },
10549 end: { line: 1, column: 29 }
10550 }
10551 },
10552 range: [15, 29],
10553 loc: {
10554 start: { line: 1, column: 15 },
10555 end: { line: 1, column: 29 }
10556 }
10557 }],
10558 kind: 'var',
10559 range: [0, 29],
10560 loc: {
10561 start: { line: 1, column: 0 },
10562 end: { line: 1, column: 29 }
10563 }
10564 },
10565
10566 'var x = 14, y = 3, z = 1977': {
10567 type: 'VariableDeclaration',
10568 declarations: [{
10569 type: 'VariableDeclarator',
10570 id: {
10571 type: 'Identifier',
10572 name: 'x',
10573 range: [4, 5],
10574 loc: {
10575 start: { line: 1, column: 4 },
10576 end: { line: 1, column: 5 }
10577 }
10578 },
10579 init: {
10580 type: 'Literal',
10581 value: 14,
10582 raw: '14',
10583 range: [8, 10],
10584 loc: {
10585 start: { line: 1, column: 8 },
10586 end: { line: 1, column: 10 }
10587 }
10588 },
10589 range: [4, 10],
10590 loc: {
10591 start: { line: 1, column: 4 },
10592 end: { line: 1, column: 10 }
10593 }
10594 }, {
10595 type: 'VariableDeclarator',
10596 id: {
10597 type: 'Identifier',
10598 name: 'y',
10599 range: [12, 13],
10600 loc: {
10601 start: { line: 1, column: 12 },
10602 end: { line: 1, column: 13 }
10603 }
10604 },
10605 init: {
10606 type: 'Literal',
10607 value: 3,
10608 raw: '3',
10609 range: [16, 17],
10610 loc: {
10611 start: { line: 1, column: 16 },
10612 end: { line: 1, column: 17 }
10613 }
10614 },
10615 range: [12, 17],
10616 loc: {
10617 start: { line: 1, column: 12 },
10618 end: { line: 1, column: 17 }
10619 }
10620 }, {
10621 type: 'VariableDeclarator',
10622 id: {
10623 type: 'Identifier',
10624 name: 'z',
10625 range: [19, 20],
10626 loc: {
10627 start: { line: 1, column: 19 },
10628 end: { line: 1, column: 20 }
10629 }
10630 },
10631 init: {
10632 type: 'Literal',
10633 value: 1977,
10634 raw: '1977',
10635 range: [23, 27],
10636 loc: {
10637 start: { line: 1, column: 23 },
10638 end: { line: 1, column: 27 }
10639 }
10640 },
10641 range: [19, 27],
10642 loc: {
10643 start: { line: 1, column: 19 },
10644 end: { line: 1, column: 27 }
10645 }
10646 }],
10647 kind: 'var',
10648 range: [0, 27],
10649 loc: {
10650 start: { line: 1, column: 0 },
10651 end: { line: 1, column: 27 }
10652 }
10653 },
10654
10655 'var implements, interface, package': {
10656 type: 'VariableDeclaration',
10657 declarations: [{
10658 type: 'VariableDeclarator',
10659 id: {
10660 type: 'Identifier',
10661 name: 'implements',
10662 range: [4, 14],
10663 loc: {
10664 start: { line: 1, column: 4 },
10665 end: { line: 1, column: 14 }
10666 }
10667 },
10668 init: null,
10669 range: [4, 14],
10670 loc: {
10671 start: { line: 1, column: 4 },
10672 end: { line: 1, column: 14 }
10673 }
10674 }, {
10675 type: 'VariableDeclarator',
10676 id: {
10677 type: 'Identifier',
10678 name: 'interface',
10679 range: [16, 25],
10680 loc: {
10681 start: { line: 1, column: 16 },
10682 end: { line: 1, column: 25 }
10683 }
10684 },
10685 init: null,
10686 range: [16, 25],
10687 loc: {
10688 start: { line: 1, column: 16 },
10689 end: { line: 1, column: 25 }
10690 }
10691 }, {
10692 type: 'VariableDeclarator',
10693 id: {
10694 type: 'Identifier',
10695 name: 'package',
10696 range: [27, 34],
10697 loc: {
10698 start: { line: 1, column: 27 },
10699 end: { line: 1, column: 34 }
10700 }
10701 },
10702 init: null,
10703 range: [27, 34],
10704 loc: {
10705 start: { line: 1, column: 27 },
10706 end: { line: 1, column: 34 }
10707 }
10708 }],
10709 kind: 'var',
10710 range: [0, 34],
10711 loc: {
10712 start: { line: 1, column: 0 },
10713 end: { line: 1, column: 34 }
10714 }
10715 },
10716
10717 'var private, protected, public, static': {
10718 type: 'VariableDeclaration',
10719 declarations: [{
10720 type: 'VariableDeclarator',
10721 id: {
10722 type: 'Identifier',
10723 name: 'private',
10724 range: [4, 11],
10725 loc: {
10726 start: { line: 1, column: 4 },
10727 end: { line: 1, column: 11 }
10728 }
10729 },
10730 init: null,
10731 range: [4, 11],
10732 loc: {
10733 start: { line: 1, column: 4 },
10734 end: { line: 1, column: 11 }
10735 }
10736 }, {
10737 type: 'VariableDeclarator',
10738 id: {
10739 type: 'Identifier',
10740 name: 'protected',
10741 range: [13, 22],
10742 loc: {
10743 start: { line: 1, column: 13 },
10744 end: { line: 1, column: 22 }
10745 }
10746 },
10747 init: null,
10748 range: [13, 22],
10749 loc: {
10750 start: { line: 1, column: 13 },
10751 end: { line: 1, column: 22 }
10752 }
10753 }, {
10754 type: 'VariableDeclarator',
10755 id: {
10756 type: 'Identifier',
10757 name: 'public',
10758 range: [24, 30],
10759 loc: {
10760 start: { line: 1, column: 24 },
10761 end: { line: 1, column: 30 }
10762 }
10763 },
10764 init: null,
10765 range: [24, 30],
10766 loc: {
10767 start: { line: 1, column: 24 },
10768 end: { line: 1, column: 30 }
10769 }
10770 }, {
10771 type: 'VariableDeclarator',
10772 id: {
10773 type: 'Identifier',
10774 name: 'static',
10775 range: [32, 38],
10776 loc: {
10777 start: { line: 1, column: 32 },
10778 end: { line: 1, column: 38 }
10779 }
10780 },
10781 init: null,
10782 range: [32, 38],
10783 loc: {
10784 start: { line: 1, column: 32 },
10785 end: { line: 1, column: 38 }
10786 }
10787 }],
10788 kind: 'var',
10789 range: [0, 38],
10790 loc: {
10791 start: { line: 1, column: 0 },
10792 end: { line: 1, column: 38 }
10793 }
10794 }
10795
10796 },
10797
10798 'Let Statement': {
10799
10800 'let x': {
10801 type: 'VariableDeclaration',
10802 declarations: [{
10803 type: 'VariableDeclarator',
10804 id: {
10805 type: 'Identifier',
10806 name: 'x',
10807 range: [4, 5],
10808 loc: {
10809 start: { line: 1, column: 4 },
10810 end: { line: 1, column: 5 }
10811 }
10812 },
10813 init: null,
10814 range: [4, 5],
10815 loc: {
10816 start: { line: 1, column: 4 },
10817 end: { line: 1, column: 5 }
10818 }
10819 }],
10820 kind: 'let',
10821 range: [0, 5],
10822 loc: {
10823 start: { line: 1, column: 0 },
10824 end: { line: 1, column: 5 }
10825 }
10826 },
10827
10828 '{ let x }': {
10829 type: 'BlockStatement',
10830 body: [{
10831 type: 'VariableDeclaration',
10832 declarations: [{
10833 type: 'VariableDeclarator',
10834 id: {
10835 type: 'Identifier',
10836 name: 'x',
10837 range: [6, 7],
10838 loc: {
10839 start: { line: 1, column: 6 },
10840 end: { line: 1, column: 7 }
10841 }
10842 },
10843 init: null,
10844 range: [6, 7],
10845 loc: {
10846 start: { line: 1, column: 6 },
10847 end: { line: 1, column: 7 }
10848 }
10849 }],
10850 kind: 'let',
10851 range: [2, 8],
10852 loc: {
10853 start: { line: 1, column: 2 },
10854 end: { line: 1, column: 8 }
10855 }
10856 }],
10857 range: [0, 9],
10858 loc: {
10859 start: { line: 1, column: 0 },
10860 end: { line: 1, column: 9 }
10861 }
10862 },
10863
10864 '{ let x = 42 }': {
10865 type: 'BlockStatement',
10866 body: [{
10867 type: 'VariableDeclaration',
10868 declarations: [{
10869 type: 'VariableDeclarator',
10870 id: {
10871 type: 'Identifier',
10872 name: 'x',
10873 range: [6, 7],
10874 loc: {
10875 start: { line: 1, column: 6 },
10876 end: { line: 1, column: 7 }
10877 }
10878 },
10879 init: {
10880 type: 'Literal',
10881 value: 42,
10882 raw: '42',
10883 range: [10, 12],
10884 loc: {
10885 start: { line: 1, column: 10 },
10886 end: { line: 1, column: 12 }
10887 }
10888 },
10889 range: [6, 12],
10890 loc: {
10891 start: { line: 1, column: 6 },
10892 end: { line: 1, column: 12 }
10893 }
10894 }],
10895 kind: 'let',
10896 range: [2, 13],
10897 loc: {
10898 start: { line: 1, column: 2 },
10899 end: { line: 1, column: 13 }
10900 }
10901 }],
10902 range: [0, 14],
10903 loc: {
10904 start: { line: 1, column: 0 },
10905 end: { line: 1, column: 14 }
10906 }
10907 },
10908
10909 '{ let x = 14, y = 3, z = 1977 }': {
10910 type: 'BlockStatement',
10911 body: [{
10912 type: 'VariableDeclaration',
10913 declarations: [{
10914 type: 'VariableDeclarator',
10915 id: {
10916 type: 'Identifier',
10917 name: 'x',
10918 range: [6, 7],
10919 loc: {
10920 start: { line: 1, column: 6 },
10921 end: { line: 1, column: 7 }
10922 }
10923 },
10924 init: {
10925 type: 'Literal',
10926 value: 14,
10927 raw: '14',
10928 range: [10, 12],
10929 loc: {
10930 start: { line: 1, column: 10 },
10931 end: { line: 1, column: 12 }
10932 }
10933 },
10934 range: [6, 12],
10935 loc: {
10936 start: { line: 1, column: 6 },
10937 end: { line: 1, column: 12 }
10938 }
10939 }, {
10940 type: 'VariableDeclarator',
10941 id: {
10942 type: 'Identifier',
10943 name: 'y',
10944 range: [14, 15],
10945 loc: {
10946 start: { line: 1, column: 14 },
10947 end: { line: 1, column: 15 }
10948 }
10949 },
10950 init: {
10951 type: 'Literal',
10952 value: 3,
10953 raw: '3',
10954 range: [18, 19],
10955 loc: {
10956 start: { line: 1, column: 18 },
10957 end: { line: 1, column: 19 }
10958 }
10959 },
10960 range: [14, 19],
10961 loc: {
10962 start: { line: 1, column: 14 },
10963 end: { line: 1, column: 19 }
10964 }
10965 }, {
10966 type: 'VariableDeclarator',
10967 id: {
10968 type: 'Identifier',
10969 name: 'z',
10970 range: [21, 22],
10971 loc: {
10972 start: { line: 1, column: 21 },
10973 end: { line: 1, column: 22 }
10974 }
10975 },
10976 init: {
10977 type: 'Literal',
10978 value: 1977,
10979 raw: '1977',
10980 range: [25, 29],
10981 loc: {
10982 start: { line: 1, column: 25 },
10983 end: { line: 1, column: 29 }
10984 }
10985 },
10986 range: [21, 29],
10987 loc: {
10988 start: { line: 1, column: 21 },
10989 end: { line: 1, column: 29 }
10990 }
10991 }],
10992 kind: 'let',
10993 range: [2, 30],
10994 loc: {
10995 start: { line: 1, column: 2 },
10996 end: { line: 1, column: 30 }
10997 }
10998 }],
10999 range: [0, 31],
11000 loc: {
11001 start: { line: 1, column: 0 },
11002 end: { line: 1, column: 31 }
11003 }
11004 }
11005
11006 },
11007
11008 'Const Statement': {
11009
11010 'const x = 42': {
11011 type: 'VariableDeclaration',
11012 declarations: [{
11013 type: 'VariableDeclarator',
11014 id: {
11015 type: 'Identifier',
11016 name: 'x',
11017 range: [6, 7],
11018 loc: {
11019 start: { line: 1, column: 6 },
11020 end: { line: 1, column: 7 }
11021 }
11022 },
11023 init: {
11024 type: 'Literal',
11025 value: 42,
11026 raw: '42',
11027 range: [10, 12],
11028 loc: {
11029 start: { line: 1, column: 10 },
11030 end: { line: 1, column: 12 }
11031 }
11032 },
11033 range: [6, 12],
11034 loc: {
11035 start: { line: 1, column: 6 },
11036 end: { line: 1, column: 12 }
11037 }
11038 }],
11039 kind: 'const',
11040 range: [0, 12],
11041 loc: {
11042 start: { line: 1, column: 0 },
11043 end: { line: 1, column: 12 }
11044 }
11045 },
11046
11047 '{ const x = 42 }': {
11048 type: 'BlockStatement',
11049 body: [{
11050 type: 'VariableDeclaration',
11051 declarations: [{
11052 type: 'VariableDeclarator',
11053 id: {
11054 type: 'Identifier',
11055 name: 'x',
11056 range: [8, 9],
11057 loc: {
11058 start: { line: 1, column: 8 },
11059 end: { line: 1, column: 9 }
11060 }
11061 },
11062 init: {
11063 type: 'Literal',
11064 value: 42,
11065 raw: '42',
11066 range: [12, 14],
11067 loc: {
11068 start: { line: 1, column: 12 },
11069 end: { line: 1, column: 14 }
11070 }
11071 },
11072 range: [8, 14],
11073 loc: {
11074 start: { line: 1, column: 8 },
11075 end: { line: 1, column: 14 }
11076 }
11077 }],
11078 kind: 'const',
11079 range: [2, 15],
11080 loc: {
11081 start: { line: 1, column: 2 },
11082 end: { line: 1, column: 15 }
11083 }
11084 }],
11085 range: [0, 16],
11086 loc: {
11087 start: { line: 1, column: 0 },
11088 end: { line: 1, column: 16 }
11089 }
11090 },
11091
11092 '{ const x = 14, y = 3, z = 1977 }': {
11093 type: 'BlockStatement',
11094 body: [{
11095 type: 'VariableDeclaration',
11096 declarations: [{
11097 type: 'VariableDeclarator',
11098 id: {
11099 type: 'Identifier',
11100 name: 'x',
11101 range: [8, 9],
11102 loc: {
11103 start: { line: 1, column: 8 },
11104 end: { line: 1, column: 9 }
11105 }
11106 },
11107 init: {
11108 type: 'Literal',
11109 value: 14,
11110 raw: '14',
11111 range: [12, 14],
11112 loc: {
11113 start: { line: 1, column: 12 },
11114 end: { line: 1, column: 14 }
11115 }
11116 },
11117 range: [8, 14],
11118 loc: {
11119 start: { line: 1, column: 8 },
11120 end: { line: 1, column: 14 }
11121 }
11122 }, {
11123 type: 'VariableDeclarator',
11124 id: {
11125 type: 'Identifier',
11126 name: 'y',
11127 range: [16, 17],
11128 loc: {
11129 start: { line: 1, column: 16 },
11130 end: { line: 1, column: 17 }
11131 }
11132 },
11133 init: {
11134 type: 'Literal',
11135 value: 3,
11136 raw: '3',
11137 range: [20, 21],
11138 loc: {
11139 start: { line: 1, column: 20 },
11140 end: { line: 1, column: 21 }
11141 }
11142 },
11143 range: [16, 21],
11144 loc: {
11145 start: { line: 1, column: 16 },
11146 end: { line: 1, column: 21 }
11147 }
11148 }, {
11149 type: 'VariableDeclarator',
11150 id: {
11151 type: 'Identifier',
11152 name: 'z',
11153 range: [23, 24],
11154 loc: {
11155 start: { line: 1, column: 23 },
11156 end: { line: 1, column: 24 }
11157 }
11158 },
11159 init: {
11160 type: 'Literal',
11161 value: 1977,
11162 raw: '1977',
11163 range: [27, 31],
11164 loc: {
11165 start: { line: 1, column: 27 },
11166 end: { line: 1, column: 31 }
11167 }
11168 },
11169 range: [23, 31],
11170 loc: {
11171 start: { line: 1, column: 23 },
11172 end: { line: 1, column: 31 }
11173 }
11174 }],
11175 kind: 'const',
11176 range: [2, 32],
11177 loc: {
11178 start: { line: 1, column: 2 },
11179 end: { line: 1, column: 32 }
11180 }
11181 }],
11182 range: [0, 33],
11183 loc: {
11184 start: { line: 1, column: 0 },
11185 end: { line: 1, column: 33 }
11186 }
11187 }
11188
11189 },
11190
11191 'Empty Statement': {
11192
11193 ';': {
11194 type: 'EmptyStatement',
11195 range: [0, 1],
11196 loc: {
11197 start: { line: 1, column: 0 },
11198 end: { line: 1, column: 1 }
11199 }
11200 }
11201
11202 },
11203
11204 'Expression Statement': {
11205
11206 'x': {
11207 type: 'ExpressionStatement',
11208 expression: {
11209 type: 'Identifier',
11210 name: 'x',
11211 range: [0, 1],
11212 loc: {
11213 start: { line: 1, column: 0 },
11214 end: { line: 1, column: 1 }
11215 }
11216 },
11217 range: [0, 1],
11218 loc: {
11219 start: { line: 1, column: 0 },
11220 end: { line: 1, column: 1 }
11221 }
11222 },
11223
11224 'x, y': {
11225 type: 'ExpressionStatement',
11226 expression: {
11227 type: 'SequenceExpression',
11228 expressions: [{
11229 type: 'Identifier',
11230 name: 'x',
11231 range: [0, 1],
11232 loc: {
11233 start: { line: 1, column: 0 },
11234 end: { line: 1, column: 1 }
11235 }
11236 }, {
11237 type: 'Identifier',
11238 name: 'y',
11239 range: [3, 4],
11240 loc: {
11241 start: { line: 1, column: 3 },
11242 end: { line: 1, column: 4 }
11243 }
11244 }],
11245 range: [0, 4],
11246 loc: {
11247 start: { line: 1, column: 0 },
11248 end: { line: 1, column: 4 }
11249 }
11250 },
11251 range: [0, 4],
11252 loc: {
11253 start: { line: 1, column: 0 },
11254 end: { line: 1, column: 4 }
11255 }
11256 },
11257
11258 '\\u0061': {
11259 type: 'ExpressionStatement',
11260 expression: {
11261 type: 'Identifier',
11262 name: 'a',
11263 range: [0, 6],
11264 loc: {
11265 start: { line: 1, column: 0 },
11266 end: { line: 1, column: 6 }
11267 }
11268 },
11269 range: [0, 6],
11270 loc: {
11271 start: { line: 1, column: 0 },
11272 end: { line: 1, column: 6 }
11273 }
11274 },
11275
11276 'a\\u0061': {
11277 type: 'ExpressionStatement',
11278 expression: {
11279 type: 'Identifier',
11280 name: 'aa',
11281 range: [0, 7],
11282 loc: {
11283 start: { line: 1, column: 0 },
11284 end: { line: 1, column: 7 }
11285 }
11286 },
11287 range: [0, 7],
11288 loc: {
11289 start: { line: 1, column: 0 },
11290 end: { line: 1, column: 7 }
11291 }
11292 },
11293
11294 '\\u0061a': {
11295 type: 'ExpressionStatement',
11296 expression: {
11297 type: 'Identifier',
11298 name: 'aa',
11299 range: [0, 7],
11300 loc: {
11301 start: { line: 1, column: 0 },
11302 end: { line: 1, column: 7 }
11303 }
11304 },
11305 range: [0, 7],
11306 loc: {
11307 start: { line: 1, column: 0 },
11308 end: { line: 1, column: 7 }
11309 }
11310 },
11311
11312 '\\u0061a ': {
11313 type: 'ExpressionStatement',
11314 expression: {
11315 type: 'Identifier',
11316 name: 'aa',
11317 range: [0, 7],
11318 loc: {
11319 start: { line: 1, column: 0 },
11320 end: { line: 1, column: 7 }
11321 }
11322 },
11323 range: [0, 8],
11324 loc: {
11325 start: { line: 1, column: 0 },
11326 end: { line: 1, column: 8 }
11327 }
11328 }
11329 },
11330
11331 'If Statement': {
11332
11333 'if (morning) goodMorning()': {
11334 type: 'IfStatement',
11335 test: {
11336 type: 'Identifier',
11337 name: 'morning',
11338 range: [4, 11],
11339 loc: {
11340 start: { line: 1, column: 4 },
11341 end: { line: 1, column: 11 }
11342 }
11343 },
11344 consequent: {
11345 type: 'ExpressionStatement',
11346 expression: {
11347 type: 'CallExpression',
11348 callee: {
11349 type: 'Identifier',
11350 name: 'goodMorning',
11351 range: [13, 24],
11352 loc: {
11353 start: { line: 1, column: 13 },
11354 end: { line: 1, column: 24 }
11355 }
11356 },
11357 'arguments': [],
11358 range: [13, 26],
11359 loc: {
11360 start: { line: 1, column: 13 },
11361 end: { line: 1, column: 26 }
11362 }
11363 },
11364 range: [13, 26],
11365 loc: {
11366 start: { line: 1, column: 13 },
11367 end: { line: 1, column: 26 }
11368 }
11369 },
11370 alternate: null,
11371 range: [0, 26],
11372 loc: {
11373 start: { line: 1, column: 0 },
11374 end: { line: 1, column: 26 }
11375 }
11376 },
11377
11378 'if (morning) (function(){})': {
11379 type: 'IfStatement',
11380 test: {
11381 type: 'Identifier',
11382 name: 'morning',
11383 range: [4, 11],
11384 loc: {
11385 start: { line: 1, column: 4 },
11386 end: { line: 1, column: 11 }
11387 }
11388 },
11389 consequent: {
11390 type: 'ExpressionStatement',
11391 expression: {
11392 type: 'FunctionExpression',
11393 id: null,
11394 params: [],
11395 defaults: [],
11396 body: {
11397 type: 'BlockStatement',
11398 body: [],
11399 range: [24, 26],
11400 loc: {
11401 start: { line: 1, column: 24 },
11402 end: { line: 1, column: 26 }
11403 }
11404 },
11405 rest: null,
11406 generator: false,
11407 expression: false,
11408 range: [14, 26],
11409 loc: {
11410 start: { line: 1, column: 14 },
11411 end: { line: 1, column: 26 }
11412 }
11413 },
11414 range: [13, 27],
11415 loc: {
11416 start: { line: 1, column: 13 },
11417 end: { line: 1, column: 27 }
11418 }
11419 },
11420 alternate: null,
11421 range: [0, 27],
11422 loc: {
11423 start: { line: 1, column: 0 },
11424 end: { line: 1, column: 27 }
11425 }
11426 },
11427
11428 'if (morning) var x = 0;': {
11429 type: 'IfStatement',
11430 test: {
11431 type: 'Identifier',
11432 name: 'morning',
11433 range: [4, 11],
11434 loc: {
11435 start: { line: 1, column: 4 },
11436 end: { line: 1, column: 11 }
11437 }
11438 },
11439 consequent: {
11440 type: 'VariableDeclaration',
11441 declarations: [{
11442 type: 'VariableDeclarator',
11443 id: {
11444 type: 'Identifier',
11445 name: 'x',
11446 range: [17, 18],
11447 loc: {
11448 start: { line: 1, column: 17 },
11449 end: { line: 1, column: 18 }
11450 }
11451 },
11452 init: {
11453 type: 'Literal',
11454 value: 0,
11455 raw: '0',
11456 range: [21, 22],
11457 loc: {
11458 start: { line: 1, column: 21 },
11459 end: { line: 1, column: 22 }
11460 }
11461 },
11462 range: [17, 22],
11463 loc: {
11464 start: { line: 1, column: 17 },
11465 end: { line: 1, column: 22 }
11466 }
11467 }],
11468 kind: 'var',
11469 range: [13, 23],
11470 loc: {
11471 start: { line: 1, column: 13 },
11472 end: { line: 1, column: 23 }
11473 }
11474 },
11475 alternate: null,
11476 range: [0, 23],
11477 loc: {
11478 start: { line: 1, column: 0 },
11479 end: { line: 1, column: 23 }
11480 }
11481 },
11482
11483 'if (morning) function a(){}': {
11484 type: 'IfStatement',
11485 test: {
11486 type: 'Identifier',
11487 name: 'morning',
11488 range: [4, 11],
11489 loc: {
11490 start: { line: 1, column: 4 },
11491 end: { line: 1, column: 11 }
11492 }
11493 },
11494 consequent: {
11495 type: 'FunctionDeclaration',
11496 id: {
11497 type: 'Identifier',
11498 name: 'a',
11499 range: [22, 23],
11500 loc: {
11501 start: { line: 1, column: 22 },
11502 end: { line: 1, column: 23 }
11503 }
11504 },
11505 params: [],
11506 defaults: [],
11507 body: {
11508 type: 'BlockStatement',
11509 body: [],
11510 range: [25, 27],
11511 loc: {
11512 start: { line: 1, column: 25 },
11513 end: { line: 1, column: 27 }
11514 }
11515 },
11516 rest: null,
11517 generator: false,
11518 expression: false,
11519 range: [13, 27],
11520 loc: {
11521 start: { line: 1, column: 13 },
11522 end: { line: 1, column: 27 }
11523 }
11524 },
11525 alternate: null,
11526 range: [0, 27],
11527 loc: {
11528 start: { line: 1, column: 0 },
11529 end: { line: 1, column: 27 }
11530 }
11531 },
11532
11533 'if (morning) goodMorning(); else goodDay()': {
11534 type: 'IfStatement',
11535 test: {
11536 type: 'Identifier',
11537 name: 'morning',
11538 range: [4, 11],
11539 loc: {
11540 start: { line: 1, column: 4 },
11541 end: { line: 1, column: 11 }
11542 }
11543 },
11544 consequent: {
11545 type: 'ExpressionStatement',
11546 expression: {
11547 type: 'CallExpression',
11548 callee: {
11549 type: 'Identifier',
11550 name: 'goodMorning',
11551 range: [13, 24],
11552 loc: {
11553 start: { line: 1, column: 13 },
11554 end: { line: 1, column: 24 }
11555 }
11556 },
11557 'arguments': [],
11558 range: [13, 26],
11559 loc: {
11560 start: { line: 1, column: 13 },
11561 end: { line: 1, column: 26 }
11562 }
11563 },
11564 range: [13, 27],
11565 loc: {
11566 start: { line: 1, column: 13 },
11567 end: { line: 1, column: 27 }
11568 }
11569 },
11570 alternate: {
11571 type: 'ExpressionStatement',
11572 expression: {
11573 type: 'CallExpression',
11574 callee: {
11575 type: 'Identifier',
11576 name: 'goodDay',
11577 range: [33, 40],
11578 loc: {
11579 start: { line: 1, column: 33 },
11580 end: { line: 1, column: 40 }
11581 }
11582 },
11583 'arguments': [],
11584 range: [33, 42],
11585 loc: {
11586 start: { line: 1, column: 33 },
11587 end: { line: 1, column: 42 }
11588 }
11589 },
11590 range: [33, 42],
11591 loc: {
11592 start: { line: 1, column: 33 },
11593 end: { line: 1, column: 42 }
11594 }
11595 },
11596 range: [0, 42],
11597 loc: {
11598 start: { line: 1, column: 0 },
11599 end: { line: 1, column: 42 }
11600 }
11601 }
11602
11603 },
11604
11605 'Iteration Statements': {
11606
11607 'do keep(); while (true)': {
11608 type: 'DoWhileStatement',
11609 body: {
11610 type: 'ExpressionStatement',
11611 expression: {
11612 type: 'CallExpression',
11613 callee: {
11614 type: 'Identifier',
11615 name: 'keep',
11616 range: [3, 7],
11617 loc: {
11618 start: { line: 1, column: 3 },
11619 end: { line: 1, column: 7 }
11620 }
11621 },
11622 'arguments': [],
11623 range: [3, 9],
11624 loc: {
11625 start: { line: 1, column: 3 },
11626 end: { line: 1, column: 9 }
11627 }
11628 },
11629 range: [3, 10],
11630 loc: {
11631 start: { line: 1, column: 3 },
11632 end: { line: 1, column: 10 }
11633 }
11634 },
11635 test: {
11636 type: 'Literal',
11637 value: true,
11638 raw: 'true',
11639 range: [18, 22],
11640 loc: {
11641 start: { line: 1, column: 18 },
11642 end: { line: 1, column: 22 }
11643 }
11644 },
11645 range: [0, 23],
11646 loc: {
11647 start: { line: 1, column: 0 },
11648 end: { line: 1, column: 23 }
11649 }
11650 },
11651
11652 'do keep(); while (true);': {
11653 type: 'DoWhileStatement',
11654 body: {
11655 type: 'ExpressionStatement',
11656 expression: {
11657 type: 'CallExpression',
11658 callee: {
11659 type: 'Identifier',
11660 name: 'keep',
11661 range: [3, 7],
11662 loc: {
11663 start: { line: 1, column: 3 },
11664 end: { line: 1, column: 7 }
11665 }
11666 },
11667 'arguments': [],
11668 range: [3, 9],
11669 loc: {
11670 start: { line: 1, column: 3 },
11671 end: { line: 1, column: 9 }
11672 }
11673 },
11674 range: [3, 10],
11675 loc: {
11676 start: { line: 1, column: 3 },
11677 end: { line: 1, column: 10 }
11678 }
11679 },
11680 test: {
11681 type: 'Literal',
11682 value: true,
11683 raw: 'true',
11684 range: [18, 22],
11685 loc: {
11686 start: { line: 1, column: 18 },
11687 end: { line: 1, column: 22 }
11688 }
11689 },
11690 range: [0, 24],
11691 loc: {
11692 start: { line: 1, column: 0 },
11693 end: { line: 1, column: 24 }
11694 }
11695 },
11696
11697 'do { x++; y--; } while (x < 10)': {
11698 type: 'DoWhileStatement',
11699 body: {
11700 type: 'BlockStatement',
11701 body: [{
11702 type: 'ExpressionStatement',
11703 expression: {
11704 type: 'UpdateExpression',
11705 operator: '++',
11706 argument: {
11707 type: 'Identifier',
11708 name: 'x',
11709 range: [5, 6],
11710 loc: {
11711 start: { line: 1, column: 5 },
11712 end: { line: 1, column: 6 }
11713 }
11714 },
11715 prefix: false,
11716 range: [5, 8],
11717 loc: {
11718 start: { line: 1, column: 5 },
11719 end: { line: 1, column: 8 }
11720 }
11721 },
11722 range: [5, 9],
11723 loc: {
11724 start: { line: 1, column: 5 },
11725 end: { line: 1, column: 9 }
11726 }
11727 }, {
11728 type: 'ExpressionStatement',
11729 expression: {
11730 type: 'UpdateExpression',
11731 operator: '--',
11732 argument: {
11733 type: 'Identifier',
11734 name: 'y',
11735 range: [10, 11],
11736 loc: {
11737 start: { line: 1, column: 10 },
11738 end: { line: 1, column: 11 }
11739 }
11740 },
11741 prefix: false,
11742 range: [10, 13],
11743 loc: {
11744 start: { line: 1, column: 10 },
11745 end: { line: 1, column: 13 }
11746 }
11747 },
11748 range: [10, 14],
11749 loc: {
11750 start: { line: 1, column: 10 },
11751 end: { line: 1, column: 14 }
11752 }
11753 }],
11754 range: [3, 16],
11755 loc: {
11756 start: { line: 1, column: 3 },
11757 end: { line: 1, column: 16 }
11758 }
11759 },
11760 test: {
11761 type: 'BinaryExpression',
11762 operator: '<',
11763 left: {
11764 type: 'Identifier',
11765 name: 'x',
11766 range: [24, 25],
11767 loc: {
11768 start: { line: 1, column: 24 },
11769 end: { line: 1, column: 25 }
11770 }
11771 },
11772 right: {
11773 type: 'Literal',
11774 value: 10,
11775 raw: '10',
11776 range: [28, 30],
11777 loc: {
11778 start: { line: 1, column: 28 },
11779 end: { line: 1, column: 30 }
11780 }
11781 },
11782 range: [24, 30],
11783 loc: {
11784 start: { line: 1, column: 24 },
11785 end: { line: 1, column: 30 }
11786 }
11787 },
11788 range: [0, 31],
11789 loc: {
11790 start: { line: 1, column: 0 },
11791 end: { line: 1, column: 31 }
11792 }
11793 },
11794
11795 '{ do { } while (false) false }': {
11796 type: 'BlockStatement',
11797 body: [{
11798 type: 'DoWhileStatement',
11799 body: {
11800 type: 'BlockStatement',
11801 body: [],
11802 range: [5, 8],
11803 loc: {
11804 start: { line: 1, column: 5 },
11805 end: { line: 1, column: 8 }
11806 }
11807 },
11808 test: {
11809 type: 'Literal',
11810 value: false,
11811 raw: 'false',
11812 range: [16, 21],
11813 loc: {
11814 start: { line: 1, column: 16 },
11815 end: { line: 1, column: 21 }
11816 }
11817 },
11818 range: [2, 22],
11819 loc: {
11820 start: { line: 1, column: 2 },
11821 end: { line: 1, column: 22 }
11822 }
11823 }, {
11824 type: 'ExpressionStatement',
11825 expression: {
11826 type: 'Literal',
11827 value: false,
11828 raw: 'false',
11829 range: [23, 28],
11830 loc: {
11831 start: { line: 1, column: 23 },
11832 end: { line: 1, column: 28 }
11833 }
11834 },
11835 range: [23, 29],
11836 loc: {
11837 start: { line: 1, column: 23 },
11838 end: { line: 1, column: 29 }
11839 }
11840 }],
11841 range: [0, 30],
11842 loc: {
11843 start: { line: 1, column: 0 },
11844 end: { line: 1, column: 30 }
11845 }
11846 },
11847
11848 'while (true) doSomething()': {
11849 type: 'WhileStatement',
11850 test: {
11851 type: 'Literal',
11852 value: true,
11853 raw: 'true',
11854 range: [7, 11],
11855 loc: {
11856 start: { line: 1, column: 7 },
11857 end: { line: 1, column: 11 }
11858 }
11859 },
11860 body: {
11861 type: 'ExpressionStatement',
11862 expression: {
11863 type: 'CallExpression',
11864 callee: {
11865 type: 'Identifier',
11866 name: 'doSomething',
11867 range: [13, 24],
11868 loc: {
11869 start: { line: 1, column: 13 },
11870 end: { line: 1, column: 24 }
11871 }
11872 },
11873 'arguments': [],
11874 range: [13, 26],
11875 loc: {
11876 start: { line: 1, column: 13 },
11877 end: { line: 1, column: 26 }
11878 }
11879 },
11880 range: [13, 26],
11881 loc: {
11882 start: { line: 1, column: 13 },
11883 end: { line: 1, column: 26 }
11884 }
11885 },
11886 range: [0, 26],
11887 loc: {
11888 start: { line: 1, column: 0 },
11889 end: { line: 1, column: 26 }
11890 }
11891 },
11892
11893 'while (x < 10) { x++; y--; }': {
11894 type: 'WhileStatement',
11895 test: {
11896 type: 'BinaryExpression',
11897 operator: '<',
11898 left: {
11899 type: 'Identifier',
11900 name: 'x',
11901 range: [7, 8],
11902 loc: {
11903 start: { line: 1, column: 7 },
11904 end: { line: 1, column: 8 }
11905 }
11906 },
11907 right: {
11908 type: 'Literal',
11909 value: 10,
11910 raw: '10',
11911 range: [11, 13],
11912 loc: {
11913 start: { line: 1, column: 11 },
11914 end: { line: 1, column: 13 }
11915 }
11916 },
11917 range: [7, 13],
11918 loc: {
11919 start: { line: 1, column: 7 },
11920 end: { line: 1, column: 13 }
11921 }
11922 },
11923 body: {
11924 type: 'BlockStatement',
11925 body: [{
11926 type: 'ExpressionStatement',
11927 expression: {
11928 type: 'UpdateExpression',
11929 operator: '++',
11930 argument: {
11931 type: 'Identifier',
11932 name: 'x',
11933 range: [17, 18],
11934 loc: {
11935 start: { line: 1, column: 17 },
11936 end: { line: 1, column: 18 }
11937 }
11938 },
11939 prefix: false,
11940 range: [17, 20],
11941 loc: {
11942 start: { line: 1, column: 17 },
11943 end: { line: 1, column: 20 }
11944 }
11945 },
11946 range: [17, 21],
11947 loc: {
11948 start: { line: 1, column: 17 },
11949 end: { line: 1, column: 21 }
11950 }
11951 }, {
11952 type: 'ExpressionStatement',
11953 expression: {
11954 type: 'UpdateExpression',
11955 operator: '--',
11956 argument: {
11957 type: 'Identifier',
11958 name: 'y',
11959 range: [22, 23],
11960 loc: {
11961 start: { line: 1, column: 22 },
11962 end: { line: 1, column: 23 }
11963 }
11964 },
11965 prefix: false,
11966 range: [22, 25],
11967 loc: {
11968 start: { line: 1, column: 22 },
11969 end: { line: 1, column: 25 }
11970 }
11971 },
11972 range: [22, 26],
11973 loc: {
11974 start: { line: 1, column: 22 },
11975 end: { line: 1, column: 26 }
11976 }
11977 }],
11978 range: [15, 28],
11979 loc: {
11980 start: { line: 1, column: 15 },
11981 end: { line: 1, column: 28 }
11982 }
11983 },
11984 range: [0, 28],
11985 loc: {
11986 start: { line: 1, column: 0 },
11987 end: { line: 1, column: 28 }
11988 }
11989 },
11990
11991 'for(;;);': {
11992 type: 'ForStatement',
11993 init: null,
11994 test: null,
11995 update: null,
11996 body: {
11997 type: 'EmptyStatement',
11998 range: [7, 8],
11999 loc: {
12000 start: { line: 1, column: 7 },
12001 end: { line: 1, column: 8 }
12002 }
12003 },
12004 range: [0, 8],
12005 loc: {
12006 start: { line: 1, column: 0 },
12007 end: { line: 1, column: 8 }
12008 }
12009 },
12010
12011 'for(;;){}': {
12012 type: 'ForStatement',
12013 init: null,
12014 test: null,
12015 update: null,
12016 body: {
12017 type: 'BlockStatement',
12018 body: [],
12019 range: [7, 9],
12020 loc: {
12021 start: { line: 1, column: 7 },
12022 end: { line: 1, column: 9 }
12023 }
12024 },
12025 range: [0, 9],
12026 loc: {
12027 start: { line: 1, column: 0 },
12028 end: { line: 1, column: 9 }
12029 }
12030 },
12031
12032 'for(x = 0;;);': {
12033 type: 'ForStatement',
12034 init: {
12035 type: 'AssignmentExpression',
12036 operator: '=',
12037 left: {
12038 type: 'Identifier',
12039 name: 'x',
12040 range: [4, 5],
12041 loc: {
12042 start: { line: 1, column: 4 },
12043 end: { line: 1, column: 5 }
12044 }
12045 },
12046 right: {
12047 type: 'Literal',
12048 value: 0,
12049 raw: '0',
12050 range: [8, 9],
12051 loc: {
12052 start: { line: 1, column: 8 },
12053 end: { line: 1, column: 9 }
12054 }
12055 },
12056 range: [4, 9],
12057 loc: {
12058 start: { line: 1, column: 4 },
12059 end: { line: 1, column: 9 }
12060 }
12061 },
12062 test: null,
12063 update: null,
12064 body: {
12065 type: 'EmptyStatement',
12066 range: [12, 13],
12067 loc: {
12068 start: { line: 1, column: 12 },
12069 end: { line: 1, column: 13 }
12070 }
12071 },
12072 range: [0, 13],
12073 loc: {
12074 start: { line: 1, column: 0 },
12075 end: { line: 1, column: 13 }
12076 }
12077 },
12078
12079 'for(var x = 0;;);': {
12080 type: 'ForStatement',
12081 init: {
12082 type: 'VariableDeclaration',
12083 declarations: [{
12084 type: 'VariableDeclarator',
12085 id: {
12086 type: 'Identifier',
12087 name: 'x',
12088 range: [8, 9],
12089 loc: {
12090 start: { line: 1, column: 8 },
12091 end: { line: 1, column: 9 }
12092 }
12093 },
12094 init: {
12095 type: 'Literal',
12096 value: 0,
12097 raw: '0',
12098 range: [12, 13],
12099 loc: {
12100 start: { line: 1, column: 12 },
12101 end: { line: 1, column: 13 }
12102 }
12103 },
12104 range: [8, 13],
12105 loc: {
12106 start: { line: 1, column: 8 },
12107 end: { line: 1, column: 13 }
12108 }
12109 }],
12110 kind: 'var',
12111 range: [4, 13],
12112 loc: {
12113 start: { line: 1, column: 4 },
12114 end: { line: 1, column: 13 }
12115 }
12116 },
12117 test: null,
12118 update: null,
12119 body: {
12120 type: 'EmptyStatement',
12121 range: [16, 17],
12122 loc: {
12123 start: { line: 1, column: 16 },
12124 end: { line: 1, column: 17 }
12125 }
12126 },
12127 range: [0, 17],
12128 loc: {
12129 start: { line: 1, column: 0 },
12130 end: { line: 1, column: 17 }
12131 }
12132 },
12133
12134 'for(let x = 0;;);': {
12135 type: 'ForStatement',
12136 init: {
12137 type: 'VariableDeclaration',
12138 declarations: [{
12139 type: 'VariableDeclarator',
12140 id: {
12141 type: 'Identifier',
12142 name: 'x',
12143 range: [8, 9],
12144 loc: {
12145 start: { line: 1, column: 8 },
12146 end: { line: 1, column: 9 }
12147 }
12148 },
12149 init: {
12150 type: 'Literal',
12151 value: 0,
12152 raw: '0',
12153 range: [12, 13],
12154 loc: {
12155 start: { line: 1, column: 12 },
12156 end: { line: 1, column: 13 }
12157 }
12158 },
12159 range: [8, 13],
12160 loc: {
12161 start: { line: 1, column: 8 },
12162 end: { line: 1, column: 13 }
12163 }
12164 }],
12165 kind: 'let',
12166 range: [4, 13],
12167 loc: {
12168 start: { line: 1, column: 4 },
12169 end: { line: 1, column: 13 }
12170 }
12171 },
12172 test: null,
12173 update: null,
12174 body: {
12175 type: 'EmptyStatement',
12176 range: [16, 17],
12177 loc: {
12178 start: { line: 1, column: 16 },
12179 end: { line: 1, column: 17 }
12180 }
12181 },
12182 range: [0, 17],
12183 loc: {
12184 start: { line: 1, column: 0 },
12185 end: { line: 1, column: 17 }
12186 }
12187 },
12188
12189 'for(var x = 0, y = 1;;);': {
12190 type: 'ForStatement',
12191 init: {
12192 type: 'VariableDeclaration',
12193 declarations: [{
12194 type: 'VariableDeclarator',
12195 id: {
12196 type: 'Identifier',
12197 name: 'x',
12198 range: [8, 9],
12199 loc: {
12200 start: { line: 1, column: 8 },
12201 end: { line: 1, column: 9 }
12202 }
12203 },
12204 init: {
12205 type: 'Literal',
12206 value: 0,
12207 raw: '0',
12208 range: [12, 13],
12209 loc: {
12210 start: { line: 1, column: 12 },
12211 end: { line: 1, column: 13 }
12212 }
12213 },
12214 range: [8, 13],
12215 loc: {
12216 start: { line: 1, column: 8 },
12217 end: { line: 1, column: 13 }
12218 }
12219 }, {
12220 type: 'VariableDeclarator',
12221 id: {
12222 type: 'Identifier',
12223 name: 'y',
12224 range: [15, 16],
12225 loc: {
12226 start: { line: 1, column: 15 },
12227 end: { line: 1, column: 16 }
12228 }
12229 },
12230 init: {
12231 type: 'Literal',
12232 value: 1,
12233 raw: '1',
12234 range: [19, 20],
12235 loc: {
12236 start: { line: 1, column: 19 },
12237 end: { line: 1, column: 20 }
12238 }
12239 },
12240 range: [15, 20],
12241 loc: {
12242 start: { line: 1, column: 15 },
12243 end: { line: 1, column: 20 }
12244 }
12245 }],
12246 kind: 'var',
12247 range: [4, 20],
12248 loc: {
12249 start: { line: 1, column: 4 },
12250 end: { line: 1, column: 20 }
12251 }
12252 },
12253 test: null,
12254 update: null,
12255 body: {
12256 type: 'EmptyStatement',
12257 range: [23, 24],
12258 loc: {
12259 start: { line: 1, column: 23 },
12260 end: { line: 1, column: 24 }
12261 }
12262 },
12263 range: [0, 24],
12264 loc: {
12265 start: { line: 1, column: 0 },
12266 end: { line: 1, column: 24 }
12267 }
12268 },
12269
12270 'for(x = 0; x < 42;);': {
12271 type: 'ForStatement',
12272 init: {
12273 type: 'AssignmentExpression',
12274 operator: '=',
12275 left: {
12276 type: 'Identifier',
12277 name: 'x',
12278 range: [4, 5],
12279 loc: {
12280 start: { line: 1, column: 4 },
12281 end: { line: 1, column: 5 }
12282 }
12283 },
12284 right: {
12285 type: 'Literal',
12286 value: 0,
12287 raw: '0',
12288 range: [8, 9],
12289 loc: {
12290 start: { line: 1, column: 8 },
12291 end: { line: 1, column: 9 }
12292 }
12293 },
12294 range: [4, 9],
12295 loc: {
12296 start: { line: 1, column: 4 },
12297 end: { line: 1, column: 9 }
12298 }
12299 },
12300 test: {
12301 type: 'BinaryExpression',
12302 operator: '<',
12303 left: {
12304 type: 'Identifier',
12305 name: 'x',
12306 range: [11, 12],
12307 loc: {
12308 start: { line: 1, column: 11 },
12309 end: { line: 1, column: 12 }
12310 }
12311 },
12312 right: {
12313 type: 'Literal',
12314 value: 42,
12315 raw: '42',
12316 range: [15, 17],
12317 loc: {
12318 start: { line: 1, column: 15 },
12319 end: { line: 1, column: 17 }
12320 }
12321 },
12322 range: [11, 17],
12323 loc: {
12324 start: { line: 1, column: 11 },
12325 end: { line: 1, column: 17 }
12326 }
12327 },
12328 update: null,
12329 body: {
12330 type: 'EmptyStatement',
12331 range: [19, 20],
12332 loc: {
12333 start: { line: 1, column: 19 },
12334 end: { line: 1, column: 20 }
12335 }
12336 },
12337 range: [0, 20],
12338 loc: {
12339 start: { line: 1, column: 0 },
12340 end: { line: 1, column: 20 }
12341 }
12342 },
12343
12344 'for(x = 0; x < 42; x++);': {
12345 type: 'ForStatement',
12346 init: {
12347 type: 'AssignmentExpression',
12348 operator: '=',
12349 left: {
12350 type: 'Identifier',
12351 name: 'x',
12352 range: [4, 5],
12353 loc: {
12354 start: { line: 1, column: 4 },
12355 end: { line: 1, column: 5 }
12356 }
12357 },
12358 right: {
12359 type: 'Literal',
12360 value: 0,
12361 raw: '0',
12362 range: [8, 9],
12363 loc: {
12364 start: { line: 1, column: 8 },
12365 end: { line: 1, column: 9 }
12366 }
12367 },
12368 range: [4, 9],
12369 loc: {
12370 start: { line: 1, column: 4 },
12371 end: { line: 1, column: 9 }
12372 }
12373 },
12374 test: {
12375 type: 'BinaryExpression',
12376 operator: '<',
12377 left: {
12378 type: 'Identifier',
12379 name: 'x',
12380 range: [11, 12],
12381 loc: {
12382 start: { line: 1, column: 11 },
12383 end: { line: 1, column: 12 }
12384 }
12385 },
12386 right: {
12387 type: 'Literal',
12388 value: 42,
12389 raw: '42',
12390 range: [15, 17],
12391 loc: {
12392 start: { line: 1, column: 15 },
12393 end: { line: 1, column: 17 }
12394 }
12395 },
12396 range: [11, 17],
12397 loc: {
12398 start: { line: 1, column: 11 },
12399 end: { line: 1, column: 17 }
12400 }
12401 },
12402 update: {
12403 type: 'UpdateExpression',
12404 operator: '++',
12405 argument: {
12406 type: 'Identifier',
12407 name: 'x',
12408 range: [19, 20],
12409 loc: {
12410 start: { line: 1, column: 19 },
12411 end: { line: 1, column: 20 }
12412 }
12413 },
12414 prefix: false,
12415 range: [19, 22],
12416 loc: {
12417 start: { line: 1, column: 19 },
12418 end: { line: 1, column: 22 }
12419 }
12420 },
12421 body: {
12422 type: 'EmptyStatement',
12423 range: [23, 24],
12424 loc: {
12425 start: { line: 1, column: 23 },
12426 end: { line: 1, column: 24 }
12427 }
12428 },
12429 range: [0, 24],
12430 loc: {
12431 start: { line: 1, column: 0 },
12432 end: { line: 1, column: 24 }
12433 }
12434 },
12435
12436 'for(x = 0; x < 42; x++) process(x);': {
12437 type: 'ForStatement',
12438 init: {
12439 type: 'AssignmentExpression',
12440 operator: '=',
12441 left: {
12442 type: 'Identifier',
12443 name: 'x',
12444 range: [4, 5],
12445 loc: {
12446 start: { line: 1, column: 4 },
12447 end: { line: 1, column: 5 }
12448 }
12449 },
12450 right: {
12451 type: 'Literal',
12452 value: 0,
12453 raw: '0',
12454 range: [8, 9],
12455 loc: {
12456 start: { line: 1, column: 8 },
12457 end: { line: 1, column: 9 }
12458 }
12459 },
12460 range: [4, 9],
12461 loc: {
12462 start: { line: 1, column: 4 },
12463 end: { line: 1, column: 9 }
12464 }
12465 },
12466 test: {
12467 type: 'BinaryExpression',
12468 operator: '<',
12469 left: {
12470 type: 'Identifier',
12471 name: 'x',
12472 range: [11, 12],
12473 loc: {
12474 start: { line: 1, column: 11 },
12475 end: { line: 1, column: 12 }
12476 }
12477 },
12478 right: {
12479 type: 'Literal',
12480 value: 42,
12481 raw: '42',
12482 range: [15, 17],
12483 loc: {
12484 start: { line: 1, column: 15 },
12485 end: { line: 1, column: 17 }
12486 }
12487 },
12488 range: [11, 17],
12489 loc: {
12490 start: { line: 1, column: 11 },
12491 end: { line: 1, column: 17 }
12492 }
12493 },
12494 update: {
12495 type: 'UpdateExpression',
12496 operator: '++',
12497 argument: {
12498 type: 'Identifier',
12499 name: 'x',
12500 range: [19, 20],
12501 loc: {
12502 start: { line: 1, column: 19 },
12503 end: { line: 1, column: 20 }
12504 }
12505 },
12506 prefix: false,
12507 range: [19, 22],
12508 loc: {
12509 start: { line: 1, column: 19 },
12510 end: { line: 1, column: 22 }
12511 }
12512 },
12513 body: {
12514 type: 'ExpressionStatement',
12515 expression: {
12516 type: 'CallExpression',
12517 callee: {
12518 type: 'Identifier',
12519 name: 'process',
12520 range: [24, 31],
12521 loc: {
12522 start: { line: 1, column: 24 },
12523 end: { line: 1, column: 31 }
12524 }
12525 },
12526 'arguments': [{
12527 type: 'Identifier',
12528 name: 'x',
12529 range: [32, 33],
12530 loc: {
12531 start: { line: 1, column: 32 },
12532 end: { line: 1, column: 33 }
12533 }
12534 }],
12535 range: [24, 34],
12536 loc: {
12537 start: { line: 1, column: 24 },
12538 end: { line: 1, column: 34 }
12539 }
12540 },
12541 range: [24, 35],
12542 loc: {
12543 start: { line: 1, column: 24 },
12544 end: { line: 1, column: 35 }
12545 }
12546 },
12547 range: [0, 35],
12548 loc: {
12549 start: { line: 1, column: 0 },
12550 end: { line: 1, column: 35 }
12551 }
12552 },
12553
12554 'for(x in list) process(x);': {
12555 type: 'ForInStatement',
12556 left: {
12557 type: 'Identifier',
12558 name: 'x',
12559 range: [4, 5],
12560 loc: {
12561 start: { line: 1, column: 4 },
12562 end: { line: 1, column: 5 }
12563 }
12564 },
12565 right: {
12566 type: 'Identifier',
12567 name: 'list',
12568 range: [9, 13],
12569 loc: {
12570 start: { line: 1, column: 9 },
12571 end: { line: 1, column: 13 }
12572 }
12573 },
12574 body: {
12575 type: 'ExpressionStatement',
12576 expression: {
12577 type: 'CallExpression',
12578 callee: {
12579 type: 'Identifier',
12580 name: 'process',
12581 range: [15, 22],
12582 loc: {
12583 start: { line: 1, column: 15 },
12584 end: { line: 1, column: 22 }
12585 }
12586 },
12587 'arguments': [{
12588 type: 'Identifier',
12589 name: 'x',
12590 range: [23, 24],
12591 loc: {
12592 start: { line: 1, column: 23 },
12593 end: { line: 1, column: 24 }
12594 }
12595 }],
12596 range: [15, 25],
12597 loc: {
12598 start: { line: 1, column: 15 },
12599 end: { line: 1, column: 25 }
12600 }
12601 },
12602 range: [15, 26],
12603 loc: {
12604 start: { line: 1, column: 15 },
12605 end: { line: 1, column: 26 }
12606 }
12607 },
12608 each: false,
12609 range: [0, 26],
12610 loc: {
12611 start: { line: 1, column: 0 },
12612 end: { line: 1, column: 26 }
12613 }
12614 },
12615
12616 'for (var x in list) process(x);': {
12617 type: 'ForInStatement',
12618 left: {
12619 type: 'VariableDeclaration',
12620 declarations: [{
12621 type: 'VariableDeclarator',
12622 id: {
12623 type: 'Identifier',
12624 name: 'x',
12625 range: [9, 10],
12626 loc: {
12627 start: { line: 1, column: 9 },
12628 end: { line: 1, column: 10 }
12629 }
12630 },
12631 init: null,
12632 range: [9, 10],
12633 loc: {
12634 start: { line: 1, column: 9 },
12635 end: { line: 1, column: 10 }
12636 }
12637 }],
12638 kind: 'var',
12639 range: [5, 10],
12640 loc: {
12641 start: { line: 1, column: 5 },
12642 end: { line: 1, column: 10 }
12643 }
12644 },
12645 right: {
12646 type: 'Identifier',
12647 name: 'list',
12648 range: [14, 18],
12649 loc: {
12650 start: { line: 1, column: 14 },
12651 end: { line: 1, column: 18 }
12652 }
12653 },
12654 body: {
12655 type: 'ExpressionStatement',
12656 expression: {
12657 type: 'CallExpression',
12658 callee: {
12659 type: 'Identifier',
12660 name: 'process',
12661 range: [20, 27],
12662 loc: {
12663 start: { line: 1, column: 20 },
12664 end: { line: 1, column: 27 }
12665 }
12666 },
12667 'arguments': [{
12668 type: 'Identifier',
12669 name: 'x',
12670 range: [28, 29],
12671 loc: {
12672 start: { line: 1, column: 28 },
12673 end: { line: 1, column: 29 }
12674 }
12675 }],
12676 range: [20, 30],
12677 loc: {
12678 start: { line: 1, column: 20 },
12679 end: { line: 1, column: 30 }
12680 }
12681 },
12682 range: [20, 31],
12683 loc: {
12684 start: { line: 1, column: 20 },
12685 end: { line: 1, column: 31 }
12686 }
12687 },
12688 each: false,
12689 range: [0, 31],
12690 loc: {
12691 start: { line: 1, column: 0 },
12692 end: { line: 1, column: 31 }
12693 }
12694 },
12695
12696 'for (let x in list) process(x);': {
12697 type: 'ForInStatement',
12698 left: {
12699 type: 'VariableDeclaration',
12700 declarations: [{
12701 type: 'VariableDeclarator',
12702 id: {
12703 type: 'Identifier',
12704 name: 'x',
12705 range: [9, 10],
12706 loc: {
12707 start: { line: 1, column: 9 },
12708 end: { line: 1, column: 10 }
12709 }
12710 },
12711 init: null,
12712 range: [9, 10],
12713 loc: {
12714 start: { line: 1, column: 9 },
12715 end: { line: 1, column: 10 }
12716 }
12717 }],
12718 kind: 'let',
12719 range: [5, 10],
12720 loc: {
12721 start: { line: 1, column: 5 },
12722 end: { line: 1, column: 10 }
12723 }
12724 },
12725 right: {
12726 type: 'Identifier',
12727 name: 'list',
12728 range: [14, 18],
12729 loc: {
12730 start: { line: 1, column: 14 },
12731 end: { line: 1, column: 18 }
12732 }
12733 },
12734 body: {
12735 type: 'ExpressionStatement',
12736 expression: {
12737 type: 'CallExpression',
12738 callee: {
12739 type: 'Identifier',
12740 name: 'process',
12741 range: [20, 27],
12742 loc: {
12743 start: { line: 1, column: 20 },
12744 end: { line: 1, column: 27 }
12745 }
12746 },
12747 'arguments': [{
12748 type: 'Identifier',
12749 name: 'x',
12750 range: [28, 29],
12751 loc: {
12752 start: { line: 1, column: 28 },
12753 end: { line: 1, column: 29 }
12754 }
12755 }],
12756 range: [20, 30],
12757 loc: {
12758 start: { line: 1, column: 20 },
12759 end: { line: 1, column: 30 }
12760 }
12761 },
12762 range: [20, 31],
12763 loc: {
12764 start: { line: 1, column: 20 },
12765 end: { line: 1, column: 31 }
12766 }
12767 },
12768 each: false,
12769 range: [0, 31],
12770 loc: {
12771 start: { line: 1, column: 0 },
12772 end: { line: 1, column: 31 }
12773 }
12774 },
12775
12776 'for (var i = function() { return 10 in [] } of list) process(x);': {
12777 type: 'ForOfStatement',
12778 left: {
12779 type: 'VariableDeclaration',
12780 declarations: [{
12781 type: 'VariableDeclarator',
12782 id: {
12783 type: 'Identifier',
12784 name: 'i',
12785 range: [9, 10],
12786 loc: {
12787 start: { line: 1, column: 9 },
12788 end: { line: 1, column: 10 }
12789 }
12790 },
12791 init: {
12792 type: 'FunctionExpression',
12793 id: null,
12794 params: [],
12795 defaults: [],
12796 body: {
12797 type: 'BlockStatement',
12798 body: [{
12799 type: 'ReturnStatement',
12800 argument: {
12801 type: 'BinaryExpression',
12802 operator: 'in',
12803 left: {
12804 type: 'Literal',
12805 value: 10,
12806 raw: '10',
12807 range: [33, 35],
12808 loc: {
12809 start: { line: 1, column: 33 },
12810 end: { line: 1, column: 35 }
12811 }
12812 },
12813 right: {
12814 type: 'ArrayExpression',
12815 elements: [],
12816 range: [39, 41],
12817 loc: {
12818 start: { line: 1, column: 39 },
12819 end: { line: 1, column: 41 }
12820 }
12821 },
12822 range: [33, 41],
12823 loc: {
12824 start: { line: 1, column: 33 },
12825 end: { line: 1, column: 41 }
12826 }
12827 },
12828 range: [26, 42],
12829 loc: {
12830 start: { line: 1, column: 26 },
12831 end: { line: 1, column: 42 }
12832 }
12833 }],
12834 range: [24, 43],
12835 loc: {
12836 start: { line: 1, column: 24 },
12837 end: { line: 1, column: 43 }
12838 }
12839 },
12840 rest: null,
12841 generator: false,
12842 expression: false,
12843 range: [13, 43],
12844 loc: {
12845 start: { line: 1, column: 13 },
12846 end: { line: 1, column: 43 }
12847 }
12848 },
12849 range: [9, 43],
12850 loc: {
12851 start: { line: 1, column: 9 },
12852 end: { line: 1, column: 43 }
12853 }
12854 }],
12855 kind: 'var',
12856 range: [5, 43],
12857 loc: {
12858 start: { line: 1, column: 5 },
12859 end: { line: 1, column: 43 }
12860 }
12861 },
12862 right: {
12863 type: 'Identifier',
12864 name: 'list',
12865 range: [47, 51],
12866 loc: {
12867 start: { line: 1, column: 47 },
12868 end: { line: 1, column: 51 }
12869 }
12870 },
12871 body: {
12872 type: 'ExpressionStatement',
12873 expression: {
12874 type: 'CallExpression',
12875 callee: {
12876 type: 'Identifier',
12877 name: 'process',
12878 range: [53, 60],
12879 loc: {
12880 start: { line: 1, column: 53 },
12881 end: { line: 1, column: 60 }
12882 }
12883 },
12884 'arguments': [{
12885 type: 'Identifier',
12886 name: 'x',
12887 range: [61, 62],
12888 loc: {
12889 start: { line: 1, column: 61 },
12890 end: { line: 1, column: 62 }
12891 }
12892 }],
12893 range: [53, 63],
12894 loc: {
12895 start: { line: 1, column: 53 },
12896 end: { line: 1, column: 63 }
12897 }
12898 },
12899 range: [53, 64],
12900 loc: {
12901 start: { line: 1, column: 53 },
12902 end: { line: 1, column: 64 }
12903 }
12904 },
12905 range: [0, 64],
12906 loc: {
12907 start: { line: 1, column: 0 },
12908 end: { line: 1, column: 64 }
12909 }
12910 }
12911
12912 },
12913
12914 'continue statement': {
12915
12916 'while (true) { continue; }': {
12917 type: 'WhileStatement',
12918 test: {
12919 type: 'Literal',
12920 value: true,
12921 raw: 'true',
12922 range: [7, 11],
12923 loc: {
12924 start: { line: 1, column: 7 },
12925 end: { line: 1, column: 11 }
12926 }
12927 },
12928 body: {
12929 type: 'BlockStatement',
12930 body: [
12931 {
12932 type: 'ContinueStatement',
12933 label: null,
12934 range: [15, 24],
12935 loc: {
12936 start: { line: 1, column: 15 },
12937 end: { line: 1, column: 24 }
12938 }
12939 }
12940 ],
12941 range: [13, 26],
12942 loc: {
12943 start: { line: 1, column: 13 },
12944 end: { line: 1, column: 26 }
12945 }
12946 },
12947 range: [0, 26],
12948 loc: {
12949 start: { line: 1, column: 0 },
12950 end: { line: 1, column: 26 }
12951 }
12952 },
12953
12954 'while (true) { continue }': {
12955 type: 'WhileStatement',
12956 test: {
12957 type: 'Literal',
12958 value: true,
12959 raw: 'true',
12960 range: [7, 11],
12961 loc: {
12962 start: { line: 1, column: 7 },
12963 end: { line: 1, column: 11 }
12964 }
12965 },
12966 body: {
12967 type: 'BlockStatement',
12968 body: [
12969 {
12970 type: 'ContinueStatement',
12971 label: null,
12972 range: [15, 24],
12973 loc: {
12974 start: { line: 1, column: 15 },
12975 end: { line: 1, column: 24 }
12976 }
12977 }
12978 ],
12979 range: [13, 25],
12980 loc: {
12981 start: { line: 1, column: 13 },
12982 end: { line: 1, column: 25 }
12983 }
12984 },
12985 range: [0, 25],
12986 loc: {
12987 start: { line: 1, column: 0 },
12988 end: { line: 1, column: 25 }
12989 }
12990 },
12991
12992 'done: while (true) { continue done }': {
12993 type: 'LabeledStatement',
12994 label: {
12995 type: 'Identifier',
12996 name: 'done',
12997 range: [0, 4],
12998 loc: {
12999 start: { line: 1, column: 0 },
13000 end: { line: 1, column: 4 }
13001 }
13002 },
13003 body: {
13004 type: 'WhileStatement',
13005 test: {
13006 type: 'Literal',
13007 value: true,
13008 raw: 'true',
13009 range: [13, 17],
13010 loc: {
13011 start: { line: 1, column: 13 },
13012 end: { line: 1, column: 17 }
13013 }
13014 },
13015 body: {
13016 type: 'BlockStatement',
13017 body: [
13018 {
13019 type: 'ContinueStatement',
13020 label: {
13021 type: 'Identifier',
13022 name: 'done',
13023 range: [30, 34],
13024 loc: {
13025 start: { line: 1, column: 30 },
13026 end: { line: 1, column: 34 }
13027 }
13028 },
13029 range: [21, 35],
13030 loc: {
13031 start: { line: 1, column: 21 },
13032 end: { line: 1, column: 35 }
13033 }
13034 }
13035 ],
13036 range: [19, 36],
13037 loc: {
13038 start: { line: 1, column: 19 },
13039 end: { line: 1, column: 36 }
13040 }
13041 },
13042 range: [6, 36],
13043 loc: {
13044 start: { line: 1, column: 6 },
13045 end: { line: 1, column: 36 }
13046 }
13047 },
13048 range: [0, 36],
13049 loc: {
13050 start: { line: 1, column: 0 },
13051 end: { line: 1, column: 36 }
13052 }
13053 },
13054
13055 'done: while (true) { continue done; }': {
13056 type: 'LabeledStatement',
13057 label: {
13058 type: 'Identifier',
13059 name: 'done',
13060 range: [0, 4],
13061 loc: {
13062 start: { line: 1, column: 0 },
13063 end: { line: 1, column: 4 }
13064 }
13065 },
13066 body: {
13067 type: 'WhileStatement',
13068 test: {
13069 type: 'Literal',
13070 value: true,
13071 raw: 'true',
13072 range: [13, 17],
13073 loc: {
13074 start: { line: 1, column: 13 },
13075 end: { line: 1, column: 17 }
13076 }
13077 },
13078 body: {
13079 type: 'BlockStatement',
13080 body: [
13081 {
13082 type: 'ContinueStatement',
13083 label: {
13084 type: 'Identifier',
13085 name: 'done',
13086 range: [30, 34],
13087 loc: {
13088 start: { line: 1, column: 30 },
13089 end: { line: 1, column: 34 }
13090 }
13091 },
13092 range: [21, 35],
13093 loc: {
13094 start: { line: 1, column: 21 },
13095 end: { line: 1, column: 35 }
13096 }
13097 }
13098 ],
13099 range: [19, 37],
13100 loc: {
13101 start: { line: 1, column: 19 },
13102 end: { line: 1, column: 37 }
13103 }
13104 },
13105 range: [6, 37],
13106 loc: {
13107 start: { line: 1, column: 6 },
13108 end: { line: 1, column: 37 }
13109 }
13110 },
13111 range: [0, 37],
13112 loc: {
13113 start: { line: 1, column: 0 },
13114 end: { line: 1, column: 37 }
13115 }
13116 },
13117
13118 '__proto__: while (true) { continue __proto__; }': {
13119 type: 'LabeledStatement',
13120 label: {
13121 type: 'Identifier',
13122 name: '__proto__',
13123 range: [0, 9],
13124 loc: {
13125 start: { line: 1, column: 0 },
13126 end: { line: 1, column: 9 }
13127 }
13128 },
13129 body: {
13130 type: 'WhileStatement',
13131 test: {
13132 type: 'Literal',
13133 value: true,
13134 raw: 'true',
13135 range: [18, 22],
13136 loc: {
13137 start: { line: 1, column: 18 },
13138 end: { line: 1, column: 22 }
13139 }
13140 },
13141 body: {
13142 type: 'BlockStatement',
13143 body: [{
13144 type: 'ContinueStatement',
13145 label: {
13146 type: 'Identifier',
13147 name: '__proto__',
13148 range: [35, 44],
13149 loc: {
13150 start: { line: 1, column: 35 },
13151 end: { line: 1, column: 44 }
13152 }
13153 },
13154 range: [26, 45],
13155 loc: {
13156 start: { line: 1, column: 26 },
13157 end: { line: 1, column: 45 }
13158 }
13159 }],
13160 range: [24, 47],
13161 loc: {
13162 start: { line: 1, column: 24 },
13163 end: { line: 1, column: 47 }
13164 }
13165 },
13166 range: [11, 47],
13167 loc: {
13168 start: { line: 1, column: 11 },
13169 end: { line: 1, column: 47 }
13170 }
13171 },
13172 range: [0, 47],
13173 loc: {
13174 start: { line: 1, column: 0 },
13175 end: { line: 1, column: 47 }
13176 }
13177 }
13178
13179 },
13180
13181 'break statement': {
13182
13183 'while (true) { break }': {
13184 type: 'WhileStatement',
13185 test: {
13186 type: 'Literal',
13187 value: true,
13188 raw: 'true',
13189 range: [7, 11],
13190 loc: {
13191 start: { line: 1, column: 7 },
13192 end: { line: 1, column: 11 }
13193 }
13194 },
13195 body: {
13196 type: 'BlockStatement',
13197 body: [
13198 {
13199 type: 'BreakStatement',
13200 label: null,
13201 range: [15, 21],
13202 loc: {
13203 start: { line: 1, column: 15 },
13204 end: { line: 1, column: 21 }
13205 }
13206 }
13207 ],
13208 range: [13, 22],
13209 loc: {
13210 start: { line: 1, column: 13 },
13211 end: { line: 1, column: 22 }
13212 }
13213 },
13214 range: [0, 22],
13215 loc: {
13216 start: { line: 1, column: 0 },
13217 end: { line: 1, column: 22 }
13218 }
13219 },
13220
13221 'done: while (true) { break done }': {
13222 type: 'LabeledStatement',
13223 label: {
13224 type: 'Identifier',
13225 name: 'done',
13226 range: [0, 4],
13227 loc: {
13228 start: { line: 1, column: 0 },
13229 end: { line: 1, column: 4 }
13230 }
13231 },
13232 body: {
13233 type: 'WhileStatement',
13234 test: {
13235 type: 'Literal',
13236 value: true,
13237 raw: 'true',
13238 range: [13, 17],
13239 loc: {
13240 start: { line: 1, column: 13 },
13241 end: { line: 1, column: 17 }
13242 }
13243 },
13244 body: {
13245 type: 'BlockStatement',
13246 body: [
13247 {
13248 type: 'BreakStatement',
13249 label: {
13250 type: 'Identifier',
13251 name: 'done',
13252 range: [27, 31],
13253 loc: {
13254 start: { line: 1, column: 27 },
13255 end: { line: 1, column: 31 }
13256 }
13257 },
13258 range: [21, 32],
13259 loc: {
13260 start: { line: 1, column: 21 },
13261 end: { line: 1, column: 32 }
13262 }
13263 }
13264 ],
13265 range: [19, 33],
13266 loc: {
13267 start: { line: 1, column: 19 },
13268 end: { line: 1, column: 33 }
13269 }
13270 },
13271 range: [6, 33],
13272 loc: {
13273 start: { line: 1, column: 6 },
13274 end: { line: 1, column: 33 }
13275 }
13276 },
13277 range: [0, 33],
13278 loc: {
13279 start: { line: 1, column: 0 },
13280 end: { line: 1, column: 33 }
13281 }
13282 },
13283
13284 'done: while (true) { break done; }': {
13285 type: 'LabeledStatement',
13286 label: {
13287 type: 'Identifier',
13288 name: 'done',
13289 range: [0, 4],
13290 loc: {
13291 start: { line: 1, column: 0 },
13292 end: { line: 1, column: 4 }
13293 }
13294 },
13295 body: {
13296 type: 'WhileStatement',
13297 test: {
13298 type: 'Literal',
13299 value: true,
13300 raw: 'true',
13301 range: [13, 17],
13302 loc: {
13303 start: { line: 1, column: 13 },
13304 end: { line: 1, column: 17 }
13305 }
13306 },
13307 body: {
13308 type: 'BlockStatement',
13309 body: [
13310 {
13311 type: 'BreakStatement',
13312 label: {
13313 type: 'Identifier',
13314 name: 'done',
13315 range: [27, 31],
13316 loc: {
13317 start: { line: 1, column: 27 },
13318 end: { line: 1, column: 31 }
13319 }
13320 },
13321 range: [21, 32],
13322 loc: {
13323 start: { line: 1, column: 21 },
13324 end: { line: 1, column: 32 }
13325 }
13326 }
13327 ],
13328 range: [19, 34],
13329 loc: {
13330 start: { line: 1, column: 19 },
13331 end: { line: 1, column: 34 }
13332 }
13333 },
13334 range: [6, 34],
13335 loc: {
13336 start: { line: 1, column: 6 },
13337 end: { line: 1, column: 34 }
13338 }
13339 },
13340 range: [0, 34],
13341 loc: {
13342 start: { line: 1, column: 0 },
13343 end: { line: 1, column: 34 }
13344 }
13345 },
13346
13347 '__proto__: while (true) { break __proto__; }': {
13348 type: 'LabeledStatement',
13349 label: {
13350 type: 'Identifier',
13351 name: '__proto__',
13352 range: [0, 9],
13353 loc: {
13354 start: { line: 1, column: 0 },
13355 end: { line: 1, column: 9 }
13356 }
13357 },
13358 body: {
13359 type: 'WhileStatement',
13360 test: {
13361 type: 'Literal',
13362 value: true,
13363 raw: 'true',
13364 range: [18, 22],
13365 loc: {
13366 start: { line: 1, column: 18 },
13367 end: { line: 1, column: 22 }
13368 }
13369 },
13370 body: {
13371 type: 'BlockStatement',
13372 body: [{
13373 type: 'BreakStatement',
13374 label: {
13375 type: 'Identifier',
13376 name: '__proto__',
13377 range: [32, 41],
13378 loc: {
13379 start: { line: 1, column: 32 },
13380 end: { line: 1, column: 41 }
13381 }
13382 },
13383 range: [26, 42],
13384 loc: {
13385 start: { line: 1, column: 26 },
13386 end: { line: 1, column: 42 }
13387 }
13388 }],
13389 range: [24, 44],
13390 loc: {
13391 start: { line: 1, column: 24 },
13392 end: { line: 1, column: 44 }
13393 }
13394 },
13395 range: [11, 44],
13396 loc: {
13397 start: { line: 1, column: 11 },
13398 end: { line: 1, column: 44 }
13399 }
13400 },
13401 range: [0, 44],
13402 loc: {
13403 start: { line: 1, column: 0 },
13404 end: { line: 1, column: 44 }
13405 }
13406 }
13407
13408 },
13409
13410 'return statement': {
13411
13412 '(function(){ return })': {
13413 type: 'ExpressionStatement',
13414 expression: {
13415 type: 'FunctionExpression',
13416 id: null,
13417 params: [],
13418 defaults: [],
13419 body: {
13420 type: 'BlockStatement',
13421 body: [
13422 {
13423 type: 'ReturnStatement',
13424 argument: null,
13425 range: [13, 20],
13426 loc: {
13427 start: { line: 1, column: 13 },
13428 end: { line: 1, column: 20 }
13429 }
13430 }
13431 ],
13432 range: [11, 21],
13433 loc: {
13434 start: { line: 1, column: 11 },
13435 end: { line: 1, column: 21 }
13436 }
13437 },
13438 rest: null,
13439 generator: false,
13440 expression: false,
13441 range: [1, 21],
13442 loc: {
13443 start: { line: 1, column: 1 },
13444 end: { line: 1, column: 21 }
13445 }
13446 },
13447 range: [0, 22],
13448 loc: {
13449 start: { line: 1, column: 0 },
13450 end: { line: 1, column: 22 }
13451 }
13452 },
13453
13454 '(function(){ return; })': {
13455 type: 'ExpressionStatement',
13456 expression: {
13457 type: 'FunctionExpression',
13458 id: null,
13459 params: [],
13460 defaults: [],
13461 body: {
13462 type: 'BlockStatement',
13463 body: [
13464 {
13465 type: 'ReturnStatement',
13466 argument: null,
13467 range: [13, 20],
13468 loc: {
13469 start: { line: 1, column: 13 },
13470 end: { line: 1, column: 20 }
13471 }
13472 }
13473 ],
13474 range: [11, 22],
13475 loc: {
13476 start: { line: 1, column: 11 },
13477 end: { line: 1, column: 22 }
13478 }
13479 },
13480 rest: null,
13481 generator: false,
13482 expression: false,
13483 range: [1, 22],
13484 loc: {
13485 start: { line: 1, column: 1 },
13486 end: { line: 1, column: 22 }
13487 }
13488 },
13489 range: [0, 23],
13490 loc: {
13491 start: { line: 1, column: 0 },
13492 end: { line: 1, column: 23 }
13493 }
13494 },
13495
13496 '(function(){ return x; })': {
13497 type: 'ExpressionStatement',
13498 expression: {
13499 type: 'FunctionExpression',
13500 id: null,
13501 params: [],
13502 defaults: [],
13503 body: {
13504 type: 'BlockStatement',
13505 body: [
13506 {
13507 type: 'ReturnStatement',
13508 argument: {
13509 type: 'Identifier',
13510 name: 'x',
13511 range: [20, 21],
13512 loc: {
13513 start: { line: 1, column: 20 },
13514 end: { line: 1, column: 21 }
13515 }
13516 },
13517 range: [13, 22],
13518 loc: {
13519 start: { line: 1, column: 13 },
13520 end: { line: 1, column: 22 }
13521 }
13522 }
13523 ],
13524 range: [11, 24],
13525 loc: {
13526 start: { line: 1, column: 11 },
13527 end: { line: 1, column: 24 }
13528 }
13529 },
13530 rest: null,
13531 generator: false,
13532 expression: false,
13533 range: [1, 24],
13534 loc: {
13535 start: { line: 1, column: 1 },
13536 end: { line: 1, column: 24 }
13537 }
13538 },
13539 range: [0, 25],
13540 loc: {
13541 start: { line: 1, column: 0 },
13542 end: { line: 1, column: 25 }
13543 }
13544 },
13545
13546 '(function(){ return x * y })': {
13547 type: 'ExpressionStatement',
13548 expression: {
13549 type: 'FunctionExpression',
13550 id: null,
13551 params: [],
13552 defaults: [],
13553 body: {
13554 type: 'BlockStatement',
13555 body: [
13556 {
13557 type: 'ReturnStatement',
13558 argument: {
13559 type: 'BinaryExpression',
13560 operator: '*',
13561 left: {
13562 type: 'Identifier',
13563 name: 'x',
13564 range: [20, 21],
13565 loc: {
13566 start: { line: 1, column: 20 },
13567 end: { line: 1, column: 21 }
13568 }
13569 },
13570 right: {
13571 type: 'Identifier',
13572 name: 'y',
13573 range: [24, 25],
13574 loc: {
13575 start: { line: 1, column: 24 },
13576 end: { line: 1, column: 25 }
13577 }
13578 },
13579 range: [20, 25],
13580 loc: {
13581 start: { line: 1, column: 20 },
13582 end: { line: 1, column: 25 }
13583 }
13584 },
13585 range: [13, 26],
13586 loc: {
13587 start: { line: 1, column: 13 },
13588 end: { line: 1, column: 26 }
13589 }
13590 }
13591 ],
13592 range: [11, 27],
13593 loc: {
13594 start: { line: 1, column: 11 },
13595 end: { line: 1, column: 27 }
13596 }
13597 },
13598 rest: null,
13599 generator: false,
13600 expression: false,
13601 range: [1, 27],
13602 loc: {
13603 start: { line: 1, column: 1 },
13604 end: { line: 1, column: 27 }
13605 }
13606 },
13607 range: [0, 28],
13608 loc: {
13609 start: { line: 1, column: 0 },
13610 end: { line: 1, column: 28 }
13611 }
13612 }
13613 },
13614
13615 'with statement': {
13616
13617 'with (x) foo = bar': {
13618 type: 'WithStatement',
13619 object: {
13620 type: 'Identifier',
13621 name: 'x',
13622 range: [6, 7],
13623 loc: {
13624 start: { line: 1, column: 6 },
13625 end: { line: 1, column: 7 }
13626 }
13627 },
13628 body: {
13629 type: 'ExpressionStatement',
13630 expression: {
13631 type: 'AssignmentExpression',
13632 operator: '=',
13633 left: {
13634 type: 'Identifier',
13635 name: 'foo',
13636 range: [9, 12],
13637 loc: {
13638 start: { line: 1, column: 9 },
13639 end: { line: 1, column: 12 }
13640 }
13641 },
13642 right: {
13643 type: 'Identifier',
13644 name: 'bar',
13645 range: [15, 18],
13646 loc: {
13647 start: { line: 1, column: 15 },
13648 end: { line: 1, column: 18 }
13649 }
13650 },
13651 range: [9, 18],
13652 loc: {
13653 start: { line: 1, column: 9 },
13654 end: { line: 1, column: 18 }
13655 }
13656 },
13657 range: [9, 18],
13658 loc: {
13659 start: { line: 1, column: 9 },
13660 end: { line: 1, column: 18 }
13661 }
13662 },
13663 range: [0, 18],
13664 loc: {
13665 start: { line: 1, column: 0 },
13666 end: { line: 1, column: 18 }
13667 }
13668 },
13669
13670 'with (x) foo = bar;': {
13671 type: 'WithStatement',
13672 object: {
13673 type: 'Identifier',
13674 name: 'x',
13675 range: [6, 7],
13676 loc: {
13677 start: { line: 1, column: 6 },
13678 end: { line: 1, column: 7 }
13679 }
13680 },
13681 body: {
13682 type: 'ExpressionStatement',
13683 expression: {
13684 type: 'AssignmentExpression',
13685 operator: '=',
13686 left: {
13687 type: 'Identifier',
13688 name: 'foo',
13689 range: [9, 12],
13690 loc: {
13691 start: { line: 1, column: 9 },
13692 end: { line: 1, column: 12 }
13693 }
13694 },
13695 right: {
13696 type: 'Identifier',
13697 name: 'bar',
13698 range: [15, 18],
13699 loc: {
13700 start: { line: 1, column: 15 },
13701 end: { line: 1, column: 18 }
13702 }
13703 },
13704 range: [9, 18],
13705 loc: {
13706 start: { line: 1, column: 9 },
13707 end: { line: 1, column: 18 }
13708 }
13709 },
13710 range: [9, 19],
13711 loc: {
13712 start: { line: 1, column: 9 },
13713 end: { line: 1, column: 19 }
13714 }
13715 },
13716 range: [0, 19],
13717 loc: {
13718 start: { line: 1, column: 0 },
13719 end: { line: 1, column: 19 }
13720 }
13721 },
13722
13723 'with (x) { foo = bar }': {
13724 type: 'WithStatement',
13725 object: {
13726 type: 'Identifier',
13727 name: 'x',
13728 range: [6, 7],
13729 loc: {
13730 start: { line: 1, column: 6 },
13731 end: { line: 1, column: 7 }
13732 }
13733 },
13734 body: {
13735 type: 'BlockStatement',
13736 body: [{
13737 type: 'ExpressionStatement',
13738 expression: {
13739 type: 'AssignmentExpression',
13740 operator: '=',
13741 left: {
13742 type: 'Identifier',
13743 name: 'foo',
13744 range: [11, 14],
13745 loc: {
13746 start: { line: 1, column: 11 },
13747 end: { line: 1, column: 14 }
13748 }
13749 },
13750 right: {
13751 type: 'Identifier',
13752 name: 'bar',
13753 range: [17, 20],
13754 loc: {
13755 start: { line: 1, column: 17 },
13756 end: { line: 1, column: 20 }
13757 }
13758 },
13759 range: [11, 20],
13760 loc: {
13761 start: { line: 1, column: 11 },
13762 end: { line: 1, column: 20 }
13763 }
13764 },
13765 range: [11, 21],
13766 loc: {
13767 start: { line: 1, column: 11 },
13768 end: { line: 1, column: 21 }
13769 }
13770 }],
13771 range: [9, 22],
13772 loc: {
13773 start: { line: 1, column: 9 },
13774 end: { line: 1, column: 22 }
13775 }
13776 },
13777 range: [0, 22],
13778 loc: {
13779 start: { line: 1, column: 0 },
13780 end: { line: 1, column: 22 }
13781 }
13782 }
13783
13784 },
13785
13786 'switch statement': {
13787
13788 'switch (x) {}': {
13789 type: 'SwitchStatement',
13790 discriminant: {
13791 type: 'Identifier',
13792 name: 'x',
13793 range: [8, 9],
13794 loc: {
13795 start: { line: 1, column: 8 },
13796 end: { line: 1, column: 9 }
13797 }
13798 },
13799 cases:[],
13800 range: [0, 13],
13801 loc: {
13802 start: { line: 1, column: 0 },
13803 end: { line: 1, column: 13 }
13804 }
13805 },
13806
13807 'switch (answer) { case 42: hi(); break; }': {
13808 type: 'SwitchStatement',
13809 discriminant: {
13810 type: 'Identifier',
13811 name: 'answer',
13812 range: [8, 14],
13813 loc: {
13814 start: { line: 1, column: 8 },
13815 end: { line: 1, column: 14 }
13816 }
13817 },
13818 cases: [{
13819 type: 'SwitchCase',
13820 test: {
13821 type: 'Literal',
13822 value: 42,
13823 raw: '42',
13824 range: [23, 25],
13825 loc: {
13826 start: { line: 1, column: 23 },
13827 end: { line: 1, column: 25 }
13828 }
13829 },
13830 consequent: [{
13831 type: 'ExpressionStatement',
13832 expression: {
13833 type: 'CallExpression',
13834 callee: {
13835 type: 'Identifier',
13836 name: 'hi',
13837 range: [27, 29],
13838 loc: {
13839 start: { line: 1, column: 27 },
13840 end: { line: 1, column: 29 }
13841 }
13842 },
13843 'arguments': [],
13844 range: [27, 31],
13845 loc: {
13846 start: { line: 1, column: 27 },
13847 end: { line: 1, column: 31 }
13848 }
13849 },
13850 range: [27, 32],
13851 loc: {
13852 start: { line: 1, column: 27 },
13853 end: { line: 1, column: 32 }
13854 }
13855 }, {
13856 type: 'BreakStatement',
13857 label: null,
13858 range: [33, 39],
13859 loc: {
13860 start: { line: 1, column: 33 },
13861 end: { line: 1, column: 39 }
13862 }
13863 }],
13864 range: [18, 39],
13865 loc: {
13866 start: { line: 1, column: 18 },
13867 end: { line: 1, column: 39 }
13868 }
13869 }],
13870 range: [0, 41],
13871 loc: {
13872 start: { line: 1, column: 0 },
13873 end: { line: 1, column: 41 }
13874 }
13875 },
13876
13877 'switch (answer) { case 42: hi(); break; default: break }': {
13878 type: 'SwitchStatement',
13879 discriminant: {
13880 type: 'Identifier',
13881 name: 'answer',
13882 range: [8, 14],
13883 loc: {
13884 start: { line: 1, column: 8 },
13885 end: { line: 1, column: 14 }
13886 }
13887 },
13888 cases: [{
13889 type: 'SwitchCase',
13890 test: {
13891 type: 'Literal',
13892 value: 42,
13893 raw: '42',
13894 range: [23, 25],
13895 loc: {
13896 start: { line: 1, column: 23 },
13897 end: { line: 1, column: 25 }
13898 }
13899 },
13900 consequent: [{
13901 type: 'ExpressionStatement',
13902 expression: {
13903 type: 'CallExpression',
13904 callee: {
13905 type: 'Identifier',
13906 name: 'hi',
13907 range: [27, 29],
13908 loc: {
13909 start: { line: 1, column: 27 },
13910 end: { line: 1, column: 29 }
13911 }
13912 },
13913 'arguments': [],
13914 range: [27, 31],
13915 loc: {
13916 start: { line: 1, column: 27 },
13917 end: { line: 1, column: 31 }
13918 }
13919 },
13920 range: [27, 32],
13921 loc: {
13922 start: { line: 1, column: 27 },
13923 end: { line: 1, column: 32 }
13924 }
13925 }, {
13926 type: 'BreakStatement',
13927 label: null,
13928 range: [33, 39],
13929 loc: {
13930 start: { line: 1, column: 33 },
13931 end: { line: 1, column: 39 }
13932 }
13933 }],
13934 range: [18, 39],
13935 loc: {
13936 start: { line: 1, column: 18 },
13937 end: { line: 1, column: 39 }
13938 }
13939 }, {
13940 type: 'SwitchCase',
13941 test: null,
13942 consequent: [{
13943 type: 'BreakStatement',
13944 label: null,
13945 range: [49, 55],
13946 loc: {
13947 start: { line: 1, column: 49 },
13948 end: { line: 1, column: 55 }
13949 }
13950 }],
13951 range: [40, 55],
13952 loc: {
13953 start: { line: 1, column: 40 },
13954 end: { line: 1, column: 55 }
13955 }
13956 }],
13957 range: [0, 56],
13958 loc: {
13959 start: { line: 1, column: 0 },
13960 end: { line: 1, column: 56 }
13961 }
13962 }
13963
13964 },
13965
13966 'Labelled Statements': {
13967
13968 'start: for (;;) break start': {
13969 type: 'LabeledStatement',
13970 label: {
13971 type: 'Identifier',
13972 name: 'start',
13973 range: [0, 5],
13974 loc: {
13975 start: { line: 1, column: 0 },
13976 end: { line: 1, column: 5 }
13977 }
13978 },
13979 body: {
13980 type: 'ForStatement',
13981 init: null,
13982 test: null,
13983 update: null,
13984 body: {
13985 type: 'BreakStatement',
13986 label: {
13987 type: 'Identifier',
13988 name: 'start',
13989 range: [22, 27],
13990 loc: {
13991 start: { line: 1, column: 22 },
13992 end: { line: 1, column: 27 }
13993 }
13994 },
13995 range: [16, 27],
13996 loc: {
13997 start: { line: 1, column: 16 },
13998 end: { line: 1, column: 27 }
13999 }
14000 },
14001 range: [7, 27],
14002 loc: {
14003 start: { line: 1, column: 7 },
14004 end: { line: 1, column: 27 }
14005 }
14006 },
14007 range: [0, 27],
14008 loc: {
14009 start: { line: 1, column: 0 },
14010 end: { line: 1, column: 27 }
14011 }
14012 },
14013
14014 'start: while (true) break start': {
14015 type: 'LabeledStatement',
14016 label: {
14017 type: 'Identifier',
14018 name: 'start',
14019 range: [0, 5],
14020 loc: {
14021 start: { line: 1, column: 0 },
14022 end: { line: 1, column: 5 }
14023 }
14024 },
14025 body: {
14026 type: 'WhileStatement',
14027 test: {
14028 type: 'Literal',
14029 value: true,
14030 raw: 'true',
14031 range: [14, 18],
14032 loc: {
14033 start: { line: 1, column: 14 },
14034 end: { line: 1, column: 18 }
14035 }
14036 },
14037 body: {
14038 type: 'BreakStatement',
14039 label: {
14040 type: 'Identifier',
14041 name: 'start',
14042 range: [26, 31],
14043 loc: {
14044 start: { line: 1, column: 26 },
14045 end: { line: 1, column: 31 }
14046 }
14047 },
14048 range: [20, 31],
14049 loc: {
14050 start: { line: 1, column: 20 },
14051 end: { line: 1, column: 31 }
14052 }
14053 },
14054 range: [7, 31],
14055 loc: {
14056 start: { line: 1, column: 7 },
14057 end: { line: 1, column: 31 }
14058 }
14059 },
14060 range: [0, 31],
14061 loc: {
14062 start: { line: 1, column: 0 },
14063 end: { line: 1, column: 31 }
14064 }
14065 },
14066
14067 '__proto__: test': {
14068 type: 'LabeledStatement',
14069 label: {
14070 type: 'Identifier',
14071 name: '__proto__',
14072 range: [0, 9],
14073 loc: {
14074 start: { line: 1, column: 0 },
14075 end: { line: 1, column: 9 }
14076 }
14077 },
14078 body: {
14079 type: 'ExpressionStatement',
14080 expression: {
14081 type: 'Identifier',
14082 name: 'test',
14083 range: [11, 15],
14084 loc: {
14085 start: { line: 1, column: 11 },
14086 end: { line: 1, column: 15 }
14087 }
14088 },
14089 range: [11, 15],
14090 loc: {
14091 start: { line: 1, column: 11 },
14092 end: { line: 1, column: 15 }
14093 }
14094 },
14095 range: [0, 15],
14096 loc: {
14097 start: { line: 1, column: 0 },
14098 end: { line: 1, column: 15 }
14099 }
14100 }
14101
14102 },
14103
14104 'throw statement': {
14105
14106 'throw x;': {
14107 type: 'ThrowStatement',
14108 argument: {
14109 type: 'Identifier',
14110 name: 'x',
14111 range: [6, 7],
14112 loc: {
14113 start: { line: 1, column: 6 },
14114 end: { line: 1, column: 7 }
14115 }
14116 },
14117 range: [0, 8],
14118 loc: {
14119 start: { line: 1, column: 0 },
14120 end: { line: 1, column: 8 }
14121 }
14122 },
14123
14124 'throw x * y': {
14125 type: 'ThrowStatement',
14126 argument: {
14127 type: 'BinaryExpression',
14128 operator: '*',
14129 left: {
14130 type: 'Identifier',
14131 name: 'x',
14132 range: [6, 7],
14133 loc: {
14134 start: { line: 1, column: 6 },
14135 end: { line: 1, column: 7 }
14136 }
14137 },
14138 right: {
14139 type: 'Identifier',
14140 name: 'y',
14141 range: [10, 11],
14142 loc: {
14143 start: { line: 1, column: 10 },
14144 end: { line: 1, column: 11 }
14145 }
14146 },
14147 range: [6, 11],
14148 loc: {
14149 start: { line: 1, column: 6 },
14150 end: { line: 1, column: 11 }
14151 }
14152 },
14153 range: [0, 11],
14154 loc: {
14155 start: { line: 1, column: 0 },
14156 end: { line: 1, column: 11 }
14157 }
14158 },
14159
14160 'throw { message: "Error" }': {
14161 type: 'ThrowStatement',
14162 argument: {
14163 type: 'ObjectExpression',
14164 properties: [{
14165 type: 'Property',
14166 key: {
14167 type: 'Identifier',
14168 name: 'message',
14169 range: [8, 15],
14170 loc: {
14171 start: { line: 1, column: 8 },
14172 end: { line: 1, column: 15 }
14173 }
14174 },
14175 value: {
14176 type: 'Literal',
14177 value: 'Error',
14178 raw: '"Error"',
14179 range: [17, 24],
14180 loc: {
14181 start: { line: 1, column: 17 },
14182 end: { line: 1, column: 24 }
14183 }
14184 },
14185 kind: 'init',
14186 method: false,
14187 shorthand: false,
14188 range: [8, 24],
14189 loc: {
14190 start: { line: 1, column: 8 },
14191 end: { line: 1, column: 24 }
14192 }
14193 }],
14194 range: [6, 26],
14195 loc: {
14196 start: { line: 1, column: 6 },
14197 end: { line: 1, column: 26 }
14198 }
14199 },
14200 range: [0, 26],
14201 loc: {
14202 start: { line: 1, column: 0 },
14203 end: { line: 1, column: 26 }
14204 }
14205 }
14206
14207 },
14208
14209 'try statement': {
14210
14211 'try { } catch (e) { }': {
14212 type: 'TryStatement',
14213 block: {
14214 type: 'BlockStatement',
14215 body: [],
14216 range: [4, 7],
14217 loc: {
14218 start: { line: 1, column: 4 },
14219 end: { line: 1, column: 7 }
14220 }
14221 },
14222 guardedHandlers: [],
14223 handlers: [{
14224 type: 'CatchClause',
14225 param: {
14226 type: 'Identifier',
14227 name: 'e',
14228 range: [15, 16],
14229 loc: {
14230 start: { line: 1, column: 15 },
14231 end: { line: 1, column: 16 }
14232 }
14233 },
14234 body: {
14235 type: 'BlockStatement',
14236 body: [],
14237 range: [18, 21],
14238 loc: {
14239 start: { line: 1, column: 18 },
14240 end: { line: 1, column: 21 }
14241 }
14242 },
14243 range: [8, 21],
14244 loc: {
14245 start: { line: 1, column: 8 },
14246 end: { line: 1, column: 21 }
14247 }
14248 }],
14249 finalizer: null,
14250 range: [0, 21],
14251 loc: {
14252 start: { line: 1, column: 0 },
14253 end: { line: 1, column: 21 }
14254 }
14255 },
14256
14257 'try { } catch (eval) { }': {
14258 type: 'TryStatement',
14259 block: {
14260 type: 'BlockStatement',
14261 body: [],
14262 range: [4, 7],
14263 loc: {
14264 start: { line: 1, column: 4 },
14265 end: { line: 1, column: 7 }
14266 }
14267 },
14268 guardedHandlers: [],
14269 handlers: [{
14270 type: 'CatchClause',
14271 param: {
14272 type: 'Identifier',
14273 name: 'eval',
14274 range: [15, 19],
14275 loc: {
14276 start: { line: 1, column: 15 },
14277 end: { line: 1, column: 19 }
14278 }
14279 },
14280 body: {
14281 type: 'BlockStatement',
14282 body: [],
14283 range: [21, 24],
14284 loc: {
14285 start: { line: 1, column: 21 },
14286 end: { line: 1, column: 24 }
14287 }
14288 },
14289 range: [8, 24],
14290 loc: {
14291 start: { line: 1, column: 8 },
14292 end: { line: 1, column: 24 }
14293 }
14294 }],
14295 finalizer: null,
14296 range: [0, 24],
14297 loc: {
14298 start: { line: 1, column: 0 },
14299 end: { line: 1, column: 24 }
14300 }
14301 },
14302
14303 'try { } catch (arguments) { }': {
14304 type: 'TryStatement',
14305 block: {
14306 type: 'BlockStatement',
14307 body: [],
14308 range: [4, 7],
14309 loc: {
14310 start: { line: 1, column: 4 },
14311 end: { line: 1, column: 7 }
14312 }
14313 },
14314 guardedHandlers: [],
14315 handlers: [{
14316 type: 'CatchClause',
14317 param: {
14318 type: 'Identifier',
14319 name: 'arguments',
14320 range: [15, 24],
14321 loc: {
14322 start: { line: 1, column: 15 },
14323 end: { line: 1, column: 24 }
14324 }
14325 },
14326 body: {
14327 type: 'BlockStatement',
14328 body: [],
14329 range: [26, 29],
14330 loc: {
14331 start: { line: 1, column: 26 },
14332 end: { line: 1, column: 29 }
14333 }
14334 },
14335 range: [8, 29],
14336 loc: {
14337 start: { line: 1, column: 8 },
14338 end: { line: 1, column: 29 }
14339 }
14340 }],
14341 finalizer: null,
14342 range: [0, 29],
14343 loc: {
14344 start: { line: 1, column: 0 },
14345 end: { line: 1, column: 29 }
14346 }
14347 },
14348
14349 'try { } catch (e) { say(e) }': {
14350 type: 'TryStatement',
14351 block: {
14352 type: 'BlockStatement',
14353 body: [],
14354 range: [4, 7],
14355 loc: {
14356 start: { line: 1, column: 4 },
14357 end: { line: 1, column: 7 }
14358 }
14359 },
14360 guardedHandlers: [],
14361 handlers: [{
14362 type: 'CatchClause',
14363 param: {
14364 type: 'Identifier',
14365 name: 'e',
14366 range: [15, 16],
14367 loc: {
14368 start: { line: 1, column: 15 },
14369 end: { line: 1, column: 16 }
14370 }
14371 },
14372 body: {
14373 type: 'BlockStatement',
14374 body: [{
14375 type: 'ExpressionStatement',
14376 expression: {
14377 type: 'CallExpression',
14378 callee: {
14379 type: 'Identifier',
14380 name: 'say',
14381 range: [20, 23],
14382 loc: {
14383 start: { line: 1, column: 20 },
14384 end: { line: 1, column: 23 }
14385 }
14386 },
14387 'arguments': [{
14388 type: 'Identifier',
14389 name: 'e',
14390 range: [24, 25],
14391 loc: {
14392 start: { line: 1, column: 24 },
14393 end: { line: 1, column: 25 }
14394 }
14395 }],
14396 range: [20, 26],
14397 loc: {
14398 start: { line: 1, column: 20 },
14399 end: { line: 1, column: 26 }
14400 }
14401 },
14402 range: [20, 27],
14403 loc: {
14404 start: { line: 1, column: 20 },
14405 end: { line: 1, column: 27 }
14406 }
14407 }],
14408 range: [18, 28],
14409 loc: {
14410 start: { line: 1, column: 18 },
14411 end: { line: 1, column: 28 }
14412 }
14413 },
14414 range: [8, 28],
14415 loc: {
14416 start: { line: 1, column: 8 },
14417 end: { line: 1, column: 28 }
14418 }
14419 }],
14420 finalizer: null,
14421 range: [0, 28],
14422 loc: {
14423 start: { line: 1, column: 0 },
14424 end: { line: 1, column: 28 }
14425 }
14426 },
14427
14428 'try { } finally { cleanup(stuff) }': {
14429 type: 'TryStatement',
14430 block: {
14431 type: 'BlockStatement',
14432 body: [],
14433 range: [4, 7],
14434 loc: {
14435 start: { line: 1, column: 4 },
14436 end: { line: 1, column: 7 }
14437 }
14438 },
14439 guardedHandlers: [],
14440 handlers: [],
14441 finalizer: {
14442 type: 'BlockStatement',
14443 body: [{
14444 type: 'ExpressionStatement',
14445 expression: {
14446 type: 'CallExpression',
14447 callee: {
14448 type: 'Identifier',
14449 name: 'cleanup',
14450 range: [18, 25],
14451 loc: {
14452 start: { line: 1, column: 18 },
14453 end: { line: 1, column: 25 }
14454 }
14455 },
14456 'arguments': [{
14457 type: 'Identifier',
14458 name: 'stuff',
14459 range: [26, 31],
14460 loc: {
14461 start: { line: 1, column: 26 },
14462 end: { line: 1, column: 31 }
14463 }
14464 }],
14465 range: [18, 32],
14466 loc: {
14467 start: { line: 1, column: 18 },
14468 end: { line: 1, column: 32 }
14469 }
14470 },
14471 range: [18, 33],
14472 loc: {
14473 start: { line: 1, column: 18 },
14474 end: { line: 1, column: 33 }
14475 }
14476 }],
14477 range: [16, 34],
14478 loc: {
14479 start: { line: 1, column: 16 },
14480 end: { line: 1, column: 34 }
14481 }
14482 },
14483 range: [0, 34],
14484 loc: {
14485 start: { line: 1, column: 0 },
14486 end: { line: 1, column: 34 }
14487 }
14488 },
14489
14490 'try { doThat(); } catch (e) { say(e) }': {
14491 type: 'TryStatement',
14492 block: {
14493 type: 'BlockStatement',
14494 body: [{
14495 type: 'ExpressionStatement',
14496 expression: {
14497 type: 'CallExpression',
14498 callee: {
14499 type: 'Identifier',
14500 name: 'doThat',
14501 range: [6, 12],
14502 loc: {
14503 start: { line: 1, column: 6 },
14504 end: { line: 1, column: 12 }
14505 }
14506 },
14507 'arguments': [],
14508 range: [6, 14],
14509 loc: {
14510 start: { line: 1, column: 6 },
14511 end: { line: 1, column: 14 }
14512 }
14513 },
14514 range: [6, 15],
14515 loc: {
14516 start: { line: 1, column: 6 },
14517 end: { line: 1, column: 15 }
14518 }
14519 }],
14520 range: [4, 17],
14521 loc: {
14522 start: { line: 1, column: 4 },
14523 end: { line: 1, column: 17 }
14524 }
14525 },
14526 guardedHandlers: [],
14527 handlers: [{
14528 type: 'CatchClause',
14529 param: {
14530 type: 'Identifier',
14531 name: 'e',
14532 range: [25, 26],
14533 loc: {
14534 start: { line: 1, column: 25 },
14535 end: { line: 1, column: 26 }
14536 }
14537 },
14538 body: {
14539 type: 'BlockStatement',
14540 body: [{
14541 type: 'ExpressionStatement',
14542 expression: {
14543 type: 'CallExpression',
14544 callee: {
14545 type: 'Identifier',
14546 name: 'say',
14547 range: [30, 33],
14548 loc: {
14549 start: { line: 1, column: 30 },
14550 end: { line: 1, column: 33 }
14551 }
14552 },
14553 'arguments': [{
14554 type: 'Identifier',
14555 name: 'e',
14556 range: [34, 35],
14557 loc: {
14558 start: { line: 1, column: 34 },
14559 end: { line: 1, column: 35 }
14560 }
14561 }],
14562 range: [30, 36],
14563 loc: {
14564 start: { line: 1, column: 30 },
14565 end: { line: 1, column: 36 }
14566 }
14567 },
14568 range: [30, 37],
14569 loc: {
14570 start: { line: 1, column: 30 },
14571 end: { line: 1, column: 37 }
14572 }
14573 }],
14574 range: [28, 38],
14575 loc: {
14576 start: { line: 1, column: 28 },
14577 end: { line: 1, column: 38 }
14578 }
14579 },
14580 range: [18, 38],
14581 loc: {
14582 start: { line: 1, column: 18 },
14583 end: { line: 1, column: 38 }
14584 }
14585 }],
14586 finalizer: null,
14587 range: [0, 38],
14588 loc: {
14589 start: { line: 1, column: 0 },
14590 end: { line: 1, column: 38 }
14591 }
14592 },
14593
14594 'try { doThat(); } catch (e) { say(e) } finally { cleanup(stuff) }': {
14595 type: 'TryStatement',
14596 block: {
14597 type: 'BlockStatement',
14598 body: [{
14599 type: 'ExpressionStatement',
14600 expression: {
14601 type: 'CallExpression',
14602 callee: {
14603 type: 'Identifier',
14604 name: 'doThat',
14605 range: [6, 12],
14606 loc: {
14607 start: { line: 1, column: 6 },
14608 end: { line: 1, column: 12 }
14609 }
14610 },
14611 'arguments': [],
14612 range: [6, 14],
14613 loc: {
14614 start: { line: 1, column: 6 },
14615 end: { line: 1, column: 14 }
14616 }
14617 },
14618 range: [6, 15],
14619 loc: {
14620 start: { line: 1, column: 6 },
14621 end: { line: 1, column: 15 }
14622 }
14623 }],
14624 range: [4, 17],
14625 loc: {
14626 start: { line: 1, column: 4 },
14627 end: { line: 1, column: 17 }
14628 }
14629 },
14630 guardedHandlers: [],
14631 handlers: [{
14632 type: 'CatchClause',
14633 param: {
14634 type: 'Identifier',
14635 name: 'e',
14636 range: [25, 26],
14637 loc: {
14638 start: { line: 1, column: 25 },
14639 end: { line: 1, column: 26 }
14640 }
14641 },
14642 body: {
14643 type: 'BlockStatement',
14644 body: [{
14645 type: 'ExpressionStatement',
14646 expression: {
14647 type: 'CallExpression',
14648 callee: {
14649 type: 'Identifier',
14650 name: 'say',
14651 range: [30, 33],
14652 loc: {
14653 start: { line: 1, column: 30 },
14654 end: { line: 1, column: 33 }
14655 }
14656 },
14657 'arguments': [{
14658 type: 'Identifier',
14659 name: 'e',
14660 range: [34, 35],
14661 loc: {
14662 start: { line: 1, column: 34 },
14663 end: { line: 1, column: 35 }
14664 }
14665 }],
14666 range: [30, 36],
14667 loc: {
14668 start: { line: 1, column: 30 },
14669 end: { line: 1, column: 36 }
14670 }
14671 },
14672 range: [30, 37],
14673 loc: {
14674 start: { line: 1, column: 30 },
14675 end: { line: 1, column: 37 }
14676 }
14677 }],
14678 range: [28, 38],
14679 loc: {
14680 start: { line: 1, column: 28 },
14681 end: { line: 1, column: 38 }
14682 }
14683 },
14684 range: [18, 38],
14685 loc: {
14686 start: { line: 1, column: 18 },
14687 end: { line: 1, column: 38 }
14688 }
14689 }],
14690 finalizer: {
14691 type: 'BlockStatement',
14692 body: [{
14693 type: 'ExpressionStatement',
14694 expression: {
14695 type: 'CallExpression',
14696 callee: {
14697 type: 'Identifier',
14698 name: 'cleanup',
14699 range: [49, 56],
14700 loc: {
14701 start: { line: 1, column: 49 },
14702 end: { line: 1, column: 56 }
14703 }
14704 },
14705 'arguments': [{
14706 type: 'Identifier',
14707 name: 'stuff',
14708 range: [57, 62],
14709 loc: {
14710 start: { line: 1, column: 57 },
14711 end: { line: 1, column: 62 }
14712 }
14713 }],
14714 range: [49, 63],
14715 loc: {
14716 start: { line: 1, column: 49 },
14717 end: { line: 1, column: 63 }
14718 }
14719 },
14720 range: [49, 64],
14721 loc: {
14722 start: { line: 1, column: 49 },
14723 end: { line: 1, column: 64 }
14724 }
14725 }],
14726 range: [47, 65],
14727 loc: {
14728 start: { line: 1, column: 47 },
14729 end: { line: 1, column: 65 }
14730 }
14731 },
14732 range: [0, 65],
14733 loc: {
14734 start: { line: 1, column: 0 },
14735 end: { line: 1, column: 65 }
14736 }
14737 }
14738
14739 },
14740
14741 'debugger statement': {
14742
14743 'debugger;': {
14744 type: 'DebuggerStatement',
14745 range: [0, 9],
14746 loc: {
14747 start: { line: 1, column: 0 },
14748 end: { line: 1, column: 9 }
14749 }
14750 }
14751
14752 },
14753
14754 'Function Definition': {
14755
14756 'function hello() { sayHi(); }': {
14757 type: 'FunctionDeclaration',
14758 id: {
14759 type: 'Identifier',
14760 name: 'hello',
14761 range: [9, 14],
14762 loc: {
14763 start: { line: 1, column: 9 },
14764 end: { line: 1, column: 14 }
14765 }
14766 },
14767 params: [],
14768 defaults: [],
14769 body: {
14770 type: 'BlockStatement',
14771 body: [{
14772 type: 'ExpressionStatement',
14773 expression: {
14774 type: 'CallExpression',
14775 callee: {
14776 type: 'Identifier',
14777 name: 'sayHi',
14778 range: [19, 24],
14779 loc: {
14780 start: { line: 1, column: 19 },
14781 end: { line: 1, column: 24 }
14782 }
14783 },
14784 'arguments': [],
14785 range: [19, 26],
14786 loc: {
14787 start: { line: 1, column: 19 },
14788 end: { line: 1, column: 26 }
14789 }
14790 },
14791 range: [19, 27],
14792 loc: {
14793 start: { line: 1, column: 19 },
14794 end: { line: 1, column: 27 }
14795 }
14796 }],
14797 range: [17, 29],
14798 loc: {
14799 start: { line: 1, column: 17 },
14800 end: { line: 1, column: 29 }
14801 }
14802 },
14803 rest: null,
14804 generator: false,
14805 expression: false,
14806 range: [0, 29],
14807 loc: {
14808 start: { line: 1, column: 0 },
14809 end: { line: 1, column: 29 }
14810 }
14811 },
14812
14813 'function eval() { }': {
14814 type: 'FunctionDeclaration',
14815 id: {
14816 type: 'Identifier',
14817 name: 'eval',
14818 range: [9, 13],
14819 loc: {
14820 start: { line: 1, column: 9 },
14821 end: { line: 1, column: 13 }
14822 }
14823 },
14824 params: [],
14825 defaults: [],
14826 body: {
14827 type: 'BlockStatement',
14828 body: [],
14829 range: [16, 19],
14830 loc: {
14831 start: { line: 1, column: 16 },
14832 end: { line: 1, column: 19 }
14833 }
14834 },
14835 rest: null,
14836 generator: false,
14837 expression: false,
14838 range: [0, 19],
14839 loc: {
14840 start: { line: 1, column: 0 },
14841 end: { line: 1, column: 19 }
14842 }
14843 },
14844
14845 'function arguments() { }': {
14846 type: 'FunctionDeclaration',
14847 id: {
14848 type: 'Identifier',
14849 name: 'arguments',
14850 range: [9, 18],
14851 loc: {
14852 start: { line: 1, column: 9 },
14853 end: { line: 1, column: 18 }
14854 }
14855 },
14856 params: [],
14857 defaults: [],
14858 body: {
14859 type: 'BlockStatement',
14860 body: [],
14861 range: [21, 24],
14862 loc: {
14863 start: { line: 1, column: 21 },
14864 end: { line: 1, column: 24 }
14865 }
14866 },
14867 rest: null,
14868 generator: false,
14869 expression: false,
14870 range: [0, 24],
14871 loc: {
14872 start: { line: 1, column: 0 },
14873 end: { line: 1, column: 24 }
14874 }
14875 },
14876
14877 'function test(t, t) { }': {
14878 type: 'FunctionDeclaration',
14879 id: {
14880 type: 'Identifier',
14881 name: 'test',
14882 range: [9, 13],
14883 loc: {
14884 start: { line: 1, column: 9 },
14885 end: { line: 1, column: 13 }
14886 }
14887 },
14888 params: [{
14889 type: 'Identifier',
14890 name: 't',
14891 range: [14, 15],
14892 loc: {
14893 start: { line: 1, column: 14 },
14894 end: { line: 1, column: 15 }
14895 }
14896 }, {
14897 type: 'Identifier',
14898 name: 't',
14899 range: [17, 18],
14900 loc: {
14901 start: { line: 1, column: 17 },
14902 end: { line: 1, column: 18 }
14903 }
14904 }],
14905 defaults: [],
14906 body: {
14907 type: 'BlockStatement',
14908 body: [],
14909 range: [20, 23],
14910 loc: {
14911 start: { line: 1, column: 20 },
14912 end: { line: 1, column: 23 }
14913 }
14914 },
14915 rest: null,
14916 generator: false,
14917 expression: false,
14918 range: [0, 23],
14919 loc: {
14920 start: { line: 1, column: 0 },
14921 end: { line: 1, column: 23 }
14922 }
14923 },
14924
14925 '(function test(t, t) { })': {
14926 type: 'ExpressionStatement',
14927 expression: {
14928 type: 'FunctionExpression',
14929 id: {
14930 type: 'Identifier',
14931 name: 'test',
14932 range: [10, 14],
14933 loc: {
14934 start: { line: 1, column: 10 },
14935 end: { line: 1, column: 14 }
14936 }
14937 },
14938 params: [{
14939 type: 'Identifier',
14940 name: 't',
14941 range: [15, 16],
14942 loc: {
14943 start: { line: 1, column: 15 },
14944 end: { line: 1, column: 16 }
14945 }
14946 }, {
14947 type: 'Identifier',
14948 name: 't',
14949 range: [18, 19],
14950 loc: {
14951 start: { line: 1, column: 18 },
14952 end: { line: 1, column: 19 }
14953 }
14954 }],
14955 defaults: [],
14956 body: {
14957 type: 'BlockStatement',
14958 body: [],
14959 range: [21, 24],
14960 loc: {
14961 start: { line: 1, column: 21 },
14962 end: { line: 1, column: 24 }
14963 }
14964 },
14965 rest: null,
14966 generator: false,
14967 expression: false,
14968 range: [1, 24],
14969 loc: {
14970 start: { line: 1, column: 1 },
14971 end: { line: 1, column: 24 }
14972 }
14973 },
14974 range: [0, 25],
14975 loc: {
14976 start: { line: 1, column: 0 },
14977 end: { line: 1, column: 25 }
14978 }
14979 },
14980
14981 'function eval() { function inner() { "use strict" } }': {
14982 type: 'FunctionDeclaration',
14983 id: {
14984 type: 'Identifier',
14985 name: 'eval',
14986 range: [9, 13],
14987 loc: {
14988 start: { line: 1, column: 9 },
14989 end: { line: 1, column: 13 }
14990 }
14991 },
14992 params: [],
14993 defaults: [],
14994 body: {
14995 type: 'BlockStatement',
14996 body: [{
14997 type: 'FunctionDeclaration',
14998 id: {
14999 type: 'Identifier',
15000 name: 'inner',
15001 range: [27, 32],
15002 loc: {
15003 start: { line: 1, column: 27 },
15004 end: { line: 1, column: 32 }
15005 }
15006 },
15007 params: [],
15008 defaults: [],
15009 body: {
15010 type: 'BlockStatement',
15011 body: [{
15012 type: 'ExpressionStatement',
15013 expression: {
15014 type: 'Literal',
15015 value: 'use strict',
15016 raw: '\"use strict\"',
15017 range: [37, 49],
15018 loc: {
15019 start: { line: 1, column: 37 },
15020 end: { line: 1, column: 49 }
15021 }
15022 },
15023 range: [37, 50],
15024 loc: {
15025 start: { line: 1, column: 37 },
15026 end: { line: 1, column: 50 }
15027 }
15028 }],
15029 range: [35, 51],
15030 loc: {
15031 start: { line: 1, column: 35 },
15032 end: { line: 1, column: 51 }
15033 }
15034 },
15035 rest: null,
15036 generator: false,
15037 expression: false,
15038 range: [18, 51],
15039 loc: {
15040 start: { line: 1, column: 18 },
15041 end: { line: 1, column: 51 }
15042 }
15043 }],
15044 range: [16, 53],
15045 loc: {
15046 start: { line: 1, column: 16 },
15047 end: { line: 1, column: 53 }
15048 }
15049 },
15050 rest: null,
15051 generator: false,
15052 expression: false,
15053 range: [0, 53],
15054 loc: {
15055 start: { line: 1, column: 0 },
15056 end: { line: 1, column: 53 }
15057 }
15058 },
15059
15060 'function hello(a) { sayHi(); }': {
15061 type: 'FunctionDeclaration',
15062 id: {
15063 type: 'Identifier',
15064 name: 'hello',
15065 range: [9, 14],
15066 loc: {
15067 start: { line: 1, column: 9 },
15068 end: { line: 1, column: 14 }
15069 }
15070 },
15071 params: [{
15072 type: 'Identifier',
15073 name: 'a',
15074 range: [15, 16],
15075 loc: {
15076 start: { line: 1, column: 15 },
15077 end: { line: 1, column: 16 }
15078 }
15079 }],
15080 defaults: [],
15081 body: {
15082 type: 'BlockStatement',
15083 body: [{
15084 type: 'ExpressionStatement',
15085 expression: {
15086 type: 'CallExpression',
15087 callee: {
15088 type: 'Identifier',
15089 name: 'sayHi',
15090 range: [20, 25],
15091 loc: {
15092 start: { line: 1, column: 20 },
15093 end: { line: 1, column: 25 }
15094 }
15095 },
15096 'arguments': [],
15097 range: [20, 27],
15098 loc: {
15099 start: { line: 1, column: 20 },
15100 end: { line: 1, column: 27 }
15101 }
15102 },
15103 range: [20, 28],
15104 loc: {
15105 start: { line: 1, column: 20 },
15106 end: { line: 1, column: 28 }
15107 }
15108 }],
15109 range: [18, 30],
15110 loc: {
15111 start: { line: 1, column: 18 },
15112 end: { line: 1, column: 30 }
15113 }
15114 },
15115 rest: null,
15116 generator: false,
15117 expression: false,
15118 range: [0, 30],
15119 loc: {
15120 start: { line: 1, column: 0 },
15121 end: { line: 1, column: 30 }
15122 }
15123 },
15124
15125 'function hello(a, b) { sayHi(); }': {
15126 type: 'FunctionDeclaration',
15127 id: {
15128 type: 'Identifier',
15129 name: 'hello',
15130 range: [9, 14],
15131 loc: {
15132 start: { line: 1, column: 9 },
15133 end: { line: 1, column: 14 }
15134 }
15135 },
15136 params: [{
15137 type: 'Identifier',
15138 name: 'a',
15139 range: [15, 16],
15140 loc: {
15141 start: { line: 1, column: 15 },
15142 end: { line: 1, column: 16 }
15143 }
15144 }, {
15145 type: 'Identifier',
15146 name: 'b',
15147 range: [18, 19],
15148 loc: {
15149 start: { line: 1, column: 18 },
15150 end: { line: 1, column: 19 }
15151 }
15152 }],
15153 defaults: [],
15154 body: {
15155 type: 'BlockStatement',
15156 body: [{
15157 type: 'ExpressionStatement',
15158 expression: {
15159 type: 'CallExpression',
15160 callee: {
15161 type: 'Identifier',
15162 name: 'sayHi',
15163 range: [23, 28],
15164 loc: {
15165 start: { line: 1, column: 23 },
15166 end: { line: 1, column: 28 }
15167 }
15168 },
15169 'arguments': [],
15170 range: [23, 30],
15171 loc: {
15172 start: { line: 1, column: 23 },
15173 end: { line: 1, column: 30 }
15174 }
15175 },
15176 range: [23, 31],
15177 loc: {
15178 start: { line: 1, column: 23 },
15179 end: { line: 1, column: 31 }
15180 }
15181 }],
15182 range: [21, 33],
15183 loc: {
15184 start: { line: 1, column: 21 },
15185 end: { line: 1, column: 33 }
15186 }
15187 },
15188 rest: null,
15189 generator: false,
15190 expression: false,
15191 range: [0, 33],
15192 loc: {
15193 start: { line: 1, column: 0 },
15194 end: { line: 1, column: 33 }
15195 }
15196 },
15197
15198 'var hi = function() { sayHi() };': {
15199 type: 'VariableDeclaration',
15200 declarations: [{
15201 type: 'VariableDeclarator',
15202 id: {
15203 type: 'Identifier',
15204 name: 'hi',
15205 range: [4, 6],
15206 loc: {
15207 start: { line: 1, column: 4 },
15208 end: { line: 1, column: 6 }
15209 }
15210 },
15211 init: {
15212 type: 'FunctionExpression',
15213 id: null,
15214 params: [],
15215 defaults: [],
15216 body: {
15217 type: 'BlockStatement',
15218 body: [{
15219 type: 'ExpressionStatement',
15220 expression: {
15221 type: 'CallExpression',
15222 callee: {
15223 type: 'Identifier',
15224 name: 'sayHi',
15225 range: [22, 27],
15226 loc: {
15227 start: { line: 1, column: 22 },
15228 end: { line: 1, column: 27 }
15229 }
15230 },
15231 'arguments': [],
15232 range: [22, 29],
15233 loc: {
15234 start: { line: 1, column: 22 },
15235 end: { line: 1, column: 29 }
15236 }
15237 },
15238 range: [22, 30],
15239 loc: {
15240 start: { line: 1, column: 22 },
15241 end: { line: 1, column: 30 }
15242 }
15243 }],
15244 range: [20, 31],
15245 loc: {
15246 start: { line: 1, column: 20 },
15247 end: { line: 1, column: 31 }
15248 }
15249 },
15250 rest: null,
15251 generator: false,
15252 expression: false,
15253 range: [9, 31],
15254 loc: {
15255 start: { line: 1, column: 9 },
15256 end: { line: 1, column: 31 }
15257 }
15258 },
15259 range: [4, 31],
15260 loc: {
15261 start: { line: 1, column: 4 },
15262 end: { line: 1, column: 31 }
15263 }
15264 }],
15265 kind: 'var',
15266 range: [0, 32],
15267 loc: {
15268 start: { line: 1, column: 0 },
15269 end: { line: 1, column: 32 }
15270 }
15271 },
15272
15273 'var hi = function eval() { };': {
15274 type: 'VariableDeclaration',
15275 declarations: [{
15276 type: 'VariableDeclarator',
15277 id: {
15278 type: 'Identifier',
15279 name: 'hi',
15280 range: [4, 6],
15281 loc: {
15282 start: { line: 1, column: 4 },
15283 end: { line: 1, column: 6 }
15284 }
15285 },
15286 init: {
15287 type: 'FunctionExpression',
15288 id: {
15289 type: 'Identifier',
15290 name: 'eval',
15291 range: [18, 22],
15292 loc: {
15293 start: { line: 1, column: 18 },
15294 end: { line: 1, column: 22 }
15295 }
15296 },
15297 params: [],
15298 defaults: [],
15299 body: {
15300 type: 'BlockStatement',
15301 body: [],
15302 range: [25, 28],
15303 loc: {
15304 start: { line: 1, column: 25 },
15305 end: { line: 1, column: 28 }
15306 }
15307 },
15308 rest: null,
15309 generator: false,
15310 expression: false,
15311 range: [9, 28],
15312 loc: {
15313 start: { line: 1, column: 9 },
15314 end: { line: 1, column: 28 }
15315 }
15316 },
15317 range: [4, 28],
15318 loc: {
15319 start: { line: 1, column: 4 },
15320 end: { line: 1, column: 28 }
15321 }
15322 }],
15323 kind: 'var',
15324 range: [0, 29],
15325 loc: {
15326 start: { line: 1, column: 0 },
15327 end: { line: 1, column: 29 }
15328 }
15329 },
15330
15331 'var hi = function arguments() { };': {
15332 type: 'VariableDeclaration',
15333 declarations: [{
15334 type: 'VariableDeclarator',
15335 id: {
15336 type: 'Identifier',
15337 name: 'hi',
15338 range: [4, 6],
15339 loc: {
15340 start: { line: 1, column: 4 },
15341 end: { line: 1, column: 6 }
15342 }
15343 },
15344 init: {
15345 type: 'FunctionExpression',
15346 id: {
15347 type: 'Identifier',
15348 name: 'arguments',
15349 range: [18, 27],
15350 loc: {
15351 start: { line: 1, column: 18 },
15352 end: { line: 1, column: 27 }
15353 }
15354 },
15355 params: [],
15356 defaults: [],
15357 body: {
15358 type: 'BlockStatement',
15359 body: [],
15360 range: [30, 33],
15361 loc: {
15362 start: { line: 1, column: 30 },
15363 end: { line: 1, column: 33 }
15364 }
15365 },
15366 rest: null,
15367 generator: false,
15368 expression: false,
15369 range: [9, 33],
15370 loc: {
15371 start: { line: 1, column: 9 },
15372 end: { line: 1, column: 33 }
15373 }
15374 },
15375 range: [4, 33],
15376 loc: {
15377 start: { line: 1, column: 4 },
15378 end: { line: 1, column: 33 }
15379 }
15380 }],
15381 kind: 'var',
15382 range: [0, 34],
15383 loc: {
15384 start: { line: 1, column: 0 },
15385 end: { line: 1, column: 34 }
15386 }
15387 },
15388
15389 'var hello = function hi() { sayHi() };': {
15390 type: 'VariableDeclaration',
15391 declarations: [{
15392 type: 'VariableDeclarator',
15393 id: {
15394 type: 'Identifier',
15395 name: 'hello',
15396 range: [4, 9],
15397 loc: {
15398 start: { line: 1, column: 4 },
15399 end: { line: 1, column: 9 }
15400 }
15401 },
15402 init: {
15403 type: 'FunctionExpression',
15404 id: {
15405 type: 'Identifier',
15406 name: 'hi',
15407 range: [21, 23],
15408 loc: {
15409 start: { line: 1, column: 21 },
15410 end: { line: 1, column: 23 }
15411 }
15412 },
15413 params: [],
15414 defaults: [],
15415 body: {
15416 type: 'BlockStatement',
15417 body: [{
15418 type: 'ExpressionStatement',
15419 expression: {
15420 type: 'CallExpression',
15421 callee: {
15422 type: 'Identifier',
15423 name: 'sayHi',
15424 range: [28, 33],
15425 loc: {
15426 start: { line: 1, column: 28 },
15427 end: { line: 1, column: 33 }
15428 }
15429 },
15430 'arguments': [],
15431 range: [28, 35],
15432 loc: {
15433 start: { line: 1, column: 28 },
15434 end: { line: 1, column: 35 }
15435 }
15436 },
15437 range: [28, 36],
15438 loc: {
15439 start: { line: 1, column: 28 },
15440 end: { line: 1, column: 36 }
15441 }
15442 }],
15443 range: [26, 37],
15444 loc: {
15445 start: { line: 1, column: 26 },
15446 end: { line: 1, column: 37 }
15447 }
15448 },
15449 rest: null,
15450 generator: false,
15451 expression: false,
15452 range: [12, 37],
15453 loc: {
15454 start: { line: 1, column: 12 },
15455 end: { line: 1, column: 37 }
15456 }
15457 },
15458 range: [4, 37],
15459 loc: {
15460 start: { line: 1, column: 4 },
15461 end: { line: 1, column: 37 }
15462 }
15463 }],
15464 kind: 'var',
15465 range: [0, 38],
15466 loc: {
15467 start: { line: 1, column: 0 },
15468 end: { line: 1, column: 38 }
15469 }
15470 },
15471
15472 '(function(){})': {
15473 type: 'ExpressionStatement',
15474 expression: {
15475 type: 'FunctionExpression',
15476 id: null,
15477 params: [],
15478 defaults: [],
15479 body: {
15480 type: 'BlockStatement',
15481 body: [],
15482 range: [11, 13],
15483 loc: {
15484 start: { line: 1, column: 11 },
15485 end: { line: 1, column: 13 }
15486 }
15487 },
15488 rest: null,
15489 generator: false,
15490 expression: false,
15491 range: [1, 13],
15492 loc: {
15493 start: { line: 1, column: 1 },
15494 end: { line: 1, column: 13 }
15495 }
15496 },
15497 range: [0, 14],
15498 loc: {
15499 start: { line: 1, column: 0 },
15500 end: { line: 1, column: 14 }
15501 }
15502 },
15503
15504 'function universe(__proto__) { }': {
15505 type: 'FunctionDeclaration',
15506 id: {
15507 type: 'Identifier',
15508 name: 'universe',
15509 range: [9, 17],
15510 loc: {
15511 start: { line: 1, column: 9 },
15512 end: { line: 1, column: 17 }
15513 }
15514 },
15515 params: [{
15516 type: 'Identifier',
15517 name: '__proto__',
15518 range: [18, 27],
15519 loc: {
15520 start: { line: 1, column: 18 },
15521 end: { line: 1, column: 27 }
15522 }
15523 }],
15524 defaults: [],
15525 body: {
15526 type: 'BlockStatement',
15527 body: [],
15528 range: [29, 32],
15529 loc: {
15530 start: { line: 1, column: 29 },
15531 end: { line: 1, column: 32 }
15532 }
15533 },
15534 rest: null,
15535 generator: false,
15536 expression: false,
15537 range: [0, 32],
15538 loc: {
15539 start: { line: 1, column: 0 },
15540 end: { line: 1, column: 32 }
15541 }
15542 },
15543
15544 'function test() { "use strict" + 42; }': {
15545 type: 'FunctionDeclaration',
15546 id: {
15547 type: 'Identifier',
15548 name: 'test',
15549 range: [9, 13],
15550 loc: {
15551 start: { line: 1, column: 9 },
15552 end: { line: 1, column: 13 }
15553 }
15554 },
15555 params: [],
15556 defaults: [],
15557 body: {
15558 type: 'BlockStatement',
15559 body: [{
15560 type: 'ExpressionStatement',
15561 expression: {
15562 type: 'BinaryExpression',
15563 operator: '+',
15564 left: {
15565 type: 'Literal',
15566 value: 'use strict',
15567 raw: '"use strict"',
15568 range: [18, 30],
15569 loc: {
15570 start: { line: 1, column: 18 },
15571 end: { line: 1, column: 30 }
15572 }
15573 },
15574 right: {
15575 type: 'Literal',
15576 value: 42,
15577 raw: '42',
15578 range: [33, 35],
15579 loc: {
15580 start: { line: 1, column: 33 },
15581 end: { line: 1, column: 35 }
15582 }
15583 },
15584 range: [18, 35],
15585 loc: {
15586 start: { line: 1, column: 18 },
15587 end: { line: 1, column: 35 }
15588 }
15589 },
15590 range: [18, 36],
15591 loc: {
15592 start: { line: 1, column: 18 },
15593 end: { line: 1, column: 36 }
15594 }
15595 }],
15596 range: [16, 38],
15597 loc: {
15598 start: { line: 1, column: 16 },
15599 end: { line: 1, column: 38 }
15600 }
15601 },
15602 rest: null,
15603 generator: false,
15604 expression: false,
15605 range: [0, 38],
15606 loc: {
15607 start: { line: 1, column: 0 },
15608 end: { line: 1, column: 38 }
15609 }
15610 }
15611
15612 },
15613
15614 'Automatic semicolon insertion': {
15615
15616 '{ x\n++y }': {
15617 type: 'BlockStatement',
15618 body: [{
15619 type: 'ExpressionStatement',
15620 expression: {
15621 type: 'Identifier',
15622 name: 'x',
15623 range: [2, 3],
15624 loc: {
15625 start: { line: 1, column: 2 },
15626 end: { line: 1, column: 3 }
15627 }
15628 },
15629 range: [2, 4],
15630 loc: {
15631 start: { line: 1, column: 2 },
15632 end: { line: 2, column: 0 }
15633 }
15634 }, {
15635 type: 'ExpressionStatement',
15636 expression: {
15637 type: 'UpdateExpression',
15638 operator: '++',
15639 argument: {
15640 type: 'Identifier',
15641 name: 'y',
15642 range: [6, 7],
15643 loc: {
15644 start: { line: 2, column: 2 },
15645 end: { line: 2, column: 3 }
15646 }
15647 },
15648 prefix: true,
15649 range: [4, 7],
15650 loc: {
15651 start: { line: 2, column: 0 },
15652 end: { line: 2, column: 3 }
15653 }
15654 },
15655 range: [4, 8],
15656 loc: {
15657 start: { line: 2, column: 0 },
15658 end: { line: 2, column: 4 }
15659 }
15660 }],
15661 range: [0, 9],
15662 loc: {
15663 start: { line: 1, column: 0 },
15664 end: { line: 2, column: 5 }
15665 }
15666 },
15667
15668 '{ x\n--y }': {
15669 type: 'BlockStatement',
15670 body: [{
15671 type: 'ExpressionStatement',
15672 expression: {
15673 type: 'Identifier',
15674 name: 'x',
15675 range: [2, 3],
15676 loc: {
15677 start: { line: 1, column: 2 },
15678 end: { line: 1, column: 3 }
15679 }
15680 },
15681 range: [2, 4],
15682 loc: {
15683 start: { line: 1, column: 2 },
15684 end: { line: 2, column: 0 }
15685 }
15686 }, {
15687 type: 'ExpressionStatement',
15688 expression: {
15689 type: 'UpdateExpression',
15690 operator: '--',
15691 argument: {
15692 type: 'Identifier',
15693 name: 'y',
15694 range: [6, 7],
15695 loc: {
15696 start: { line: 2, column: 2 },
15697 end: { line: 2, column: 3 }
15698 }
15699 },
15700 prefix: true,
15701 range: [4, 7],
15702 loc: {
15703 start: { line: 2, column: 0 },
15704 end: { line: 2, column: 3 }
15705 }
15706 },
15707 range: [4, 8],
15708 loc: {
15709 start: { line: 2, column: 0 },
15710 end: { line: 2, column: 4 }
15711 }
15712 }],
15713 range: [0, 9],
15714 loc: {
15715 start: { line: 1, column: 0 },
15716 end: { line: 2, column: 5 }
15717 }
15718 },
15719
15720 'var x /* comment */;': {
15721 type: 'VariableDeclaration',
15722 declarations: [{
15723 type: 'VariableDeclarator',
15724 id: {
15725 type: 'Identifier',
15726 name: 'x',
15727 range: [4, 5],
15728 loc: {
15729 start: { line: 1, column: 4 },
15730 end: { line: 1, column: 5 }
15731 }
15732 },
15733 init: null,
15734 range: [4, 5],
15735 loc: {
15736 start: { line: 1, column: 4 },
15737 end: { line: 1, column: 5 }
15738 }
15739 }],
15740 kind: 'var',
15741 range: [0, 20],
15742 loc: {
15743 start: { line: 1, column: 0 },
15744 end: { line: 1, column: 20 }
15745 }
15746 },
15747
15748 '{ var x = 14, y = 3\nz; }': {
15749 type: 'BlockStatement',
15750 body: [{
15751 type: 'VariableDeclaration',
15752 declarations: [{
15753 type: 'VariableDeclarator',
15754 id: {
15755 type: 'Identifier',
15756 name: 'x',
15757 range: [6, 7],
15758 loc: {
15759 start: { line: 1, column: 6 },
15760 end: { line: 1, column: 7 }
15761 }
15762 },
15763 init: {
15764 type: 'Literal',
15765 value: 14,
15766 raw: '14',
15767 range: [10, 12],
15768 loc: {
15769 start: { line: 1, column: 10 },
15770 end: { line: 1, column: 12 }
15771 }
15772 },
15773 range: [6, 12],
15774 loc: {
15775 start: { line: 1, column: 6 },
15776 end: { line: 1, column: 12 }
15777 }
15778 }, {
15779 type: 'VariableDeclarator',
15780 id: {
15781 type: 'Identifier',
15782 name: 'y',
15783 range: [14, 15],
15784 loc: {
15785 start: { line: 1, column: 14 },
15786 end: { line: 1, column: 15 }
15787 }
15788 },
15789 init: {
15790 type: 'Literal',
15791 value: 3,
15792 raw: '3',
15793 range: [18, 19],
15794 loc: {
15795 start: { line: 1, column: 18 },
15796 end: { line: 1, column: 19 }
15797 }
15798 },
15799 range: [14, 19],
15800 loc: {
15801 start: { line: 1, column: 14 },
15802 end: { line: 1, column: 19 }
15803 }
15804 }],
15805 kind: 'var',
15806 range: [2, 20],
15807 loc: {
15808 start: { line: 1, column: 2 },
15809 end: { line: 2, column: 0 }
15810 }
15811 }, {
15812 type: 'ExpressionStatement',
15813 expression: {
15814 type: 'Identifier',
15815 name: 'z',
15816 range: [20, 21],
15817 loc: {
15818 start: { line: 2, column: 0 },
15819 end: { line: 2, column: 1 }
15820 }
15821 },
15822 range: [20, 22],
15823 loc: {
15824 start: { line: 2, column: 0 },
15825 end: { line: 2, column: 2 }
15826 }
15827 }],
15828 range: [0, 24],
15829 loc: {
15830 start: { line: 1, column: 0 },
15831 end: { line: 2, column: 4 }
15832 }
15833 },
15834
15835 'while (true) { continue\nthere; }': {
15836 type: 'WhileStatement',
15837 test: {
15838 type: 'Literal',
15839 value: true,
15840 raw: 'true',
15841 range: [7, 11],
15842 loc: {
15843 start: { line: 1, column: 7 },
15844 end: { line: 1, column: 11 }
15845 }
15846 },
15847 body: {
15848 type: 'BlockStatement',
15849 body: [{
15850 type: 'ContinueStatement',
15851 label: null,
15852 range: [15, 23],
15853 loc: {
15854 start: { line: 1, column: 15 },
15855 end: { line: 1, column: 23 }
15856 }
15857 }, {
15858 type: 'ExpressionStatement',
15859 expression: {
15860 type: 'Identifier',
15861 name: 'there',
15862 range: [24, 29],
15863 loc: {
15864 start: { line: 2, column: 0 },
15865 end: { line: 2, column: 5 }
15866 }
15867 },
15868 range: [24, 30],
15869 loc: {
15870 start: { line: 2, column: 0 },
15871 end: { line: 2, column: 6 }
15872 }
15873 }],
15874 range: [13, 32],
15875 loc: {
15876 start: { line: 1, column: 13 },
15877 end: { line: 2, column: 8 }
15878 }
15879 },
15880 range: [0, 32],
15881 loc: {
15882 start: { line: 1, column: 0 },
15883 end: { line: 2, column: 8 }
15884 }
15885 },
15886
15887 'while (true) { continue // Comment\nthere; }': {
15888 type: 'WhileStatement',
15889 test: {
15890 type: 'Literal',
15891 value: true,
15892 raw: 'true',
15893 range: [7, 11],
15894 loc: {
15895 start: { line: 1, column: 7 },
15896 end: { line: 1, column: 11 }
15897 }
15898 },
15899 body: {
15900 type: 'BlockStatement',
15901 body: [{
15902 type: 'ContinueStatement',
15903 label: null,
15904 range: [15, 23],
15905 loc: {
15906 start: { line: 1, column: 15 },
15907 end: { line: 1, column: 23 }
15908 }
15909 }, {
15910 type: 'ExpressionStatement',
15911 expression: {
15912 type: 'Identifier',
15913 name: 'there',
15914 range: [35, 40],
15915 loc: {
15916 start: { line: 2, column: 0 },
15917 end: { line: 2, column: 5 }
15918 }
15919 },
15920 range: [35, 41],
15921 loc: {
15922 start: { line: 2, column: 0 },
15923 end: { line: 2, column: 6 }
15924 }
15925 }],
15926 range: [13, 43],
15927 loc: {
15928 start: { line: 1, column: 13 },
15929 end: { line: 2, column: 8 }
15930 }
15931 },
15932 range: [0, 43],
15933 loc: {
15934 start: { line: 1, column: 0 },
15935 end: { line: 2, column: 8 }
15936 }
15937 },
15938
15939 'while (true) { continue /* Multiline\nComment */there; }': {
15940 type: 'WhileStatement',
15941 test: {
15942 type: 'Literal',
15943 value: true,
15944 raw: 'true',
15945 range: [7, 11],
15946 loc: {
15947 start: { line: 1, column: 7 },
15948 end: { line: 1, column: 11 }
15949 }
15950 },
15951 body: {
15952 type: 'BlockStatement',
15953 body: [{
15954 type: 'ContinueStatement',
15955 label: null,
15956 range: [15, 23],
15957 loc: {
15958 start: { line: 1, column: 15 },
15959 end: { line: 1, column: 23 }
15960 }
15961 }, {
15962 type: 'ExpressionStatement',
15963 expression: {
15964 type: 'Identifier',
15965 name: 'there',
15966 range: [47, 52],
15967 loc: {
15968 start: { line: 2, column: 10 },
15969 end: { line: 2, column: 15 }
15970 }
15971 },
15972 range: [47, 53],
15973 loc: {
15974 start: { line: 2, column: 10 },
15975 end: { line: 2, column: 16 }
15976 }
15977 }],
15978 range: [13, 55],
15979 loc: {
15980 start: { line: 1, column: 13 },
15981 end: { line: 2, column: 18 }
15982 }
15983 },
15984 range: [0, 55],
15985 loc: {
15986 start: { line: 1, column: 0 },
15987 end: { line: 2, column: 18 }
15988 }
15989 },
15990
15991 'while (true) { break\nthere; }': {
15992 type: 'WhileStatement',
15993 test: {
15994 type: 'Literal',
15995 value: true,
15996 raw: 'true',
15997 range: [7, 11],
15998 loc: {
15999 start: { line: 1, column: 7 },
16000 end: { line: 1, column: 11 }
16001 }
16002 },
16003 body: {
16004 type: 'BlockStatement',
16005 body: [{
16006 type: 'BreakStatement',
16007 label: null,
16008 range: [15, 20],
16009 loc: {
16010 start: { line: 1, column: 15 },
16011 end: { line: 1, column: 20 }
16012 }
16013 }, {
16014 type: 'ExpressionStatement',
16015 expression: {
16016 type: 'Identifier',
16017 name: 'there',
16018 range: [21, 26],
16019 loc: {
16020 start: { line: 2, column: 0 },
16021 end: { line: 2, column: 5 }
16022 }
16023 },
16024 range: [21, 27],
16025 loc: {
16026 start: { line: 2, column: 0 },
16027 end: { line: 2, column: 6 }
16028 }
16029 }],
16030 range: [13, 29],
16031 loc: {
16032 start: { line: 1, column: 13 },
16033 end: { line: 2, column: 8 }
16034 }
16035 },
16036 range: [0, 29],
16037 loc: {
16038 start: { line: 1, column: 0 },
16039 end: { line: 2, column: 8 }
16040 }
16041 },
16042
16043 'while (true) { break // Comment\nthere; }': {
16044 type: 'WhileStatement',
16045 test: {
16046 type: 'Literal',
16047 value: true,
16048 raw: 'true',
16049 range: [7, 11],
16050 loc: {
16051 start: { line: 1, column: 7 },
16052 end: { line: 1, column: 11 }
16053 }
16054 },
16055 body: {
16056 type: 'BlockStatement',
16057 body: [{
16058 type: 'BreakStatement',
16059 label: null,
16060 range: [15, 20],
16061 loc: {
16062 start: { line: 1, column: 15 },
16063 end: { line: 1, column: 20 }
16064 }
16065 }, {
16066 type: 'ExpressionStatement',
16067 expression: {
16068 type: 'Identifier',
16069 name: 'there',
16070 range: [32, 37],
16071 loc: {
16072 start: { line: 2, column: 0 },
16073 end: { line: 2, column: 5 }
16074 }
16075 },
16076 range: [32, 38],
16077 loc: {
16078 start: { line: 2, column: 0 },
16079 end: { line: 2, column: 6 }
16080 }
16081 }],
16082 range: [13, 40],
16083 loc: {
16084 start: { line: 1, column: 13 },
16085 end: { line: 2, column: 8 }
16086 }
16087 },
16088 range: [0, 40],
16089 loc: {
16090 start: { line: 1, column: 0 },
16091 end: { line: 2, column: 8 }
16092 }
16093 },
16094
16095 'while (true) { break /* Multiline\nComment */there; }': {
16096 type: 'WhileStatement',
16097 test: {
16098 type: 'Literal',
16099 value: true,
16100 raw: 'true',
16101 range: [7, 11],
16102 loc: {
16103 start: { line: 1, column: 7 },
16104 end: { line: 1, column: 11 }
16105 }
16106 },
16107 body: {
16108 type: 'BlockStatement',
16109 body: [{
16110 type: 'BreakStatement',
16111 label: null,
16112 range: [15, 20],
16113 loc: {
16114 start: { line: 1, column: 15 },
16115 end: { line: 1, column: 20 }
16116 }
16117 }, {
16118 type: 'ExpressionStatement',
16119 expression: {
16120 type: 'Identifier',
16121 name: 'there',
16122 range: [44, 49],
16123 loc: {
16124 start: { line: 2, column: 10 },
16125 end: { line: 2, column: 15 }
16126 }
16127 },
16128 range: [44, 50],
16129 loc: {
16130 start: { line: 2, column: 10 },
16131 end: { line: 2, column: 16 }
16132 }
16133 }],
16134 range: [13, 52],
16135 loc: {
16136 start: { line: 1, column: 13 },
16137 end: { line: 2, column: 18 }
16138 }
16139 },
16140 range: [0, 52],
16141 loc: {
16142 start: { line: 1, column: 0 },
16143 end: { line: 2, column: 18 }
16144 }
16145 },
16146
16147 '(function(){ return\nx; })': {
16148 type: 'ExpressionStatement',
16149 expression: {
16150 type: 'FunctionExpression',
16151 id: null,
16152 params: [],
16153 defaults: [],
16154 body: {
16155 type: 'BlockStatement',
16156 body: [
16157 {
16158 type: 'ReturnStatement',
16159 argument: null,
16160 range: [13, 19],
16161 loc: {
16162 start: { line: 1, column: 13 },
16163 end: { line: 1, column: 19 }
16164 }
16165 },
16166 {
16167 type: 'ExpressionStatement',
16168 expression: {
16169 type: 'Identifier',
16170 name: 'x',
16171 range: [20, 21],
16172 loc: {
16173 start: { line: 2, column: 0 },
16174 end: { line: 2, column: 1 }
16175 }
16176 },
16177 range: [20, 22],
16178 loc: {
16179 start: { line: 2, column: 0 },
16180 end: { line: 2, column: 2 }
16181 }
16182 }
16183 ],
16184 range: [11, 24],
16185 loc: {
16186 start: { line: 1, column: 11 },
16187 end: { line: 2, column: 4 }
16188 }
16189 },
16190 rest: null,
16191 generator: false,
16192 expression: false,
16193 range: [1, 24],
16194 loc: {
16195 start: { line: 1, column: 1 },
16196 end: { line: 2, column: 4 }
16197 }
16198 },
16199 range: [0, 25],
16200 loc: {
16201 start: { line: 1, column: 0 },
16202 end: { line: 2, column: 5 }
16203 }
16204 },
16205
16206 '(function(){ return // Comment\nx; })': {
16207 type: 'ExpressionStatement',
16208 expression: {
16209 type: 'FunctionExpression',
16210 id: null,
16211 params: [],
16212 defaults: [],
16213 body: {
16214 type: 'BlockStatement',
16215 body: [
16216 {
16217 type: 'ReturnStatement',
16218 argument: null,
16219 range: [13, 19],
16220 loc: {
16221 start: { line: 1, column: 13 },
16222 end: { line: 1, column: 19 }
16223 }
16224 },
16225 {
16226 type: 'ExpressionStatement',
16227 expression: {
16228 type: 'Identifier',
16229 name: 'x',
16230 range: [31, 32],
16231 loc: {
16232 start: { line: 2, column: 0 },
16233 end: { line: 2, column: 1 }
16234 }
16235 },
16236 range: [31, 33],
16237 loc: {
16238 start: { line: 2, column: 0 },
16239 end: { line: 2, column: 2 }
16240 }
16241 }
16242 ],
16243 range: [11, 35],
16244 loc: {
16245 start: { line: 1, column: 11 },
16246 end: { line: 2, column: 4 }
16247 }
16248 },
16249 rest: null,
16250 generator: false,
16251 expression: false,
16252 range: [1, 35],
16253 loc: {
16254 start: { line: 1, column: 1 },
16255 end: { line: 2, column: 4 }
16256 }
16257 },
16258 range: [0, 36],
16259 loc: {
16260 start: { line: 1, column: 0 },
16261 end: { line: 2, column: 5 }
16262 }
16263 },
16264
16265 '(function(){ return/* Multiline\nComment */x; })': {
16266 type: 'ExpressionStatement',
16267 expression: {
16268 type: 'FunctionExpression',
16269 id: null,
16270 params: [],
16271 defaults: [],
16272 body: {
16273 type: 'BlockStatement',
16274 body: [
16275 {
16276 type: 'ReturnStatement',
16277 argument: null,
16278 range: [13, 19],
16279 loc: {
16280 start: { line: 1, column: 13 },
16281 end: { line: 1, column: 19 }
16282 }
16283 },
16284 {
16285 type: 'ExpressionStatement',
16286 expression: {
16287 type: 'Identifier',
16288 name: 'x',
16289 range: [42, 43],
16290 loc: {
16291 start: { line: 2, column: 10 },
16292 end: { line: 2, column: 11 }
16293 }
16294 },
16295 range: [42, 44],
16296 loc: {
16297 start: { line: 2, column: 10 },
16298 end: { line: 2, column: 12 }
16299 }
16300 }
16301 ],
16302 range: [11, 46],
16303 loc: {
16304 start: { line: 1, column: 11 },
16305 end: { line: 2, column: 14 }
16306 }
16307 },
16308 rest: null,
16309 generator: false,
16310 expression: false,
16311 range: [1, 46],
16312 loc: {
16313 start: { line: 1, column: 1 },
16314 end: { line: 2, column: 14 }
16315 }
16316 },
16317 range: [0, 47],
16318 loc: {
16319 start: { line: 1, column: 0 },
16320 end: { line: 2, column: 15 }
16321 }
16322 },
16323
16324 '{ throw error\nerror; }': {
16325 type: 'BlockStatement',
16326 body: [{
16327 type: 'ThrowStatement',
16328 argument: {
16329 type: 'Identifier',
16330 name: 'error',
16331 range: [8, 13],
16332 loc: {
16333 start: { line: 1, column: 8 },
16334 end: { line: 1, column: 13 }
16335 }
16336 },
16337 range: [2, 14],
16338 loc: {
16339 start: { line: 1, column: 2 },
16340 end: { line: 2, column: 0 }
16341 }
16342 }, {
16343 type: 'ExpressionStatement',
16344 expression: {
16345 type: 'Identifier',
16346 name: 'error',
16347 range: [14, 19],
16348 loc: {
16349 start: { line: 2, column: 0 },
16350 end: { line: 2, column: 5 }
16351 }
16352 },
16353 range: [14, 20],
16354 loc: {
16355 start: { line: 2, column: 0 },
16356 end: { line: 2, column: 6 }
16357 }
16358 }],
16359 range: [0, 22],
16360 loc: {
16361 start: { line: 1, column: 0 },
16362 end: { line: 2, column: 8 }
16363 }
16364 },
16365
16366 '{ throw error// Comment\nerror; }': {
16367 type: 'BlockStatement',
16368 body: [{
16369 type: 'ThrowStatement',
16370 argument: {
16371 type: 'Identifier',
16372 name: 'error',
16373 range: [8, 13],
16374 loc: {
16375 start: { line: 1, column: 8 },
16376 end: { line: 1, column: 13 }
16377 }
16378 },
16379 range: [2, 24],
16380 loc: {
16381 start: { line: 1, column: 2 },
16382 end: { line: 2, column: 0 }
16383 }
16384 }, {
16385 type: 'ExpressionStatement',
16386 expression: {
16387 type: 'Identifier',
16388 name: 'error',
16389 range: [24, 29],
16390 loc: {
16391 start: { line: 2, column: 0 },
16392 end: { line: 2, column: 5 }
16393 }
16394 },
16395 range: [24, 30],
16396 loc: {
16397 start: { line: 2, column: 0 },
16398 end: { line: 2, column: 6 }
16399 }
16400 }],
16401 range: [0, 32],
16402 loc: {
16403 start: { line: 1, column: 0 },
16404 end: { line: 2, column: 8 }
16405 }
16406 },
16407
16408 '{ throw error/* Multiline\nComment */error; }': {
16409 type: 'BlockStatement',
16410 body: [{
16411 type: 'ThrowStatement',
16412 argument: {
16413 type: 'Identifier',
16414 name: 'error',
16415 range: [8, 13],
16416 loc: {
16417 start: { line: 1, column: 8 },
16418 end: { line: 1, column: 13 }
16419 }
16420 },
16421 range: [2, 36],
16422 loc: {
16423 start: { line: 1, column: 2 },
16424 end: { line: 2, column: 10 }
16425 }
16426 }, {
16427 type: 'ExpressionStatement',
16428 expression: {
16429 type: 'Identifier',
16430 name: 'error',
16431 range: [36, 41],
16432 loc: {
16433 start: { line: 2, column: 10 },
16434 end: { line: 2, column: 15 }
16435 }
16436 },
16437 range: [36, 42],
16438 loc: {
16439 start: { line: 2, column: 10 },
16440 end: { line: 2, column: 16 }
16441 }
16442 }],
16443 range: [0, 44],
16444 loc: {
16445 start: { line: 1, column: 0 },
16446 end: { line: 2, column: 18 }
16447 }
16448 }
16449
16450 },
16451
16452 'Source elements': {
16453
16454 '': {
16455 type: 'Program',
16456 body: [],
16457 range: [0, 0],
16458 loc: {
16459 start: { line: 0, column: 0 },
16460 end: { line: 0, column: 0 }
16461 },
16462 tokens: []
16463 }
16464 },
16465
16466 'Source option': {
16467 'x + y - z': {
16468 type: 'ExpressionStatement',
16469 expression: {
16470 type: 'BinaryExpression',
16471 operator: '-',
16472 left: {
16473 type: 'BinaryExpression',
16474 operator: '+',
16475 left: {
16476 type: 'Identifier',
16477 name: 'x',
16478 range: [0, 1],
16479 loc: {
16480 start: { line: 1, column: 0 },
16481 end: { line: 1, column: 1 },
16482 source: '42.js'
16483 }
16484 },
16485 right: {
16486 type: 'Identifier',
16487 name: 'y',
16488 range: [4, 5],
16489 loc: {
16490 start: { line: 1, column: 4 },
16491 end: { line: 1, column: 5 },
16492 source: '42.js'
16493 }
16494 },
16495 range: [0, 5],
16496 loc: {
16497 start: { line: 1, column: 0 },
16498 end: { line: 1, column: 5 },
16499 source: '42.js'
16500 }
16501 },
16502 right: {
16503 type: 'Identifier',
16504 name: 'z',
16505 range: [8, 9],
16506 loc: {
16507 start: { line: 1, column: 8 },
16508 end: { line: 1, column: 9 },
16509 source: '42.js'
16510 }
16511 },
16512 range: [0, 9],
16513 loc: {
16514 start: { line: 1, column: 0 },
16515 end: { line: 1, column: 9 },
16516 source: '42.js'
16517 }
16518 },
16519 range: [0, 9],
16520 loc: {
16521 start: { line: 1, column: 0 },
16522 end: { line: 1, column: 9 },
16523 source: '42.js'
16524 }
16525 },
16526
16527 'a + (b < (c * d)) + e': {
16528 type: 'ExpressionStatement',
16529 expression: {
16530 type: 'BinaryExpression',
16531 operator: '+',
16532 left: {
16533 type: 'BinaryExpression',
16534 operator: '+',
16535 left: {
16536 type: 'Identifier',
16537 name: 'a',
16538 range: [0, 1],
16539 loc: {
16540 start: { line: 1, column: 0 },
16541 end: { line: 1, column: 1 },
16542 source: '42.js'
16543 }
16544 },
16545 right: {
16546 type: 'BinaryExpression',
16547 operator: '<',
16548 left: {
16549 type: 'Identifier',
16550 name: 'b',
16551 range: [5, 6],
16552 loc: {
16553 start: { line: 1, column: 5 },
16554 end: { line: 1, column: 6 },
16555 source: '42.js'
16556 }
16557 },
16558 right: {
16559 type: 'BinaryExpression',
16560 operator: '*',
16561 left: {
16562 type: 'Identifier',
16563 name: 'c',
16564 range: [10, 11],
16565 loc: {
16566 start: { line: 1, column: 10 },
16567 end: { line: 1, column: 11 },
16568 source: '42.js'
16569 }
16570 },
16571 right: {
16572 type: 'Identifier',
16573 name: 'd',
16574 range: [14, 15],
16575 loc: {
16576 start: { line: 1, column: 14 },
16577 end: { line: 1, column: 15 },
16578 source: '42.js'
16579 }
16580 },
16581 range: [10, 15],
16582 loc: {
16583 start: { line: 1, column: 10 },
16584 end: { line: 1, column: 15 },
16585 source: '42.js'
16586 }
16587 },
16588 range: [5, 16],
16589 loc: {
16590 start: { line: 1, column: 5 },
16591 end: { line: 1, column: 16 },
16592 source: '42.js'
16593 }
16594 },
16595 range: [0, 17],
16596 loc: {
16597 start: { line: 1, column: 0 },
16598 end: { line: 1, column: 17 },
16599 source: '42.js'
16600 }
16601 },
16602 right: {
16603 type: 'Identifier',
16604 name: 'e',
16605 range: [20, 21],
16606 loc: {
16607 start: { line: 1, column: 20 },
16608 end: { line: 1, column: 21 },
16609 source: '42.js'
16610 }
16611 },
16612 range: [0, 21],
16613 loc: {
16614 start: { line: 1, column: 0 },
16615 end: { line: 1, column: 21 },
16616 source: '42.js'
16617 }
16618 },
16619 range: [0, 21],
16620 loc: {
16621 start: { line: 1, column: 0 },
16622 end: { line: 1, column: 21 },
16623 source: '42.js'
16624 }
16625 }
16626
16627 },
16628
16629
16630 'Invalid syntax': {
16631
16632 '{': {
16633 index: 1,
16634 lineNumber: 1,
16635 column: 2,
16636 message: 'Error: Line 1: Unexpected end of input'
16637 },
16638
16639 '}': {
16640 index: 0,
16641 lineNumber: 1,
16642 column: 1,
16643 message: 'Error: Line 1: Unexpected token }'
16644 },
16645
16646 '3ea': {
16647 index: 2,
16648 lineNumber: 1,
16649 column: 3,
16650 message: 'Error: Line 1: Unexpected token ILLEGAL'
16651 },
16652
16653 '3in []': {
16654 index: 1,
16655 lineNumber: 1,
16656 column: 2,
16657 message: 'Error: Line 1: Unexpected token ILLEGAL'
16658 },
16659
16660 '3e': {
16661 index: 2,
16662 lineNumber: 1,
16663 column: 3,
16664 message: 'Error: Line 1: Unexpected token ILLEGAL'
16665 },
16666
16667 '3e+': {
16668 index: 3,
16669 lineNumber: 1,
16670 column: 4,
16671 message: 'Error: Line 1: Unexpected token ILLEGAL'
16672 },
16673
16674 '3e-': {
16675 index: 3,
16676 lineNumber: 1,
16677 column: 4,
16678 message: 'Error: Line 1: Unexpected token ILLEGAL'
16679 },
16680
16681 '3x': {
16682 index: 1,
16683 lineNumber: 1,
16684 column: 2,
16685 message: 'Error: Line 1: Unexpected token ILLEGAL'
16686 },
16687
16688 '3x0': {
16689 index: 1,
16690 lineNumber: 1,
16691 column: 2,
16692 message: 'Error: Line 1: Unexpected token ILLEGAL'
16693 },
16694
16695 '0x': {
16696 index: 2,
16697 lineNumber: 1,
16698 column: 3,
16699 message: 'Error: Line 1: Unexpected token ILLEGAL'
16700 },
16701
16702 '09': {
16703 index: 1,
16704 lineNumber: 1,
16705 column: 2,
16706 message: 'Error: Line 1: Unexpected token ILLEGAL'
16707 },
16708
16709 '018': {
16710 index: 2,
16711 lineNumber: 1,
16712 column: 3,
16713 message: 'Error: Line 1: Unexpected token ILLEGAL'
16714 },
16715
16716 '01a': {
16717 index: 2,
16718 lineNumber: 1,
16719 column: 3,
16720 message: 'Error: Line 1: Unexpected token ILLEGAL'
16721 },
16722
16723 '3in[]': {
16724 index: 1,
16725 lineNumber: 1,
16726 column: 2,
16727 message: 'Error: Line 1: Unexpected token ILLEGAL'
16728 },
16729
16730 '0x3in[]': {
16731 index: 3,
16732 lineNumber: 1,
16733 column: 4,
16734 message: 'Error: Line 1: Unexpected token ILLEGAL'
16735 },
16736
16737 '"Hello\nWorld"': {
16738 index: 7,
16739 lineNumber: 1,
16740 column: 8,
16741 message: 'Error: Line 1: Unexpected token ILLEGAL'
16742 },
16743
16744 'x\\': {
16745 index: 2,
16746 lineNumber: 1,
16747 column: 3,
16748 message: 'Error: Line 1: Unexpected token ILLEGAL'
16749 },
16750
16751 'x\\u005c': {
16752 index: 7,
16753 lineNumber: 1,
16754 column: 8,
16755 message: 'Error: Line 1: Unexpected token ILLEGAL'
16756 },
16757
16758 'x\\u002a': {
16759 index: 7,
16760 lineNumber: 1,
16761 column: 8,
16762 message: 'Error: Line 1: Unexpected token ILLEGAL'
16763 },
16764
16765 'var x = /(s/g': {
16766 index: 13,
16767 lineNumber: 1,
16768 column: 14,
16769 message: 'Error: Line 1: Invalid regular expression'
16770 },
16771
16772 'a\\u': {
16773 index: 3,
16774 lineNumber: 1,
16775 column: 4,
16776 message: 'Error: Line 1: Unexpected token ILLEGAL'
16777 },
16778
16779 '\\ua': {
16780 index: 3,
16781 lineNumber: 1,
16782 column: 4,
16783 message: 'Error: Line 1: Unexpected token ILLEGAL'
16784 },
16785
16786 '/': {
16787 index: 1,
16788 lineNumber: 1,
16789 column: 2,
16790 message: 'Error: Line 1: Invalid regular expression: missing /'
16791 },
16792
16793 '/test': {
16794 index: 5,
16795 lineNumber: 1,
16796 column: 6,
16797 message: 'Error: Line 1: Invalid regular expression: missing /'
16798 },
16799
16800 'var x = /[a-z]/\\ux': {
16801 index: 18,
16802 lineNumber: 1,
16803 column: 19,
16804 message: 'Error: Line 1: Invalid regular expression'
16805 },
16806
16807 '3 = 4': {
16808 index: 1,
16809 lineNumber: 1,
16810 column: 2,
16811 message: 'Error: Line 1: Invalid left-hand side in assignment'
16812 },
16813
16814 'func() = 4': {
16815 index: 6,
16816 lineNumber: 1,
16817 column: 7,
16818 message: 'Error: Line 1: Invalid left-hand side in assignment'
16819 },
16820
16821 '(1 + 1) = 10': {
16822 index: 7,
16823 lineNumber: 1,
16824 column: 8,
16825 message: 'Error: Line 1: Invalid left-hand side in assignment'
16826 },
16827
16828 '1++': {
16829 index: 1,
16830 lineNumber: 1,
16831 column: 2,
16832 message: 'Error: Line 1: Invalid left-hand side in assignment'
16833 },
16834
16835 '1--': {
16836 index: 1,
16837 lineNumber: 1,
16838 column: 2,
16839 message: 'Error: Line 1: Invalid left-hand side in assignment'
16840 },
16841
16842 '++1': {
16843 index: 3,
16844 lineNumber: 1,
16845 column: 4,
16846 message: 'Error: Line 1: Invalid left-hand side in assignment'
16847 },
16848
16849 '--1': {
16850 index: 3,
16851 lineNumber: 1,
16852 column: 4,
16853 message: 'Error: Line 1: Invalid left-hand side in assignment'
16854 },
16855
16856 'for((1 + 1) in list) process(x);': {
16857 index: 11,
16858 lineNumber: 1,
16859 column: 12,
16860 message: 'Error: Line 1: Invalid left-hand side in for-in'
16861 },
16862
16863 '[': {
16864 index: 1,
16865 lineNumber: 1,
16866 column: 2,
16867 message: 'Error: Line 1: Unexpected end of input'
16868 },
16869
16870 '[,': {
16871 index: 2,
16872 lineNumber: 1,
16873 column: 3,
16874 message: 'Error: Line 1: Unexpected end of input'
16875 },
16876
16877 '1 + {': {
16878 index: 5,
16879 lineNumber: 1,
16880 column: 6,
16881 message: 'Error: Line 1: Unexpected end of input'
16882 },
16883
16884 '1 + { t:t ': {
16885 index: 10,
16886 lineNumber: 1,
16887 column: 11,
16888 message: 'Error: Line 1: Unexpected end of input'
16889 },
16890
16891 '1 + { t:t,': {
16892 index: 10,
16893 lineNumber: 1,
16894 column: 11,
16895 message: 'Error: Line 1: Unexpected end of input'
16896 },
16897
16898 'var x = /\n/': {
16899 index: 10,
16900 lineNumber: 1,
16901 column: 11,
16902 message: 'Error: Line 1: Invalid regular expression: missing /'
16903 },
16904
16905 'var x = "\n': {
16906 index: 10,
16907 lineNumber: 1,
16908 column: 11,
16909 message: 'Error: Line 1: Unexpected token ILLEGAL'
16910 },
16911
16912 'var if = 42': {
16913 index: 4,
16914 lineNumber: 1,
16915 column: 5,
16916 message: 'Error: Line 1: Unexpected token if'
16917 },
16918
16919 'i #= 42': {
16920 index: 2,
16921 lineNumber: 1,
16922 column: 3,
16923 message: 'Error: Line 1: Unexpected token ILLEGAL'
16924 },
16925
16926 'i + 2 = 42': {
16927 index: 5,
16928 lineNumber: 1,
16929 column: 6,
16930 message: 'Error: Line 1: Invalid left-hand side in assignment'
16931 },
16932
16933 '+i = 42': {
16934 index: 2,
16935 lineNumber: 1,
16936 column: 3,
16937 message: 'Error: Line 1: Invalid left-hand side in assignment'
16938 },
16939
16940 '1 + (': {
16941 index: 5,
16942 lineNumber: 1,
16943 column: 6,
16944 message: 'Error: Line 1: Unexpected end of input'
16945 },
16946
16947 '\n\n\n{': {
16948 index: 4,
16949 lineNumber: 4,
16950 column: 2,
16951 message: 'Error: Line 4: Unexpected end of input'
16952 },
16953
16954 '\n/* Some multiline\ncomment */\n)': {
16955 index: 30,
16956 lineNumber: 4,
16957 column: 1,
16958 message: 'Error: Line 4: Unexpected token )'
16959 },
16960
16961 '{ set 1 }': {
16962 index: 6,
16963 lineNumber: 1,
16964 column: 7,
16965 message: 'Error: Line 1: Unexpected number'
16966 },
16967
16968 '{ get 2 }': {
16969 index: 6,
16970 lineNumber: 1,
16971 column: 7,
16972 message: 'Error: Line 1: Unexpected number'
16973 },
16974
16975 '({ set: s(if) { } })': {
16976 index: 10,
16977 lineNumber: 1,
16978 column: 11,
16979 message: 'Error: Line 1: Unexpected token if'
16980 },
16981
16982 '({ set s(.) { } })': {
16983 index: 9,
16984 lineNumber: 1,
16985 column: 10,
16986 message: 'Error: Line 1: Unexpected token .'
16987 },
16988
16989 '({ set: s() { } })': {
16990 index: 12,
16991 lineNumber: 1,
16992 column: 13,
16993 message: 'Error: Line 1: Unexpected token {'
16994 },
16995
16996 '({ set: s(a, b) { } })': {
16997 index: 16,
16998 lineNumber: 1,
16999 column: 17,
17000 message: 'Error: Line 1: Unexpected token {'
17001 },
17002
17003 '({ get: g(d) { } })': {
17004 index: 13,
17005 lineNumber: 1,
17006 column: 14,
17007 message: 'Error: Line 1: Unexpected token {'
17008 },
17009
17010 '({ get i() { }, i: 42 })': {
17011 index: 21,
17012 lineNumber: 1,
17013 column: 22,
17014 message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
17015 },
17016
17017 '({ i: 42, get i() { } })': {
17018 index: 21,
17019 lineNumber: 1,
17020 column: 22,
17021 message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
17022 },
17023
17024 '({ set i(x) { }, i: 42 })': {
17025 index: 22,
17026 lineNumber: 1,
17027 column: 23,
17028 message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
17029 },
17030
17031 '({ i: 42, set i(x) { } })': {
17032 index: 22,
17033 lineNumber: 1,
17034 column: 23,
17035 message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
17036 },
17037
17038 '({ get i() { }, get i() { } })': {
17039 index: 27,
17040 lineNumber: 1,
17041 column: 28,
17042 message: 'Error: Line 1: Object literal may not have multiple get/set accessors with the same name'
17043 },
17044
17045 '({ set i(x) { }, set i(x) { } })': {
17046 index: 29,
17047 lineNumber: 1,
17048 column: 30,
17049 message: 'Error: Line 1: Object literal may not have multiple get/set accessors with the same name'
17050 },
17051
17052 'function t(if) { }': {
17053 index: 11,
17054 lineNumber: 1,
17055 column: 12,
17056 message: 'Error: Line 1: Unexpected token if'
17057 },
17058
17059 'function t(true) { }': {
17060 index: 11,
17061 lineNumber: 1,
17062 column: 12,
17063 message: 'Error: Line 1: Unexpected token true'
17064 },
17065
17066 'function t(false) { }': {
17067 index: 11,
17068 lineNumber: 1,
17069 column: 12,
17070 message: 'Error: Line 1: Unexpected token false'
17071 },
17072
17073 'function t(null) { }': {
17074 index: 11,
17075 lineNumber: 1,
17076 column: 12,
17077 message: 'Error: Line 1: Unexpected token null'
17078 },
17079
17080 'function null() { }': {
17081 index: 9,
17082 lineNumber: 1,
17083 column: 10,
17084 message: 'Error: Line 1: Unexpected token null'
17085 },
17086
17087 'function true() { }': {
17088 index: 9,
17089 lineNumber: 1,
17090 column: 10,
17091 message: 'Error: Line 1: Unexpected token true'
17092 },
17093
17094 'function false() { }': {
17095 index: 9,
17096 lineNumber: 1,
17097 column: 10,
17098 message: 'Error: Line 1: Unexpected token false'
17099 },
17100
17101 'function if() { }': {
17102 index: 9,
17103 lineNumber: 1,
17104 column: 10,
17105 message: 'Error: Line 1: Unexpected token if'
17106 },
17107
17108 'a b;': {
17109 index: 2,
17110 lineNumber: 1,
17111 column: 3,
17112 message: 'Error: Line 1: Unexpected identifier'
17113 },
17114
17115 'if.a;': {
17116 index: 2,
17117 lineNumber: 1,
17118 column: 3,
17119 message: 'Error: Line 1: Unexpected token .'
17120 },
17121
17122 'a if;': {
17123 index: 2,
17124 lineNumber: 1,
17125 column: 3,
17126 message: 'Error: Line 1: Unexpected token if'
17127 },
17128
17129 'a class;': {
17130 index: 2,
17131 lineNumber: 1,
17132 column: 3,
17133 message: 'Error: Line 1: Unexpected reserved word'
17134 },
17135
17136 'break\n': {
17137 index: 5,
17138 lineNumber: 1,
17139 column: 6,
17140 message: 'Error: Line 1: Illegal break statement'
17141 },
17142
17143 'break 1;': {
17144 index: 6,
17145 lineNumber: 1,
17146 column: 7,
17147 message: 'Error: Line 1: Unexpected number'
17148 },
17149
17150 'continue\n': {
17151 index: 8,
17152 lineNumber: 1,
17153 column: 9,
17154 message: 'Error: Line 1: Illegal continue statement'
17155 },
17156
17157 'continue 2;': {
17158 index: 9,
17159 lineNumber: 1,
17160 column: 10,
17161 message: 'Error: Line 1: Unexpected number'
17162 },
17163
17164 'throw': {
17165 index: 5,
17166 lineNumber: 1,
17167 column: 6,
17168 message: 'Error: Line 1: Unexpected end of input'
17169 },
17170
17171 'throw;': {
17172 index: 5,
17173 lineNumber: 1,
17174 column: 6,
17175 message: 'Error: Line 1: Unexpected token ;'
17176 },
17177
17178 'throw\n': {
17179 index: 5,
17180 lineNumber: 1,
17181 column: 6,
17182 message: 'Error: Line 1: Illegal newline after throw'
17183 },
17184
17185 'for (var i, i2 in {});': {
17186 index: 15,
17187 lineNumber: 1,
17188 column: 16,
17189 message: 'Error: Line 1: Unexpected token in'
17190 },
17191
17192 'for ((i in {}));': {
17193 index: 14,
17194 lineNumber: 1,
17195 column: 15,
17196 message: 'Error: Line 1: Unexpected token )'
17197 },
17198
17199 'for (i + 1 in {});': {
17200 index: 10,
17201 lineNumber: 1,
17202 column: 11,
17203 message: 'Error: Line 1: Invalid left-hand side in for-in'
17204 },
17205
17206 'for (+i in {});': {
17207 index: 7,
17208 lineNumber: 1,
17209 column: 8,
17210 message: 'Error: Line 1: Invalid left-hand side in for-in'
17211 },
17212
17213 'if(false)': {
17214 index: 9,
17215 lineNumber: 1,
17216 column: 10,
17217 message: 'Error: Line 1: Unexpected end of input'
17218 },
17219
17220 'if(false) doThis(); else': {
17221 index: 24,
17222 lineNumber: 1,
17223 column: 25,
17224 message: 'Error: Line 1: Unexpected end of input'
17225 },
17226
17227 'do': {
17228 index: 2,
17229 lineNumber: 1,
17230 column: 3,
17231 message: 'Error: Line 1: Unexpected end of input'
17232 },
17233
17234 'while(false)': {
17235 index: 12,
17236 lineNumber: 1,
17237 column: 13,
17238 message: 'Error: Line 1: Unexpected end of input'
17239 },
17240
17241 'for(;;)': {
17242 index: 7,
17243 lineNumber: 1,
17244 column: 8,
17245 message: 'Error: Line 1: Unexpected end of input'
17246 },
17247
17248 'with(x)': {
17249 index: 7,
17250 lineNumber: 1,
17251 column: 8,
17252 message: 'Error: Line 1: Unexpected end of input'
17253 },
17254
17255 'try { }': {
17256 index: 7,
17257 lineNumber: 1,
17258 column: 8,
17259 message: 'Error: Line 1: Missing catch or finally after try'
17260 },
17261
17262 '\u203F = 10': {
17263 index: 0,
17264 lineNumber: 1,
17265 column: 1,
17266 message: 'Error: Line 1: Unexpected token ILLEGAL'
17267 },
17268
17269 'const x = 12, y;': {
17270 index: 15,
17271 lineNumber: 1,
17272 column: 16,
17273 message: 'Error: Line 1: Const must be initialized'
17274 },
17275
17276 'const x, y = 12;': {
17277 index: 7,
17278 lineNumber: 1,
17279 column: 8,
17280 message: 'Error: Line 1: Const must be initialized'
17281 },
17282
17283 'const x;': {
17284 index: 7,
17285 lineNumber: 1,
17286 column: 8,
17287 message: 'Error: Line 1: Const must be initialized'
17288 },
17289
17290 'if(true) let a = 1;': {
17291 index: 9,
17292 lineNumber: 1,
17293 column: 10,
17294 message: 'Error: Line 1: Unexpected token let'
17295 },
17296
17297 'if(true) const a = 1;': {
17298 index: 9,
17299 lineNumber: 1,
17300 column: 10,
17301 message: 'Error: Line 1: Unexpected token const'
17302 },
17303
17304 'switch (c) { default: default: }': {
17305 index: 30,
17306 lineNumber: 1,
17307 column: 31,
17308 message: 'Error: Line 1: More than one default clause in switch statement'
17309 },
17310
17311 'new X()."s"': {
17312 index: 8,
17313 lineNumber: 1,
17314 column: 9,
17315 message: 'Error: Line 1: Unexpected string'
17316 },
17317
17318 '/*': {
17319 index: 2,
17320 lineNumber: 1,
17321 column: 3,
17322 message: 'Error: Line 1: Unexpected token ILLEGAL'
17323 },
17324
17325 '/*\n\n\n': {
17326 index: 5,
17327 lineNumber: 4,
17328 column: 1,
17329 message: 'Error: Line 4: Unexpected token ILLEGAL'
17330 },
17331
17332 '/**': {
17333 index: 3,
17334 lineNumber: 1,
17335 column: 4,
17336 message: 'Error: Line 1: Unexpected token ILLEGAL'
17337 },
17338
17339 '/*\n\n*': {
17340 index: 5,
17341 lineNumber: 3,
17342 column: 2,
17343 message: 'Error: Line 3: Unexpected token ILLEGAL'
17344 },
17345
17346 '/*hello': {
17347 index: 7,
17348 lineNumber: 1,
17349 column: 8,
17350 message: 'Error: Line 1: Unexpected token ILLEGAL'
17351 },
17352
17353 '/*hello *': {
17354 index: 10,
17355 lineNumber: 1,
17356 column: 11,
17357 message: 'Error: Line 1: Unexpected token ILLEGAL'
17358 },
17359
17360 '\n]': {
17361 index: 1,
17362 lineNumber: 2,
17363 column: 1,
17364 message: 'Error: Line 2: Unexpected token ]'
17365 },
17366
17367 '\r]': {
17368 index: 1,
17369 lineNumber: 2,
17370 column: 1,
17371 message: 'Error: Line 2: Unexpected token ]'
17372 },
17373
17374 '\r\n]': {
17375 index: 2,
17376 lineNumber: 2,
17377 column: 1,
17378 message: 'Error: Line 2: Unexpected token ]'
17379 },
17380
17381 '\n\r]': {
17382 index: 2,
17383 lineNumber: 3,
17384 column: 1,
17385 message: 'Error: Line 3: Unexpected token ]'
17386 },
17387
17388 '//\r\n]': {
17389 index: 4,
17390 lineNumber: 2,
17391 column: 1,
17392 message: 'Error: Line 2: Unexpected token ]'
17393 },
17394
17395 '//\n\r]': {
17396 index: 4,
17397 lineNumber: 3,
17398 column: 1,
17399 message: 'Error: Line 3: Unexpected token ]'
17400 },
17401
17402 '/a\\\n/': {
17403 index: 4,
17404 lineNumber: 1,
17405 column: 5,
17406 message: 'Error: Line 1: Invalid regular expression: missing /'
17407 },
17408
17409 '//\r \n]': {
17410 index: 5,
17411 lineNumber: 3,
17412 column: 1,
17413 message: 'Error: Line 3: Unexpected token ]'
17414 },
17415
17416 '/*\r\n*/]': {
17417 index: 6,
17418 lineNumber: 2,
17419 column: 3,
17420 message: 'Error: Line 2: Unexpected token ]'
17421 },
17422
17423 '/*\n\r*/]': {
17424 index: 6,
17425 lineNumber: 3,
17426 column: 3,
17427 message: 'Error: Line 3: Unexpected token ]'
17428 },
17429
17430 '/*\r \n*/]': {
17431 index: 7,
17432 lineNumber: 3,
17433 column: 3,
17434 message: 'Error: Line 3: Unexpected token ]'
17435 },
17436
17437 '\\\\': {
17438 index: 1,
17439 lineNumber: 1,
17440 column: 2,
17441 message: 'Error: Line 1: Unexpected token ILLEGAL'
17442 },
17443
17444 '\\u005c': {
17445 index: 6,
17446 lineNumber: 1,
17447 column: 7,
17448 message: 'Error: Line 1: Unexpected token ILLEGAL'
17449 },
17450
17451
17452 '\\x': {
17453 index: 1,
17454 lineNumber: 1,
17455 column: 2,
17456 message: 'Error: Line 1: Unexpected token ILLEGAL'
17457 },
17458
17459 '\\u0000': {
17460 index: 6,
17461 lineNumber: 1,
17462 column: 7,
17463 message: 'Error: Line 1: Unexpected token ILLEGAL'
17464 },
17465
17466 '\u200C = []': {
17467 index: 0,
17468 lineNumber: 1,
17469 column: 1,
17470 message: 'Error: Line 1: Unexpected token ILLEGAL'
17471 },
17472
17473 '\u200D = []': {
17474 index: 0,
17475 lineNumber: 1,
17476 column: 1,
17477 message: 'Error: Line 1: Unexpected token ILLEGAL'
17478 },
17479
17480 '"\\': {
17481 index: 3,
17482 lineNumber: 1,
17483 column: 4,
17484 message: 'Error: Line 1: Unexpected token ILLEGAL'
17485 },
17486
17487 '"\\u': {
17488 index: 3,
17489 lineNumber: 1,
17490 column: 4,
17491 message: 'Error: Line 1: Unexpected token ILLEGAL'
17492 },
17493
17494 'try { } catch() {}': {
17495 index: 14,
17496 lineNumber: 1,
17497 column: 15,
17498 message: 'Error: Line 1: Unexpected token )'
17499 },
17500
17501 'return': {
17502 index: 6,
17503 lineNumber: 1,
17504 column: 7,
17505 message: 'Error: Line 1: Illegal return statement'
17506 },
17507
17508 'break': {
17509 index: 5,
17510 lineNumber: 1,
17511 column: 6,
17512 message: 'Error: Line 1: Illegal break statement'
17513 },
17514
17515 'continue': {
17516 index: 8,
17517 lineNumber: 1,
17518 column: 9,
17519 message: 'Error: Line 1: Illegal continue statement'
17520 },
17521
17522 'switch (x) { default: continue; }': {
17523 index: 31,
17524 lineNumber: 1,
17525 column: 32,
17526 message: 'Error: Line 1: Illegal continue statement'
17527 },
17528
17529 'do { x } *': {
17530 index: 9,
17531 lineNumber: 1,
17532 column: 10,
17533 message: 'Error: Line 1: Unexpected token *'
17534 },
17535
17536 'while (true) { break x; }': {
17537 index: 22,
17538 lineNumber: 1,
17539 column: 23,
17540 message: 'Error: Line 1: Undefined label \'x\''
17541 },
17542
17543 'while (true) { continue x; }': {
17544 index: 25,
17545 lineNumber: 1,
17546 column: 26,
17547 message: 'Error: Line 1: Undefined label \'x\''
17548 },
17549
17550 'x: while (true) { (function () { break x; }); }': {
17551 index: 40,
17552 lineNumber: 1,
17553 column: 41,
17554 message: 'Error: Line 1: Undefined label \'x\''
17555 },
17556
17557 'x: while (true) { (function () { continue x; }); }': {
17558 index: 43,
17559 lineNumber: 1,
17560 column: 44,
17561 message: 'Error: Line 1: Undefined label \'x\''
17562 },
17563
17564 'x: while (true) { (function () { break; }); }': {
17565 index: 39,
17566 lineNumber: 1,
17567 column: 40,
17568 message: 'Error: Line 1: Illegal break statement'
17569 },
17570
17571 'x: while (true) { (function () { continue; }); }': {
17572 index: 42,
17573 lineNumber: 1,
17574 column: 43,
17575 message: 'Error: Line 1: Illegal continue statement'
17576 },
17577
17578 'x: while (true) { x: while (true) { } }': {
17579 index: 20,
17580 lineNumber: 1,
17581 column: 21,
17582 message: 'Error: Line 1: Label \'x\' has already been declared'
17583 },
17584
17585 '(function () { \'use strict\'; delete i; }())': {
17586 index: 37,
17587 lineNumber: 1,
17588 column: 38,
17589 message: 'Error: Line 1: Delete of an unqualified identifier in strict mode.'
17590 },
17591
17592 '(function () { \'use strict\'; with (i); }())': {
17593 index: 28,
17594 lineNumber: 1,
17595 column: 29,
17596 message: 'Error: Line 1: Strict mode code may not include a with statement'
17597 },
17598
17599 'function hello() {\'use strict\'; ({ i: 42, i: 42 }) }': {
17600 index: 47,
17601 lineNumber: 1,
17602 column: 48,
17603 message: 'Error: Line 1: Duplicate data property in object literal not allowed in strict mode'
17604 },
17605
17606 'function hello() {\'use strict\'; ({ hasOwnProperty: 42, hasOwnProperty: 42 }) }': {
17607 index: 73,
17608 lineNumber: 1,
17609 column: 74,
17610 message: 'Error: Line 1: Duplicate data property in object literal not allowed in strict mode'
17611 },
17612
17613 'function hello() {\'use strict\'; var eval = 10; }': {
17614 index: 40,
17615 lineNumber: 1,
17616 column: 41,
17617 message: 'Error: Line 1: Variable name may not be eval or arguments in strict mode'
17618 },
17619
17620 'function hello() {\'use strict\'; var arguments = 10; }': {
17621 index: 45,
17622 lineNumber: 1,
17623 column: 46,
17624 message: 'Error: Line 1: Variable name may not be eval or arguments in strict mode'
17625 },
17626
17627 'function hello() {\'use strict\'; try { } catch (eval) { } }': {
17628 index: 51,
17629 lineNumber: 1,
17630 column: 52,
17631 message: 'Error: Line 1: Catch variable may not be eval or arguments in strict mode'
17632 },
17633
17634 'function hello() {\'use strict\'; try { } catch (arguments) { } }': {
17635 index: 56,
17636 lineNumber: 1,
17637 column: 57,
17638 message: 'Error: Line 1: Catch variable may not be eval or arguments in strict mode'
17639 },
17640
17641 'function hello() {\'use strict\'; eval = 10; }': {
17642 index: 32,
17643 lineNumber: 1,
17644 column: 33,
17645 message: 'Error: Line 1: Assignment to eval or arguments is not allowed in strict mode'
17646 },
17647
17648 'function hello() {\'use strict\'; arguments = 10; }': {
17649 index: 32,
17650 lineNumber: 1,
17651 column: 33,
17652 message: 'Error: Line 1: Assignment to eval or arguments is not allowed in strict mode'
17653 },
17654
17655 'function hello() {\'use strict\'; ++eval; }': {
17656 index: 38,
17657 lineNumber: 1,
17658 column: 39,
17659 message: 'Error: Line 1: Prefix increment/decrement may not have eval or arguments operand in strict mode'
17660 },
17661
17662 'function hello() {\'use strict\'; --eval; }': {
17663 index: 38,
17664 lineNumber: 1,
17665 column: 39,
17666 message: 'Error: Line 1: Prefix increment/decrement may not have eval or arguments operand in strict mode'
17667 },
17668
17669 'function hello() {\'use strict\'; ++arguments; }': {
17670 index: 43,
17671 lineNumber: 1,
17672 column: 44,
17673 message: 'Error: Line 1: Prefix increment/decrement may not have eval or arguments operand in strict mode'
17674 },
17675
17676 'function hello() {\'use strict\'; --arguments; }': {
17677 index: 43,
17678 lineNumber: 1,
17679 column: 44,
17680 message: 'Error: Line 1: Prefix increment/decrement may not have eval or arguments operand in strict mode'
17681 },
17682
17683 'function hello() {\'use strict\'; eval++; }': {
17684 index: 36,
17685 lineNumber: 1,
17686 column: 37,
17687 message: 'Error: Line 1: Postfix increment/decrement may not have eval or arguments operand in strict mode'
17688 },
17689
17690 'function hello() {\'use strict\'; eval--; }': {
17691 index: 36,
17692 lineNumber: 1,
17693 column: 37,
17694 message: 'Error: Line 1: Postfix increment/decrement may not have eval or arguments operand in strict mode'
17695 },
17696
17697 'function hello() {\'use strict\'; arguments++; }': {
17698 index: 41,
17699 lineNumber: 1,
17700 column: 42,
17701 message: 'Error: Line 1: Postfix increment/decrement may not have eval or arguments operand in strict mode'
17702 },
17703
17704 'function hello() {\'use strict\'; arguments--; }': {
17705 index: 41,
17706 lineNumber: 1,
17707 column: 42,
17708 message: 'Error: Line 1: Postfix increment/decrement may not have eval or arguments operand in strict mode'
17709 },
17710
17711 'function hello() {\'use strict\'; function eval() { } }': {
17712 index: 41,
17713 lineNumber: 1,
17714 column: 42,
17715 message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
17716 },
17717
17718 'function hello() {\'use strict\'; function arguments() { } }': {
17719 index: 41,
17720 lineNumber: 1,
17721 column: 42,
17722 message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
17723 },
17724
17725 'function eval() {\'use strict\'; }': {
17726 index: 9,
17727 lineNumber: 1,
17728 column: 10,
17729 message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
17730 },
17731
17732 'function arguments() {\'use strict\'; }': {
17733 index: 9,
17734 lineNumber: 1,
17735 column: 10,
17736 message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
17737 },
17738
17739 'function hello() {\'use strict\'; (function eval() { }()) }': {
17740 index: 42,
17741 lineNumber: 1,
17742 column: 43,
17743 message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
17744 },
17745
17746 'function hello() {\'use strict\'; (function arguments() { }()) }': {
17747 index: 42,
17748 lineNumber: 1,
17749 column: 43,
17750 message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
17751 },
17752
17753 '(function eval() {\'use strict\'; })()': {
17754 index: 10,
17755 lineNumber: 1,
17756 column: 11,
17757 message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
17758 },
17759
17760 '(function arguments() {\'use strict\'; })()': {
17761 index: 10,
17762 lineNumber: 1,
17763 column: 11,
17764 message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
17765 },
17766
17767 'function hello() {\'use strict\'; ({ s: function eval() { } }); }': {
17768 index: 47,
17769 lineNumber: 1,
17770 column: 48,
17771 message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
17772 },
17773
17774 '(function package() {\'use strict\'; })()': {
17775 index: 10,
17776 lineNumber: 1,
17777 column: 11,
17778 message: 'Error: Line 1: Use of future reserved word in strict mode'
17779 },
17780
17781 'function hello() {\'use strict\'; ({ i: 10, set s(eval) { } }); }': {
17782 index: 48,
17783 lineNumber: 1,
17784 column: 49,
17785 message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
17786 },
17787
17788 'function hello() {\'use strict\'; ({ set s(eval) { } }); }': {
17789 index: 41,
17790 lineNumber: 1,
17791 column: 42,
17792 message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
17793 },
17794
17795 'function hello() {\'use strict\'; ({ s: function s(eval) { } }); }': {
17796 index: 49,
17797 lineNumber: 1,
17798 column: 50,
17799 message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
17800 },
17801
17802 'function hello(eval) {\'use strict\';}': {
17803 index: 15,
17804 lineNumber: 1,
17805 column: 16,
17806 message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
17807 },
17808
17809 'function hello(arguments) {\'use strict\';}': {
17810 index: 15,
17811 lineNumber: 1,
17812 column: 16,
17813 message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
17814 },
17815
17816 'function hello() { \'use strict\'; function inner(eval) {} }': {
17817 index: 48,
17818 lineNumber: 1,
17819 column: 49,
17820 message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
17821 },
17822
17823 'function hello() { \'use strict\'; function inner(arguments) {} }': {
17824 index: 48,
17825 lineNumber: 1,
17826 column: 49,
17827 message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
17828 },
17829
17830 ' "\\1"; \'use strict\';': {
17831 index: 1,
17832 lineNumber: 1,
17833 column: 2,
17834 message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
17835 },
17836
17837 'function hello() { \'use strict\'; "\\1"; }': {
17838 index: 33,
17839 lineNumber: 1,
17840 column: 34,
17841 message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
17842 },
17843
17844 'function hello() { \'use strict\'; 021; }': {
17845 index: 33,
17846 lineNumber: 1,
17847 column: 34,
17848 message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
17849 },
17850
17851 'function hello() { \'use strict\'; ({ "\\1": 42 }); }': {
17852 index: 36,
17853 lineNumber: 1,
17854 column: 37,
17855 message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
17856 },
17857
17858 'function hello() { \'use strict\'; ({ 021: 42 }); }': {
17859 index: 36,
17860 lineNumber: 1,
17861 column: 37,
17862 message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
17863 },
17864
17865 'function hello() { "octal directive\\1"; "use strict"; }': {
17866 index: 19,
17867 lineNumber: 1,
17868 column: 20,
17869 message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
17870 },
17871
17872 'function hello() { "octal directive\\1"; "octal directive\\2"; "use strict"; }': {
17873 index: 19,
17874 lineNumber: 1,
17875 column: 20,
17876 message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
17877 },
17878
17879 'function hello() { "use strict"; function inner() { "octal directive\\1"; } }': {
17880 index: 52,
17881 lineNumber: 1,
17882 column: 53,
17883 message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
17884 },
17885
17886 'function hello() { "use strict"; var implements; }': {
17887 index: 37,
17888 lineNumber: 1,
17889 column: 38,
17890 message: 'Error: Line 1: Use of future reserved word in strict mode'
17891 },
17892
17893 'function hello() { "use strict"; var interface; }': {
17894 index: 37,
17895 lineNumber: 1,
17896 column: 38,
17897 message: 'Error: Line 1: Use of future reserved word in strict mode'
17898 },
17899
17900 'function hello() { "use strict"; var package; }': {
17901 index: 37,
17902 lineNumber: 1,
17903 column: 38,
17904 message: 'Error: Line 1: Use of future reserved word in strict mode'
17905 },
17906
17907 'function hello() { "use strict"; var private; }': {
17908 index: 37,
17909 lineNumber: 1,
17910 column: 38,
17911 message: 'Error: Line 1: Use of future reserved word in strict mode'
17912 },
17913
17914 'function hello() { "use strict"; var protected; }': {
17915 index: 37,
17916 lineNumber: 1,
17917 column: 38,
17918 message: 'Error: Line 1: Use of future reserved word in strict mode'
17919 },
17920
17921 'function hello() { "use strict"; var public; }': {
17922 index: 37,
17923 lineNumber: 1,
17924 column: 38,
17925 message: 'Error: Line 1: Use of future reserved word in strict mode'
17926 },
17927
17928 'function hello() { "use strict"; var static; }': {
17929 index: 37,
17930 lineNumber: 1,
17931 column: 38,
17932 message: 'Error: Line 1: Use of future reserved word in strict mode'
17933 },
17934
17935 'function hello() { "use strict"; var yield; }': {
17936 index: 37,
17937 lineNumber: 1,
17938 column: 38,
17939 message: 'Error: Line 1: Use of future reserved word in strict mode'
17940 },
17941
17942 'function hello() { "use strict"; var let; }': {
17943 index: 37,
17944 lineNumber: 1,
17945 column: 38,
17946 message: 'Error: Line 1: Use of future reserved word in strict mode'
17947 },
17948
17949 'function hello(static) { "use strict"; }': {
17950 index: 15,
17951 lineNumber: 1,
17952 column: 16,
17953 message: 'Error: Line 1: Use of future reserved word in strict mode'
17954 },
17955
17956 'function static() { "use strict"; }': {
17957 index: 9,
17958 lineNumber: 1,
17959 column: 10,
17960 message: 'Error: Line 1: Use of future reserved word in strict mode'
17961 },
17962
17963 'function eval(a) { "use strict"; }': {
17964 index: 9,
17965 lineNumber: 1,
17966 column: 10,
17967 message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
17968 },
17969
17970 'function arguments(a) { "use strict"; }': {
17971 index: 9,
17972 lineNumber: 1,
17973 column: 10,
17974 message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
17975 },
17976
17977 'var yield': {
17978 "type": "VariableDeclaration",
17979 "declarations": [
17980 {
17981 "type": "VariableDeclarator",
17982 "id": {
17983 "type": "Identifier",
17984 "name": "yield",
17985 "range": [
17986 4,
17987 9
17988 ],
17989 "loc": {
17990 "start": {
17991 "line": 1,
17992 "column": 4
17993 },
17994 "end": {
17995 "line": 1,
17996 "column": 9
17997 }
17998 }
17999 },
18000 "init": null,
18001 "range": [
18002 4,
18003 9
18004 ],
18005 "loc": {
18006 "start": {
18007 "line": 1,
18008 "column": 4
18009 },
18010 "end": {
18011 "line": 1,
18012 "column": 9
18013 }
18014 }
18015 }
18016 ],
18017 "kind": "var",
18018 "range": [
18019 0,
18020 9
18021 ],
18022 "loc": {
18023 "start": {
18024 "line": 1,
18025 "column": 0
18026 },
18027 "end": {
18028 "line": 1,
18029 "column": 9
18030 }
18031 }
18032 },
18033
18034 'var let': {
18035 index: 4,
18036 lineNumber: 1,
18037 column: 5,
18038 message: 'Error: Line 1: Unexpected token let'
18039 },
18040
18041 '"use strict"; function static() { }': {
18042 index: 23,
18043 lineNumber: 1,
18044 column: 24,
18045 message: 'Error: Line 1: Use of future reserved word in strict mode'
18046 },
18047
18048 'function a(t, t) { "use strict"; }': {
18049 index: 14,
18050 lineNumber: 1,
18051 column: 15,
18052 message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
18053 },
18054
18055 'function a(eval) { "use strict"; }': {
18056 index: 11,
18057 lineNumber: 1,
18058 column: 12,
18059 message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
18060 },
18061
18062 'function a(package) { "use strict"; }': {
18063 index: 11,
18064 lineNumber: 1,
18065 column: 12,
18066 message: 'Error: Line 1: Use of future reserved word in strict mode'
18067 },
18068
18069 'function a() { "use strict"; function b(t, t) { }; }': {
18070 index: 43,
18071 lineNumber: 1,
18072 column: 44,
18073 message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
18074 },
18075
18076 '(function a(t, t) { "use strict"; })': {
18077 index: 15,
18078 lineNumber: 1,
18079 column: 16,
18080 message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
18081 },
18082
18083 'function a() { "use strict"; (function b(t, t) { }); }': {
18084 index: 44,
18085 lineNumber: 1,
18086 column: 45,
18087 message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
18088 },
18089
18090 '(function a(eval) { "use strict"; })': {
18091 index: 12,
18092 lineNumber: 1,
18093 column: 13,
18094 message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
18095 },
18096
18097 '(function a(package) { "use strict"; })': {
18098 index: 12,
18099 lineNumber: 1,
18100 column: 13,
18101 message: 'Error: Line 1: Use of future reserved word in strict mode'
18102 },
18103
18104 '__proto__: __proto__: 42;': {
18105 index: 21,
18106 lineNumber: 1,
18107 column: 22,
18108 message: 'Error: Line 1: Label \'__proto__\' has already been declared'
18109 },
18110
18111 '"use strict"; function t(__proto__, __proto__) { }': {
18112 index: 36,
18113 lineNumber: 1,
18114 column: 37,
18115 message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
18116 },
18117
18118 '"use strict"; x = { __proto__: 42, __proto__: 43 }': {
18119 index: 48,
18120 lineNumber: 1,
18121 column: 49,
18122 message: 'Error: Line 1: Duplicate data property in object literal not allowed in strict mode'
18123 },
18124
18125 '"use strict"; x = { get __proto__() { }, __proto__: 43 }': {
18126 index: 54,
18127 lineNumber: 1,
18128 column: 55,
18129 message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
18130 },
18131
18132 'var': {
18133 index: 3,
18134 lineNumber: 1,
18135 column: 4,
18136 message: 'Error: Line 1: Unexpected end of input'
18137 },
18138
18139 'let': {
18140 index: 3,
18141 lineNumber: 1,
18142 column: 4,
18143 message: 'Error: Line 1: Unexpected end of input'
18144 },
18145
18146 'const': {
18147 index: 5,
18148 lineNumber: 1,
18149 column: 6,
18150 message: 'Error: Line 1: Unexpected end of input'
18151 },
18152
18153 '{ ; ; ': {
18154 index: 8,
18155 lineNumber: 1,
18156 column: 9,
18157 message: 'Error: Line 1: Unexpected end of input'
18158 },
18159
18160 'function t() { ; ; ': {
18161 index: 21,
18162 lineNumber: 1,
18163 column: 22,
18164 message: 'Error: Line 1: Unexpected end of input'
18165 }
18166
18167 },
18168
18169 'Tokenize': {
18170 'tokenize(/42/)': [
18171 {
18172 "type": "Identifier",
18173 "value": "tokenize",
18174 "range": [
18175 0,
18176 8
18177 ],
18178 "loc": {
18179 "start": {
18180 "line": 1,
18181 "column": 0
18182 },
18183 "end": {
18184 "line": 1,
18185 "column": 8
18186 }
18187 }
18188 },
18189 {
18190 "type": "Punctuator",
18191 "value": "(",
18192 "range": [
18193 8,
18194 9
18195 ],
18196 "loc": {
18197 "start": {
18198 "line": 1,
18199 "column": 8
18200 },
18201 "end": {
18202 "line": 1,
18203 "column": 9
18204 }
18205 }
18206 },
18207 {
18208 "type": "Punctuator",
18209 "value": ")",
18210 "range": [
18211 13,
18212 14
18213 ],
18214 "loc": {
18215 "start": {
18216 "line": 1,
18217 "column": 13
18218 },
18219 "end": {
18220 "line": 1,
18221 "column": 14
18222 }
18223 }
18224 },
18225 {
18226 "type": "RegularExpression",
18227 "value": "/42/",
18228 "range": [
18229 9,
18230 13
18231 ],
18232 "loc": {
18233 "start": {
18234 "line": 1,
18235 "column": 9
18236 },
18237 "end": {
18238 "line": 1,
18239 "column": 13
18240 }
18241 }
18242 },
18243 {
18244 "type": "Punctuator",
18245 "value": ")",
18246 "range": [
18247 13,
18248 14
18249 ],
18250 "loc": {
18251 "start": {
18252 "line": 1,
18253 "column": 13
18254 },
18255 "end": {
18256 "line": 1,
18257 "column": 14
18258 }
18259 }
18260 }
18261 ],
18262
18263 'if (false) { /42/ }': [
18264 {
18265 "type": "Keyword",
18266 "value": "if",
18267 "range": [
18268 0,
18269 2
18270 ],
18271 "loc": {
18272 "start": {
18273 "line": 1,
18274 "column": 0
18275 },
18276 "end": {
18277 "line": 1,
18278 "column": 2
18279 }
18280 }
18281 },
18282 {
18283 "type": "Punctuator",
18284 "value": "(",
18285 "range": [
18286 3,
18287 4
18288 ],
18289 "loc": {
18290 "start": {
18291 "line": 1,
18292 "column": 3
18293 },
18294 "end": {
18295 "line": 1,
18296 "column": 4
18297 }
18298 }
18299 },
18300 {
18301 "type": "Boolean",
18302 "value": "false",
18303 "range": [
18304 4,
18305 9
18306 ],
18307 "loc": {
18308 "start": {
18309 "line": 1,
18310 "column": 4
18311 },
18312 "end": {
18313 "line": 1,
18314 "column": 9
18315 }
18316 }
18317 },
18318 {
18319 "type": "Punctuator",
18320 "value": ")",
18321 "range": [
18322 9,
18323 10
18324 ],
18325 "loc": {
18326 "start": {
18327 "line": 1,
18328 "column": 9
18329 },
18330 "end": {
18331 "line": 1,
18332 "column": 10
18333 }
18334 }
18335 },
18336 {
18337 "type": "Punctuator",
18338 "value": "{",
18339 "range": [
18340 11,
18341 12
18342 ],
18343 "loc": {
18344 "start": {
18345 "line": 1,
18346 "column": 11
18347 },
18348 "end": {
18349 "line": 1,
18350 "column": 12
18351 }
18352 }
18353 },
18354 {
18355 "type": "Punctuator",
18356 "value": "}",
18357 "range": [
18358 18,
18359 19
18360 ],
18361 "loc": {
18362 "start": {
18363 "line": 1,
18364 "column": 18
18365 },
18366 "end": {
18367 "line": 1,
18368 "column": 19
18369 }
18370 }
18371 },
18372 {
18373 "type": "RegularExpression",
18374 "value": "/42/",
18375 "range": [
18376 13,
18377 17
18378 ],
18379 "loc": {
18380 "start": {
18381 "line": 1,
18382 "column": 13
18383 },
18384 "end": {
18385 "line": 1,
18386 "column": 17
18387 }
18388 }
18389 },
18390 {
18391 "type": "Punctuator",
18392 "value": "}",
18393 "range": [
18394 18,
18395 19
18396 ],
18397 "loc": {
18398 "start": {
18399 "line": 1,
18400 "column": 18
18401 },
18402 "end": {
18403 "line": 1,
18404 "column": 19
18405 }
18406 }
18407 }
18408 ],
18409
18410 'with (false) /42/': [
18411 {
18412 "type": "Keyword",
18413 "value": "with",
18414 "range": [
18415 0,
18416 4
18417 ],
18418 "loc": {
18419 "start": {
18420 "line": 1,
18421 "column": 0
18422 },
18423 "end": {
18424 "line": 1,
18425 "column": 4
18426 }
18427 }
18428 },
18429 {
18430 "type": "Punctuator",
18431 "value": "(",
18432 "range": [
18433 5,
18434 6
18435 ],
18436 "loc": {
18437 "start": {
18438 "line": 1,
18439 "column": 5
18440 },
18441 "end": {
18442 "line": 1,
18443 "column": 6
18444 }
18445 }
18446 },
18447 {
18448 "type": "Boolean",
18449 "value": "false",
18450 "range": [
18451 6,
18452 11
18453 ],
18454 "loc": {
18455 "start": {
18456 "line": 1,
18457 "column": 6
18458 },
18459 "end": {
18460 "line": 1,
18461 "column": 11
18462 }
18463 }
18464 },
18465 {
18466 "type": "Punctuator",
18467 "value": ")",
18468 "range": [
18469 11,
18470 12
18471 ],
18472 "loc": {
18473 "start": {
18474 "line": 1,
18475 "column": 11
18476 },
18477 "end": {
18478 "line": 1,
18479 "column": 12
18480 }
18481 }
18482 },
18483 {
18484 "type": "RegularExpression",
18485 "value": "/42/",
18486 "range": [
18487 13,
18488 17
18489 ],
18490 "loc": {
18491 "start": {
18492 "line": 1,
18493 "column": 13
18494 },
18495 "end": {
18496 "line": 1,
18497 "column": 17
18498 }
18499 }
18500 }
18501 ],
18502
18503 '(false) /42/': [
18504 {
18505 "type": "Punctuator",
18506 "value": "(",
18507 "range": [
18508 0,
18509 1
18510 ],
18511 "loc": {
18512 "start": {
18513 "line": 1,
18514 "column": 0
18515 },
18516 "end": {
18517 "line": 1,
18518 "column": 1
18519 }
18520 }
18521 },
18522 {
18523 "type": "Boolean",
18524 "value": "false",
18525 "range": [
18526 1,
18527 6
18528 ],
18529 "loc": {
18530 "start": {
18531 "line": 1,
18532 "column": 1
18533 },
18534 "end": {
18535 "line": 1,
18536 "column": 6
18537 }
18538 }
18539 },
18540 {
18541 "type": "Punctuator",
18542 "value": ")",
18543 "range": [
18544 6,
18545 7
18546 ],
18547 "loc": {
18548 "start": {
18549 "line": 1,
18550 "column": 6
18551 },
18552 "end": {
18553 "line": 1,
18554 "column": 7
18555 }
18556 }
18557 },
18558 {
18559 "type": "Punctuator",
18560 "value": "/",
18561 "range": [
18562 8,
18563 9
18564 ],
18565 "loc": {
18566 "start": {
18567 "line": 1,
18568 "column": 8
18569 },
18570 "end": {
18571 "line": 1,
18572 "column": 9
18573 }
18574 }
18575 },
18576 {
18577 "type": "Numeric",
18578 "value": "42",
18579 "range": [
18580 9,
18581 11
18582 ],
18583 "loc": {
18584 "start": {
18585 "line": 1,
18586 "column": 9
18587 },
18588 "end": {
18589 "line": 1,
18590 "column": 11
18591 }
18592 }
18593 },
18594 {
18595 "type": "Punctuator",
18596 "value": "/",
18597 "range": [
18598 11,
18599 12
18600 ],
18601 "loc": {
18602 "start": {
18603 "line": 1,
18604 "column": 11
18605 },
18606 "end": {
18607 "line": 1,
18608 "column": 12
18609 }
18610 }
18611 }
18612 ],
18613
18614 'function f(){} /42/': [
18615 {
18616 "type": "Keyword",
18617 "value": "function",
18618 "range": [
18619 0,
18620 8
18621 ],
18622 "loc": {
18623 "start": {
18624 "line": 1,
18625 "column": 0
18626 },
18627 "end": {
18628 "line": 1,
18629 "column": 8
18630 }
18631 }
18632 },
18633 {
18634 "type": "Identifier",
18635 "value": "f",
18636 "range": [
18637 9,
18638 10
18639 ],
18640 "loc": {
18641 "start": {
18642 "line": 1,
18643 "column": 9
18644 },
18645 "end": {
18646 "line": 1,
18647 "column": 10
18648 }
18649 }
18650 },
18651 {
18652 "type": "Punctuator",
18653 "value": "(",
18654 "range": [
18655 10,
18656 11
18657 ],
18658 "loc": {
18659 "start": {
18660 "line": 1,
18661 "column": 10
18662 },
18663 "end": {
18664 "line": 1,
18665 "column": 11
18666 }
18667 }
18668 },
18669 {
18670 "type": "Punctuator",
18671 "value": ")",
18672 "range": [
18673 11,
18674 12
18675 ],
18676 "loc": {
18677 "start": {
18678 "line": 1,
18679 "column": 11
18680 },
18681 "end": {
18682 "line": 1,
18683 "column": 12
18684 }
18685 }
18686 },
18687 {
18688 "type": "Punctuator",
18689 "value": "{",
18690 "range": [
18691 12,
18692 13
18693 ],
18694 "loc": {
18695 "start": {
18696 "line": 1,
18697 "column": 12
18698 },
18699 "end": {
18700 "line": 1,
18701 "column": 13
18702 }
18703 }
18704 },
18705 {
18706 "type": "Punctuator",
18707 "value": "}",
18708 "range": [
18709 13,
18710 14
18711 ],
18712 "loc": {
18713 "start": {
18714 "line": 1,
18715 "column": 13
18716 },
18717 "end": {
18718 "line": 1,
18719 "column": 14
18720 }
18721 }
18722 },
18723 {
18724 "type": "RegularExpression",
18725 "value": "/42/",
18726 "range": [
18727 15,
18728 19
18729 ],
18730 "loc": {
18731 "start": {
18732 "line": 1,
18733 "column": 15
18734 },
18735 "end": {
18736 "line": 1,
18737 "column": 19
18738 }
18739 }
18740 }
18741 ],
18742
18743 'function(){} /42': [
18744 {
18745 "type": "Keyword",
18746 "value": "function",
18747 "range": [
18748 0,
18749 8
18750 ],
18751 "loc": {
18752 "start": {
18753 "line": 1,
18754 "column": 0
18755 },
18756 "end": {
18757 "line": 1,
18758 "column": 8
18759 }
18760 }
18761 },
18762 {
18763 "type": "Punctuator",
18764 "value": "(",
18765 "range": [
18766 8,
18767 9
18768 ],
18769 "loc": {
18770 "start": {
18771 "line": 1,
18772 "column": 8
18773 },
18774 "end": {
18775 "line": 1,
18776 "column": 9
18777 }
18778 }
18779 },
18780 {
18781 "type": "Punctuator",
18782 "value": ")",
18783 "range": [
18784 9,
18785 10
18786 ],
18787 "loc": {
18788 "start": {
18789 "line": 1,
18790 "column": 9
18791 },
18792 "end": {
18793 "line": 1,
18794 "column": 10
18795 }
18796 }
18797 },
18798 {
18799 "type": "Punctuator",
18800 "value": "{",
18801 "range": [
18802 10,
18803 11
18804 ],
18805 "loc": {
18806 "start": {
18807 "line": 1,
18808 "column": 10
18809 },
18810 "end": {
18811 "line": 1,
18812 "column": 11
18813 }
18814 }
18815 },
18816 {
18817 "type": "Punctuator",
18818 "value": "}",
18819 "range": [
18820 11,
18821 12
18822 ],
18823 "loc": {
18824 "start": {
18825 "line": 1,
18826 "column": 11
18827 },
18828 "end": {
18829 "line": 1,
18830 "column": 12
18831 }
18832 }
18833 },
18834 {
18835 "type": "Punctuator",
18836 "value": "/",
18837 "range": [
18838 13,
18839 14
18840 ],
18841 "loc": {
18842 "start": {
18843 "line": 1,
18844 "column": 13
18845 },
18846 "end": {
18847 "line": 1,
18848 "column": 14
18849 }
18850 }
18851 },
18852 {
18853 "type": "Numeric",
18854 "value": "42",
18855 "range": [
18856 14,
18857 16
18858 ],
18859 "loc": {
18860 "start": {
18861 "line": 1,
18862 "column": 14
18863 },
18864 "end": {
18865 "line": 1,
18866 "column": 16
18867 }
18868 }
18869 }
18870 ],
18871
18872 '{} /42': [
18873 {
18874 "type": "Punctuator",
18875 "value": "{",
18876 "range": [
18877 0,
18878 1
18879 ],
18880 "loc": {
18881 "start": {
18882 "line": 1,
18883 "column": 0
18884 },
18885 "end": {
18886 "line": 1,
18887 "column": 1
18888 }
18889 }
18890 },
18891 {
18892 "type": "Punctuator",
18893 "value": "}",
18894 "range": [
18895 1,
18896 2
18897 ],
18898 "loc": {
18899 "start": {
18900 "line": 1,
18901 "column": 1
18902 },
18903 "end": {
18904 "line": 1,
18905 "column": 2
18906 }
18907 }
18908 },
18909 {
18910 "type": "Punctuator",
18911 "value": "/",
18912 "range": [
18913 3,
18914 4
18915 ],
18916 "loc": {
18917 "start": {
18918 "line": 1,
18919 "column": 3
18920 },
18921 "end": {
18922 "line": 1,
18923 "column": 4
18924 }
18925 }
18926 },
18927 {
18928 "type": "Numeric",
18929 "value": "42",
18930 "range": [
18931 4,
18932 6
18933 ],
18934 "loc": {
18935 "start": {
18936 "line": 1,
18937 "column": 4
18938 },
18939 "end": {
18940 "line": 1,
18941 "column": 6
18942 }
18943 }
18944 }
18945 ],
18946
18947 '[function(){} /42]': [
18948 {
18949 "type": "Punctuator",
18950 "value": "[",
18951 "range": [
18952 0,
18953 1
18954 ],
18955 "loc": {
18956 "start": {
18957 "line": 1,
18958 "column": 0
18959 },
18960 "end": {
18961 "line": 1,
18962 "column": 1
18963 }
18964 }
18965 },
18966 {
18967 "type": "Keyword",
18968 "value": "function",
18969 "range": [
18970 1,
18971 9
18972 ],
18973 "loc": {
18974 "start": {
18975 "line": 1,
18976 "column": 1
18977 },
18978 "end": {
18979 "line": 1,
18980 "column": 9
18981 }
18982 }
18983 },
18984 {
18985 "type": "Punctuator",
18986 "value": "(",
18987 "range": [
18988 9,
18989 10
18990 ],
18991 "loc": {
18992 "start": {
18993 "line": 1,
18994 "column": 9
18995 },
18996 "end": {
18997 "line": 1,
18998 "column": 10
18999 }
19000 }
19001 },
19002 {
19003 "type": "Punctuator",
19004 "value": ")",
19005 "range": [
19006 10,
19007 11
19008 ],
19009 "loc": {
19010 "start": {
19011 "line": 1,
19012 "column": 10
19013 },
19014 "end": {
19015 "line": 1,
19016 "column": 11
19017 }
19018 }
19019 },
19020 {
19021 "type": "Punctuator",
19022 "value": "{",
19023 "range": [
19024 11,
19025 12
19026 ],
19027 "loc": {
19028 "start": {
19029 "line": 1,
19030 "column": 11
19031 },
19032 "end": {
19033 "line": 1,
19034 "column": 12
19035 }
19036 }
19037 },
19038 {
19039 "type": "Punctuator",
19040 "value": "}",
19041 "range": [
19042 12,
19043 13
19044 ],
19045 "loc": {
19046 "start": {
19047 "line": 1,
19048 "column": 12
19049 },
19050 "end": {
19051 "line": 1,
19052 "column": 13
19053 }
19054 }
19055 },
19056 {
19057 "type": "Punctuator",
19058 "value": "/",
19059 "range": [
19060 14,
19061 15
19062 ],
19063 "loc": {
19064 "start": {
19065 "line": 1,
19066 "column": 14
19067 },
19068 "end": {
19069 "line": 1,
19070 "column": 15
19071 }
19072 }
19073 },
19074 {
19075 "type": "Numeric",
19076 "value": "42",
19077 "range": [
19078 15,
19079 17
19080 ],
19081 "loc": {
19082 "start": {
19083 "line": 1,
19084 "column": 15
19085 },
19086 "end": {
19087 "line": 1,
19088 "column": 17
19089 }
19090 }
19091 },
19092 {
19093 "type": "Punctuator",
19094 "value": "]",
19095 "range": [
19096 17,
19097 18
19098 ],
19099 "loc": {
19100 "start": {
19101 "line": 1,
19102 "column": 17
19103 },
19104 "end": {
19105 "line": 1,
19106 "column": 18
19107 }
19108 }
19109 }
19110 ],
19111
19112 ';function f(){} /42/': [
19113 {
19114 "type": "Punctuator",
19115 "value": ";",
19116 "range": [
19117 0,
19118 1
19119 ],
19120 "loc": {
19121 "start": {
19122 "line": 1,
19123 "column": 0
19124 },
19125 "end": {
19126 "line": 1,
19127 "column": 1
19128 }
19129 }
19130 },
19131 {
19132 "type": "Keyword",
19133 "value": "function",
19134 "range": [
19135 1,
19136 9
19137 ],
19138 "loc": {
19139 "start": {
19140 "line": 1,
19141 "column": 1
19142 },
19143 "end": {
19144 "line": 1,
19145 "column": 9
19146 }
19147 }
19148 },
19149 {
19150 "type": "Identifier",
19151 "value": "f",
19152 "range": [
19153 10,
19154 11
19155 ],
19156 "loc": {
19157 "start": {
19158 "line": 1,
19159 "column": 10
19160 },
19161 "end": {
19162 "line": 1,
19163 "column": 11
19164 }
19165 }
19166 },
19167 {
19168 "type": "Punctuator",
19169 "value": "(",
19170 "range": [
19171 11,
19172 12
19173 ],
19174 "loc": {
19175 "start": {
19176 "line": 1,
19177 "column": 11
19178 },
19179 "end": {
19180 "line": 1,
19181 "column": 12
19182 }
19183 }
19184 },
19185 {
19186 "type": "Punctuator",
19187 "value": ")",
19188 "range": [
19189 12,
19190 13
19191 ],
19192 "loc": {
19193 "start": {
19194 "line": 1,
19195 "column": 12
19196 },
19197 "end": {
19198 "line": 1,
19199 "column": 13
19200 }
19201 }
19202 },
19203 {
19204 "type": "Punctuator",
19205 "value": "{",
19206 "range": [
19207 13,
19208 14
19209 ],
19210 "loc": {
19211 "start": {
19212 "line": 1,
19213 "column": 13
19214 },
19215 "end": {
19216 "line": 1,
19217 "column": 14
19218 }
19219 }
19220 },
19221 {
19222 "type": "Punctuator",
19223 "value": "}",
19224 "range": [
19225 14,
19226 15
19227 ],
19228 "loc": {
19229 "start": {
19230 "line": 1,
19231 "column": 14
19232 },
19233 "end": {
19234 "line": 1,
19235 "column": 15
19236 }
19237 }
19238 },
19239 {
19240 "type": "RegularExpression",
19241 "value": "/42/",
19242 "range": [
19243 16,
19244 20
19245 ],
19246 "loc": {
19247 "start": {
19248 "line": 1,
19249 "column": 16
19250 },
19251 "end": {
19252 "line": 1,
19253 "column": 20
19254 }
19255 }
19256 }
19257 ],
19258
19259 'void /42/': [
19260 {
19261 "type": "Keyword",
19262 "value": "void",
19263 "range": [
19264 0,
19265 4
19266 ],
19267 "loc": {
19268 "start": {
19269 "line": 1,
19270 "column": 0
19271 },
19272 "end": {
19273 "line": 1,
19274 "column": 4
19275 }
19276 }
19277 },
19278 {
19279 "type": "RegularExpression",
19280 "value": "/42/",
19281 "range": [
19282 5,
19283 9
19284 ],
19285 "loc": {
19286 "start": {
19287 "line": 1,
19288 "column": 5
19289 },
19290 "end": {
19291 "line": 1,
19292 "column": 9
19293 }
19294 }
19295 }
19296 ],
19297
19298 '/42/': [
19299 {
19300 "type": "RegularExpression",
19301 "value": "/42/",
19302 "range": [
19303 0,
19304 4
19305 ],
19306 "loc": {
19307 "start": {
19308 "line": 1,
19309 "column": 0
19310 },
19311 "end": {
19312 "line": 1,
19313 "column": 4
19314 }
19315 }
19316 }
19317 ],
19318
19319 'foo[/42]': [
19320 {
19321 "type": "Identifier",
19322 "value": "foo",
19323 "range": [
19324 0,
19325 3
19326 ],
19327 "loc": {
19328 "start": {
19329 "line": 1,
19330 "column": 0
19331 },
19332 "end": {
19333 "line": 1,
19334 "column": 3
19335 }
19336 }
19337 },
19338 {
19339 "type": "Punctuator",
19340 "value": "[",
19341 "range": [
19342 3,
19343 4
19344 ],
19345 "loc": {
19346 "start": {
19347 "line": 1,
19348 "column": 3
19349 },
19350 "end": {
19351 "line": 1,
19352 "column": 4
19353 }
19354 }
19355 }
19356 ],
19357
19358 '': [],
19359
19360 '/42': {
19361 tokenize: true,
19362 index: 3,
19363 lineNumber: 1,
19364 column: 4,
19365 message: 'Error: Line 1: Invalid regular expression: missing /'
19366 },
19367
19368 'foo[/42': {
19369 tokenize: true,
19370 index: 7,
19371 lineNumber: 1,
19372 column: 8,
19373 message: 'Error: Line 1: Invalid regular expression: missing /'
19374 }
19375
19376 },
19377
19378 'API': {
19379 'parse()': {
19380 call: 'parse',
19381 args: [],
19382 result: {
19383 type: 'Program',
19384 body: [{
19385 type: 'ExpressionStatement',
19386 expression: {
19387 type: 'Identifier',
19388 name: 'undefined'
19389 }
19390 }]
19391 }
19392 },
19393
19394 'parse(null)': {
19395 call: 'parse',
19396 args: [null],
19397 result: {
19398 type: 'Program',
19399 body: [{
19400 type: 'ExpressionStatement',
19401 expression: {
19402 type: 'Literal',
19403 value: null,
19404 raw: 'null'
19405 }
19406 }]
19407 }
19408 },
19409
19410 'parse(42)': {
19411 call: 'parse',
19412 args: [42],
19413 result: {
19414 type: 'Program',
19415 body: [{
19416 type: 'ExpressionStatement',
19417 expression: {
19418 type: 'Literal',
19419 value: 42,
19420 raw: '42'
19421 }
19422 }]
19423 }
19424 },
19425
19426 'parse(true)': {
19427 call: 'parse',
19428 args: [true],
19429 result: {
19430 type: 'Program',
19431 body: [{
19432 type: 'ExpressionStatement',
19433 expression: {
19434 type: 'Literal',
19435 value: true,
19436 raw: 'true'
19437 }
19438 }]
19439 }
19440 },
19441
19442 'parse(undefined)': {
19443 call: 'parse',
19444 args: [void 0],
19445 result: {
19446 type: 'Program',
19447 body: [{
19448 type: 'ExpressionStatement',
19449 expression: {
19450 type: 'Identifier',
19451 name: 'undefined'
19452 }
19453 }]
19454 }
19455 },
19456
19457 'parse(new String("test"))': {
19458 call: 'parse',
19459 args: [new String('test')],
19460 result: {
19461 type: 'Program',
19462 body: [{
19463 type: 'ExpressionStatement',
19464 expression: {
19465 type: 'Identifier',
19466 name: 'test'
19467 }
19468 }]
19469 }
19470 },
19471
19472 'parse(new Number(42))': {
19473 call: 'parse',
19474 args: [new Number(42)],
19475 result: {
19476 type: 'Program',
19477 body: [{
19478 type: 'ExpressionStatement',
19479 expression: {
19480 type: 'Literal',
19481 value: 42,
19482 raw: '42'
19483 }
19484 }]
19485 }
19486 },
19487
19488 'parse(new Boolean(true))': {
19489 call: 'parse',
19490 args: [new Boolean(true)],
19491 result: {
19492 type: 'Program',
19493 body: [{
19494 type: 'ExpressionStatement',
19495 expression: {
19496 type: 'Literal',
19497 value: true,
19498 raw: 'true'
19499 }
19500 }]
19501 }
19502 },
19503
19504 'Syntax': {
19505 property: 'Syntax',
19506 result: {
19507 ArrayExpression: 'ArrayExpression',
19508 ArrayPattern: 'ArrayPattern',
19509 ArrowFunctionExpression: 'ArrowFunctionExpression',
19510 AssignmentExpression: 'AssignmentExpression',
19511 BinaryExpression: 'BinaryExpression',
19512 BlockStatement: 'BlockStatement',
19513 BreakStatement: 'BreakStatement',
19514 CallExpression: 'CallExpression',
19515 CatchClause: 'CatchClause',
19516 ClassBody: 'ClassBody',
19517 ClassDeclaration: 'ClassDeclaration',
19518 ClassExpression: 'ClassExpression',
19519 ComprehensionBlock: 'ComprehensionBlock',
19520 ComprehensionExpression: 'ComprehensionExpression',
19521 ConditionalExpression: 'ConditionalExpression',
19522 ContinueStatement: 'ContinueStatement',
19523 DebuggerStatement: 'DebuggerStatement',
19524 DoWhileStatement: 'DoWhileStatement',
19525 EmptyStatement: 'EmptyStatement',
19526 ExportDeclaration: 'ExportDeclaration',
19527 ExportBatchSpecifier: 'ExportBatchSpecifier',
19528 ExportSpecifier: 'ExportSpecifier',
19529 ExpressionStatement: 'ExpressionStatement',
19530 ForInStatement: 'ForInStatement',
19531 ForOfStatement: 'ForOfStatement',
19532 ForStatement: 'ForStatement',
19533 FunctionDeclaration: 'FunctionDeclaration',
19534 FunctionExpression: 'FunctionExpression',
19535 Identifier: 'Identifier',
19536 IfStatement: 'IfStatement',
19537 ImportDeclaration: 'ImportDeclaration',
19538 ImportSpecifier: 'ImportSpecifier',
19539 LabeledStatement: 'LabeledStatement',
19540 Literal: 'Literal',
19541 LogicalExpression: 'LogicalExpression',
19542 MemberExpression: 'MemberExpression',
19543 MethodDefinition: 'MethodDefinition',
19544 ModuleDeclaration: 'ModuleDeclaration',
19545 NewExpression: 'NewExpression',
19546 ObjectExpression: 'ObjectExpression',
19547 ObjectPattern: 'ObjectPattern',
19548 Program: 'Program',
19549 Property: 'Property',
19550 ReturnStatement: 'ReturnStatement',
19551 SequenceExpression: 'SequenceExpression',
19552 SpreadElement: 'SpreadElement',
19553 SwitchCase: 'SwitchCase',
19554 SwitchStatement: 'SwitchStatement',
19555 TaggedTemplateExpression: 'TaggedTemplateExpression',
19556 TemplateElement: 'TemplateElement',
19557 TemplateLiteral: 'TemplateLiteral',
19558 ThisExpression: 'ThisExpression',
19559 ThrowStatement: 'ThrowStatement',
19560 TryStatement: 'TryStatement',
19561 TypeAnnotatedIdentifier: 'TypeAnnotatedIdentifier',
19562 TypeAnnotation: 'TypeAnnotation',
19563 UnaryExpression: 'UnaryExpression',
19564 UpdateExpression: 'UpdateExpression',
19565 VariableDeclaration: 'VariableDeclaration',
19566 VariableDeclarator: 'VariableDeclarator',
19567 WhileStatement: 'WhileStatement',
19568 WithStatement: 'WithStatement',
19569 XJSIdentifier: 'XJSIdentifier',
19570 XJSNamespacedName: 'XJSNamespacedName',
19571 XJSMemberExpression: "XJSMemberExpression",
19572 XJSEmptyExpression: "XJSEmptyExpression",
19573 XJSExpressionContainer: "XJSExpressionContainer",
19574 XJSElement: 'XJSElement',
19575 XJSClosingElement: 'XJSClosingElement',
19576 XJSOpeningElement: 'XJSOpeningElement',
19577 XJSAttribute: "XJSAttribute",
19578 XJSText: 'XJSText',
19579 YieldExpression: 'YieldExpression'
19580 }
19581 },
19582
19583 'tokenize()': {
19584 call: 'tokenize',
19585 args: [],
19586 result: [{
19587 type: 'Identifier',
19588 value: 'undefined'
19589 }]
19590 },
19591
19592 'tokenize(null)': {
19593 call: 'tokenize',
19594 args: [null],
19595 result: [{
19596 type: 'Null',
19597 value: 'null'
19598 }]
19599 },
19600
19601 'tokenize(42)': {
19602 call: 'tokenize',
19603 args: [42],
19604 result: [{
19605 type: 'Numeric',
19606 value: '42'
19607 }]
19608 },
19609
19610 'tokenize(true)': {
19611 call: 'tokenize',
19612 args: [true],
19613 result: [{
19614 type: 'Boolean',
19615 value: 'true'
19616 }]
19617 },
19618
19619 'tokenize(undefined)': {
19620 call: 'tokenize',
19621 args: [void 0],
19622 result: [{
19623 type: 'Identifier',
19624 value: 'undefined'
19625 }]
19626 },
19627
19628 'tokenize(new String("test"))': {
19629 call: 'tokenize',
19630 args: [new String('test')],
19631 result: [{
19632 type: 'Identifier',
19633 value: 'test'
19634 }]
19635 },
19636
19637 'tokenize(new Number(42))': {
19638 call: 'tokenize',
19639 args: [new Number(42)],
19640 result: [{
19641 type: 'Numeric',
19642 value: '42'
19643 }]
19644 },
19645
19646 'tokenize(new Boolean(true))': {
19647 call: 'tokenize',
19648 args: [new Boolean(true)],
19649 result: [{
19650 type: 'Boolean',
19651 value: 'true'
19652 }]
19653 },
19654
19655 },
19656
19657 'Tolerant parse': {
19658 'return': {
19659 type: 'Program',
19660 body: [{
19661 type: 'ReturnStatement',
19662 'argument': null,
19663 range: [0, 6],
19664 loc: {
19665 start: { line: 1, column: 0 },
19666 end: { line: 1, column: 6 }
19667 }
19668 }],
19669 range: [0, 6],
19670 loc: {
19671 start: { line: 1, column: 0 },
19672 end: { line: 1, column: 6 }
19673 },
19674 errors: [{
19675 index: 6,
19676 lineNumber: 1,
19677 column: 7,
19678 message: 'Error: Line 1: Illegal return statement'
19679 }]
19680 },
19681
19682 '(function () { \'use strict\'; with (i); }())': {
19683 type: 'Program',
19684 body: [{
19685 type: 'ExpressionStatement',
19686 expression: {
19687 type: 'CallExpression',
19688 callee: {
19689 type: 'FunctionExpression',
19690 id: null,
19691 params: [],
19692 defaults: [],
19693 body: {
19694 type: 'BlockStatement',
19695 body: [{
19696 type: 'ExpressionStatement',
19697 expression: {
19698 type: 'Literal',
19699 value: 'use strict',
19700 raw: '\'use strict\'',
19701 range: [15, 27],
19702 loc: {
19703 start: { line: 1, column: 15 },
19704 end: { line: 1, column: 27 }
19705 }
19706 },
19707 range: [15, 28],
19708 loc: {
19709 start: { line: 1, column: 15 },
19710 end: { line: 1, column: 28 }
19711 }
19712 }, {
19713 type: 'WithStatement',
19714 object: {
19715 type: 'Identifier',
19716 name: 'i',
19717 range: [35, 36],
19718 loc: {
19719 start: { line: 1, column: 35 },
19720 end: { line: 1, column: 36 }
19721 }
19722 },
19723 body: {
19724 type: 'EmptyStatement',
19725 range: [37, 38],
19726 loc: {
19727 start: { line: 1, column: 37 },
19728 end: { line: 1, column: 38 }
19729 }
19730 },
19731 range: [29, 38],
19732 loc: {
19733 start: { line: 1, column: 29 },
19734 end: { line: 1, column: 38 }
19735 }
19736 }],
19737 range: [13, 40],
19738 loc: {
19739 start: { line: 1, column: 13 },
19740 end: { line: 1, column: 40 }
19741 }
19742 },
19743 rest: null,
19744 generator: false,
19745 expression: false,
19746 range: [1, 40],
19747 loc: {
19748 start: { line: 1, column: 1 },
19749 end: { line: 1, column: 40 }
19750 }
19751 },
19752 'arguments': [],
19753 range: [1, 42],
19754 loc: {
19755 start: { line: 1, column: 1 },
19756 end: { line: 1, column: 42 }
19757 }
19758 },
19759 range: [0, 43],
19760 loc: {
19761 start: { line: 1, column: 0 },
19762 end: { line: 1, column: 43 }
19763 }
19764 }],
19765 range: [0, 43],
19766 loc: {
19767 start: { line: 1, column: 0 },
19768 end: { line: 1, column: 43 }
19769 },
19770 errors: [{
19771 index: 29,
19772 lineNumber: 1,
19773 column: 30,
19774 message: 'Error: Line 1: Strict mode code may not include a with statement'
19775 }]
19776 },
19777
19778 '(function () { \'use strict\'; 021 }())': {
19779 type: 'Program',
19780 body: [{
19781 type: 'ExpressionStatement',
19782 expression: {
19783 type: 'CallExpression',
19784 callee: {
19785 type: 'FunctionExpression',
19786 id: null,
19787 params: [],
19788 defaults: [],
19789 body: {
19790 type: 'BlockStatement',
19791 body: [{
19792 type: 'ExpressionStatement',
19793 expression: {
19794 type: 'Literal',
19795 value: 'use strict',
19796 raw: '\'use strict\'',
19797 range: [15, 27],
19798 loc: {
19799 start: { line: 1, column: 15 },
19800 end: { line: 1, column: 27 }
19801 }
19802 },
19803 range: [15, 28],
19804 loc: {
19805 start: { line: 1, column: 15 },
19806 end: { line: 1, column: 28 }
19807 }
19808 }, {
19809 type: 'ExpressionStatement',
19810 expression: {
19811 type: 'Literal',
19812 value: 17,
19813 raw: "021",
19814 range: [29, 32],
19815 loc: {
19816 start: { line: 1, column: 29 },
19817 end: { line: 1, column: 32 }
19818 }
19819 },
19820 range: [29, 33],
19821 loc: {
19822 start: { line: 1, column: 29 },
19823 end: { line: 1, column: 33 }
19824 }
19825 }],
19826 range: [13, 34],
19827 loc: {
19828 start: { line: 1, column: 13 },
19829 end: { line: 1, column: 34 }
19830 }
19831 },
19832 rest: null,
19833 generator: false,
19834 expression: false,
19835 range: [1, 34],
19836 loc: {
19837 start: { line: 1, column: 1 },
19838 end: { line: 1, column: 34 }
19839 }
19840 },
19841 'arguments': [],
19842 range: [1, 36],
19843 loc: {
19844 start: { line: 1, column: 1 },
19845 end: { line: 1, column: 36 }
19846 }
19847 },
19848 range: [0, 37],
19849 loc: {
19850 start: { line: 1, column: 0 },
19851 end: { line: 1, column: 37 }
19852 }
19853 }],
19854 range: [0, 37],
19855 loc: {
19856 start: { line: 1, column: 0 },
19857 end: { line: 1, column: 37 }
19858 },
19859 errors: [{
19860 index: 29,
19861 lineNumber: 1,
19862 column: 30,
19863 message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
19864 }]
19865 },
19866
19867 '"use strict"; delete x': {
19868 type: 'Program',
19869 body: [{
19870 type: 'ExpressionStatement',
19871 expression: {
19872 type: 'Literal',
19873 value: 'use strict',
19874 raw: '"use strict"',
19875 range: [0, 12],
19876 loc: {
19877 start: { line: 1, column: 0 },
19878 end: { line: 1, column: 12 }
19879 }
19880 },
19881 range: [0, 13],
19882 loc: {
19883 start: { line: 1, column: 0 },
19884 end: { line: 1, column: 13 }
19885 }
19886 }, {
19887 type: 'ExpressionStatement',
19888 expression: {
19889 type: 'UnaryExpression',
19890 operator: 'delete',
19891 argument: {
19892 type: 'Identifier',
19893 name: 'x',
19894 range: [21, 22],
19895 loc: {
19896 start: { line: 1, column: 21 },
19897 end: { line: 1, column: 22 }
19898 }
19899 },
19900 prefix: true,
19901 range: [14, 22],
19902 loc: {
19903 start: { line: 1, column: 14 },
19904 end: { line: 1, column: 22 }
19905 }
19906 },
19907 range: [14, 22],
19908 loc: {
19909 start: { line: 1, column: 14 },
19910 end: { line: 1, column: 22 }
19911 }
19912 }],
19913 range: [0, 22],
19914 loc: {
19915 start: { line: 1, column: 0 },
19916 end: { line: 1, column: 22 }
19917 },
19918 errors: [{
19919 index: 22,
19920 lineNumber: 1,
19921 column: 23,
19922 message: 'Error: Line 1: Delete of an unqualified identifier in strict mode.'
19923 }]
19924 },
19925
19926 '"use strict"; try {} catch (eval) {}': {
19927 type: 'Program',
19928 body: [{
19929 type: 'ExpressionStatement',
19930 expression: {
19931 type: 'Literal',
19932 value: 'use strict',
19933 raw: '"use strict"',
19934 range: [0, 12],
19935 loc: {
19936 start: { line: 1, column: 0 },
19937 end: { line: 1, column: 12 }
19938 }
19939 },
19940 range: [0, 13],
19941 loc: {
19942 start: { line: 1, column: 0 },
19943 end: { line: 1, column: 13 }
19944 }
19945 }, {
19946 type: 'TryStatement',
19947 block: {
19948 type: 'BlockStatement',
19949 body: [],
19950 range: [18, 20],
19951 loc: {
19952 start: { line: 1, column: 18 },
19953 end: { line: 1, column: 20 }
19954 }
19955 },
19956 guardedHandlers: [],
19957 handlers: [{
19958 type: 'CatchClause',
19959 param: {
19960 type: 'Identifier',
19961 name: 'eval',
19962 range: [28, 32],
19963 loc: {
19964 start: { line: 1, column: 28 },
19965 end: { line: 1, column: 32 }
19966 }
19967 },
19968 body: {
19969 type: 'BlockStatement',
19970 body: [],
19971 range: [34, 36],
19972 loc: {
19973 start: { line: 1, column: 34 },
19974 end: { line: 1, column: 36 }
19975 }
19976 },
19977 range: [21, 36],
19978 loc: {
19979 start: { line: 1, column: 21 },
19980 end: { line: 1, column: 36 }
19981 }
19982 }],
19983 finalizer: null,
19984 range: [14, 36],
19985 loc: {
19986 start: { line: 1, column: 14 },
19987 end: { line: 1, column: 36 }
19988 }
19989 }],
19990 range: [0, 36],
19991 loc: {
19992 start: { line: 1, column: 0 },
19993 end: { line: 1, column: 36 }
19994 },
19995 errors: [{
19996 index: 32,
19997 lineNumber: 1,
19998 column: 33,
19999 message: 'Error: Line 1: Catch variable may not be eval or arguments in strict mode'
20000 }]
20001 },
20002
20003 '"use strict"; try {} catch (arguments) {}': {
20004 type: 'Program',
20005 body: [{
20006 type: 'ExpressionStatement',
20007 expression: {
20008 type: 'Literal',
20009 value: 'use strict',
20010 raw: '"use strict"',
20011 range: [0, 12],
20012 loc: {
20013 start: { line: 1, column: 0 },
20014 end: { line: 1, column: 12 }
20015 }
20016 },
20017 range: [0, 13],
20018 loc: {
20019 start: { line: 1, column: 0 },
20020 end: { line: 1, column: 13 }
20021 }
20022 }, {
20023 type: 'TryStatement',
20024 block: {
20025 type: 'BlockStatement',
20026 body: [],
20027 range: [18, 20],
20028 loc: {
20029 start: { line: 1, column: 18 },
20030 end: { line: 1, column: 20 }
20031 }
20032 },
20033 guardedHandlers: [],
20034 handlers: [{
20035 type: 'CatchClause',
20036 param: {
20037 type: 'Identifier',
20038 name: 'arguments',
20039 range: [28, 37],
20040 loc: {
20041 start: { line: 1, column: 28 },
20042 end: { line: 1, column: 37 }
20043 }
20044 },
20045 body: {
20046 type: 'BlockStatement',
20047 body: [],
20048 range: [39, 41],
20049 loc: {
20050 start: { line: 1, column: 39 },
20051 end: { line: 1, column: 41 }
20052 }
20053 },
20054 range: [21, 41],
20055 loc: {
20056 start: { line: 1, column: 21 },
20057 end: { line: 1, column: 41 }
20058 }
20059 }],
20060 finalizer: null,
20061 range: [14, 41],
20062 loc: {
20063 start: { line: 1, column: 14 },
20064 end: { line: 1, column: 41 }
20065 }
20066 }],
20067 range: [0, 41],
20068 loc: {
20069 start: { line: 1, column: 0 },
20070 end: { line: 1, column: 41 }
20071 },
20072 errors: [{
20073 index: 37,
20074 lineNumber: 1,
20075 column: 38,
20076 message: 'Error: Line 1: Catch variable may not be eval or arguments in strict mode'
20077 }]
20078 },
20079
20080 '"use strict"; var eval;': {
20081 type: 'Program',
20082 body: [{
20083 type: 'ExpressionStatement',
20084 expression: {
20085 type: 'Literal',
20086 value: 'use strict',
20087 raw: '"use strict"',
20088 range: [0, 12],
20089 loc: {
20090 start: { line: 1, column: 0 },
20091 end: { line: 1, column: 12 }
20092 }
20093 },
20094 range: [0, 13],
20095 loc: {
20096 start: { line: 1, column: 0 },
20097 end: { line: 1, column: 13 }
20098 }
20099 }, {
20100 type: 'VariableDeclaration',
20101 declarations: [{
20102 type: 'VariableDeclarator',
20103 id: {
20104 type: 'Identifier',
20105 name: 'eval',
20106 range: [18, 22],
20107 loc: {
20108 start: { line: 1, column: 18 },
20109 end: { line: 1, column: 22 }
20110 }
20111 },
20112 init: null,
20113 range: [18, 22],
20114 loc: {
20115 start: { line: 1, column: 18 },
20116 end: { line: 1, column: 22 }
20117 }
20118 }],
20119 kind: 'var',
20120 range: [14, 23],
20121 loc: {
20122 start: { line: 1, column: 14 },
20123 end: { line: 1, column: 23 }
20124 }
20125 }],
20126 range: [0, 23],
20127 loc: {
20128 start: { line: 1, column: 0 },
20129 end: { line: 1, column: 23 }
20130 },
20131 errors: [{
20132 index: 22,
20133 lineNumber: 1,
20134 column: 23,
20135 message: 'Error: Line 1: Variable name may not be eval or arguments in strict mode'
20136 }]
20137 },
20138
20139 '"use strict"; var arguments;': {
20140 type: 'Program',
20141 body: [{
20142 type: 'ExpressionStatement',
20143 expression: {
20144 type: 'Literal',
20145 value: 'use strict',
20146 raw: '"use strict"',
20147 range: [0, 12],
20148 loc: {
20149 start: { line: 1, column: 0 },
20150 end: { line: 1, column: 12 }
20151 }
20152 },
20153 range: [0, 13],
20154 loc: {
20155 start: { line: 1, column: 0 },
20156 end: { line: 1, column: 13 }
20157 }
20158 }, {
20159 type: 'VariableDeclaration',
20160 declarations: [{
20161 type: 'VariableDeclarator',
20162 id: {
20163 type: 'Identifier',
20164 name: 'arguments',
20165 range: [18, 27],
20166 loc: {
20167 start: { line: 1, column: 18 },
20168 end: { line: 1, column: 27 }
20169 }
20170 },
20171 init: null,
20172 range: [18, 27],
20173 loc: {
20174 start: { line: 1, column: 18 },
20175 end: { line: 1, column: 27 }
20176 }
20177 }],
20178 kind: 'var',
20179 range: [14, 28],
20180 loc: {
20181 start: { line: 1, column: 14 },
20182 end: { line: 1, column: 28 }
20183 }
20184 }],
20185 range: [0, 28],
20186 loc: {
20187 start: { line: 1, column: 0 },
20188 end: { line: 1, column: 28 }
20189 },
20190 errors: [{
20191 index: 27,
20192 lineNumber: 1,
20193 column: 28,
20194 message: 'Error: Line 1: Variable name may not be eval or arguments in strict mode'
20195 }]
20196 },
20197
20198 '"use strict"; eval = 0;': {
20199 type: 'Program',
20200 body: [{
20201 type: 'ExpressionStatement',
20202 expression: {
20203 type: 'Literal',
20204 value: 'use strict',
20205 raw: '"use strict"',
20206 range: [0, 12],
20207 loc: {
20208 start: { line: 1, column: 0 },
20209 end: { line: 1, column: 12 }
20210 }
20211 },
20212 range: [0, 13],
20213 loc: {
20214 start: { line: 1, column: 0 },
20215 end: { line: 1, column: 13 }
20216 }
20217 }, {
20218 type: 'ExpressionStatement',
20219 expression: {
20220 type: 'AssignmentExpression',
20221 operator: '=',
20222 left: {
20223 type: 'Identifier',
20224 name: 'eval',
20225 range: [14, 18],
20226 loc: {
20227 start: { line: 1, column: 14 },
20228 end: { line: 1, column: 18 }
20229 }
20230 },
20231 right: {
20232 type: 'Literal',
20233 value: 0,
20234 raw: '0',
20235 range: [21, 22],
20236 loc: {
20237 start: { line: 1, column: 21 },
20238 end: { line: 1, column: 22 }
20239 }
20240 },
20241 range: [14, 22],
20242 loc: {
20243 start: { line: 1, column: 14 },
20244 end: { line: 1, column: 22 }
20245 }
20246 },
20247 range: [14, 23],
20248 loc: {
20249 start: { line: 1, column: 14 },
20250 end: { line: 1, column: 23 }
20251 }
20252 }],
20253 range: [0, 23],
20254 loc: {
20255 start: { line: 1, column: 0 },
20256 end: { line: 1, column: 23 }
20257 },
20258 errors: [{
20259 index: 14,
20260 lineNumber: 1,
20261 column: 15,
20262 message: 'Error: Line 1: Assignment to eval or arguments is not allowed in strict mode'
20263 }]
20264 },
20265
20266 '"use strict"; eval++;': {
20267 type: 'Program',
20268 body: [{
20269 type: 'ExpressionStatement',
20270 expression: {
20271 type: 'Literal',
20272 value: 'use strict',
20273 raw: '"use strict"',
20274 range: [0, 12],
20275 loc: {
20276 start: { line: 1, column: 0 },
20277 end: { line: 1, column: 12 }
20278 }
20279 },
20280 range: [0, 13],
20281 loc: {
20282 start: { line: 1, column: 0 },
20283 end: { line: 1, column: 13 }
20284 }
20285 }, {
20286 type: 'ExpressionStatement',
20287 expression: {
20288 type: 'UpdateExpression',
20289 operator: '++',
20290 argument: {
20291 type: 'Identifier',
20292 name: 'eval',
20293 range: [14, 18],
20294 loc: {
20295 start: { line: 1, column: 14 },
20296 end: { line: 1, column: 18 }
20297 }
20298 },
20299 prefix: false,
20300 range: [14, 20],
20301 loc: {
20302 start: { line: 1, column: 14 },
20303 end: { line: 1, column: 20 }
20304 }
20305 },
20306 range: [14, 21],
20307 loc: {
20308 start: { line: 1, column: 14 },
20309 end: { line: 1, column: 21 }
20310 }
20311 }],
20312 range: [0, 21],
20313 loc: {
20314 start: { line: 1, column: 0 },
20315 end: { line: 1, column: 21 }
20316 },
20317 errors: [{
20318 index: 18,
20319 lineNumber: 1,
20320 column: 19,
20321 message: 'Error: Line 1: Postfix increment/decrement may not have eval or arguments operand in strict mode'
20322 }]
20323 },
20324
20325 '"use strict"; --eval;': {
20326 type: 'Program',
20327 body: [{
20328 type: 'ExpressionStatement',
20329 expression: {
20330 type: 'Literal',
20331 value: 'use strict',
20332 raw: '"use strict"',
20333 range: [0, 12],
20334 loc: {
20335 start: { line: 1, column: 0 },
20336 end: { line: 1, column: 12 }
20337 }
20338 },
20339 range: [0, 13],
20340 loc: {
20341 start: { line: 1, column: 0 },
20342 end: { line: 1, column: 13 }
20343 }
20344 }, {
20345 type: 'ExpressionStatement',
20346 expression: {
20347 type: 'UpdateExpression',
20348 operator: '--',
20349 argument: {
20350 type: 'Identifier',
20351 name: 'eval',
20352 range: [16, 20],
20353 loc: {
20354 start: { line: 1, column: 16 },
20355 end: { line: 1, column: 20 }
20356 }
20357 },
20358 prefix: true,
20359 range: [14, 20],
20360 loc: {
20361 start: { line: 1, column: 14 },
20362 end: { line: 1, column: 20 }
20363 }
20364 },
20365 range: [14, 21],
20366 loc: {
20367 start: { line: 1, column: 14 },
20368 end: { line: 1, column: 21 }
20369 }
20370 }],
20371 range: [0, 21],
20372 loc: {
20373 start: { line: 1, column: 0 },
20374 end: { line: 1, column: 21 }
20375 },
20376 errors: [{
20377 index: 20,
20378 lineNumber: 1,
20379 column: 21,
20380 message: 'Error: Line 1: Prefix increment/decrement may not have eval or arguments operand in strict mode'
20381 }]
20382 },
20383
20384 '"use strict"; arguments = 0;': {
20385 type: 'Program',
20386 body: [{
20387 type: 'ExpressionStatement',
20388 expression: {
20389 type: 'Literal',
20390 value: 'use strict',
20391 raw: '"use strict"',
20392 range: [0, 12],
20393 loc: {
20394 start: { line: 1, column: 0 },
20395 end: { line: 1, column: 12 }
20396 }
20397 },
20398 range: [0, 13],
20399 loc: {
20400 start: { line: 1, column: 0 },
20401 end: { line: 1, column: 13 }
20402 }
20403 }, {
20404 type: 'ExpressionStatement',
20405 expression: {
20406 type: 'AssignmentExpression',
20407 operator: '=',
20408 left: {
20409 type: 'Identifier',
20410 name: 'arguments',
20411 range: [14, 23],
20412 loc: {
20413 start: { line: 1, column: 14 },
20414 end: { line: 1, column: 23 }
20415 }
20416 },
20417 right: {
20418 type: 'Literal',
20419 value: 0,
20420 raw: '0',
20421 range: [26, 27],
20422 loc: {
20423 start: { line: 1, column: 26 },
20424 end: { line: 1, column: 27 }
20425 }
20426 },
20427 range: [14, 27],
20428 loc: {
20429 start: { line: 1, column: 14 },
20430 end: { line: 1, column: 27 }
20431 }
20432 },
20433 range: [14, 28],
20434 loc: {
20435 start: { line: 1, column: 14 },
20436 end: { line: 1, column: 28 }
20437 }
20438 }],
20439 range: [0, 28],
20440 loc: {
20441 start: { line: 1, column: 0 },
20442 end: { line: 1, column: 28 }
20443 },
20444 errors: [{
20445 index: 14,
20446 lineNumber: 1,
20447 column: 15,
20448 message: 'Error: Line 1: Assignment to eval or arguments is not allowed in strict mode'
20449 }]
20450 },
20451
20452 '"use strict"; arguments--;': {
20453 type: 'Program',
20454 body: [{
20455 type: 'ExpressionStatement',
20456 expression: {
20457 type: 'Literal',
20458 value: 'use strict',
20459 raw: '"use strict"',
20460 range: [0, 12],
20461 loc: {
20462 start: { line: 1, column: 0 },
20463 end: { line: 1, column: 12 }
20464 }
20465 },
20466 range: [0, 13],
20467 loc: {
20468 start: { line: 1, column: 0 },
20469 end: { line: 1, column: 13 }
20470 }
20471 }, {
20472 type: 'ExpressionStatement',
20473 expression: {
20474 type: 'UpdateExpression',
20475 operator: '--',
20476 argument: {
20477 type: 'Identifier',
20478 name: 'arguments',
20479 range: [14, 23],
20480 loc: {
20481 start: { line: 1, column: 14 },
20482 end: { line: 1, column: 23 }
20483 }
20484 },
20485 prefix: false,
20486 range: [14, 25],
20487 loc: {
20488 start: { line: 1, column: 14 },
20489 end: { line: 1, column: 25 }
20490 }
20491 },
20492 range: [14, 26],
20493 loc: {
20494 start: { line: 1, column: 14 },
20495 end: { line: 1, column: 26 }
20496 }
20497 }],
20498 range: [0, 26],
20499 loc: {
20500 start: { line: 1, column: 0 },
20501 end: { line: 1, column: 26 }
20502 },
20503 errors: [{
20504 index: 23,
20505 lineNumber: 1,
20506 column: 24,
20507 message: 'Error: Line 1: Postfix increment/decrement may not have eval or arguments operand in strict mode'
20508 }]
20509 },
20510
20511 '"use strict"; ++arguments;': {
20512 type: 'Program',
20513 body: [{
20514 type: 'ExpressionStatement',
20515 expression: {
20516 type: 'Literal',
20517 value: 'use strict',
20518 raw: '"use strict"',
20519 range: [0, 12],
20520 loc: {
20521 start: { line: 1, column: 0 },
20522 end: { line: 1, column: 12 }
20523 }
20524 },
20525 range: [0, 13],
20526 loc: {
20527 start: { line: 1, column: 0 },
20528 end: { line: 1, column: 13 }
20529 }
20530 }, {
20531 type: 'ExpressionStatement',
20532 expression: {
20533 type: 'UpdateExpression',
20534 operator: '++',
20535 argument: {
20536 type: 'Identifier',
20537 name: 'arguments',
20538 range: [16, 25],
20539 loc: {
20540 start: { line: 1, column: 16 },
20541 end: { line: 1, column: 25 }
20542 }
20543 },
20544 prefix: true,
20545 range: [14, 25],
20546 loc: {
20547 start: { line: 1, column: 14 },
20548 end: { line: 1, column: 25 }
20549 }
20550 },
20551 range: [14, 26],
20552 loc: {
20553 start: { line: 1, column: 14 },
20554 end: { line: 1, column: 26 }
20555 }
20556 }],
20557 range: [0, 26],
20558 loc: {
20559 start: { line: 1, column: 0 },
20560 end: { line: 1, column: 26 }
20561 },
20562 errors: [{
20563 index: 25,
20564 lineNumber: 1,
20565 column: 26,
20566 message: 'Error: Line 1: Prefix increment/decrement may not have eval or arguments operand in strict mode'
20567 }]
20568 },
20569
20570
20571 '"use strict";x={y:1,y:1}': {
20572 type: 'Program',
20573 body: [{
20574 type: 'ExpressionStatement',
20575 expression: {
20576 type: 'Literal',
20577 value: 'use strict',
20578 raw: '"use strict"',
20579 range: [0, 12],
20580 loc: {
20581 start: { line: 1, column: 0 },
20582 end: { line: 1, column: 12 }
20583 }
20584 },
20585 range: [0, 13],
20586 loc: {
20587 start: { line: 1, column: 0 },
20588 end: { line: 1, column: 13 }
20589 }
20590 }, {
20591 type: 'ExpressionStatement',
20592 expression: {
20593 type: 'AssignmentExpression',
20594 operator: '=',
20595 left: {
20596 type: 'Identifier',
20597 name: 'x',
20598 range: [13, 14],
20599 loc: {
20600 start: { line: 1, column: 13 },
20601 end: { line: 1, column: 14 }
20602 }
20603 },
20604 right: {
20605 type: 'ObjectExpression',
20606 properties: [{
20607 type: 'Property',
20608 key: {
20609 type: 'Identifier',
20610 name: 'y',
20611 range: [16, 17],
20612 loc: {
20613 start: { line: 1, column: 16 },
20614 end: { line: 1, column: 17 }
20615 }
20616 },
20617 value: {
20618 type: 'Literal',
20619 value: 1,
20620 raw: '1',
20621 range: [18, 19],
20622 loc: {
20623 start: { line: 1, column: 18 },
20624 end: { line: 1, column: 19 }
20625 }
20626 },
20627 kind: 'init',
20628 method: false,
20629 shorthand: false,
20630 range: [16, 19],
20631 loc: {
20632 start: { line: 1, column: 16 },
20633 end: { line: 1, column: 19 }
20634 }
20635 }, {
20636 type: 'Property',
20637 key: {
20638 type: 'Identifier',
20639 name: 'y',
20640 range: [20, 21],
20641 loc: {
20642 start: { line: 1, column: 20 },
20643 end: { line: 1, column: 21 }
20644 }
20645 },
20646 value: {
20647 type: 'Literal',
20648 value: 1,
20649 raw: '1',
20650 range: [22, 23],
20651 loc: {
20652 start: { line: 1, column: 22 },
20653 end: { line: 1, column: 23 }
20654 }
20655 },
20656 kind: 'init',
20657 method: false,
20658 shorthand: false,
20659 range: [20, 23],
20660 loc: {
20661 start: { line: 1, column: 20 },
20662 end: { line: 1, column: 23 }
20663 }
20664 }],
20665 range: [15, 24],
20666 loc: {
20667 start: { line: 1, column: 15 },
20668 end: { line: 1, column: 24 }
20669 }
20670 },
20671 range: [13, 24],
20672 loc: {
20673 start: { line: 1, column: 13 },
20674 end: { line: 1, column: 24 }
20675 }
20676 },
20677 range: [13, 24],
20678 loc: {
20679 start: { line: 1, column: 13 },
20680 end: { line: 1, column: 24 }
20681 }
20682 }],
20683 range: [0, 24],
20684 loc: {
20685 start: { line: 1, column: 0 },
20686 end: { line: 1, column: 24 }
20687 },
20688 errors: [{
20689 index: 23,
20690 lineNumber: 1,
20691 column: 24,
20692 message: 'Error: Line 1: Duplicate data property in object literal not allowed in strict mode'
20693 }]
20694 },
20695
20696 '"use strict"; function eval() {};': {
20697 type: 'Program',
20698 body: [{
20699 type: 'ExpressionStatement',
20700 expression: {
20701 type: 'Literal',
20702 value: 'use strict',
20703 raw: '"use strict"',
20704 range: [0, 12],
20705 loc: {
20706 start: { line: 1, column: 0 },
20707 end: { line: 1, column: 12 }
20708 }
20709 },
20710 range: [0, 13],
20711 loc: {
20712 start: { line: 1, column: 0 },
20713 end: { line: 1, column: 13 }
20714 }
20715 }, {
20716 type: 'FunctionDeclaration',
20717 id: {
20718 type: 'Identifier',
20719 name: 'eval',
20720 range: [23, 27],
20721 loc: {
20722 start: { line: 1, column: 23 },
20723 end: { line: 1, column: 27 }
20724 }
20725 },
20726 params: [],
20727 defaults: [],
20728 body: {
20729 type: 'BlockStatement',
20730 body: [],
20731 range: [30, 32],
20732 loc: {
20733 start: { line: 1, column: 30 },
20734 end: { line: 1, column: 32 }
20735 }
20736 },
20737 rest: null,
20738 generator: false,
20739 expression: false,
20740 range: [14, 32],
20741 loc: {
20742 start: { line: 1, column: 14 },
20743 end: { line: 1, column: 32 }
20744 }
20745 }, {
20746 type: 'EmptyStatement',
20747 range: [32, 33],
20748 loc: {
20749 start: { line: 1, column: 32 },
20750 end: { line: 1, column: 33 }
20751 }
20752 }],
20753 range: [0, 33],
20754 loc: {
20755 start: { line: 1, column: 0 },
20756 end: { line: 1, column: 33 }
20757 },
20758 errors: [{
20759 index: 23,
20760 lineNumber: 1,
20761 column: 24,
20762 message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
20763 }]
20764 },
20765
20766 '"use strict"; function arguments() {};': {
20767 type: 'Program',
20768 body: [{
20769 type: 'ExpressionStatement',
20770 expression: {
20771 type: 'Literal',
20772 value: 'use strict',
20773 raw: '"use strict"',
20774 range: [0, 12],
20775 loc: {
20776 start: { line: 1, column: 0 },
20777 end: { line: 1, column: 12 }
20778 }
20779 },
20780 range: [0, 13],
20781 loc: {
20782 start: { line: 1, column: 0 },
20783 end: { line: 1, column: 13 }
20784 }
20785 }, {
20786 type: 'FunctionDeclaration',
20787 id: {
20788 type: 'Identifier',
20789 name: 'arguments',
20790 range: [23, 32],
20791 loc: {
20792 start: { line: 1, column: 23 },
20793 end: { line: 1, column: 32 }
20794 }
20795 },
20796 params: [],
20797 defaults: [],
20798 body: {
20799 type: 'BlockStatement',
20800 body: [],
20801 range: [35, 37],
20802 loc: {
20803 start: { line: 1, column: 35 },
20804 end: { line: 1, column: 37 }
20805 }
20806 },
20807 rest: null,
20808 generator: false,
20809 expression: false,
20810 range: [14, 37],
20811 loc: {
20812 start: { line: 1, column: 14 },
20813 end: { line: 1, column: 37 }
20814 }
20815 }, {
20816 type: 'EmptyStatement',
20817 range: [37, 38],
20818 loc: {
20819 start: { line: 1, column: 37 },
20820 end: { line: 1, column: 38 }
20821 }
20822 }],
20823 range: [0, 38],
20824 loc: {
20825 start: { line: 1, column: 0 },
20826 end: { line: 1, column: 38 }
20827 },
20828 errors: [{
20829 index: 23,
20830 lineNumber: 1,
20831 column: 24,
20832 message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
20833 }]
20834 },
20835
20836 '"use strict"; function interface() {};': {
20837 type: 'Program',
20838 body: [{
20839 type: 'ExpressionStatement',
20840 expression: {
20841 type: 'Literal',
20842 value: 'use strict',
20843 raw: '"use strict"',
20844 range: [0, 12],
20845 loc: {
20846 start: { line: 1, column: 0 },
20847 end: { line: 1, column: 12 }
20848 }
20849 },
20850 range: [0, 13],
20851 loc: {
20852 start: { line: 1, column: 0 },
20853 end: { line: 1, column: 13 }
20854 }
20855 }, {
20856 type: 'FunctionDeclaration',
20857 id: {
20858 type: 'Identifier',
20859 name: 'interface',
20860 range: [23, 32],
20861 loc: {
20862 start: { line: 1, column: 23 },
20863 end: { line: 1, column: 32 }
20864 }
20865 },
20866 params: [],
20867 defaults: [],
20868 body: {
20869 type: 'BlockStatement',
20870 body: [],
20871 range: [35, 37],
20872 loc: {
20873 start: { line: 1, column: 35 },
20874 end: { line: 1, column: 37 }
20875 }
20876 },
20877 rest: null,
20878 generator: false,
20879 expression: false,
20880 range: [14, 37],
20881 loc: {
20882 start: { line: 1, column: 14 },
20883 end: { line: 1, column: 37 }
20884 }
20885 }, {
20886 type: 'EmptyStatement',
20887 range: [37, 38],
20888 loc: {
20889 start: { line: 1, column: 37 },
20890 end: { line: 1, column: 38 }
20891 }
20892 }],
20893 range: [0, 38],
20894 loc: {
20895 start: { line: 1, column: 0 },
20896 end: { line: 1, column: 38 }
20897 },
20898 errors: [{
20899 index: 23,
20900 lineNumber: 1,
20901 column: 24,
20902 message: 'Error: Line 1: Use of future reserved word in strict mode'
20903 }]
20904 },
20905
20906 '"use strict"; (function eval() {});': {
20907 type: 'Program',
20908 body: [{
20909 type: 'ExpressionStatement',
20910 expression: {
20911 type: 'Literal',
20912 value: 'use strict',
20913 raw: '"use strict"',
20914 range: [0, 12],
20915 loc: {
20916 start: { line: 1, column: 0 },
20917 end: { line: 1, column: 12 }
20918 }
20919 },
20920 range: [0, 13],
20921 loc: {
20922 start: { line: 1, column: 0 },
20923 end: { line: 1, column: 13 }
20924 }
20925 }, {
20926 type: 'ExpressionStatement',
20927 expression: {
20928 type: 'FunctionExpression',
20929 id: {
20930 type: 'Identifier',
20931 name: 'eval',
20932 range: [24, 28],
20933 loc: {
20934 start: { line: 1, column: 24 },
20935 end: { line: 1, column: 28 }
20936 }
20937 },
20938 params: [],
20939 defaults: [],
20940 body: {
20941 type: 'BlockStatement',
20942 body: [],
20943 range: [31, 33],
20944 loc: {
20945 start: { line: 1, column: 31 },
20946 end: { line: 1, column: 33 }
20947 }
20948 },
20949 rest: null,
20950 generator: false,
20951 expression: false,
20952 range: [15, 33],
20953 loc: {
20954 start: { line: 1, column: 15 },
20955 end: { line: 1, column: 33 }
20956 }
20957 },
20958 range: [14, 35],
20959 loc: {
20960 start: { line: 1, column: 14 },
20961 end: { line: 1, column: 35 }
20962 }
20963 }],
20964 range: [0, 35],
20965 loc: {
20966 start: { line: 1, column: 0 },
20967 end: { line: 1, column: 35 }
20968 },
20969 errors: [{
20970 index: 24,
20971 lineNumber: 1,
20972 column: 25,
20973 message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
20974 }]
20975 },
20976
20977 '"use strict"; (function arguments() {});': {
20978 type: 'Program',
20979 body: [{
20980 type: 'ExpressionStatement',
20981 expression: {
20982 type: 'Literal',
20983 value: 'use strict',
20984 raw: '"use strict"',
20985 range: [0, 12],
20986 loc: {
20987 start: { line: 1, column: 0 },
20988 end: { line: 1, column: 12 }
20989 }
20990 },
20991 range: [0, 13],
20992 loc: {
20993 start: { line: 1, column: 0 },
20994 end: { line: 1, column: 13 }
20995 }
20996 }, {
20997 type: 'ExpressionStatement',
20998 expression: {
20999 type: 'FunctionExpression',
21000 id: {
21001 type: 'Identifier',
21002 name: 'arguments',
21003 range: [24, 33],
21004 loc: {
21005 start: { line: 1, column: 24 },
21006 end: { line: 1, column: 33 }
21007 }
21008 },
21009 params: [],
21010 defaults: [],
21011 body: {
21012 type: 'BlockStatement',
21013 body: [],
21014 range: [36, 38],
21015 loc: {
21016 start: { line: 1, column: 36 },
21017 end: { line: 1, column: 38 }
21018 }
21019 },
21020 rest: null,
21021 generator: false,
21022 expression: false,
21023 range: [15, 38],
21024 loc: {
21025 start: { line: 1, column: 15 },
21026 end: { line: 1, column: 38 }
21027 }
21028 },
21029 range: [14, 40],
21030 loc: {
21031 start: { line: 1, column: 14 },
21032 end: { line: 1, column: 40 }
21033 }
21034 }],
21035 range: [0, 40],
21036 loc: {
21037 start: { line: 1, column: 0 },
21038 end: { line: 1, column: 40 }
21039 },
21040 errors: [{
21041 index: 24,
21042 lineNumber: 1,
21043 column: 25,
21044 message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
21045 }]
21046 },
21047
21048 '"use strict"; (function interface() {});': {
21049 type: 'Program',
21050 body: [{
21051 type: 'ExpressionStatement',
21052 expression: {
21053 type: 'Literal',
21054 value: 'use strict',
21055 raw: '"use strict"',
21056 range: [0, 12],
21057 loc: {
21058 start: { line: 1, column: 0 },
21059 end: { line: 1, column: 12 }
21060 }
21061 },
21062 range: [0, 13],
21063 loc: {
21064 start: { line: 1, column: 0 },
21065 end: { line: 1, column: 13 }
21066 }
21067 }, {
21068 type: 'ExpressionStatement',
21069 expression: {
21070 type: 'FunctionExpression',
21071 id: {
21072 type: 'Identifier',
21073 name: 'interface',
21074 range: [24, 33],
21075 loc: {
21076 start: { line: 1, column: 24 },
21077 end: { line: 1, column: 33 }
21078 }
21079 },
21080 params: [],
21081 defaults: [],
21082 body: {
21083 type: 'BlockStatement',
21084 body: [],
21085 range: [36, 38],
21086 loc: {
21087 start: { line: 1, column: 36 },
21088 end: { line: 1, column: 38 }
21089 }
21090 },
21091 rest: null,
21092 generator: false,
21093 expression: false,
21094 range: [15, 38],
21095 loc: {
21096 start: { line: 1, column: 15 },
21097 end: { line: 1, column: 38 }
21098 }
21099 },
21100 range: [14, 40],
21101 loc: {
21102 start: { line: 1, column: 14 },
21103 end: { line: 1, column: 40 }
21104 }
21105 }],
21106 range: [0, 40],
21107 loc: {
21108 start: { line: 1, column: 0 },
21109 end: { line: 1, column: 40 }
21110 },
21111 errors: [{
21112 index: 24,
21113 lineNumber: 1,
21114 column: 25,
21115 message: 'Error: Line 1: Use of future reserved word in strict mode'
21116 }]
21117 },
21118
21119 '"use strict"; function f(eval) {};': {
21120 type: 'Program',
21121 body: [{
21122 type: 'ExpressionStatement',
21123 expression: {
21124 type: 'Literal',
21125 value: 'use strict',
21126 raw: '"use strict"',
21127 range: [0, 12],
21128 loc: {
21129 start: { line: 1, column: 0 },
21130 end: { line: 1, column: 12 }
21131 }
21132 },
21133 range: [0, 13],
21134 loc: {
21135 start: { line: 1, column: 0 },
21136 end: { line: 1, column: 13 }
21137 }
21138 }, {
21139 type: 'FunctionDeclaration',
21140 id: {
21141 type: 'Identifier',
21142 name: 'f',
21143 range: [23, 24],
21144 loc: {
21145 start: { line: 1, column: 23 },
21146 end: { line: 1, column: 24 }
21147 }
21148 },
21149 params: [{
21150 type: 'Identifier',
21151 name: 'eval',
21152 range: [25, 29],
21153 loc: {
21154 start: { line: 1, column: 25 },
21155 end: { line: 1, column: 29 }
21156 }
21157 }],
21158 defaults: [],
21159 body: {
21160 type: 'BlockStatement',
21161 body: [],
21162 range: [31, 33],
21163 loc: {
21164 start: { line: 1, column: 31 },
21165 end: { line: 1, column: 33 }
21166 }
21167 },
21168 rest: null,
21169 generator: false,
21170 expression: false,
21171 range: [14, 33],
21172 loc: {
21173 start: { line: 1, column: 14 },
21174 end: { line: 1, column: 33 }
21175 }
21176 }, {
21177 type: 'EmptyStatement',
21178 range: [33, 34],
21179 loc: {
21180 start: { line: 1, column: 33 },
21181 end: { line: 1, column: 34 }
21182 }
21183 }],
21184 range: [0, 34],
21185 loc: {
21186 start: { line: 1, column: 0 },
21187 end: { line: 1, column: 34 }
21188 },
21189 errors: [{
21190 index: 25,
21191 lineNumber: 1,
21192 column: 26,
21193 message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
21194 }]
21195 },
21196
21197 '"use strict"; function f(arguments) {};': {
21198 type: 'Program',
21199 body: [{
21200 type: 'ExpressionStatement',
21201 expression: {
21202 type: 'Literal',
21203 value: 'use strict',
21204 raw: '"use strict"',
21205 range: [0, 12],
21206 loc: {
21207 start: { line: 1, column: 0 },
21208 end: { line: 1, column: 12 }
21209 }
21210 },
21211 range: [0, 13],
21212 loc: {
21213 start: { line: 1, column: 0 },
21214 end: { line: 1, column: 13 }
21215 }
21216 }, {
21217 type: 'FunctionDeclaration',
21218 id: {
21219 type: 'Identifier',
21220 name: 'f',
21221 range: [23, 24],
21222 loc: {
21223 start: { line: 1, column: 23 },
21224 end: { line: 1, column: 24 }
21225 }
21226 },
21227 params: [{
21228 type: 'Identifier',
21229 name: 'arguments',
21230 range: [25, 34],
21231 loc: {
21232 start: { line: 1, column: 25 },
21233 end: { line: 1, column: 34 }
21234 }
21235 }],
21236 defaults: [],
21237 body: {
21238 type: 'BlockStatement',
21239 body: [],
21240 range: [36, 38],
21241 loc: {
21242 start: { line: 1, column: 36 },
21243 end: { line: 1, column: 38 }
21244 }
21245 },
21246 rest: null,
21247 generator: false,
21248 expression: false,
21249 range: [14, 38],
21250 loc: {
21251 start: { line: 1, column: 14 },
21252 end: { line: 1, column: 38 }
21253 }
21254 }, {
21255 type: 'EmptyStatement',
21256 range: [38, 39],
21257 loc: {
21258 start: { line: 1, column: 38 },
21259 end: { line: 1, column: 39 }
21260 }
21261 }],
21262 range: [0, 39],
21263 loc: {
21264 start: { line: 1, column: 0 },
21265 end: { line: 1, column: 39 }
21266 },
21267 errors: [{
21268 index: 25,
21269 lineNumber: 1,
21270 column: 26,
21271 message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
21272 }]
21273 },
21274
21275 '"use strict"; function f(foo, foo) {};': {
21276 type: 'Program',
21277 body: [{
21278 type: 'ExpressionStatement',
21279 expression: {
21280 type: 'Literal',
21281 value: 'use strict',
21282 raw: '"use strict"',
21283 range: [0, 12],
21284 loc: {
21285 start: { line: 1, column: 0 },
21286 end: { line: 1, column: 12 }
21287 }
21288 },
21289 range: [0, 13],
21290 loc: {
21291 start: { line: 1, column: 0 },
21292 end: { line: 1, column: 13 }
21293 }
21294 }, {
21295 type: 'FunctionDeclaration',
21296 id: {
21297 type: 'Identifier',
21298 name: 'f',
21299 range: [23, 24],
21300 loc: {
21301 start: { line: 1, column: 23 },
21302 end: { line: 1, column: 24 }
21303 }
21304 },
21305 params: [{
21306 type: 'Identifier',
21307 name: 'foo',
21308 range: [25, 28],
21309 loc: {
21310 start: { line: 1, column: 25 },
21311 end: { line: 1, column: 28 }
21312 }
21313 }, {
21314 type: 'Identifier',
21315 name: 'foo',
21316 range: [31, 34],
21317 loc: {
21318 start: { line: 1, column: 31 },
21319 end: { line: 1, column: 34 }
21320 }
21321 }],
21322 defaults: [],
21323 body: {
21324 type: 'BlockStatement',
21325 body: [],
21326 range: [36, 38],
21327 loc: {
21328 start: { line: 1, column: 36 },
21329 end: { line: 1, column: 38 }
21330 }
21331 },
21332 rest: null,
21333 generator: false,
21334 expression: false,
21335 range: [14, 38],
21336 loc: {
21337 start: { line: 1, column: 14 },
21338 end: { line: 1, column: 38 }
21339 }
21340 }, {
21341 type: 'EmptyStatement',
21342 range: [38, 39],
21343 loc: {
21344 start: { line: 1, column: 38 },
21345 end: { line: 1, column: 39 }
21346 }
21347 }],
21348 range: [0, 39],
21349 loc: {
21350 start: { line: 1, column: 0 },
21351 end: { line: 1, column: 39 }
21352 },
21353 errors: [{
21354 index: 31,
21355 lineNumber: 1,
21356 column: 32,
21357 message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
21358 }]
21359 },
21360
21361 '"use strict"; (function f(eval) {});': {
21362 type: 'Program',
21363 body: [{
21364 type: 'ExpressionStatement',
21365 expression: {
21366 type: 'Literal',
21367 value: 'use strict',
21368 raw: '"use strict"',
21369 range: [0, 12],
21370 loc: {
21371 start: { line: 1, column: 0 },
21372 end: { line: 1, column: 12 }
21373 }
21374 },
21375 range: [0, 13],
21376 loc: {
21377 start: { line: 1, column: 0 },
21378 end: { line: 1, column: 13 }
21379 }
21380 }, {
21381 type: 'ExpressionStatement',
21382 expression: {
21383 type: 'FunctionExpression',
21384 id: {
21385 type: 'Identifier',
21386 name: 'f',
21387 range: [24, 25],
21388 loc: {
21389 start: { line: 1, column: 24 },
21390 end: { line: 1, column: 25 }
21391 }
21392 },
21393 params: [{
21394 type: 'Identifier',
21395 name: 'eval',
21396 range: [26, 30],
21397 loc: {
21398 start: { line: 1, column: 26 },
21399 end: { line: 1, column: 30 }
21400 }
21401 }],
21402 defaults: [],
21403 body: {
21404 type: 'BlockStatement',
21405 body: [],
21406 range: [32, 34],
21407 loc: {
21408 start: { line: 1, column: 32 },
21409 end: { line: 1, column: 34 }
21410 }
21411 },
21412 rest: null,
21413 generator: false,
21414 expression: false,
21415 range: [15, 34],
21416 loc: {
21417 start: { line: 1, column: 15 },
21418 end: { line: 1, column: 34 }
21419 }
21420 },
21421 range: [14, 36],
21422 loc: {
21423 start: { line: 1, column: 14 },
21424 end: { line: 1, column: 36 }
21425 }
21426 }],
21427 range: [0, 36],
21428 loc: {
21429 start: { line: 1, column: 0 },
21430 end: { line: 1, column: 36 }
21431 },
21432 errors: [{
21433 index: 26,
21434 lineNumber: 1,
21435 column: 27,
21436 message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
21437 }]
21438 },
21439
21440
21441 '"use strict"; (function f(arguments) {});': {
21442 type: 'Program',
21443 body: [{
21444 type: 'ExpressionStatement',
21445 expression: {
21446 type: 'Literal',
21447 value: 'use strict',
21448 raw: '"use strict"',
21449 range: [0, 12],
21450 loc: {
21451 start: { line: 1, column: 0 },
21452 end: { line: 1, column: 12 }
21453 }
21454 },
21455 range: [0, 13],
21456 loc: {
21457 start: { line: 1, column: 0 },
21458 end: { line: 1, column: 13 }
21459 }
21460 }, {
21461 type: 'ExpressionStatement',
21462 expression: {
21463 type: 'FunctionExpression',
21464 id: {
21465 type: 'Identifier',
21466 name: 'f',
21467 range: [24, 25],
21468 loc: {
21469 start: { line: 1, column: 24 },
21470 end: { line: 1, column: 25 }
21471 }
21472 },
21473 params: [{
21474 type: 'Identifier',
21475 name: 'arguments',
21476 range: [26, 35],
21477 loc: {
21478 start: { line: 1, column: 26 },
21479 end: { line: 1, column: 35 }
21480 }
21481 }],
21482 defaults: [],
21483 body: {
21484 type: 'BlockStatement',
21485 body: [],
21486 range: [37, 39],
21487 loc: {
21488 start: { line: 1, column: 37 },
21489 end: { line: 1, column: 39 }
21490 }
21491 },
21492 rest: null,
21493 generator: false,
21494 expression: false,
21495 range: [15, 39],
21496 loc: {
21497 start: { line: 1, column: 15 },
21498 end: { line: 1, column: 39 }
21499 }
21500 },
21501 range: [14, 41],
21502 loc: {
21503 start: { line: 1, column: 14 },
21504 end: { line: 1, column: 41 }
21505 }
21506 }],
21507 range: [0, 41],
21508 loc: {
21509 start: { line: 1, column: 0 },
21510 end: { line: 1, column: 41 }
21511 },
21512 errors: [{
21513 index: 26,
21514 lineNumber: 1,
21515 column: 27,
21516 message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
21517 }]
21518 },
21519
21520 '"use strict"; (function f(foo, foo) {});': {
21521 type: 'Program',
21522 body: [{
21523 type: 'ExpressionStatement',
21524 expression: {
21525 type: 'Literal',
21526 value: 'use strict',
21527 raw: '"use strict"',
21528 range: [0, 12],
21529 loc: {
21530 start: { line: 1, column: 0 },
21531 end: { line: 1, column: 12 }
21532 }
21533 },
21534 range: [0, 13],
21535 loc: {
21536 start: { line: 1, column: 0 },
21537 end: { line: 1, column: 13 }
21538 }
21539 }, {
21540 type: 'ExpressionStatement',
21541 expression: {
21542 type: 'FunctionExpression',
21543 id: {
21544 type: 'Identifier',
21545 name: 'f',
21546 range: [24, 25],
21547 loc: {
21548 start: { line: 1, column: 24 },
21549 end: { line: 1, column: 25 }
21550 }
21551 },
21552 params: [{
21553 type: 'Identifier',
21554 name: 'foo',
21555 range: [26, 29],
21556 loc: {
21557 start: { line: 1, column: 26 },
21558 end: { line: 1, column: 29 }
21559 }
21560 }, {
21561 type: 'Identifier',
21562 name: 'foo',
21563 range: [32, 35],
21564 loc: {
21565 start: { line: 1, column: 32 },
21566 end: { line: 1, column: 35 }
21567 }
21568 }],
21569 defaults: [],
21570 body: {
21571 type: 'BlockStatement',
21572 body: [],
21573 range: [37, 39],
21574 loc: {
21575 start: { line: 1, column: 37 },
21576 end: { line: 1, column: 39 }
21577 }
21578 },
21579 rest: null,
21580 generator: false,
21581 expression: false,
21582 range: [15, 39],
21583 loc: {
21584 start: { line: 1, column: 15 },
21585 end: { line: 1, column: 39 }
21586 }
21587 },
21588 range: [14, 41],
21589 loc: {
21590 start: { line: 1, column: 14 },
21591 end: { line: 1, column: 41 }
21592 }
21593 }],
21594 range: [0, 41],
21595 loc: {
21596 start: { line: 1, column: 0 },
21597 end: { line: 1, column: 41 }
21598 },
21599 errors: [{
21600 index: 32,
21601 lineNumber: 1,
21602 column: 33,
21603 message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
21604 }]
21605 },
21606
21607 '"use strict"; x = { set f(eval) {} }' : {
21608 type: 'Program',
21609 body: [{
21610 type: 'ExpressionStatement',
21611 expression: {
21612 type: 'Literal',
21613 value: 'use strict',
21614 raw: '"use strict"',
21615 range: [0, 12],
21616 loc: {
21617 start: { line: 1, column: 0 },
21618 end: { line: 1, column: 12 }
21619 }
21620 },
21621 range: [0, 13],
21622 loc: {
21623 start: { line: 1, column: 0 },
21624 end: { line: 1, column: 13 }
21625 }
21626 }, {
21627 type: 'ExpressionStatement',
21628 expression: {
21629 type: 'AssignmentExpression',
21630 operator: '=',
21631 left: {
21632 type: 'Identifier',
21633 name: 'x',
21634 range: [14, 15],
21635 loc: {
21636 start: { line: 1, column: 14 },
21637 end: { line: 1, column: 15 }
21638 }
21639 },
21640 right: {
21641 type: 'ObjectExpression',
21642 properties: [{
21643 type: 'Property',
21644 key: {
21645 type: 'Identifier',
21646 name: 'f',
21647 range: [24, 25],
21648 loc: {
21649 start: { line: 1, column: 24 },
21650 end: { line: 1, column: 25 }
21651 }
21652 },
21653 value : {
21654 type: 'FunctionExpression',
21655 id: null,
21656 params: [{
21657 type: 'Identifier',
21658 name: 'eval',
21659 range: [26, 30],
21660 loc: {
21661 start: { line: 1, column: 26 },
21662 end: { line: 1, column: 30 }
21663 }
21664 }],
21665 defaults: [],
21666 body: {
21667 type: 'BlockStatement',
21668 body: [],
21669 range: [32, 34],
21670 loc: {
21671 start: { line: 1, column: 32 },
21672 end: { line: 1, column: 34 }
21673 }
21674 },
21675 rest: null,
21676 generator: false,
21677 expression: false,
21678 range: [32, 34],
21679 loc: {
21680 start: { line: 1, column: 32 },
21681 end: { line: 1, column: 34 }
21682 }
21683 },
21684 kind: 'set',
21685 method: false,
21686 shorthand: false,
21687 range: [20, 34],
21688 loc: {
21689 start: { line: 1, column: 20 },
21690 end: { line: 1, column: 34 }
21691 }
21692 }],
21693 range: [18, 36],
21694 loc: {
21695 start: { line: 1, column: 18 },
21696 end: { line: 1, column: 36 }
21697 }
21698 },
21699 range: [14, 36],
21700 loc: {
21701 start: { line: 1, column: 14 },
21702 end: { line: 1, column: 36 }
21703 }
21704 },
21705 range: [14, 36],
21706 loc: {
21707 start: { line: 1, column: 14 },
21708 end: { line: 1, column: 36 }
21709 }
21710 }],
21711 range: [0, 36],
21712 loc: {
21713 start: { line: 1, column: 0 },
21714 end: { line: 1, column: 36 }
21715 },
21716 errors: [{
21717 index: 26,
21718 lineNumber: 1,
21719 column: 27,
21720 message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
21721 }]
21722 },
21723
21724 'function hello() { "octal directive\\1"; "use strict"; }': {
21725 type: 'Program',
21726 body: [{
21727 type: 'FunctionDeclaration',
21728 id: {
21729 type: 'Identifier',
21730 name: 'hello',
21731 range: [9, 14],
21732 loc: {
21733 start: { line: 1, column: 9 },
21734 end: { line: 1, column: 14 }
21735 }
21736 },
21737 params: [],
21738 defaults: [],
21739 body: {
21740 type: 'BlockStatement',
21741 body: [{
21742 type: 'ExpressionStatement',
21743 expression: {
21744 type: 'Literal',
21745 value: 'octal directive\u0001',
21746 raw: '"octal directive\\1"',
21747 range: [19, 38],
21748 loc: {
21749 start: { line: 1, column: 19 },
21750 end: { line: 1, column: 38 }
21751 }
21752 },
21753 range: [19, 39],
21754 loc: {
21755 start: { line: 1, column: 19 },
21756 end: { line: 1, column: 39 }
21757 }
21758 }, {
21759 type: 'ExpressionStatement',
21760 expression: {
21761 type: 'Literal',
21762 value: 'use strict',
21763 raw: '"use strict"',
21764 range: [40, 52],
21765 loc: {
21766 start: { line: 1, column: 40 },
21767 end: { line: 1, column: 52 }
21768 }
21769 },
21770 range: [40, 53],
21771 loc: {
21772 start: { line: 1, column: 40 },
21773 end: { line: 1, column: 53 }
21774 }
21775 }],
21776 range: [17, 55],
21777 loc: {
21778 start: { line: 1, column: 17 },
21779 end: { line: 1, column: 55 }
21780 }
21781 },
21782 rest: null,
21783 generator: false,
21784 expression: false,
21785 range: [0, 55],
21786 loc: {
21787 start: { line: 1, column: 0 },
21788 end: { line: 1, column: 55 }
21789 }
21790 }],
21791 range: [0, 55],
21792 loc: {
21793 start: { line: 1, column: 0 },
21794 end: { line: 1, column: 55 }
21795 },
21796 errors: [{
21797 index: 19,
21798 lineNumber: 1,
21799 column: 20,
21800 message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
21801 }]
21802 },
21803
21804 '"\\1"; \'use strict\';': {
21805 type: 'Program',
21806 body: [{
21807 type: 'ExpressionStatement',
21808 expression: {
21809 type: 'Literal',
21810 value: '\u0001',
21811 raw: '"\\1"',
21812 range: [0, 4],
21813 loc: {
21814 start: { line: 1, column: 0 },
21815 end: { line: 1, column: 4 }
21816 }
21817 },
21818 range: [0, 5],
21819 loc: {
21820 start: { line: 1, column: 0 },
21821 end: { line: 1, column: 5 }
21822 }
21823 }, {
21824 type: 'ExpressionStatement',
21825 expression: {
21826 type: 'Literal',
21827 value: 'use strict',
21828 raw: '\'use strict\'',
21829 range: [6, 18],
21830 loc: {
21831 start: { line: 1, column: 6 },
21832 end: { line: 1, column: 18 }
21833 }
21834 },
21835 range: [6, 19],
21836 loc: {
21837 start: { line: 1, column: 6 },
21838 end: { line: 1, column: 19 }
21839 }
21840 }],
21841 range: [0, 19],
21842 loc: {
21843 start: { line: 1, column: 0 },
21844 end: { line: 1, column: 19 }
21845 },
21846 errors: [{
21847 index: 0,
21848 lineNumber: 1,
21849 column: 1,
21850 message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
21851 }]
21852 },
21853
21854 '"use strict"; var x = { 014: 3}': {
21855 type: 'Program',
21856 body: [{
21857 type: 'ExpressionStatement',
21858 expression: {
21859 type: 'Literal',
21860 value: 'use strict',
21861 raw: '"use strict"',
21862 range: [0, 12],
21863 loc: {
21864 start: { line: 1, column: 0 },
21865 end: { line: 1, column: 12 }
21866 }
21867 },
21868 range: [0, 13],
21869 loc: {
21870 start: { line: 1, column: 0 },
21871 end: { line: 1, column: 13 }
21872 }
21873 }, {
21874 type: 'VariableDeclaration',
21875 declarations: [{
21876 type: 'VariableDeclarator',
21877 id: {
21878 type: 'Identifier',
21879 name: 'x',
21880 range: [18, 19],
21881 loc: {
21882 start: { line: 1, column: 18 },
21883 end: { line: 1, column: 19 }
21884 }
21885 },
21886 init: {
21887 type: 'ObjectExpression',
21888 properties: [{
21889 type: 'Property',
21890 key: {
21891 type: 'Literal',
21892 value: 12,
21893 raw: '014',
21894 range: [24, 27],
21895 loc: {
21896 start: { line: 1, column: 24 },
21897 end: { line: 1, column: 27 }
21898 }
21899 },
21900 value: {
21901 type: 'Literal',
21902 value: 3,
21903 raw: '3',
21904 range: [29, 30],
21905 loc: {
21906 start: { line: 1, column: 29 },
21907 end: { line: 1, column: 30 }
21908 }
21909 },
21910 kind: 'init',
21911 method: false,
21912 shorthand: false,
21913 range: [24, 30],
21914 loc: {
21915 start: { line: 1, column: 24 },
21916 end: { line: 1, column: 30 }
21917 }
21918 }],
21919 range: [22, 31],
21920 loc: {
21921 start: { line: 1, column: 22 },
21922 end: { line: 1, column: 31 }
21923 }
21924 },
21925 range: [18, 31],
21926 loc: {
21927 start: { line: 1, column: 18 },
21928 end: { line: 1, column: 31 }
21929 }
21930 }],
21931 kind: 'var',
21932 range: [14, 31],
21933 loc: {
21934 start: { line: 1, column: 14 },
21935 end: { line: 1, column: 31 }
21936 }
21937 }],
21938 range: [0, 31],
21939 loc: {
21940 start: { line: 1, column: 0 },
21941 end: { line: 1, column: 31 }
21942 },
21943 errors: [{
21944 index: 24,
21945 lineNumber: 1,
21946 column: 25,
21947 message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
21948 }]
21949 },
21950
21951 '"use strict"; var x = { get i() {}, get i() {} }': {
21952 type: 'Program',
21953 body: [{
21954 type: 'ExpressionStatement',
21955 expression: {
21956 type: 'Literal',
21957 value: 'use strict',
21958 raw: '"use strict"',
21959 range: [0, 12],
21960 loc: {
21961 start: { line: 1, column: 0 },
21962 end: { line: 1, column: 12 }
21963 }
21964 },
21965 range: [0, 13],
21966 loc: {
21967 start: { line: 1, column: 0 },
21968 end: { line: 1, column: 13 }
21969 }
21970 }, {
21971 type: 'VariableDeclaration',
21972 declarations: [{
21973 type: 'VariableDeclarator',
21974 id: {
21975 type: 'Identifier',
21976 name: 'x',
21977 range: [18, 19],
21978 loc: {
21979 start: { line: 1, column: 18 },
21980 end: { line: 1, column: 19 }
21981 }
21982 },
21983 init: {
21984 type: 'ObjectExpression',
21985 properties: [{
21986 type: 'Property',
21987 key: {
21988 type: 'Identifier',
21989 name: 'i',
21990 range: [28, 29],
21991 loc: {
21992 start: { line: 1, column: 28 },
21993 end: { line: 1, column: 29 }
21994 }
21995 },
21996 value: {
21997 type: 'FunctionExpression',
21998 id: null,
21999 params: [],
22000 defaults: [],
22001 body: {
22002 type: 'BlockStatement',
22003 body: [],
22004 range: [32, 34],
22005 loc: {
22006 start: { line: 1, column: 32 },
22007 end: { line: 1, column: 34 }
22008 }
22009 },
22010 rest: null,
22011 generator: false,
22012 expression: false,
22013 range: [32, 34],
22014 loc: {
22015 start: { line: 1, column: 32 },
22016 end: { line: 1, column: 34 }
22017 }
22018 },
22019 kind: 'get',
22020 method: false,
22021 shorthand: false,
22022 range: [24, 34],
22023 loc: {
22024 start: { line: 1, column: 24 },
22025 end: { line: 1, column: 34 }
22026 }
22027 }, {
22028 type: 'Property',
22029 key: {
22030 type: 'Identifier',
22031 name: 'i',
22032 range: [40, 41],
22033 loc: {
22034 start: { line: 1, column: 40 },
22035 end: { line: 1, column: 41 }
22036 }
22037 },
22038 value: {
22039 type: 'FunctionExpression',
22040 id: null,
22041 params: [],
22042 defaults: [],
22043 body: {
22044 type: 'BlockStatement',
22045 body: [],
22046 range: [44, 46],
22047 loc: {
22048 start: { line: 1, column: 44 },
22049 end: { line: 1, column: 46 }
22050 }
22051 },
22052 rest: null,
22053 generator: false,
22054 expression: false,
22055 range: [44, 46],
22056 loc: {
22057 start: { line: 1, column: 44 },
22058 end: { line: 1, column: 46 }
22059 }
22060 },
22061 kind: 'get',
22062 method: false,
22063 shorthand: false,
22064 range: [36, 46],
22065 loc: {
22066 start: { line: 1, column: 36 },
22067 end: { line: 1, column: 46 }
22068 }
22069 }],
22070 range: [22, 48],
22071 loc: {
22072 start: { line: 1, column: 22 },
22073 end: { line: 1, column: 48 }
22074 }
22075 },
22076 range: [18, 48],
22077 loc: {
22078 start: { line: 1, column: 18 },
22079 end: { line: 1, column: 48 }
22080 }
22081 }],
22082 kind: 'var',
22083 range: [14, 48],
22084 loc: {
22085 start: { line: 1, column: 14 },
22086 end: { line: 1, column: 48 }
22087 }
22088 }],
22089 range: [0, 48],
22090 loc: {
22091 start: { line: 1, column: 0 },
22092 end: { line: 1, column: 48 }
22093 },
22094 errors: [{
22095 index: 46,
22096 lineNumber: 1,
22097 column: 47,
22098 message: 'Error: Line 1: Object literal may not have multiple get/set accessors with the same name'
22099 }]
22100 },
22101
22102 '"use strict"; var x = { i: 42, get i() {} }': {
22103 type: 'Program',
22104 body: [{
22105 type: 'ExpressionStatement',
22106 expression: {
22107 type: 'Literal',
22108 value: 'use strict',
22109 raw: '"use strict"',
22110 range: [0, 12],
22111 loc: {
22112 start: { line: 1, column: 0 },
22113 end: { line: 1, column: 12 }
22114 }
22115 },
22116 range: [0, 13],
22117 loc: {
22118 start: { line: 1, column: 0 },
22119 end: { line: 1, column: 13 }
22120 }
22121 }, {
22122 type: 'VariableDeclaration',
22123 declarations: [{
22124 type: 'VariableDeclarator',
22125 id: {
22126 type: 'Identifier',
22127 name: 'x',
22128 range: [18, 19],
22129 loc: {
22130 start: { line: 1, column: 18 },
22131 end: { line: 1, column: 19 }
22132 }
22133 },
22134 init: {
22135 type: 'ObjectExpression',
22136 properties: [{
22137 type: 'Property',
22138 key: {
22139 type: 'Identifier',
22140 name: 'i',
22141 range: [24, 25],
22142 loc: {
22143 start: { line: 1, column: 24 },
22144 end: { line: 1, column: 25 }
22145 }
22146 },
22147 value: {
22148 type: 'Literal',
22149 value: 42,
22150 raw: '42',
22151 range: [27, 29],
22152 loc: {
22153 start: { line: 1, column: 27 },
22154 end: { line: 1, column: 29 }
22155 }
22156 },
22157 kind: 'init',
22158 method: false,
22159 shorthand: false,
22160 range: [24, 29],
22161 loc: {
22162 start: { line: 1, column: 24 },
22163 end: { line: 1, column: 29 }
22164 }
22165 }, {
22166 type: 'Property',
22167 key: {
22168 type: 'Identifier',
22169 name: 'i',
22170 range: [35, 36],
22171 loc: {
22172 start: { line: 1, column: 35 },
22173 end: { line: 1, column: 36 }
22174 }
22175 },
22176 value: {
22177 type: 'FunctionExpression',
22178 id: null,
22179 params: [],
22180 defaults: [],
22181 body: {
22182 type: 'BlockStatement',
22183 body: [],
22184 range: [39, 41],
22185 loc: {
22186 start: { line: 1, column: 39 },
22187 end: { line: 1, column: 41 }
22188 }
22189 },
22190 rest: null,
22191 generator: false,
22192 expression: false,
22193 range: [39, 41],
22194 loc: {
22195 start: { line: 1, column: 39 },
22196 end: { line: 1, column: 41 }
22197 }
22198 },
22199 kind: 'get',
22200 method: false,
22201 shorthand: false,
22202 range: [31, 41],
22203 loc: {
22204 start: { line: 1, column: 31 },
22205 end: { line: 1, column: 41 }
22206 }
22207 }],
22208 range: [22, 43],
22209 loc: {
22210 start: { line: 1, column: 22 },
22211 end: { line: 1, column: 43 }
22212 }
22213 },
22214 range: [18, 43],
22215 loc: {
22216 start: { line: 1, column: 18 },
22217 end: { line: 1, column: 43 }
22218 }
22219 }],
22220 kind: 'var',
22221 range: [14, 43],
22222 loc: {
22223 start: { line: 1, column: 14 },
22224 end: { line: 1, column: 43 }
22225 }
22226 }],
22227 range: [0, 43],
22228 loc: {
22229 start: { line: 1, column: 0 },
22230 end: { line: 1, column: 43 }
22231 },
22232 errors: [{
22233 index: 41,
22234 lineNumber: 1,
22235 column: 42,
22236 message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
22237 }]
22238 },
22239
22240 '"use strict"; var x = { set i(x) {}, i: 42 }': {
22241 type: 'Program',
22242 body: [{
22243 type: 'ExpressionStatement',
22244 expression: {
22245 type: 'Literal',
22246 value: 'use strict',
22247 raw: '"use strict"',
22248 range: [0, 12],
22249 loc: {
22250 start: { line: 1, column: 0 },
22251 end: { line: 1, column: 12 }
22252 }
22253 },
22254 range: [0, 13],
22255 loc: {
22256 start: { line: 1, column: 0 },
22257 end: { line: 1, column: 13 }
22258 }
22259 }, {
22260 type: 'VariableDeclaration',
22261 declarations: [{
22262 type: 'VariableDeclarator',
22263 id: {
22264 type: 'Identifier',
22265 name: 'x',
22266 range: [18, 19],
22267 loc: {
22268 start: { line: 1, column: 18 },
22269 end: { line: 1, column: 19 }
22270 }
22271 },
22272 init: {
22273 type: 'ObjectExpression',
22274 properties: [{
22275 type: 'Property',
22276 key: {
22277 type: 'Identifier',
22278 name: 'i',
22279 range: [28, 29],
22280 loc: {
22281 start: { line: 1, column: 28 },
22282 end: { line: 1, column: 29 }
22283 }
22284 },
22285 value: {
22286 type: 'FunctionExpression',
22287 id: null,
22288 params: [{
22289 type: 'Identifier',
22290 name: 'x',
22291 range: [30, 31],
22292 loc: {
22293 start: { line: 1, column: 30 },
22294 end: { line: 1, column: 31 }
22295 }
22296 }],
22297 defaults: [],
22298 body: {
22299 type: 'BlockStatement',
22300 body: [],
22301 range: [33, 35],
22302 loc: {
22303 start: { line: 1, column: 33 },
22304 end: { line: 1, column: 35 }
22305 }
22306 },
22307 rest: null,
22308 generator: false,
22309 expression: false,
22310 range: [33, 35],
22311 loc: {
22312 start: { line: 1, column: 33 },
22313 end: { line: 1, column: 35 }
22314 }
22315 },
22316 kind: 'set',
22317 method: false,
22318 shorthand: false,
22319 range: [24, 35],
22320 loc: {
22321 start: { line: 1, column: 24 },
22322 end: { line: 1, column: 35 }
22323 }
22324 }, {
22325 type: 'Property',
22326 key: {
22327 type: 'Identifier',
22328 name: 'i',
22329 range: [37, 38],
22330 loc: {
22331 start: { line: 1, column: 37 },
22332 end: { line: 1, column: 38 }
22333 }
22334 },
22335 value: {
22336 type: 'Literal',
22337 value: 42,
22338 raw: '42',
22339 range: [40, 42],
22340 loc: {
22341 start: { line: 1, column: 40 },
22342 end: { line: 1, column: 42 }
22343 }
22344 },
22345 kind: 'init',
22346 method: false,
22347 shorthand: false,
22348 range: [37, 42],
22349 loc: {
22350 start: { line: 1, column: 37 },
22351 end: { line: 1, column: 42 }
22352 }
22353 }],
22354 range: [22, 44],
22355 loc: {
22356 start: { line: 1, column: 22 },
22357 end: { line: 1, column: 44 }
22358 }
22359 },
22360 range: [18, 44],
22361 loc: {
22362 start: { line: 1, column: 18 },
22363 end: { line: 1, column: 44 }
22364 }
22365 }],
22366 kind: 'var',
22367 range: [14, 44],
22368 loc: {
22369 start: { line: 1, column: 14 },
22370 end: { line: 1, column: 44 }
22371 }
22372 }],
22373 range: [0, 44],
22374 loc: {
22375 start: { line: 1, column: 0 },
22376 end: { line: 1, column: 44 }
22377 },
22378 errors: [{
22379 index: 42,
22380 lineNumber: 1,
22381 column: 43,
22382 message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
22383 }]
22384
22385
22386 }
22387
22388
22389 },
22390};