Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
80556 views
1
/*
2
Copyright (C) 2012 Ariya Hidayat <[email protected]>
3
Copyright (C) 2012 Joost-Wim Boekesteijn <[email protected]>
4
Copyright (C) 2012 Yusuke Suzuki <[email protected]>
5
Copyright (C) 2012 Arpad Borsos <[email protected]>
6
Copyright (C) 2011 Ariya Hidayat <[email protected]>
7
Copyright (C) 2011 Yusuke Suzuki <[email protected]>
8
Copyright (C) 2011 Arpad Borsos <[email protected]>
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
31
var testFixtureOptions = {},
32
33
testFixture = {
34
35
'Primary Expression': {
36
37
'this\n': {
38
type: 'Program',
39
body: [{
40
type: 'ExpressionStatement',
41
expression: {
42
type: 'ThisExpression',
43
range: [0, 4],
44
loc: {
45
start: { line: 1, column: 0 },
46
end: { line: 1, column: 4 }
47
}
48
},
49
range: [0, 4],
50
loc: {
51
start: { line: 1, column: 0 },
52
end: { line: 1, column: 4 }
53
}
54
}],
55
range: [0, 4],
56
loc: {
57
start: { line: 1, column: 0 },
58
end: { line: 1, column: 4 }
59
},
60
tokens: [{
61
type: 'Keyword',
62
value: 'this',
63
range: [0, 4],
64
loc: {
65
start: { line: 1, column: 0 },
66
end: { line: 1, column: 4 }
67
}
68
}]
69
},
70
71
'null\n': {
72
type: 'Program',
73
body: [{
74
type: 'ExpressionStatement',
75
expression: {
76
type: 'Literal',
77
value: null,
78
raw: 'null',
79
range: [0, 4],
80
loc: {
81
start: { line: 1, column: 0 },
82
end: { line: 1, column: 4 }
83
}
84
},
85
range: [0, 4],
86
loc: {
87
start: { line: 1, column: 0 },
88
end: { line: 1, column: 4 }
89
}
90
}],
91
range: [0, 4],
92
loc: {
93
start: { line: 1, column: 0 },
94
end: { line: 1, column: 4 }
95
},
96
tokens: [{
97
type: 'Null',
98
value: 'null',
99
range: [0, 4],
100
loc: {
101
start: { line: 1, column: 0 },
102
end: { line: 1, column: 4 }
103
}
104
}]
105
},
106
107
'\n 42\n\n': {
108
type: 'Program',
109
body: [{
110
type: 'ExpressionStatement',
111
expression: {
112
type: 'Literal',
113
value: 42,
114
raw: '42',
115
range: [5, 7],
116
loc: {
117
start: { line: 2, column: 4 },
118
end: { line: 2, column: 6 }
119
}
120
},
121
range: [5, 7],
122
loc: {
123
start: { line: 2, column: 4 },
124
end: { line: 2, column: 6 }
125
}
126
}],
127
range: [5, 7],
128
loc: {
129
start: { line: 2, column: 4 },
130
end: { line: 2, column: 6 }
131
},
132
tokens: [{
133
type: 'Numeric',
134
value: '42',
135
range: [5, 7],
136
loc: {
137
start: { line: 2, column: 4 },
138
end: { line: 2, column: 6 }
139
}
140
}]
141
},
142
143
'(1 + 2 ) * 3': {
144
type: 'ExpressionStatement',
145
expression: {
146
type: 'BinaryExpression',
147
operator: '*',
148
left: {
149
type: 'BinaryExpression',
150
operator: '+',
151
left: {
152
type: 'Literal',
153
value: 1,
154
raw: '1',
155
range: [1, 2],
156
loc: {
157
start: { line: 1, column: 1 },
158
end: { line: 1, column: 2 }
159
}
160
},
161
right: {
162
type: 'Literal',
163
value: 2,
164
raw: '2',
165
range: [5, 6],
166
loc: {
167
start: { line: 1, column: 5 },
168
end: { line: 1, column: 6 }
169
}
170
},
171
range: [1, 6],
172
loc: {
173
start: { line: 1, column: 1 },
174
end: { line: 1, column: 6 }
175
}
176
},
177
right: {
178
type: 'Literal',
179
value: 3,
180
raw: '3',
181
range: [11, 12],
182
loc: {
183
start: { line: 1, column: 11 },
184
end: { line: 1, column: 12 }
185
}
186
},
187
range: [0, 12],
188
loc: {
189
start: { line: 1, column: 0 },
190
end: { line: 1, column: 12 }
191
}
192
},
193
range: [0, 12],
194
loc: {
195
start: { line: 1, column: 0 },
196
end: { line: 1, column: 12 }
197
}
198
}
199
200
},
201
202
'Grouping Operator': {
203
204
'(1) + (2 ) + 3': {
205
type: 'ExpressionStatement',
206
expression: {
207
type: 'BinaryExpression',
208
operator: '+',
209
left: {
210
type: 'BinaryExpression',
211
operator: '+',
212
left: {
213
type: 'Literal',
214
value: 1,
215
raw: '1',
216
range: [1, 2],
217
loc: {
218
start: { line: 1, column: 1 },
219
end: { line: 1, column: 2 }
220
}
221
},
222
right: {
223
type: 'Literal',
224
value: 2,
225
raw: '2',
226
range: [7, 8],
227
loc: {
228
start: { line: 1, column: 7 },
229
end: { line: 1, column: 8 }
230
}
231
},
232
range: [0, 11],
233
loc: {
234
start: { line: 1, column: 0 },
235
end: { line: 1, column: 11 }
236
}
237
},
238
right: {
239
type: 'Literal',
240
value: 3,
241
raw: '3',
242
range: [14, 15],
243
loc: {
244
start: { line: 1, column: 14 },
245
end: { line: 1, column: 15 }
246
}
247
},
248
range: [0, 15],
249
loc: {
250
start: { line: 1, column: 0 },
251
end: { line: 1, column: 15 }
252
}
253
},
254
range: [0, 15],
255
loc: {
256
start: { line: 1, column: 0 },
257
end: { line: 1, column: 15 }
258
}
259
},
260
261
'4 + 5 << (6)': {
262
type: 'ExpressionStatement',
263
expression: {
264
type: 'BinaryExpression',
265
operator: '<<',
266
left: {
267
type: 'BinaryExpression',
268
operator: '+',
269
left: {
270
type: 'Literal',
271
value: 4,
272
raw: '4',
273
range: [0, 1],
274
loc: {
275
start: { line: 1, column: 0 },
276
end: { line: 1, column: 1 }
277
}
278
},
279
right: {
280
type: 'Literal',
281
value: 5,
282
raw: '5',
283
range: [4, 5],
284
loc: {
285
start: { line: 1, column: 4 },
286
end: { line: 1, column: 5 }
287
}
288
},
289
range: [0, 5],
290
loc: {
291
start: { line: 1, column: 0 },
292
end: { line: 1, column: 5 }
293
}
294
},
295
right: {
296
type: 'Literal',
297
value: 6,
298
raw: '6',
299
range: [10, 11],
300
loc: {
301
start: { line: 1, column: 10 },
302
end: { line: 1, column: 11 }
303
}
304
},
305
range: [0, 12],
306
loc: {
307
start: { line: 1, column: 0 },
308
end: { line: 1, column: 12 }
309
}
310
},
311
range: [0, 12],
312
loc: {
313
start: { line: 1, column: 0 },
314
end: { line: 1, column: 12 }
315
}
316
}
317
318
},
319
320
'Array Initializer': {
321
322
'x = []': {
323
type: 'Program',
324
body: [{
325
type: 'ExpressionStatement',
326
expression: {
327
type: 'AssignmentExpression',
328
operator: '=',
329
left: {
330
type: 'Identifier',
331
name: 'x',
332
range: [0, 1],
333
loc: {
334
start: { line: 1, column: 0 },
335
end: { line: 1, column: 1 }
336
}
337
},
338
right: {
339
type: 'ArrayExpression',
340
elements: [],
341
range: [4, 6],
342
loc: {
343
start: { line: 1, column: 4 },
344
end: { line: 1, column: 6 }
345
}
346
},
347
range: [0, 6],
348
loc: {
349
start: { line: 1, column: 0 },
350
end: { line: 1, column: 6 }
351
}
352
},
353
range: [0, 6],
354
loc: {
355
start: { line: 1, column: 0 },
356
end: { line: 1, column: 6 }
357
}
358
}],
359
range: [0, 6],
360
loc: {
361
start: { line: 1, column: 0 },
362
end: { line: 1, column: 6 }
363
},
364
tokens: [{
365
type: 'Identifier',
366
value: 'x',
367
range: [0, 1],
368
loc: {
369
start: { line: 1, column: 0 },
370
end: { line: 1, column: 1 }
371
}
372
}, {
373
type: 'Punctuator',
374
value: '=',
375
range: [2, 3],
376
loc: {
377
start: { line: 1, column: 2 },
378
end: { line: 1, column: 3 }
379
}
380
}, {
381
type: 'Punctuator',
382
value: '[',
383
range: [4, 5],
384
loc: {
385
start: { line: 1, column: 4 },
386
end: { line: 1, column: 5 }
387
}
388
}, {
389
type: 'Punctuator',
390
value: ']',
391
range: [5, 6],
392
loc: {
393
start: { line: 1, column: 5 },
394
end: { line: 1, column: 6 }
395
}
396
}]
397
},
398
399
'x = [ ]': {
400
type: 'ExpressionStatement',
401
expression: {
402
type: 'AssignmentExpression',
403
operator: '=',
404
left: {
405
type: 'Identifier',
406
name: 'x',
407
range: [0, 1],
408
loc: {
409
start: { line: 1, column: 0 },
410
end: { line: 1, column: 1 }
411
}
412
},
413
right: {
414
type: 'ArrayExpression',
415
elements: [],
416
range: [4, 7],
417
loc: {
418
start: { line: 1, column: 4 },
419
end: { line: 1, column: 7 }
420
}
421
},
422
range: [0, 7],
423
loc: {
424
start: { line: 1, column: 0 },
425
end: { line: 1, column: 7 }
426
}
427
},
428
range: [0, 7],
429
loc: {
430
start: { line: 1, column: 0 },
431
end: { line: 1, column: 7 }
432
}
433
},
434
435
'x = [ 42 ]': {
436
type: 'ExpressionStatement',
437
expression: {
438
type: 'AssignmentExpression',
439
operator: '=',
440
left: {
441
type: 'Identifier',
442
name: 'x',
443
range: [0, 1],
444
loc: {
445
start: { line: 1, column: 0 },
446
end: { line: 1, column: 1 }
447
}
448
},
449
right: {
450
type: 'ArrayExpression',
451
elements: [{
452
type: 'Literal',
453
value: 42,
454
raw: '42',
455
range: [6, 8],
456
loc: {
457
start: { line: 1, column: 6 },
458
end: { line: 1, column: 8 }
459
}
460
}],
461
range: [4, 10],
462
loc: {
463
start: { line: 1, column: 4 },
464
end: { line: 1, column: 10 }
465
}
466
},
467
range: [0, 10],
468
loc: {
469
start: { line: 1, column: 0 },
470
end: { line: 1, column: 10 }
471
}
472
},
473
range: [0, 10],
474
loc: {
475
start: { line: 1, column: 0 },
476
end: { line: 1, column: 10 }
477
}
478
},
479
480
'x = [ 42, ]': {
481
type: 'ExpressionStatement',
482
expression: {
483
type: 'AssignmentExpression',
484
operator: '=',
485
left: {
486
type: 'Identifier',
487
name: 'x',
488
range: [0, 1],
489
loc: {
490
start: { line: 1, column: 0 },
491
end: { line: 1, column: 1 }
492
}
493
},
494
right: {
495
type: 'ArrayExpression',
496
elements: [{
497
type: 'Literal',
498
value: 42,
499
raw: '42',
500
range: [6, 8],
501
loc: {
502
start: { line: 1, column: 6 },
503
end: { line: 1, column: 8 }
504
}
505
}],
506
range: [4, 11],
507
loc: {
508
start: { line: 1, column: 4 },
509
end: { line: 1, column: 11 }
510
}
511
},
512
range: [0, 11],
513
loc: {
514
start: { line: 1, column: 0 },
515
end: { line: 1, column: 11 }
516
}
517
},
518
range: [0, 11],
519
loc: {
520
start: { line: 1, column: 0 },
521
end: { line: 1, column: 11 }
522
}
523
},
524
525
'x = [ ,, 42 ]': {
526
type: 'ExpressionStatement',
527
expression: {
528
type: 'AssignmentExpression',
529
operator: '=',
530
left: {
531
type: 'Identifier',
532
name: 'x',
533
range: [0, 1],
534
loc: {
535
start: { line: 1, column: 0 },
536
end: { line: 1, column: 1 }
537
}
538
},
539
right: {
540
type: 'ArrayExpression',
541
elements: [
542
null,
543
null,
544
{
545
type: 'Literal',
546
value: 42,
547
raw: '42',
548
range: [9, 11],
549
loc: {
550
start: { line: 1, column: 9 },
551
end: { line: 1, column: 11 }
552
}
553
}],
554
range: [4, 13],
555
loc: {
556
start: { line: 1, column: 4 },
557
end: { line: 1, column: 13 }
558
}
559
},
560
range: [0, 13],
561
loc: {
562
start: { line: 1, column: 0 },
563
end: { line: 1, column: 13 }
564
}
565
},
566
range: [0, 13],
567
loc: {
568
start: { line: 1, column: 0 },
569
end: { line: 1, column: 13 }
570
}
571
},
572
573
'x = [ 1, 2, 3, ]': {
574
type: 'ExpressionStatement',
575
expression: {
576
type: 'AssignmentExpression',
577
operator: '=',
578
left: {
579
type: 'Identifier',
580
name: 'x',
581
range: [0, 1],
582
loc: {
583
start: { line: 1, column: 0 },
584
end: { line: 1, column: 1 }
585
}
586
},
587
right: {
588
type: 'ArrayExpression',
589
elements: [{
590
type: 'Literal',
591
value: 1,
592
raw: '1',
593
range: [6, 7],
594
loc: {
595
start: { line: 1, column: 6 },
596
end: { line: 1, column: 7 }
597
}
598
}, {
599
type: 'Literal',
600
value: 2,
601
raw: '2',
602
range: [9, 10],
603
loc: {
604
start: { line: 1, column: 9 },
605
end: { line: 1, column: 10 }
606
}
607
}, {
608
type: 'Literal',
609
value: 3,
610
raw: '3',
611
range: [12, 13],
612
loc: {
613
start: { line: 1, column: 12 },
614
end: { line: 1, column: 13 }
615
}
616
}],
617
range: [4, 16],
618
loc: {
619
start: { line: 1, column: 4 },
620
end: { line: 1, column: 16 }
621
}
622
},
623
range: [0, 16],
624
loc: {
625
start: { line: 1, column: 0 },
626
end: { line: 1, column: 16 }
627
}
628
},
629
range: [0, 16],
630
loc: {
631
start: { line: 1, column: 0 },
632
end: { line: 1, column: 16 }
633
}
634
},
635
636
'x = [ 1, 2,, 3, ]': {
637
type: 'ExpressionStatement',
638
expression: {
639
type: 'AssignmentExpression',
640
operator: '=',
641
left: {
642
type: 'Identifier',
643
name: 'x',
644
range: [0, 1],
645
loc: {
646
start: { line: 1, column: 0 },
647
end: { line: 1, column: 1 }
648
}
649
},
650
right: {
651
type: 'ArrayExpression',
652
elements: [{
653
type: 'Literal',
654
value: 1,
655
raw: '1',
656
range: [6, 7],
657
loc: {
658
start: { line: 1, column: 6 },
659
end: { line: 1, column: 7 }
660
}
661
}, {
662
type: 'Literal',
663
value: 2,
664
raw: '2',
665
range: [9, 10],
666
loc: {
667
start: { line: 1, column: 9 },
668
end: { line: 1, column: 10 }
669
}
670
}, null, {
671
type: 'Literal',
672
value: 3,
673
raw: '3',
674
range: [13, 14],
675
loc: {
676
start: { line: 1, column: 13 },
677
end: { line: 1, column: 14 }
678
}
679
}],
680
range: [4, 17],
681
loc: {
682
start: { line: 1, column: 4 },
683
end: { line: 1, column: 17 }
684
}
685
},
686
range: [0, 17],
687
loc: {
688
start: { line: 1, column: 0 },
689
end: { line: 1, column: 17 }
690
}
691
},
692
range: [0, 17],
693
loc: {
694
start: { line: 1, column: 0 },
695
end: { line: 1, column: 17 }
696
}
697
},
698
699
'x = [ "finally", "for" ]': {
700
type: 'ExpressionStatement',
701
expression: {
702
type: 'AssignmentExpression',
703
operator: '=',
704
left: {
705
type: 'Identifier',
706
name: 'x',
707
range: [0, 1],
708
loc: {
709
start: { line: 1, column: 0 },
710
end: { line: 1, column: 1 }
711
}
712
},
713
right: {
714
type: 'ArrayExpression',
715
elements: [{
716
type: 'Literal',
717
value: 'finally',
718
raw: '"finally"',
719
range: [6, 15],
720
loc: {
721
start: { line: 1, column: 6 },
722
end: { line: 1, column: 15 }
723
}
724
}, {
725
type: 'Literal',
726
value: 'for',
727
raw: '"for"',
728
range: [17, 22],
729
loc: {
730
start: { line: 1, column: 17 },
731
end: { line: 1, column: 22 }
732
}
733
}],
734
range: [4, 24],
735
loc: {
736
start: { line: 1, column: 4 },
737
end: { line: 1, column: 24 }
738
}
739
},
740
range: [0, 24],
741
loc: {
742
start: { line: 1, column: 0 },
743
end: { line: 1, column: 24 }
744
}
745
},
746
range: [0, 24],
747
loc: {
748
start: { line: 1, column: 0 },
749
end: { line: 1, column: 24 }
750
}
751
},
752
753
'日本語 = []': {
754
type: 'ExpressionStatement',
755
expression: {
756
type: 'AssignmentExpression',
757
operator: '=',
758
left: {
759
type: 'Identifier',
760
name: '日本語',
761
range: [0, 3],
762
loc: {
763
start: { line: 1, column: 0 },
764
end: { line: 1, column: 3 }
765
}
766
},
767
right: {
768
type: 'ArrayExpression',
769
elements: [],
770
range: [6, 8],
771
loc: {
772
start: { line: 1, column: 6 },
773
end: { line: 1, column: 8 }
774
}
775
},
776
range: [0, 8],
777
loc: {
778
start: { line: 1, column: 0 },
779
end: { line: 1, column: 8 }
780
}
781
},
782
range: [0, 8],
783
loc: {
784
start: { line: 1, column: 0 },
785
end: { line: 1, column: 8 }
786
}
787
},
788
789
'T\u203F = []': {
790
type: 'ExpressionStatement',
791
expression: {
792
type: 'AssignmentExpression',
793
operator: '=',
794
left: {
795
type: 'Identifier',
796
name: 'T\u203F',
797
range: [0, 2],
798
loc: {
799
start: { line: 1, column: 0 },
800
end: { line: 1, column: 2 }
801
}
802
},
803
right: {
804
type: 'ArrayExpression',
805
elements: [],
806
range: [5, 7],
807
loc: {
808
start: { line: 1, column: 5 },
809
end: { line: 1, column: 7 }
810
}
811
},
812
range: [0, 7],
813
loc: {
814
start: { line: 1, column: 0 },
815
end: { line: 1, column: 7 }
816
}
817
},
818
range: [0, 7],
819
loc: {
820
start: { line: 1, column: 0 },
821
end: { line: 1, column: 7 }
822
}
823
},
824
825
'T\u200C = []': {
826
type: 'ExpressionStatement',
827
expression: {
828
type: 'AssignmentExpression',
829
operator: '=',
830
left: {
831
type: 'Identifier',
832
name: 'T\u200C',
833
range: [0, 2],
834
loc: {
835
start: { line: 1, column: 0 },
836
end: { line: 1, column: 2 }
837
}
838
},
839
right: {
840
type: 'ArrayExpression',
841
elements: [],
842
range: [5, 7],
843
loc: {
844
start: { line: 1, column: 5 },
845
end: { line: 1, column: 7 }
846
}
847
},
848
range: [0, 7],
849
loc: {
850
start: { line: 1, column: 0 },
851
end: { line: 1, column: 7 }
852
}
853
},
854
range: [0, 7],
855
loc: {
856
start: { line: 1, column: 0 },
857
end: { line: 1, column: 7 }
858
}
859
},
860
861
'T\u200D = []': {
862
type: 'ExpressionStatement',
863
expression: {
864
type: 'AssignmentExpression',
865
operator: '=',
866
left: {
867
type: 'Identifier',
868
name: 'T\u200D',
869
range: [0, 2],
870
loc: {
871
start: { line: 1, column: 0 },
872
end: { line: 1, column: 2 }
873
}
874
},
875
right: {
876
type: 'ArrayExpression',
877
elements: [],
878
range: [5, 7],
879
loc: {
880
start: { line: 1, column: 5 },
881
end: { line: 1, column: 7 }
882
}
883
},
884
range: [0, 7],
885
loc: {
886
start: { line: 1, column: 0 },
887
end: { line: 1, column: 7 }
888
}
889
},
890
range: [0, 7],
891
loc: {
892
start: { line: 1, column: 0 },
893
end: { line: 1, column: 7 }
894
}
895
},
896
897
'\u2163\u2161 = []': {
898
type: 'ExpressionStatement',
899
expression: {
900
type: 'AssignmentExpression',
901
operator: '=',
902
left: {
903
type: 'Identifier',
904
name: '\u2163\u2161',
905
range: [0, 2],
906
loc: {
907
start: { line: 1, column: 0 },
908
end: { line: 1, column: 2 }
909
}
910
},
911
right: {
912
type: 'ArrayExpression',
913
elements: [],
914
range: [5, 7],
915
loc: {
916
start: { line: 1, column: 5 },
917
end: { line: 1, column: 7 }
918
}
919
},
920
range: [0, 7],
921
loc: {
922
start: { line: 1, column: 0 },
923
end: { line: 1, column: 7 }
924
}
925
},
926
range: [0, 7],
927
loc: {
928
start: { line: 1, column: 0 },
929
end: { line: 1, column: 7 }
930
}
931
},
932
933
'\u2163\u2161\u200A=\u2009[]': {
934
type: 'ExpressionStatement',
935
expression: {
936
type: 'AssignmentExpression',
937
operator: '=',
938
left: {
939
type: 'Identifier',
940
name: '\u2163\u2161',
941
range: [0, 2],
942
loc: {
943
start: { line: 1, column: 0 },
944
end: { line: 1, column: 2 }
945
}
946
},
947
right: {
948
type: 'ArrayExpression',
949
elements: [],
950
range: [5, 7],
951
loc: {
952
start: { line: 1, column: 5 },
953
end: { line: 1, column: 7 }
954
}
955
},
956
range: [0, 7],
957
loc: {
958
start: { line: 1, column: 0 },
959
end: { line: 1, column: 7 }
960
}
961
},
962
range: [0, 7],
963
loc: {
964
start: { line: 1, column: 0 },
965
end: { line: 1, column: 7 }
966
}
967
},
968
969
'[",", "second"]': {
970
type: 'ExpressionStatement',
971
expression: {
972
type: 'ArrayExpression',
973
elements: [{
974
type: 'Literal',
975
value: ',',
976
raw: '","',
977
range: [1, 4],
978
loc: {
979
start: { line: 1, column: 1 },
980
end: { line: 1, column: 4 }
981
}
982
}, {
983
type: 'Literal',
984
value: 'second',
985
raw: '"second"',
986
range: [6, 14],
987
loc: {
988
start: { line: 1, column: 6 },
989
end: { line: 1, column: 14 }
990
}
991
}],
992
range: [0, 15],
993
loc: {
994
start: { line: 1, column: 0 },
995
end: { line: 1, column: 15 }
996
}
997
},
998
range: [0, 15],
999
loc: {
1000
start: { line: 1, column: 0 },
1001
end: { line: 1, column: 15 }
1002
}
1003
},
1004
1005
'["notAToken", "if"]': {
1006
type: 'ExpressionStatement',
1007
expression: {
1008
type: 'ArrayExpression',
1009
elements: [{
1010
type: 'Literal',
1011
value: 'notAToken',
1012
raw: '"notAToken"',
1013
range: [1, 12],
1014
loc: {
1015
start: { line: 1, column: 1 },
1016
end: { line: 1, column: 12 }
1017
}
1018
}, {
1019
type: 'Literal',
1020
value: 'if',
1021
raw: '"if"',
1022
range: [14, 18],
1023
loc: {
1024
start: { line: 1, column: 14 },
1025
end: { line: 1, column: 18 }
1026
}
1027
}],
1028
range: [0, 19],
1029
loc: {
1030
start: { line: 1, column: 0 },
1031
end: { line: 1, column: 19 }
1032
}
1033
},
1034
range: [0, 19],
1035
loc: {
1036
start: { line: 1, column: 0 },
1037
end: { line: 1, column: 19 }
1038
}
1039
}
1040
},
1041
1042
'Object Initializer': {
1043
1044
'x = {}': {
1045
type: 'ExpressionStatement',
1046
expression: {
1047
type: 'AssignmentExpression',
1048
operator: '=',
1049
left: {
1050
type: 'Identifier',
1051
name: 'x',
1052
range: [0, 1],
1053
loc: {
1054
start: { line: 1, column: 0 },
1055
end: { line: 1, column: 1 }
1056
}
1057
},
1058
right: {
1059
type: 'ObjectExpression',
1060
properties: [],
1061
range: [4, 6],
1062
loc: {
1063
start: { line: 1, column: 4 },
1064
end: { line: 1, column: 6 }
1065
}
1066
},
1067
range: [0, 6],
1068
loc: {
1069
start: { line: 1, column: 0 },
1070
end: { line: 1, column: 6 }
1071
}
1072
},
1073
range: [0, 6],
1074
loc: {
1075
start: { line: 1, column: 0 },
1076
end: { line: 1, column: 6 }
1077
}
1078
},
1079
1080
'x = { }': {
1081
type: 'ExpressionStatement',
1082
expression: {
1083
type: 'AssignmentExpression',
1084
operator: '=',
1085
left: {
1086
type: 'Identifier',
1087
name: 'x',
1088
range: [0, 1],
1089
loc: {
1090
start: { line: 1, column: 0 },
1091
end: { line: 1, column: 1 }
1092
}
1093
},
1094
right: {
1095
type: 'ObjectExpression',
1096
properties: [],
1097
range: [4, 7],
1098
loc: {
1099
start: { line: 1, column: 4 },
1100
end: { line: 1, column: 7 }
1101
}
1102
},
1103
range: [0, 7],
1104
loc: {
1105
start: { line: 1, column: 0 },
1106
end: { line: 1, column: 7 }
1107
}
1108
},
1109
range: [0, 7],
1110
loc: {
1111
start: { line: 1, column: 0 },
1112
end: { line: 1, column: 7 }
1113
}
1114
},
1115
1116
'x = { answer: 42 }': {
1117
type: 'ExpressionStatement',
1118
expression: {
1119
type: 'AssignmentExpression',
1120
operator: '=',
1121
left: {
1122
type: 'Identifier',
1123
name: 'x',
1124
range: [0, 1],
1125
loc: {
1126
start: { line: 1, column: 0 },
1127
end: { line: 1, column: 1 }
1128
}
1129
},
1130
right: {
1131
type: 'ObjectExpression',
1132
properties: [{
1133
type: 'Property',
1134
key: {
1135
type: 'Identifier',
1136
name: 'answer',
1137
range: [6, 12],
1138
loc: {
1139
start: { line: 1, column: 6 },
1140
end: { line: 1, column: 12 }
1141
}
1142
},
1143
value: {
1144
type: 'Literal',
1145
value: 42,
1146
raw: '42',
1147
range: [14, 16],
1148
loc: {
1149
start: { line: 1, column: 14 },
1150
end: { line: 1, column: 16 }
1151
}
1152
},
1153
kind: 'init',
1154
method: false,
1155
shorthand: false,
1156
computed: false,
1157
range: [6, 16],
1158
loc: {
1159
start: { line: 1, column: 6 },
1160
end: { line: 1, column: 16 }
1161
}
1162
}],
1163
range: [4, 18],
1164
loc: {
1165
start: { line: 1, column: 4 },
1166
end: { line: 1, column: 18 }
1167
}
1168
},
1169
range: [0, 18],
1170
loc: {
1171
start: { line: 1, column: 0 },
1172
end: { line: 1, column: 18 }
1173
}
1174
},
1175
range: [0, 18],
1176
loc: {
1177
start: { line: 1, column: 0 },
1178
end: { line: 1, column: 18 }
1179
}
1180
},
1181
1182
'x = { if: 42 }': {
1183
type: 'ExpressionStatement',
1184
expression: {
1185
type: 'AssignmentExpression',
1186
operator: '=',
1187
left: {
1188
type: 'Identifier',
1189
name: 'x',
1190
range: [0, 1],
1191
loc: {
1192
start: { line: 1, column: 0 },
1193
end: { line: 1, column: 1 }
1194
}
1195
},
1196
right: {
1197
type: 'ObjectExpression',
1198
properties: [{
1199
type: 'Property',
1200
key: {
1201
type: 'Identifier',
1202
name: 'if',
1203
range: [6, 8],
1204
loc: {
1205
start: { line: 1, column: 6 },
1206
end: { line: 1, column: 8 }
1207
}
1208
},
1209
value: {
1210
type: 'Literal',
1211
value: 42,
1212
raw: '42',
1213
range: [10, 12],
1214
loc: {
1215
start: { line: 1, column: 10 },
1216
end: { line: 1, column: 12 }
1217
}
1218
},
1219
kind: 'init',
1220
method: false,
1221
shorthand: false,
1222
computed: false,
1223
range: [6, 12],
1224
loc: {
1225
start: { line: 1, column: 6 },
1226
end: { line: 1, column: 12 }
1227
}
1228
}],
1229
range: [4, 14],
1230
loc: {
1231
start: { line: 1, column: 4 },
1232
end: { line: 1, column: 14 }
1233
}
1234
},
1235
range: [0, 14],
1236
loc: {
1237
start: { line: 1, column: 0 },
1238
end: { line: 1, column: 14 }
1239
}
1240
},
1241
range: [0, 14],
1242
loc: {
1243
start: { line: 1, column: 0 },
1244
end: { line: 1, column: 14 }
1245
}
1246
},
1247
1248
'x = { true: 42 }': {
1249
type: 'ExpressionStatement',
1250
expression: {
1251
type: 'AssignmentExpression',
1252
operator: '=',
1253
left: {
1254
type: 'Identifier',
1255
name: 'x',
1256
range: [0, 1],
1257
loc: {
1258
start: { line: 1, column: 0 },
1259
end: { line: 1, column: 1 }
1260
}
1261
},
1262
right: {
1263
type: 'ObjectExpression',
1264
properties: [{
1265
type: 'Property',
1266
key: {
1267
type: 'Identifier',
1268
name: 'true',
1269
range: [6, 10],
1270
loc: {
1271
start: { line: 1, column: 6 },
1272
end: { line: 1, column: 10 }
1273
}
1274
},
1275
value: {
1276
type: 'Literal',
1277
value: 42,
1278
raw: '42',
1279
range: [12, 14],
1280
loc: {
1281
start: { line: 1, column: 12 },
1282
end: { line: 1, column: 14 }
1283
}
1284
},
1285
kind: 'init',
1286
method: false,
1287
shorthand: false,
1288
computed: false,
1289
range: [6, 14],
1290
loc: {
1291
start: { line: 1, column: 6 },
1292
end: { line: 1, column: 14 }
1293
}
1294
}],
1295
range: [4, 16],
1296
loc: {
1297
start: { line: 1, column: 4 },
1298
end: { line: 1, column: 16 }
1299
}
1300
},
1301
range: [0, 16],
1302
loc: {
1303
start: { line: 1, column: 0 },
1304
end: { line: 1, column: 16 }
1305
}
1306
},
1307
range: [0, 16],
1308
loc: {
1309
start: { line: 1, column: 0 },
1310
end: { line: 1, column: 16 }
1311
}
1312
},
1313
1314
'x = { false: 42 }': {
1315
type: 'ExpressionStatement',
1316
expression: {
1317
type: 'AssignmentExpression',
1318
operator: '=',
1319
left: {
1320
type: 'Identifier',
1321
name: 'x',
1322
range: [0, 1],
1323
loc: {
1324
start: { line: 1, column: 0 },
1325
end: { line: 1, column: 1 }
1326
}
1327
},
1328
right: {
1329
type: 'ObjectExpression',
1330
properties: [{
1331
type: 'Property',
1332
key: {
1333
type: 'Identifier',
1334
name: 'false',
1335
range: [6, 11],
1336
loc: {
1337
start: { line: 1, column: 6 },
1338
end: { line: 1, column: 11 }
1339
}
1340
},
1341
value: {
1342
type: 'Literal',
1343
value: 42,
1344
raw: '42',
1345
range: [13, 15],
1346
loc: {
1347
start: { line: 1, column: 13 },
1348
end: { line: 1, column: 15 }
1349
}
1350
},
1351
kind: 'init',
1352
method: false,
1353
shorthand: false,
1354
computed: false,
1355
range: [6, 15],
1356
loc: {
1357
start: { line: 1, column: 6 },
1358
end: { line: 1, column: 15 }
1359
}
1360
}],
1361
range: [4, 17],
1362
loc: {
1363
start: { line: 1, column: 4 },
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
range: [0, 17],
1374
loc: {
1375
start: { line: 1, column: 0 },
1376
end: { line: 1, column: 17 }
1377
}
1378
},
1379
1380
'x = { null: 42 }': {
1381
type: 'ExpressionStatement',
1382
expression: {
1383
type: 'AssignmentExpression',
1384
operator: '=',
1385
left: {
1386
type: 'Identifier',
1387
name: 'x',
1388
range: [0, 1],
1389
loc: {
1390
start: { line: 1, column: 0 },
1391
end: { line: 1, column: 1 }
1392
}
1393
},
1394
right: {
1395
type: 'ObjectExpression',
1396
properties: [{
1397
type: 'Property',
1398
key: {
1399
type: 'Identifier',
1400
name: 'null',
1401
range: [6, 10],
1402
loc: {
1403
start: { line: 1, column: 6 },
1404
end: { line: 1, column: 10 }
1405
}
1406
},
1407
value: {
1408
type: 'Literal',
1409
value: 42,
1410
raw: '42',
1411
range: [12, 14],
1412
loc: {
1413
start: { line: 1, column: 12 },
1414
end: { line: 1, column: 14 }
1415
}
1416
},
1417
kind: 'init',
1418
method: false,
1419
shorthand: false,
1420
computed: false,
1421
range: [6, 14],
1422
loc: {
1423
start: { line: 1, column: 6 },
1424
end: { line: 1, column: 14 }
1425
}
1426
}],
1427
range: [4, 16],
1428
loc: {
1429
start: { line: 1, column: 4 },
1430
end: { line: 1, column: 16 }
1431
}
1432
},
1433
range: [0, 16],
1434
loc: {
1435
start: { line: 1, column: 0 },
1436
end: { line: 1, column: 16 }
1437
}
1438
},
1439
range: [0, 16],
1440
loc: {
1441
start: { line: 1, column: 0 },
1442
end: { line: 1, column: 16 }
1443
}
1444
},
1445
1446
'x = { "answer": 42 }': {
1447
type: 'ExpressionStatement',
1448
expression: {
1449
type: 'AssignmentExpression',
1450
operator: '=',
1451
left: {
1452
type: 'Identifier',
1453
name: 'x',
1454
range: [0, 1],
1455
loc: {
1456
start: { line: 1, column: 0 },
1457
end: { line: 1, column: 1 }
1458
}
1459
},
1460
right: {
1461
type: 'ObjectExpression',
1462
properties: [{
1463
type: 'Property',
1464
key: {
1465
type: 'Literal',
1466
value: 'answer',
1467
raw: '"answer"',
1468
range: [6, 14],
1469
loc: {
1470
start: { line: 1, column: 6 },
1471
end: { line: 1, column: 14 }
1472
}
1473
},
1474
value: {
1475
type: 'Literal',
1476
value: 42,
1477
raw: '42',
1478
range: [16, 18],
1479
loc: {
1480
start: { line: 1, column: 16 },
1481
end: { line: 1, column: 18 }
1482
}
1483
},
1484
kind: 'init',
1485
method: false,
1486
shorthand: false,
1487
computed: false,
1488
range: [6, 18],
1489
loc: {
1490
start: { line: 1, column: 6 },
1491
end: { line: 1, column: 18 }
1492
}
1493
}],
1494
range: [4, 20],
1495
loc: {
1496
start: { line: 1, column: 4 },
1497
end: { line: 1, column: 20 }
1498
}
1499
},
1500
range: [0, 20],
1501
loc: {
1502
start: { line: 1, column: 0 },
1503
end: { line: 1, column: 20 }
1504
}
1505
},
1506
range: [0, 20],
1507
loc: {
1508
start: { line: 1, column: 0 },
1509
end: { line: 1, column: 20 }
1510
}
1511
},
1512
1513
'x = { x: 1, x: 2 }': {
1514
type: 'ExpressionStatement',
1515
expression: {
1516
type: 'AssignmentExpression',
1517
operator: '=',
1518
left: {
1519
type: 'Identifier',
1520
name: 'x',
1521
range: [0, 1],
1522
loc: {
1523
start: { line: 1, column: 0 },
1524
end: { line: 1, column: 1 }
1525
}
1526
},
1527
right: {
1528
type: 'ObjectExpression',
1529
properties: [
1530
{
1531
type: 'Property',
1532
key: {
1533
type: 'Identifier',
1534
name: 'x',
1535
range: [6, 7],
1536
loc: {
1537
start: { line: 1, column: 6 },
1538
end: { line: 1, column: 7 }
1539
}
1540
},
1541
value: {
1542
type: 'Literal',
1543
value: 1,
1544
raw: '1',
1545
range: [9, 10],
1546
loc: {
1547
start: { line: 1, column: 9 },
1548
end: { line: 1, column: 10 }
1549
}
1550
},
1551
kind: 'init',
1552
method: false,
1553
shorthand: false,
1554
computed: false,
1555
range: [6, 10],
1556
loc: {
1557
start: { line: 1, column: 6 },
1558
end: { line: 1, column: 10 }
1559
}
1560
},
1561
{
1562
type: 'Property',
1563
key: {
1564
type: 'Identifier',
1565
name: 'x',
1566
range: [12, 13],
1567
loc: {
1568
start: { line: 1, column: 12 },
1569
end: { line: 1, column: 13 }
1570
}
1571
},
1572
value: {
1573
type: 'Literal',
1574
value: 2,
1575
raw: '2',
1576
range: [15, 16],
1577
loc: {
1578
start: { line: 1, column: 15 },
1579
end: { line: 1, column: 16 }
1580
}
1581
},
1582
kind: 'init',
1583
method: false,
1584
shorthand: false,
1585
computed: false,
1586
range: [12, 16],
1587
loc: {
1588
start: { line: 1, column: 12 },
1589
end: { line: 1, column: 16 }
1590
}
1591
}
1592
],
1593
range: [4, 18],
1594
loc: {
1595
start: { line: 1, column: 4 },
1596
end: { line: 1, column: 18 }
1597
}
1598
},
1599
range: [0, 18],
1600
loc: {
1601
start: { line: 1, column: 0 },
1602
end: { line: 1, column: 18 }
1603
}
1604
},
1605
range: [0, 18],
1606
loc: {
1607
start: { line: 1, column: 0 },
1608
end: { line: 1, column: 18 }
1609
}
1610
},
1611
1612
'x = { get width() { return m_width } }': {
1613
type: 'ExpressionStatement',
1614
expression: {
1615
type: 'AssignmentExpression',
1616
operator: '=',
1617
left: {
1618
type: 'Identifier',
1619
name: 'x',
1620
range: [0, 1],
1621
loc: {
1622
start: { line: 1, column: 0 },
1623
end: { line: 1, column: 1 }
1624
}
1625
},
1626
right: {
1627
type: 'ObjectExpression',
1628
properties: [{
1629
type: 'Property',
1630
key: {
1631
type: 'Identifier',
1632
name: 'width',
1633
range: [10, 15],
1634
loc: {
1635
start: { line: 1, column: 10 },
1636
end: { line: 1, column: 15 }
1637
}
1638
},
1639
value: {
1640
type: 'FunctionExpression',
1641
id: null,
1642
params: [],
1643
defaults: [],
1644
body: {
1645
type: 'BlockStatement',
1646
body: [{
1647
type: 'ReturnStatement',
1648
argument: {
1649
type: 'Identifier',
1650
name: 'm_width',
1651
range: [27, 34],
1652
loc: {
1653
start: { line: 1, column: 27 },
1654
end: { line: 1, column: 34 }
1655
}
1656
},
1657
range: [20, 35],
1658
loc: {
1659
start: { line: 1, column: 20 },
1660
end: { line: 1, column: 35 }
1661
}
1662
}],
1663
range: [18, 36],
1664
loc: {
1665
start: { line: 1, column: 18 },
1666
end: { line: 1, column: 36 }
1667
}
1668
},
1669
rest: null,
1670
generator: false,
1671
expression: false,
1672
range: [18, 36],
1673
loc: {
1674
start: { line: 1, column: 18 },
1675
end: { line: 1, column: 36 }
1676
}
1677
},
1678
kind: 'get',
1679
method: false,
1680
shorthand: false,
1681
computed: false,
1682
range: [6, 36],
1683
loc: {
1684
start: { line: 1, column: 6 },
1685
end: { line: 1, column: 36 }
1686
}
1687
}],
1688
range: [4, 38],
1689
loc: {
1690
start: { line: 1, column: 4 },
1691
end: { line: 1, column: 38 }
1692
}
1693
},
1694
range: [0, 38],
1695
loc: {
1696
start: { line: 1, column: 0 },
1697
end: { line: 1, column: 38 }
1698
}
1699
},
1700
range: [0, 38],
1701
loc: {
1702
start: { line: 1, column: 0 },
1703
end: { line: 1, column: 38 }
1704
}
1705
},
1706
1707
'x = { get undef() {} }': {
1708
type: 'ExpressionStatement',
1709
expression: {
1710
type: 'AssignmentExpression',
1711
operator: '=',
1712
left: {
1713
type: 'Identifier',
1714
name: 'x',
1715
range: [0, 1],
1716
loc: {
1717
start: { line: 1, column: 0 },
1718
end: { line: 1, column: 1 }
1719
}
1720
},
1721
right: {
1722
type: 'ObjectExpression',
1723
properties: [{
1724
type: 'Property',
1725
key: {
1726
type: 'Identifier',
1727
name: 'undef',
1728
range: [10, 15],
1729
loc: {
1730
start: { line: 1, column: 10 },
1731
end: { line: 1, column: 15 }
1732
}
1733
},
1734
value: {
1735
type: 'FunctionExpression',
1736
id: null,
1737
params: [],
1738
defaults: [],
1739
body: {
1740
type: 'BlockStatement',
1741
body: [],
1742
range: [18, 20],
1743
loc: {
1744
start: { line: 1, column: 18 },
1745
end: { line: 1, column: 20 }
1746
}
1747
},
1748
rest: null,
1749
generator: false,
1750
expression: false,
1751
range: [18, 20],
1752
loc: {
1753
start: { line: 1, column: 18 },
1754
end: { line: 1, column: 20 }
1755
}
1756
},
1757
kind: 'get',
1758
method: false,
1759
shorthand: false,
1760
computed: false,
1761
range: [6, 20],
1762
loc: {
1763
start: { line: 1, column: 6 },
1764
end: { line: 1, column: 20 }
1765
}
1766
}],
1767
range: [4, 22],
1768
loc: {
1769
start: { line: 1, column: 4 },
1770
end: { line: 1, column: 22 }
1771
}
1772
},
1773
range: [0, 22],
1774
loc: {
1775
start: { line: 1, column: 0 },
1776
end: { line: 1, column: 22 }
1777
}
1778
},
1779
range: [0, 22],
1780
loc: {
1781
start: { line: 1, column: 0 },
1782
end: { line: 1, column: 22 }
1783
}
1784
},
1785
1786
'x = { get if() {} }': {
1787
type: 'ExpressionStatement',
1788
expression: {
1789
type: 'AssignmentExpression',
1790
operator: '=',
1791
left: {
1792
type: 'Identifier',
1793
name: 'x',
1794
range: [0, 1],
1795
loc: {
1796
start: { line: 1, column: 0 },
1797
end: { line: 1, column: 1 }
1798
}
1799
},
1800
right: {
1801
type: 'ObjectExpression',
1802
properties: [{
1803
type: 'Property',
1804
key: {
1805
type: 'Identifier',
1806
name: 'if',
1807
range: [10, 12],
1808
loc: {
1809
start: { line: 1, column: 10 },
1810
end: { line: 1, column: 12 }
1811
}
1812
},
1813
value: {
1814
type: 'FunctionExpression',
1815
id: null,
1816
params: [],
1817
defaults: [],
1818
body: {
1819
type: 'BlockStatement',
1820
body: [],
1821
range: [15, 17],
1822
loc: {
1823
start: { line: 1, column: 15 },
1824
end: { line: 1, column: 17 }
1825
}
1826
},
1827
rest: null,
1828
generator: false,
1829
expression: false,
1830
range: [15, 17],
1831
loc: {
1832
start: { line: 1, column: 15 },
1833
end: { line: 1, column: 17 }
1834
}
1835
},
1836
kind: 'get',
1837
method: false,
1838
shorthand: false,
1839
computed: false,
1840
range: [6, 17],
1841
loc: {
1842
start: { line: 1, column: 6 },
1843
end: { line: 1, column: 17 }
1844
}
1845
}],
1846
range: [4, 19],
1847
loc: {
1848
start: { line: 1, column: 4 },
1849
end: { line: 1, column: 19 }
1850
}
1851
},
1852
range: [0, 19],
1853
loc: {
1854
start: { line: 1, column: 0 },
1855
end: { line: 1, column: 19 }
1856
}
1857
},
1858
range: [0, 19],
1859
loc: {
1860
start: { line: 1, column: 0 },
1861
end: { line: 1, column: 19 }
1862
}
1863
},
1864
1865
'x = { get true() {} }': {
1866
type: 'ExpressionStatement',
1867
expression: {
1868
type: 'AssignmentExpression',
1869
operator: '=',
1870
left: {
1871
type: 'Identifier',
1872
name: 'x',
1873
range: [0, 1],
1874
loc: {
1875
start: { line: 1, column: 0 },
1876
end: { line: 1, column: 1 }
1877
}
1878
},
1879
right: {
1880
type: 'ObjectExpression',
1881
properties: [{
1882
type: 'Property',
1883
key: {
1884
type: 'Identifier',
1885
name: 'true',
1886
range: [10, 14],
1887
loc: {
1888
start: { line: 1, column: 10 },
1889
end: { line: 1, column: 14 }
1890
}
1891
},
1892
value: {
1893
type: 'FunctionExpression',
1894
id: null,
1895
params: [],
1896
defaults: [],
1897
body: {
1898
type: 'BlockStatement',
1899
body: [],
1900
range: [17, 19],
1901
loc: {
1902
start: { line: 1, column: 17 },
1903
end: { line: 1, column: 19 }
1904
}
1905
},
1906
rest: null,
1907
generator: false,
1908
expression: false,
1909
range: [17, 19],
1910
loc: {
1911
start: { line: 1, column: 17 },
1912
end: { line: 1, column: 19 }
1913
}
1914
},
1915
kind: 'get',
1916
method: false,
1917
shorthand: false,
1918
computed: false,
1919
range: [6, 19],
1920
loc: {
1921
start: { line: 1, column: 6 },
1922
end: { line: 1, column: 19 }
1923
}
1924
}],
1925
range: [4, 21],
1926
loc: {
1927
start: { line: 1, column: 4 },
1928
end: { line: 1, column: 21 }
1929
}
1930
},
1931
range: [0, 21],
1932
loc: {
1933
start: { line: 1, column: 0 },
1934
end: { line: 1, column: 21 }
1935
}
1936
},
1937
range: [0, 21],
1938
loc: {
1939
start: { line: 1, column: 0 },
1940
end: { line: 1, column: 21 }
1941
}
1942
},
1943
1944
'x = { get false() {} }': {
1945
type: 'ExpressionStatement',
1946
expression: {
1947
type: 'AssignmentExpression',
1948
operator: '=',
1949
left: {
1950
type: 'Identifier',
1951
name: 'x',
1952
range: [0, 1],
1953
loc: {
1954
start: { line: 1, column: 0 },
1955
end: { line: 1, column: 1 }
1956
}
1957
},
1958
right: {
1959
type: 'ObjectExpression',
1960
properties: [{
1961
type: 'Property',
1962
key: {
1963
type: 'Identifier',
1964
name: 'false',
1965
range: [10, 15],
1966
loc: {
1967
start: { line: 1, column: 10 },
1968
end: { line: 1, column: 15 }
1969
}
1970
},
1971
value: {
1972
type: 'FunctionExpression',
1973
id: null,
1974
params: [],
1975
defaults: [],
1976
body: {
1977
type: 'BlockStatement',
1978
body: [],
1979
range: [18, 20],
1980
loc: {
1981
start: { line: 1, column: 18 },
1982
end: { line: 1, column: 20 }
1983
}
1984
},
1985
rest: null,
1986
generator: false,
1987
expression: false,
1988
range: [18, 20],
1989
loc: {
1990
start: { line: 1, column: 18 },
1991
end: { line: 1, column: 20 }
1992
}
1993
},
1994
kind: 'get',
1995
method: false,
1996
shorthand: false,
1997
computed: false,
1998
range: [6, 20],
1999
loc: {
2000
start: { line: 1, column: 6 },
2001
end: { line: 1, column: 20 }
2002
}
2003
}],
2004
range: [4, 22],
2005
loc: {
2006
start: { line: 1, column: 4 },
2007
end: { line: 1, column: 22 }
2008
}
2009
},
2010
range: [0, 22],
2011
loc: {
2012
start: { line: 1, column: 0 },
2013
end: { line: 1, column: 22 }
2014
}
2015
},
2016
range: [0, 22],
2017
loc: {
2018
start: { line: 1, column: 0 },
2019
end: { line: 1, column: 22 }
2020
}
2021
},
2022
2023
'x = { get null() {} }': {
2024
type: 'ExpressionStatement',
2025
expression: {
2026
type: 'AssignmentExpression',
2027
operator: '=',
2028
left: {
2029
type: 'Identifier',
2030
name: 'x',
2031
range: [0, 1],
2032
loc: {
2033
start: { line: 1, column: 0 },
2034
end: { line: 1, column: 1 }
2035
}
2036
},
2037
right: {
2038
type: 'ObjectExpression',
2039
properties: [{
2040
type: 'Property',
2041
key: {
2042
type: 'Identifier',
2043
name: 'null',
2044
range: [10, 14],
2045
loc: {
2046
start: { line: 1, column: 10 },
2047
end: { line: 1, column: 14 }
2048
}
2049
},
2050
value: {
2051
type: 'FunctionExpression',
2052
id: null,
2053
params: [],
2054
defaults: [],
2055
body: {
2056
type: 'BlockStatement',
2057
body: [],
2058
range: [17, 19],
2059
loc: {
2060
start: { line: 1, column: 17 },
2061
end: { line: 1, column: 19 }
2062
}
2063
},
2064
rest: null,
2065
generator: false,
2066
expression: false,
2067
range: [17, 19],
2068
loc: {
2069
start: { line: 1, column: 17 },
2070
end: { line: 1, column: 19 }
2071
}
2072
},
2073
kind: 'get',
2074
method: false,
2075
shorthand: false,
2076
computed: false,
2077
range: [6, 19],
2078
loc: {
2079
start: { line: 1, column: 6 },
2080
end: { line: 1, column: 19 }
2081
}
2082
}],
2083
range: [4, 21],
2084
loc: {
2085
start: { line: 1, column: 4 },
2086
end: { line: 1, column: 21 }
2087
}
2088
},
2089
range: [0, 21],
2090
loc: {
2091
start: { line: 1, column: 0 },
2092
end: { line: 1, column: 21 }
2093
}
2094
},
2095
range: [0, 21],
2096
loc: {
2097
start: { line: 1, column: 0 },
2098
end: { line: 1, column: 21 }
2099
}
2100
},
2101
2102
'x = { get "undef"() {} }': {
2103
type: 'ExpressionStatement',
2104
expression: {
2105
type: 'AssignmentExpression',
2106
operator: '=',
2107
left: {
2108
type: 'Identifier',
2109
name: 'x',
2110
range: [0, 1],
2111
loc: {
2112
start: { line: 1, column: 0 },
2113
end: { line: 1, column: 1 }
2114
}
2115
},
2116
right: {
2117
type: 'ObjectExpression',
2118
properties: [{
2119
type: 'Property',
2120
key: {
2121
type: 'Literal',
2122
value: 'undef',
2123
raw: '"undef"',
2124
range: [10, 17],
2125
loc: {
2126
start: { line: 1, column: 10 },
2127
end: { line: 1, column: 17 }
2128
}
2129
},
2130
value: {
2131
type: 'FunctionExpression',
2132
id: null,
2133
params: [],
2134
defaults: [],
2135
body: {
2136
type: 'BlockStatement',
2137
body: [],
2138
range: [20, 22],
2139
loc: {
2140
start: { line: 1, column: 20 },
2141
end: { line: 1, column: 22 }
2142
}
2143
},
2144
rest: null,
2145
generator: false,
2146
expression: false,
2147
range: [20, 22],
2148
loc: {
2149
start: { line: 1, column: 20 },
2150
end: { line: 1, column: 22 }
2151
}
2152
},
2153
kind: 'get',
2154
method: false,
2155
shorthand: false,
2156
computed: false,
2157
range: [6, 22],
2158
loc: {
2159
start: { line: 1, column: 6 },
2160
end: { line: 1, column: 22 }
2161
}
2162
}],
2163
range: [4, 24],
2164
loc: {
2165
start: { line: 1, column: 4 },
2166
end: { line: 1, column: 24 }
2167
}
2168
},
2169
range: [0, 24],
2170
loc: {
2171
start: { line: 1, column: 0 },
2172
end: { line: 1, column: 24 }
2173
}
2174
},
2175
range: [0, 24],
2176
loc: {
2177
start: { line: 1, column: 0 },
2178
end: { line: 1, column: 24 }
2179
}
2180
},
2181
2182
'x = { get 10() {} }': {
2183
type: 'ExpressionStatement',
2184
expression: {
2185
type: 'AssignmentExpression',
2186
operator: '=',
2187
left: {
2188
type: 'Identifier',
2189
name: 'x',
2190
range: [0, 1],
2191
loc: {
2192
start: { line: 1, column: 0 },
2193
end: { line: 1, column: 1 }
2194
}
2195
},
2196
right: {
2197
type: 'ObjectExpression',
2198
properties: [{
2199
type: 'Property',
2200
key: {
2201
type: 'Literal',
2202
value: 10,
2203
raw: '10',
2204
range: [10, 12],
2205
loc: {
2206
start: { line: 1, column: 10 },
2207
end: { line: 1, column: 12 }
2208
}
2209
},
2210
value: {
2211
type: 'FunctionExpression',
2212
id: null,
2213
params: [],
2214
defaults: [],
2215
body: {
2216
type: 'BlockStatement',
2217
body: [],
2218
range: [15, 17],
2219
loc: {
2220
start: { line: 1, column: 15 },
2221
end: { line: 1, column: 17 }
2222
}
2223
},
2224
rest: null,
2225
generator: false,
2226
expression: false,
2227
range: [15, 17],
2228
loc: {
2229
start: { line: 1, column: 15 },
2230
end: { line: 1, column: 17 }
2231
}
2232
},
2233
kind: 'get',
2234
method: false,
2235
shorthand: false,
2236
computed: false,
2237
range: [6, 17],
2238
loc: {
2239
start: { line: 1, column: 6 },
2240
end: { line: 1, column: 17 }
2241
}
2242
}],
2243
range: [4, 19],
2244
loc: {
2245
start: { line: 1, column: 4 },
2246
end: { line: 1, column: 19 }
2247
}
2248
},
2249
range: [0, 19],
2250
loc: {
2251
start: { line: 1, column: 0 },
2252
end: { line: 1, column: 19 }
2253
}
2254
},
2255
range: [0, 19],
2256
loc: {
2257
start: { line: 1, column: 0 },
2258
end: { line: 1, column: 19 }
2259
}
2260
},
2261
2262
'x = { set width(w) { m_width = w } }': {
2263
type: 'ExpressionStatement',
2264
expression: {
2265
type: 'AssignmentExpression',
2266
operator: '=',
2267
left: {
2268
type: 'Identifier',
2269
name: 'x',
2270
range: [0, 1],
2271
loc: {
2272
start: { line: 1, column: 0 },
2273
end: { line: 1, column: 1 }
2274
}
2275
},
2276
right: {
2277
type: 'ObjectExpression',
2278
properties: [{
2279
type: 'Property',
2280
key: {
2281
type: 'Identifier',
2282
name: 'width',
2283
range: [10, 15],
2284
loc: {
2285
start: { line: 1, column: 10 },
2286
end: { line: 1, column: 15 }
2287
}
2288
},
2289
value: {
2290
type: 'FunctionExpression',
2291
id: null,
2292
params: [{
2293
type: 'Identifier',
2294
name: 'w',
2295
range: [16, 17],
2296
loc: {
2297
start: { line: 1, column: 16 },
2298
end: { line: 1, column: 17 }
2299
}
2300
}],
2301
defaults: [],
2302
body: {
2303
type: 'BlockStatement',
2304
body: [{
2305
type: 'ExpressionStatement',
2306
expression: {
2307
type: 'AssignmentExpression',
2308
operator: '=',
2309
left: {
2310
type: 'Identifier',
2311
name: 'm_width',
2312
range: [21, 28],
2313
loc: {
2314
start: { line: 1, column: 21 },
2315
end: { line: 1, column: 28 }
2316
}
2317
},
2318
right: {
2319
type: 'Identifier',
2320
name: 'w',
2321
range: [31, 32],
2322
loc: {
2323
start: { line: 1, column: 31 },
2324
end: { line: 1, column: 32 }
2325
}
2326
},
2327
range: [21, 32],
2328
loc: {
2329
start: { line: 1, column: 21 },
2330
end: { line: 1, column: 32 }
2331
}
2332
},
2333
range: [21, 33],
2334
loc: {
2335
start: { line: 1, column: 21 },
2336
end: { line: 1, column: 33 }
2337
}
2338
}],
2339
range: [19, 34],
2340
loc: {
2341
start: { line: 1, column: 19 },
2342
end: { line: 1, column: 34 }
2343
}
2344
},
2345
rest: null,
2346
generator: false,
2347
expression: false,
2348
range: [19, 34],
2349
loc: {
2350
start: { line: 1, column: 19 },
2351
end: { line: 1, column: 34 }
2352
}
2353
},
2354
kind: 'set',
2355
method: false,
2356
shorthand: false,
2357
computed: false,
2358
range: [6, 34],
2359
loc: {
2360
start: { line: 1, column: 6 },
2361
end: { line: 1, column: 34 }
2362
}
2363
}],
2364
range: [4, 36],
2365
loc: {
2366
start: { line: 1, column: 4 },
2367
end: { line: 1, column: 36 }
2368
}
2369
},
2370
range: [0, 36],
2371
loc: {
2372
start: { line: 1, column: 0 },
2373
end: { line: 1, column: 36 }
2374
}
2375
},
2376
range: [0, 36],
2377
loc: {
2378
start: { line: 1, column: 0 },
2379
end: { line: 1, column: 36 }
2380
}
2381
},
2382
2383
'x = { set if(w) { m_if = w } }': {
2384
type: 'ExpressionStatement',
2385
expression: {
2386
type: 'AssignmentExpression',
2387
operator: '=',
2388
left: {
2389
type: 'Identifier',
2390
name: 'x',
2391
range: [0, 1],
2392
loc: {
2393
start: { line: 1, column: 0 },
2394
end: { line: 1, column: 1 }
2395
}
2396
},
2397
right: {
2398
type: 'ObjectExpression',
2399
properties: [{
2400
type: 'Property',
2401
key: {
2402
type: 'Identifier',
2403
name: 'if',
2404
range: [10, 12],
2405
loc: {
2406
start: { line: 1, column: 10 },
2407
end: { line: 1, column: 12 }
2408
}
2409
},
2410
value: {
2411
type: 'FunctionExpression',
2412
id: null,
2413
params: [{
2414
type: 'Identifier',
2415
name: 'w',
2416
range: [13, 14],
2417
loc: {
2418
start: { line: 1, column: 13 },
2419
end: { line: 1, column: 14 }
2420
}
2421
}],
2422
defaults: [],
2423
body: {
2424
type: 'BlockStatement',
2425
body: [{
2426
type: 'ExpressionStatement',
2427
expression: {
2428
type: 'AssignmentExpression',
2429
operator: '=',
2430
left: {
2431
type: 'Identifier',
2432
name: 'm_if',
2433
range: [18, 22],
2434
loc: {
2435
start: { line: 1, column: 18 },
2436
end: { line: 1, column: 22 }
2437
}
2438
},
2439
right: {
2440
type: 'Identifier',
2441
name: 'w',
2442
range: [25, 26],
2443
loc: {
2444
start: { line: 1, column: 25 },
2445
end: { line: 1, column: 26 }
2446
}
2447
},
2448
range: [18, 26],
2449
loc: {
2450
start: { line: 1, column: 18 },
2451
end: { line: 1, column: 26 }
2452
}
2453
},
2454
range: [18, 27],
2455
loc: {
2456
start: { line: 1, column: 18 },
2457
end: { line: 1, column: 27 }
2458
}
2459
}],
2460
range: [16, 28],
2461
loc: {
2462
start: { line: 1, column: 16 },
2463
end: { line: 1, column: 28 }
2464
}
2465
},
2466
rest: null,
2467
generator: false,
2468
expression: false,
2469
range: [16, 28],
2470
loc: {
2471
start: { line: 1, column: 16 },
2472
end: { line: 1, column: 28 }
2473
}
2474
},
2475
kind: 'set',
2476
method: false,
2477
shorthand: false,
2478
computed: false,
2479
range: [6, 28],
2480
loc: {
2481
start: { line: 1, column: 6 },
2482
end: { line: 1, column: 28 }
2483
}
2484
}],
2485
range: [4, 30],
2486
loc: {
2487
start: { line: 1, column: 4 },
2488
end: { line: 1, column: 30 }
2489
}
2490
},
2491
range: [0, 30],
2492
loc: {
2493
start: { line: 1, column: 0 },
2494
end: { line: 1, column: 30 }
2495
}
2496
},
2497
range: [0, 30],
2498
loc: {
2499
start: { line: 1, column: 0 },
2500
end: { line: 1, column: 30 }
2501
}
2502
},
2503
2504
'x = { set true(w) { m_true = w } }': {
2505
type: 'ExpressionStatement',
2506
expression: {
2507
type: 'AssignmentExpression',
2508
operator: '=',
2509
left: {
2510
type: 'Identifier',
2511
name: 'x',
2512
range: [0, 1],
2513
loc: {
2514
start: { line: 1, column: 0 },
2515
end: { line: 1, column: 1 }
2516
}
2517
},
2518
right: {
2519
type: 'ObjectExpression',
2520
properties: [{
2521
type: 'Property',
2522
key: {
2523
type: 'Identifier',
2524
name: 'true',
2525
range: [10, 14],
2526
loc: {
2527
start: { line: 1, column: 10 },
2528
end: { line: 1, column: 14 }
2529
}
2530
},
2531
value: {
2532
type: 'FunctionExpression',
2533
id: null,
2534
params: [{
2535
type: 'Identifier',
2536
name: 'w',
2537
range: [15, 16],
2538
loc: {
2539
start: { line: 1, column: 15 },
2540
end: { line: 1, column: 16 }
2541
}
2542
}],
2543
defaults: [],
2544
body: {
2545
type: 'BlockStatement',
2546
body: [{
2547
type: 'ExpressionStatement',
2548
expression: {
2549
type: 'AssignmentExpression',
2550
operator: '=',
2551
left: {
2552
type: 'Identifier',
2553
name: 'm_true',
2554
range: [20, 26],
2555
loc: {
2556
start: { line: 1, column: 20 },
2557
end: { line: 1, column: 26 }
2558
}
2559
},
2560
right: {
2561
type: 'Identifier',
2562
name: 'w',
2563
range: [29, 30],
2564
loc: {
2565
start: { line: 1, column: 29 },
2566
end: { line: 1, column: 30 }
2567
}
2568
},
2569
range: [20, 30],
2570
loc: {
2571
start: { line: 1, column: 20 },
2572
end: { line: 1, column: 30 }
2573
}
2574
},
2575
range: [20, 31],
2576
loc: {
2577
start: { line: 1, column: 20 },
2578
end: { line: 1, column: 31 }
2579
}
2580
}],
2581
range: [18, 32],
2582
loc: {
2583
start: { line: 1, column: 18 },
2584
end: { line: 1, column: 32 }
2585
}
2586
},
2587
rest: null,
2588
generator: false,
2589
expression: false,
2590
range: [18, 32],
2591
loc: {
2592
start: { line: 1, column: 18 },
2593
end: { line: 1, column: 32 }
2594
}
2595
},
2596
kind: 'set',
2597
method: false,
2598
shorthand: false,
2599
computed: false,
2600
range: [6, 32],
2601
loc: {
2602
start: { line: 1, column: 6 },
2603
end: { line: 1, column: 32 }
2604
}
2605
}],
2606
range: [4, 34],
2607
loc: {
2608
start: { line: 1, column: 4 },
2609
end: { line: 1, column: 34 }
2610
}
2611
},
2612
range: [0, 34],
2613
loc: {
2614
start: { line: 1, column: 0 },
2615
end: { line: 1, column: 34 }
2616
}
2617
},
2618
range: [0, 34],
2619
loc: {
2620
start: { line: 1, column: 0 },
2621
end: { line: 1, column: 34 }
2622
}
2623
},
2624
2625
'x = { set false(w) { m_false = w } }': {
2626
type: 'ExpressionStatement',
2627
expression: {
2628
type: 'AssignmentExpression',
2629
operator: '=',
2630
left: {
2631
type: 'Identifier',
2632
name: 'x',
2633
range: [0, 1],
2634
loc: {
2635
start: { line: 1, column: 0 },
2636
end: { line: 1, column: 1 }
2637
}
2638
},
2639
right: {
2640
type: 'ObjectExpression',
2641
properties: [{
2642
type: 'Property',
2643
key: {
2644
type: 'Identifier',
2645
name: 'false',
2646
range: [10, 15],
2647
loc: {
2648
start: { line: 1, column: 10 },
2649
end: { line: 1, column: 15 }
2650
}
2651
},
2652
value: {
2653
type: 'FunctionExpression',
2654
id: null,
2655
params: [{
2656
type: 'Identifier',
2657
name: 'w',
2658
range: [16, 17],
2659
loc: {
2660
start: { line: 1, column: 16 },
2661
end: { line: 1, column: 17 }
2662
}
2663
}],
2664
defaults: [],
2665
body: {
2666
type: 'BlockStatement',
2667
body: [{
2668
type: 'ExpressionStatement',
2669
expression: {
2670
type: 'AssignmentExpression',
2671
operator: '=',
2672
left: {
2673
type: 'Identifier',
2674
name: 'm_false',
2675
range: [21, 28],
2676
loc: {
2677
start: { line: 1, column: 21 },
2678
end: { line: 1, column: 28 }
2679
}
2680
},
2681
right: {
2682
type: 'Identifier',
2683
name: 'w',
2684
range: [31, 32],
2685
loc: {
2686
start: { line: 1, column: 31 },
2687
end: { line: 1, column: 32 }
2688
}
2689
},
2690
range: [21, 32],
2691
loc: {
2692
start: { line: 1, column: 21 },
2693
end: { line: 1, column: 32 }
2694
}
2695
},
2696
range: [21, 33],
2697
loc: {
2698
start: { line: 1, column: 21 },
2699
end: { line: 1, column: 33 }
2700
}
2701
}],
2702
range: [19, 34],
2703
loc: {
2704
start: { line: 1, column: 19 },
2705
end: { line: 1, column: 34 }
2706
}
2707
},
2708
rest: null,
2709
generator: false,
2710
expression: false,
2711
range: [19, 34],
2712
loc: {
2713
start: { line: 1, column: 19 },
2714
end: { line: 1, column: 34 }
2715
}
2716
},
2717
kind: 'set',
2718
method: false,
2719
shorthand: false,
2720
computed: false,
2721
range: [6, 34],
2722
loc: {
2723
start: { line: 1, column: 6 },
2724
end: { line: 1, column: 34 }
2725
}
2726
}],
2727
range: [4, 36],
2728
loc: {
2729
start: { line: 1, column: 4 },
2730
end: { line: 1, column: 36 }
2731
}
2732
},
2733
range: [0, 36],
2734
loc: {
2735
start: { line: 1, column: 0 },
2736
end: { line: 1, column: 36 }
2737
}
2738
},
2739
range: [0, 36],
2740
loc: {
2741
start: { line: 1, column: 0 },
2742
end: { line: 1, column: 36 }
2743
}
2744
},
2745
2746
'x = { set null(w) { m_null = w } }': {
2747
type: 'ExpressionStatement',
2748
expression: {
2749
type: 'AssignmentExpression',
2750
operator: '=',
2751
left: {
2752
type: 'Identifier',
2753
name: 'x',
2754
range: [0, 1],
2755
loc: {
2756
start: { line: 1, column: 0 },
2757
end: { line: 1, column: 1 }
2758
}
2759
},
2760
right: {
2761
type: 'ObjectExpression',
2762
properties: [{
2763
type: 'Property',
2764
key: {
2765
type: 'Identifier',
2766
name: 'null',
2767
range: [10, 14],
2768
loc: {
2769
start: { line: 1, column: 10 },
2770
end: { line: 1, column: 14 }
2771
}
2772
},
2773
value: {
2774
type: 'FunctionExpression',
2775
id: null,
2776
params: [{
2777
type: 'Identifier',
2778
name: 'w',
2779
range: [15, 16],
2780
loc: {
2781
start: { line: 1, column: 15 },
2782
end: { line: 1, column: 16 }
2783
}
2784
}],
2785
defaults: [],
2786
body: {
2787
type: 'BlockStatement',
2788
body: [{
2789
type: 'ExpressionStatement',
2790
expression: {
2791
type: 'AssignmentExpression',
2792
operator: '=',
2793
left: {
2794
type: 'Identifier',
2795
name: 'm_null',
2796
range: [20, 26],
2797
loc: {
2798
start: { line: 1, column: 20 },
2799
end: { line: 1, column: 26 }
2800
}
2801
},
2802
right: {
2803
type: 'Identifier',
2804
name: 'w',
2805
range: [29, 30],
2806
loc: {
2807
start: { line: 1, column: 29 },
2808
end: { line: 1, column: 30 }
2809
}
2810
},
2811
range: [20, 30],
2812
loc: {
2813
start: { line: 1, column: 20 },
2814
end: { line: 1, column: 30 }
2815
}
2816
},
2817
range: [20, 31],
2818
loc: {
2819
start: { line: 1, column: 20 },
2820
end: { line: 1, column: 31 }
2821
}
2822
}],
2823
range: [18, 32],
2824
loc: {
2825
start: { line: 1, column: 18 },
2826
end: { line: 1, column: 32 }
2827
}
2828
},
2829
rest: null,
2830
generator: false,
2831
expression: false,
2832
range: [18, 32],
2833
loc: {
2834
start: { line: 1, column: 18 },
2835
end: { line: 1, column: 32 }
2836
}
2837
},
2838
kind: 'set',
2839
method: false,
2840
shorthand: false,
2841
computed: false,
2842
range: [6, 32],
2843
loc: {
2844
start: { line: 1, column: 6 },
2845
end: { line: 1, column: 32 }
2846
}
2847
}],
2848
range: [4, 34],
2849
loc: {
2850
start: { line: 1, column: 4 },
2851
end: { line: 1, column: 34 }
2852
}
2853
},
2854
range: [0, 34],
2855
loc: {
2856
start: { line: 1, column: 0 },
2857
end: { line: 1, column: 34 }
2858
}
2859
},
2860
range: [0, 34],
2861
loc: {
2862
start: { line: 1, column: 0 },
2863
end: { line: 1, column: 34 }
2864
}
2865
},
2866
2867
'x = { set "null"(w) { m_null = w } }': {
2868
type: 'ExpressionStatement',
2869
expression: {
2870
type: 'AssignmentExpression',
2871
operator: '=',
2872
left: {
2873
type: 'Identifier',
2874
name: 'x',
2875
range: [0, 1],
2876
loc: {
2877
start: { line: 1, column: 0 },
2878
end: { line: 1, column: 1 }
2879
}
2880
},
2881
right: {
2882
type: 'ObjectExpression',
2883
properties: [{
2884
type: 'Property',
2885
key: {
2886
type: 'Literal',
2887
value: 'null',
2888
raw: '"null"',
2889
range: [10, 16],
2890
loc: {
2891
start: { line: 1, column: 10 },
2892
end: { line: 1, column: 16 }
2893
}
2894
},
2895
value: {
2896
type: 'FunctionExpression',
2897
id: null,
2898
params: [{
2899
type: 'Identifier',
2900
name: 'w',
2901
range: [17, 18],
2902
loc: {
2903
start: { line: 1, column: 17 },
2904
end: { line: 1, column: 18 }
2905
}
2906
}],
2907
defaults: [],
2908
body: {
2909
type: 'BlockStatement',
2910
body: [{
2911
type: 'ExpressionStatement',
2912
expression: {
2913
type: 'AssignmentExpression',
2914
operator: '=',
2915
left: {
2916
type: 'Identifier',
2917
name: 'm_null',
2918
range: [22, 28],
2919
loc: {
2920
start: { line: 1, column: 22 },
2921
end: { line: 1, column: 28 }
2922
}
2923
},
2924
right: {
2925
type: 'Identifier',
2926
name: 'w',
2927
range: [31, 32],
2928
loc: {
2929
start: { line: 1, column: 31 },
2930
end: { line: 1, column: 32 }
2931
}
2932
},
2933
range: [22, 32],
2934
loc: {
2935
start: { line: 1, column: 22 },
2936
end: { line: 1, column: 32 }
2937
}
2938
},
2939
range: [22, 33],
2940
loc: {
2941
start: { line: 1, column: 22 },
2942
end: { line: 1, column: 33 }
2943
}
2944
}],
2945
range: [20, 34],
2946
loc: {
2947
start: { line: 1, column: 20 },
2948
end: { line: 1, column: 34 }
2949
}
2950
},
2951
rest: null,
2952
generator: false,
2953
expression: false,
2954
range: [20, 34],
2955
loc: {
2956
start: { line: 1, column: 20 },
2957
end: { line: 1, column: 34 }
2958
}
2959
},
2960
kind: 'set',
2961
method: false,
2962
shorthand: false,
2963
computed: false,
2964
range: [6, 34],
2965
loc: {
2966
start: { line: 1, column: 6 },
2967
end: { line: 1, column: 34 }
2968
}
2969
}],
2970
range: [4, 36],
2971
loc: {
2972
start: { line: 1, column: 4 },
2973
end: { line: 1, column: 36 }
2974
}
2975
},
2976
range: [0, 36],
2977
loc: {
2978
start: { line: 1, column: 0 },
2979
end: { line: 1, column: 36 }
2980
}
2981
},
2982
range: [0, 36],
2983
loc: {
2984
start: { line: 1, column: 0 },
2985
end: { line: 1, column: 36 }
2986
}
2987
},
2988
2989
'x = { set 10(w) { m_null = w } }': {
2990
type: 'ExpressionStatement',
2991
expression: {
2992
type: 'AssignmentExpression',
2993
operator: '=',
2994
left: {
2995
type: 'Identifier',
2996
name: 'x',
2997
range: [0, 1],
2998
loc: {
2999
start: { line: 1, column: 0 },
3000
end: { line: 1, column: 1 }
3001
}
3002
},
3003
right: {
3004
type: 'ObjectExpression',
3005
properties: [{
3006
type: 'Property',
3007
key: {
3008
type: 'Literal',
3009
value: 10,
3010
raw: '10',
3011
range: [10, 12],
3012
loc: {
3013
start: { line: 1, column: 10 },
3014
end: { line: 1, column: 12 }
3015
}
3016
},
3017
value: {
3018
type: 'FunctionExpression',
3019
id: null,
3020
params: [{
3021
type: 'Identifier',
3022
name: 'w',
3023
range: [13, 14],
3024
loc: {
3025
start: { line: 1, column: 13 },
3026
end: { line: 1, column: 14 }
3027
}
3028
}],
3029
defaults: [],
3030
body: {
3031
type: 'BlockStatement',
3032
body: [{
3033
type: 'ExpressionStatement',
3034
expression: {
3035
type: 'AssignmentExpression',
3036
operator: '=',
3037
left: {
3038
type: 'Identifier',
3039
name: 'm_null',
3040
range: [18, 24],
3041
loc: {
3042
start: { line: 1, column: 18 },
3043
end: { line: 1, column: 24 }
3044
}
3045
},
3046
right: {
3047
type: 'Identifier',
3048
name: 'w',
3049
range: [27, 28],
3050
loc: {
3051
start: { line: 1, column: 27 },
3052
end: { line: 1, column: 28 }
3053
}
3054
},
3055
range: [18, 28],
3056
loc: {
3057
start: { line: 1, column: 18 },
3058
end: { line: 1, column: 28 }
3059
}
3060
},
3061
range: [18, 29],
3062
loc: {
3063
start: { line: 1, column: 18 },
3064
end: { line: 1, column: 29 }
3065
}
3066
}],
3067
range: [16, 30],
3068
loc: {
3069
start: { line: 1, column: 16 },
3070
end: { line: 1, column: 30 }
3071
}
3072
},
3073
rest: null,
3074
generator: false,
3075
expression: false,
3076
range: [16, 30],
3077
loc: {
3078
start: { line: 1, column: 16 },
3079
end: { line: 1, column: 30 }
3080
}
3081
},
3082
kind: 'set',
3083
method: false,
3084
shorthand: false,
3085
computed: false,
3086
range: [6, 30],
3087
loc: {
3088
start: { line: 1, column: 6 },
3089
end: { line: 1, column: 30 }
3090
}
3091
}],
3092
range: [4, 32],
3093
loc: {
3094
start: { line: 1, column: 4 },
3095
end: { line: 1, column: 32 }
3096
}
3097
},
3098
range: [0, 32],
3099
loc: {
3100
start: { line: 1, column: 0 },
3101
end: { line: 1, column: 32 }
3102
}
3103
},
3104
range: [0, 32],
3105
loc: {
3106
start: { line: 1, column: 0 },
3107
end: { line: 1, column: 32 }
3108
}
3109
},
3110
3111
'x = { get: 42 }': {
3112
type: 'ExpressionStatement',
3113
expression: {
3114
type: 'AssignmentExpression',
3115
operator: '=',
3116
left: {
3117
type: 'Identifier',
3118
name: 'x',
3119
range: [0, 1],
3120
loc: {
3121
start: { line: 1, column: 0 },
3122
end: { line: 1, column: 1 }
3123
}
3124
},
3125
right: {
3126
type: 'ObjectExpression',
3127
properties: [{
3128
type: 'Property',
3129
key: {
3130
type: 'Identifier',
3131
name: 'get',
3132
range: [6, 9],
3133
loc: {
3134
start: { line: 1, column: 6 },
3135
end: { line: 1, column: 9 }
3136
}
3137
},
3138
value: {
3139
type: 'Literal',
3140
value: 42,
3141
raw: '42',
3142
range: [11, 13],
3143
loc: {
3144
start: { line: 1, column: 11 },
3145
end: { line: 1, column: 13 }
3146
}
3147
},
3148
kind: 'init',
3149
method: false,
3150
shorthand: false,
3151
computed: false,
3152
range: [6, 13],
3153
loc: {
3154
start: { line: 1, column: 6 },
3155
end: { line: 1, column: 13 }
3156
}
3157
}],
3158
range: [4, 15],
3159
loc: {
3160
start: { line: 1, column: 4 },
3161
end: { line: 1, column: 15 }
3162
}
3163
},
3164
range: [0, 15],
3165
loc: {
3166
start: { line: 1, column: 0 },
3167
end: { line: 1, column: 15 }
3168
}
3169
},
3170
range: [0, 15],
3171
loc: {
3172
start: { line: 1, column: 0 },
3173
end: { line: 1, column: 15 }
3174
}
3175
},
3176
3177
'x = { set: 43 }': {
3178
type: 'ExpressionStatement',
3179
expression: {
3180
type: 'AssignmentExpression',
3181
operator: '=',
3182
left: {
3183
type: 'Identifier',
3184
name: 'x',
3185
range: [0, 1],
3186
loc: {
3187
start: { line: 1, column: 0 },
3188
end: { line: 1, column: 1 }
3189
}
3190
},
3191
right: {
3192
type: 'ObjectExpression',
3193
properties: [{
3194
type: 'Property',
3195
key: {
3196
type: 'Identifier',
3197
name: 'set',
3198
range: [6, 9],
3199
loc: {
3200
start: { line: 1, column: 6 },
3201
end: { line: 1, column: 9 }
3202
}
3203
},
3204
value: {
3205
type: 'Literal',
3206
value: 43,
3207
raw: '43',
3208
range: [11, 13],
3209
loc: {
3210
start: { line: 1, column: 11 },
3211
end: { line: 1, column: 13 }
3212
}
3213
},
3214
kind: 'init',
3215
method: false,
3216
shorthand: false,
3217
computed: false,
3218
range: [6, 13],
3219
loc: {
3220
start: { line: 1, column: 6 },
3221
end: { line: 1, column: 13 }
3222
}
3223
}],
3224
range: [4, 15],
3225
loc: {
3226
start: { line: 1, column: 4 },
3227
end: { line: 1, column: 15 }
3228
}
3229
},
3230
range: [0, 15],
3231
loc: {
3232
start: { line: 1, column: 0 },
3233
end: { line: 1, column: 15 }
3234
}
3235
},
3236
range: [0, 15],
3237
loc: {
3238
start: { line: 1, column: 0 },
3239
end: { line: 1, column: 15 }
3240
}
3241
},
3242
3243
'x = { __proto__: 2 }': {
3244
type: 'ExpressionStatement',
3245
expression: {
3246
type: 'AssignmentExpression',
3247
operator: '=',
3248
left: {
3249
type: 'Identifier',
3250
name: 'x',
3251
range: [0, 1],
3252
loc: {
3253
start: { line: 1, column: 0 },
3254
end: { line: 1, column: 1 }
3255
}
3256
},
3257
right: {
3258
type: 'ObjectExpression',
3259
properties: [{
3260
type: 'Property',
3261
key: {
3262
type: 'Identifier',
3263
name: '__proto__',
3264
range: [6, 15],
3265
loc: {
3266
start: { line: 1, column: 6 },
3267
end: { line: 1, column: 15 }
3268
}
3269
},
3270
value: {
3271
type: 'Literal',
3272
value: 2,
3273
raw: '2',
3274
range: [17, 18],
3275
loc: {
3276
start: { line: 1, column: 17 },
3277
end: { line: 1, column: 18 }
3278
}
3279
},
3280
kind: 'init',
3281
method: false,
3282
shorthand: false,
3283
computed: false,
3284
range: [6, 18],
3285
loc: {
3286
start: { line: 1, column: 6 },
3287
end: { line: 1, column: 18 }
3288
}
3289
}],
3290
range: [4, 20],
3291
loc: {
3292
start: { line: 1, column: 4 },
3293
end: { line: 1, column: 20 }
3294
}
3295
},
3296
range: [0, 20],
3297
loc: {
3298
start: { line: 1, column: 0 },
3299
end: { line: 1, column: 20 }
3300
}
3301
},
3302
range: [0, 20],
3303
loc: {
3304
start: { line: 1, column: 0 },
3305
end: { line: 1, column: 20 }
3306
}
3307
},
3308
3309
'x = {"__proto__": 2 }': {
3310
type: 'ExpressionStatement',
3311
expression: {
3312
type: 'AssignmentExpression',
3313
operator: '=',
3314
left: {
3315
type: 'Identifier',
3316
name: 'x',
3317
range: [0, 1],
3318
loc: {
3319
start: { line: 1, column: 0 },
3320
end: { line: 1, column: 1 }
3321
}
3322
},
3323
right: {
3324
type: 'ObjectExpression',
3325
properties: [{
3326
type: 'Property',
3327
key: {
3328
type: 'Literal',
3329
value: '__proto__',
3330
raw: '"__proto__"',
3331
range: [5, 16],
3332
loc: {
3333
start: { line: 1, column: 5 },
3334
end: { line: 1, column: 16 }
3335
}
3336
},
3337
value: {
3338
type: 'Literal',
3339
value: 2,
3340
raw: '2',
3341
range: [18, 19],
3342
loc: {
3343
start: { line: 1, column: 18 },
3344
end: { line: 1, column: 19 }
3345
}
3346
},
3347
kind: 'init',
3348
method: false,
3349
shorthand: false,
3350
computed: false,
3351
range: [5, 19],
3352
loc: {
3353
start: { line: 1, column: 5 },
3354
end: { line: 1, column: 19 }
3355
}
3356
}],
3357
range: [4, 21],
3358
loc: {
3359
start: { line: 1, column: 4 },
3360
end: { line: 1, column: 21 }
3361
}
3362
},
3363
range: [0, 21],
3364
loc: {
3365
start: { line: 1, column: 0 },
3366
end: { line: 1, column: 21 }
3367
}
3368
},
3369
range: [0, 21],
3370
loc: {
3371
start: { line: 1, column: 0 },
3372
end: { line: 1, column: 21 }
3373
}
3374
},
3375
3376
'x = { get width() { return m_width }, set width(width) { m_width = width; } }': {
3377
type: 'ExpressionStatement',
3378
expression: {
3379
type: 'AssignmentExpression',
3380
operator: '=',
3381
left: {
3382
type: 'Identifier',
3383
name: 'x',
3384
range: [0, 1],
3385
loc: {
3386
start: { line: 1, column: 0 },
3387
end: { line: 1, column: 1 }
3388
}
3389
},
3390
right: {
3391
type: 'ObjectExpression',
3392
properties: [{
3393
type: 'Property',
3394
key: {
3395
type: 'Identifier',
3396
name: 'width',
3397
range: [10, 15],
3398
loc: {
3399
start: { line: 1, column: 10 },
3400
end: { line: 1, column: 15 }
3401
}
3402
},
3403
value: {
3404
type: 'FunctionExpression',
3405
id: null,
3406
params: [],
3407
defaults: [],
3408
body: {
3409
type: 'BlockStatement',
3410
body: [{
3411
type: 'ReturnStatement',
3412
argument: {
3413
type: 'Identifier',
3414
name: 'm_width',
3415
range: [27, 34],
3416
loc: {
3417
start: { line: 1, column: 27 },
3418
end: { line: 1, column: 34 }
3419
}
3420
},
3421
range: [20, 35],
3422
loc: {
3423
start: { line: 1, column: 20 },
3424
end: { line: 1, column: 35 }
3425
}
3426
}],
3427
range: [18, 36],
3428
loc: {
3429
start: { line: 1, column: 18 },
3430
end: { line: 1, column: 36 }
3431
}
3432
},
3433
rest: null,
3434
generator: false,
3435
expression: false,
3436
range: [18, 36],
3437
loc: {
3438
start: { line: 1, column: 18 },
3439
end: { line: 1, column: 36 }
3440
}
3441
},
3442
kind: 'get',
3443
method: false,
3444
shorthand: false,
3445
computed: false,
3446
range: [6, 36],
3447
loc: {
3448
start: { line: 1, column: 6 },
3449
end: { line: 1, column: 36 }
3450
}
3451
}, {
3452
type: 'Property',
3453
key: {
3454
type: 'Identifier',
3455
name: 'width',
3456
range: [42, 47],
3457
loc: {
3458
start: { line: 1, column: 42 },
3459
end: { line: 1, column: 47 }
3460
}
3461
},
3462
value: {
3463
type: 'FunctionExpression',
3464
id: null,
3465
params: [{
3466
type: 'Identifier',
3467
name: 'width',
3468
range: [48, 53],
3469
loc: {
3470
start: { line: 1, column: 48 },
3471
end: { line: 1, column: 53 }
3472
}
3473
}],
3474
defaults: [],
3475
body: {
3476
type: 'BlockStatement',
3477
body: [{
3478
type: 'ExpressionStatement',
3479
expression: {
3480
type: 'AssignmentExpression',
3481
operator: '=',
3482
left: {
3483
type: 'Identifier',
3484
name: 'm_width',
3485
range: [57, 64],
3486
loc: {
3487
start: { line: 1, column: 57 },
3488
end: { line: 1, column: 64 }
3489
}
3490
},
3491
right: {
3492
type: 'Identifier',
3493
name: 'width',
3494
range: [67, 72],
3495
loc: {
3496
start: { line: 1, column: 67 },
3497
end: { line: 1, column: 72 }
3498
}
3499
},
3500
range: [57, 72],
3501
loc: {
3502
start: { line: 1, column: 57 },
3503
end: { line: 1, column: 72 }
3504
}
3505
},
3506
range: [57, 73],
3507
loc: {
3508
start: { line: 1, column: 57 },
3509
end: { line: 1, column: 73 }
3510
}
3511
}],
3512
range: [55, 75],
3513
loc: {
3514
start: { line: 1, column: 55 },
3515
end: { line: 1, column: 75 }
3516
}
3517
},
3518
rest: null,
3519
generator: false,
3520
expression: false,
3521
range: [55, 75],
3522
loc: {
3523
start: { line: 1, column: 55 },
3524
end: { line: 1, column: 75 }
3525
}
3526
},
3527
kind: 'set',
3528
method: false,
3529
shorthand: false,
3530
computed: false,
3531
range: [38, 75],
3532
loc: {
3533
start: { line: 1, column: 38 },
3534
end: { line: 1, column: 75 }
3535
}
3536
}],
3537
range: [4, 77],
3538
loc: {
3539
start: { line: 1, column: 4 },
3540
end: { line: 1, column: 77 }
3541
}
3542
},
3543
range: [0, 77],
3544
loc: {
3545
start: { line: 1, column: 0 },
3546
end: { line: 1, column: 77 }
3547
}
3548
},
3549
range: [0, 77],
3550
loc: {
3551
start: { line: 1, column: 0 },
3552
end: { line: 1, column: 77 }
3553
}
3554
}
3555
3556
3557
},
3558
3559
'Comments': {
3560
3561
'/* block comment */ 42': {
3562
type: 'ExpressionStatement',
3563
expression: {
3564
type: 'Literal',
3565
value: 42,
3566
raw: '42',
3567
range: [20, 22],
3568
loc: {
3569
start: { line: 1, column: 20 },
3570
end: { line: 1, column: 22 }
3571
}
3572
},
3573
range: [20, 22],
3574
loc: {
3575
start: { line: 1, column: 20 },
3576
end: { line: 1, column: 22 }
3577
}
3578
},
3579
3580
'42 /*The*/ /*Answer*/': {
3581
type: 'Program',
3582
body: [{
3583
type: 'ExpressionStatement',
3584
expression: {
3585
type: 'Literal',
3586
value: 42,
3587
raw: '42',
3588
range: [0, 2],
3589
loc: {
3590
start: { line: 1, column: 0 },
3591
end: { line: 1, column: 2 }
3592
},
3593
trailingComments: [{
3594
type: 'Block',
3595
value: 'The',
3596
range: [3, 10],
3597
loc: {
3598
start: { line: 1, column: 3 },
3599
end: { line: 1, column: 10 }
3600
}
3601
}, {
3602
type: 'Block',
3603
value: 'Answer',
3604
range: [11, 21],
3605
loc: {
3606
start: { line: 1, column: 11 },
3607
end: { line: 1, column: 21 }
3608
}
3609
}]
3610
},
3611
range: [0, 21],
3612
loc: {
3613
start: { line: 1, column: 0 },
3614
end: { line: 1, column: 21 }
3615
}
3616
}],
3617
range: [0, 21],
3618
loc: {
3619
start: { line: 1, column: 0 },
3620
end: { line: 1, column: 21 }
3621
},
3622
comments: [{
3623
type: 'Block',
3624
value: 'The',
3625
range: [3, 10],
3626
loc: {
3627
start: { line: 1, column: 3 },
3628
end: { line: 1, column: 10 }
3629
}
3630
}, {
3631
type: 'Block',
3632
value: 'Answer',
3633
range: [11, 21],
3634
loc: {
3635
start: { line: 1, column: 11 },
3636
end: { line: 1, column: 21 }
3637
}
3638
}]
3639
},
3640
3641
'42 /*the*/ /*answer*/': {
3642
type: 'Program',
3643
body: [{
3644
type: 'ExpressionStatement',
3645
expression: {
3646
type: 'Literal',
3647
value: 42,
3648
raw: '42',
3649
range: [0, 2],
3650
trailingComments: [{
3651
type: 'Block',
3652
value: 'the',
3653
range: [3, 10]
3654
}, {
3655
type: 'Block',
3656
value: 'answer',
3657
range: [11, 21]
3658
}]
3659
},
3660
range: [0, 21]
3661
}],
3662
range: [0, 21],
3663
comments: [{
3664
type: 'Block',
3665
value: 'the',
3666
range: [3, 10]
3667
}, {
3668
type: 'Block',
3669
value: 'answer',
3670
range: [11, 21]
3671
}]
3672
},
3673
3674
'42 /* the * answer */': {
3675
type: 'ExpressionStatement',
3676
expression: {
3677
type: 'Literal',
3678
value: 42,
3679
raw: '42',
3680
range: [0, 2],
3681
loc: {
3682
start: { line: 1, column: 0 },
3683
end: { line: 1, column: 2 }
3684
}
3685
},
3686
range: [0, 21],
3687
loc: {
3688
start: { line: 1, column: 0 },
3689
end: { line: 1, column: 21 }
3690
}
3691
},
3692
3693
'42 /* The * answer */': {
3694
type: 'Program',
3695
body: [{
3696
type: 'ExpressionStatement',
3697
expression: {
3698
type: 'Literal',
3699
value: 42,
3700
raw: '42',
3701
range: [0, 2],
3702
loc: {
3703
start: { line: 1, column: 0 },
3704
end: { line: 1, column: 2 }
3705
},
3706
trailingComments: [{
3707
type: 'Block',
3708
value: ' The * answer ',
3709
range: [3, 21],
3710
loc: {
3711
start: { line: 1, column: 3 },
3712
end: { line: 1, column: 21 }
3713
}
3714
}]
3715
},
3716
range: [0, 21],
3717
loc: {
3718
start: { line: 1, column: 0 },
3719
end: { line: 1, column: 21 }
3720
}
3721
}],
3722
range: [0, 21],
3723
loc: {
3724
start: { line: 1, column: 0 },
3725
end: { line: 1, column: 21 }
3726
},
3727
comments: [{
3728
type: 'Block',
3729
value: ' The * answer ',
3730
range: [3, 21],
3731
loc: {
3732
start: { line: 1, column: 3 },
3733
end: { line: 1, column: 21 }
3734
}
3735
}]
3736
},
3737
3738
'/* multiline\ncomment\nshould\nbe\nignored */ 42': {
3739
type: 'ExpressionStatement',
3740
expression: {
3741
type: 'Literal',
3742
value: 42,
3743
raw: '42',
3744
range: [42, 44],
3745
loc: {
3746
start: { line: 5, column: 11 },
3747
end: { line: 5, column: 13 }
3748
}
3749
},
3750
range: [42, 44],
3751
loc: {
3752
start: { line: 5, column: 11 },
3753
end: { line: 5, column: 13 }
3754
}
3755
},
3756
3757
'function foo(){}\n//comment\nfunction bar(){}': {
3758
type: "Program",
3759
body: [{
3760
type: "FunctionDeclaration",
3761
id: {
3762
type: "Identifier",
3763
name: "foo",
3764
range: [9, 12]
3765
},
3766
params: [],
3767
defaults: [],
3768
body: {
3769
type: "BlockStatement",
3770
body: [],
3771
range: [14, 16]
3772
},
3773
rest: null,
3774
generator: false,
3775
expression: false,
3776
range: [0, 16],
3777
trailingComments: [{
3778
type: "Line",
3779
value: "comment",
3780
range: [17, 26]
3781
}]
3782
}, {
3783
type: "FunctionDeclaration",
3784
id: {
3785
type: "Identifier",
3786
name: "bar",
3787
range: [36, 39]
3788
},
3789
params: [],
3790
defaults: [],
3791
body: {
3792
type: "BlockStatement",
3793
body: [],
3794
range: [41, 43]
3795
},
3796
rest: null,
3797
generator: false,
3798
expression: false,
3799
range: [27, 43],
3800
leadingComments: [{
3801
type: "Line",
3802
value: "comment",
3803
range: [17, 26]
3804
}]
3805
}],
3806
range: [0, 43],
3807
comments: [{
3808
type: "Line",
3809
value: "comment",
3810
range: [17, 26]
3811
}]
3812
},
3813
3814
'/*a\r\nb*/ 42': {
3815
type: 'Program',
3816
body: [{
3817
type: 'ExpressionStatement',
3818
expression: {
3819
type: 'Literal',
3820
value: 42,
3821
raw: '42',
3822
range: [9, 11],
3823
loc: {
3824
start: { line: 2, column: 4 },
3825
end: { line: 2, column: 6 }
3826
}
3827
},
3828
range: [9, 11],
3829
loc: {
3830
start: { line: 2, column: 4 },
3831
end: { line: 2, column: 6 }
3832
},
3833
leadingComments: [{
3834
type: 'Block',
3835
value: 'a\r\nb',
3836
range: [0, 8],
3837
loc: {
3838
start: { line: 1, column: 0 },
3839
end: { line: 2, column: 3 }
3840
}
3841
}]
3842
}],
3843
range: [9, 11],
3844
loc: {
3845
start: { line: 2, column: 4 },
3846
end: { line: 2, column: 6 }
3847
},
3848
comments: [{
3849
type: 'Block',
3850
value: 'a\r\nb',
3851
range: [0, 8],
3852
loc: {
3853
start: { line: 1, column: 0 },
3854
end: { line: 2, column: 3 }
3855
}
3856
}]
3857
},
3858
3859
'/*a\rb*/ 42': {
3860
type: 'Program',
3861
body: [{
3862
type: 'ExpressionStatement',
3863
expression: {
3864
type: 'Literal',
3865
value: 42,
3866
raw: '42',
3867
range: [8, 10],
3868
loc: {
3869
start: { line: 2, column: 4 },
3870
end: { line: 2, column: 6 }
3871
}
3872
},
3873
range: [8, 10],
3874
loc: {
3875
start: { line: 2, column: 4 },
3876
end: { line: 2, column: 6 }
3877
},
3878
leadingComments: [{
3879
type: 'Block',
3880
value: 'a\rb',
3881
range: [0, 7],
3882
loc: {
3883
start: { line: 1, column: 0 },
3884
end: { line: 2, column: 3 }
3885
}
3886
}]
3887
}],
3888
range: [8, 10],
3889
loc: {
3890
start: { line: 2, column: 4 },
3891
end: { line: 2, column: 6 }
3892
},
3893
comments: [{
3894
type: 'Block',
3895
value: 'a\rb',
3896
range: [0, 7],
3897
loc: {
3898
start: { line: 1, column: 0 },
3899
end: { line: 2, column: 3 }
3900
}
3901
}]
3902
},
3903
3904
'/*a\nb*/ 42': {
3905
type: 'Program',
3906
body: [{
3907
type: 'ExpressionStatement',
3908
expression: {
3909
type: 'Literal',
3910
value: 42,
3911
raw: '42',
3912
range: [8, 10],
3913
loc: {
3914
start: { line: 2, column: 4 },
3915
end: { line: 2, column: 6 }
3916
}
3917
},
3918
range: [8, 10],
3919
loc: {
3920
start: { line: 2, column: 4 },
3921
end: { line: 2, column: 6 }
3922
},
3923
leadingComments: [{
3924
type: 'Block',
3925
value: 'a\nb',
3926
range: [0, 7],
3927
loc: {
3928
start: { line: 1, column: 0 },
3929
end: { line: 2, column: 3 }
3930
}
3931
}]
3932
}],
3933
range: [8, 10],
3934
loc: {
3935
start: { line: 2, column: 4 },
3936
end: { line: 2, column: 6 }
3937
},
3938
comments: [{
3939
type: 'Block',
3940
value: 'a\nb',
3941
range: [0, 7],
3942
loc: {
3943
start: { line: 1, column: 0 },
3944
end: { line: 2, column: 3 }
3945
}
3946
}]
3947
},
3948
3949
'/*a\nc*/ 42': {
3950
type: 'Program',
3951
body: [{
3952
type: 'ExpressionStatement',
3953
expression: {
3954
type: 'Literal',
3955
value: 42,
3956
raw: '42',
3957
range: [8, 10],
3958
loc: {
3959
start: { line: 2, column: 4 },
3960
end: { line: 2, column: 6 }
3961
}
3962
},
3963
range: [8, 10],
3964
loc: {
3965
start: { line: 2, column: 4 },
3966
end: { line: 2, column: 6 }
3967
},
3968
leadingComments: [{
3969
type: 'Block',
3970
value: 'a\nc',
3971
range: [0, 7],
3972
loc: {
3973
start: { line: 1, column: 0 },
3974
end: { line: 2, column: 3 }
3975
}
3976
}]
3977
}],
3978
range: [8, 10],
3979
loc: {
3980
start: { line: 2, column: 4 },
3981
end: { line: 2, column: 6 }
3982
},
3983
comments: [{
3984
type: 'Block',
3985
value: 'a\nc',
3986
range: [0, 7],
3987
loc: {
3988
start: { line: 1, column: 0 },
3989
end: { line: 2, column: 3 }
3990
}
3991
}]
3992
},
3993
3994
'// line comment\n42': {
3995
type: 'ExpressionStatement',
3996
expression: {
3997
type: 'Literal',
3998
value: 42,
3999
raw: '42',
4000
range: [16, 18],
4001
loc: {
4002
start: { line: 2, column: 0 },
4003
end: { line: 2, column: 2 }
4004
}
4005
},
4006
range: [16, 18],
4007
loc: {
4008
start: { line: 2, column: 0 },
4009
end: { line: 2, column: 2 }
4010
}
4011
},
4012
4013
'42 // line comment': {
4014
type: 'Program',
4015
body: [{
4016
type: 'ExpressionStatement',
4017
expression: {
4018
type: 'Literal',
4019
value: 42,
4020
raw: '42',
4021
range: [0, 2],
4022
loc: {
4023
start: { line: 1, column: 0 },
4024
end: { line: 1, column: 2 }
4025
},
4026
trailingComments: [{
4027
type: 'Line',
4028
value: ' line comment',
4029
range: [3, 18],
4030
loc: {
4031
start: { line: 1, column: 3 },
4032
end: { line: 1, column: 18 }
4033
}
4034
}]
4035
},
4036
range: [0, 18],
4037
loc: {
4038
start: { line: 1, column: 0 },
4039
end: { line: 1, column: 18 }
4040
}
4041
}],
4042
range: [0, 18],
4043
loc: {
4044
start: { line: 1, column: 0 },
4045
end: { line: 1, column: 18 }
4046
},
4047
comments: [{
4048
type: 'Line',
4049
value: ' line comment',
4050
range: [3, 18],
4051
loc: {
4052
start: { line: 1, column: 3 },
4053
end: { line: 1, column: 18 }
4054
}
4055
}]
4056
},
4057
4058
'// Hello, world!\n42': {
4059
type: 'Program',
4060
body: [{
4061
type: 'ExpressionStatement',
4062
expression: {
4063
type: 'Literal',
4064
value: 42,
4065
raw: '42',
4066
range: [17, 19],
4067
loc: {
4068
start: { line: 2, column: 0 },
4069
end: { line: 2, column: 2 }
4070
}
4071
},
4072
range: [17, 19],
4073
loc: {
4074
start: { line: 2, column: 0 },
4075
end: { line: 2, column: 2 }
4076
}
4077
}],
4078
range: [17, 19],
4079
loc: {
4080
start: { line: 2, column: 0 },
4081
end: { line: 2, column: 2 }
4082
},
4083
comments: [{
4084
type: 'Line',
4085
value: ' Hello, world!',
4086
range: [0, 16],
4087
loc: {
4088
start: { line: 1, column: 0 },
4089
end: { line: 1, column: 16 }
4090
}
4091
}]
4092
},
4093
4094
'// Hello, world!\n': {
4095
type: 'Program',
4096
body: [],
4097
range: [17, 17],
4098
loc: {
4099
start: { line: 2, column: 0 },
4100
end: { line: 2, column: 0 }
4101
},
4102
comments: [{
4103
type: 'Line',
4104
value: ' Hello, world!',
4105
range: [0, 16],
4106
loc: {
4107
start: { line: 1, column: 0 },
4108
end: { line: 1, column: 16 }
4109
}
4110
}]
4111
},
4112
4113
'// Hallo, world!\n': {
4114
type: 'Program',
4115
body: [],
4116
loc: {
4117
start: { line: 2, column: 0 },
4118
end: { line: 2, column: 0 }
4119
},
4120
comments: [{
4121
type: 'Line',
4122
value: ' Hallo, world!',
4123
loc: {
4124
start: { line: 1, column: 0 },
4125
end: { line: 1, column: 16 }
4126
}
4127
}]
4128
},
4129
4130
'//\n42': {
4131
type: 'Program',
4132
body: [{
4133
type: 'ExpressionStatement',
4134
expression: {
4135
type: 'Literal',
4136
value: 42,
4137
raw: '42',
4138
range: [3, 5],
4139
loc: {
4140
start: { line: 2, column: 0 },
4141
end: { line: 2, column: 2 }
4142
}
4143
},
4144
range: [3, 5],
4145
loc: {
4146
start: { line: 2, column: 0 },
4147
end: { line: 2, column: 2 }
4148
}
4149
}],
4150
range: [3, 5],
4151
loc: {
4152
start: { line: 2, column: 0 },
4153
end: { line: 2, column: 2 }
4154
},
4155
comments: [{
4156
type: 'Line',
4157
value: '',
4158
range: [0, 2],
4159
loc: {
4160
start: { line: 1, column: 0 },
4161
end: { line: 1, column: 2 }
4162
}
4163
}]
4164
},
4165
4166
'//': {
4167
type: 'Program',
4168
body: [],
4169
range: [2, 2],
4170
loc: {
4171
start: { line: 1, column: 2 },
4172
end: { line: 1, column: 2 }
4173
},
4174
comments: [{
4175
type: 'Line',
4176
value: '',
4177
range: [0, 2],
4178
loc: {
4179
start: { line: 1, column: 0 },
4180
end: { line: 1, column: 2 }
4181
}
4182
}]
4183
},
4184
4185
'// ': {
4186
type: 'Program',
4187
body: [],
4188
range: [3, 3],
4189
comments: [{
4190
type: 'Line',
4191
value: ' ',
4192
range: [0, 3]
4193
}]
4194
},
4195
4196
'/**/42': {
4197
type: 'Program',
4198
body: [{
4199
type: 'ExpressionStatement',
4200
expression: {
4201
type: 'Literal',
4202
value: 42,
4203
raw: '42',
4204
range: [4, 6],
4205
loc: {
4206
start: { line: 1, column: 4 },
4207
end: { line: 1, column: 6 }
4208
}
4209
},
4210
range: [4, 6],
4211
loc: {
4212
start: { line: 1, column: 4 },
4213
end: { line: 1, column: 6 }
4214
}
4215
}],
4216
range: [4, 6],
4217
loc: {
4218
start: { line: 1, column: 4 },
4219
end: { line: 1, column: 6 }
4220
},
4221
comments: [{
4222
type: 'Block',
4223
value: '',
4224
range: [0, 4],
4225
loc: {
4226
start: { line: 1, column: 0 },
4227
end: { line: 1, column: 4 }
4228
}
4229
}]
4230
},
4231
4232
'// Hello, world!\n\n// Another hello\n42': {
4233
type: 'Program',
4234
body: [{
4235
type: 'ExpressionStatement',
4236
expression: {
4237
type: 'Literal',
4238
value: 42,
4239
raw: '42',
4240
range: [37, 39],
4241
loc: {
4242
start: { line: 4, column: 0 },
4243
end: { line: 4, column: 2 }
4244
}
4245
},
4246
range: [37, 39],
4247
loc: {
4248
start: { line: 4, column: 0 },
4249
end: { line: 4, column: 2 }
4250
}
4251
}],
4252
range: [37, 39],
4253
loc: {
4254
start: { line: 4, column: 0 },
4255
end: { line: 4, column: 2 }
4256
},
4257
comments: [{
4258
type: 'Line',
4259
value: ' Hello, world!',
4260
range: [0, 16],
4261
loc: {
4262
start: { line: 1, column: 0 },
4263
end: { line: 1, column: 16 }
4264
}
4265
}, {
4266
type: 'Line',
4267
value: ' Another hello',
4268
range: [18, 36],
4269
loc: {
4270
start: { line: 3, column: 0 },
4271
end: { line: 3, column: 18 }
4272
}
4273
}]
4274
},
4275
4276
'if (x) { // Some comment\ndoThat(); }': {
4277
type: 'Program',
4278
body: [{
4279
type: 'IfStatement',
4280
test: {
4281
type: 'Identifier',
4282
name: 'x',
4283
range: [4, 5],
4284
loc: {
4285
start: { line: 1, column: 4 },
4286
end: { line: 1, column: 5 }
4287
}
4288
},
4289
consequent: {
4290
type: 'BlockStatement',
4291
body: [{
4292
type: 'ExpressionStatement',
4293
expression: {
4294
type: 'CallExpression',
4295
callee: {
4296
type: 'Identifier',
4297
name: 'doThat',
4298
range: [25, 31],
4299
loc: {
4300
start: { line: 2, column: 0 },
4301
end: { line: 2, column: 6 }
4302
}
4303
},
4304
'arguments': [],
4305
range: [25, 33],
4306
loc: {
4307
start: { line: 2, column: 0 },
4308
end: { line: 2, column: 8 }
4309
}
4310
},
4311
range: [25, 34],
4312
loc: {
4313
start: { line: 2, column: 0 },
4314
end: { line: 2, column: 9 }
4315
}
4316
}],
4317
range: [7, 36],
4318
loc: {
4319
start: { line: 1, column: 7 },
4320
end: { line: 2, column: 11 }
4321
}
4322
},
4323
alternate: null,
4324
range: [0, 36],
4325
loc: {
4326
start: { line: 1, column: 0 },
4327
end: { line: 2, column: 11 }
4328
}
4329
}],
4330
range: [0, 36],
4331
loc: {
4332
start: { line: 1, column: 0 },
4333
end: { line: 2, column: 11 }
4334
},
4335
comments: [{
4336
type: 'Line',
4337
value: ' Some comment',
4338
range: [9, 24],
4339
loc: {
4340
start: { line: 1, column: 9 },
4341
end: { line: 1, column: 24 }
4342
}
4343
}]
4344
},
4345
4346
'switch (answer) { case 42: /* perfect */ bingo() }': {
4347
type: 'Program',
4348
body: [{
4349
type: 'SwitchStatement',
4350
discriminant: {
4351
type: 'Identifier',
4352
name: 'answer',
4353
range: [8, 14],
4354
loc: {
4355
start: { line: 1, column: 8 },
4356
end: { line: 1, column: 14 }
4357
}
4358
},
4359
cases: [{
4360
type: 'SwitchCase',
4361
test: {
4362
type: 'Literal',
4363
value: 42,
4364
raw: '42',
4365
range: [23, 25],
4366
loc: {
4367
start: { line: 1, column: 23 },
4368
end: { line: 1, column: 25 }
4369
}
4370
},
4371
consequent: [{
4372
type: 'ExpressionStatement',
4373
expression: {
4374
type: 'CallExpression',
4375
callee: {
4376
type: 'Identifier',
4377
name: 'bingo',
4378
range: [41, 46],
4379
loc: {
4380
start: { line: 1, column: 41 },
4381
end: { line: 1, column: 46 }
4382
}
4383
},
4384
'arguments': [],
4385
range: [41, 48],
4386
loc: {
4387
start: { line: 1, column: 41 },
4388
end: { line: 1, column: 48 }
4389
}
4390
},
4391
range: [41, 49],
4392
loc: {
4393
start: { line: 1, column: 41 },
4394
end: { line: 1, column: 49 }
4395
},
4396
leadingComments: [{
4397
type: 'Block',
4398
value: ' perfect ',
4399
range: [27, 40],
4400
loc: {
4401
start: { line: 1, column: 27 },
4402
end: { line: 1, column: 40 }
4403
}
4404
}]
4405
}],
4406
range: [18, 49],
4407
loc: {
4408
start: { line: 1, column: 18 },
4409
end: { line: 1, column: 49 }
4410
}
4411
}],
4412
range: [0, 50],
4413
loc: {
4414
start: { line: 1, column: 0 },
4415
end: { line: 1, column: 50 }
4416
}
4417
}],
4418
range: [0, 50],
4419
loc: {
4420
start: { line: 1, column: 0 },
4421
end: { line: 1, column: 50 }
4422
},
4423
comments: [{
4424
type: 'Block',
4425
value: ' perfect ',
4426
range: [27, 40],
4427
loc: {
4428
start: { line: 1, column: 27 },
4429
end: { line: 1, column: 40 }
4430
}
4431
}]
4432
}
4433
4434
},
4435
4436
'Numeric Literals': {
4437
4438
'0': {
4439
type: 'ExpressionStatement',
4440
expression: {
4441
type: 'Literal',
4442
value: 0,
4443
raw: '0',
4444
range: [0, 1],
4445
loc: {
4446
start: { line: 1, column: 0 },
4447
end: { line: 1, column: 1 }
4448
}
4449
},
4450
range: [0, 1],
4451
loc: {
4452
start: { line: 1, column: 0 },
4453
end: { line: 1, column: 1 }
4454
}
4455
},
4456
4457
'42': {
4458
type: 'ExpressionStatement',
4459
expression: {
4460
type: 'Literal',
4461
value: 42,
4462
raw: '42',
4463
range: [0, 2],
4464
loc: {
4465
start: { line: 1, column: 0 },
4466
end: { line: 1, column: 2 }
4467
}
4468
},
4469
range: [0, 2],
4470
loc: {
4471
start: { line: 1, column: 0 },
4472
end: { line: 1, column: 2 }
4473
}
4474
},
4475
4476
'3': {
4477
type: 'Program',
4478
body: [{
4479
type: 'ExpressionStatement',
4480
expression: {
4481
type: 'Literal',
4482
value: 3,
4483
raw: '3',
4484
range: [0, 1]
4485
},
4486
range: [0, 1]
4487
}],
4488
range: [0, 1],
4489
tokens: [{
4490
type: 'Numeric',
4491
value: '3',
4492
range: [0, 1]
4493
}]
4494
},
4495
4496
'5': {
4497
type: 'Program',
4498
body: [{
4499
type: 'ExpressionStatement',
4500
expression: {
4501
type: 'Literal',
4502
value: 5,
4503
raw: '5',
4504
loc: {
4505
start: { line: 1, column: 0 },
4506
end: { line: 1, column: 1 }
4507
}
4508
},
4509
loc: {
4510
start: { line: 1, column: 0 },
4511
end: { line: 1, column: 1 }
4512
}
4513
}],
4514
loc: {
4515
start: { line: 1, column: 0 },
4516
end: { line: 1, column: 1 }
4517
},
4518
tokens: [{
4519
type: 'Numeric',
4520
value: '5',
4521
loc: {
4522
start: { line: 1, column: 0 },
4523
end: { line: 1, column: 1 }
4524
}
4525
}]
4526
},
4527
4528
'.14': {
4529
type: 'ExpressionStatement',
4530
expression: {
4531
type: 'Literal',
4532
value: 0.14,
4533
raw: '.14',
4534
range: [0, 3],
4535
loc: {
4536
start: { line: 1, column: 0 },
4537
end: { line: 1, column: 3 }
4538
}
4539
},
4540
range: [0, 3],
4541
loc: {
4542
start: { line: 1, column: 0 },
4543
end: { line: 1, column: 3 }
4544
}
4545
},
4546
4547
'3.14159': {
4548
type: 'ExpressionStatement',
4549
expression: {
4550
type: 'Literal',
4551
value: 3.14159,
4552
raw: '3.14159',
4553
range: [0, 7],
4554
loc: {
4555
start: { line: 1, column: 0 },
4556
end: { line: 1, column: 7 }
4557
}
4558
},
4559
range: [0, 7],
4560
loc: {
4561
start: { line: 1, column: 0 },
4562
end: { line: 1, column: 7 }
4563
}
4564
},
4565
4566
'6.02214179e+23': {
4567
type: 'ExpressionStatement',
4568
expression: {
4569
type: 'Literal',
4570
value: 6.02214179e+23,
4571
raw: '6.02214179e+23',
4572
range: [0, 14],
4573
loc: {
4574
start: { line: 1, column: 0 },
4575
end: { line: 1, column: 14 }
4576
}
4577
},
4578
range: [0, 14],
4579
loc: {
4580
start: { line: 1, column: 0 },
4581
end: { line: 1, column: 14 }
4582
}
4583
},
4584
4585
'1.492417830e-10': {
4586
type: 'ExpressionStatement',
4587
expression: {
4588
type: 'Literal',
4589
value: 1.49241783e-10,
4590
raw: '1.492417830e-10',
4591
range: [0, 15],
4592
loc: {
4593
start: { line: 1, column: 0 },
4594
end: { line: 1, column: 15 }
4595
}
4596
},
4597
range: [0, 15],
4598
loc: {
4599
start: { line: 1, column: 0 },
4600
end: { line: 1, column: 15 }
4601
}
4602
},
4603
4604
'0x0': {
4605
type: 'ExpressionStatement',
4606
expression: {
4607
type: 'Literal',
4608
value: 0,
4609
raw: '0x0',
4610
range: [0, 3],
4611
loc: {
4612
start: { line: 1, column: 0 },
4613
end: { line: 1, column: 3 }
4614
}
4615
},
4616
range: [0, 3],
4617
loc: {
4618
start: { line: 1, column: 0 },
4619
end: { line: 1, column: 3 }
4620
}
4621
},
4622
4623
'0x0;': {
4624
type: 'ExpressionStatement',
4625
expression: {
4626
type: 'Literal',
4627
value: 0,
4628
raw: '0x0',
4629
range: [0, 3],
4630
loc: {
4631
start: { line: 1, column: 0 },
4632
end: { line: 1, column: 3 }
4633
}
4634
},
4635
range: [0, 4],
4636
loc: {
4637
start: { line: 1, column: 0 },
4638
end: { line: 1, column: 4 }
4639
}
4640
},
4641
4642
'0e+100 ': {
4643
type: 'ExpressionStatement',
4644
expression: {
4645
type: 'Literal',
4646
value: 0,
4647
raw: '0e+100',
4648
range: [0, 6],
4649
loc: {
4650
start: { line: 1, column: 0 },
4651
end: { line: 1, column: 6 }
4652
}
4653
},
4654
range: [0, 7],
4655
loc: {
4656
start: { line: 1, column: 0 },
4657
end: { line: 1, column: 7 }
4658
}
4659
},
4660
4661
'0e+100': {
4662
type: 'ExpressionStatement',
4663
expression: {
4664
type: 'Literal',
4665
value: 0,
4666
raw: '0e+100',
4667
range: [0, 6],
4668
loc: {
4669
start: { line: 1, column: 0 },
4670
end: { line: 1, column: 6 }
4671
}
4672
},
4673
range: [0, 6],
4674
loc: {
4675
start: { line: 1, column: 0 },
4676
end: { line: 1, column: 6 }
4677
}
4678
},
4679
4680
'0xabc': {
4681
type: 'ExpressionStatement',
4682
expression: {
4683
type: 'Literal',
4684
value: 0xabc,
4685
raw: '0xabc',
4686
range: [0, 5],
4687
loc: {
4688
start: { line: 1, column: 0 },
4689
end: { line: 1, column: 5 }
4690
}
4691
},
4692
range: [0, 5],
4693
loc: {
4694
start: { line: 1, column: 0 },
4695
end: { line: 1, column: 5 }
4696
}
4697
},
4698
4699
'0xdef': {
4700
type: 'ExpressionStatement',
4701
expression: {
4702
type: 'Literal',
4703
value: 0xdef,
4704
raw: '0xdef',
4705
range: [0, 5],
4706
loc: {
4707
start: { line: 1, column: 0 },
4708
end: { line: 1, column: 5 }
4709
}
4710
},
4711
range: [0, 5],
4712
loc: {
4713
start: { line: 1, column: 0 },
4714
end: { line: 1, column: 5 }
4715
}
4716
},
4717
4718
'0X1A': {
4719
type: 'ExpressionStatement',
4720
expression: {
4721
type: 'Literal',
4722
value: 0x1A,
4723
raw: '0X1A',
4724
range: [0, 4],
4725
loc: {
4726
start: { line: 1, column: 0 },
4727
end: { line: 1, column: 4 }
4728
}
4729
},
4730
range: [0, 4],
4731
loc: {
4732
start: { line: 1, column: 0 },
4733
end: { line: 1, column: 4 }
4734
}
4735
},
4736
4737
'0x10': {
4738
type: 'ExpressionStatement',
4739
expression: {
4740
type: 'Literal',
4741
value: 0x10,
4742
raw: '0x10',
4743
range: [0, 4],
4744
loc: {
4745
start: { line: 1, column: 0 },
4746
end: { line: 1, column: 4 }
4747
}
4748
},
4749
range: [0, 4],
4750
loc: {
4751
start: { line: 1, column: 0 },
4752
end: { line: 1, column: 4 }
4753
}
4754
},
4755
4756
'0x100': {
4757
type: 'ExpressionStatement',
4758
expression: {
4759
type: 'Literal',
4760
value: 0x100,
4761
raw: '0x100',
4762
range: [0, 5],
4763
loc: {
4764
start: { line: 1, column: 0 },
4765
end: { line: 1, column: 5 }
4766
}
4767
},
4768
range: [0, 5],
4769
loc: {
4770
start: { line: 1, column: 0 },
4771
end: { line: 1, column: 5 }
4772
}
4773
},
4774
4775
'0X04': {
4776
type: 'ExpressionStatement',
4777
expression: {
4778
type: 'Literal',
4779
value: 0X04,
4780
raw: '0X04',
4781
range: [0, 4],
4782
loc: {
4783
start: { line: 1, column: 0 },
4784
end: { line: 1, column: 4 }
4785
}
4786
},
4787
range: [0, 4],
4788
loc: {
4789
start: { line: 1, column: 0 },
4790
end: { line: 1, column: 4 }
4791
}
4792
},
4793
4794
'02': {
4795
type: 'ExpressionStatement',
4796
expression: {
4797
type: 'Literal',
4798
value: 2,
4799
raw: '02',
4800
range: [0, 2],
4801
loc: {
4802
start: { line: 1, column: 0 },
4803
end: { line: 1, column: 2 }
4804
}
4805
},
4806
range: [0, 2],
4807
loc: {
4808
start: { line: 1, column: 0 },
4809
end: { line: 1, column: 2 }
4810
}
4811
},
4812
4813
'012': {
4814
type: 'ExpressionStatement',
4815
expression: {
4816
type: 'Literal',
4817
value: 10,
4818
raw: '012',
4819
range: [0, 3],
4820
loc: {
4821
start: { line: 1, column: 0 },
4822
end: { line: 1, column: 3 }
4823
}
4824
},
4825
range: [0, 3],
4826
loc: {
4827
start: { line: 1, column: 0 },
4828
end: { line: 1, column: 3 }
4829
}
4830
},
4831
4832
'0012': {
4833
type: 'ExpressionStatement',
4834
expression: {
4835
type: 'Literal',
4836
value: 10,
4837
raw: '0012',
4838
range: [0, 4],
4839
loc: {
4840
start: { line: 1, column: 0 },
4841
end: { line: 1, column: 4 }
4842
}
4843
},
4844
range: [0, 4],
4845
loc: {
4846
start: { line: 1, column: 0 },
4847
end: { line: 1, column: 4 }
4848
}
4849
}
4850
4851
},
4852
4853
'String Literals': {
4854
4855
'"Hello"': {
4856
type: 'ExpressionStatement',
4857
expression: {
4858
type: 'Literal',
4859
value: 'Hello',
4860
raw: '"Hello"',
4861
range: [0, 7],
4862
loc: {
4863
start: { line: 1, column: 0 },
4864
end: { line: 1, column: 7 }
4865
}
4866
},
4867
range: [0, 7],
4868
loc: {
4869
start: { line: 1, column: 0 },
4870
end: { line: 1, column: 7 }
4871
}
4872
},
4873
4874
'"\\n\\r\\t\\v\\b\\f\\\\\\\'\\"\\0"': {
4875
type: 'ExpressionStatement',
4876
expression: {
4877
type: 'Literal',
4878
value: '\n\r\t\x0B\b\f\\\'"\x00',
4879
raw: '"\\n\\r\\t\\v\\b\\f\\\\\\\'\\"\\0"',
4880
range: [0, 22],
4881
loc: {
4882
start: { line: 1, column: 0 },
4883
end: { line: 1, column: 22 }
4884
}
4885
},
4886
range: [0, 22],
4887
loc: {
4888
start: { line: 1, column: 0 },
4889
end: { line: 1, column: 22 }
4890
}
4891
},
4892
4893
'"\\u0061"': {
4894
type: 'ExpressionStatement',
4895
expression: {
4896
type: 'Literal',
4897
value: 'a',
4898
raw: '"\\u0061"',
4899
range: [0, 8],
4900
loc: {
4901
start: { line: 1, column: 0 },
4902
end: { line: 1, column: 8 }
4903
}
4904
},
4905
range: [0, 8],
4906
loc: {
4907
start: { line: 1, column: 0 },
4908
end: { line: 1, column: 8 }
4909
}
4910
},
4911
4912
'"\\x61"': {
4913
type: 'ExpressionStatement',
4914
expression: {
4915
type: 'Literal',
4916
value: 'a',
4917
raw: '"\\x61"',
4918
range: [0, 6],
4919
loc: {
4920
start: { line: 1, column: 0 },
4921
end: { line: 1, column: 6 }
4922
}
4923
},
4924
range: [0, 6],
4925
loc: {
4926
start: { line: 1, column: 0 },
4927
end: { line: 1, column: 6 }
4928
}
4929
},
4930
4931
'"\\u00"': {
4932
type: 'ExpressionStatement',
4933
expression: {
4934
type: 'Literal',
4935
value: 'u00',
4936
raw: '"\\u00"',
4937
range: [0, 6],
4938
loc: {
4939
start: { line: 1, column: 0 },
4940
end: { line: 1, column: 6 }
4941
}
4942
},
4943
range: [0, 6],
4944
loc: {
4945
start: { line: 1, column: 0 },
4946
end: { line: 1, column: 6 }
4947
}
4948
},
4949
4950
'"\\xt"': {
4951
type: 'ExpressionStatement',
4952
expression: {
4953
type: 'Literal',
4954
value: 'xt',
4955
raw: '"\\xt"',
4956
range: [0, 5],
4957
loc: {
4958
start: { line: 1, column: 0 },
4959
end: { line: 1, column: 5 }
4960
}
4961
},
4962
range: [0, 5],
4963
loc: {
4964
start: { line: 1, column: 0 },
4965
end: { line: 1, column: 5 }
4966
}
4967
},
4968
4969
'"Hello\\nworld"': {
4970
type: 'ExpressionStatement',
4971
expression: {
4972
type: 'Literal',
4973
value: 'Hello\nworld',
4974
raw: '"Hello\\nworld"',
4975
range: [0, 14],
4976
loc: {
4977
start: { line: 1, column: 0 },
4978
end: { line: 1, column: 14 }
4979
}
4980
},
4981
range: [0, 14],
4982
loc: {
4983
start: { line: 1, column: 0 },
4984
end: { line: 1, column: 14 }
4985
}
4986
},
4987
4988
'"Hello\\\nworld"': {
4989
type: 'ExpressionStatement',
4990
expression: {
4991
type: 'Literal',
4992
value: 'Helloworld',
4993
raw: '"Hello\\\nworld"',
4994
range: [0, 14],
4995
loc: {
4996
start: { line: 1, column: 0 },
4997
end: { line: 2, column: 6 }
4998
}
4999
},
5000
range: [0, 14],
5001
loc: {
5002
start: { line: 1, column: 0 },
5003
end: { line: 2, column: 6 }
5004
}
5005
},
5006
5007
'"Hello\\02World"': {
5008
type: 'ExpressionStatement',
5009
expression: {
5010
type: 'Literal',
5011
value: 'Hello\u0002World',
5012
raw: '"Hello\\02World"',
5013
range: [0, 15],
5014
loc: {
5015
start: { line: 1, column: 0 },
5016
end: { line: 1, column: 15 }
5017
}
5018
},
5019
range: [0, 15],
5020
loc: {
5021
start: { line: 1, column: 0 },
5022
end: { line: 1, column: 15 }
5023
}
5024
},
5025
5026
'"Hello\\012World"': {
5027
type: 'ExpressionStatement',
5028
expression: {
5029
type: 'Literal',
5030
value: 'Hello\u000AWorld',
5031
raw: '"Hello\\012World"',
5032
range: [0, 16],
5033
loc: {
5034
start: { line: 1, column: 0 },
5035
end: { line: 1, column: 16 }
5036
}
5037
},
5038
range: [0, 16],
5039
loc: {
5040
start: { line: 1, column: 0 },
5041
end: { line: 1, column: 16 }
5042
}
5043
},
5044
5045
'"Hello\\122World"': {
5046
type: 'ExpressionStatement',
5047
expression: {
5048
type: 'Literal',
5049
value: 'Hello\122World',
5050
raw: '"Hello\\122World"',
5051
range: [0, 16],
5052
loc: {
5053
start: { line: 1, column: 0 },
5054
end: { line: 1, column: 16 }
5055
}
5056
},
5057
range: [0, 16],
5058
loc: {
5059
start: { line: 1, column: 0 },
5060
end: { line: 1, column: 16 }
5061
}
5062
},
5063
5064
'"Hello\\0122World"': {
5065
type: 'ExpressionStatement',
5066
expression: {
5067
type: 'Literal',
5068
value: 'Hello\u000A2World',
5069
raw: '"Hello\\0122World"',
5070
range: [0, 17],
5071
loc: {
5072
start: { line: 1, column: 0 },
5073
end: { line: 1, column: 17 }
5074
}
5075
},
5076
range: [0, 17],
5077
loc: {
5078
start: { line: 1, column: 0 },
5079
end: { line: 1, column: 17 }
5080
}
5081
},
5082
5083
'"Hello\\312World"': {
5084
type: 'ExpressionStatement',
5085
expression: {
5086
type: 'Literal',
5087
value: 'Hello\u00CAWorld',
5088
raw: '"Hello\\312World"',
5089
range: [0, 16],
5090
loc: {
5091
start: { line: 1, column: 0 },
5092
end: { line: 1, column: 16 }
5093
}
5094
},
5095
range: [0, 16],
5096
loc: {
5097
start: { line: 1, column: 0 },
5098
end: { line: 1, column: 16 }
5099
}
5100
},
5101
5102
'"Hello\\412World"': {
5103
type: 'ExpressionStatement',
5104
expression: {
5105
type: 'Literal',
5106
value: 'Hello\412World',
5107
raw: '"Hello\\412World"',
5108
range: [0, 16],
5109
loc: {
5110
start: { line: 1, column: 0 },
5111
end: { line: 1, column: 16 }
5112
}
5113
},
5114
range: [0, 16],
5115
loc: {
5116
start: { line: 1, column: 0 },
5117
end: { line: 1, column: 16 }
5118
}
5119
},
5120
5121
'"Hello\\812World"': {
5122
type: 'ExpressionStatement',
5123
expression: {
5124
type: 'Literal',
5125
value: 'Hello812World',
5126
raw: '"Hello\\812World"',
5127
range: [0, 16],
5128
loc: {
5129
start: { line: 1, column: 0 },
5130
end: { line: 1, column: 16 }
5131
}
5132
},
5133
range: [0, 16],
5134
loc: {
5135
start: { line: 1, column: 0 },
5136
end: { line: 1, column: 16 }
5137
}
5138
},
5139
5140
'"Hello\\712World"': {
5141
type: 'ExpressionStatement',
5142
expression: {
5143
type: 'Literal',
5144
value: 'Hello\712World',
5145
raw: '"Hello\\712World"',
5146
range: [0, 16],
5147
loc: {
5148
start: { line: 1, column: 0 },
5149
end: { line: 1, column: 16 }
5150
}
5151
},
5152
range: [0, 16],
5153
loc: {
5154
start: { line: 1, column: 0 },
5155
end: { line: 1, column: 16 }
5156
}
5157
},
5158
5159
'"Hello\\0World"': {
5160
type: 'ExpressionStatement',
5161
expression: {
5162
type: 'Literal',
5163
value: 'Hello\u0000World',
5164
raw: '"Hello\\0World"',
5165
range: [0, 14],
5166
loc: {
5167
start: { line: 1, column: 0 },
5168
end: { line: 1, column: 14 }
5169
}
5170
},
5171
range: [0, 14],
5172
loc: {
5173
start: { line: 1, column: 0 },
5174
end: { line: 1, column: 14 }
5175
}
5176
},
5177
5178
'"Hello\\\r\nworld"': {
5179
type: 'ExpressionStatement',
5180
expression: {
5181
type: 'Literal',
5182
value: 'Helloworld',
5183
raw: '"Hello\\\r\nworld"',
5184
range: [0, 15],
5185
loc: {
5186
start: { line: 1, column: 0 },
5187
end: { line: 2, column: 6 }
5188
}
5189
},
5190
range: [0, 15],
5191
loc: {
5192
start: { line: 1, column: 0 },
5193
end: { line: 2, column: 6 }
5194
}
5195
},
5196
5197
'"Hello\\1World"': {
5198
type: 'ExpressionStatement',
5199
expression: {
5200
type: 'Literal',
5201
value: 'Hello\u0001World',
5202
raw: '"Hello\\1World"',
5203
range: [0, 14],
5204
loc: {
5205
start: { line: 1, column: 0 },
5206
end: { line: 1, column: 14 }
5207
}
5208
},
5209
range: [0, 14],
5210
loc: {
5211
start: { line: 1, column: 0 },
5212
end: { line: 1, column: 14 }
5213
}
5214
}
5215
},
5216
5217
'Regular Expression Literals': {
5218
5219
'/p/;': {
5220
type: 'Program',
5221
body: [{
5222
type: 'ExpressionStatement',
5223
expression: {
5224
type: 'Literal',
5225
value: '/p/',
5226
raw: '/p/',
5227
regex: {
5228
pattern: 'p',
5229
flags: ''
5230
},
5231
range: [0, 3],
5232
loc: {
5233
start: { line: 1, column: 0 },
5234
end: { line: 1, column: 3 }
5235
}
5236
},
5237
range: [0, 4],
5238
loc: {
5239
start: { line: 1, column: 0 },
5240
end: { line: 1, column: 4 }
5241
}
5242
}],
5243
range: [0, 4],
5244
loc: {
5245
start: { line: 1, column: 0 },
5246
end: { line: 1, column: 4 }
5247
},
5248
tokens: [{
5249
type: 'RegularExpression',
5250
value: '/p/',
5251
regex: {
5252
pattern: 'p',
5253
flags: ''
5254
},
5255
range: [0, 3],
5256
loc: {
5257
start: { line: 1, column: 0 },
5258
end: { line: 1, column: 3 }
5259
}
5260
}, {
5261
type: 'Punctuator',
5262
value: ';',
5263
range: [3, 4],
5264
loc: {
5265
start: { line: 1, column: 3 },
5266
end: { line: 1, column: 4 }
5267
}
5268
}]
5269
},
5270
5271
'[/q/]': {
5272
type: 'Program',
5273
body: [{
5274
type: 'ExpressionStatement',
5275
expression: {
5276
type: 'ArrayExpression',
5277
elements: [{
5278
type: 'Literal',
5279
value: '/q/',
5280
raw: '/q/',
5281
regex: {
5282
pattern: 'q',
5283
flags: ''
5284
},
5285
range: [1, 4],
5286
loc: {
5287
start: { line: 1, column: 1 },
5288
end: { line: 1, column: 4 }
5289
}
5290
}],
5291
range: [0, 5],
5292
loc: {
5293
start: { line: 1, column: 0 },
5294
end: { line: 1, column: 5 }
5295
}
5296
},
5297
range: [0, 5],
5298
loc: {
5299
start: { line: 1, column: 0 },
5300
end: { line: 1, column: 5 }
5301
}
5302
}],
5303
range: [0, 5],
5304
loc: {
5305
start: { line: 1, column: 0 },
5306
end: { line: 1, column: 5 }
5307
},
5308
tokens: [{
5309
type: 'Punctuator',
5310
value: '[',
5311
range: [0, 1],
5312
loc: {
5313
start: { line: 1, column: 0 },
5314
end: { line: 1, column: 1 }
5315
}
5316
}, {
5317
type: 'RegularExpression',
5318
value: '/q/',
5319
regex: {
5320
pattern: 'q',
5321
flags: ''
5322
},
5323
range: [1, 4],
5324
loc: {
5325
start: { line: 1, column: 1 },
5326
end: { line: 1, column: 4 }
5327
}
5328
}, {
5329
type: 'Punctuator',
5330
value: ']',
5331
range: [4, 5],
5332
loc: {
5333
start: { line: 1, column: 4 },
5334
end: { line: 1, column: 5 }
5335
}
5336
}]
5337
},
5338
5339
'var x = /[a-z]/i': {
5340
type: 'Program',
5341
body: [{
5342
type: 'VariableDeclaration',
5343
declarations: [{
5344
type: 'VariableDeclarator',
5345
id: {
5346
type: 'Identifier',
5347
name: 'x',
5348
range: [4, 5],
5349
loc: {
5350
start: { line: 1, column: 4 },
5351
end: { line: 1, column: 5 }
5352
}
5353
},
5354
init: {
5355
type: 'Literal',
5356
value: '/[a-z]/i',
5357
raw: '/[a-z]/i',
5358
regex: {
5359
pattern: '[a-z]',
5360
flags: 'i'
5361
},
5362
range: [8, 16],
5363
loc: {
5364
start: { line: 1, column: 8 },
5365
end: { line: 1, column: 16 }
5366
}
5367
},
5368
range: [4, 16],
5369
loc: {
5370
start: { line: 1, column: 4 },
5371
end: { line: 1, column: 16 }
5372
}
5373
}],
5374
kind: 'var',
5375
range: [0, 16],
5376
loc: {
5377
start: { line: 1, column: 0 },
5378
end: { line: 1, column: 16 }
5379
}
5380
}],
5381
range: [0, 16],
5382
loc: {
5383
start: { line: 1, column: 0 },
5384
end: { line: 1, column: 16 }
5385
},
5386
tokens: [{
5387
type: 'Keyword',
5388
value: 'var',
5389
range: [0, 3],
5390
loc: {
5391
start: { line: 1, column: 0 },
5392
end: { line: 1, column: 3 }
5393
}
5394
}, {
5395
type: 'Identifier',
5396
value: 'x',
5397
range: [4, 5],
5398
loc: {
5399
start: { line: 1, column: 4 },
5400
end: { line: 1, column: 5 }
5401
}
5402
}, {
5403
type: 'Punctuator',
5404
value: '=',
5405
range: [6, 7],
5406
loc: {
5407
start: { line: 1, column: 6 },
5408
end: { line: 1, column: 7 }
5409
}
5410
}, {
5411
type: 'RegularExpression',
5412
value: '/[a-z]/i',
5413
regex: {
5414
pattern: '[a-z]',
5415
flags: 'i'
5416
},
5417
range: [8, 16],
5418
loc: {
5419
start: { line: 1, column: 8 },
5420
end: { line: 1, column: 16 }
5421
}
5422
}]
5423
},
5424
5425
'var x = /[a-z]/y': {
5426
type: 'Program',
5427
body: [{
5428
type: 'VariableDeclaration',
5429
declarations: [{
5430
type: 'VariableDeclarator',
5431
id: {
5432
type: 'Identifier',
5433
name: 'x',
5434
range: [4, 5],
5435
loc: {
5436
start: { line: 1, column: 4 },
5437
end: { line: 1, column: 5 }
5438
}
5439
},
5440
init: {
5441
type: 'Literal',
5442
value: null,
5443
raw: '/[a-z]/y',
5444
regex: {
5445
pattern: '[a-z]',
5446
flags: 'y'
5447
},
5448
range: [8, 16],
5449
loc: {
5450
start: { line: 1, column: 8 },
5451
end: { line: 1, column: 16 }
5452
}
5453
},
5454
range: [4, 16],
5455
loc: {
5456
start: { line: 1, column: 4 },
5457
end: { line: 1, column: 16 }
5458
}
5459
}],
5460
kind: 'var',
5461
range: [0, 16],
5462
loc: {
5463
start: { line: 1, column: 0 },
5464
end: { line: 1, column: 16 }
5465
}
5466
}],
5467
range: [0, 16],
5468
loc: {
5469
start: { line: 1, column: 0 },
5470
end: { line: 1, column: 16 }
5471
},
5472
tokens: [{
5473
type: 'Keyword',
5474
value: 'var',
5475
range: [0, 3],
5476
loc: {
5477
start: { line: 1, column: 0 },
5478
end: { line: 1, column: 3 }
5479
}
5480
}, {
5481
type: 'Identifier',
5482
value: 'x',
5483
range: [4, 5],
5484
loc: {
5485
start: { line: 1, column: 4 },
5486
end: { line: 1, column: 5 }
5487
}
5488
}, {
5489
type: 'Punctuator',
5490
value: '=',
5491
range: [6, 7],
5492
loc: {
5493
start: { line: 1, column: 6 },
5494
end: { line: 1, column: 7 }
5495
}
5496
}, {
5497
type: 'RegularExpression',
5498
value: '/[a-z]/y',
5499
regex: {
5500
pattern: '[a-z]',
5501
flags: 'y'
5502
},
5503
range: [8, 16],
5504
loc: {
5505
start: { line: 1, column: 8 },
5506
end: { line: 1, column: 16 }
5507
}
5508
}]
5509
},
5510
5511
'var x = /[a-z]/u': {
5512
type: 'Program',
5513
body: [{
5514
type: 'VariableDeclaration',
5515
declarations: [{
5516
type: 'VariableDeclarator',
5517
id: {
5518
type: 'Identifier',
5519
name: 'x',
5520
range: [4, 5],
5521
loc: {
5522
start: { line: 1, column: 4 },
5523
end: { line: 1, column: 5 }
5524
}
5525
},
5526
init: {
5527
type: 'Literal',
5528
value: null,
5529
raw: '/[a-z]/u',
5530
regex: {
5531
pattern: '[a-z]',
5532
flags: 'u'
5533
},
5534
range: [8, 16],
5535
loc: {
5536
start: { line: 1, column: 8 },
5537
end: { line: 1, column: 16 }
5538
}
5539
},
5540
range: [4, 16],
5541
loc: {
5542
start: { line: 1, column: 4 },
5543
end: { line: 1, column: 16 }
5544
}
5545
}],
5546
kind: 'var',
5547
range: [0, 16],
5548
loc: {
5549
start: { line: 1, column: 0 },
5550
end: { line: 1, column: 16 }
5551
}
5552
}],
5553
range: [0, 16],
5554
loc: {
5555
start: { line: 1, column: 0 },
5556
end: { line: 1, column: 16 }
5557
},
5558
tokens: [{
5559
type: 'Keyword',
5560
value: 'var',
5561
range: [0, 3],
5562
loc: {
5563
start: { line: 1, column: 0 },
5564
end: { line: 1, column: 3 }
5565
}
5566
}, {
5567
type: 'Identifier',
5568
value: 'x',
5569
range: [4, 5],
5570
loc: {
5571
start: { line: 1, column: 4 },
5572
end: { line: 1, column: 5 }
5573
}
5574
}, {
5575
type: 'Punctuator',
5576
value: '=',
5577
range: [6, 7],
5578
loc: {
5579
start: { line: 1, column: 6 },
5580
end: { line: 1, column: 7 }
5581
}
5582
}, {
5583
type: 'RegularExpression',
5584
value: '/[a-z]/u',
5585
regex: {
5586
pattern: '[a-z]',
5587
flags: 'u'
5588
},
5589
range: [8, 16],
5590
loc: {
5591
start: { line: 1, column: 8 },
5592
end: { line: 1, column: 16 }
5593
}
5594
}]
5595
},
5596
5597
'var x = /[\\u{0000000000000061}-\\u{7A}]/u': {
5598
type: 'Program',
5599
body: [{
5600
type: 'VariableDeclaration',
5601
declarations: [{
5602
type: 'VariableDeclarator',
5603
id: {
5604
type: 'Identifier',
5605
name: 'x',
5606
range: [4, 5],
5607
loc: {
5608
start: { line: 1, column: 4 },
5609
end: { line: 1, column: 5 }
5610
}
5611
},
5612
init: {
5613
type: 'Literal',
5614
value: null,
5615
raw: '/[\\u{0000000000000061}-\\u{7A}]/u',
5616
regex: {
5617
pattern: '[\\u{0000000000000061}-\\u{7A}]',
5618
flags: 'u'
5619
},
5620
range: [8, 40],
5621
loc: {
5622
start: { line: 1, column: 8 },
5623
end: { line: 1, column: 40 }
5624
}
5625
},
5626
range: [4, 40],
5627
loc: {
5628
start: { line: 1, column: 4 },
5629
end: { line: 1, column: 40 }
5630
}
5631
}],
5632
kind: 'var',
5633
range: [0, 40],
5634
loc: {
5635
start: { line: 1, column: 0 },
5636
end: { line: 1, column: 40 }
5637
}
5638
}],
5639
range: [0, 40],
5640
loc: {
5641
start: { line: 1, column: 0 },
5642
end: { line: 1, column: 40 }
5643
},
5644
tokens: [{
5645
type: 'Keyword',
5646
value: 'var',
5647
range: [0, 3],
5648
loc: {
5649
start: { line: 1, column: 0 },
5650
end: { line: 1, column: 3 }
5651
}
5652
}, {
5653
type: 'Identifier',
5654
value: 'x',
5655
range: [4, 5],
5656
loc: {
5657
start: { line: 1, column: 4 },
5658
end: { line: 1, column: 5 }
5659
}
5660
}, {
5661
type: 'Punctuator',
5662
value: '=',
5663
range: [6, 7],
5664
loc: {
5665
start: { line: 1, column: 6 },
5666
end: { line: 1, column: 7 }
5667
}
5668
}, {
5669
type: 'RegularExpression',
5670
value: '/[\\u{0000000000000061}-\\u{7A}]/u',
5671
regex: {
5672
pattern: '[\\u{0000000000000061}-\\u{7A}]',
5673
flags: 'u'
5674
},
5675
range: [8, 40],
5676
loc: {
5677
start: { line: 1, column: 8 },
5678
end: { line: 1, column: 40 }
5679
}
5680
}]
5681
},
5682
5683
'var x = /\\u{110000}/u': {
5684
index: 21,
5685
lineNumber: 1,
5686
column: 22,
5687
message: 'Error: Line 1: Invalid regular expression'
5688
},
5689
5690
'var x = /[x-z]/i': {
5691
type: 'Program',
5692
body: [{
5693
type: 'VariableDeclaration',
5694
declarations: [{
5695
type: 'VariableDeclarator',
5696
id: {
5697
type: 'Identifier',
5698
name: 'x',
5699
range: [4, 5]
5700
},
5701
init: {
5702
type: 'Literal',
5703
value: '/[x-z]/i',
5704
raw: '/[x-z]/i',
5705
regex: {
5706
pattern: '[x-z]',
5707
flags: 'i'
5708
},
5709
range: [8, 16]
5710
},
5711
range: [4, 16]
5712
}],
5713
kind: 'var',
5714
range: [0, 16]
5715
}],
5716
range: [0, 16],
5717
tokens: [{
5718
type: 'Keyword',
5719
value: 'var',
5720
range: [0, 3]
5721
}, {
5722
type: 'Identifier',
5723
value: 'x',
5724
range: [4, 5]
5725
}, {
5726
type: 'Punctuator',
5727
value: '=',
5728
range: [6, 7]
5729
}, {
5730
type: 'RegularExpression',
5731
value: '/[x-z]/i',
5732
regex: {
5733
pattern: '[x-z]',
5734
flags: 'i'
5735
},
5736
range: [8, 16]
5737
}]
5738
},
5739
5740
'var x = /[a-c]/i': {
5741
type: 'Program',
5742
body: [{
5743
type: 'VariableDeclaration',
5744
declarations: [{
5745
type: 'VariableDeclarator',
5746
id: {
5747
type: 'Identifier',
5748
name: 'x',
5749
loc: {
5750
start: { line: 1, column: 4 },
5751
end: { line: 1, column: 5 }
5752
}
5753
},
5754
init: {
5755
type: 'Literal',
5756
value: '/[a-c]/i',
5757
raw: '/[a-c]/i',
5758
regex: {
5759
pattern: '[a-c]',
5760
flags: 'i'
5761
},
5762
loc: {
5763
start: { line: 1, column: 8 },
5764
end: { line: 1, column: 16 }
5765
}
5766
},
5767
loc: {
5768
start: { line: 1, column: 4 },
5769
end: { line: 1, column: 16 }
5770
}
5771
}],
5772
kind: 'var',
5773
loc: {
5774
start: { line: 1, column: 0 },
5775
end: { line: 1, column: 16 }
5776
}
5777
}],
5778
loc: {
5779
start: { line: 1, column: 0 },
5780
end: { line: 1, column: 16 }
5781
},
5782
tokens: [{
5783
type: 'Keyword',
5784
value: 'var',
5785
loc: {
5786
start: { line: 1, column: 0 },
5787
end: { line: 1, column: 3 }
5788
}
5789
}, {
5790
type: 'Identifier',
5791
value: 'x',
5792
loc: {
5793
start: { line: 1, column: 4 },
5794
end: { line: 1, column: 5 }
5795
}
5796
}, {
5797
type: 'Punctuator',
5798
value: '=',
5799
loc: {
5800
start: { line: 1, column: 6 },
5801
end: { line: 1, column: 7 }
5802
}
5803
}, {
5804
type: 'RegularExpression',
5805
value: '/[a-c]/i',
5806
regex: {
5807
pattern: '[a-c]',
5808
flags: 'i'
5809
},
5810
loc: {
5811
start: { line: 1, column: 8 },
5812
end: { line: 1, column: 16 }
5813
}
5814
}]
5815
},
5816
5817
'var x = /[P QR]/i': {
5818
type: 'Program',
5819
body: [{
5820
type: 'VariableDeclaration',
5821
declarations: [{
5822
type: 'VariableDeclarator',
5823
id: {
5824
type: 'Identifier',
5825
name: 'x',
5826
range: [4, 5],
5827
loc: {
5828
start: { line: 1, column: 4 },
5829
end: { line: 1, column: 5 }
5830
}
5831
},
5832
init: {
5833
type: 'Literal',
5834
value: '/[P QR]/i',
5835
raw: '/[P QR]/i',
5836
regex: {
5837
pattern: '[P QR]',
5838
flags: 'i'
5839
},
5840
range: [8, 17],
5841
loc: {
5842
start: { line: 1, column: 8 },
5843
end: { line: 1, column: 17 }
5844
}
5845
},
5846
range: [4, 17],
5847
loc: {
5848
start: { line: 1, column: 4 },
5849
end: { line: 1, column: 17 }
5850
}
5851
}],
5852
kind: 'var',
5853
range: [0, 17],
5854
loc: {
5855
start: { line: 1, column: 0 },
5856
end: { line: 1, column: 17 }
5857
}
5858
}],
5859
range: [0, 17],
5860
loc: {
5861
start: { line: 1, column: 0 },
5862
end: { line: 1, column: 17 }
5863
},
5864
tokens: [{
5865
type: 'Keyword',
5866
value: 'var',
5867
range: [0, 3],
5868
loc: {
5869
start: { line: 1, column: 0 },
5870
end: { line: 1, column: 3 }
5871
}
5872
}, {
5873
type: 'Identifier',
5874
value: 'x',
5875
range: [4, 5],
5876
loc: {
5877
start: { line: 1, column: 4 },
5878
end: { line: 1, column: 5 }
5879
}
5880
}, {
5881
type: 'Punctuator',
5882
value: '=',
5883
range: [6, 7],
5884
loc: {
5885
start: { line: 1, column: 6 },
5886
end: { line: 1, column: 7 }
5887
}
5888
}, {
5889
type: 'RegularExpression',
5890
value: '/[P QR]/i',
5891
regex: {
5892
pattern: '[P QR]',
5893
flags: 'i'
5894
},
5895
range: [8, 17],
5896
loc: {
5897
start: { line: 1, column: 8 },
5898
end: { line: 1, column: 17 }
5899
}
5900
}]
5901
},
5902
5903
'var x = /foo\\/bar/': {
5904
type: 'Program',
5905
body: [{
5906
type: 'VariableDeclaration',
5907
declarations: [{
5908
type: 'VariableDeclarator',
5909
id: {
5910
type: 'Identifier',
5911
name: 'x',
5912
range: [4, 5],
5913
loc: {
5914
start: { line: 1, column: 4 },
5915
end: { line: 1, column: 5 }
5916
}
5917
},
5918
init: {
5919
type: 'Literal',
5920
value: '/foo\\/bar/',
5921
raw: '/foo\\/bar/',
5922
regex: {
5923
pattern: 'foo\\/bar',
5924
flags: ''
5925
},
5926
range: [8, 18],
5927
loc: {
5928
start: { line: 1, column: 8 },
5929
end: { line: 1, column: 18 }
5930
}
5931
},
5932
range: [4, 18],
5933
loc: {
5934
start: { line: 1, column: 4 },
5935
end: { line: 1, column: 18 }
5936
}
5937
}],
5938
kind: 'var',
5939
range: [0, 18],
5940
loc: {
5941
start: { line: 1, column: 0 },
5942
end: { line: 1, column: 18 }
5943
}
5944
}],
5945
range: [0, 18],
5946
loc: {
5947
start: { line: 1, column: 0 },
5948
end: { line: 1, column: 18 }
5949
},
5950
tokens: [{
5951
type: 'Keyword',
5952
value: 'var',
5953
range: [0, 3],
5954
loc: {
5955
start: { line: 1, column: 0 },
5956
end: { line: 1, column: 3 }
5957
}
5958
}, {
5959
type: 'Identifier',
5960
value: 'x',
5961
range: [4, 5],
5962
loc: {
5963
start: { line: 1, column: 4 },
5964
end: { line: 1, column: 5 }
5965
}
5966
}, {
5967
type: 'Punctuator',
5968
value: '=',
5969
range: [6, 7],
5970
loc: {
5971
start: { line: 1, column: 6 },
5972
end: { line: 1, column: 7 }
5973
}
5974
}, {
5975
type: 'RegularExpression',
5976
value: '/foo\\/bar/',
5977
regex: {
5978
pattern: 'foo\\/bar',
5979
flags: ''
5980
},
5981
range: [8, 18],
5982
loc: {
5983
start: { line: 1, column: 8 },
5984
end: { line: 1, column: 18 }
5985
}
5986
}]
5987
},
5988
5989
'var x = /=([^=\\s])+/g': {
5990
type: 'Program',
5991
body: [{
5992
type: 'VariableDeclaration',
5993
declarations: [{
5994
type: 'VariableDeclarator',
5995
id: {
5996
type: 'Identifier',
5997
name: 'x',
5998
range: [4, 5],
5999
loc: {
6000
start: { line: 1, column: 4 },
6001
end: { line: 1, column: 5 }
6002
}
6003
},
6004
init: {
6005
type: 'Literal',
6006
value: '/=([^=\\s])+/g',
6007
raw: '/=([^=\\s])+/g',
6008
regex: {
6009
pattern: '=([^=\\s])+',
6010
flags: 'g'
6011
},
6012
range: [8, 21],
6013
loc: {
6014
start: { line: 1, column: 8 },
6015
end: { line: 1, column: 21 }
6016
}
6017
},
6018
range: [4, 21],
6019
loc: {
6020
start: { line: 1, column: 4 },
6021
end: { line: 1, column: 21 }
6022
}
6023
}],
6024
kind: 'var',
6025
range: [0, 21],
6026
loc: {
6027
start: { line: 1, column: 0 },
6028
end: { line: 1, column: 21 }
6029
}
6030
}],
6031
range: [0, 21],
6032
loc: {
6033
start: { line: 1, column: 0 },
6034
end: { line: 1, column: 21 }
6035
},
6036
tokens: [{
6037
type: 'Keyword',
6038
value: 'var',
6039
range: [0, 3],
6040
loc: {
6041
start: { line: 1, column: 0 },
6042
end: { line: 1, column: 3 }
6043
}
6044
}, {
6045
type: 'Identifier',
6046
value: 'x',
6047
range: [4, 5],
6048
loc: {
6049
start: { line: 1, column: 4 },
6050
end: { line: 1, column: 5 }
6051
}
6052
}, {
6053
type: 'Punctuator',
6054
value: '=',
6055
range: [6, 7],
6056
loc: {
6057
start: { line: 1, column: 6 },
6058
end: { line: 1, column: 7 }
6059
}
6060
}, {
6061
type: 'RegularExpression',
6062
value: '/=([^=\\s])+/g',
6063
regex: {
6064
pattern: '=([^=\\s])+',
6065
flags: 'g'
6066
},
6067
range: [8, 21],
6068
loc: {
6069
start: { line: 1, column: 8 },
6070
end: { line: 1, column: 21 }
6071
}
6072
}]
6073
},
6074
6075
'var x = /42/g.test': {
6076
type: 'VariableDeclaration',
6077
declarations: [{
6078
type: 'VariableDeclarator',
6079
id: {
6080
type: 'Identifier',
6081
name: 'x',
6082
range: [4, 5],
6083
loc: {
6084
start: { line: 1, column: 4 },
6085
end: { line: 1, column: 5 }
6086
}
6087
},
6088
init: {
6089
type: 'MemberExpression',
6090
computed: false,
6091
object: {
6092
type: 'Literal',
6093
value: '/42/g',
6094
raw: '/42/g',
6095
regex: {
6096
pattern: '42',
6097
flags: 'g'
6098
},
6099
range: [8, 13],
6100
loc: {
6101
start: { line: 1, column: 8 },
6102
end: { line: 1, column: 13 }
6103
}
6104
},
6105
property: {
6106
type: 'Identifier',
6107
name: 'test',
6108
range: [14, 18],
6109
loc: {
6110
start: { line: 1, column: 14 },
6111
end: { line: 1, column: 18 }
6112
}
6113
},
6114
range: [8, 18],
6115
loc: {
6116
start: { line: 1, column: 8 },
6117
end: { line: 1, column: 18 }
6118
}
6119
},
6120
range: [4, 18],
6121
loc: {
6122
start: { line: 1, column: 4 },
6123
end: { line: 1, column: 18 }
6124
}
6125
}],
6126
kind: 'var',
6127
range: [0, 18],
6128
loc: {
6129
start: { line: 1, column: 0 },
6130
end: { line: 1, column: 18 }
6131
}
6132
}
6133
6134
},
6135
6136
'Left-Hand-Side Expression': {
6137
6138
'new Button': {
6139
type: 'ExpressionStatement',
6140
expression: {
6141
type: 'NewExpression',
6142
callee: {
6143
type: 'Identifier',
6144
name: 'Button',
6145
range: [4, 10],
6146
loc: {
6147
start: { line: 1, column: 4 },
6148
end: { line: 1, column: 10 }
6149
}
6150
},
6151
'arguments': [],
6152
range: [0, 10],
6153
loc: {
6154
start: { line: 1, column: 0 },
6155
end: { line: 1, column: 10 }
6156
}
6157
},
6158
range: [0, 10],
6159
loc: {
6160
start: { line: 1, column: 0 },
6161
end: { line: 1, column: 10 }
6162
}
6163
},
6164
6165
'new Button()': {
6166
type: 'ExpressionStatement',
6167
expression: {
6168
type: 'NewExpression',
6169
callee: {
6170
type: 'Identifier',
6171
name: 'Button',
6172
range: [4, 10],
6173
loc: {
6174
start: { line: 1, column: 4 },
6175
end: { line: 1, column: 10 }
6176
}
6177
},
6178
'arguments': [],
6179
range: [0, 12],
6180
loc: {
6181
start: { line: 1, column: 0 },
6182
end: { line: 1, column: 12 }
6183
}
6184
},
6185
range: [0, 12],
6186
loc: {
6187
start: { line: 1, column: 0 },
6188
end: { line: 1, column: 12 }
6189
}
6190
},
6191
6192
'new new foo': {
6193
type: 'ExpressionStatement',
6194
expression: {
6195
type: 'NewExpression',
6196
callee: {
6197
type: 'NewExpression',
6198
callee: {
6199
type: 'Identifier',
6200
name: 'foo',
6201
range: [8, 11],
6202
loc: {
6203
start: { line: 1, column: 8 },
6204
end: { line: 1, column: 11 }
6205
}
6206
},
6207
'arguments': [],
6208
range: [4, 11],
6209
loc: {
6210
start: { line: 1, column: 4 },
6211
end: { line: 1, column: 11 }
6212
}
6213
},
6214
'arguments': [],
6215
range: [0, 11],
6216
loc: {
6217
start: { line: 1, column: 0 },
6218
end: { line: 1, column: 11 }
6219
}
6220
},
6221
range: [0, 11],
6222
loc: {
6223
start: { line: 1, column: 0 },
6224
end: { line: 1, column: 11 }
6225
}
6226
},
6227
6228
'new new foo()': {
6229
type: 'ExpressionStatement',
6230
expression: {
6231
type: 'NewExpression',
6232
callee: {
6233
type: 'NewExpression',
6234
callee: {
6235
type: 'Identifier',
6236
name: 'foo',
6237
range: [8, 11],
6238
loc: {
6239
start: { line: 1, column: 8 },
6240
end: { line: 1, column: 11 }
6241
}
6242
},
6243
'arguments': [],
6244
range: [4, 13],
6245
loc: {
6246
start: { line: 1, column: 4 },
6247
end: { line: 1, column: 13 }
6248
}
6249
},
6250
'arguments': [],
6251
range: [0, 13],
6252
loc: {
6253
start: { line: 1, column: 0 },
6254
end: { line: 1, column: 13 }
6255
}
6256
},
6257
range: [0, 13],
6258
loc: {
6259
start: { line: 1, column: 0 },
6260
end: { line: 1, column: 13 }
6261
}
6262
},
6263
6264
'new foo().bar()': {
6265
type: 'ExpressionStatement',
6266
expression: {
6267
type: 'CallExpression',
6268
callee: {
6269
type: 'MemberExpression',
6270
computed: false,
6271
object: {
6272
type: 'NewExpression',
6273
callee: {
6274
type: 'Identifier',
6275
name: 'foo',
6276
range: [4, 7],
6277
loc: {
6278
start: { line: 1, column: 4 },
6279
end: { line: 1, column: 7 }
6280
}
6281
},
6282
'arguments': [],
6283
range: [0, 9],
6284
loc: {
6285
start: { line: 1, column: 0 },
6286
end: { line: 1, column: 9 }
6287
}
6288
},
6289
property: {
6290
type: 'Identifier',
6291
name: 'bar',
6292
range: [10, 13],
6293
loc: {
6294
start: { line: 1, column: 10 },
6295
end: { line: 1, column: 13 }
6296
}
6297
},
6298
range: [0, 13],
6299
loc: {
6300
start: { line: 1, column: 0 },
6301
end: { line: 1, column: 13 }
6302
}
6303
},
6304
'arguments': [],
6305
range: [0, 15],
6306
loc: {
6307
start: { line: 1, column: 0 },
6308
end: { line: 1, column: 15 }
6309
}
6310
},
6311
range: [0, 15],
6312
loc: {
6313
start: { line: 1, column: 0 },
6314
end: { line: 1, column: 15 }
6315
}
6316
},
6317
6318
'new foo[bar]': {
6319
type: 'ExpressionStatement',
6320
expression: {
6321
type: 'NewExpression',
6322
callee: {
6323
type: 'MemberExpression',
6324
computed: true,
6325
object: {
6326
type: 'Identifier',
6327
name: 'foo',
6328
range: [4, 7],
6329
loc: {
6330
start: { line: 1, column: 4 },
6331
end: { line: 1, column: 7 }
6332
}
6333
},
6334
property: {
6335
type: 'Identifier',
6336
name: 'bar',
6337
range: [8, 11],
6338
loc: {
6339
start: { line: 1, column: 8 },
6340
end: { line: 1, column: 11 }
6341
}
6342
},
6343
range: [4, 12],
6344
loc: {
6345
start: { line: 1, column: 4 },
6346
end: { line: 1, column: 12 }
6347
}
6348
},
6349
'arguments': [],
6350
range: [0, 12],
6351
loc: {
6352
start: { line: 1, column: 0 },
6353
end: { line: 1, column: 12 }
6354
}
6355
},
6356
range: [0, 12],
6357
loc: {
6358
start: { line: 1, column: 0 },
6359
end: { line: 1, column: 12 }
6360
}
6361
},
6362
6363
'new foo.bar()': {
6364
type: 'ExpressionStatement',
6365
expression: {
6366
type: 'NewExpression',
6367
callee: {
6368
type: 'MemberExpression',
6369
computed: false,
6370
object: {
6371
type: 'Identifier',
6372
name: 'foo',
6373
range: [4, 7],
6374
loc: {
6375
start: { line: 1, column: 4 },
6376
end: { line: 1, column: 7 }
6377
}
6378
},
6379
property: {
6380
type: 'Identifier',
6381
name: 'bar',
6382
range: [8, 11],
6383
loc: {
6384
start: { line: 1, column: 8 },
6385
end: { line: 1, column: 11 }
6386
}
6387
},
6388
range: [4, 11],
6389
loc: {
6390
start: { line: 1, column: 4 },
6391
end: { line: 1, column: 11 }
6392
}
6393
},
6394
'arguments': [],
6395
range: [0, 13],
6396
loc: {
6397
start: { line: 1, column: 0 },
6398
end: { line: 1, column: 13 }
6399
}
6400
},
6401
range: [0, 13],
6402
loc: {
6403
start: { line: 1, column: 0 },
6404
end: { line: 1, column: 13 }
6405
}
6406
},
6407
6408
'( new foo).bar()': {
6409
type: 'ExpressionStatement',
6410
expression: {
6411
type: 'CallExpression',
6412
callee: {
6413
type: 'MemberExpression',
6414
computed: false,
6415
object: {
6416
type: 'NewExpression',
6417
callee: {
6418
type: 'Identifier',
6419
name: 'foo',
6420
range: [6, 9],
6421
loc: {
6422
start: { line: 1, column: 6 },
6423
end: { line: 1, column: 9 }
6424
}
6425
},
6426
'arguments': [],
6427
range: [2, 9],
6428
loc: {
6429
start: { line: 1, column: 2 },
6430
end: { line: 1, column: 9 }
6431
}
6432
},
6433
property: {
6434
type: 'Identifier',
6435
name: 'bar',
6436
range: [11, 14],
6437
loc: {
6438
start: { line: 1, column: 11 },
6439
end: { line: 1, column: 14 }
6440
}
6441
},
6442
range: [0, 14],
6443
loc: {
6444
start: { line: 1, column: 0 },
6445
end: { line: 1, column: 14 }
6446
}
6447
},
6448
'arguments': [],
6449
range: [0, 16],
6450
loc: {
6451
start: { line: 1, column: 0 },
6452
end: { line: 1, column: 16 }
6453
}
6454
},
6455
range: [0, 16],
6456
loc: {
6457
start: { line: 1, column: 0 },
6458
end: { line: 1, column: 16 }
6459
}
6460
},
6461
6462
'foo(bar, baz)': {
6463
type: 'ExpressionStatement',
6464
expression: {
6465
type: 'CallExpression',
6466
callee: {
6467
type: 'Identifier',
6468
name: 'foo',
6469
range: [0, 3],
6470
loc: {
6471
start: { line: 1, column: 0 },
6472
end: { line: 1, column: 3 }
6473
}
6474
},
6475
'arguments': [{
6476
type: 'Identifier',
6477
name: 'bar',
6478
range: [4, 7],
6479
loc: {
6480
start: { line: 1, column: 4 },
6481
end: { line: 1, column: 7 }
6482
}
6483
}, {
6484
type: 'Identifier',
6485
name: 'baz',
6486
range: [9, 12],
6487
loc: {
6488
start: { line: 1, column: 9 },
6489
end: { line: 1, column: 12 }
6490
}
6491
}],
6492
range: [0, 13],
6493
loc: {
6494
start: { line: 1, column: 0 },
6495
end: { line: 1, column: 13 }
6496
}
6497
},
6498
range: [0, 13],
6499
loc: {
6500
start: { line: 1, column: 0 },
6501
end: { line: 1, column: 13 }
6502
}
6503
},
6504
6505
'( foo )()': {
6506
type: 'ExpressionStatement',
6507
expression: {
6508
type: 'CallExpression',
6509
callee: {
6510
type: 'Identifier',
6511
name: 'foo',
6512
range: [5, 8],
6513
loc: {
6514
start: { line: 1, column: 5 },
6515
end: { line: 1, column: 8 }
6516
}
6517
},
6518
'arguments': [],
6519
range: [0, 13],
6520
loc: {
6521
start: { line: 1, column: 0 },
6522
end: { line: 1, column: 13 }
6523
}
6524
},
6525
range: [0, 13],
6526
loc: {
6527
start: { line: 1, column: 0 },
6528
end: { line: 1, column: 13 }
6529
}
6530
},
6531
6532
'universe.milkyway': {
6533
type: 'ExpressionStatement',
6534
expression: {
6535
type: 'MemberExpression',
6536
computed: false,
6537
object: {
6538
type: 'Identifier',
6539
name: 'universe',
6540
range: [0, 8],
6541
loc: {
6542
start: { line: 1, column: 0 },
6543
end: { line: 1, column: 8 }
6544
}
6545
},
6546
property: {
6547
type: 'Identifier',
6548
name: 'milkyway',
6549
range: [9, 17],
6550
loc: {
6551
start: { line: 1, column: 9 },
6552
end: { line: 1, column: 17 }
6553
}
6554
},
6555
range: [0, 17],
6556
loc: {
6557
start: { line: 1, column: 0 },
6558
end: { line: 1, column: 17 }
6559
}
6560
},
6561
range: [0, 17],
6562
loc: {
6563
start: { line: 1, column: 0 },
6564
end: { line: 1, column: 17 }
6565
}
6566
},
6567
6568
'universe.milkyway.solarsystem': {
6569
type: 'ExpressionStatement',
6570
expression: {
6571
type: 'MemberExpression',
6572
computed: false,
6573
object: {
6574
type: 'MemberExpression',
6575
computed: false,
6576
object: {
6577
type: 'Identifier',
6578
name: 'universe',
6579
range: [0, 8],
6580
loc: {
6581
start: { line: 1, column: 0 },
6582
end: { line: 1, column: 8 }
6583
}
6584
},
6585
property: {
6586
type: 'Identifier',
6587
name: 'milkyway',
6588
range: [9, 17],
6589
loc: {
6590
start: { line: 1, column: 9 },
6591
end: { line: 1, column: 17 }
6592
}
6593
},
6594
range: [0, 17],
6595
loc: {
6596
start: { line: 1, column: 0 },
6597
end: { line: 1, column: 17 }
6598
}
6599
},
6600
property: {
6601
type: 'Identifier',
6602
name: 'solarsystem',
6603
range: [18, 29],
6604
loc: {
6605
start: { line: 1, column: 18 },
6606
end: { line: 1, column: 29 }
6607
}
6608
},
6609
range: [0, 29],
6610
loc: {
6611
start: { line: 1, column: 0 },
6612
end: { line: 1, column: 29 }
6613
}
6614
},
6615
range: [0, 29],
6616
loc: {
6617
start: { line: 1, column: 0 },
6618
end: { line: 1, column: 29 }
6619
}
6620
},
6621
6622
'universe.milkyway.solarsystem.Earth': {
6623
type: 'ExpressionStatement',
6624
expression: {
6625
type: 'MemberExpression',
6626
computed: false,
6627
object: {
6628
type: 'MemberExpression',
6629
computed: false,
6630
object: {
6631
type: 'MemberExpression',
6632
computed: false,
6633
object: {
6634
type: 'Identifier',
6635
name: 'universe',
6636
range: [0, 8],
6637
loc: {
6638
start: { line: 1, column: 0 },
6639
end: { line: 1, column: 8 }
6640
}
6641
},
6642
property: {
6643
type: 'Identifier',
6644
name: 'milkyway',
6645
range: [9, 17],
6646
loc: {
6647
start: { line: 1, column: 9 },
6648
end: { line: 1, column: 17 }
6649
}
6650
},
6651
range: [0, 17],
6652
loc: {
6653
start: { line: 1, column: 0 },
6654
end: { line: 1, column: 17 }
6655
}
6656
},
6657
property: {
6658
type: 'Identifier',
6659
name: 'solarsystem',
6660
range: [18, 29],
6661
loc: {
6662
start: { line: 1, column: 18 },
6663
end: { line: 1, column: 29 }
6664
}
6665
},
6666
range: [0, 29],
6667
loc: {
6668
start: { line: 1, column: 0 },
6669
end: { line: 1, column: 29 }
6670
}
6671
},
6672
property: {
6673
type: 'Identifier',
6674
name: 'Earth',
6675
range: [30, 35],
6676
loc: {
6677
start: { line: 1, column: 30 },
6678
end: { line: 1, column: 35 }
6679
}
6680
},
6681
range: [0, 35],
6682
loc: {
6683
start: { line: 1, column: 0 },
6684
end: { line: 1, column: 35 }
6685
}
6686
},
6687
range: [0, 35],
6688
loc: {
6689
start: { line: 1, column: 0 },
6690
end: { line: 1, column: 35 }
6691
}
6692
},
6693
6694
'universe[galaxyName, otherUselessName]': {
6695
type: 'ExpressionStatement',
6696
expression: {
6697
type: 'MemberExpression',
6698
computed: true,
6699
object: {
6700
type: 'Identifier',
6701
name: 'universe',
6702
range: [0, 8],
6703
loc: {
6704
start: { line: 1, column: 0 },
6705
end: { line: 1, column: 8 }
6706
}
6707
},
6708
property: {
6709
type: 'SequenceExpression',
6710
expressions: [{
6711
type: 'Identifier',
6712
name: 'galaxyName',
6713
range: [9, 19],
6714
loc: {
6715
start: { line: 1, column: 9 },
6716
end: { line: 1, column: 19 }
6717
}
6718
}, {
6719
type: 'Identifier',
6720
name: 'otherUselessName',
6721
range: [21, 37],
6722
loc: {
6723
start: { line: 1, column: 21 },
6724
end: { line: 1, column: 37 }
6725
}
6726
}],
6727
range: [9, 37],
6728
loc: {
6729
start: { line: 1, column: 9 },
6730
end: { line: 1, column: 37 }
6731
}
6732
},
6733
range: [0, 38],
6734
loc: {
6735
start: { line: 1, column: 0 },
6736
end: { line: 1, column: 38 }
6737
}
6738
},
6739
range: [0, 38],
6740
loc: {
6741
start: { line: 1, column: 0 },
6742
end: { line: 1, column: 38 }
6743
}
6744
},
6745
6746
'universe[galaxyName]': {
6747
type: 'ExpressionStatement',
6748
expression: {
6749
type: 'MemberExpression',
6750
computed: true,
6751
object: {
6752
type: 'Identifier',
6753
name: 'universe',
6754
range: [0, 8],
6755
loc: {
6756
start: { line: 1, column: 0 },
6757
end: { line: 1, column: 8 }
6758
}
6759
},
6760
property: {
6761
type: 'Identifier',
6762
name: 'galaxyName',
6763
range: [9, 19],
6764
loc: {
6765
start: { line: 1, column: 9 },
6766
end: { line: 1, column: 19 }
6767
}
6768
},
6769
range: [0, 20],
6770
loc: {
6771
start: { line: 1, column: 0 },
6772
end: { line: 1, column: 20 }
6773
}
6774
},
6775
range: [0, 20],
6776
loc: {
6777
start: { line: 1, column: 0 },
6778
end: { line: 1, column: 20 }
6779
}
6780
},
6781
6782
'universe[42].galaxies': {
6783
type: 'ExpressionStatement',
6784
expression: {
6785
type: 'MemberExpression',
6786
computed: false,
6787
object: {
6788
type: 'MemberExpression',
6789
computed: true,
6790
object: {
6791
type: 'Identifier',
6792
name: 'universe',
6793
range: [0, 8],
6794
loc: {
6795
start: { line: 1, column: 0 },
6796
end: { line: 1, column: 8 }
6797
}
6798
},
6799
property: {
6800
type: 'Literal',
6801
value: 42,
6802
raw: '42',
6803
range: [9, 11],
6804
loc: {
6805
start: { line: 1, column: 9 },
6806
end: { line: 1, column: 11 }
6807
}
6808
},
6809
range: [0, 12],
6810
loc: {
6811
start: { line: 1, column: 0 },
6812
end: { line: 1, column: 12 }
6813
}
6814
},
6815
property: {
6816
type: 'Identifier',
6817
name: 'galaxies',
6818
range: [13, 21],
6819
loc: {
6820
start: { line: 1, column: 13 },
6821
end: { line: 1, column: 21 }
6822
}
6823
},
6824
range: [0, 21],
6825
loc: {
6826
start: { line: 1, column: 0 },
6827
end: { line: 1, column: 21 }
6828
}
6829
},
6830
range: [0, 21],
6831
loc: {
6832
start: { line: 1, column: 0 },
6833
end: { line: 1, column: 21 }
6834
}
6835
},
6836
6837
'universe(42).galaxies': {
6838
type: 'ExpressionStatement',
6839
expression: {
6840
type: 'MemberExpression',
6841
computed: false,
6842
object: {
6843
type: 'CallExpression',
6844
callee: {
6845
type: 'Identifier',
6846
name: 'universe',
6847
range: [0, 8],
6848
loc: {
6849
start: { line: 1, column: 0 },
6850
end: { line: 1, column: 8 }
6851
}
6852
},
6853
'arguments': [{
6854
type: 'Literal',
6855
value: 42,
6856
raw: '42',
6857
range: [9, 11],
6858
loc: {
6859
start: { line: 1, column: 9 },
6860
end: { line: 1, column: 11 }
6861
}
6862
}],
6863
range: [0, 12],
6864
loc: {
6865
start: { line: 1, column: 0 },
6866
end: { line: 1, column: 12 }
6867
}
6868
},
6869
property: {
6870
type: 'Identifier',
6871
name: 'galaxies',
6872
range: [13, 21],
6873
loc: {
6874
start: { line: 1, column: 13 },
6875
end: { line: 1, column: 21 }
6876
}
6877
},
6878
range: [0, 21],
6879
loc: {
6880
start: { line: 1, column: 0 },
6881
end: { line: 1, column: 21 }
6882
}
6883
},
6884
range: [0, 21],
6885
loc: {
6886
start: { line: 1, column: 0 },
6887
end: { line: 1, column: 21 }
6888
}
6889
},
6890
6891
'universe(42).galaxies(14, 3, 77).milkyway': {
6892
type: 'ExpressionStatement',
6893
expression: {
6894
type: 'MemberExpression',
6895
computed: false,
6896
object: {
6897
type: 'CallExpression',
6898
callee: {
6899
type: 'MemberExpression',
6900
computed: false,
6901
object: {
6902
type: 'CallExpression',
6903
callee: {
6904
type: 'Identifier',
6905
name: 'universe',
6906
range: [0, 8],
6907
loc: {
6908
start: { line: 1, column: 0 },
6909
end: { line: 1, column: 8 }
6910
}
6911
},
6912
'arguments': [{
6913
type: 'Literal',
6914
value: 42,
6915
raw: '42',
6916
range: [9, 11],
6917
loc: {
6918
start: { line: 1, column: 9 },
6919
end: { line: 1, column: 11 }
6920
}
6921
}],
6922
range: [0, 12],
6923
loc: {
6924
start: { line: 1, column: 0 },
6925
end: { line: 1, column: 12 }
6926
}
6927
},
6928
property: {
6929
type: 'Identifier',
6930
name: 'galaxies',
6931
range: [13, 21],
6932
loc: {
6933
start: { line: 1, column: 13 },
6934
end: { line: 1, column: 21 }
6935
}
6936
},
6937
range: [0, 21],
6938
loc: {
6939
start: { line: 1, column: 0 },
6940
end: { line: 1, column: 21 }
6941
}
6942
},
6943
'arguments': [{
6944
type: 'Literal',
6945
value: 14,
6946
raw: '14',
6947
range: [22, 24],
6948
loc: {
6949
start: { line: 1, column: 22 },
6950
end: { line: 1, column: 24 }
6951
}
6952
}, {
6953
type: 'Literal',
6954
value: 3,
6955
raw: '3',
6956
range: [26, 27],
6957
loc: {
6958
start: { line: 1, column: 26 },
6959
end: { line: 1, column: 27 }
6960
}
6961
}, {
6962
type: 'Literal',
6963
value: 77,
6964
raw: '77',
6965
range: [29, 31],
6966
loc: {
6967
start: { line: 1, column: 29 },
6968
end: { line: 1, column: 31 }
6969
}
6970
}],
6971
range: [0, 32],
6972
loc: {
6973
start: { line: 1, column: 0 },
6974
end: { line: 1, column: 32 }
6975
}
6976
},
6977
property: {
6978
type: 'Identifier',
6979
name: 'milkyway',
6980
range: [33, 41],
6981
loc: {
6982
start: { line: 1, column: 33 },
6983
end: { line: 1, column: 41 }
6984
}
6985
},
6986
range: [0, 41],
6987
loc: {
6988
start: { line: 1, column: 0 },
6989
end: { line: 1, column: 41 }
6990
}
6991
},
6992
range: [0, 41],
6993
loc: {
6994
start: { line: 1, column: 0 },
6995
end: { line: 1, column: 41 }
6996
}
6997
},
6998
6999
'earth.asia.Indonesia.prepareForElection(2014)': {
7000
type: 'ExpressionStatement',
7001
expression: {
7002
type: 'CallExpression',
7003
callee: {
7004
type: 'MemberExpression',
7005
computed: false,
7006
object: {
7007
type: 'MemberExpression',
7008
computed: false,
7009
object: {
7010
type: 'MemberExpression',
7011
computed: false,
7012
object: {
7013
type: 'Identifier',
7014
name: 'earth',
7015
range: [0, 5],
7016
loc: {
7017
start: { line: 1, column: 0 },
7018
end: { line: 1, column: 5 }
7019
}
7020
},
7021
property: {
7022
type: 'Identifier',
7023
name: 'asia',
7024
range: [6, 10],
7025
loc: {
7026
start: { line: 1, column: 6 },
7027
end: { line: 1, column: 10 }
7028
}
7029
},
7030
range: [0, 10],
7031
loc: {
7032
start: { line: 1, column: 0 },
7033
end: { line: 1, column: 10 }
7034
}
7035
},
7036
property: {
7037
type: 'Identifier',
7038
name: 'Indonesia',
7039
range: [11, 20],
7040
loc: {
7041
start: { line: 1, column: 11 },
7042
end: { line: 1, column: 20 }
7043
}
7044
},
7045
range: [0, 20],
7046
loc: {
7047
start: { line: 1, column: 0 },
7048
end: { line: 1, column: 20 }
7049
}
7050
},
7051
property: {
7052
type: 'Identifier',
7053
name: 'prepareForElection',
7054
range: [21, 39],
7055
loc: {
7056
start: { line: 1, column: 21 },
7057
end: { line: 1, column: 39 }
7058
}
7059
},
7060
range: [0, 39],
7061
loc: {
7062
start: { line: 1, column: 0 },
7063
end: { line: 1, column: 39 }
7064
}
7065
},
7066
'arguments': [{
7067
type: 'Literal',
7068
value: 2014,
7069
raw: '2014',
7070
range: [40, 44],
7071
loc: {
7072
start: { line: 1, column: 40 },
7073
end: { line: 1, column: 44 }
7074
}
7075
}],
7076
range: [0, 45],
7077
loc: {
7078
start: { line: 1, column: 0 },
7079
end: { line: 1, column: 45 }
7080
}
7081
},
7082
range: [0, 45],
7083
loc: {
7084
start: { line: 1, column: 0 },
7085
end: { line: 1, column: 45 }
7086
}
7087
},
7088
7089
'universe.if': {
7090
type: 'ExpressionStatement',
7091
expression: {
7092
type: 'MemberExpression',
7093
computed: false,
7094
object: {
7095
type: 'Identifier',
7096
name: 'universe',
7097
range: [0, 8],
7098
loc: {
7099
start: { line: 1, column: 0 },
7100
end: { line: 1, column: 8 }
7101
}
7102
},
7103
property: {
7104
type: 'Identifier',
7105
name: 'if',
7106
range: [9, 11],
7107
loc: {
7108
start: { line: 1, column: 9 },
7109
end: { line: 1, column: 11 }
7110
}
7111
},
7112
range: [0, 11],
7113
loc: {
7114
start: { line: 1, column: 0 },
7115
end: { line: 1, column: 11 }
7116
}
7117
},
7118
range: [0, 11],
7119
loc: {
7120
start: { line: 1, column: 0 },
7121
end: { line: 1, column: 11 }
7122
}
7123
},
7124
7125
'universe.true': {
7126
type: 'ExpressionStatement',
7127
expression: {
7128
type: 'MemberExpression',
7129
computed: false,
7130
object: {
7131
type: 'Identifier',
7132
name: 'universe',
7133
range: [0, 8],
7134
loc: {
7135
start: { line: 1, column: 0 },
7136
end: { line: 1, column: 8 }
7137
}
7138
},
7139
property: {
7140
type: 'Identifier',
7141
name: 'true',
7142
range: [9, 13],
7143
loc: {
7144
start: { line: 1, column: 9 },
7145
end: { line: 1, column: 13 }
7146
}
7147
},
7148
range: [0, 13],
7149
loc: {
7150
start: { line: 1, column: 0 },
7151
end: { line: 1, column: 13 }
7152
}
7153
},
7154
range: [0, 13],
7155
loc: {
7156
start: { line: 1, column: 0 },
7157
end: { line: 1, column: 13 }
7158
}
7159
},
7160
7161
'universe.false': {
7162
type: 'ExpressionStatement',
7163
expression: {
7164
type: 'MemberExpression',
7165
computed: false,
7166
object: {
7167
type: 'Identifier',
7168
name: 'universe',
7169
range: [0, 8],
7170
loc: {
7171
start: { line: 1, column: 0 },
7172
end: { line: 1, column: 8 }
7173
}
7174
},
7175
property: {
7176
type: 'Identifier',
7177
name: 'false',
7178
range: [9, 14],
7179
loc: {
7180
start: { line: 1, column: 9 },
7181
end: { line: 1, column: 14 }
7182
}
7183
},
7184
range: [0, 14],
7185
loc: {
7186
start: { line: 1, column: 0 },
7187
end: { line: 1, column: 14 }
7188
}
7189
},
7190
range: [0, 14],
7191
loc: {
7192
start: { line: 1, column: 0 },
7193
end: { line: 1, column: 14 }
7194
}
7195
},
7196
7197
'universe.null': {
7198
type: 'ExpressionStatement',
7199
expression: {
7200
type: 'MemberExpression',
7201
computed: false,
7202
object: {
7203
type: 'Identifier',
7204
name: 'universe',
7205
range: [0, 8],
7206
loc: {
7207
start: { line: 1, column: 0 },
7208
end: { line: 1, column: 8 }
7209
}
7210
},
7211
property: {
7212
type: 'Identifier',
7213
name: 'null',
7214
range: [9, 13],
7215
loc: {
7216
start: { line: 1, column: 9 },
7217
end: { line: 1, column: 13 }
7218
}
7219
},
7220
range: [0, 13],
7221
loc: {
7222
start: { line: 1, column: 0 },
7223
end: { line: 1, column: 13 }
7224
}
7225
},
7226
range: [0, 13],
7227
loc: {
7228
start: { line: 1, column: 0 },
7229
end: { line: 1, column: 13 }
7230
}
7231
}
7232
7233
},
7234
7235
'Postfix Expressions': {
7236
7237
'x++': {
7238
type: 'ExpressionStatement',
7239
expression: {
7240
type: 'UpdateExpression',
7241
operator: '++',
7242
argument: {
7243
type: 'Identifier',
7244
name: 'x',
7245
range: [0, 1],
7246
loc: {
7247
start: { line: 1, column: 0 },
7248
end: { line: 1, column: 1 }
7249
}
7250
},
7251
prefix: false,
7252
range: [0, 3],
7253
loc: {
7254
start: { line: 1, column: 0 },
7255
end: { line: 1, column: 3 }
7256
}
7257
},
7258
range: [0, 3],
7259
loc: {
7260
start: { line: 1, column: 0 },
7261
end: { line: 1, column: 3 }
7262
}
7263
},
7264
7265
'x--': {
7266
type: 'ExpressionStatement',
7267
expression: {
7268
type: 'UpdateExpression',
7269
operator: '--',
7270
argument: {
7271
type: 'Identifier',
7272
name: 'x',
7273
range: [0, 1],
7274
loc: {
7275
start: { line: 1, column: 0 },
7276
end: { line: 1, column: 1 }
7277
}
7278
},
7279
prefix: false,
7280
range: [0, 3],
7281
loc: {
7282
start: { line: 1, column: 0 },
7283
end: { line: 1, column: 3 }
7284
}
7285
},
7286
range: [0, 3],
7287
loc: {
7288
start: { line: 1, column: 0 },
7289
end: { line: 1, column: 3 }
7290
}
7291
},
7292
7293
'eval++': {
7294
type: 'ExpressionStatement',
7295
expression: {
7296
type: 'UpdateExpression',
7297
operator: '++',
7298
argument: {
7299
type: 'Identifier',
7300
name: 'eval',
7301
range: [0, 4],
7302
loc: {
7303
start: { line: 1, column: 0 },
7304
end: { line: 1, column: 4 }
7305
}
7306
},
7307
prefix: false,
7308
range: [0, 6],
7309
loc: {
7310
start: { line: 1, column: 0 },
7311
end: { line: 1, column: 6 }
7312
}
7313
},
7314
range: [0, 6],
7315
loc: {
7316
start: { line: 1, column: 0 },
7317
end: { line: 1, column: 6 }
7318
}
7319
},
7320
7321
'eval--': {
7322
type: 'ExpressionStatement',
7323
expression: {
7324
type: 'UpdateExpression',
7325
operator: '--',
7326
argument: {
7327
type: 'Identifier',
7328
name: 'eval',
7329
range: [0, 4],
7330
loc: {
7331
start: { line: 1, column: 0 },
7332
end: { line: 1, column: 4 }
7333
}
7334
},
7335
prefix: false,
7336
range: [0, 6],
7337
loc: {
7338
start: { line: 1, column: 0 },
7339
end: { line: 1, column: 6 }
7340
}
7341
},
7342
range: [0, 6],
7343
loc: {
7344
start: { line: 1, column: 0 },
7345
end: { line: 1, column: 6 }
7346
}
7347
},
7348
7349
'arguments++': {
7350
type: 'ExpressionStatement',
7351
expression: {
7352
type: 'UpdateExpression',
7353
operator: '++',
7354
argument: {
7355
type: 'Identifier',
7356
name: 'arguments',
7357
range: [0, 9],
7358
loc: {
7359
start: { line: 1, column: 0 },
7360
end: { line: 1, column: 9 }
7361
}
7362
},
7363
prefix: false,
7364
range: [0, 11],
7365
loc: {
7366
start: { line: 1, column: 0 },
7367
end: { line: 1, column: 11 }
7368
}
7369
},
7370
range: [0, 11],
7371
loc: {
7372
start: { line: 1, column: 0 },
7373
end: { line: 1, column: 11 }
7374
}
7375
},
7376
7377
'arguments--': {
7378
type: 'ExpressionStatement',
7379
expression: {
7380
type: 'UpdateExpression',
7381
operator: '--',
7382
argument: {
7383
type: 'Identifier',
7384
name: 'arguments',
7385
range: [0, 9],
7386
loc: {
7387
start: { line: 1, column: 0 },
7388
end: { line: 1, column: 9 }
7389
}
7390
},
7391
prefix: false,
7392
range: [0, 11],
7393
loc: {
7394
start: { line: 1, column: 0 },
7395
end: { line: 1, column: 11 }
7396
}
7397
},
7398
range: [0, 11],
7399
loc: {
7400
start: { line: 1, column: 0 },
7401
end: { line: 1, column: 11 }
7402
}
7403
}
7404
7405
},
7406
7407
'Unary Operators': {
7408
7409
'++x': {
7410
type: 'ExpressionStatement',
7411
expression: {
7412
type: 'UpdateExpression',
7413
operator: '++',
7414
argument: {
7415
type: 'Identifier',
7416
name: 'x',
7417
range: [2, 3],
7418
loc: {
7419
start: { line: 1, column: 2 },
7420
end: { line: 1, column: 3 }
7421
}
7422
},
7423
prefix: true,
7424
range: [0, 3],
7425
loc: {
7426
start: { line: 1, column: 0 },
7427
end: { line: 1, column: 3 }
7428
}
7429
},
7430
range: [0, 3],
7431
loc: {
7432
start: { line: 1, column: 0 },
7433
end: { line: 1, column: 3 }
7434
}
7435
},
7436
7437
'--x': {
7438
type: 'ExpressionStatement',
7439
expression: {
7440
type: 'UpdateExpression',
7441
operator: '--',
7442
argument: {
7443
type: 'Identifier',
7444
name: 'x',
7445
range: [2, 3],
7446
loc: {
7447
start: { line: 1, column: 2 },
7448
end: { line: 1, column: 3 }
7449
}
7450
},
7451
prefix: true,
7452
range: [0, 3],
7453
loc: {
7454
start: { line: 1, column: 0 },
7455
end: { line: 1, column: 3 }
7456
}
7457
},
7458
range: [0, 3],
7459
loc: {
7460
start: { line: 1, column: 0 },
7461
end: { line: 1, column: 3 }
7462
}
7463
},
7464
7465
'++eval': {
7466
type: 'ExpressionStatement',
7467
expression: {
7468
type: 'UpdateExpression',
7469
operator: '++',
7470
argument: {
7471
type: 'Identifier',
7472
name: 'eval',
7473
range: [2, 6],
7474
loc: {
7475
start: { line: 1, column: 2 },
7476
end: { line: 1, column: 6 }
7477
}
7478
},
7479
prefix: true,
7480
range: [0, 6],
7481
loc: {
7482
start: { line: 1, column: 0 },
7483
end: { line: 1, column: 6 }
7484
}
7485
},
7486
range: [0, 6],
7487
loc: {
7488
start: { line: 1, column: 0 },
7489
end: { line: 1, column: 6 }
7490
}
7491
},
7492
7493
'--eval': {
7494
type: 'ExpressionStatement',
7495
expression: {
7496
type: 'UpdateExpression',
7497
operator: '--',
7498
argument: {
7499
type: 'Identifier',
7500
name: 'eval',
7501
range: [2, 6],
7502
loc: {
7503
start: { line: 1, column: 2 },
7504
end: { line: 1, column: 6 }
7505
}
7506
},
7507
prefix: true,
7508
range: [0, 6],
7509
loc: {
7510
start: { line: 1, column: 0 },
7511
end: { line: 1, column: 6 }
7512
}
7513
},
7514
range: [0, 6],
7515
loc: {
7516
start: { line: 1, column: 0 },
7517
end: { line: 1, column: 6 }
7518
}
7519
},
7520
7521
'++arguments': {
7522
type: 'ExpressionStatement',
7523
expression: {
7524
type: 'UpdateExpression',
7525
operator: '++',
7526
argument: {
7527
type: 'Identifier',
7528
name: 'arguments',
7529
range: [2, 11],
7530
loc: {
7531
start: { line: 1, column: 2 },
7532
end: { line: 1, column: 11 }
7533
}
7534
},
7535
prefix: true,
7536
range: [0, 11],
7537
loc: {
7538
start: { line: 1, column: 0 },
7539
end: { line: 1, column: 11 }
7540
}
7541
},
7542
range: [0, 11],
7543
loc: {
7544
start: { line: 1, column: 0 },
7545
end: { line: 1, column: 11 }
7546
}
7547
},
7548
7549
'--arguments': {
7550
type: 'ExpressionStatement',
7551
expression: {
7552
type: 'UpdateExpression',
7553
operator: '--',
7554
argument: {
7555
type: 'Identifier',
7556
name: 'arguments',
7557
range: [2, 11],
7558
loc: {
7559
start: { line: 1, column: 2 },
7560
end: { line: 1, column: 11 }
7561
}
7562
},
7563
prefix: true,
7564
range: [0, 11],
7565
loc: {
7566
start: { line: 1, column: 0 },
7567
end: { line: 1, column: 11 }
7568
}
7569
},
7570
range: [0, 11],
7571
loc: {
7572
start: { line: 1, column: 0 },
7573
end: { line: 1, column: 11 }
7574
}
7575
},
7576
7577
'+x': {
7578
type: 'ExpressionStatement',
7579
expression: {
7580
type: 'UnaryExpression',
7581
operator: '+',
7582
argument: {
7583
type: 'Identifier',
7584
name: 'x',
7585
range: [1, 2],
7586
loc: {
7587
start: { line: 1, column: 1 },
7588
end: { line: 1, column: 2 }
7589
}
7590
},
7591
prefix: true,
7592
range: [0, 2],
7593
loc: {
7594
start: { line: 1, column: 0 },
7595
end: { line: 1, column: 2 }
7596
}
7597
},
7598
range: [0, 2],
7599
loc: {
7600
start: { line: 1, column: 0 },
7601
end: { line: 1, column: 2 }
7602
}
7603
},
7604
7605
'-x': {
7606
type: 'ExpressionStatement',
7607
expression: {
7608
type: 'UnaryExpression',
7609
operator: '-',
7610
argument: {
7611
type: 'Identifier',
7612
name: 'x',
7613
range: [1, 2],
7614
loc: {
7615
start: { line: 1, column: 1 },
7616
end: { line: 1, column: 2 }
7617
}
7618
},
7619
prefix: true,
7620
range: [0, 2],
7621
loc: {
7622
start: { line: 1, column: 0 },
7623
end: { line: 1, column: 2 }
7624
}
7625
},
7626
range: [0, 2],
7627
loc: {
7628
start: { line: 1, column: 0 },
7629
end: { line: 1, column: 2 }
7630
}
7631
},
7632
7633
'~x': {
7634
type: 'ExpressionStatement',
7635
expression: {
7636
type: 'UnaryExpression',
7637
operator: '~',
7638
argument: {
7639
type: 'Identifier',
7640
name: 'x',
7641
range: [1, 2],
7642
loc: {
7643
start: { line: 1, column: 1 },
7644
end: { line: 1, column: 2 }
7645
}
7646
},
7647
prefix: true,
7648
range: [0, 2],
7649
loc: {
7650
start: { line: 1, column: 0 },
7651
end: { line: 1, column: 2 }
7652
}
7653
},
7654
range: [0, 2],
7655
loc: {
7656
start: { line: 1, column: 0 },
7657
end: { line: 1, column: 2 }
7658
}
7659
},
7660
7661
'!x': {
7662
type: 'ExpressionStatement',
7663
expression: {
7664
type: 'UnaryExpression',
7665
operator: '!',
7666
argument: {
7667
type: 'Identifier',
7668
name: 'x',
7669
range: [1, 2],
7670
loc: {
7671
start: { line: 1, column: 1 },
7672
end: { line: 1, column: 2 }
7673
}
7674
},
7675
prefix: true,
7676
range: [0, 2],
7677
loc: {
7678
start: { line: 1, column: 0 },
7679
end: { line: 1, column: 2 }
7680
}
7681
},
7682
range: [0, 2],
7683
loc: {
7684
start: { line: 1, column: 0 },
7685
end: { line: 1, column: 2 }
7686
}
7687
},
7688
7689
'void x': {
7690
type: 'ExpressionStatement',
7691
expression: {
7692
type: 'UnaryExpression',
7693
operator: 'void',
7694
argument: {
7695
type: 'Identifier',
7696
name: 'x',
7697
range: [5, 6],
7698
loc: {
7699
start: { line: 1, column: 5 },
7700
end: { line: 1, column: 6 }
7701
}
7702
},
7703
prefix: true,
7704
range: [0, 6],
7705
loc: {
7706
start: { line: 1, column: 0 },
7707
end: { line: 1, column: 6 }
7708
}
7709
},
7710
range: [0, 6],
7711
loc: {
7712
start: { line: 1, column: 0 },
7713
end: { line: 1, column: 6 }
7714
}
7715
},
7716
7717
'delete x': {
7718
type: 'ExpressionStatement',
7719
expression: {
7720
type: 'UnaryExpression',
7721
operator: 'delete',
7722
argument: {
7723
type: 'Identifier',
7724
name: 'x',
7725
range: [7, 8],
7726
loc: {
7727
start: { line: 1, column: 7 },
7728
end: { line: 1, column: 8 }
7729
}
7730
},
7731
prefix: true,
7732
range: [0, 8],
7733
loc: {
7734
start: { line: 1, column: 0 },
7735
end: { line: 1, column: 8 }
7736
}
7737
},
7738
range: [0, 8],
7739
loc: {
7740
start: { line: 1, column: 0 },
7741
end: { line: 1, column: 8 }
7742
}
7743
},
7744
7745
'typeof x': {
7746
type: 'ExpressionStatement',
7747
expression: {
7748
type: 'UnaryExpression',
7749
operator: 'typeof',
7750
argument: {
7751
type: 'Identifier',
7752
name: 'x',
7753
range: [7, 8],
7754
loc: {
7755
start: { line: 1, column: 7 },
7756
end: { line: 1, column: 8 }
7757
}
7758
},
7759
prefix: true,
7760
range: [0, 8],
7761
loc: {
7762
start: { line: 1, column: 0 },
7763
end: { line: 1, column: 8 }
7764
}
7765
},
7766
range: [0, 8],
7767
loc: {
7768
start: { line: 1, column: 0 },
7769
end: { line: 1, column: 8 }
7770
}
7771
}
7772
7773
},
7774
7775
'Multiplicative Operators': {
7776
7777
'x * y': {
7778
type: 'ExpressionStatement',
7779
expression: {
7780
type: 'BinaryExpression',
7781
operator: '*',
7782
left: {
7783
type: 'Identifier',
7784
name: 'x',
7785
range: [0, 1],
7786
loc: {
7787
start: { line: 1, column: 0 },
7788
end: { line: 1, column: 1 }
7789
}
7790
},
7791
right: {
7792
type: 'Identifier',
7793
name: 'y',
7794
range: [4, 5],
7795
loc: {
7796
start: { line: 1, column: 4 },
7797
end: { line: 1, column: 5 }
7798
}
7799
},
7800
range: [0, 5],
7801
loc: {
7802
start: { line: 1, column: 0 },
7803
end: { line: 1, column: 5 }
7804
}
7805
},
7806
range: [0, 5],
7807
loc: {
7808
start: { line: 1, column: 0 },
7809
end: { line: 1, column: 5 }
7810
}
7811
},
7812
7813
'x / y': {
7814
type: 'ExpressionStatement',
7815
expression: {
7816
type: 'BinaryExpression',
7817
operator: '/',
7818
left: {
7819
type: 'Identifier',
7820
name: 'x',
7821
range: [0, 1],
7822
loc: {
7823
start: { line: 1, column: 0 },
7824
end: { line: 1, column: 1 }
7825
}
7826
},
7827
right: {
7828
type: 'Identifier',
7829
name: 'y',
7830
range: [4, 5],
7831
loc: {
7832
start: { line: 1, column: 4 },
7833
end: { line: 1, column: 5 }
7834
}
7835
},
7836
range: [0, 5],
7837
loc: {
7838
start: { line: 1, column: 0 },
7839
end: { line: 1, column: 5 }
7840
}
7841
},
7842
range: [0, 5],
7843
loc: {
7844
start: { line: 1, column: 0 },
7845
end: { line: 1, column: 5 }
7846
}
7847
},
7848
7849
'x % y': {
7850
type: 'ExpressionStatement',
7851
expression: {
7852
type: 'BinaryExpression',
7853
operator: '%',
7854
left: {
7855
type: 'Identifier',
7856
name: 'x',
7857
range: [0, 1],
7858
loc: {
7859
start: { line: 1, column: 0 },
7860
end: { line: 1, column: 1 }
7861
}
7862
},
7863
right: {
7864
type: 'Identifier',
7865
name: 'y',
7866
range: [4, 5],
7867
loc: {
7868
start: { line: 1, column: 4 },
7869
end: { line: 1, column: 5 }
7870
}
7871
},
7872
range: [0, 5],
7873
loc: {
7874
start: { line: 1, column: 0 },
7875
end: { line: 1, column: 5 }
7876
}
7877
},
7878
range: [0, 5],
7879
loc: {
7880
start: { line: 1, column: 0 },
7881
end: { line: 1, column: 5 }
7882
}
7883
}
7884
7885
},
7886
7887
'Additive Operators': {
7888
7889
'x + y': {
7890
type: 'ExpressionStatement',
7891
expression: {
7892
type: 'BinaryExpression',
7893
operator: '+',
7894
left: {
7895
type: 'Identifier',
7896
name: 'x',
7897
range: [0, 1],
7898
loc: {
7899
start: { line: 1, column: 0 },
7900
end: { line: 1, column: 1 }
7901
}
7902
},
7903
right: {
7904
type: 'Identifier',
7905
name: 'y',
7906
range: [4, 5],
7907
loc: {
7908
start: { line: 1, column: 4 },
7909
end: { line: 1, column: 5 }
7910
}
7911
},
7912
range: [0, 5],
7913
loc: {
7914
start: { line: 1, column: 0 },
7915
end: { line: 1, column: 5 }
7916
}
7917
},
7918
range: [0, 5],
7919
loc: {
7920
start: { line: 1, column: 0 },
7921
end: { line: 1, column: 5 }
7922
}
7923
},
7924
7925
'x - y': {
7926
type: 'ExpressionStatement',
7927
expression: {
7928
type: 'BinaryExpression',
7929
operator: '-',
7930
left: {
7931
type: 'Identifier',
7932
name: 'x',
7933
range: [0, 1],
7934
loc: {
7935
start: { line: 1, column: 0 },
7936
end: { line: 1, column: 1 }
7937
}
7938
},
7939
right: {
7940
type: 'Identifier',
7941
name: 'y',
7942
range: [4, 5],
7943
loc: {
7944
start: { line: 1, column: 4 },
7945
end: { line: 1, column: 5 }
7946
}
7947
},
7948
range: [0, 5],
7949
loc: {
7950
start: { line: 1, column: 0 },
7951
end: { line: 1, column: 5 }
7952
}
7953
},
7954
range: [0, 5],
7955
loc: {
7956
start: { line: 1, column: 0 },
7957
end: { line: 1, column: 5 }
7958
}
7959
},
7960
7961
'"use strict" + 42': {
7962
type: 'ExpressionStatement',
7963
expression: {
7964
type: 'BinaryExpression',
7965
operator: '+',
7966
left: {
7967
type: 'Literal',
7968
value: 'use strict',
7969
raw: '"use strict"',
7970
range: [0, 12],
7971
loc: {
7972
start: { line: 1, column: 0 },
7973
end: { line: 1, column: 12 }
7974
}
7975
},
7976
right: {
7977
type: 'Literal',
7978
value: 42,
7979
raw: '42',
7980
range: [15, 17],
7981
loc: {
7982
start: { line: 1, column: 15 },
7983
end: { line: 1, column: 17 }
7984
}
7985
},
7986
range: [0, 17],
7987
loc: {
7988
start: { line: 1, column: 0 },
7989
end: { line: 1, column: 17 }
7990
}
7991
},
7992
range: [0, 17],
7993
loc: {
7994
start: { line: 1, column: 0 },
7995
end: { line: 1, column: 17 }
7996
}
7997
}
7998
7999
},
8000
8001
'Bitwise Shift Operator': {
8002
8003
'x << y': {
8004
type: 'ExpressionStatement',
8005
expression: {
8006
type: 'BinaryExpression',
8007
operator: '<<',
8008
left: {
8009
type: 'Identifier',
8010
name: 'x',
8011
range: [0, 1],
8012
loc: {
8013
start: { line: 1, column: 0 },
8014
end: { line: 1, column: 1 }
8015
}
8016
},
8017
right: {
8018
type: 'Identifier',
8019
name: 'y',
8020
range: [5, 6],
8021
loc: {
8022
start: { line: 1, column: 5 },
8023
end: { line: 1, column: 6 }
8024
}
8025
},
8026
range: [0, 6],
8027
loc: {
8028
start: { line: 1, column: 0 },
8029
end: { line: 1, column: 6 }
8030
}
8031
},
8032
range: [0, 6],
8033
loc: {
8034
start: { line: 1, column: 0 },
8035
end: { line: 1, column: 6 }
8036
}
8037
},
8038
8039
'x >> y': {
8040
type: 'ExpressionStatement',
8041
expression: {
8042
type: 'BinaryExpression',
8043
operator: '>>',
8044
left: {
8045
type: 'Identifier',
8046
name: 'x',
8047
range: [0, 1],
8048
loc: {
8049
start: { line: 1, column: 0 },
8050
end: { line: 1, column: 1 }
8051
}
8052
},
8053
right: {
8054
type: 'Identifier',
8055
name: 'y',
8056
range: [5, 6],
8057
loc: {
8058
start: { line: 1, column: 5 },
8059
end: { line: 1, column: 6 }
8060
}
8061
},
8062
range: [0, 6],
8063
loc: {
8064
start: { line: 1, column: 0 },
8065
end: { line: 1, column: 6 }
8066
}
8067
},
8068
range: [0, 6],
8069
loc: {
8070
start: { line: 1, column: 0 },
8071
end: { line: 1, column: 6 }
8072
}
8073
},
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: [6, 7],
8093
loc: {
8094
start: { line: 1, column: 6 },
8095
end: { line: 1, column: 7 }
8096
}
8097
},
8098
range: [0, 7],
8099
loc: {
8100
start: { line: 1, column: 0 },
8101
end: { line: 1, column: 7 }
8102
}
8103
},
8104
range: [0, 7],
8105
loc: {
8106
start: { line: 1, column: 0 },
8107
end: { line: 1, column: 7 }
8108
}
8109
}
8110
8111
},
8112
8113
'Relational Operators': {
8114
8115
'x < y': {
8116
type: 'ExpressionStatement',
8117
expression: {
8118
type: 'BinaryExpression',
8119
operator: '<',
8120
left: {
8121
type: 'Identifier',
8122
name: 'x',
8123
range: [0, 1],
8124
loc: {
8125
start: { line: 1, column: 0 },
8126
end: { line: 1, column: 1 }
8127
}
8128
},
8129
right: {
8130
type: 'Identifier',
8131
name: 'y',
8132
range: [4, 5],
8133
loc: {
8134
start: { line: 1, column: 4 },
8135
end: { line: 1, column: 5 }
8136
}
8137
},
8138
range: [0, 5],
8139
loc: {
8140
start: { line: 1, column: 0 },
8141
end: { line: 1, column: 5 }
8142
}
8143
},
8144
range: [0, 5],
8145
loc: {
8146
start: { line: 1, column: 0 },
8147
end: { line: 1, column: 5 }
8148
}
8149
},
8150
8151
'x > y': {
8152
type: 'ExpressionStatement',
8153
expression: {
8154
type: 'BinaryExpression',
8155
operator: '>',
8156
left: {
8157
type: 'Identifier',
8158
name: 'x',
8159
range: [0, 1],
8160
loc: {
8161
start: { line: 1, column: 0 },
8162
end: { line: 1, column: 1 }
8163
}
8164
},
8165
right: {
8166
type: 'Identifier',
8167
name: 'y',
8168
range: [4, 5],
8169
loc: {
8170
start: { line: 1, column: 4 },
8171
end: { line: 1, column: 5 }
8172
}
8173
},
8174
range: [0, 5],
8175
loc: {
8176
start: { line: 1, column: 0 },
8177
end: { line: 1, column: 5 }
8178
}
8179
},
8180
range: [0, 5],
8181
loc: {
8182
start: { line: 1, column: 0 },
8183
end: { line: 1, column: 5 }
8184
}
8185
},
8186
8187
'x <= y': {
8188
type: 'ExpressionStatement',
8189
expression: {
8190
type: 'BinaryExpression',
8191
operator: '<=',
8192
left: {
8193
type: 'Identifier',
8194
name: 'x',
8195
range: [0, 1],
8196
loc: {
8197
start: { line: 1, column: 0 },
8198
end: { line: 1, column: 1 }
8199
}
8200
},
8201
right: {
8202
type: 'Identifier',
8203
name: 'y',
8204
range: [5, 6],
8205
loc: {
8206
start: { line: 1, column: 5 },
8207
end: { line: 1, column: 6 }
8208
}
8209
},
8210
range: [0, 6],
8211
loc: {
8212
start: { line: 1, column: 0 },
8213
end: { line: 1, column: 6 }
8214
}
8215
},
8216
range: [0, 6],
8217
loc: {
8218
start: { line: 1, column: 0 },
8219
end: { line: 1, column: 6 }
8220
}
8221
},
8222
8223
'x >= y': {
8224
type: 'ExpressionStatement',
8225
expression: {
8226
type: 'BinaryExpression',
8227
operator: '>=',
8228
left: {
8229
type: 'Identifier',
8230
name: 'x',
8231
range: [0, 1],
8232
loc: {
8233
start: { line: 1, column: 0 },
8234
end: { line: 1, column: 1 }
8235
}
8236
},
8237
right: {
8238
type: 'Identifier',
8239
name: 'y',
8240
range: [5, 6],
8241
loc: {
8242
start: { line: 1, column: 5 },
8243
end: { line: 1, column: 6 }
8244
}
8245
},
8246
range: [0, 6],
8247
loc: {
8248
start: { line: 1, column: 0 },
8249
end: { line: 1, column: 6 }
8250
}
8251
},
8252
range: [0, 6],
8253
loc: {
8254
start: { line: 1, column: 0 },
8255
end: { line: 1, column: 6 }
8256
}
8257
},
8258
8259
'x in y': {
8260
type: 'ExpressionStatement',
8261
expression: {
8262
type: 'BinaryExpression',
8263
operator: 'in',
8264
left: {
8265
type: 'Identifier',
8266
name: 'x',
8267
range: [0, 1],
8268
loc: {
8269
start: { line: 1, column: 0 },
8270
end: { line: 1, column: 1 }
8271
}
8272
},
8273
right: {
8274
type: 'Identifier',
8275
name: 'y',
8276
range: [5, 6],
8277
loc: {
8278
start: { line: 1, column: 5 },
8279
end: { line: 1, column: 6 }
8280
}
8281
},
8282
range: [0, 6],
8283
loc: {
8284
start: { line: 1, column: 0 },
8285
end: { line: 1, column: 6 }
8286
}
8287
},
8288
range: [0, 6],
8289
loc: {
8290
start: { line: 1, column: 0 },
8291
end: { line: 1, column: 6 }
8292
}
8293
},
8294
8295
'x instanceof y': {
8296
type: 'ExpressionStatement',
8297
expression: {
8298
type: 'BinaryExpression',
8299
operator: 'instanceof',
8300
left: {
8301
type: 'Identifier',
8302
name: 'x',
8303
range: [0, 1],
8304
loc: {
8305
start: { line: 1, column: 0 },
8306
end: { line: 1, column: 1 }
8307
}
8308
},
8309
right: {
8310
type: 'Identifier',
8311
name: 'y',
8312
range: [13, 14],
8313
loc: {
8314
start: { line: 1, column: 13 },
8315
end: { line: 1, column: 14 }
8316
}
8317
},
8318
range: [0, 14],
8319
loc: {
8320
start: { line: 1, column: 0 },
8321
end: { line: 1, column: 14 }
8322
}
8323
},
8324
range: [0, 14],
8325
loc: {
8326
start: { line: 1, column: 0 },
8327
end: { line: 1, column: 14 }
8328
}
8329
},
8330
8331
'x < y < z': {
8332
type: 'ExpressionStatement',
8333
expression: {
8334
type: 'BinaryExpression',
8335
operator: '<',
8336
left: {
8337
type: 'BinaryExpression',
8338
operator: '<',
8339
left: {
8340
type: 'Identifier',
8341
name: 'x',
8342
range: [0, 1],
8343
loc: {
8344
start: { line: 1, column: 0 },
8345
end: { line: 1, column: 1 }
8346
}
8347
},
8348
right: {
8349
type: 'Identifier',
8350
name: 'y',
8351
range: [4, 5],
8352
loc: {
8353
start: { line: 1, column: 4 },
8354
end: { line: 1, column: 5 }
8355
}
8356
},
8357
range: [0, 5],
8358
loc: {
8359
start: { line: 1, column: 0 },
8360
end: { line: 1, column: 5 }
8361
}
8362
},
8363
right: {
8364
type: 'Identifier',
8365
name: 'z',
8366
range: [8, 9],
8367
loc: {
8368
start: { line: 1, column: 8 },
8369
end: { line: 1, column: 9 }
8370
}
8371
},
8372
range: [0, 9],
8373
loc: {
8374
start: { line: 1, column: 0 },
8375
end: { line: 1, column: 9 }
8376
}
8377
},
8378
range: [0, 9],
8379
loc: {
8380
start: { line: 1, column: 0 },
8381
end: { line: 1, column: 9 }
8382
}
8383
}
8384
8385
},
8386
8387
'Equality Operators': {
8388
8389
'x == y': {
8390
type: 'ExpressionStatement',
8391
expression: {
8392
type: 'BinaryExpression',
8393
operator: '==',
8394
left: {
8395
type: 'Identifier',
8396
name: 'x',
8397
range: [0, 1],
8398
loc: {
8399
start: { line: 1, column: 0 },
8400
end: { line: 1, column: 1 }
8401
}
8402
},
8403
right: {
8404
type: 'Identifier',
8405
name: 'y',
8406
range: [5, 6],
8407
loc: {
8408
start: { line: 1, column: 5 },
8409
end: { line: 1, column: 6 }
8410
}
8411
},
8412
range: [0, 6],
8413
loc: {
8414
start: { line: 1, column: 0 },
8415
end: { line: 1, column: 6 }
8416
}
8417
},
8418
range: [0, 6],
8419
loc: {
8420
start: { line: 1, column: 0 },
8421
end: { line: 1, column: 6 }
8422
}
8423
},
8424
8425
'x != y': {
8426
type: 'ExpressionStatement',
8427
expression: {
8428
type: 'BinaryExpression',
8429
operator: '!=',
8430
left: {
8431
type: 'Identifier',
8432
name: 'x',
8433
range: [0, 1],
8434
loc: {
8435
start: { line: 1, column: 0 },
8436
end: { line: 1, column: 1 }
8437
}
8438
},
8439
right: {
8440
type: 'Identifier',
8441
name: 'y',
8442
range: [5, 6],
8443
loc: {
8444
start: { line: 1, column: 5 },
8445
end: { line: 1, column: 6 }
8446
}
8447
},
8448
range: [0, 6],
8449
loc: {
8450
start: { line: 1, column: 0 },
8451
end: { line: 1, column: 6 }
8452
}
8453
},
8454
range: [0, 6],
8455
loc: {
8456
start: { line: 1, column: 0 },
8457
end: { line: 1, column: 6 }
8458
}
8459
},
8460
8461
'x === y': {
8462
type: 'ExpressionStatement',
8463
expression: {
8464
type: 'BinaryExpression',
8465
operator: '===',
8466
left: {
8467
type: 'Identifier',
8468
name: 'x',
8469
range: [0, 1],
8470
loc: {
8471
start: { line: 1, column: 0 },
8472
end: { line: 1, column: 1 }
8473
}
8474
},
8475
right: {
8476
type: 'Identifier',
8477
name: 'y',
8478
range: [6, 7],
8479
loc: {
8480
start: { line: 1, column: 6 },
8481
end: { line: 1, column: 7 }
8482
}
8483
},
8484
range: [0, 7],
8485
loc: {
8486
start: { line: 1, column: 0 },
8487
end: { line: 1, column: 7 }
8488
}
8489
},
8490
range: [0, 7],
8491
loc: {
8492
start: { line: 1, column: 0 },
8493
end: { line: 1, column: 7 }
8494
}
8495
},
8496
8497
'x !== y': {
8498
type: 'ExpressionStatement',
8499
expression: {
8500
type: 'BinaryExpression',
8501
operator: '!==',
8502
left: {
8503
type: 'Identifier',
8504
name: 'x',
8505
range: [0, 1],
8506
loc: {
8507
start: { line: 1, column: 0 },
8508
end: { line: 1, column: 1 }
8509
}
8510
},
8511
right: {
8512
type: 'Identifier',
8513
name: 'y',
8514
range: [6, 7],
8515
loc: {
8516
start: { line: 1, column: 6 },
8517
end: { line: 1, column: 7 }
8518
}
8519
},
8520
range: [0, 7],
8521
loc: {
8522
start: { line: 1, column: 0 },
8523
end: { line: 1, column: 7 }
8524
}
8525
},
8526
range: [0, 7],
8527
loc: {
8528
start: { line: 1, column: 0 },
8529
end: { line: 1, column: 7 }
8530
}
8531
}
8532
8533
},
8534
8535
'Binary Bitwise Operators': {
8536
8537
'x & y': {
8538
type: 'ExpressionStatement',
8539
expression: {
8540
type: 'BinaryExpression',
8541
operator: '&',
8542
left: {
8543
type: 'Identifier',
8544
name: 'x',
8545
range: [0, 1],
8546
loc: {
8547
start: { line: 1, column: 0 },
8548
end: { line: 1, column: 1 }
8549
}
8550
},
8551
right: {
8552
type: 'Identifier',
8553
name: 'y',
8554
range: [4, 5],
8555
loc: {
8556
start: { line: 1, column: 4 },
8557
end: { line: 1, column: 5 }
8558
}
8559
},
8560
range: [0, 5],
8561
loc: {
8562
start: { line: 1, column: 0 },
8563
end: { line: 1, column: 5 }
8564
}
8565
},
8566
range: [0, 5],
8567
loc: {
8568
start: { line: 1, column: 0 },
8569
end: { line: 1, column: 5 }
8570
}
8571
},
8572
8573
'x ^ y': {
8574
type: 'ExpressionStatement',
8575
expression: {
8576
type: 'BinaryExpression',
8577
operator: '^',
8578
left: {
8579
type: 'Identifier',
8580
name: 'x',
8581
range: [0, 1],
8582
loc: {
8583
start: { line: 1, column: 0 },
8584
end: { line: 1, column: 1 }
8585
}
8586
},
8587
right: {
8588
type: 'Identifier',
8589
name: 'y',
8590
range: [4, 5],
8591
loc: {
8592
start: { line: 1, column: 4 },
8593
end: { line: 1, column: 5 }
8594
}
8595
},
8596
range: [0, 5],
8597
loc: {
8598
start: { line: 1, column: 0 },
8599
end: { line: 1, column: 5 }
8600
}
8601
},
8602
range: [0, 5],
8603
loc: {
8604
start: { line: 1, column: 0 },
8605
end: { line: 1, column: 5 }
8606
}
8607
},
8608
8609
'x | y': {
8610
type: 'ExpressionStatement',
8611
expression: {
8612
type: 'BinaryExpression',
8613
operator: '|',
8614
left: {
8615
type: 'Identifier',
8616
name: 'x',
8617
range: [0, 1],
8618
loc: {
8619
start: { line: 1, column: 0 },
8620
end: { line: 1, column: 1 }
8621
}
8622
},
8623
right: {
8624
type: 'Identifier',
8625
name: 'y',
8626
range: [4, 5],
8627
loc: {
8628
start: { line: 1, column: 4 },
8629
end: { line: 1, column: 5 }
8630
}
8631
},
8632
range: [0, 5],
8633
loc: {
8634
start: { line: 1, column: 0 },
8635
end: { line: 1, column: 5 }
8636
}
8637
},
8638
range: [0, 5],
8639
loc: {
8640
start: { line: 1, column: 0 },
8641
end: { line: 1, column: 5 }
8642
}
8643
}
8644
8645
},
8646
8647
'Binary Expressions': {
8648
8649
'x + y + z': {
8650
type: 'ExpressionStatement',
8651
expression: {
8652
type: 'BinaryExpression',
8653
operator: '+',
8654
left: {
8655
type: 'BinaryExpression',
8656
operator: '+',
8657
left: {
8658
type: 'Identifier',
8659
name: 'x',
8660
range: [0, 1],
8661
loc: {
8662
start: { line: 1, column: 0 },
8663
end: { line: 1, column: 1 }
8664
}
8665
},
8666
right: {
8667
type: 'Identifier',
8668
name: 'y',
8669
range: [4, 5],
8670
loc: {
8671
start: { line: 1, column: 4 },
8672
end: { line: 1, column: 5 }
8673
}
8674
},
8675
range: [0, 5],
8676
loc: {
8677
start: { line: 1, column: 0 },
8678
end: { line: 1, column: 5 }
8679
}
8680
},
8681
right: {
8682
type: 'Identifier',
8683
name: 'z',
8684
range: [8, 9],
8685
loc: {
8686
start: { line: 1, column: 8 },
8687
end: { line: 1, column: 9 }
8688
}
8689
},
8690
range: [0, 9],
8691
loc: {
8692
start: { line: 1, column: 0 },
8693
end: { line: 1, column: 9 }
8694
}
8695
},
8696
range: [0, 9],
8697
loc: {
8698
start: { line: 1, column: 0 },
8699
end: { line: 1, column: 9 }
8700
}
8701
},
8702
8703
'x - y + z': {
8704
type: 'ExpressionStatement',
8705
expression: {
8706
type: 'BinaryExpression',
8707
operator: '+',
8708
left: {
8709
type: 'BinaryExpression',
8710
operator: '-',
8711
left: {
8712
type: 'Identifier',
8713
name: 'x',
8714
range: [0, 1],
8715
loc: {
8716
start: { line: 1, column: 0 },
8717
end: { line: 1, column: 1 }
8718
}
8719
},
8720
right: {
8721
type: 'Identifier',
8722
name: 'y',
8723
range: [4, 5],
8724
loc: {
8725
start: { line: 1, column: 4 },
8726
end: { line: 1, column: 5 }
8727
}
8728
},
8729
range: [0, 5],
8730
loc: {
8731
start: { line: 1, column: 0 },
8732
end: { line: 1, column: 5 }
8733
}
8734
},
8735
right: {
8736
type: 'Identifier',
8737
name: 'z',
8738
range: [8, 9],
8739
loc: {
8740
start: { line: 1, column: 8 },
8741
end: { line: 1, column: 9 }
8742
}
8743
},
8744
range: [0, 9],
8745
loc: {
8746
start: { line: 1, column: 0 },
8747
end: { line: 1, column: 9 }
8748
}
8749
},
8750
range: [0, 9],
8751
loc: {
8752
start: { line: 1, column: 0 },
8753
end: { line: 1, column: 9 }
8754
}
8755
},
8756
8757
'x + y - z': {
8758
type: 'ExpressionStatement',
8759
expression: {
8760
type: 'BinaryExpression',
8761
operator: '-',
8762
left: {
8763
type: 'BinaryExpression',
8764
operator: '+',
8765
left: {
8766
type: 'Identifier',
8767
name: 'x',
8768
range: [0, 1],
8769
loc: {
8770
start: { line: 1, column: 0 },
8771
end: { line: 1, column: 1 }
8772
}
8773
},
8774
right: {
8775
type: 'Identifier',
8776
name: 'y',
8777
range: [4, 5],
8778
loc: {
8779
start: { line: 1, column: 4 },
8780
end: { line: 1, column: 5 }
8781
}
8782
},
8783
range: [0, 5],
8784
loc: {
8785
start: { line: 1, column: 0 },
8786
end: { line: 1, column: 5 }
8787
}
8788
},
8789
right: {
8790
type: 'Identifier',
8791
name: 'z',
8792
range: [8, 9],
8793
loc: {
8794
start: { line: 1, column: 8 },
8795
end: { line: 1, column: 9 }
8796
}
8797
},
8798
range: [0, 9],
8799
loc: {
8800
start: { line: 1, column: 0 },
8801
end: { line: 1, column: 9 }
8802
}
8803
},
8804
range: [0, 9],
8805
loc: {
8806
start: { line: 1, column: 0 },
8807
end: { line: 1, column: 9 }
8808
}
8809
},
8810
8811
'x - y - z': {
8812
type: 'ExpressionStatement',
8813
expression: {
8814
type: 'BinaryExpression',
8815
operator: '-',
8816
left: {
8817
type: 'BinaryExpression',
8818
operator: '-',
8819
left: {
8820
type: 'Identifier',
8821
name: 'x',
8822
range: [0, 1],
8823
loc: {
8824
start: { line: 1, column: 0 },
8825
end: { line: 1, column: 1 }
8826
}
8827
},
8828
right: {
8829
type: 'Identifier',
8830
name: 'y',
8831
range: [4, 5],
8832
loc: {
8833
start: { line: 1, column: 4 },
8834
end: { line: 1, column: 5 }
8835
}
8836
},
8837
range: [0, 5],
8838
loc: {
8839
start: { line: 1, column: 0 },
8840
end: { line: 1, column: 5 }
8841
}
8842
},
8843
right: {
8844
type: 'Identifier',
8845
name: 'z',
8846
range: [8, 9],
8847
loc: {
8848
start: { line: 1, column: 8 },
8849
end: { line: 1, column: 9 }
8850
}
8851
},
8852
range: [0, 9],
8853
loc: {
8854
start: { line: 1, column: 0 },
8855
end: { line: 1, column: 9 }
8856
}
8857
},
8858
range: [0, 9],
8859
loc: {
8860
start: { line: 1, column: 0 },
8861
end: { line: 1, column: 9 }
8862
}
8863
},
8864
8865
'x + y * z': {
8866
type: 'ExpressionStatement',
8867
expression: {
8868
type: 'BinaryExpression',
8869
operator: '+',
8870
left: {
8871
type: 'Identifier',
8872
name: 'x',
8873
range: [0, 1],
8874
loc: {
8875
start: { line: 1, column: 0 },
8876
end: { line: 1, column: 1 }
8877
}
8878
},
8879
right: {
8880
type: 'BinaryExpression',
8881
operator: '*',
8882
left: {
8883
type: 'Identifier',
8884
name: 'y',
8885
range: [4, 5],
8886
loc: {
8887
start: { line: 1, column: 4 },
8888
end: { line: 1, column: 5 }
8889
}
8890
},
8891
right: {
8892
type: 'Identifier',
8893
name: 'z',
8894
range: [8, 9],
8895
loc: {
8896
start: { line: 1, column: 8 },
8897
end: { line: 1, column: 9 }
8898
}
8899
},
8900
range: [4, 9],
8901
loc: {
8902
start: { line: 1, column: 4 },
8903
end: { line: 1, column: 9 }
8904
}
8905
},
8906
range: [0, 9],
8907
loc: {
8908
start: { line: 1, column: 0 },
8909
end: { line: 1, column: 9 }
8910
}
8911
},
8912
range: [0, 9],
8913
loc: {
8914
start: { line: 1, column: 0 },
8915
end: { line: 1, column: 9 }
8916
}
8917
},
8918
8919
'x + y / z': {
8920
type: 'ExpressionStatement',
8921
expression: {
8922
type: 'BinaryExpression',
8923
operator: '+',
8924
left: {
8925
type: 'Identifier',
8926
name: 'x',
8927
range: [0, 1],
8928
loc: {
8929
start: { line: 1, column: 0 },
8930
end: { line: 1, column: 1 }
8931
}
8932
},
8933
right: {
8934
type: 'BinaryExpression',
8935
operator: '/',
8936
left: {
8937
type: 'Identifier',
8938
name: 'y',
8939
range: [4, 5],
8940
loc: {
8941
start: { line: 1, column: 4 },
8942
end: { line: 1, column: 5 }
8943
}
8944
},
8945
right: {
8946
type: 'Identifier',
8947
name: 'z',
8948
range: [8, 9],
8949
loc: {
8950
start: { line: 1, column: 8 },
8951
end: { line: 1, column: 9 }
8952
}
8953
},
8954
range: [4, 9],
8955
loc: {
8956
start: { line: 1, column: 4 },
8957
end: { line: 1, column: 9 }
8958
}
8959
},
8960
range: [0, 9],
8961
loc: {
8962
start: { line: 1, column: 0 },
8963
end: { line: 1, column: 9 }
8964
}
8965
},
8966
range: [0, 9],
8967
loc: {
8968
start: { line: 1, column: 0 },
8969
end: { line: 1, column: 9 }
8970
}
8971
},
8972
8973
'x - y % z': {
8974
type: 'ExpressionStatement',
8975
expression: {
8976
type: 'BinaryExpression',
8977
operator: '-',
8978
left: {
8979
type: 'Identifier',
8980
name: 'x',
8981
range: [0, 1],
8982
loc: {
8983
start: { line: 1, column: 0 },
8984
end: { line: 1, column: 1 }
8985
}
8986
},
8987
right: {
8988
type: 'BinaryExpression',
8989
operator: '%',
8990
left: {
8991
type: 'Identifier',
8992
name: 'y',
8993
range: [4, 5],
8994
loc: {
8995
start: { line: 1, column: 4 },
8996
end: { line: 1, column: 5 }
8997
}
8998
},
8999
right: {
9000
type: 'Identifier',
9001
name: 'z',
9002
range: [8, 9],
9003
loc: {
9004
start: { line: 1, column: 8 },
9005
end: { line: 1, column: 9 }
9006
}
9007
},
9008
range: [4, 9],
9009
loc: {
9010
start: { line: 1, column: 4 },
9011
end: { line: 1, column: 9 }
9012
}
9013
},
9014
range: [0, 9],
9015
loc: {
9016
start: { line: 1, column: 0 },
9017
end: { line: 1, column: 9 }
9018
}
9019
},
9020
range: [0, 9],
9021
loc: {
9022
start: { line: 1, column: 0 },
9023
end: { line: 1, column: 9 }
9024
}
9025
},
9026
9027
'x * y * z': {
9028
type: 'ExpressionStatement',
9029
expression: {
9030
type: 'BinaryExpression',
9031
operator: '*',
9032
left: {
9033
type: 'BinaryExpression',
9034
operator: '*',
9035
left: {
9036
type: 'Identifier',
9037
name: 'x',
9038
range: [0, 1],
9039
loc: {
9040
start: { line: 1, column: 0 },
9041
end: { line: 1, column: 1 }
9042
}
9043
},
9044
right: {
9045
type: 'Identifier',
9046
name: 'y',
9047
range: [4, 5],
9048
loc: {
9049
start: { line: 1, column: 4 },
9050
end: { line: 1, column: 5 }
9051
}
9052
},
9053
range: [0, 5],
9054
loc: {
9055
start: { line: 1, column: 0 },
9056
end: { line: 1, column: 5 }
9057
}
9058
},
9059
right: {
9060
type: 'Identifier',
9061
name: 'z',
9062
range: [8, 9],
9063
loc: {
9064
start: { line: 1, column: 8 },
9065
end: { line: 1, column: 9 }
9066
}
9067
},
9068
range: [0, 9],
9069
loc: {
9070
start: { line: 1, column: 0 },
9071
end: { line: 1, column: 9 }
9072
}
9073
},
9074
range: [0, 9],
9075
loc: {
9076
start: { line: 1, column: 0 },
9077
end: { line: 1, column: 9 }
9078
}
9079
},
9080
9081
'x * y / z': {
9082
type: 'ExpressionStatement',
9083
expression: {
9084
type: 'BinaryExpression',
9085
operator: '/',
9086
left: {
9087
type: 'BinaryExpression',
9088
operator: '*',
9089
left: {
9090
type: 'Identifier',
9091
name: 'x',
9092
range: [0, 1],
9093
loc: {
9094
start: { line: 1, column: 0 },
9095
end: { line: 1, column: 1 }
9096
}
9097
},
9098
right: {
9099
type: 'Identifier',
9100
name: 'y',
9101
range: [4, 5],
9102
loc: {
9103
start: { line: 1, column: 4 },
9104
end: { line: 1, column: 5 }
9105
}
9106
},
9107
range: [0, 5],
9108
loc: {
9109
start: { line: 1, column: 0 },
9110
end: { line: 1, column: 5 }
9111
}
9112
},
9113
right: {
9114
type: 'Identifier',
9115
name: 'z',
9116
range: [8, 9],
9117
loc: {
9118
start: { line: 1, column: 8 },
9119
end: { line: 1, column: 9 }
9120
}
9121
},
9122
range: [0, 9],
9123
loc: {
9124
start: { line: 1, column: 0 },
9125
end: { line: 1, column: 9 }
9126
}
9127
},
9128
range: [0, 9],
9129
loc: {
9130
start: { line: 1, column: 0 },
9131
end: { line: 1, column: 9 }
9132
}
9133
},
9134
9135
'x * y % z': {
9136
type: 'ExpressionStatement',
9137
expression: {
9138
type: 'BinaryExpression',
9139
operator: '%',
9140
left: {
9141
type: 'BinaryExpression',
9142
operator: '*',
9143
left: {
9144
type: 'Identifier',
9145
name: 'x',
9146
range: [0, 1],
9147
loc: {
9148
start: { line: 1, column: 0 },
9149
end: { line: 1, column: 1 }
9150
}
9151
},
9152
right: {
9153
type: 'Identifier',
9154
name: 'y',
9155
range: [4, 5],
9156
loc: {
9157
start: { line: 1, column: 4 },
9158
end: { line: 1, column: 5 }
9159
}
9160
},
9161
range: [0, 5],
9162
loc: {
9163
start: { line: 1, column: 0 },
9164
end: { line: 1, column: 5 }
9165
}
9166
},
9167
right: {
9168
type: 'Identifier',
9169
name: 'z',
9170
range: [8, 9],
9171
loc: {
9172
start: { line: 1, column: 8 },
9173
end: { line: 1, column: 9 }
9174
}
9175
},
9176
range: [0, 9],
9177
loc: {
9178
start: { line: 1, column: 0 },
9179
end: { line: 1, column: 9 }
9180
}
9181
},
9182
range: [0, 9],
9183
loc: {
9184
start: { line: 1, column: 0 },
9185
end: { line: 1, column: 9 }
9186
}
9187
},
9188
9189
'x % y * z': {
9190
type: 'ExpressionStatement',
9191
expression: {
9192
type: 'BinaryExpression',
9193
operator: '*',
9194
left: {
9195
type: 'BinaryExpression',
9196
operator: '%',
9197
left: {
9198
type: 'Identifier',
9199
name: 'x',
9200
range: [0, 1],
9201
loc: {
9202
start: { line: 1, column: 0 },
9203
end: { line: 1, column: 1 }
9204
}
9205
},
9206
right: {
9207
type: 'Identifier',
9208
name: 'y',
9209
range: [4, 5],
9210
loc: {
9211
start: { line: 1, column: 4 },
9212
end: { line: 1, column: 5 }
9213
}
9214
},
9215
range: [0, 5],
9216
loc: {
9217
start: { line: 1, column: 0 },
9218
end: { line: 1, column: 5 }
9219
}
9220
},
9221
right: {
9222
type: 'Identifier',
9223
name: 'z',
9224
range: [8, 9],
9225
loc: {
9226
start: { line: 1, column: 8 },
9227
end: { line: 1, column: 9 }
9228
}
9229
},
9230
range: [0, 9],
9231
loc: {
9232
start: { line: 1, column: 0 },
9233
end: { line: 1, column: 9 }
9234
}
9235
},
9236
range: [0, 9],
9237
loc: {
9238
start: { line: 1, column: 0 },
9239
end: { line: 1, column: 9 }
9240
}
9241
},
9242
9243
'x << y << z': {
9244
type: 'ExpressionStatement',
9245
expression: {
9246
type: 'BinaryExpression',
9247
operator: '<<',
9248
left: {
9249
type: 'BinaryExpression',
9250
operator: '<<',
9251
left: {
9252
type: 'Identifier',
9253
name: 'x',
9254
range: [0, 1],
9255
loc: {
9256
start: { line: 1, column: 0 },
9257
end: { line: 1, column: 1 }
9258
}
9259
},
9260
right: {
9261
type: 'Identifier',
9262
name: 'y',
9263
range: [5, 6],
9264
loc: {
9265
start: { line: 1, column: 5 },
9266
end: { line: 1, column: 6 }
9267
}
9268
},
9269
range: [0, 6],
9270
loc: {
9271
start: { line: 1, column: 0 },
9272
end: { line: 1, column: 6 }
9273
}
9274
},
9275
right: {
9276
type: 'Identifier',
9277
name: 'z',
9278
range: [10, 11],
9279
loc: {
9280
start: { line: 1, column: 10 },
9281
end: { line: 1, column: 11 }
9282
}
9283
},
9284
range: [0, 11],
9285
loc: {
9286
start: { line: 1, column: 0 },
9287
end: { line: 1, column: 11 }
9288
}
9289
},
9290
range: [0, 11],
9291
loc: {
9292
start: { line: 1, column: 0 },
9293
end: { line: 1, column: 11 }
9294
}
9295
},
9296
9297
'x | y | z': {
9298
type: 'ExpressionStatement',
9299
expression: {
9300
type: 'BinaryExpression',
9301
operator: '|',
9302
left: {
9303
type: 'BinaryExpression',
9304
operator: '|',
9305
left: {
9306
type: 'Identifier',
9307
name: 'x',
9308
range: [0, 1],
9309
loc: {
9310
start: { line: 1, column: 0 },
9311
end: { line: 1, column: 1 }
9312
}
9313
},
9314
right: {
9315
type: 'Identifier',
9316
name: 'y',
9317
range: [4, 5],
9318
loc: {
9319
start: { line: 1, column: 4 },
9320
end: { line: 1, column: 5 }
9321
}
9322
},
9323
range: [0, 5],
9324
loc: {
9325
start: { line: 1, column: 0 },
9326
end: { line: 1, column: 5 }
9327
}
9328
},
9329
right: {
9330
type: 'Identifier',
9331
name: 'z',
9332
range: [8, 9],
9333
loc: {
9334
start: { line: 1, column: 8 },
9335
end: { line: 1, column: 9 }
9336
}
9337
},
9338
range: [0, 9],
9339
loc: {
9340
start: { line: 1, column: 0 },
9341
end: { line: 1, column: 9 }
9342
}
9343
},
9344
range: [0, 9],
9345
loc: {
9346
start: { line: 1, column: 0 },
9347
end: { line: 1, column: 9 }
9348
}
9349
},
9350
9351
'x & y & z': {
9352
type: 'ExpressionStatement',
9353
expression: {
9354
type: 'BinaryExpression',
9355
operator: '&',
9356
left: {
9357
type: 'BinaryExpression',
9358
operator: '&',
9359
left: {
9360
type: 'Identifier',
9361
name: 'x',
9362
range: [0, 1],
9363
loc: {
9364
start: { line: 1, column: 0 },
9365
end: { line: 1, column: 1 }
9366
}
9367
},
9368
right: {
9369
type: 'Identifier',
9370
name: 'y',
9371
range: [4, 5],
9372
loc: {
9373
start: { line: 1, column: 4 },
9374
end: { line: 1, column: 5 }
9375
}
9376
},
9377
range: [0, 5],
9378
loc: {
9379
start: { line: 1, column: 0 },
9380
end: { line: 1, column: 5 }
9381
}
9382
},
9383
right: {
9384
type: 'Identifier',
9385
name: 'z',
9386
range: [8, 9],
9387
loc: {
9388
start: { line: 1, column: 8 },
9389
end: { line: 1, column: 9 }
9390
}
9391
},
9392
range: [0, 9],
9393
loc: {
9394
start: { line: 1, column: 0 },
9395
end: { line: 1, column: 9 }
9396
}
9397
},
9398
range: [0, 9],
9399
loc: {
9400
start: { line: 1, column: 0 },
9401
end: { line: 1, column: 9 }
9402
}
9403
},
9404
9405
'x ^ y ^ z': {
9406
type: 'ExpressionStatement',
9407
expression: {
9408
type: 'BinaryExpression',
9409
operator: '^',
9410
left: {
9411
type: 'BinaryExpression',
9412
operator: '^',
9413
left: {
9414
type: 'Identifier',
9415
name: 'x',
9416
range: [0, 1],
9417
loc: {
9418
start: { line: 1, column: 0 },
9419
end: { line: 1, column: 1 }
9420
}
9421
},
9422
right: {
9423
type: 'Identifier',
9424
name: 'y',
9425
range: [4, 5],
9426
loc: {
9427
start: { line: 1, column: 4 },
9428
end: { line: 1, column: 5 }
9429
}
9430
},
9431
range: [0, 5],
9432
loc: {
9433
start: { line: 1, column: 0 },
9434
end: { line: 1, column: 5 }
9435
}
9436
},
9437
right: {
9438
type: 'Identifier',
9439
name: 'z',
9440
range: [8, 9],
9441
loc: {
9442
start: { line: 1, column: 8 },
9443
end: { line: 1, column: 9 }
9444
}
9445
},
9446
range: [0, 9],
9447
loc: {
9448
start: { line: 1, column: 0 },
9449
end: { line: 1, column: 9 }
9450
}
9451
},
9452
range: [0, 9],
9453
loc: {
9454
start: { line: 1, column: 0 },
9455
end: { line: 1, column: 9 }
9456
}
9457
},
9458
9459
'x & y | z': {
9460
type: 'ExpressionStatement',
9461
expression: {
9462
type: 'BinaryExpression',
9463
operator: '|',
9464
left: {
9465
type: 'BinaryExpression',
9466
operator: '&',
9467
left: {
9468
type: 'Identifier',
9469
name: 'x',
9470
range: [0, 1],
9471
loc: {
9472
start: { line: 1, column: 0 },
9473
end: { line: 1, column: 1 }
9474
}
9475
},
9476
right: {
9477
type: 'Identifier',
9478
name: 'y',
9479
range: [4, 5],
9480
loc: {
9481
start: { line: 1, column: 4 },
9482
end: { line: 1, column: 5 }
9483
}
9484
},
9485
range: [0, 5],
9486
loc: {
9487
start: { line: 1, column: 0 },
9488
end: { line: 1, column: 5 }
9489
}
9490
},
9491
right: {
9492
type: 'Identifier',
9493
name: 'z',
9494
range: [8, 9],
9495
loc: {
9496
start: { line: 1, column: 8 },
9497
end: { line: 1, column: 9 }
9498
}
9499
},
9500
range: [0, 9],
9501
loc: {
9502
start: { line: 1, column: 0 },
9503
end: { line: 1, column: 9 }
9504
}
9505
},
9506
range: [0, 9],
9507
loc: {
9508
start: { line: 1, column: 0 },
9509
end: { line: 1, column: 9 }
9510
}
9511
},
9512
9513
'x | y ^ z': {
9514
type: 'ExpressionStatement',
9515
expression: {
9516
type: 'BinaryExpression',
9517
operator: '|',
9518
left: {
9519
type: 'Identifier',
9520
name: 'x',
9521
range: [0, 1],
9522
loc: {
9523
start: { line: 1, column: 0 },
9524
end: { line: 1, column: 1 }
9525
}
9526
},
9527
right: {
9528
type: 'BinaryExpression',
9529
operator: '^',
9530
left: {
9531
type: 'Identifier',
9532
name: 'y',
9533
range: [4, 5],
9534
loc: {
9535
start: { line: 1, column: 4 },
9536
end: { line: 1, column: 5 }
9537
}
9538
},
9539
right: {
9540
type: 'Identifier',
9541
name: 'z',
9542
range: [8, 9],
9543
loc: {
9544
start: { line: 1, column: 8 },
9545
end: { line: 1, column: 9 }
9546
}
9547
},
9548
range: [4, 9],
9549
loc: {
9550
start: { line: 1, column: 4 },
9551
end: { line: 1, column: 9 }
9552
}
9553
},
9554
range: [0, 9],
9555
loc: {
9556
start: { line: 1, column: 0 },
9557
end: { line: 1, column: 9 }
9558
}
9559
},
9560
range: [0, 9],
9561
loc: {
9562
start: { line: 1, column: 0 },
9563
end: { line: 1, column: 9 }
9564
}
9565
},
9566
9567
'x | y & z': {
9568
type: 'ExpressionStatement',
9569
expression: {
9570
type: 'BinaryExpression',
9571
operator: '|',
9572
left: {
9573
type: 'Identifier',
9574
name: 'x',
9575
range: [0, 1],
9576
loc: {
9577
start: { line: 1, column: 0 },
9578
end: { line: 1, column: 1 }
9579
}
9580
},
9581
right: {
9582
type: 'BinaryExpression',
9583
operator: '&',
9584
left: {
9585
type: 'Identifier',
9586
name: 'y',
9587
range: [4, 5],
9588
loc: {
9589
start: { line: 1, column: 4 },
9590
end: { line: 1, column: 5 }
9591
}
9592
},
9593
right: {
9594
type: 'Identifier',
9595
name: 'z',
9596
range: [8, 9],
9597
loc: {
9598
start: { line: 1, column: 8 },
9599
end: { line: 1, column: 9 }
9600
}
9601
},
9602
range: [4, 9],
9603
loc: {
9604
start: { line: 1, column: 4 },
9605
end: { line: 1, column: 9 }
9606
}
9607
},
9608
range: [0, 9],
9609
loc: {
9610
start: { line: 1, column: 0 },
9611
end: { line: 1, column: 9 }
9612
}
9613
},
9614
range: [0, 9],
9615
loc: {
9616
start: { line: 1, column: 0 },
9617
end: { line: 1, column: 9 }
9618
}
9619
}
9620
9621
},
9622
9623
'Binary Logical Operators': {
9624
9625
'x || y': {
9626
type: 'ExpressionStatement',
9627
expression: {
9628
type: 'LogicalExpression',
9629
operator: '||',
9630
left: {
9631
type: 'Identifier',
9632
name: 'x',
9633
range: [0, 1],
9634
loc: {
9635
start: { line: 1, column: 0 },
9636
end: { line: 1, column: 1 }
9637
}
9638
},
9639
right: {
9640
type: 'Identifier',
9641
name: 'y',
9642
range: [5, 6],
9643
loc: {
9644
start: { line: 1, column: 5 },
9645
end: { line: 1, column: 6 }
9646
}
9647
},
9648
range: [0, 6],
9649
loc: {
9650
start: { line: 1, column: 0 },
9651
end: { line: 1, column: 6 }
9652
}
9653
},
9654
range: [0, 6],
9655
loc: {
9656
start: { line: 1, column: 0 },
9657
end: { line: 1, column: 6 }
9658
}
9659
},
9660
9661
'x && y': {
9662
type: 'ExpressionStatement',
9663
expression: {
9664
type: 'LogicalExpression',
9665
operator: '&&',
9666
left: {
9667
type: 'Identifier',
9668
name: 'x',
9669
range: [0, 1],
9670
loc: {
9671
start: { line: 1, column: 0 },
9672
end: { line: 1, column: 1 }
9673
}
9674
},
9675
right: {
9676
type: 'Identifier',
9677
name: 'y',
9678
range: [5, 6],
9679
loc: {
9680
start: { line: 1, column: 5 },
9681
end: { line: 1, column: 6 }
9682
}
9683
},
9684
range: [0, 6],
9685
loc: {
9686
start: { line: 1, column: 0 },
9687
end: { line: 1, column: 6 }
9688
}
9689
},
9690
range: [0, 6],
9691
loc: {
9692
start: { line: 1, column: 0 },
9693
end: { line: 1, column: 6 }
9694
}
9695
},
9696
9697
'x || y || z': {
9698
type: 'ExpressionStatement',
9699
expression: {
9700
type: 'LogicalExpression',
9701
operator: '||',
9702
left: {
9703
type: 'LogicalExpression',
9704
operator: '||',
9705
left: {
9706
type: 'Identifier',
9707
name: 'x',
9708
range: [0, 1],
9709
loc: {
9710
start: { line: 1, column: 0 },
9711
end: { line: 1, column: 1 }
9712
}
9713
},
9714
right: {
9715
type: 'Identifier',
9716
name: 'y',
9717
range: [5, 6],
9718
loc: {
9719
start: { line: 1, column: 5 },
9720
end: { line: 1, column: 6 }
9721
}
9722
},
9723
range: [0, 6],
9724
loc: {
9725
start: { line: 1, column: 0 },
9726
end: { line: 1, column: 6 }
9727
}
9728
},
9729
right: {
9730
type: 'Identifier',
9731
name: 'z',
9732
range: [10, 11],
9733
loc: {
9734
start: { line: 1, column: 10 },
9735
end: { line: 1, column: 11 }
9736
}
9737
},
9738
range: [0, 11],
9739
loc: {
9740
start: { line: 1, column: 0 },
9741
end: { line: 1, column: 11 }
9742
}
9743
},
9744
range: [0, 11],
9745
loc: {
9746
start: { line: 1, column: 0 },
9747
end: { line: 1, column: 11 }
9748
}
9749
},
9750
9751
'x && y && z': {
9752
type: 'ExpressionStatement',
9753
expression: {
9754
type: 'LogicalExpression',
9755
operator: '&&',
9756
left: {
9757
type: 'LogicalExpression',
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: 'Identifier',
9770
name: 'y',
9771
range: [5, 6],
9772
loc: {
9773
start: { line: 1, column: 5 },
9774
end: { line: 1, column: 6 }
9775
}
9776
},
9777
range: [0, 6],
9778
loc: {
9779
start: { line: 1, column: 0 },
9780
end: { line: 1, column: 6 }
9781
}
9782
},
9783
right: {
9784
type: 'Identifier',
9785
name: 'z',
9786
range: [10, 11],
9787
loc: {
9788
start: { line: 1, column: 10 },
9789
end: { line: 1, column: 11 }
9790
}
9791
},
9792
range: [0, 11],
9793
loc: {
9794
start: { line: 1, column: 0 },
9795
end: { line: 1, column: 11 }
9796
}
9797
},
9798
range: [0, 11],
9799
loc: {
9800
start: { line: 1, column: 0 },
9801
end: { line: 1, column: 11 }
9802
}
9803
},
9804
9805
'x || y && z': {
9806
type: 'ExpressionStatement',
9807
expression: {
9808
type: 'LogicalExpression',
9809
operator: '||',
9810
left: {
9811
type: 'Identifier',
9812
name: 'x',
9813
range: [0, 1],
9814
loc: {
9815
start: { line: 1, column: 0 },
9816
end: { line: 1, column: 1 }
9817
}
9818
},
9819
right: {
9820
type: 'LogicalExpression',
9821
operator: '&&',
9822
left: {
9823
type: 'Identifier',
9824
name: 'y',
9825
range: [5, 6],
9826
loc: {
9827
start: { line: 1, column: 5 },
9828
end: { line: 1, column: 6 }
9829
}
9830
},
9831
right: {
9832
type: 'Identifier',
9833
name: 'z',
9834
range: [10, 11],
9835
loc: {
9836
start: { line: 1, column: 10 },
9837
end: { line: 1, column: 11 }
9838
}
9839
},
9840
range: [5, 11],
9841
loc: {
9842
start: { line: 1, column: 5 },
9843
end: { line: 1, column: 11 }
9844
}
9845
},
9846
range: [0, 11],
9847
loc: {
9848
start: { line: 1, column: 0 },
9849
end: { line: 1, column: 11 }
9850
}
9851
},
9852
range: [0, 11],
9853
loc: {
9854
start: { line: 1, column: 0 },
9855
end: { line: 1, column: 11 }
9856
}
9857
},
9858
9859
'x || y ^ z': {
9860
type: 'ExpressionStatement',
9861
expression: {
9862
type: 'LogicalExpression',
9863
operator: '||',
9864
left: {
9865
type: 'Identifier',
9866
name: 'x',
9867
range: [0, 1],
9868
loc: {
9869
start: { line: 1, column: 0 },
9870
end: { line: 1, column: 1 }
9871
}
9872
},
9873
right: {
9874
type: 'BinaryExpression',
9875
operator: '^',
9876
left: {
9877
type: 'Identifier',
9878
name: 'y',
9879
range: [5, 6],
9880
loc: {
9881
start: { line: 1, column: 5 },
9882
end: { line: 1, column: 6 }
9883
}
9884
},
9885
right: {
9886
type: 'Identifier',
9887
name: 'z',
9888
range: [9, 10],
9889
loc: {
9890
start: { line: 1, column: 9 },
9891
end: { line: 1, column: 10 }
9892
}
9893
},
9894
range: [5, 10],
9895
loc: {
9896
start: { line: 1, column: 5 },
9897
end: { line: 1, column: 10 }
9898
}
9899
},
9900
range: [0, 10],
9901
loc: {
9902
start: { line: 1, column: 0 },
9903
end: { line: 1, column: 10 }
9904
}
9905
},
9906
range: [0, 10],
9907
loc: {
9908
start: { line: 1, column: 0 },
9909
end: { line: 1, column: 10 }
9910
}
9911
}
9912
9913
},
9914
9915
'Conditional Operator': {
9916
9917
'y ? 1 : 2': {
9918
type: 'ExpressionStatement',
9919
expression: {
9920
type: 'ConditionalExpression',
9921
test: {
9922
type: 'Identifier',
9923
name: 'y',
9924
range: [0, 1],
9925
loc: {
9926
start: { line: 1, column: 0 },
9927
end: { line: 1, column: 1 }
9928
}
9929
},
9930
consequent: {
9931
type: 'Literal',
9932
value: 1,
9933
raw: '1',
9934
range: [4, 5],
9935
loc: {
9936
start: { line: 1, column: 4 },
9937
end: { line: 1, column: 5 }
9938
}
9939
},
9940
alternate: {
9941
type: 'Literal',
9942
value: 2,
9943
raw: '2',
9944
range: [8, 9],
9945
loc: {
9946
start: { line: 1, column: 8 },
9947
end: { line: 1, column: 9 }
9948
}
9949
},
9950
range: [0, 9],
9951
loc: {
9952
start: { line: 1, column: 0 },
9953
end: { line: 1, column: 9 }
9954
}
9955
},
9956
range: [0, 9],
9957
loc: {
9958
start: { line: 1, column: 0 },
9959
end: { line: 1, column: 9 }
9960
}
9961
},
9962
9963
'x && y ? 1 : 2': {
9964
type: 'ExpressionStatement',
9965
expression: {
9966
type: 'ConditionalExpression',
9967
test: {
9968
type: 'LogicalExpression',
9969
operator: '&&',
9970
left: {
9971
type: 'Identifier',
9972
name: 'x',
9973
range: [0, 1],
9974
loc: {
9975
start: { line: 1, column: 0 },
9976
end: { line: 1, column: 1 }
9977
}
9978
},
9979
right: {
9980
type: 'Identifier',
9981
name: 'y',
9982
range: [5, 6],
9983
loc: {
9984
start: { line: 1, column: 5 },
9985
end: { line: 1, column: 6 }
9986
}
9987
},
9988
range: [0, 6],
9989
loc: {
9990
start: { line: 1, column: 0 },
9991
end: { line: 1, column: 6 }
9992
}
9993
},
9994
consequent: {
9995
type: 'Literal',
9996
value: 1,
9997
raw: '1',
9998
range: [9, 10],
9999
loc: {
10000
start: { line: 1, column: 9 },
10001
end: { line: 1, column: 10 }
10002
}
10003
},
10004
alternate: {
10005
type: 'Literal',
10006
value: 2,
10007
raw: '2',
10008
range: [13, 14],
10009
loc: {
10010
start: { line: 1, column: 13 },
10011
end: { line: 1, column: 14 }
10012
}
10013
},
10014
range: [0, 14],
10015
loc: {
10016
start: { line: 1, column: 0 },
10017
end: { line: 1, column: 14 }
10018
}
10019
},
10020
range: [0, 14],
10021
loc: {
10022
start: { line: 1, column: 0 },
10023
end: { line: 1, column: 14 }
10024
}
10025
}
10026
10027
},
10028
10029
'Assignment Operators': {
10030
10031
'x = 42': {
10032
type: 'ExpressionStatement',
10033
expression: {
10034
type: 'AssignmentExpression',
10035
operator: '=',
10036
left: {
10037
type: 'Identifier',
10038
name: 'x',
10039
range: [0, 1],
10040
loc: {
10041
start: { line: 1, column: 0 },
10042
end: { line: 1, column: 1 }
10043
}
10044
},
10045
right: {
10046
type: 'Literal',
10047
value: 42,
10048
raw: '42',
10049
range: [4, 6],
10050
loc: {
10051
start: { line: 1, column: 4 },
10052
end: { line: 1, column: 6 }
10053
}
10054
},
10055
range: [0, 6],
10056
loc: {
10057
start: { line: 1, column: 0 },
10058
end: { line: 1, column: 6 }
10059
}
10060
},
10061
range: [0, 6],
10062
loc: {
10063
start: { line: 1, column: 0 },
10064
end: { line: 1, column: 6 }
10065
}
10066
},
10067
10068
'eval = 42': {
10069
type: 'ExpressionStatement',
10070
expression: {
10071
type: 'AssignmentExpression',
10072
operator: '=',
10073
left: {
10074
type: 'Identifier',
10075
name: 'eval',
10076
range: [0, 4],
10077
loc: {
10078
start: { line: 1, column: 0 },
10079
end: { line: 1, column: 4 }
10080
}
10081
},
10082
right: {
10083
type: 'Literal',
10084
value: 42,
10085
raw: '42',
10086
range: [7, 9],
10087
loc: {
10088
start: { line: 1, column: 7 },
10089
end: { line: 1, column: 9 }
10090
}
10091
},
10092
range: [0, 9],
10093
loc: {
10094
start: { line: 1, column: 0 },
10095
end: { line: 1, column: 9 }
10096
}
10097
},
10098
range: [0, 9],
10099
loc: {
10100
start: { line: 1, column: 0 },
10101
end: { line: 1, column: 9 }
10102
}
10103
},
10104
10105
'arguments = 42': {
10106
type: 'ExpressionStatement',
10107
expression: {
10108
type: 'AssignmentExpression',
10109
operator: '=',
10110
left: {
10111
type: 'Identifier',
10112
name: 'arguments',
10113
range: [0, 9],
10114
loc: {
10115
start: { line: 1, column: 0 },
10116
end: { line: 1, column: 9 }
10117
}
10118
},
10119
right: {
10120
type: 'Literal',
10121
value: 42,
10122
raw: '42',
10123
range: [12, 14],
10124
loc: {
10125
start: { line: 1, column: 12 },
10126
end: { line: 1, column: 14 }
10127
}
10128
},
10129
range: [0, 14],
10130
loc: {
10131
start: { line: 1, column: 0 },
10132
end: { line: 1, column: 14 }
10133
}
10134
},
10135
range: [0, 14],
10136
loc: {
10137
start: { line: 1, column: 0 },
10138
end: { line: 1, column: 14 }
10139
}
10140
},
10141
10142
'type = 42': {
10143
type: 'ExpressionStatement',
10144
expression: {
10145
type: 'AssignmentExpression',
10146
operator: '=',
10147
left: {
10148
type: 'Identifier',
10149
name: 'type',
10150
range: [0, 4],
10151
loc: {
10152
start: { line: 1, column: 0 },
10153
end: { line: 1, column: 4 }
10154
}
10155
},
10156
right: {
10157
type: 'Literal',
10158
value: 42,
10159
raw: '42',
10160
range: [7, 9],
10161
loc: {
10162
start: { line: 1, column: 7 },
10163
end: { line: 1, column: 9 }
10164
}
10165
},
10166
range: [0, 9],
10167
loc: {
10168
start: { line: 1, column: 0 },
10169
end: { line: 1, column: 9 }
10170
}
10171
},
10172
range: [0, 9],
10173
loc: {
10174
start: { line: 1, column: 0 },
10175
end: { line: 1, column: 9 }
10176
}
10177
},
10178
10179
'x *= 42': {
10180
type: 'ExpressionStatement',
10181
expression: {
10182
type: 'AssignmentExpression',
10183
operator: '*=',
10184
left: {
10185
type: 'Identifier',
10186
name: 'x',
10187
range: [0, 1],
10188
loc: {
10189
start: { line: 1, column: 0 },
10190
end: { line: 1, column: 1 }
10191
}
10192
},
10193
right: {
10194
type: 'Literal',
10195
value: 42,
10196
raw: '42',
10197
range: [5, 7],
10198
loc: {
10199
start: { line: 1, column: 5 },
10200
end: { line: 1, column: 7 }
10201
}
10202
},
10203
range: [0, 7],
10204
loc: {
10205
start: { line: 1, column: 0 },
10206
end: { line: 1, column: 7 }
10207
}
10208
},
10209
range: [0, 7],
10210
loc: {
10211
start: { line: 1, column: 0 },
10212
end: { line: 1, column: 7 }
10213
}
10214
},
10215
10216
'x /= 42': {
10217
type: 'ExpressionStatement',
10218
expression: {
10219
type: 'AssignmentExpression',
10220
operator: '/=',
10221
left: {
10222
type: 'Identifier',
10223
name: 'x',
10224
range: [0, 1],
10225
loc: {
10226
start: { line: 1, column: 0 },
10227
end: { line: 1, column: 1 }
10228
}
10229
},
10230
right: {
10231
type: 'Literal',
10232
value: 42,
10233
raw: '42',
10234
range: [5, 7],
10235
loc: {
10236
start: { line: 1, column: 5 },
10237
end: { line: 1, column: 7 }
10238
}
10239
},
10240
range: [0, 7],
10241
loc: {
10242
start: { line: 1, column: 0 },
10243
end: { line: 1, column: 7 }
10244
}
10245
},
10246
range: [0, 7],
10247
loc: {
10248
start: { line: 1, column: 0 },
10249
end: { line: 1, column: 7 }
10250
}
10251
},
10252
10253
'x %= 42': {
10254
type: 'ExpressionStatement',
10255
expression: {
10256
type: 'AssignmentExpression',
10257
operator: '%=',
10258
left: {
10259
type: 'Identifier',
10260
name: 'x',
10261
range: [0, 1],
10262
loc: {
10263
start: { line: 1, column: 0 },
10264
end: { line: 1, column: 1 }
10265
}
10266
},
10267
right: {
10268
type: 'Literal',
10269
value: 42,
10270
raw: '42',
10271
range: [5, 7],
10272
loc: {
10273
start: { line: 1, column: 5 },
10274
end: { line: 1, column: 7 }
10275
}
10276
},
10277
range: [0, 7],
10278
loc: {
10279
start: { line: 1, column: 0 },
10280
end: { line: 1, column: 7 }
10281
}
10282
},
10283
range: [0, 7],
10284
loc: {
10285
start: { line: 1, column: 0 },
10286
end: { line: 1, column: 7 }
10287
}
10288
},
10289
10290
'x += 42': {
10291
type: 'ExpressionStatement',
10292
expression: {
10293
type: 'AssignmentExpression',
10294
operator: '+=',
10295
left: {
10296
type: 'Identifier',
10297
name: 'x',
10298
range: [0, 1],
10299
loc: {
10300
start: { line: 1, column: 0 },
10301
end: { line: 1, column: 1 }
10302
}
10303
},
10304
right: {
10305
type: 'Literal',
10306
value: 42,
10307
raw: '42',
10308
range: [5, 7],
10309
loc: {
10310
start: { line: 1, column: 5 },
10311
end: { line: 1, column: 7 }
10312
}
10313
},
10314
range: [0, 7],
10315
loc: {
10316
start: { line: 1, column: 0 },
10317
end: { line: 1, column: 7 }
10318
}
10319
},
10320
range: [0, 7],
10321
loc: {
10322
start: { line: 1, column: 0 },
10323
end: { line: 1, column: 7 }
10324
}
10325
},
10326
10327
'x -= 42': {
10328
type: 'ExpressionStatement',
10329
expression: {
10330
type: 'AssignmentExpression',
10331
operator: '-=',
10332
left: {
10333
type: 'Identifier',
10334
name: 'x',
10335
range: [0, 1],
10336
loc: {
10337
start: { line: 1, column: 0 },
10338
end: { line: 1, column: 1 }
10339
}
10340
},
10341
right: {
10342
type: 'Literal',
10343
value: 42,
10344
raw: '42',
10345
range: [5, 7],
10346
loc: {
10347
start: { line: 1, column: 5 },
10348
end: { line: 1, column: 7 }
10349
}
10350
},
10351
range: [0, 7],
10352
loc: {
10353
start: { line: 1, column: 0 },
10354
end: { line: 1, column: 7 }
10355
}
10356
},
10357
range: [0, 7],
10358
loc: {
10359
start: { line: 1, column: 0 },
10360
end: { line: 1, column: 7 }
10361
}
10362
},
10363
10364
'x <<= 42': {
10365
type: 'ExpressionStatement',
10366
expression: {
10367
type: 'AssignmentExpression',
10368
operator: '<<=',
10369
left: {
10370
type: 'Identifier',
10371
name: 'x',
10372
range: [0, 1],
10373
loc: {
10374
start: { line: 1, column: 0 },
10375
end: { line: 1, column: 1 }
10376
}
10377
},
10378
right: {
10379
type: 'Literal',
10380
value: 42,
10381
raw: '42',
10382
range: [6, 8],
10383
loc: {
10384
start: { line: 1, column: 6 },
10385
end: { line: 1, column: 8 }
10386
}
10387
},
10388
range: [0, 8],
10389
loc: {
10390
start: { line: 1, column: 0 },
10391
end: { line: 1, column: 8 }
10392
}
10393
},
10394
range: [0, 8],
10395
loc: {
10396
start: { line: 1, column: 0 },
10397
end: { line: 1, column: 8 }
10398
}
10399
},
10400
10401
'x >>= 42': {
10402
type: 'ExpressionStatement',
10403
expression: {
10404
type: 'AssignmentExpression',
10405
operator: '>>=',
10406
left: {
10407
type: 'Identifier',
10408
name: 'x',
10409
range: [0, 1],
10410
loc: {
10411
start: { line: 1, column: 0 },
10412
end: { line: 1, column: 1 }
10413
}
10414
},
10415
right: {
10416
type: 'Literal',
10417
value: 42,
10418
raw: '42',
10419
range: [6, 8],
10420
loc: {
10421
start: { line: 1, column: 6 },
10422
end: { line: 1, column: 8 }
10423
}
10424
},
10425
range: [0, 8],
10426
loc: {
10427
start: { line: 1, column: 0 },
10428
end: { line: 1, column: 8 }
10429
}
10430
},
10431
range: [0, 8],
10432
loc: {
10433
start: { line: 1, column: 0 },
10434
end: { line: 1, column: 8 }
10435
}
10436
},
10437
10438
'x >>>= 42': {
10439
type: 'ExpressionStatement',
10440
expression: {
10441
type: 'AssignmentExpression',
10442
operator: '>>>=',
10443
left: {
10444
type: 'Identifier',
10445
name: 'x',
10446
range: [0, 1],
10447
loc: {
10448
start: { line: 1, column: 0 },
10449
end: { line: 1, column: 1 }
10450
}
10451
},
10452
right: {
10453
type: 'Literal',
10454
value: 42,
10455
raw: '42',
10456
range: [7, 9],
10457
loc: {
10458
start: { line: 1, column: 7 },
10459
end: { line: 1, column: 9 }
10460
}
10461
},
10462
range: [0, 9],
10463
loc: {
10464
start: { line: 1, column: 0 },
10465
end: { line: 1, column: 9 }
10466
}
10467
},
10468
range: [0, 9],
10469
loc: {
10470
start: { line: 1, column: 0 },
10471
end: { line: 1, column: 9 }
10472
}
10473
},
10474
10475
'x &= 42': {
10476
type: 'ExpressionStatement',
10477
expression: {
10478
type: 'AssignmentExpression',
10479
operator: '&=',
10480
left: {
10481
type: 'Identifier',
10482
name: 'x',
10483
range: [0, 1],
10484
loc: {
10485
start: { line: 1, column: 0 },
10486
end: { line: 1, column: 1 }
10487
}
10488
},
10489
right: {
10490
type: 'Literal',
10491
value: 42,
10492
raw: '42',
10493
range: [5, 7],
10494
loc: {
10495
start: { line: 1, column: 5 },
10496
end: { line: 1, column: 7 }
10497
}
10498
},
10499
range: [0, 7],
10500
loc: {
10501
start: { line: 1, column: 0 },
10502
end: { line: 1, column: 7 }
10503
}
10504
},
10505
range: [0, 7],
10506
loc: {
10507
start: { line: 1, column: 0 },
10508
end: { line: 1, column: 7 }
10509
}
10510
},
10511
10512
'x ^= 42': {
10513
type: 'ExpressionStatement',
10514
expression: {
10515
type: 'AssignmentExpression',
10516
operator: '^=',
10517
left: {
10518
type: 'Identifier',
10519
name: 'x',
10520
range: [0, 1],
10521
loc: {
10522
start: { line: 1, column: 0 },
10523
end: { line: 1, column: 1 }
10524
}
10525
},
10526
right: {
10527
type: 'Literal',
10528
value: 42,
10529
raw: '42',
10530
range: [5, 7],
10531
loc: {
10532
start: { line: 1, column: 5 },
10533
end: { line: 1, column: 7 }
10534
}
10535
},
10536
range: [0, 7],
10537
loc: {
10538
start: { line: 1, column: 0 },
10539
end: { line: 1, column: 7 }
10540
}
10541
},
10542
range: [0, 7],
10543
loc: {
10544
start: { line: 1, column: 0 },
10545
end: { line: 1, column: 7 }
10546
}
10547
},
10548
10549
'x |= 42': {
10550
type: 'ExpressionStatement',
10551
expression: {
10552
type: 'AssignmentExpression',
10553
operator: '|=',
10554
left: {
10555
type: 'Identifier',
10556
name: 'x',
10557
range: [0, 1],
10558
loc: {
10559
start: { line: 1, column: 0 },
10560
end: { line: 1, column: 1 }
10561
}
10562
},
10563
right: {
10564
type: 'Literal',
10565
value: 42,
10566
raw: '42',
10567
range: [5, 7],
10568
loc: {
10569
start: { line: 1, column: 5 },
10570
end: { line: 1, column: 7 }
10571
}
10572
},
10573
range: [0, 7],
10574
loc: {
10575
start: { line: 1, column: 0 },
10576
end: { line: 1, column: 7 }
10577
}
10578
},
10579
range: [0, 7],
10580
loc: {
10581
start: { line: 1, column: 0 },
10582
end: { line: 1, column: 7 }
10583
}
10584
}
10585
10586
},
10587
10588
'Complex Expression': {
10589
10590
'a || b && c | d ^ e & f == g < h >>> i + j * k': {
10591
type: 'ExpressionStatement',
10592
expression: {
10593
type: 'LogicalExpression',
10594
operator: '||',
10595
left: {
10596
type: 'Identifier',
10597
name: 'a',
10598
range: [0, 1],
10599
loc: {
10600
start: { line: 1, column: 0 },
10601
end: { line: 1, column: 1 }
10602
}
10603
},
10604
right: {
10605
type: 'LogicalExpression',
10606
operator: '&&',
10607
left: {
10608
type: 'Identifier',
10609
name: 'b',
10610
range: [5, 6],
10611
loc: {
10612
start: { line: 1, column: 5 },
10613
end: { line: 1, column: 6 }
10614
}
10615
},
10616
right: {
10617
type: 'BinaryExpression',
10618
operator: '|',
10619
left: {
10620
type: 'Identifier',
10621
name: 'c',
10622
range: [10, 11],
10623
loc: {
10624
start: { line: 1, column: 10 },
10625
end: { line: 1, column: 11 }
10626
}
10627
},
10628
right: {
10629
type: 'BinaryExpression',
10630
operator: '^',
10631
left: {
10632
type: 'Identifier',
10633
name: 'd',
10634
range: [14, 15],
10635
loc: {
10636
start: { line: 1, column: 14 },
10637
end: { line: 1, column: 15 }
10638
}
10639
},
10640
right: {
10641
type: 'BinaryExpression',
10642
operator: '&',
10643
left: {
10644
type: 'Identifier',
10645
name: 'e',
10646
range: [18, 19],
10647
loc: {
10648
start: { line: 1, column: 18 },
10649
end: { line: 1, column: 19 }
10650
}
10651
},
10652
right: {
10653
type: 'BinaryExpression',
10654
operator: '==',
10655
left: {
10656
type: 'Identifier',
10657
name: 'f',
10658
range: [22, 23],
10659
loc: {
10660
start: { line: 1, column: 22 },
10661
end: { line: 1, column: 23 }
10662
}
10663
},
10664
right: {
10665
type: 'BinaryExpression',
10666
operator: '<',
10667
left: {
10668
type: 'Identifier',
10669
name: 'g',
10670
range: [27, 28],
10671
loc: {
10672
start: { line: 1, column: 27 },
10673
end: { line: 1, column: 28 }
10674
}
10675
},
10676
right: {
10677
type: 'BinaryExpression',
10678
operator: '>>>',
10679
left: {
10680
type: 'Identifier',
10681
name: 'h',
10682
range: [31, 32],
10683
loc: {
10684
start: { line: 1, column: 31 },
10685
end: { line: 1, column: 32 }
10686
}
10687
},
10688
right: {
10689
type: 'BinaryExpression',
10690
operator: '+',
10691
left: {
10692
type: 'Identifier',
10693
name: 'i',
10694
range: [37, 38],
10695
loc: {
10696
start: { line: 1, column: 37 },
10697
end: { line: 1, column: 38 }
10698
}
10699
},
10700
right: {
10701
type: 'BinaryExpression',
10702
operator: '*',
10703
left: {
10704
type: 'Identifier',
10705
name: 'j',
10706
range: [41, 42],
10707
loc: {
10708
start: { line: 1, column: 41 },
10709
end: { line: 1, column: 42 }
10710
}
10711
},
10712
right: {
10713
type: 'Identifier',
10714
name: 'k',
10715
range: [45, 46],
10716
loc: {
10717
start: { line: 1, column: 45 },
10718
end: { line: 1, column: 46 }
10719
}
10720
},
10721
range: [41, 46],
10722
loc: {
10723
start: { line: 1, column: 41 },
10724
end: { line: 1, column: 46 }
10725
}
10726
},
10727
range: [37, 46],
10728
loc: {
10729
start: { line: 1, column: 37 },
10730
end: { line: 1, column: 46 }
10731
}
10732
},
10733
range: [31, 46],
10734
loc: {
10735
start: { line: 1, column: 31 },
10736
end: { line: 1, column: 46 }
10737
}
10738
},
10739
range: [27, 46],
10740
loc: {
10741
start: { line: 1, column: 27 },
10742
end: { line: 1, column: 46 }
10743
}
10744
},
10745
range: [22, 46],
10746
loc: {
10747
start: { line: 1, column: 22 },
10748
end: { line: 1, column: 46 }
10749
}
10750
},
10751
range: [18, 46],
10752
loc: {
10753
start: { line: 1, column: 18 },
10754
end: { line: 1, column: 46 }
10755
}
10756
},
10757
range: [14, 46],
10758
loc: {
10759
start: { line: 1, column: 14 },
10760
end: { line: 1, column: 46 }
10761
}
10762
},
10763
range: [10, 46],
10764
loc: {
10765
start: { line: 1, column: 10 },
10766
end: { line: 1, column: 46 }
10767
}
10768
},
10769
range: [5, 46],
10770
loc: {
10771
start: { line: 1, column: 5 },
10772
end: { line: 1, column: 46 }
10773
}
10774
},
10775
range: [0, 46],
10776
loc: {
10777
start: { line: 1, column: 0 },
10778
end: { line: 1, column: 46 }
10779
}
10780
},
10781
range: [0, 46],
10782
loc: {
10783
start: { line: 1, column: 0 },
10784
end: { line: 1, column: 46 }
10785
}
10786
}
10787
10788
},
10789
10790
'Block': {
10791
10792
'{ foo }': {
10793
type: 'BlockStatement',
10794
body: [{
10795
type: 'ExpressionStatement',
10796
expression: {
10797
type: 'Identifier',
10798
name: 'foo',
10799
range: [2, 5],
10800
loc: {
10801
start: { line: 1, column: 2 },
10802
end: { line: 1, column: 5 }
10803
}
10804
},
10805
range: [2, 6],
10806
loc: {
10807
start: { line: 1, column: 2 },
10808
end: { line: 1, column: 6 }
10809
}
10810
}],
10811
range: [0, 7],
10812
loc: {
10813
start: { line: 1, column: 0 },
10814
end: { line: 1, column: 7 }
10815
}
10816
},
10817
10818
'{ doThis(); doThat(); }': {
10819
type: 'BlockStatement',
10820
body: [{
10821
type: 'ExpressionStatement',
10822
expression: {
10823
type: 'CallExpression',
10824
callee: {
10825
type: 'Identifier',
10826
name: 'doThis',
10827
range: [2, 8],
10828
loc: {
10829
start: { line: 1, column: 2 },
10830
end: { line: 1, column: 8 }
10831
}
10832
},
10833
'arguments': [],
10834
range: [2, 10],
10835
loc: {
10836
start: { line: 1, column: 2 },
10837
end: { line: 1, column: 10 }
10838
}
10839
},
10840
range: [2, 11],
10841
loc: {
10842
start: { line: 1, column: 2 },
10843
end: { line: 1, column: 11 }
10844
}
10845
}, {
10846
type: 'ExpressionStatement',
10847
expression: {
10848
type: 'CallExpression',
10849
callee: {
10850
type: 'Identifier',
10851
name: 'doThat',
10852
range: [12, 18],
10853
loc: {
10854
start: { line: 1, column: 12 },
10855
end: { line: 1, column: 18 }
10856
}
10857
},
10858
'arguments': [],
10859
range: [12, 20],
10860
loc: {
10861
start: { line: 1, column: 12 },
10862
end: { line: 1, column: 20 }
10863
}
10864
},
10865
range: [12, 21],
10866
loc: {
10867
start: { line: 1, column: 12 },
10868
end: { line: 1, column: 21 }
10869
}
10870
}],
10871
range: [0, 23],
10872
loc: {
10873
start: { line: 1, column: 0 },
10874
end: { line: 1, column: 23 }
10875
}
10876
},
10877
10878
'{}': {
10879
type: 'BlockStatement',
10880
body: [],
10881
range: [0, 2],
10882
loc: {
10883
start: { line: 1, column: 0 },
10884
end: { line: 1, column: 2 }
10885
}
10886
}
10887
10888
},
10889
10890
'Variable Statement': {
10891
10892
'var x': {
10893
type: 'VariableDeclaration',
10894
declarations: [{
10895
type: 'VariableDeclarator',
10896
id: {
10897
type: 'Identifier',
10898
name: 'x',
10899
range: [4, 5],
10900
loc: {
10901
start: { line: 1, column: 4 },
10902
end: { line: 1, column: 5 }
10903
}
10904
},
10905
init: null,
10906
range: [4, 5],
10907
loc: {
10908
start: { line: 1, column: 4 },
10909
end: { line: 1, column: 5 }
10910
}
10911
}],
10912
kind: 'var',
10913
range: [0, 5],
10914
loc: {
10915
start: { line: 1, column: 0 },
10916
end: { line: 1, column: 5 }
10917
}
10918
},
10919
10920
'var x, y;': {
10921
type: 'VariableDeclaration',
10922
declarations: [{
10923
type: 'VariableDeclarator',
10924
id: {
10925
type: 'Identifier',
10926
name: 'x',
10927
range: [4, 5],
10928
loc: {
10929
start: { line: 1, column: 4 },
10930
end: { line: 1, column: 5 }
10931
}
10932
},
10933
init: null,
10934
range: [4, 5],
10935
loc: {
10936
start: { line: 1, column: 4 },
10937
end: { line: 1, column: 5 }
10938
}
10939
}, {
10940
type: 'VariableDeclarator',
10941
id: {
10942
type: 'Identifier',
10943
name: 'y',
10944
range: [7, 8],
10945
loc: {
10946
start: { line: 1, column: 7 },
10947
end: { line: 1, column: 8 }
10948
}
10949
},
10950
init: null,
10951
range: [7, 8],
10952
loc: {
10953
start: { line: 1, column: 7 },
10954
end: { line: 1, column: 8 }
10955
}
10956
}],
10957
kind: 'var',
10958
range: [0, 9],
10959
loc: {
10960
start: { line: 1, column: 0 },
10961
end: { line: 1, column: 9 }
10962
}
10963
},
10964
10965
'var x = 42': {
10966
type: 'VariableDeclaration',
10967
declarations: [{
10968
type: 'VariableDeclarator',
10969
id: {
10970
type: 'Identifier',
10971
name: 'x',
10972
range: [4, 5],
10973
loc: {
10974
start: { line: 1, column: 4 },
10975
end: { line: 1, column: 5 }
10976
}
10977
},
10978
init: {
10979
type: 'Literal',
10980
value: 42,
10981
raw: '42',
10982
range: [8, 10],
10983
loc: {
10984
start: { line: 1, column: 8 },
10985
end: { line: 1, column: 10 }
10986
}
10987
},
10988
range: [4, 10],
10989
loc: {
10990
start: { line: 1, column: 4 },
10991
end: { line: 1, column: 10 }
10992
}
10993
}],
10994
kind: 'var',
10995
range: [0, 10],
10996
loc: {
10997
start: { line: 1, column: 0 },
10998
end: { line: 1, column: 10 }
10999
}
11000
},
11001
11002
'var eval = 42, arguments = 42': {
11003
type: 'VariableDeclaration',
11004
declarations: [{
11005
type: 'VariableDeclarator',
11006
id: {
11007
type: 'Identifier',
11008
name: 'eval',
11009
range: [4, 8],
11010
loc: {
11011
start: { line: 1, column: 4 },
11012
end: { line: 1, column: 8 }
11013
}
11014
},
11015
init: {
11016
type: 'Literal',
11017
value: 42,
11018
raw: '42',
11019
range: [11, 13],
11020
loc: {
11021
start: { line: 1, column: 11 },
11022
end: { line: 1, column: 13 }
11023
}
11024
},
11025
range: [4, 13],
11026
loc: {
11027
start: { line: 1, column: 4 },
11028
end: { line: 1, column: 13 }
11029
}
11030
}, {
11031
type: 'VariableDeclarator',
11032
id: {
11033
type: 'Identifier',
11034
name: 'arguments',
11035
range: [15, 24],
11036
loc: {
11037
start: { line: 1, column: 15 },
11038
end: { line: 1, column: 24 }
11039
}
11040
},
11041
init: {
11042
type: 'Literal',
11043
value: 42,
11044
raw: '42',
11045
range: [27, 29],
11046
loc: {
11047
start: { line: 1, column: 27 },
11048
end: { line: 1, column: 29 }
11049
}
11050
},
11051
range: [15, 29],
11052
loc: {
11053
start: { line: 1, column: 15 },
11054
end: { line: 1, column: 29 }
11055
}
11056
}],
11057
kind: 'var',
11058
range: [0, 29],
11059
loc: {
11060
start: { line: 1, column: 0 },
11061
end: { line: 1, column: 29 }
11062
}
11063
},
11064
11065
'var x = 14, y = 3, z = 1977': {
11066
type: 'VariableDeclaration',
11067
declarations: [{
11068
type: 'VariableDeclarator',
11069
id: {
11070
type: 'Identifier',
11071
name: 'x',
11072
range: [4, 5],
11073
loc: {
11074
start: { line: 1, column: 4 },
11075
end: { line: 1, column: 5 }
11076
}
11077
},
11078
init: {
11079
type: 'Literal',
11080
value: 14,
11081
raw: '14',
11082
range: [8, 10],
11083
loc: {
11084
start: { line: 1, column: 8 },
11085
end: { line: 1, column: 10 }
11086
}
11087
},
11088
range: [4, 10],
11089
loc: {
11090
start: { line: 1, column: 4 },
11091
end: { line: 1, column: 10 }
11092
}
11093
}, {
11094
type: 'VariableDeclarator',
11095
id: {
11096
type: 'Identifier',
11097
name: 'y',
11098
range: [12, 13],
11099
loc: {
11100
start: { line: 1, column: 12 },
11101
end: { line: 1, column: 13 }
11102
}
11103
},
11104
init: {
11105
type: 'Literal',
11106
value: 3,
11107
raw: '3',
11108
range: [16, 17],
11109
loc: {
11110
start: { line: 1, column: 16 },
11111
end: { line: 1, column: 17 }
11112
}
11113
},
11114
range: [12, 17],
11115
loc: {
11116
start: { line: 1, column: 12 },
11117
end: { line: 1, column: 17 }
11118
}
11119
}, {
11120
type: 'VariableDeclarator',
11121
id: {
11122
type: 'Identifier',
11123
name: 'z',
11124
range: [19, 20],
11125
loc: {
11126
start: { line: 1, column: 19 },
11127
end: { line: 1, column: 20 }
11128
}
11129
},
11130
init: {
11131
type: 'Literal',
11132
value: 1977,
11133
raw: '1977',
11134
range: [23, 27],
11135
loc: {
11136
start: { line: 1, column: 23 },
11137
end: { line: 1, column: 27 }
11138
}
11139
},
11140
range: [19, 27],
11141
loc: {
11142
start: { line: 1, column: 19 },
11143
end: { line: 1, column: 27 }
11144
}
11145
}],
11146
kind: 'var',
11147
range: [0, 27],
11148
loc: {
11149
start: { line: 1, column: 0 },
11150
end: { line: 1, column: 27 }
11151
}
11152
},
11153
11154
'var implements, interface, package': {
11155
type: 'VariableDeclaration',
11156
declarations: [{
11157
type: 'VariableDeclarator',
11158
id: {
11159
type: 'Identifier',
11160
name: 'implements',
11161
range: [4, 14],
11162
loc: {
11163
start: { line: 1, column: 4 },
11164
end: { line: 1, column: 14 }
11165
}
11166
},
11167
init: null,
11168
range: [4, 14],
11169
loc: {
11170
start: { line: 1, column: 4 },
11171
end: { line: 1, column: 14 }
11172
}
11173
}, {
11174
type: 'VariableDeclarator',
11175
id: {
11176
type: 'Identifier',
11177
name: 'interface',
11178
range: [16, 25],
11179
loc: {
11180
start: { line: 1, column: 16 },
11181
end: { line: 1, column: 25 }
11182
}
11183
},
11184
init: null,
11185
range: [16, 25],
11186
loc: {
11187
start: { line: 1, column: 16 },
11188
end: { line: 1, column: 25 }
11189
}
11190
}, {
11191
type: 'VariableDeclarator',
11192
id: {
11193
type: 'Identifier',
11194
name: 'package',
11195
range: [27, 34],
11196
loc: {
11197
start: { line: 1, column: 27 },
11198
end: { line: 1, column: 34 }
11199
}
11200
},
11201
init: null,
11202
range: [27, 34],
11203
loc: {
11204
start: { line: 1, column: 27 },
11205
end: { line: 1, column: 34 }
11206
}
11207
}],
11208
kind: 'var',
11209
range: [0, 34],
11210
loc: {
11211
start: { line: 1, column: 0 },
11212
end: { line: 1, column: 34 }
11213
}
11214
},
11215
11216
'var private, protected, public, static': {
11217
type: 'VariableDeclaration',
11218
declarations: [{
11219
type: 'VariableDeclarator',
11220
id: {
11221
type: 'Identifier',
11222
name: 'private',
11223
range: [4, 11],
11224
loc: {
11225
start: { line: 1, column: 4 },
11226
end: { line: 1, column: 11 }
11227
}
11228
},
11229
init: null,
11230
range: [4, 11],
11231
loc: {
11232
start: { line: 1, column: 4 },
11233
end: { line: 1, column: 11 }
11234
}
11235
}, {
11236
type: 'VariableDeclarator',
11237
id: {
11238
type: 'Identifier',
11239
name: 'protected',
11240
range: [13, 22],
11241
loc: {
11242
start: { line: 1, column: 13 },
11243
end: { line: 1, column: 22 }
11244
}
11245
},
11246
init: null,
11247
range: [13, 22],
11248
loc: {
11249
start: { line: 1, column: 13 },
11250
end: { line: 1, column: 22 }
11251
}
11252
}, {
11253
type: 'VariableDeclarator',
11254
id: {
11255
type: 'Identifier',
11256
name: 'public',
11257
range: [24, 30],
11258
loc: {
11259
start: { line: 1, column: 24 },
11260
end: { line: 1, column: 30 }
11261
}
11262
},
11263
init: null,
11264
range: [24, 30],
11265
loc: {
11266
start: { line: 1, column: 24 },
11267
end: { line: 1, column: 30 }
11268
}
11269
}, {
11270
type: 'VariableDeclarator',
11271
id: {
11272
type: 'Identifier',
11273
name: 'static',
11274
range: [32, 38],
11275
loc: {
11276
start: { line: 1, column: 32 },
11277
end: { line: 1, column: 38 }
11278
}
11279
},
11280
init: null,
11281
range: [32, 38],
11282
loc: {
11283
start: { line: 1, column: 32 },
11284
end: { line: 1, column: 38 }
11285
}
11286
}],
11287
kind: 'var',
11288
range: [0, 38],
11289
loc: {
11290
start: { line: 1, column: 0 },
11291
end: { line: 1, column: 38 }
11292
}
11293
}
11294
11295
},
11296
11297
'Let Statement': {
11298
11299
'let x': {
11300
type: 'VariableDeclaration',
11301
declarations: [{
11302
type: 'VariableDeclarator',
11303
id: {
11304
type: 'Identifier',
11305
name: 'x',
11306
range: [4, 5],
11307
loc: {
11308
start: { line: 1, column: 4 },
11309
end: { line: 1, column: 5 }
11310
}
11311
},
11312
init: null,
11313
range: [4, 5],
11314
loc: {
11315
start: { line: 1, column: 4 },
11316
end: { line: 1, column: 5 }
11317
}
11318
}],
11319
kind: 'let',
11320
range: [0, 5],
11321
loc: {
11322
start: { line: 1, column: 0 },
11323
end: { line: 1, column: 5 }
11324
}
11325
},
11326
11327
'{ let x }': {
11328
type: 'BlockStatement',
11329
body: [{
11330
type: 'VariableDeclaration',
11331
declarations: [{
11332
type: 'VariableDeclarator',
11333
id: {
11334
type: 'Identifier',
11335
name: 'x',
11336
range: [6, 7],
11337
loc: {
11338
start: { line: 1, column: 6 },
11339
end: { line: 1, column: 7 }
11340
}
11341
},
11342
init: null,
11343
range: [6, 7],
11344
loc: {
11345
start: { line: 1, column: 6 },
11346
end: { line: 1, column: 7 }
11347
}
11348
}],
11349
kind: 'let',
11350
range: [2, 8],
11351
loc: {
11352
start: { line: 1, column: 2 },
11353
end: { line: 1, column: 8 }
11354
}
11355
}],
11356
range: [0, 9],
11357
loc: {
11358
start: { line: 1, column: 0 },
11359
end: { line: 1, column: 9 }
11360
}
11361
},
11362
11363
'{ let x = 42 }': {
11364
type: 'BlockStatement',
11365
body: [{
11366
type: 'VariableDeclaration',
11367
declarations: [{
11368
type: 'VariableDeclarator',
11369
id: {
11370
type: 'Identifier',
11371
name: 'x',
11372
range: [6, 7],
11373
loc: {
11374
start: { line: 1, column: 6 },
11375
end: { line: 1, column: 7 }
11376
}
11377
},
11378
init: {
11379
type: 'Literal',
11380
value: 42,
11381
raw: '42',
11382
range: [10, 12],
11383
loc: {
11384
start: { line: 1, column: 10 },
11385
end: { line: 1, column: 12 }
11386
}
11387
},
11388
range: [6, 12],
11389
loc: {
11390
start: { line: 1, column: 6 },
11391
end: { line: 1, column: 12 }
11392
}
11393
}],
11394
kind: 'let',
11395
range: [2, 13],
11396
loc: {
11397
start: { line: 1, column: 2 },
11398
end: { line: 1, column: 13 }
11399
}
11400
}],
11401
range: [0, 14],
11402
loc: {
11403
start: { line: 1, column: 0 },
11404
end: { line: 1, column: 14 }
11405
}
11406
},
11407
11408
'{ let x = 14, y = 3, z = 1977 }': {
11409
type: 'BlockStatement',
11410
body: [{
11411
type: 'VariableDeclaration',
11412
declarations: [{
11413
type: 'VariableDeclarator',
11414
id: {
11415
type: 'Identifier',
11416
name: 'x',
11417
range: [6, 7],
11418
loc: {
11419
start: { line: 1, column: 6 },
11420
end: { line: 1, column: 7 }
11421
}
11422
},
11423
init: {
11424
type: 'Literal',
11425
value: 14,
11426
raw: '14',
11427
range: [10, 12],
11428
loc: {
11429
start: { line: 1, column: 10 },
11430
end: { line: 1, column: 12 }
11431
}
11432
},
11433
range: [6, 12],
11434
loc: {
11435
start: { line: 1, column: 6 },
11436
end: { line: 1, column: 12 }
11437
}
11438
}, {
11439
type: 'VariableDeclarator',
11440
id: {
11441
type: 'Identifier',
11442
name: 'y',
11443
range: [14, 15],
11444
loc: {
11445
start: { line: 1, column: 14 },
11446
end: { line: 1, column: 15 }
11447
}
11448
},
11449
init: {
11450
type: 'Literal',
11451
value: 3,
11452
raw: '3',
11453
range: [18, 19],
11454
loc: {
11455
start: { line: 1, column: 18 },
11456
end: { line: 1, column: 19 }
11457
}
11458
},
11459
range: [14, 19],
11460
loc: {
11461
start: { line: 1, column: 14 },
11462
end: { line: 1, column: 19 }
11463
}
11464
}, {
11465
type: 'VariableDeclarator',
11466
id: {
11467
type: 'Identifier',
11468
name: 'z',
11469
range: [21, 22],
11470
loc: {
11471
start: { line: 1, column: 21 },
11472
end: { line: 1, column: 22 }
11473
}
11474
},
11475
init: {
11476
type: 'Literal',
11477
value: 1977,
11478
raw: '1977',
11479
range: [25, 29],
11480
loc: {
11481
start: { line: 1, column: 25 },
11482
end: { line: 1, column: 29 }
11483
}
11484
},
11485
range: [21, 29],
11486
loc: {
11487
start: { line: 1, column: 21 },
11488
end: { line: 1, column: 29 }
11489
}
11490
}],
11491
kind: 'let',
11492
range: [2, 30],
11493
loc: {
11494
start: { line: 1, column: 2 },
11495
end: { line: 1, column: 30 }
11496
}
11497
}],
11498
range: [0, 31],
11499
loc: {
11500
start: { line: 1, column: 0 },
11501
end: { line: 1, column: 31 }
11502
}
11503
}
11504
11505
},
11506
11507
'Const Statement': {
11508
11509
'const x = 42': {
11510
type: 'VariableDeclaration',
11511
declarations: [{
11512
type: 'VariableDeclarator',
11513
id: {
11514
type: 'Identifier',
11515
name: 'x',
11516
range: [6, 7],
11517
loc: {
11518
start: { line: 1, column: 6 },
11519
end: { line: 1, column: 7 }
11520
}
11521
},
11522
init: {
11523
type: 'Literal',
11524
value: 42,
11525
raw: '42',
11526
range: [10, 12],
11527
loc: {
11528
start: { line: 1, column: 10 },
11529
end: { line: 1, column: 12 }
11530
}
11531
},
11532
range: [6, 12],
11533
loc: {
11534
start: { line: 1, column: 6 },
11535
end: { line: 1, column: 12 }
11536
}
11537
}],
11538
kind: 'const',
11539
range: [0, 12],
11540
loc: {
11541
start: { line: 1, column: 0 },
11542
end: { line: 1, column: 12 }
11543
}
11544
},
11545
11546
'{ const x = 42 }': {
11547
type: 'BlockStatement',
11548
body: [{
11549
type: 'VariableDeclaration',
11550
declarations: [{
11551
type: 'VariableDeclarator',
11552
id: {
11553
type: 'Identifier',
11554
name: 'x',
11555
range: [8, 9],
11556
loc: {
11557
start: { line: 1, column: 8 },
11558
end: { line: 1, column: 9 }
11559
}
11560
},
11561
init: {
11562
type: 'Literal',
11563
value: 42,
11564
raw: '42',
11565
range: [12, 14],
11566
loc: {
11567
start: { line: 1, column: 12 },
11568
end: { line: 1, column: 14 }
11569
}
11570
},
11571
range: [8, 14],
11572
loc: {
11573
start: { line: 1, column: 8 },
11574
end: { line: 1, column: 14 }
11575
}
11576
}],
11577
kind: 'const',
11578
range: [2, 15],
11579
loc: {
11580
start: { line: 1, column: 2 },
11581
end: { line: 1, column: 15 }
11582
}
11583
}],
11584
range: [0, 16],
11585
loc: {
11586
start: { line: 1, column: 0 },
11587
end: { line: 1, column: 16 }
11588
}
11589
},
11590
11591
'{ const x = 14, y = 3, z = 1977 }': {
11592
type: 'BlockStatement',
11593
body: [{
11594
type: 'VariableDeclaration',
11595
declarations: [{
11596
type: 'VariableDeclarator',
11597
id: {
11598
type: 'Identifier',
11599
name: 'x',
11600
range: [8, 9],
11601
loc: {
11602
start: { line: 1, column: 8 },
11603
end: { line: 1, column: 9 }
11604
}
11605
},
11606
init: {
11607
type: 'Literal',
11608
value: 14,
11609
raw: '14',
11610
range: [12, 14],
11611
loc: {
11612
start: { line: 1, column: 12 },
11613
end: { line: 1, column: 14 }
11614
}
11615
},
11616
range: [8, 14],
11617
loc: {
11618
start: { line: 1, column: 8 },
11619
end: { line: 1, column: 14 }
11620
}
11621
}, {
11622
type: 'VariableDeclarator',
11623
id: {
11624
type: 'Identifier',
11625
name: 'y',
11626
range: [16, 17],
11627
loc: {
11628
start: { line: 1, column: 16 },
11629
end: { line: 1, column: 17 }
11630
}
11631
},
11632
init: {
11633
type: 'Literal',
11634
value: 3,
11635
raw: '3',
11636
range: [20, 21],
11637
loc: {
11638
start: { line: 1, column: 20 },
11639
end: { line: 1, column: 21 }
11640
}
11641
},
11642
range: [16, 21],
11643
loc: {
11644
start: { line: 1, column: 16 },
11645
end: { line: 1, column: 21 }
11646
}
11647
}, {
11648
type: 'VariableDeclarator',
11649
id: {
11650
type: 'Identifier',
11651
name: 'z',
11652
range: [23, 24],
11653
loc: {
11654
start: { line: 1, column: 23 },
11655
end: { line: 1, column: 24 }
11656
}
11657
},
11658
init: {
11659
type: 'Literal',
11660
value: 1977,
11661
raw: '1977',
11662
range: [27, 31],
11663
loc: {
11664
start: { line: 1, column: 27 },
11665
end: { line: 1, column: 31 }
11666
}
11667
},
11668
range: [23, 31],
11669
loc: {
11670
start: { line: 1, column: 23 },
11671
end: { line: 1, column: 31 }
11672
}
11673
}],
11674
kind: 'const',
11675
range: [2, 32],
11676
loc: {
11677
start: { line: 1, column: 2 },
11678
end: { line: 1, column: 32 }
11679
}
11680
}],
11681
range: [0, 33],
11682
loc: {
11683
start: { line: 1, column: 0 },
11684
end: { line: 1, column: 33 }
11685
}
11686
}
11687
11688
},
11689
11690
'Empty Statement': {
11691
11692
';': {
11693
type: 'EmptyStatement',
11694
range: [0, 1],
11695
loc: {
11696
start: { line: 1, column: 0 },
11697
end: { line: 1, column: 1 }
11698
}
11699
}
11700
11701
},
11702
11703
'Expression Statement': {
11704
11705
'x': {
11706
type: 'ExpressionStatement',
11707
expression: {
11708
type: 'Identifier',
11709
name: 'x',
11710
range: [0, 1],
11711
loc: {
11712
start: { line: 1, column: 0 },
11713
end: { line: 1, column: 1 }
11714
}
11715
},
11716
range: [0, 1],
11717
loc: {
11718
start: { line: 1, column: 0 },
11719
end: { line: 1, column: 1 }
11720
}
11721
},
11722
11723
'x, y': {
11724
type: 'ExpressionStatement',
11725
expression: {
11726
type: 'SequenceExpression',
11727
expressions: [{
11728
type: 'Identifier',
11729
name: 'x',
11730
range: [0, 1],
11731
loc: {
11732
start: { line: 1, column: 0 },
11733
end: { line: 1, column: 1 }
11734
}
11735
}, {
11736
type: 'Identifier',
11737
name: 'y',
11738
range: [3, 4],
11739
loc: {
11740
start: { line: 1, column: 3 },
11741
end: { line: 1, column: 4 }
11742
}
11743
}],
11744
range: [0, 4],
11745
loc: {
11746
start: { line: 1, column: 0 },
11747
end: { line: 1, column: 4 }
11748
}
11749
},
11750
range: [0, 4],
11751
loc: {
11752
start: { line: 1, column: 0 },
11753
end: { line: 1, column: 4 }
11754
}
11755
},
11756
11757
'\\u0061': {
11758
type: 'ExpressionStatement',
11759
expression: {
11760
type: 'Identifier',
11761
name: 'a',
11762
range: [0, 6],
11763
loc: {
11764
start: { line: 1, column: 0 },
11765
end: { line: 1, column: 6 }
11766
}
11767
},
11768
range: [0, 6],
11769
loc: {
11770
start: { line: 1, column: 0 },
11771
end: { line: 1, column: 6 }
11772
}
11773
},
11774
11775
'a\\u0061': {
11776
type: 'ExpressionStatement',
11777
expression: {
11778
type: 'Identifier',
11779
name: 'aa',
11780
range: [0, 7],
11781
loc: {
11782
start: { line: 1, column: 0 },
11783
end: { line: 1, column: 7 }
11784
}
11785
},
11786
range: [0, 7],
11787
loc: {
11788
start: { line: 1, column: 0 },
11789
end: { line: 1, column: 7 }
11790
}
11791
},
11792
11793
'\\u0061a': {
11794
type: 'ExpressionStatement',
11795
expression: {
11796
type: 'Identifier',
11797
name: 'aa',
11798
range: [0, 7],
11799
loc: {
11800
start: { line: 1, column: 0 },
11801
end: { line: 1, column: 7 }
11802
}
11803
},
11804
range: [0, 7],
11805
loc: {
11806
start: { line: 1, column: 0 },
11807
end: { line: 1, column: 7 }
11808
}
11809
},
11810
11811
'\\u0061a ': {
11812
type: 'ExpressionStatement',
11813
expression: {
11814
type: 'Identifier',
11815
name: 'aa',
11816
range: [0, 7],
11817
loc: {
11818
start: { line: 1, column: 0 },
11819
end: { line: 1, column: 7 }
11820
}
11821
},
11822
range: [0, 8],
11823
loc: {
11824
start: { line: 1, column: 0 },
11825
end: { line: 1, column: 8 }
11826
}
11827
}
11828
},
11829
11830
'If Statement': {
11831
11832
'if (morning) goodMorning()': {
11833
type: 'IfStatement',
11834
test: {
11835
type: 'Identifier',
11836
name: 'morning',
11837
range: [4, 11],
11838
loc: {
11839
start: { line: 1, column: 4 },
11840
end: { line: 1, column: 11 }
11841
}
11842
},
11843
consequent: {
11844
type: 'ExpressionStatement',
11845
expression: {
11846
type: 'CallExpression',
11847
callee: {
11848
type: 'Identifier',
11849
name: 'goodMorning',
11850
range: [13, 24],
11851
loc: {
11852
start: { line: 1, column: 13 },
11853
end: { line: 1, column: 24 }
11854
}
11855
},
11856
'arguments': [],
11857
range: [13, 26],
11858
loc: {
11859
start: { line: 1, column: 13 },
11860
end: { line: 1, column: 26 }
11861
}
11862
},
11863
range: [13, 26],
11864
loc: {
11865
start: { line: 1, column: 13 },
11866
end: { line: 1, column: 26 }
11867
}
11868
},
11869
alternate: null,
11870
range: [0, 26],
11871
loc: {
11872
start: { line: 1, column: 0 },
11873
end: { line: 1, column: 26 }
11874
}
11875
},
11876
11877
'if (morning) (function(){})': {
11878
type: 'IfStatement',
11879
test: {
11880
type: 'Identifier',
11881
name: 'morning',
11882
range: [4, 11],
11883
loc: {
11884
start: { line: 1, column: 4 },
11885
end: { line: 1, column: 11 }
11886
}
11887
},
11888
consequent: {
11889
type: 'ExpressionStatement',
11890
expression: {
11891
type: 'FunctionExpression',
11892
id: null,
11893
params: [],
11894
defaults: [],
11895
body: {
11896
type: 'BlockStatement',
11897
body: [],
11898
range: [24, 26],
11899
loc: {
11900
start: { line: 1, column: 24 },
11901
end: { line: 1, column: 26 }
11902
}
11903
},
11904
rest: null,
11905
generator: false,
11906
expression: false,
11907
range: [14, 26],
11908
loc: {
11909
start: { line: 1, column: 14 },
11910
end: { line: 1, column: 26 }
11911
}
11912
},
11913
range: [13, 27],
11914
loc: {
11915
start: { line: 1, column: 13 },
11916
end: { line: 1, column: 27 }
11917
}
11918
},
11919
alternate: null,
11920
range: [0, 27],
11921
loc: {
11922
start: { line: 1, column: 0 },
11923
end: { line: 1, column: 27 }
11924
}
11925
},
11926
11927
'if (morning) var x = 0;': {
11928
type: 'IfStatement',
11929
test: {
11930
type: 'Identifier',
11931
name: 'morning',
11932
range: [4, 11],
11933
loc: {
11934
start: { line: 1, column: 4 },
11935
end: { line: 1, column: 11 }
11936
}
11937
},
11938
consequent: {
11939
type: 'VariableDeclaration',
11940
declarations: [{
11941
type: 'VariableDeclarator',
11942
id: {
11943
type: 'Identifier',
11944
name: 'x',
11945
range: [17, 18],
11946
loc: {
11947
start: { line: 1, column: 17 },
11948
end: { line: 1, column: 18 }
11949
}
11950
},
11951
init: {
11952
type: 'Literal',
11953
value: 0,
11954
raw: '0',
11955
range: [21, 22],
11956
loc: {
11957
start: { line: 1, column: 21 },
11958
end: { line: 1, column: 22 }
11959
}
11960
},
11961
range: [17, 22],
11962
loc: {
11963
start: { line: 1, column: 17 },
11964
end: { line: 1, column: 22 }
11965
}
11966
}],
11967
kind: 'var',
11968
range: [13, 23],
11969
loc: {
11970
start: { line: 1, column: 13 },
11971
end: { line: 1, column: 23 }
11972
}
11973
},
11974
alternate: null,
11975
range: [0, 23],
11976
loc: {
11977
start: { line: 1, column: 0 },
11978
end: { line: 1, column: 23 }
11979
}
11980
},
11981
11982
'if (morning) function a(){}': {
11983
type: 'IfStatement',
11984
test: {
11985
type: 'Identifier',
11986
name: 'morning',
11987
range: [4, 11],
11988
loc: {
11989
start: { line: 1, column: 4 },
11990
end: { line: 1, column: 11 }
11991
}
11992
},
11993
consequent: {
11994
type: 'FunctionDeclaration',
11995
id: {
11996
type: 'Identifier',
11997
name: 'a',
11998
range: [22, 23],
11999
loc: {
12000
start: { line: 1, column: 22 },
12001
end: { line: 1, column: 23 }
12002
}
12003
},
12004
params: [],
12005
defaults: [],
12006
body: {
12007
type: 'BlockStatement',
12008
body: [],
12009
range: [25, 27],
12010
loc: {
12011
start: { line: 1, column: 25 },
12012
end: { line: 1, column: 27 }
12013
}
12014
},
12015
rest: null,
12016
generator: false,
12017
expression: false,
12018
range: [13, 27],
12019
loc: {
12020
start: { line: 1, column: 13 },
12021
end: { line: 1, column: 27 }
12022
}
12023
},
12024
alternate: null,
12025
range: [0, 27],
12026
loc: {
12027
start: { line: 1, column: 0 },
12028
end: { line: 1, column: 27 }
12029
}
12030
},
12031
12032
'if (morning) goodMorning(); else goodDay()': {
12033
type: 'IfStatement',
12034
test: {
12035
type: 'Identifier',
12036
name: 'morning',
12037
range: [4, 11],
12038
loc: {
12039
start: { line: 1, column: 4 },
12040
end: { line: 1, column: 11 }
12041
}
12042
},
12043
consequent: {
12044
type: 'ExpressionStatement',
12045
expression: {
12046
type: 'CallExpression',
12047
callee: {
12048
type: 'Identifier',
12049
name: 'goodMorning',
12050
range: [13, 24],
12051
loc: {
12052
start: { line: 1, column: 13 },
12053
end: { line: 1, column: 24 }
12054
}
12055
},
12056
'arguments': [],
12057
range: [13, 26],
12058
loc: {
12059
start: { line: 1, column: 13 },
12060
end: { line: 1, column: 26 }
12061
}
12062
},
12063
range: [13, 27],
12064
loc: {
12065
start: { line: 1, column: 13 },
12066
end: { line: 1, column: 27 }
12067
}
12068
},
12069
alternate: {
12070
type: 'ExpressionStatement',
12071
expression: {
12072
type: 'CallExpression',
12073
callee: {
12074
type: 'Identifier',
12075
name: 'goodDay',
12076
range: [33, 40],
12077
loc: {
12078
start: { line: 1, column: 33 },
12079
end: { line: 1, column: 40 }
12080
}
12081
},
12082
'arguments': [],
12083
range: [33, 42],
12084
loc: {
12085
start: { line: 1, column: 33 },
12086
end: { line: 1, column: 42 }
12087
}
12088
},
12089
range: [33, 42],
12090
loc: {
12091
start: { line: 1, column: 33 },
12092
end: { line: 1, column: 42 }
12093
}
12094
},
12095
range: [0, 42],
12096
loc: {
12097
start: { line: 1, column: 0 },
12098
end: { line: 1, column: 42 }
12099
}
12100
}
12101
12102
},
12103
12104
'Iteration Statements': {
12105
12106
'do keep(); while (true)': {
12107
type: 'DoWhileStatement',
12108
body: {
12109
type: 'ExpressionStatement',
12110
expression: {
12111
type: 'CallExpression',
12112
callee: {
12113
type: 'Identifier',
12114
name: 'keep',
12115
range: [3, 7],
12116
loc: {
12117
start: { line: 1, column: 3 },
12118
end: { line: 1, column: 7 }
12119
}
12120
},
12121
'arguments': [],
12122
range: [3, 9],
12123
loc: {
12124
start: { line: 1, column: 3 },
12125
end: { line: 1, column: 9 }
12126
}
12127
},
12128
range: [3, 10],
12129
loc: {
12130
start: { line: 1, column: 3 },
12131
end: { line: 1, column: 10 }
12132
}
12133
},
12134
test: {
12135
type: 'Literal',
12136
value: true,
12137
raw: 'true',
12138
range: [18, 22],
12139
loc: {
12140
start: { line: 1, column: 18 },
12141
end: { line: 1, column: 22 }
12142
}
12143
},
12144
range: [0, 23],
12145
loc: {
12146
start: { line: 1, column: 0 },
12147
end: { line: 1, column: 23 }
12148
}
12149
},
12150
12151
'do keep(); while (true);': {
12152
type: 'DoWhileStatement',
12153
body: {
12154
type: 'ExpressionStatement',
12155
expression: {
12156
type: 'CallExpression',
12157
callee: {
12158
type: 'Identifier',
12159
name: 'keep',
12160
range: [3, 7],
12161
loc: {
12162
start: { line: 1, column: 3 },
12163
end: { line: 1, column: 7 }
12164
}
12165
},
12166
'arguments': [],
12167
range: [3, 9],
12168
loc: {
12169
start: { line: 1, column: 3 },
12170
end: { line: 1, column: 9 }
12171
}
12172
},
12173
range: [3, 10],
12174
loc: {
12175
start: { line: 1, column: 3 },
12176
end: { line: 1, column: 10 }
12177
}
12178
},
12179
test: {
12180
type: 'Literal',
12181
value: true,
12182
raw: 'true',
12183
range: [18, 22],
12184
loc: {
12185
start: { line: 1, column: 18 },
12186
end: { line: 1, column: 22 }
12187
}
12188
},
12189
range: [0, 24],
12190
loc: {
12191
start: { line: 1, column: 0 },
12192
end: { line: 1, column: 24 }
12193
}
12194
},
12195
12196
'do { x++; y--; } while (x < 10)': {
12197
type: 'DoWhileStatement',
12198
body: {
12199
type: 'BlockStatement',
12200
body: [{
12201
type: 'ExpressionStatement',
12202
expression: {
12203
type: 'UpdateExpression',
12204
operator: '++',
12205
argument: {
12206
type: 'Identifier',
12207
name: 'x',
12208
range: [5, 6],
12209
loc: {
12210
start: { line: 1, column: 5 },
12211
end: { line: 1, column: 6 }
12212
}
12213
},
12214
prefix: false,
12215
range: [5, 8],
12216
loc: {
12217
start: { line: 1, column: 5 },
12218
end: { line: 1, column: 8 }
12219
}
12220
},
12221
range: [5, 9],
12222
loc: {
12223
start: { line: 1, column: 5 },
12224
end: { line: 1, column: 9 }
12225
}
12226
}, {
12227
type: 'ExpressionStatement',
12228
expression: {
12229
type: 'UpdateExpression',
12230
operator: '--',
12231
argument: {
12232
type: 'Identifier',
12233
name: 'y',
12234
range: [10, 11],
12235
loc: {
12236
start: { line: 1, column: 10 },
12237
end: { line: 1, column: 11 }
12238
}
12239
},
12240
prefix: false,
12241
range: [10, 13],
12242
loc: {
12243
start: { line: 1, column: 10 },
12244
end: { line: 1, column: 13 }
12245
}
12246
},
12247
range: [10, 14],
12248
loc: {
12249
start: { line: 1, column: 10 },
12250
end: { line: 1, column: 14 }
12251
}
12252
}],
12253
range: [3, 16],
12254
loc: {
12255
start: { line: 1, column: 3 },
12256
end: { line: 1, column: 16 }
12257
}
12258
},
12259
test: {
12260
type: 'BinaryExpression',
12261
operator: '<',
12262
left: {
12263
type: 'Identifier',
12264
name: 'x',
12265
range: [24, 25],
12266
loc: {
12267
start: { line: 1, column: 24 },
12268
end: { line: 1, column: 25 }
12269
}
12270
},
12271
right: {
12272
type: 'Literal',
12273
value: 10,
12274
raw: '10',
12275
range: [28, 30],
12276
loc: {
12277
start: { line: 1, column: 28 },
12278
end: { line: 1, column: 30 }
12279
}
12280
},
12281
range: [24, 30],
12282
loc: {
12283
start: { line: 1, column: 24 },
12284
end: { line: 1, column: 30 }
12285
}
12286
},
12287
range: [0, 31],
12288
loc: {
12289
start: { line: 1, column: 0 },
12290
end: { line: 1, column: 31 }
12291
}
12292
},
12293
12294
'{ do { } while (false) false }': {
12295
type: 'BlockStatement',
12296
body: [{
12297
type: 'DoWhileStatement',
12298
body: {
12299
type: 'BlockStatement',
12300
body: [],
12301
range: [5, 8],
12302
loc: {
12303
start: { line: 1, column: 5 },
12304
end: { line: 1, column: 8 }
12305
}
12306
},
12307
test: {
12308
type: 'Literal',
12309
value: false,
12310
raw: 'false',
12311
range: [16, 21],
12312
loc: {
12313
start: { line: 1, column: 16 },
12314
end: { line: 1, column: 21 }
12315
}
12316
},
12317
range: [2, 22],
12318
loc: {
12319
start: { line: 1, column: 2 },
12320
end: { line: 1, column: 22 }
12321
}
12322
}, {
12323
type: 'ExpressionStatement',
12324
expression: {
12325
type: 'Literal',
12326
value: false,
12327
raw: 'false',
12328
range: [23, 28],
12329
loc: {
12330
start: { line: 1, column: 23 },
12331
end: { line: 1, column: 28 }
12332
}
12333
},
12334
range: [23, 29],
12335
loc: {
12336
start: { line: 1, column: 23 },
12337
end: { line: 1, column: 29 }
12338
}
12339
}],
12340
range: [0, 30],
12341
loc: {
12342
start: { line: 1, column: 0 },
12343
end: { line: 1, column: 30 }
12344
}
12345
},
12346
12347
'while (true) doSomething()': {
12348
type: 'WhileStatement',
12349
test: {
12350
type: 'Literal',
12351
value: true,
12352
raw: 'true',
12353
range: [7, 11],
12354
loc: {
12355
start: { line: 1, column: 7 },
12356
end: { line: 1, column: 11 }
12357
}
12358
},
12359
body: {
12360
type: 'ExpressionStatement',
12361
expression: {
12362
type: 'CallExpression',
12363
callee: {
12364
type: 'Identifier',
12365
name: 'doSomething',
12366
range: [13, 24],
12367
loc: {
12368
start: { line: 1, column: 13 },
12369
end: { line: 1, column: 24 }
12370
}
12371
},
12372
'arguments': [],
12373
range: [13, 26],
12374
loc: {
12375
start: { line: 1, column: 13 },
12376
end: { line: 1, column: 26 }
12377
}
12378
},
12379
range: [13, 26],
12380
loc: {
12381
start: { line: 1, column: 13 },
12382
end: { line: 1, column: 26 }
12383
}
12384
},
12385
range: [0, 26],
12386
loc: {
12387
start: { line: 1, column: 0 },
12388
end: { line: 1, column: 26 }
12389
}
12390
},
12391
12392
'while (x < 10) { x++; y--; }': {
12393
type: 'WhileStatement',
12394
test: {
12395
type: 'BinaryExpression',
12396
operator: '<',
12397
left: {
12398
type: 'Identifier',
12399
name: 'x',
12400
range: [7, 8],
12401
loc: {
12402
start: { line: 1, column: 7 },
12403
end: { line: 1, column: 8 }
12404
}
12405
},
12406
right: {
12407
type: 'Literal',
12408
value: 10,
12409
raw: '10',
12410
range: [11, 13],
12411
loc: {
12412
start: { line: 1, column: 11 },
12413
end: { line: 1, column: 13 }
12414
}
12415
},
12416
range: [7, 13],
12417
loc: {
12418
start: { line: 1, column: 7 },
12419
end: { line: 1, column: 13 }
12420
}
12421
},
12422
body: {
12423
type: 'BlockStatement',
12424
body: [{
12425
type: 'ExpressionStatement',
12426
expression: {
12427
type: 'UpdateExpression',
12428
operator: '++',
12429
argument: {
12430
type: 'Identifier',
12431
name: 'x',
12432
range: [17, 18],
12433
loc: {
12434
start: { line: 1, column: 17 },
12435
end: { line: 1, column: 18 }
12436
}
12437
},
12438
prefix: false,
12439
range: [17, 20],
12440
loc: {
12441
start: { line: 1, column: 17 },
12442
end: { line: 1, column: 20 }
12443
}
12444
},
12445
range: [17, 21],
12446
loc: {
12447
start: { line: 1, column: 17 },
12448
end: { line: 1, column: 21 }
12449
}
12450
}, {
12451
type: 'ExpressionStatement',
12452
expression: {
12453
type: 'UpdateExpression',
12454
operator: '--',
12455
argument: {
12456
type: 'Identifier',
12457
name: 'y',
12458
range: [22, 23],
12459
loc: {
12460
start: { line: 1, column: 22 },
12461
end: { line: 1, column: 23 }
12462
}
12463
},
12464
prefix: false,
12465
range: [22, 25],
12466
loc: {
12467
start: { line: 1, column: 22 },
12468
end: { line: 1, column: 25 }
12469
}
12470
},
12471
range: [22, 26],
12472
loc: {
12473
start: { line: 1, column: 22 },
12474
end: { line: 1, column: 26 }
12475
}
12476
}],
12477
range: [15, 28],
12478
loc: {
12479
start: { line: 1, column: 15 },
12480
end: { line: 1, column: 28 }
12481
}
12482
},
12483
range: [0, 28],
12484
loc: {
12485
start: { line: 1, column: 0 },
12486
end: { line: 1, column: 28 }
12487
}
12488
},
12489
12490
'for(;;);': {
12491
type: 'ForStatement',
12492
init: null,
12493
test: null,
12494
update: null,
12495
body: {
12496
type: 'EmptyStatement',
12497
range: [7, 8],
12498
loc: {
12499
start: { line: 1, column: 7 },
12500
end: { line: 1, column: 8 }
12501
}
12502
},
12503
range: [0, 8],
12504
loc: {
12505
start: { line: 1, column: 0 },
12506
end: { line: 1, column: 8 }
12507
}
12508
},
12509
12510
'for(;;){}': {
12511
type: 'ForStatement',
12512
init: null,
12513
test: null,
12514
update: null,
12515
body: {
12516
type: 'BlockStatement',
12517
body: [],
12518
range: [7, 9],
12519
loc: {
12520
start: { line: 1, column: 7 },
12521
end: { line: 1, column: 9 }
12522
}
12523
},
12524
range: [0, 9],
12525
loc: {
12526
start: { line: 1, column: 0 },
12527
end: { line: 1, column: 9 }
12528
}
12529
},
12530
12531
'for(x = 0;;);': {
12532
type: 'ForStatement',
12533
init: {
12534
type: 'AssignmentExpression',
12535
operator: '=',
12536
left: {
12537
type: 'Identifier',
12538
name: 'x',
12539
range: [4, 5],
12540
loc: {
12541
start: { line: 1, column: 4 },
12542
end: { line: 1, column: 5 }
12543
}
12544
},
12545
right: {
12546
type: 'Literal',
12547
value: 0,
12548
raw: '0',
12549
range: [8, 9],
12550
loc: {
12551
start: { line: 1, column: 8 },
12552
end: { line: 1, column: 9 }
12553
}
12554
},
12555
range: [4, 9],
12556
loc: {
12557
start: { line: 1, column: 4 },
12558
end: { line: 1, column: 9 }
12559
}
12560
},
12561
test: null,
12562
update: null,
12563
body: {
12564
type: 'EmptyStatement',
12565
range: [12, 13],
12566
loc: {
12567
start: { line: 1, column: 12 },
12568
end: { line: 1, column: 13 }
12569
}
12570
},
12571
range: [0, 13],
12572
loc: {
12573
start: { line: 1, column: 0 },
12574
end: { line: 1, column: 13 }
12575
}
12576
},
12577
12578
'for(var x = 0;;);': {
12579
type: 'ForStatement',
12580
init: {
12581
type: 'VariableDeclaration',
12582
declarations: [{
12583
type: 'VariableDeclarator',
12584
id: {
12585
type: 'Identifier',
12586
name: 'x',
12587
range: [8, 9],
12588
loc: {
12589
start: { line: 1, column: 8 },
12590
end: { line: 1, column: 9 }
12591
}
12592
},
12593
init: {
12594
type: 'Literal',
12595
value: 0,
12596
raw: '0',
12597
range: [12, 13],
12598
loc: {
12599
start: { line: 1, column: 12 },
12600
end: { line: 1, column: 13 }
12601
}
12602
},
12603
range: [8, 13],
12604
loc: {
12605
start: { line: 1, column: 8 },
12606
end: { line: 1, column: 13 }
12607
}
12608
}],
12609
kind: 'var',
12610
range: [4, 13],
12611
loc: {
12612
start: { line: 1, column: 4 },
12613
end: { line: 1, column: 13 }
12614
}
12615
},
12616
test: null,
12617
update: null,
12618
body: {
12619
type: 'EmptyStatement',
12620
range: [16, 17],
12621
loc: {
12622
start: { line: 1, column: 16 },
12623
end: { line: 1, column: 17 }
12624
}
12625
},
12626
range: [0, 17],
12627
loc: {
12628
start: { line: 1, column: 0 },
12629
end: { line: 1, column: 17 }
12630
}
12631
},
12632
12633
'for(let x = 0;;);': {
12634
type: 'ForStatement',
12635
init: {
12636
type: 'VariableDeclaration',
12637
declarations: [{
12638
type: 'VariableDeclarator',
12639
id: {
12640
type: 'Identifier',
12641
name: 'x',
12642
range: [8, 9],
12643
loc: {
12644
start: { line: 1, column: 8 },
12645
end: { line: 1, column: 9 }
12646
}
12647
},
12648
init: {
12649
type: 'Literal',
12650
value: 0,
12651
raw: '0',
12652
range: [12, 13],
12653
loc: {
12654
start: { line: 1, column: 12 },
12655
end: { line: 1, column: 13 }
12656
}
12657
},
12658
range: [8, 13],
12659
loc: {
12660
start: { line: 1, column: 8 },
12661
end: { line: 1, column: 13 }
12662
}
12663
}],
12664
kind: 'let',
12665
range: [4, 13],
12666
loc: {
12667
start: { line: 1, column: 4 },
12668
end: { line: 1, column: 13 }
12669
}
12670
},
12671
test: null,
12672
update: null,
12673
body: {
12674
type: 'EmptyStatement',
12675
range: [16, 17],
12676
loc: {
12677
start: { line: 1, column: 16 },
12678
end: { line: 1, column: 17 }
12679
}
12680
},
12681
range: [0, 17],
12682
loc: {
12683
start: { line: 1, column: 0 },
12684
end: { line: 1, column: 17 }
12685
}
12686
},
12687
12688
'for(var x = 0, y = 1;;);': {
12689
type: 'ForStatement',
12690
init: {
12691
type: 'VariableDeclaration',
12692
declarations: [{
12693
type: 'VariableDeclarator',
12694
id: {
12695
type: 'Identifier',
12696
name: 'x',
12697
range: [8, 9],
12698
loc: {
12699
start: { line: 1, column: 8 },
12700
end: { line: 1, column: 9 }
12701
}
12702
},
12703
init: {
12704
type: 'Literal',
12705
value: 0,
12706
raw: '0',
12707
range: [12, 13],
12708
loc: {
12709
start: { line: 1, column: 12 },
12710
end: { line: 1, column: 13 }
12711
}
12712
},
12713
range: [8, 13],
12714
loc: {
12715
start: { line: 1, column: 8 },
12716
end: { line: 1, column: 13 }
12717
}
12718
}, {
12719
type: 'VariableDeclarator',
12720
id: {
12721
type: 'Identifier',
12722
name: 'y',
12723
range: [15, 16],
12724
loc: {
12725
start: { line: 1, column: 15 },
12726
end: { line: 1, column: 16 }
12727
}
12728
},
12729
init: {
12730
type: 'Literal',
12731
value: 1,
12732
raw: '1',
12733
range: [19, 20],
12734
loc: {
12735
start: { line: 1, column: 19 },
12736
end: { line: 1, column: 20 }
12737
}
12738
},
12739
range: [15, 20],
12740
loc: {
12741
start: { line: 1, column: 15 },
12742
end: { line: 1, column: 20 }
12743
}
12744
}],
12745
kind: 'var',
12746
range: [4, 20],
12747
loc: {
12748
start: { line: 1, column: 4 },
12749
end: { line: 1, column: 20 }
12750
}
12751
},
12752
test: null,
12753
update: null,
12754
body: {
12755
type: 'EmptyStatement',
12756
range: [23, 24],
12757
loc: {
12758
start: { line: 1, column: 23 },
12759
end: { line: 1, column: 24 }
12760
}
12761
},
12762
range: [0, 24],
12763
loc: {
12764
start: { line: 1, column: 0 },
12765
end: { line: 1, column: 24 }
12766
}
12767
},
12768
12769
'for(x = 0; x < 42;);': {
12770
type: 'ForStatement',
12771
init: {
12772
type: 'AssignmentExpression',
12773
operator: '=',
12774
left: {
12775
type: 'Identifier',
12776
name: 'x',
12777
range: [4, 5],
12778
loc: {
12779
start: { line: 1, column: 4 },
12780
end: { line: 1, column: 5 }
12781
}
12782
},
12783
right: {
12784
type: 'Literal',
12785
value: 0,
12786
raw: '0',
12787
range: [8, 9],
12788
loc: {
12789
start: { line: 1, column: 8 },
12790
end: { line: 1, column: 9 }
12791
}
12792
},
12793
range: [4, 9],
12794
loc: {
12795
start: { line: 1, column: 4 },
12796
end: { line: 1, column: 9 }
12797
}
12798
},
12799
test: {
12800
type: 'BinaryExpression',
12801
operator: '<',
12802
left: {
12803
type: 'Identifier',
12804
name: 'x',
12805
range: [11, 12],
12806
loc: {
12807
start: { line: 1, column: 11 },
12808
end: { line: 1, column: 12 }
12809
}
12810
},
12811
right: {
12812
type: 'Literal',
12813
value: 42,
12814
raw: '42',
12815
range: [15, 17],
12816
loc: {
12817
start: { line: 1, column: 15 },
12818
end: { line: 1, column: 17 }
12819
}
12820
},
12821
range: [11, 17],
12822
loc: {
12823
start: { line: 1, column: 11 },
12824
end: { line: 1, column: 17 }
12825
}
12826
},
12827
update: null,
12828
body: {
12829
type: 'EmptyStatement',
12830
range: [19, 20],
12831
loc: {
12832
start: { line: 1, column: 19 },
12833
end: { line: 1, column: 20 }
12834
}
12835
},
12836
range: [0, 20],
12837
loc: {
12838
start: { line: 1, column: 0 },
12839
end: { line: 1, column: 20 }
12840
}
12841
},
12842
12843
'for(x = 0; x < 42; x++);': {
12844
type: 'ForStatement',
12845
init: {
12846
type: 'AssignmentExpression',
12847
operator: '=',
12848
left: {
12849
type: 'Identifier',
12850
name: 'x',
12851
range: [4, 5],
12852
loc: {
12853
start: { line: 1, column: 4 },
12854
end: { line: 1, column: 5 }
12855
}
12856
},
12857
right: {
12858
type: 'Literal',
12859
value: 0,
12860
raw: '0',
12861
range: [8, 9],
12862
loc: {
12863
start: { line: 1, column: 8 },
12864
end: { line: 1, column: 9 }
12865
}
12866
},
12867
range: [4, 9],
12868
loc: {
12869
start: { line: 1, column: 4 },
12870
end: { line: 1, column: 9 }
12871
}
12872
},
12873
test: {
12874
type: 'BinaryExpression',
12875
operator: '<',
12876
left: {
12877
type: 'Identifier',
12878
name: 'x',
12879
range: [11, 12],
12880
loc: {
12881
start: { line: 1, column: 11 },
12882
end: { line: 1, column: 12 }
12883
}
12884
},
12885
right: {
12886
type: 'Literal',
12887
value: 42,
12888
raw: '42',
12889
range: [15, 17],
12890
loc: {
12891
start: { line: 1, column: 15 },
12892
end: { line: 1, column: 17 }
12893
}
12894
},
12895
range: [11, 17],
12896
loc: {
12897
start: { line: 1, column: 11 },
12898
end: { line: 1, column: 17 }
12899
}
12900
},
12901
update: {
12902
type: 'UpdateExpression',
12903
operator: '++',
12904
argument: {
12905
type: 'Identifier',
12906
name: 'x',
12907
range: [19, 20],
12908
loc: {
12909
start: { line: 1, column: 19 },
12910
end: { line: 1, column: 20 }
12911
}
12912
},
12913
prefix: false,
12914
range: [19, 22],
12915
loc: {
12916
start: { line: 1, column: 19 },
12917
end: { line: 1, column: 22 }
12918
}
12919
},
12920
body: {
12921
type: 'EmptyStatement',
12922
range: [23, 24],
12923
loc: {
12924
start: { line: 1, column: 23 },
12925
end: { line: 1, column: 24 }
12926
}
12927
},
12928
range: [0, 24],
12929
loc: {
12930
start: { line: 1, column: 0 },
12931
end: { line: 1, column: 24 }
12932
}
12933
},
12934
12935
'for(x = 0; x < 42; x++) process(x);': {
12936
type: 'ForStatement',
12937
init: {
12938
type: 'AssignmentExpression',
12939
operator: '=',
12940
left: {
12941
type: 'Identifier',
12942
name: 'x',
12943
range: [4, 5],
12944
loc: {
12945
start: { line: 1, column: 4 },
12946
end: { line: 1, column: 5 }
12947
}
12948
},
12949
right: {
12950
type: 'Literal',
12951
value: 0,
12952
raw: '0',
12953
range: [8, 9],
12954
loc: {
12955
start: { line: 1, column: 8 },
12956
end: { line: 1, column: 9 }
12957
}
12958
},
12959
range: [4, 9],
12960
loc: {
12961
start: { line: 1, column: 4 },
12962
end: { line: 1, column: 9 }
12963
}
12964
},
12965
test: {
12966
type: 'BinaryExpression',
12967
operator: '<',
12968
left: {
12969
type: 'Identifier',
12970
name: 'x',
12971
range: [11, 12],
12972
loc: {
12973
start: { line: 1, column: 11 },
12974
end: { line: 1, column: 12 }
12975
}
12976
},
12977
right: {
12978
type: 'Literal',
12979
value: 42,
12980
raw: '42',
12981
range: [15, 17],
12982
loc: {
12983
start: { line: 1, column: 15 },
12984
end: { line: 1, column: 17 }
12985
}
12986
},
12987
range: [11, 17],
12988
loc: {
12989
start: { line: 1, column: 11 },
12990
end: { line: 1, column: 17 }
12991
}
12992
},
12993
update: {
12994
type: 'UpdateExpression',
12995
operator: '++',
12996
argument: {
12997
type: 'Identifier',
12998
name: 'x',
12999
range: [19, 20],
13000
loc: {
13001
start: { line: 1, column: 19 },
13002
end: { line: 1, column: 20 }
13003
}
13004
},
13005
prefix: false,
13006
range: [19, 22],
13007
loc: {
13008
start: { line: 1, column: 19 },
13009
end: { line: 1, column: 22 }
13010
}
13011
},
13012
body: {
13013
type: 'ExpressionStatement',
13014
expression: {
13015
type: 'CallExpression',
13016
callee: {
13017
type: 'Identifier',
13018
name: 'process',
13019
range: [24, 31],
13020
loc: {
13021
start: { line: 1, column: 24 },
13022
end: { line: 1, column: 31 }
13023
}
13024
},
13025
'arguments': [{
13026
type: 'Identifier',
13027
name: 'x',
13028
range: [32, 33],
13029
loc: {
13030
start: { line: 1, column: 32 },
13031
end: { line: 1, column: 33 }
13032
}
13033
}],
13034
range: [24, 34],
13035
loc: {
13036
start: { line: 1, column: 24 },
13037
end: { line: 1, column: 34 }
13038
}
13039
},
13040
range: [24, 35],
13041
loc: {
13042
start: { line: 1, column: 24 },
13043
end: { line: 1, column: 35 }
13044
}
13045
},
13046
range: [0, 35],
13047
loc: {
13048
start: { line: 1, column: 0 },
13049
end: { line: 1, column: 35 }
13050
}
13051
},
13052
13053
'for(x in list) process(x);': {
13054
type: 'ForInStatement',
13055
left: {
13056
type: 'Identifier',
13057
name: 'x',
13058
range: [4, 5],
13059
loc: {
13060
start: { line: 1, column: 4 },
13061
end: { line: 1, column: 5 }
13062
}
13063
},
13064
right: {
13065
type: 'Identifier',
13066
name: 'list',
13067
range: [9, 13],
13068
loc: {
13069
start: { line: 1, column: 9 },
13070
end: { line: 1, column: 13 }
13071
}
13072
},
13073
body: {
13074
type: 'ExpressionStatement',
13075
expression: {
13076
type: 'CallExpression',
13077
callee: {
13078
type: 'Identifier',
13079
name: 'process',
13080
range: [15, 22],
13081
loc: {
13082
start: { line: 1, column: 15 },
13083
end: { line: 1, column: 22 }
13084
}
13085
},
13086
'arguments': [{
13087
type: 'Identifier',
13088
name: 'x',
13089
range: [23, 24],
13090
loc: {
13091
start: { line: 1, column: 23 },
13092
end: { line: 1, column: 24 }
13093
}
13094
}],
13095
range: [15, 25],
13096
loc: {
13097
start: { line: 1, column: 15 },
13098
end: { line: 1, column: 25 }
13099
}
13100
},
13101
range: [15, 26],
13102
loc: {
13103
start: { line: 1, column: 15 },
13104
end: { line: 1, column: 26 }
13105
}
13106
},
13107
each: false,
13108
range: [0, 26],
13109
loc: {
13110
start: { line: 1, column: 0 },
13111
end: { line: 1, column: 26 }
13112
}
13113
},
13114
13115
'for (var x in list) process(x);': {
13116
type: 'ForInStatement',
13117
left: {
13118
type: 'VariableDeclaration',
13119
declarations: [{
13120
type: 'VariableDeclarator',
13121
id: {
13122
type: 'Identifier',
13123
name: 'x',
13124
range: [9, 10],
13125
loc: {
13126
start: { line: 1, column: 9 },
13127
end: { line: 1, column: 10 }
13128
}
13129
},
13130
init: null,
13131
range: [9, 10],
13132
loc: {
13133
start: { line: 1, column: 9 },
13134
end: { line: 1, column: 10 }
13135
}
13136
}],
13137
kind: 'var',
13138
range: [5, 10],
13139
loc: {
13140
start: { line: 1, column: 5 },
13141
end: { line: 1, column: 10 }
13142
}
13143
},
13144
right: {
13145
type: 'Identifier',
13146
name: 'list',
13147
range: [14, 18],
13148
loc: {
13149
start: { line: 1, column: 14 },
13150
end: { line: 1, column: 18 }
13151
}
13152
},
13153
body: {
13154
type: 'ExpressionStatement',
13155
expression: {
13156
type: 'CallExpression',
13157
callee: {
13158
type: 'Identifier',
13159
name: 'process',
13160
range: [20, 27],
13161
loc: {
13162
start: { line: 1, column: 20 },
13163
end: { line: 1, column: 27 }
13164
}
13165
},
13166
'arguments': [{
13167
type: 'Identifier',
13168
name: 'x',
13169
range: [28, 29],
13170
loc: {
13171
start: { line: 1, column: 28 },
13172
end: { line: 1, column: 29 }
13173
}
13174
}],
13175
range: [20, 30],
13176
loc: {
13177
start: { line: 1, column: 20 },
13178
end: { line: 1, column: 30 }
13179
}
13180
},
13181
range: [20, 31],
13182
loc: {
13183
start: { line: 1, column: 20 },
13184
end: { line: 1, column: 31 }
13185
}
13186
},
13187
each: false,
13188
range: [0, 31],
13189
loc: {
13190
start: { line: 1, column: 0 },
13191
end: { line: 1, column: 31 }
13192
}
13193
},
13194
13195
'for (let x in list) process(x);': {
13196
type: 'ForInStatement',
13197
left: {
13198
type: 'VariableDeclaration',
13199
declarations: [{
13200
type: 'VariableDeclarator',
13201
id: {
13202
type: 'Identifier',
13203
name: 'x',
13204
range: [9, 10],
13205
loc: {
13206
start: { line: 1, column: 9 },
13207
end: { line: 1, column: 10 }
13208
}
13209
},
13210
init: null,
13211
range: [9, 10],
13212
loc: {
13213
start: { line: 1, column: 9 },
13214
end: { line: 1, column: 10 }
13215
}
13216
}],
13217
kind: 'let',
13218
range: [5, 10],
13219
loc: {
13220
start: { line: 1, column: 5 },
13221
end: { line: 1, column: 10 }
13222
}
13223
},
13224
right: {
13225
type: 'Identifier',
13226
name: 'list',
13227
range: [14, 18],
13228
loc: {
13229
start: { line: 1, column: 14 },
13230
end: { line: 1, column: 18 }
13231
}
13232
},
13233
body: {
13234
type: 'ExpressionStatement',
13235
expression: {
13236
type: 'CallExpression',
13237
callee: {
13238
type: 'Identifier',
13239
name: 'process',
13240
range: [20, 27],
13241
loc: {
13242
start: { line: 1, column: 20 },
13243
end: { line: 1, column: 27 }
13244
}
13245
},
13246
'arguments': [{
13247
type: 'Identifier',
13248
name: 'x',
13249
range: [28, 29],
13250
loc: {
13251
start: { line: 1, column: 28 },
13252
end: { line: 1, column: 29 }
13253
}
13254
}],
13255
range: [20, 30],
13256
loc: {
13257
start: { line: 1, column: 20 },
13258
end: { line: 1, column: 30 }
13259
}
13260
},
13261
range: [20, 31],
13262
loc: {
13263
start: { line: 1, column: 20 },
13264
end: { line: 1, column: 31 }
13265
}
13266
},
13267
each: false,
13268
range: [0, 31],
13269
loc: {
13270
start: { line: 1, column: 0 },
13271
end: { line: 1, column: 31 }
13272
}
13273
},
13274
13275
'for (var i = function() { return 10 in [] } of list) process(x);': {
13276
type: 'ForOfStatement',
13277
left: {
13278
type: 'VariableDeclaration',
13279
declarations: [{
13280
type: 'VariableDeclarator',
13281
id: {
13282
type: 'Identifier',
13283
name: 'i',
13284
range: [9, 10],
13285
loc: {
13286
start: { line: 1, column: 9 },
13287
end: { line: 1, column: 10 }
13288
}
13289
},
13290
init: {
13291
type: 'FunctionExpression',
13292
id: null,
13293
params: [],
13294
defaults: [],
13295
body: {
13296
type: 'BlockStatement',
13297
body: [{
13298
type: 'ReturnStatement',
13299
argument: {
13300
type: 'BinaryExpression',
13301
operator: 'in',
13302
left: {
13303
type: 'Literal',
13304
value: 10,
13305
raw: '10',
13306
range: [33, 35],
13307
loc: {
13308
start: { line: 1, column: 33 },
13309
end: { line: 1, column: 35 }
13310
}
13311
},
13312
right: {
13313
type: 'ArrayExpression',
13314
elements: [],
13315
range: [39, 41],
13316
loc: {
13317
start: { line: 1, column: 39 },
13318
end: { line: 1, column: 41 }
13319
}
13320
},
13321
range: [33, 41],
13322
loc: {
13323
start: { line: 1, column: 33 },
13324
end: { line: 1, column: 41 }
13325
}
13326
},
13327
range: [26, 42],
13328
loc: {
13329
start: { line: 1, column: 26 },
13330
end: { line: 1, column: 42 }
13331
}
13332
}],
13333
range: [24, 43],
13334
loc: {
13335
start: { line: 1, column: 24 },
13336
end: { line: 1, column: 43 }
13337
}
13338
},
13339
rest: null,
13340
generator: false,
13341
expression: false,
13342
range: [13, 43],
13343
loc: {
13344
start: { line: 1, column: 13 },
13345
end: { line: 1, column: 43 }
13346
}
13347
},
13348
range: [9, 43],
13349
loc: {
13350
start: { line: 1, column: 9 },
13351
end: { line: 1, column: 43 }
13352
}
13353
}],
13354
kind: 'var',
13355
range: [5, 43],
13356
loc: {
13357
start: { line: 1, column: 5 },
13358
end: { line: 1, column: 43 }
13359
}
13360
},
13361
right: {
13362
type: 'Identifier',
13363
name: 'list',
13364
range: [47, 51],
13365
loc: {
13366
start: { line: 1, column: 47 },
13367
end: { line: 1, column: 51 }
13368
}
13369
},
13370
body: {
13371
type: 'ExpressionStatement',
13372
expression: {
13373
type: 'CallExpression',
13374
callee: {
13375
type: 'Identifier',
13376
name: 'process',
13377
range: [53, 60],
13378
loc: {
13379
start: { line: 1, column: 53 },
13380
end: { line: 1, column: 60 }
13381
}
13382
},
13383
'arguments': [{
13384
type: 'Identifier',
13385
name: 'x',
13386
range: [61, 62],
13387
loc: {
13388
start: { line: 1, column: 61 },
13389
end: { line: 1, column: 62 }
13390
}
13391
}],
13392
range: [53, 63],
13393
loc: {
13394
start: { line: 1, column: 53 },
13395
end: { line: 1, column: 63 }
13396
}
13397
},
13398
range: [53, 64],
13399
loc: {
13400
start: { line: 1, column: 53 },
13401
end: { line: 1, column: 64 }
13402
}
13403
},
13404
range: [0, 64],
13405
loc: {
13406
start: { line: 1, column: 0 },
13407
end: { line: 1, column: 64 }
13408
}
13409
}
13410
13411
},
13412
13413
'continue statement': {
13414
13415
'while (true) { continue; }': {
13416
type: 'WhileStatement',
13417
test: {
13418
type: 'Literal',
13419
value: true,
13420
raw: 'true',
13421
range: [7, 11],
13422
loc: {
13423
start: { line: 1, column: 7 },
13424
end: { line: 1, column: 11 }
13425
}
13426
},
13427
body: {
13428
type: 'BlockStatement',
13429
body: [
13430
{
13431
type: 'ContinueStatement',
13432
label: null,
13433
range: [15, 24],
13434
loc: {
13435
start: { line: 1, column: 15 },
13436
end: { line: 1, column: 24 }
13437
}
13438
}
13439
],
13440
range: [13, 26],
13441
loc: {
13442
start: { line: 1, column: 13 },
13443
end: { line: 1, column: 26 }
13444
}
13445
},
13446
range: [0, 26],
13447
loc: {
13448
start: { line: 1, column: 0 },
13449
end: { line: 1, column: 26 }
13450
}
13451
},
13452
13453
'while (true) { continue }': {
13454
type: 'WhileStatement',
13455
test: {
13456
type: 'Literal',
13457
value: true,
13458
raw: 'true',
13459
range: [7, 11],
13460
loc: {
13461
start: { line: 1, column: 7 },
13462
end: { line: 1, column: 11 }
13463
}
13464
},
13465
body: {
13466
type: 'BlockStatement',
13467
body: [
13468
{
13469
type: 'ContinueStatement',
13470
label: null,
13471
range: [15, 24],
13472
loc: {
13473
start: { line: 1, column: 15 },
13474
end: { line: 1, column: 24 }
13475
}
13476
}
13477
],
13478
range: [13, 25],
13479
loc: {
13480
start: { line: 1, column: 13 },
13481
end: { line: 1, column: 25 }
13482
}
13483
},
13484
range: [0, 25],
13485
loc: {
13486
start: { line: 1, column: 0 },
13487
end: { line: 1, column: 25 }
13488
}
13489
},
13490
13491
'done: while (true) { continue done }': {
13492
type: 'LabeledStatement',
13493
label: {
13494
type: 'Identifier',
13495
name: 'done',
13496
range: [0, 4],
13497
loc: {
13498
start: { line: 1, column: 0 },
13499
end: { line: 1, column: 4 }
13500
}
13501
},
13502
body: {
13503
type: 'WhileStatement',
13504
test: {
13505
type: 'Literal',
13506
value: true,
13507
raw: 'true',
13508
range: [13, 17],
13509
loc: {
13510
start: { line: 1, column: 13 },
13511
end: { line: 1, column: 17 }
13512
}
13513
},
13514
body: {
13515
type: 'BlockStatement',
13516
body: [
13517
{
13518
type: 'ContinueStatement',
13519
label: {
13520
type: 'Identifier',
13521
name: 'done',
13522
range: [30, 34],
13523
loc: {
13524
start: { line: 1, column: 30 },
13525
end: { line: 1, column: 34 }
13526
}
13527
},
13528
range: [21, 35],
13529
loc: {
13530
start: { line: 1, column: 21 },
13531
end: { line: 1, column: 35 }
13532
}
13533
}
13534
],
13535
range: [19, 36],
13536
loc: {
13537
start: { line: 1, column: 19 },
13538
end: { line: 1, column: 36 }
13539
}
13540
},
13541
range: [6, 36],
13542
loc: {
13543
start: { line: 1, column: 6 },
13544
end: { line: 1, column: 36 }
13545
}
13546
},
13547
range: [0, 36],
13548
loc: {
13549
start: { line: 1, column: 0 },
13550
end: { line: 1, column: 36 }
13551
}
13552
},
13553
13554
'done: while (true) { continue done; }': {
13555
type: 'LabeledStatement',
13556
label: {
13557
type: 'Identifier',
13558
name: 'done',
13559
range: [0, 4],
13560
loc: {
13561
start: { line: 1, column: 0 },
13562
end: { line: 1, column: 4 }
13563
}
13564
},
13565
body: {
13566
type: 'WhileStatement',
13567
test: {
13568
type: 'Literal',
13569
value: true,
13570
raw: 'true',
13571
range: [13, 17],
13572
loc: {
13573
start: { line: 1, column: 13 },
13574
end: { line: 1, column: 17 }
13575
}
13576
},
13577
body: {
13578
type: 'BlockStatement',
13579
body: [
13580
{
13581
type: 'ContinueStatement',
13582
label: {
13583
type: 'Identifier',
13584
name: 'done',
13585
range: [30, 34],
13586
loc: {
13587
start: { line: 1, column: 30 },
13588
end: { line: 1, column: 34 }
13589
}
13590
},
13591
range: [21, 35],
13592
loc: {
13593
start: { line: 1, column: 21 },
13594
end: { line: 1, column: 35 }
13595
}
13596
}
13597
],
13598
range: [19, 37],
13599
loc: {
13600
start: { line: 1, column: 19 },
13601
end: { line: 1, column: 37 }
13602
}
13603
},
13604
range: [6, 37],
13605
loc: {
13606
start: { line: 1, column: 6 },
13607
end: { line: 1, column: 37 }
13608
}
13609
},
13610
range: [0, 37],
13611
loc: {
13612
start: { line: 1, column: 0 },
13613
end: { line: 1, column: 37 }
13614
}
13615
},
13616
13617
'__proto__: while (true) { continue __proto__; }': {
13618
type: 'LabeledStatement',
13619
label: {
13620
type: 'Identifier',
13621
name: '__proto__',
13622
range: [0, 9],
13623
loc: {
13624
start: { line: 1, column: 0 },
13625
end: { line: 1, column: 9 }
13626
}
13627
},
13628
body: {
13629
type: 'WhileStatement',
13630
test: {
13631
type: 'Literal',
13632
value: true,
13633
raw: 'true',
13634
range: [18, 22],
13635
loc: {
13636
start: { line: 1, column: 18 },
13637
end: { line: 1, column: 22 }
13638
}
13639
},
13640
body: {
13641
type: 'BlockStatement',
13642
body: [{
13643
type: 'ContinueStatement',
13644
label: {
13645
type: 'Identifier',
13646
name: '__proto__',
13647
range: [35, 44],
13648
loc: {
13649
start: { line: 1, column: 35 },
13650
end: { line: 1, column: 44 }
13651
}
13652
},
13653
range: [26, 45],
13654
loc: {
13655
start: { line: 1, column: 26 },
13656
end: { line: 1, column: 45 }
13657
}
13658
}],
13659
range: [24, 47],
13660
loc: {
13661
start: { line: 1, column: 24 },
13662
end: { line: 1, column: 47 }
13663
}
13664
},
13665
range: [11, 47],
13666
loc: {
13667
start: { line: 1, column: 11 },
13668
end: { line: 1, column: 47 }
13669
}
13670
},
13671
range: [0, 47],
13672
loc: {
13673
start: { line: 1, column: 0 },
13674
end: { line: 1, column: 47 }
13675
}
13676
}
13677
13678
},
13679
13680
'break statement': {
13681
13682
'while (true) { break }': {
13683
type: 'WhileStatement',
13684
test: {
13685
type: 'Literal',
13686
value: true,
13687
raw: 'true',
13688
range: [7, 11],
13689
loc: {
13690
start: { line: 1, column: 7 },
13691
end: { line: 1, column: 11 }
13692
}
13693
},
13694
body: {
13695
type: 'BlockStatement',
13696
body: [
13697
{
13698
type: 'BreakStatement',
13699
label: null,
13700
range: [15, 21],
13701
loc: {
13702
start: { line: 1, column: 15 },
13703
end: { line: 1, column: 21 }
13704
}
13705
}
13706
],
13707
range: [13, 22],
13708
loc: {
13709
start: { line: 1, column: 13 },
13710
end: { line: 1, column: 22 }
13711
}
13712
},
13713
range: [0, 22],
13714
loc: {
13715
start: { line: 1, column: 0 },
13716
end: { line: 1, column: 22 }
13717
}
13718
},
13719
13720
'done: while (true) { break done }': {
13721
type: 'LabeledStatement',
13722
label: {
13723
type: 'Identifier',
13724
name: 'done',
13725
range: [0, 4],
13726
loc: {
13727
start: { line: 1, column: 0 },
13728
end: { line: 1, column: 4 }
13729
}
13730
},
13731
body: {
13732
type: 'WhileStatement',
13733
test: {
13734
type: 'Literal',
13735
value: true,
13736
raw: 'true',
13737
range: [13, 17],
13738
loc: {
13739
start: { line: 1, column: 13 },
13740
end: { line: 1, column: 17 }
13741
}
13742
},
13743
body: {
13744
type: 'BlockStatement',
13745
body: [
13746
{
13747
type: 'BreakStatement',
13748
label: {
13749
type: 'Identifier',
13750
name: 'done',
13751
range: [27, 31],
13752
loc: {
13753
start: { line: 1, column: 27 },
13754
end: { line: 1, column: 31 }
13755
}
13756
},
13757
range: [21, 32],
13758
loc: {
13759
start: { line: 1, column: 21 },
13760
end: { line: 1, column: 32 }
13761
}
13762
}
13763
],
13764
range: [19, 33],
13765
loc: {
13766
start: { line: 1, column: 19 },
13767
end: { line: 1, column: 33 }
13768
}
13769
},
13770
range: [6, 33],
13771
loc: {
13772
start: { line: 1, column: 6 },
13773
end: { line: 1, column: 33 }
13774
}
13775
},
13776
range: [0, 33],
13777
loc: {
13778
start: { line: 1, column: 0 },
13779
end: { line: 1, column: 33 }
13780
}
13781
},
13782
13783
'done: while (true) { break done; }': {
13784
type: 'LabeledStatement',
13785
label: {
13786
type: 'Identifier',
13787
name: 'done',
13788
range: [0, 4],
13789
loc: {
13790
start: { line: 1, column: 0 },
13791
end: { line: 1, column: 4 }
13792
}
13793
},
13794
body: {
13795
type: 'WhileStatement',
13796
test: {
13797
type: 'Literal',
13798
value: true,
13799
raw: 'true',
13800
range: [13, 17],
13801
loc: {
13802
start: { line: 1, column: 13 },
13803
end: { line: 1, column: 17 }
13804
}
13805
},
13806
body: {
13807
type: 'BlockStatement',
13808
body: [
13809
{
13810
type: 'BreakStatement',
13811
label: {
13812
type: 'Identifier',
13813
name: 'done',
13814
range: [27, 31],
13815
loc: {
13816
start: { line: 1, column: 27 },
13817
end: { line: 1, column: 31 }
13818
}
13819
},
13820
range: [21, 32],
13821
loc: {
13822
start: { line: 1, column: 21 },
13823
end: { line: 1, column: 32 }
13824
}
13825
}
13826
],
13827
range: [19, 34],
13828
loc: {
13829
start: { line: 1, column: 19 },
13830
end: { line: 1, column: 34 }
13831
}
13832
},
13833
range: [6, 34],
13834
loc: {
13835
start: { line: 1, column: 6 },
13836
end: { line: 1, column: 34 }
13837
}
13838
},
13839
range: [0, 34],
13840
loc: {
13841
start: { line: 1, column: 0 },
13842
end: { line: 1, column: 34 }
13843
}
13844
},
13845
13846
'__proto__: while (true) { break __proto__; }': {
13847
type: 'LabeledStatement',
13848
label: {
13849
type: 'Identifier',
13850
name: '__proto__',
13851
range: [0, 9],
13852
loc: {
13853
start: { line: 1, column: 0 },
13854
end: { line: 1, column: 9 }
13855
}
13856
},
13857
body: {
13858
type: 'WhileStatement',
13859
test: {
13860
type: 'Literal',
13861
value: true,
13862
raw: 'true',
13863
range: [18, 22],
13864
loc: {
13865
start: { line: 1, column: 18 },
13866
end: { line: 1, column: 22 }
13867
}
13868
},
13869
body: {
13870
type: 'BlockStatement',
13871
body: [{
13872
type: 'BreakStatement',
13873
label: {
13874
type: 'Identifier',
13875
name: '__proto__',
13876
range: [32, 41],
13877
loc: {
13878
start: { line: 1, column: 32 },
13879
end: { line: 1, column: 41 }
13880
}
13881
},
13882
range: [26, 42],
13883
loc: {
13884
start: { line: 1, column: 26 },
13885
end: { line: 1, column: 42 }
13886
}
13887
}],
13888
range: [24, 44],
13889
loc: {
13890
start: { line: 1, column: 24 },
13891
end: { line: 1, column: 44 }
13892
}
13893
},
13894
range: [11, 44],
13895
loc: {
13896
start: { line: 1, column: 11 },
13897
end: { line: 1, column: 44 }
13898
}
13899
},
13900
range: [0, 44],
13901
loc: {
13902
start: { line: 1, column: 0 },
13903
end: { line: 1, column: 44 }
13904
}
13905
}
13906
13907
},
13908
13909
'return statement': {
13910
13911
'(function(){ return })': {
13912
type: 'ExpressionStatement',
13913
expression: {
13914
type: 'FunctionExpression',
13915
id: null,
13916
params: [],
13917
defaults: [],
13918
body: {
13919
type: 'BlockStatement',
13920
body: [
13921
{
13922
type: 'ReturnStatement',
13923
argument: null,
13924
range: [13, 20],
13925
loc: {
13926
start: { line: 1, column: 13 },
13927
end: { line: 1, column: 20 }
13928
}
13929
}
13930
],
13931
range: [11, 21],
13932
loc: {
13933
start: { line: 1, column: 11 },
13934
end: { line: 1, column: 21 }
13935
}
13936
},
13937
rest: null,
13938
generator: false,
13939
expression: false,
13940
range: [1, 21],
13941
loc: {
13942
start: { line: 1, column: 1 },
13943
end: { line: 1, column: 21 }
13944
}
13945
},
13946
range: [0, 22],
13947
loc: {
13948
start: { line: 1, column: 0 },
13949
end: { line: 1, column: 22 }
13950
}
13951
},
13952
13953
'(function(){ return; })': {
13954
type: 'ExpressionStatement',
13955
expression: {
13956
type: 'FunctionExpression',
13957
id: null,
13958
params: [],
13959
defaults: [],
13960
body: {
13961
type: 'BlockStatement',
13962
body: [
13963
{
13964
type: 'ReturnStatement',
13965
argument: null,
13966
range: [13, 20],
13967
loc: {
13968
start: { line: 1, column: 13 },
13969
end: { line: 1, column: 20 }
13970
}
13971
}
13972
],
13973
range: [11, 22],
13974
loc: {
13975
start: { line: 1, column: 11 },
13976
end: { line: 1, column: 22 }
13977
}
13978
},
13979
rest: null,
13980
generator: false,
13981
expression: false,
13982
range: [1, 22],
13983
loc: {
13984
start: { line: 1, column: 1 },
13985
end: { line: 1, column: 22 }
13986
}
13987
},
13988
range: [0, 23],
13989
loc: {
13990
start: { line: 1, column: 0 },
13991
end: { line: 1, column: 23 }
13992
}
13993
},
13994
13995
'(function(){ return x; })': {
13996
type: 'ExpressionStatement',
13997
expression: {
13998
type: 'FunctionExpression',
13999
id: null,
14000
params: [],
14001
defaults: [],
14002
body: {
14003
type: 'BlockStatement',
14004
body: [
14005
{
14006
type: 'ReturnStatement',
14007
argument: {
14008
type: 'Identifier',
14009
name: 'x',
14010
range: [20, 21],
14011
loc: {
14012
start: { line: 1, column: 20 },
14013
end: { line: 1, column: 21 }
14014
}
14015
},
14016
range: [13, 22],
14017
loc: {
14018
start: { line: 1, column: 13 },
14019
end: { line: 1, column: 22 }
14020
}
14021
}
14022
],
14023
range: [11, 24],
14024
loc: {
14025
start: { line: 1, column: 11 },
14026
end: { line: 1, column: 24 }
14027
}
14028
},
14029
rest: null,
14030
generator: false,
14031
expression: false,
14032
range: [1, 24],
14033
loc: {
14034
start: { line: 1, column: 1 },
14035
end: { line: 1, column: 24 }
14036
}
14037
},
14038
range: [0, 25],
14039
loc: {
14040
start: { line: 1, column: 0 },
14041
end: { line: 1, column: 25 }
14042
}
14043
},
14044
14045
'(function(){ return x * y })': {
14046
type: 'ExpressionStatement',
14047
expression: {
14048
type: 'FunctionExpression',
14049
id: null,
14050
params: [],
14051
defaults: [],
14052
body: {
14053
type: 'BlockStatement',
14054
body: [
14055
{
14056
type: 'ReturnStatement',
14057
argument: {
14058
type: 'BinaryExpression',
14059
operator: '*',
14060
left: {
14061
type: 'Identifier',
14062
name: 'x',
14063
range: [20, 21],
14064
loc: {
14065
start: { line: 1, column: 20 },
14066
end: { line: 1, column: 21 }
14067
}
14068
},
14069
right: {
14070
type: 'Identifier',
14071
name: 'y',
14072
range: [24, 25],
14073
loc: {
14074
start: { line: 1, column: 24 },
14075
end: { line: 1, column: 25 }
14076
}
14077
},
14078
range: [20, 25],
14079
loc: {
14080
start: { line: 1, column: 20 },
14081
end: { line: 1, column: 25 }
14082
}
14083
},
14084
range: [13, 26],
14085
loc: {
14086
start: { line: 1, column: 13 },
14087
end: { line: 1, column: 26 }
14088
}
14089
}
14090
],
14091
range: [11, 27],
14092
loc: {
14093
start: { line: 1, column: 11 },
14094
end: { line: 1, column: 27 }
14095
}
14096
},
14097
rest: null,
14098
generator: false,
14099
expression: false,
14100
range: [1, 27],
14101
loc: {
14102
start: { line: 1, column: 1 },
14103
end: { line: 1, column: 27 }
14104
}
14105
},
14106
range: [0, 28],
14107
loc: {
14108
start: { line: 1, column: 0 },
14109
end: { line: 1, column: 28 }
14110
}
14111
}
14112
},
14113
14114
'with statement': {
14115
14116
'with (x) foo = bar': {
14117
type: 'WithStatement',
14118
object: {
14119
type: 'Identifier',
14120
name: 'x',
14121
range: [6, 7],
14122
loc: {
14123
start: { line: 1, column: 6 },
14124
end: { line: 1, column: 7 }
14125
}
14126
},
14127
body: {
14128
type: 'ExpressionStatement',
14129
expression: {
14130
type: 'AssignmentExpression',
14131
operator: '=',
14132
left: {
14133
type: 'Identifier',
14134
name: 'foo',
14135
range: [9, 12],
14136
loc: {
14137
start: { line: 1, column: 9 },
14138
end: { line: 1, column: 12 }
14139
}
14140
},
14141
right: {
14142
type: 'Identifier',
14143
name: 'bar',
14144
range: [15, 18],
14145
loc: {
14146
start: { line: 1, column: 15 },
14147
end: { line: 1, column: 18 }
14148
}
14149
},
14150
range: [9, 18],
14151
loc: {
14152
start: { line: 1, column: 9 },
14153
end: { line: 1, column: 18 }
14154
}
14155
},
14156
range: [9, 18],
14157
loc: {
14158
start: { line: 1, column: 9 },
14159
end: { line: 1, column: 18 }
14160
}
14161
},
14162
range: [0, 18],
14163
loc: {
14164
start: { line: 1, column: 0 },
14165
end: { line: 1, column: 18 }
14166
}
14167
},
14168
14169
'with (x) foo = bar;': {
14170
type: 'WithStatement',
14171
object: {
14172
type: 'Identifier',
14173
name: 'x',
14174
range: [6, 7],
14175
loc: {
14176
start: { line: 1, column: 6 },
14177
end: { line: 1, column: 7 }
14178
}
14179
},
14180
body: {
14181
type: 'ExpressionStatement',
14182
expression: {
14183
type: 'AssignmentExpression',
14184
operator: '=',
14185
left: {
14186
type: 'Identifier',
14187
name: 'foo',
14188
range: [9, 12],
14189
loc: {
14190
start: { line: 1, column: 9 },
14191
end: { line: 1, column: 12 }
14192
}
14193
},
14194
right: {
14195
type: 'Identifier',
14196
name: 'bar',
14197
range: [15, 18],
14198
loc: {
14199
start: { line: 1, column: 15 },
14200
end: { line: 1, column: 18 }
14201
}
14202
},
14203
range: [9, 18],
14204
loc: {
14205
start: { line: 1, column: 9 },
14206
end: { line: 1, column: 18 }
14207
}
14208
},
14209
range: [9, 19],
14210
loc: {
14211
start: { line: 1, column: 9 },
14212
end: { line: 1, column: 19 }
14213
}
14214
},
14215
range: [0, 19],
14216
loc: {
14217
start: { line: 1, column: 0 },
14218
end: { line: 1, column: 19 }
14219
}
14220
},
14221
14222
'with (x) { foo = bar }': {
14223
type: 'WithStatement',
14224
object: {
14225
type: 'Identifier',
14226
name: 'x',
14227
range: [6, 7],
14228
loc: {
14229
start: { line: 1, column: 6 },
14230
end: { line: 1, column: 7 }
14231
}
14232
},
14233
body: {
14234
type: 'BlockStatement',
14235
body: [{
14236
type: 'ExpressionStatement',
14237
expression: {
14238
type: 'AssignmentExpression',
14239
operator: '=',
14240
left: {
14241
type: 'Identifier',
14242
name: 'foo',
14243
range: [11, 14],
14244
loc: {
14245
start: { line: 1, column: 11 },
14246
end: { line: 1, column: 14 }
14247
}
14248
},
14249
right: {
14250
type: 'Identifier',
14251
name: 'bar',
14252
range: [17, 20],
14253
loc: {
14254
start: { line: 1, column: 17 },
14255
end: { line: 1, column: 20 }
14256
}
14257
},
14258
range: [11, 20],
14259
loc: {
14260
start: { line: 1, column: 11 },
14261
end: { line: 1, column: 20 }
14262
}
14263
},
14264
range: [11, 21],
14265
loc: {
14266
start: { line: 1, column: 11 },
14267
end: { line: 1, column: 21 }
14268
}
14269
}],
14270
range: [9, 22],
14271
loc: {
14272
start: { line: 1, column: 9 },
14273
end: { line: 1, column: 22 }
14274
}
14275
},
14276
range: [0, 22],
14277
loc: {
14278
start: { line: 1, column: 0 },
14279
end: { line: 1, column: 22 }
14280
}
14281
}
14282
14283
},
14284
14285
'switch statement': {
14286
14287
'switch (x) {}': {
14288
type: 'SwitchStatement',
14289
discriminant: {
14290
type: 'Identifier',
14291
name: 'x',
14292
range: [8, 9],
14293
loc: {
14294
start: { line: 1, column: 8 },
14295
end: { line: 1, column: 9 }
14296
}
14297
},
14298
cases:[],
14299
range: [0, 13],
14300
loc: {
14301
start: { line: 1, column: 0 },
14302
end: { line: 1, column: 13 }
14303
}
14304
},
14305
14306
'switch (answer) { case 42: hi(); break; }': {
14307
type: 'SwitchStatement',
14308
discriminant: {
14309
type: 'Identifier',
14310
name: 'answer',
14311
range: [8, 14],
14312
loc: {
14313
start: { line: 1, column: 8 },
14314
end: { line: 1, column: 14 }
14315
}
14316
},
14317
cases: [{
14318
type: 'SwitchCase',
14319
test: {
14320
type: 'Literal',
14321
value: 42,
14322
raw: '42',
14323
range: [23, 25],
14324
loc: {
14325
start: { line: 1, column: 23 },
14326
end: { line: 1, column: 25 }
14327
}
14328
},
14329
consequent: [{
14330
type: 'ExpressionStatement',
14331
expression: {
14332
type: 'CallExpression',
14333
callee: {
14334
type: 'Identifier',
14335
name: 'hi',
14336
range: [27, 29],
14337
loc: {
14338
start: { line: 1, column: 27 },
14339
end: { line: 1, column: 29 }
14340
}
14341
},
14342
'arguments': [],
14343
range: [27, 31],
14344
loc: {
14345
start: { line: 1, column: 27 },
14346
end: { line: 1, column: 31 }
14347
}
14348
},
14349
range: [27, 32],
14350
loc: {
14351
start: { line: 1, column: 27 },
14352
end: { line: 1, column: 32 }
14353
}
14354
}, {
14355
type: 'BreakStatement',
14356
label: null,
14357
range: [33, 39],
14358
loc: {
14359
start: { line: 1, column: 33 },
14360
end: { line: 1, column: 39 }
14361
}
14362
}],
14363
range: [18, 39],
14364
loc: {
14365
start: { line: 1, column: 18 },
14366
end: { line: 1, column: 39 }
14367
}
14368
}],
14369
range: [0, 41],
14370
loc: {
14371
start: { line: 1, column: 0 },
14372
end: { line: 1, column: 41 }
14373
}
14374
},
14375
14376
'switch (answer) { case 42: hi(); break; default: break }': {
14377
type: 'SwitchStatement',
14378
discriminant: {
14379
type: 'Identifier',
14380
name: 'answer',
14381
range: [8, 14],
14382
loc: {
14383
start: { line: 1, column: 8 },
14384
end: { line: 1, column: 14 }
14385
}
14386
},
14387
cases: [{
14388
type: 'SwitchCase',
14389
test: {
14390
type: 'Literal',
14391
value: 42,
14392
raw: '42',
14393
range: [23, 25],
14394
loc: {
14395
start: { line: 1, column: 23 },
14396
end: { line: 1, column: 25 }
14397
}
14398
},
14399
consequent: [{
14400
type: 'ExpressionStatement',
14401
expression: {
14402
type: 'CallExpression',
14403
callee: {
14404
type: 'Identifier',
14405
name: 'hi',
14406
range: [27, 29],
14407
loc: {
14408
start: { line: 1, column: 27 },
14409
end: { line: 1, column: 29 }
14410
}
14411
},
14412
'arguments': [],
14413
range: [27, 31],
14414
loc: {
14415
start: { line: 1, column: 27 },
14416
end: { line: 1, column: 31 }
14417
}
14418
},
14419
range: [27, 32],
14420
loc: {
14421
start: { line: 1, column: 27 },
14422
end: { line: 1, column: 32 }
14423
}
14424
}, {
14425
type: 'BreakStatement',
14426
label: null,
14427
range: [33, 39],
14428
loc: {
14429
start: { line: 1, column: 33 },
14430
end: { line: 1, column: 39 }
14431
}
14432
}],
14433
range: [18, 39],
14434
loc: {
14435
start: { line: 1, column: 18 },
14436
end: { line: 1, column: 39 }
14437
}
14438
}, {
14439
type: 'SwitchCase',
14440
test: null,
14441
consequent: [{
14442
type: 'BreakStatement',
14443
label: null,
14444
range: [49, 55],
14445
loc: {
14446
start: { line: 1, column: 49 },
14447
end: { line: 1, column: 55 }
14448
}
14449
}],
14450
range: [40, 55],
14451
loc: {
14452
start: { line: 1, column: 40 },
14453
end: { line: 1, column: 55 }
14454
}
14455
}],
14456
range: [0, 56],
14457
loc: {
14458
start: { line: 1, column: 0 },
14459
end: { line: 1, column: 56 }
14460
}
14461
}
14462
14463
},
14464
14465
'Labelled Statements': {
14466
14467
'start: for (;;) break start': {
14468
type: 'LabeledStatement',
14469
label: {
14470
type: 'Identifier',
14471
name: 'start',
14472
range: [0, 5],
14473
loc: {
14474
start: { line: 1, column: 0 },
14475
end: { line: 1, column: 5 }
14476
}
14477
},
14478
body: {
14479
type: 'ForStatement',
14480
init: null,
14481
test: null,
14482
update: null,
14483
body: {
14484
type: 'BreakStatement',
14485
label: {
14486
type: 'Identifier',
14487
name: 'start',
14488
range: [22, 27],
14489
loc: {
14490
start: { line: 1, column: 22 },
14491
end: { line: 1, column: 27 }
14492
}
14493
},
14494
range: [16, 27],
14495
loc: {
14496
start: { line: 1, column: 16 },
14497
end: { line: 1, column: 27 }
14498
}
14499
},
14500
range: [7, 27],
14501
loc: {
14502
start: { line: 1, column: 7 },
14503
end: { line: 1, column: 27 }
14504
}
14505
},
14506
range: [0, 27],
14507
loc: {
14508
start: { line: 1, column: 0 },
14509
end: { line: 1, column: 27 }
14510
}
14511
},
14512
14513
'start: while (true) break start': {
14514
type: 'LabeledStatement',
14515
label: {
14516
type: 'Identifier',
14517
name: 'start',
14518
range: [0, 5],
14519
loc: {
14520
start: { line: 1, column: 0 },
14521
end: { line: 1, column: 5 }
14522
}
14523
},
14524
body: {
14525
type: 'WhileStatement',
14526
test: {
14527
type: 'Literal',
14528
value: true,
14529
raw: 'true',
14530
range: [14, 18],
14531
loc: {
14532
start: { line: 1, column: 14 },
14533
end: { line: 1, column: 18 }
14534
}
14535
},
14536
body: {
14537
type: 'BreakStatement',
14538
label: {
14539
type: 'Identifier',
14540
name: 'start',
14541
range: [26, 31],
14542
loc: {
14543
start: { line: 1, column: 26 },
14544
end: { line: 1, column: 31 }
14545
}
14546
},
14547
range: [20, 31],
14548
loc: {
14549
start: { line: 1, column: 20 },
14550
end: { line: 1, column: 31 }
14551
}
14552
},
14553
range: [7, 31],
14554
loc: {
14555
start: { line: 1, column: 7 },
14556
end: { line: 1, column: 31 }
14557
}
14558
},
14559
range: [0, 31],
14560
loc: {
14561
start: { line: 1, column: 0 },
14562
end: { line: 1, column: 31 }
14563
}
14564
},
14565
14566
'__proto__: test': {
14567
type: 'LabeledStatement',
14568
label: {
14569
type: 'Identifier',
14570
name: '__proto__',
14571
range: [0, 9],
14572
loc: {
14573
start: { line: 1, column: 0 },
14574
end: { line: 1, column: 9 }
14575
}
14576
},
14577
body: {
14578
type: 'ExpressionStatement',
14579
expression: {
14580
type: 'Identifier',
14581
name: 'test',
14582
range: [11, 15],
14583
loc: {
14584
start: { line: 1, column: 11 },
14585
end: { line: 1, column: 15 }
14586
}
14587
},
14588
range: [11, 15],
14589
loc: {
14590
start: { line: 1, column: 11 },
14591
end: { line: 1, column: 15 }
14592
}
14593
},
14594
range: [0, 15],
14595
loc: {
14596
start: { line: 1, column: 0 },
14597
end: { line: 1, column: 15 }
14598
}
14599
}
14600
14601
},
14602
14603
'throw statement': {
14604
14605
'throw x;': {
14606
type: 'ThrowStatement',
14607
argument: {
14608
type: 'Identifier',
14609
name: 'x',
14610
range: [6, 7],
14611
loc: {
14612
start: { line: 1, column: 6 },
14613
end: { line: 1, column: 7 }
14614
}
14615
},
14616
range: [0, 8],
14617
loc: {
14618
start: { line: 1, column: 0 },
14619
end: { line: 1, column: 8 }
14620
}
14621
},
14622
14623
'throw x * y': {
14624
type: 'ThrowStatement',
14625
argument: {
14626
type: 'BinaryExpression',
14627
operator: '*',
14628
left: {
14629
type: 'Identifier',
14630
name: 'x',
14631
range: [6, 7],
14632
loc: {
14633
start: { line: 1, column: 6 },
14634
end: { line: 1, column: 7 }
14635
}
14636
},
14637
right: {
14638
type: 'Identifier',
14639
name: 'y',
14640
range: [10, 11],
14641
loc: {
14642
start: { line: 1, column: 10 },
14643
end: { line: 1, column: 11 }
14644
}
14645
},
14646
range: [6, 11],
14647
loc: {
14648
start: { line: 1, column: 6 },
14649
end: { line: 1, column: 11 }
14650
}
14651
},
14652
range: [0, 11],
14653
loc: {
14654
start: { line: 1, column: 0 },
14655
end: { line: 1, column: 11 }
14656
}
14657
},
14658
14659
'throw { message: "Error" }': {
14660
type: 'ThrowStatement',
14661
argument: {
14662
type: 'ObjectExpression',
14663
properties: [{
14664
type: 'Property',
14665
key: {
14666
type: 'Identifier',
14667
name: 'message',
14668
range: [8, 15],
14669
loc: {
14670
start: { line: 1, column: 8 },
14671
end: { line: 1, column: 15 }
14672
}
14673
},
14674
value: {
14675
type: 'Literal',
14676
value: 'Error',
14677
raw: '"Error"',
14678
range: [17, 24],
14679
loc: {
14680
start: { line: 1, column: 17 },
14681
end: { line: 1, column: 24 }
14682
}
14683
},
14684
kind: 'init',
14685
method: false,
14686
shorthand: false,
14687
computed: false,
14688
range: [8, 24],
14689
loc: {
14690
start: { line: 1, column: 8 },
14691
end: { line: 1, column: 24 }
14692
}
14693
}],
14694
range: [6, 26],
14695
loc: {
14696
start: { line: 1, column: 6 },
14697
end: { line: 1, column: 26 }
14698
}
14699
},
14700
range: [0, 26],
14701
loc: {
14702
start: { line: 1, column: 0 },
14703
end: { line: 1, column: 26 }
14704
}
14705
}
14706
14707
},
14708
14709
'try statement': {
14710
14711
'try { } catch (e) { }': {
14712
type: 'TryStatement',
14713
block: {
14714
type: 'BlockStatement',
14715
body: [],
14716
range: [4, 7],
14717
loc: {
14718
start: { line: 1, column: 4 },
14719
end: { line: 1, column: 7 }
14720
}
14721
},
14722
guardedHandlers: [],
14723
handlers: [{
14724
type: 'CatchClause',
14725
param: {
14726
type: 'Identifier',
14727
name: 'e',
14728
range: [15, 16],
14729
loc: {
14730
start: { line: 1, column: 15 },
14731
end: { line: 1, column: 16 }
14732
}
14733
},
14734
body: {
14735
type: 'BlockStatement',
14736
body: [],
14737
range: [18, 21],
14738
loc: {
14739
start: { line: 1, column: 18 },
14740
end: { line: 1, column: 21 }
14741
}
14742
},
14743
range: [8, 21],
14744
loc: {
14745
start: { line: 1, column: 8 },
14746
end: { line: 1, column: 21 }
14747
}
14748
}],
14749
finalizer: null,
14750
range: [0, 21],
14751
loc: {
14752
start: { line: 1, column: 0 },
14753
end: { line: 1, column: 21 }
14754
}
14755
},
14756
14757
'try { } catch (eval) { }': {
14758
type: 'TryStatement',
14759
block: {
14760
type: 'BlockStatement',
14761
body: [],
14762
range: [4, 7],
14763
loc: {
14764
start: { line: 1, column: 4 },
14765
end: { line: 1, column: 7 }
14766
}
14767
},
14768
guardedHandlers: [],
14769
handlers: [{
14770
type: 'CatchClause',
14771
param: {
14772
type: 'Identifier',
14773
name: 'eval',
14774
range: [15, 19],
14775
loc: {
14776
start: { line: 1, column: 15 },
14777
end: { line: 1, column: 19 }
14778
}
14779
},
14780
body: {
14781
type: 'BlockStatement',
14782
body: [],
14783
range: [21, 24],
14784
loc: {
14785
start: { line: 1, column: 21 },
14786
end: { line: 1, column: 24 }
14787
}
14788
},
14789
range: [8, 24],
14790
loc: {
14791
start: { line: 1, column: 8 },
14792
end: { line: 1, column: 24 }
14793
}
14794
}],
14795
finalizer: null,
14796
range: [0, 24],
14797
loc: {
14798
start: { line: 1, column: 0 },
14799
end: { line: 1, column: 24 }
14800
}
14801
},
14802
14803
'try { } catch (arguments) { }': {
14804
type: 'TryStatement',
14805
block: {
14806
type: 'BlockStatement',
14807
body: [],
14808
range: [4, 7],
14809
loc: {
14810
start: { line: 1, column: 4 },
14811
end: { line: 1, column: 7 }
14812
}
14813
},
14814
guardedHandlers: [],
14815
handlers: [{
14816
type: 'CatchClause',
14817
param: {
14818
type: 'Identifier',
14819
name: 'arguments',
14820
range: [15, 24],
14821
loc: {
14822
start: { line: 1, column: 15 },
14823
end: { line: 1, column: 24 }
14824
}
14825
},
14826
body: {
14827
type: 'BlockStatement',
14828
body: [],
14829
range: [26, 29],
14830
loc: {
14831
start: { line: 1, column: 26 },
14832
end: { line: 1, column: 29 }
14833
}
14834
},
14835
range: [8, 29],
14836
loc: {
14837
start: { line: 1, column: 8 },
14838
end: { line: 1, column: 29 }
14839
}
14840
}],
14841
finalizer: null,
14842
range: [0, 29],
14843
loc: {
14844
start: { line: 1, column: 0 },
14845
end: { line: 1, column: 29 }
14846
}
14847
},
14848
14849
'try { } catch (e) { say(e) }': {
14850
type: 'TryStatement',
14851
block: {
14852
type: 'BlockStatement',
14853
body: [],
14854
range: [4, 7],
14855
loc: {
14856
start: { line: 1, column: 4 },
14857
end: { line: 1, column: 7 }
14858
}
14859
},
14860
guardedHandlers: [],
14861
handlers: [{
14862
type: 'CatchClause',
14863
param: {
14864
type: 'Identifier',
14865
name: 'e',
14866
range: [15, 16],
14867
loc: {
14868
start: { line: 1, column: 15 },
14869
end: { line: 1, column: 16 }
14870
}
14871
},
14872
body: {
14873
type: 'BlockStatement',
14874
body: [{
14875
type: 'ExpressionStatement',
14876
expression: {
14877
type: 'CallExpression',
14878
callee: {
14879
type: 'Identifier',
14880
name: 'say',
14881
range: [20, 23],
14882
loc: {
14883
start: { line: 1, column: 20 },
14884
end: { line: 1, column: 23 }
14885
}
14886
},
14887
'arguments': [{
14888
type: 'Identifier',
14889
name: 'e',
14890
range: [24, 25],
14891
loc: {
14892
start: { line: 1, column: 24 },
14893
end: { line: 1, column: 25 }
14894
}
14895
}],
14896
range: [20, 26],
14897
loc: {
14898
start: { line: 1, column: 20 },
14899
end: { line: 1, column: 26 }
14900
}
14901
},
14902
range: [20, 27],
14903
loc: {
14904
start: { line: 1, column: 20 },
14905
end: { line: 1, column: 27 }
14906
}
14907
}],
14908
range: [18, 28],
14909
loc: {
14910
start: { line: 1, column: 18 },
14911
end: { line: 1, column: 28 }
14912
}
14913
},
14914
range: [8, 28],
14915
loc: {
14916
start: { line: 1, column: 8 },
14917
end: { line: 1, column: 28 }
14918
}
14919
}],
14920
finalizer: null,
14921
range: [0, 28],
14922
loc: {
14923
start: { line: 1, column: 0 },
14924
end: { line: 1, column: 28 }
14925
}
14926
},
14927
14928
'try { } finally { cleanup(stuff) }': {
14929
type: 'TryStatement',
14930
block: {
14931
type: 'BlockStatement',
14932
body: [],
14933
range: [4, 7],
14934
loc: {
14935
start: { line: 1, column: 4 },
14936
end: { line: 1, column: 7 }
14937
}
14938
},
14939
guardedHandlers: [],
14940
handlers: [],
14941
finalizer: {
14942
type: 'BlockStatement',
14943
body: [{
14944
type: 'ExpressionStatement',
14945
expression: {
14946
type: 'CallExpression',
14947
callee: {
14948
type: 'Identifier',
14949
name: 'cleanup',
14950
range: [18, 25],
14951
loc: {
14952
start: { line: 1, column: 18 },
14953
end: { line: 1, column: 25 }
14954
}
14955
},
14956
'arguments': [{
14957
type: 'Identifier',
14958
name: 'stuff',
14959
range: [26, 31],
14960
loc: {
14961
start: { line: 1, column: 26 },
14962
end: { line: 1, column: 31 }
14963
}
14964
}],
14965
range: [18, 32],
14966
loc: {
14967
start: { line: 1, column: 18 },
14968
end: { line: 1, column: 32 }
14969
}
14970
},
14971
range: [18, 33],
14972
loc: {
14973
start: { line: 1, column: 18 },
14974
end: { line: 1, column: 33 }
14975
}
14976
}],
14977
range: [16, 34],
14978
loc: {
14979
start: { line: 1, column: 16 },
14980
end: { line: 1, column: 34 }
14981
}
14982
},
14983
range: [0, 34],
14984
loc: {
14985
start: { line: 1, column: 0 },
14986
end: { line: 1, column: 34 }
14987
}
14988
},
14989
14990
'try { doThat(); } catch (e) { say(e) }': {
14991
type: 'TryStatement',
14992
block: {
14993
type: 'BlockStatement',
14994
body: [{
14995
type: 'ExpressionStatement',
14996
expression: {
14997
type: 'CallExpression',
14998
callee: {
14999
type: 'Identifier',
15000
name: 'doThat',
15001
range: [6, 12],
15002
loc: {
15003
start: { line: 1, column: 6 },
15004
end: { line: 1, column: 12 }
15005
}
15006
},
15007
'arguments': [],
15008
range: [6, 14],
15009
loc: {
15010
start: { line: 1, column: 6 },
15011
end: { line: 1, column: 14 }
15012
}
15013
},
15014
range: [6, 15],
15015
loc: {
15016
start: { line: 1, column: 6 },
15017
end: { line: 1, column: 15 }
15018
}
15019
}],
15020
range: [4, 17],
15021
loc: {
15022
start: { line: 1, column: 4 },
15023
end: { line: 1, column: 17 }
15024
}
15025
},
15026
guardedHandlers: [],
15027
handlers: [{
15028
type: 'CatchClause',
15029
param: {
15030
type: 'Identifier',
15031
name: 'e',
15032
range: [25, 26],
15033
loc: {
15034
start: { line: 1, column: 25 },
15035
end: { line: 1, column: 26 }
15036
}
15037
},
15038
body: {
15039
type: 'BlockStatement',
15040
body: [{
15041
type: 'ExpressionStatement',
15042
expression: {
15043
type: 'CallExpression',
15044
callee: {
15045
type: 'Identifier',
15046
name: 'say',
15047
range: [30, 33],
15048
loc: {
15049
start: { line: 1, column: 30 },
15050
end: { line: 1, column: 33 }
15051
}
15052
},
15053
'arguments': [{
15054
type: 'Identifier',
15055
name: 'e',
15056
range: [34, 35],
15057
loc: {
15058
start: { line: 1, column: 34 },
15059
end: { line: 1, column: 35 }
15060
}
15061
}],
15062
range: [30, 36],
15063
loc: {
15064
start: { line: 1, column: 30 },
15065
end: { line: 1, column: 36 }
15066
}
15067
},
15068
range: [30, 37],
15069
loc: {
15070
start: { line: 1, column: 30 },
15071
end: { line: 1, column: 37 }
15072
}
15073
}],
15074
range: [28, 38],
15075
loc: {
15076
start: { line: 1, column: 28 },
15077
end: { line: 1, column: 38 }
15078
}
15079
},
15080
range: [18, 38],
15081
loc: {
15082
start: { line: 1, column: 18 },
15083
end: { line: 1, column: 38 }
15084
}
15085
}],
15086
finalizer: null,
15087
range: [0, 38],
15088
loc: {
15089
start: { line: 1, column: 0 },
15090
end: { line: 1, column: 38 }
15091
}
15092
},
15093
15094
'try { doThat(); } catch (e) { say(e) } finally { cleanup(stuff) }': {
15095
type: 'TryStatement',
15096
block: {
15097
type: 'BlockStatement',
15098
body: [{
15099
type: 'ExpressionStatement',
15100
expression: {
15101
type: 'CallExpression',
15102
callee: {
15103
type: 'Identifier',
15104
name: 'doThat',
15105
range: [6, 12],
15106
loc: {
15107
start: { line: 1, column: 6 },
15108
end: { line: 1, column: 12 }
15109
}
15110
},
15111
'arguments': [],
15112
range: [6, 14],
15113
loc: {
15114
start: { line: 1, column: 6 },
15115
end: { line: 1, column: 14 }
15116
}
15117
},
15118
range: [6, 15],
15119
loc: {
15120
start: { line: 1, column: 6 },
15121
end: { line: 1, column: 15 }
15122
}
15123
}],
15124
range: [4, 17],
15125
loc: {
15126
start: { line: 1, column: 4 },
15127
end: { line: 1, column: 17 }
15128
}
15129
},
15130
guardedHandlers: [],
15131
handlers: [{
15132
type: 'CatchClause',
15133
param: {
15134
type: 'Identifier',
15135
name: 'e',
15136
range: [25, 26],
15137
loc: {
15138
start: { line: 1, column: 25 },
15139
end: { line: 1, column: 26 }
15140
}
15141
},
15142
body: {
15143
type: 'BlockStatement',
15144
body: [{
15145
type: 'ExpressionStatement',
15146
expression: {
15147
type: 'CallExpression',
15148
callee: {
15149
type: 'Identifier',
15150
name: 'say',
15151
range: [30, 33],
15152
loc: {
15153
start: { line: 1, column: 30 },
15154
end: { line: 1, column: 33 }
15155
}
15156
},
15157
'arguments': [{
15158
type: 'Identifier',
15159
name: 'e',
15160
range: [34, 35],
15161
loc: {
15162
start: { line: 1, column: 34 },
15163
end: { line: 1, column: 35 }
15164
}
15165
}],
15166
range: [30, 36],
15167
loc: {
15168
start: { line: 1, column: 30 },
15169
end: { line: 1, column: 36 }
15170
}
15171
},
15172
range: [30, 37],
15173
loc: {
15174
start: { line: 1, column: 30 },
15175
end: { line: 1, column: 37 }
15176
}
15177
}],
15178
range: [28, 38],
15179
loc: {
15180
start: { line: 1, column: 28 },
15181
end: { line: 1, column: 38 }
15182
}
15183
},
15184
range: [18, 38],
15185
loc: {
15186
start: { line: 1, column: 18 },
15187
end: { line: 1, column: 38 }
15188
}
15189
}],
15190
finalizer: {
15191
type: 'BlockStatement',
15192
body: [{
15193
type: 'ExpressionStatement',
15194
expression: {
15195
type: 'CallExpression',
15196
callee: {
15197
type: 'Identifier',
15198
name: 'cleanup',
15199
range: [49, 56],
15200
loc: {
15201
start: { line: 1, column: 49 },
15202
end: { line: 1, column: 56 }
15203
}
15204
},
15205
'arguments': [{
15206
type: 'Identifier',
15207
name: 'stuff',
15208
range: [57, 62],
15209
loc: {
15210
start: { line: 1, column: 57 },
15211
end: { line: 1, column: 62 }
15212
}
15213
}],
15214
range: [49, 63],
15215
loc: {
15216
start: { line: 1, column: 49 },
15217
end: { line: 1, column: 63 }
15218
}
15219
},
15220
range: [49, 64],
15221
loc: {
15222
start: { line: 1, column: 49 },
15223
end: { line: 1, column: 64 }
15224
}
15225
}],
15226
range: [47, 65],
15227
loc: {
15228
start: { line: 1, column: 47 },
15229
end: { line: 1, column: 65 }
15230
}
15231
},
15232
range: [0, 65],
15233
loc: {
15234
start: { line: 1, column: 0 },
15235
end: { line: 1, column: 65 }
15236
}
15237
}
15238
15239
},
15240
15241
'debugger statement': {
15242
15243
'debugger;': {
15244
type: 'DebuggerStatement',
15245
range: [0, 9],
15246
loc: {
15247
start: { line: 1, column: 0 },
15248
end: { line: 1, column: 9 }
15249
}
15250
}
15251
15252
},
15253
15254
'Function Definition': {
15255
15256
'function hello() { sayHi(); }': {
15257
type: 'FunctionDeclaration',
15258
id: {
15259
type: 'Identifier',
15260
name: 'hello',
15261
range: [9, 14],
15262
loc: {
15263
start: { line: 1, column: 9 },
15264
end: { line: 1, column: 14 }
15265
}
15266
},
15267
params: [],
15268
defaults: [],
15269
body: {
15270
type: 'BlockStatement',
15271
body: [{
15272
type: 'ExpressionStatement',
15273
expression: {
15274
type: 'CallExpression',
15275
callee: {
15276
type: 'Identifier',
15277
name: 'sayHi',
15278
range: [19, 24],
15279
loc: {
15280
start: { line: 1, column: 19 },
15281
end: { line: 1, column: 24 }
15282
}
15283
},
15284
'arguments': [],
15285
range: [19, 26],
15286
loc: {
15287
start: { line: 1, column: 19 },
15288
end: { line: 1, column: 26 }
15289
}
15290
},
15291
range: [19, 27],
15292
loc: {
15293
start: { line: 1, column: 19 },
15294
end: { line: 1, column: 27 }
15295
}
15296
}],
15297
range: [17, 29],
15298
loc: {
15299
start: { line: 1, column: 17 },
15300
end: { line: 1, column: 29 }
15301
}
15302
},
15303
rest: null,
15304
generator: false,
15305
expression: false,
15306
range: [0, 29],
15307
loc: {
15308
start: { line: 1, column: 0 },
15309
end: { line: 1, column: 29 }
15310
}
15311
},
15312
15313
'function eval() { }': {
15314
type: 'FunctionDeclaration',
15315
id: {
15316
type: 'Identifier',
15317
name: 'eval',
15318
range: [9, 13],
15319
loc: {
15320
start: { line: 1, column: 9 },
15321
end: { line: 1, column: 13 }
15322
}
15323
},
15324
params: [],
15325
defaults: [],
15326
body: {
15327
type: 'BlockStatement',
15328
body: [],
15329
range: [16, 19],
15330
loc: {
15331
start: { line: 1, column: 16 },
15332
end: { line: 1, column: 19 }
15333
}
15334
},
15335
rest: null,
15336
generator: false,
15337
expression: false,
15338
range: [0, 19],
15339
loc: {
15340
start: { line: 1, column: 0 },
15341
end: { line: 1, column: 19 }
15342
}
15343
},
15344
15345
'function arguments() { }': {
15346
type: 'FunctionDeclaration',
15347
id: {
15348
type: 'Identifier',
15349
name: 'arguments',
15350
range: [9, 18],
15351
loc: {
15352
start: { line: 1, column: 9 },
15353
end: { line: 1, column: 18 }
15354
}
15355
},
15356
params: [],
15357
defaults: [],
15358
body: {
15359
type: 'BlockStatement',
15360
body: [],
15361
range: [21, 24],
15362
loc: {
15363
start: { line: 1, column: 21 },
15364
end: { line: 1, column: 24 }
15365
}
15366
},
15367
rest: null,
15368
generator: false,
15369
expression: false,
15370
range: [0, 24],
15371
loc: {
15372
start: { line: 1, column: 0 },
15373
end: { line: 1, column: 24 }
15374
}
15375
},
15376
15377
'function test(t, t) { }': {
15378
type: 'FunctionDeclaration',
15379
id: {
15380
type: 'Identifier',
15381
name: 'test',
15382
range: [9, 13],
15383
loc: {
15384
start: { line: 1, column: 9 },
15385
end: { line: 1, column: 13 }
15386
}
15387
},
15388
params: [{
15389
type: 'Identifier',
15390
name: 't',
15391
range: [14, 15],
15392
loc: {
15393
start: { line: 1, column: 14 },
15394
end: { line: 1, column: 15 }
15395
}
15396
}, {
15397
type: 'Identifier',
15398
name: 't',
15399
range: [17, 18],
15400
loc: {
15401
start: { line: 1, column: 17 },
15402
end: { line: 1, column: 18 }
15403
}
15404
}],
15405
defaults: [],
15406
body: {
15407
type: 'BlockStatement',
15408
body: [],
15409
range: [20, 23],
15410
loc: {
15411
start: { line: 1, column: 20 },
15412
end: { line: 1, column: 23 }
15413
}
15414
},
15415
rest: null,
15416
generator: false,
15417
expression: false,
15418
range: [0, 23],
15419
loc: {
15420
start: { line: 1, column: 0 },
15421
end: { line: 1, column: 23 }
15422
}
15423
},
15424
15425
'(function test(t, t) { })': {
15426
type: 'ExpressionStatement',
15427
expression: {
15428
type: 'FunctionExpression',
15429
id: {
15430
type: 'Identifier',
15431
name: 'test',
15432
range: [10, 14],
15433
loc: {
15434
start: { line: 1, column: 10 },
15435
end: { line: 1, column: 14 }
15436
}
15437
},
15438
params: [{
15439
type: 'Identifier',
15440
name: 't',
15441
range: [15, 16],
15442
loc: {
15443
start: { line: 1, column: 15 },
15444
end: { line: 1, column: 16 }
15445
}
15446
}, {
15447
type: 'Identifier',
15448
name: 't',
15449
range: [18, 19],
15450
loc: {
15451
start: { line: 1, column: 18 },
15452
end: { line: 1, column: 19 }
15453
}
15454
}],
15455
defaults: [],
15456
body: {
15457
type: 'BlockStatement',
15458
body: [],
15459
range: [21, 24],
15460
loc: {
15461
start: { line: 1, column: 21 },
15462
end: { line: 1, column: 24 }
15463
}
15464
},
15465
rest: null,
15466
generator: false,
15467
expression: false,
15468
range: [1, 24],
15469
loc: {
15470
start: { line: 1, column: 1 },
15471
end: { line: 1, column: 24 }
15472
}
15473
},
15474
range: [0, 25],
15475
loc: {
15476
start: { line: 1, column: 0 },
15477
end: { line: 1, column: 25 }
15478
}
15479
},
15480
15481
'function eval() { function inner() { "use strict" } }': {
15482
type: 'FunctionDeclaration',
15483
id: {
15484
type: 'Identifier',
15485
name: 'eval',
15486
range: [9, 13],
15487
loc: {
15488
start: { line: 1, column: 9 },
15489
end: { line: 1, column: 13 }
15490
}
15491
},
15492
params: [],
15493
defaults: [],
15494
body: {
15495
type: 'BlockStatement',
15496
body: [{
15497
type: 'FunctionDeclaration',
15498
id: {
15499
type: 'Identifier',
15500
name: 'inner',
15501
range: [27, 32],
15502
loc: {
15503
start: { line: 1, column: 27 },
15504
end: { line: 1, column: 32 }
15505
}
15506
},
15507
params: [],
15508
defaults: [],
15509
body: {
15510
type: 'BlockStatement',
15511
body: [{
15512
type: 'ExpressionStatement',
15513
expression: {
15514
type: 'Literal',
15515
value: 'use strict',
15516
raw: '\"use strict\"',
15517
range: [37, 49],
15518
loc: {
15519
start: { line: 1, column: 37 },
15520
end: { line: 1, column: 49 }
15521
}
15522
},
15523
range: [37, 50],
15524
loc: {
15525
start: { line: 1, column: 37 },
15526
end: { line: 1, column: 50 }
15527
}
15528
}],
15529
range: [35, 51],
15530
loc: {
15531
start: { line: 1, column: 35 },
15532
end: { line: 1, column: 51 }
15533
}
15534
},
15535
rest: null,
15536
generator: false,
15537
expression: false,
15538
range: [18, 51],
15539
loc: {
15540
start: { line: 1, column: 18 },
15541
end: { line: 1, column: 51 }
15542
}
15543
}],
15544
range: [16, 53],
15545
loc: {
15546
start: { line: 1, column: 16 },
15547
end: { line: 1, column: 53 }
15548
}
15549
},
15550
rest: null,
15551
generator: false,
15552
expression: false,
15553
range: [0, 53],
15554
loc: {
15555
start: { line: 1, column: 0 },
15556
end: { line: 1, column: 53 }
15557
}
15558
},
15559
15560
'function hello(a) { sayHi(); }': {
15561
type: 'FunctionDeclaration',
15562
id: {
15563
type: 'Identifier',
15564
name: 'hello',
15565
range: [9, 14],
15566
loc: {
15567
start: { line: 1, column: 9 },
15568
end: { line: 1, column: 14 }
15569
}
15570
},
15571
params: [{
15572
type: 'Identifier',
15573
name: 'a',
15574
range: [15, 16],
15575
loc: {
15576
start: { line: 1, column: 15 },
15577
end: { line: 1, column: 16 }
15578
}
15579
}],
15580
defaults: [],
15581
body: {
15582
type: 'BlockStatement',
15583
body: [{
15584
type: 'ExpressionStatement',
15585
expression: {
15586
type: 'CallExpression',
15587
callee: {
15588
type: 'Identifier',
15589
name: 'sayHi',
15590
range: [20, 25],
15591
loc: {
15592
start: { line: 1, column: 20 },
15593
end: { line: 1, column: 25 }
15594
}
15595
},
15596
'arguments': [],
15597
range: [20, 27],
15598
loc: {
15599
start: { line: 1, column: 20 },
15600
end: { line: 1, column: 27 }
15601
}
15602
},
15603
range: [20, 28],
15604
loc: {
15605
start: { line: 1, column: 20 },
15606
end: { line: 1, column: 28 }
15607
}
15608
}],
15609
range: [18, 30],
15610
loc: {
15611
start: { line: 1, column: 18 },
15612
end: { line: 1, column: 30 }
15613
}
15614
},
15615
rest: null,
15616
generator: false,
15617
expression: false,
15618
range: [0, 30],
15619
loc: {
15620
start: { line: 1, column: 0 },
15621
end: { line: 1, column: 30 }
15622
}
15623
},
15624
15625
'function hello(a, b) { sayHi(); }': {
15626
type: 'FunctionDeclaration',
15627
id: {
15628
type: 'Identifier',
15629
name: 'hello',
15630
range: [9, 14],
15631
loc: {
15632
start: { line: 1, column: 9 },
15633
end: { line: 1, column: 14 }
15634
}
15635
},
15636
params: [{
15637
type: 'Identifier',
15638
name: 'a',
15639
range: [15, 16],
15640
loc: {
15641
start: { line: 1, column: 15 },
15642
end: { line: 1, column: 16 }
15643
}
15644
}, {
15645
type: 'Identifier',
15646
name: 'b',
15647
range: [18, 19],
15648
loc: {
15649
start: { line: 1, column: 18 },
15650
end: { line: 1, column: 19 }
15651
}
15652
}],
15653
defaults: [],
15654
body: {
15655
type: 'BlockStatement',
15656
body: [{
15657
type: 'ExpressionStatement',
15658
expression: {
15659
type: 'CallExpression',
15660
callee: {
15661
type: 'Identifier',
15662
name: 'sayHi',
15663
range: [23, 28],
15664
loc: {
15665
start: { line: 1, column: 23 },
15666
end: { line: 1, column: 28 }
15667
}
15668
},
15669
'arguments': [],
15670
range: [23, 30],
15671
loc: {
15672
start: { line: 1, column: 23 },
15673
end: { line: 1, column: 30 }
15674
}
15675
},
15676
range: [23, 31],
15677
loc: {
15678
start: { line: 1, column: 23 },
15679
end: { line: 1, column: 31 }
15680
}
15681
}],
15682
range: [21, 33],
15683
loc: {
15684
start: { line: 1, column: 21 },
15685
end: { line: 1, column: 33 }
15686
}
15687
},
15688
rest: null,
15689
generator: false,
15690
expression: false,
15691
range: [0, 33],
15692
loc: {
15693
start: { line: 1, column: 0 },
15694
end: { line: 1, column: 33 }
15695
}
15696
},
15697
15698
'var hi = function() { sayHi() };': {
15699
type: 'VariableDeclaration',
15700
declarations: [{
15701
type: 'VariableDeclarator',
15702
id: {
15703
type: 'Identifier',
15704
name: 'hi',
15705
range: [4, 6],
15706
loc: {
15707
start: { line: 1, column: 4 },
15708
end: { line: 1, column: 6 }
15709
}
15710
},
15711
init: {
15712
type: 'FunctionExpression',
15713
id: null,
15714
params: [],
15715
defaults: [],
15716
body: {
15717
type: 'BlockStatement',
15718
body: [{
15719
type: 'ExpressionStatement',
15720
expression: {
15721
type: 'CallExpression',
15722
callee: {
15723
type: 'Identifier',
15724
name: 'sayHi',
15725
range: [22, 27],
15726
loc: {
15727
start: { line: 1, column: 22 },
15728
end: { line: 1, column: 27 }
15729
}
15730
},
15731
'arguments': [],
15732
range: [22, 29],
15733
loc: {
15734
start: { line: 1, column: 22 },
15735
end: { line: 1, column: 29 }
15736
}
15737
},
15738
range: [22, 30],
15739
loc: {
15740
start: { line: 1, column: 22 },
15741
end: { line: 1, column: 30 }
15742
}
15743
}],
15744
range: [20, 31],
15745
loc: {
15746
start: { line: 1, column: 20 },
15747
end: { line: 1, column: 31 }
15748
}
15749
},
15750
rest: null,
15751
generator: false,
15752
expression: false,
15753
range: [9, 31],
15754
loc: {
15755
start: { line: 1, column: 9 },
15756
end: { line: 1, column: 31 }
15757
}
15758
},
15759
range: [4, 31],
15760
loc: {
15761
start: { line: 1, column: 4 },
15762
end: { line: 1, column: 31 }
15763
}
15764
}],
15765
kind: 'var',
15766
range: [0, 32],
15767
loc: {
15768
start: { line: 1, column: 0 },
15769
end: { line: 1, column: 32 }
15770
}
15771
},
15772
15773
'var hi = function eval() { };': {
15774
type: 'VariableDeclaration',
15775
declarations: [{
15776
type: 'VariableDeclarator',
15777
id: {
15778
type: 'Identifier',
15779
name: 'hi',
15780
range: [4, 6],
15781
loc: {
15782
start: { line: 1, column: 4 },
15783
end: { line: 1, column: 6 }
15784
}
15785
},
15786
init: {
15787
type: 'FunctionExpression',
15788
id: {
15789
type: 'Identifier',
15790
name: 'eval',
15791
range: [18, 22],
15792
loc: {
15793
start: { line: 1, column: 18 },
15794
end: { line: 1, column: 22 }
15795
}
15796
},
15797
params: [],
15798
defaults: [],
15799
body: {
15800
type: 'BlockStatement',
15801
body: [],
15802
range: [25, 28],
15803
loc: {
15804
start: { line: 1, column: 25 },
15805
end: { line: 1, column: 28 }
15806
}
15807
},
15808
rest: null,
15809
generator: false,
15810
expression: false,
15811
range: [9, 28],
15812
loc: {
15813
start: { line: 1, column: 9 },
15814
end: { line: 1, column: 28 }
15815
}
15816
},
15817
range: [4, 28],
15818
loc: {
15819
start: { line: 1, column: 4 },
15820
end: { line: 1, column: 28 }
15821
}
15822
}],
15823
kind: 'var',
15824
range: [0, 29],
15825
loc: {
15826
start: { line: 1, column: 0 },
15827
end: { line: 1, column: 29 }
15828
}
15829
},
15830
15831
'var hi = function arguments() { };': {
15832
type: 'VariableDeclaration',
15833
declarations: [{
15834
type: 'VariableDeclarator',
15835
id: {
15836
type: 'Identifier',
15837
name: 'hi',
15838
range: [4, 6],
15839
loc: {
15840
start: { line: 1, column: 4 },
15841
end: { line: 1, column: 6 }
15842
}
15843
},
15844
init: {
15845
type: 'FunctionExpression',
15846
id: {
15847
type: 'Identifier',
15848
name: 'arguments',
15849
range: [18, 27],
15850
loc: {
15851
start: { line: 1, column: 18 },
15852
end: { line: 1, column: 27 }
15853
}
15854
},
15855
params: [],
15856
defaults: [],
15857
body: {
15858
type: 'BlockStatement',
15859
body: [],
15860
range: [30, 33],
15861
loc: {
15862
start: { line: 1, column: 30 },
15863
end: { line: 1, column: 33 }
15864
}
15865
},
15866
rest: null,
15867
generator: false,
15868
expression: false,
15869
range: [9, 33],
15870
loc: {
15871
start: { line: 1, column: 9 },
15872
end: { line: 1, column: 33 }
15873
}
15874
},
15875
range: [4, 33],
15876
loc: {
15877
start: { line: 1, column: 4 },
15878
end: { line: 1, column: 33 }
15879
}
15880
}],
15881
kind: 'var',
15882
range: [0, 34],
15883
loc: {
15884
start: { line: 1, column: 0 },
15885
end: { line: 1, column: 34 }
15886
}
15887
},
15888
15889
'var hello = function hi() { sayHi() };': {
15890
type: 'VariableDeclaration',
15891
declarations: [{
15892
type: 'VariableDeclarator',
15893
id: {
15894
type: 'Identifier',
15895
name: 'hello',
15896
range: [4, 9],
15897
loc: {
15898
start: { line: 1, column: 4 },
15899
end: { line: 1, column: 9 }
15900
}
15901
},
15902
init: {
15903
type: 'FunctionExpression',
15904
id: {
15905
type: 'Identifier',
15906
name: 'hi',
15907
range: [21, 23],
15908
loc: {
15909
start: { line: 1, column: 21 },
15910
end: { line: 1, column: 23 }
15911
}
15912
},
15913
params: [],
15914
defaults: [],
15915
body: {
15916
type: 'BlockStatement',
15917
body: [{
15918
type: 'ExpressionStatement',
15919
expression: {
15920
type: 'CallExpression',
15921
callee: {
15922
type: 'Identifier',
15923
name: 'sayHi',
15924
range: [28, 33],
15925
loc: {
15926
start: { line: 1, column: 28 },
15927
end: { line: 1, column: 33 }
15928
}
15929
},
15930
'arguments': [],
15931
range: [28, 35],
15932
loc: {
15933
start: { line: 1, column: 28 },
15934
end: { line: 1, column: 35 }
15935
}
15936
},
15937
range: [28, 36],
15938
loc: {
15939
start: { line: 1, column: 28 },
15940
end: { line: 1, column: 36 }
15941
}
15942
}],
15943
range: [26, 37],
15944
loc: {
15945
start: { line: 1, column: 26 },
15946
end: { line: 1, column: 37 }
15947
}
15948
},
15949
rest: null,
15950
generator: false,
15951
expression: false,
15952
range: [12, 37],
15953
loc: {
15954
start: { line: 1, column: 12 },
15955
end: { line: 1, column: 37 }
15956
}
15957
},
15958
range: [4, 37],
15959
loc: {
15960
start: { line: 1, column: 4 },
15961
end: { line: 1, column: 37 }
15962
}
15963
}],
15964
kind: 'var',
15965
range: [0, 38],
15966
loc: {
15967
start: { line: 1, column: 0 },
15968
end: { line: 1, column: 38 }
15969
}
15970
},
15971
15972
'(function(){})': {
15973
type: 'ExpressionStatement',
15974
expression: {
15975
type: 'FunctionExpression',
15976
id: null,
15977
params: [],
15978
defaults: [],
15979
body: {
15980
type: 'BlockStatement',
15981
body: [],
15982
range: [11, 13],
15983
loc: {
15984
start: { line: 1, column: 11 },
15985
end: { line: 1, column: 13 }
15986
}
15987
},
15988
rest: null,
15989
generator: false,
15990
expression: false,
15991
range: [1, 13],
15992
loc: {
15993
start: { line: 1, column: 1 },
15994
end: { line: 1, column: 13 }
15995
}
15996
},
15997
range: [0, 14],
15998
loc: {
15999
start: { line: 1, column: 0 },
16000
end: { line: 1, column: 14 }
16001
}
16002
},
16003
16004
'function universe(__proto__) { }': {
16005
type: 'FunctionDeclaration',
16006
id: {
16007
type: 'Identifier',
16008
name: 'universe',
16009
range: [9, 17],
16010
loc: {
16011
start: { line: 1, column: 9 },
16012
end: { line: 1, column: 17 }
16013
}
16014
},
16015
params: [{
16016
type: 'Identifier',
16017
name: '__proto__',
16018
range: [18, 27],
16019
loc: {
16020
start: { line: 1, column: 18 },
16021
end: { line: 1, column: 27 }
16022
}
16023
}],
16024
defaults: [],
16025
body: {
16026
type: 'BlockStatement',
16027
body: [],
16028
range: [29, 32],
16029
loc: {
16030
start: { line: 1, column: 29 },
16031
end: { line: 1, column: 32 }
16032
}
16033
},
16034
rest: null,
16035
generator: false,
16036
expression: false,
16037
range: [0, 32],
16038
loc: {
16039
start: { line: 1, column: 0 },
16040
end: { line: 1, column: 32 }
16041
}
16042
},
16043
16044
'function test() { "use strict" + 42; }': {
16045
type: 'FunctionDeclaration',
16046
id: {
16047
type: 'Identifier',
16048
name: 'test',
16049
range: [9, 13],
16050
loc: {
16051
start: { line: 1, column: 9 },
16052
end: { line: 1, column: 13 }
16053
}
16054
},
16055
params: [],
16056
defaults: [],
16057
body: {
16058
type: 'BlockStatement',
16059
body: [{
16060
type: 'ExpressionStatement',
16061
expression: {
16062
type: 'BinaryExpression',
16063
operator: '+',
16064
left: {
16065
type: 'Literal',
16066
value: 'use strict',
16067
raw: '"use strict"',
16068
range: [18, 30],
16069
loc: {
16070
start: { line: 1, column: 18 },
16071
end: { line: 1, column: 30 }
16072
}
16073
},
16074
right: {
16075
type: 'Literal',
16076
value: 42,
16077
raw: '42',
16078
range: [33, 35],
16079
loc: {
16080
start: { line: 1, column: 33 },
16081
end: { line: 1, column: 35 }
16082
}
16083
},
16084
range: [18, 35],
16085
loc: {
16086
start: { line: 1, column: 18 },
16087
end: { line: 1, column: 35 }
16088
}
16089
},
16090
range: [18, 36],
16091
loc: {
16092
start: { line: 1, column: 18 },
16093
end: { line: 1, column: 36 }
16094
}
16095
}],
16096
range: [16, 38],
16097
loc: {
16098
start: { line: 1, column: 16 },
16099
end: { line: 1, column: 38 }
16100
}
16101
},
16102
rest: null,
16103
generator: false,
16104
expression: false,
16105
range: [0, 38],
16106
loc: {
16107
start: { line: 1, column: 0 },
16108
end: { line: 1, column: 38 }
16109
}
16110
}
16111
16112
},
16113
16114
'Automatic semicolon insertion': {
16115
16116
'{ x\n++y }': {
16117
type: 'BlockStatement',
16118
body: [{
16119
type: 'ExpressionStatement',
16120
expression: {
16121
type: 'Identifier',
16122
name: 'x',
16123
range: [2, 3],
16124
loc: {
16125
start: { line: 1, column: 2 },
16126
end: { line: 1, column: 3 }
16127
}
16128
},
16129
range: [2, 3],
16130
loc: {
16131
start: { line: 1, column: 2 },
16132
end: { line: 1, column: 3 }
16133
}
16134
}, {
16135
type: 'ExpressionStatement',
16136
expression: {
16137
type: 'UpdateExpression',
16138
operator: '++',
16139
argument: {
16140
type: 'Identifier',
16141
name: 'y',
16142
range: [6, 7],
16143
loc: {
16144
start: { line: 2, column: 2 },
16145
end: { line: 2, column: 3 }
16146
}
16147
},
16148
prefix: true,
16149
range: [4, 7],
16150
loc: {
16151
start: { line: 2, column: 0 },
16152
end: { line: 2, column: 3 }
16153
}
16154
},
16155
range: [4, 8],
16156
loc: {
16157
start: { line: 2, column: 0 },
16158
end: { line: 2, column: 4 }
16159
}
16160
}],
16161
range: [0, 9],
16162
loc: {
16163
start: { line: 1, column: 0 },
16164
end: { line: 2, column: 5 }
16165
}
16166
},
16167
16168
'{ x\n--y }': {
16169
type: 'BlockStatement',
16170
body: [{
16171
type: 'ExpressionStatement',
16172
expression: {
16173
type: 'Identifier',
16174
name: 'x',
16175
range: [2, 3],
16176
loc: {
16177
start: { line: 1, column: 2 },
16178
end: { line: 1, column: 3 }
16179
}
16180
},
16181
range: [2, 3],
16182
loc: {
16183
start: { line: 1, column: 2 },
16184
end: { line: 1, column: 3 }
16185
}
16186
}, {
16187
type: 'ExpressionStatement',
16188
expression: {
16189
type: 'UpdateExpression',
16190
operator: '--',
16191
argument: {
16192
type: 'Identifier',
16193
name: 'y',
16194
range: [6, 7],
16195
loc: {
16196
start: { line: 2, column: 2 },
16197
end: { line: 2, column: 3 }
16198
}
16199
},
16200
prefix: true,
16201
range: [4, 7],
16202
loc: {
16203
start: { line: 2, column: 0 },
16204
end: { line: 2, column: 3 }
16205
}
16206
},
16207
range: [4, 8],
16208
loc: {
16209
start: { line: 2, column: 0 },
16210
end: { line: 2, column: 4 }
16211
}
16212
}],
16213
range: [0, 9],
16214
loc: {
16215
start: { line: 1, column: 0 },
16216
end: { line: 2, column: 5 }
16217
}
16218
},
16219
16220
'var x /* comment */;': {
16221
type: 'VariableDeclaration',
16222
declarations: [{
16223
type: 'VariableDeclarator',
16224
id: {
16225
type: 'Identifier',
16226
name: 'x',
16227
range: [4, 5],
16228
loc: {
16229
start: { line: 1, column: 4 },
16230
end: { line: 1, column: 5 }
16231
}
16232
},
16233
init: null,
16234
range: [4, 5],
16235
loc: {
16236
start: { line: 1, column: 4 },
16237
end: { line: 1, column: 5 }
16238
}
16239
}],
16240
kind: 'var',
16241
range: [0, 20],
16242
loc: {
16243
start: { line: 1, column: 0 },
16244
end: { line: 1, column: 20 }
16245
}
16246
},
16247
16248
'{ var x = 14, y = 3\nz; }': {
16249
type: 'BlockStatement',
16250
body: [{
16251
type: 'VariableDeclaration',
16252
declarations: [{
16253
type: 'VariableDeclarator',
16254
id: {
16255
type: 'Identifier',
16256
name: 'x',
16257
range: [6, 7],
16258
loc: {
16259
start: { line: 1, column: 6 },
16260
end: { line: 1, column: 7 }
16261
}
16262
},
16263
init: {
16264
type: 'Literal',
16265
value: 14,
16266
raw: '14',
16267
range: [10, 12],
16268
loc: {
16269
start: { line: 1, column: 10 },
16270
end: { line: 1, column: 12 }
16271
}
16272
},
16273
range: [6, 12],
16274
loc: {
16275
start: { line: 1, column: 6 },
16276
end: { line: 1, column: 12 }
16277
}
16278
}, {
16279
type: 'VariableDeclarator',
16280
id: {
16281
type: 'Identifier',
16282
name: 'y',
16283
range: [14, 15],
16284
loc: {
16285
start: { line: 1, column: 14 },
16286
end: { line: 1, column: 15 }
16287
}
16288
},
16289
init: {
16290
type: 'Literal',
16291
value: 3,
16292
raw: '3',
16293
range: [18, 19],
16294
loc: {
16295
start: { line: 1, column: 18 },
16296
end: { line: 1, column: 19 }
16297
}
16298
},
16299
range: [14, 19],
16300
loc: {
16301
start: { line: 1, column: 14 },
16302
end: { line: 1, column: 19 }
16303
}
16304
}],
16305
kind: 'var',
16306
range: [2, 19],
16307
loc: {
16308
start: { line: 1, column: 2 },
16309
end: { line: 1, column: 19 }
16310
}
16311
}, {
16312
type: 'ExpressionStatement',
16313
expression: {
16314
type: 'Identifier',
16315
name: 'z',
16316
range: [20, 21],
16317
loc: {
16318
start: { line: 2, column: 0 },
16319
end: { line: 2, column: 1 }
16320
}
16321
},
16322
range: [20, 22],
16323
loc: {
16324
start: { line: 2, column: 0 },
16325
end: { line: 2, column: 2 }
16326
}
16327
}],
16328
range: [0, 24],
16329
loc: {
16330
start: { line: 1, column: 0 },
16331
end: { line: 2, column: 4 }
16332
}
16333
},
16334
16335
'while (true) { continue\nthere; }': {
16336
type: 'WhileStatement',
16337
test: {
16338
type: 'Literal',
16339
value: true,
16340
raw: 'true',
16341
range: [7, 11],
16342
loc: {
16343
start: { line: 1, column: 7 },
16344
end: { line: 1, column: 11 }
16345
}
16346
},
16347
body: {
16348
type: 'BlockStatement',
16349
body: [{
16350
type: 'ContinueStatement',
16351
label: null,
16352
range: [15, 23],
16353
loc: {
16354
start: { line: 1, column: 15 },
16355
end: { line: 1, column: 23 }
16356
}
16357
}, {
16358
type: 'ExpressionStatement',
16359
expression: {
16360
type: 'Identifier',
16361
name: 'there',
16362
range: [24, 29],
16363
loc: {
16364
start: { line: 2, column: 0 },
16365
end: { line: 2, column: 5 }
16366
}
16367
},
16368
range: [24, 30],
16369
loc: {
16370
start: { line: 2, column: 0 },
16371
end: { line: 2, column: 6 }
16372
}
16373
}],
16374
range: [13, 32],
16375
loc: {
16376
start: { line: 1, column: 13 },
16377
end: { line: 2, column: 8 }
16378
}
16379
},
16380
range: [0, 32],
16381
loc: {
16382
start: { line: 1, column: 0 },
16383
end: { line: 2, column: 8 }
16384
}
16385
},
16386
16387
'while (true) { continue // Comment\nthere; }': {
16388
type: 'WhileStatement',
16389
test: {
16390
type: 'Literal',
16391
value: true,
16392
raw: 'true',
16393
range: [7, 11],
16394
loc: {
16395
start: { line: 1, column: 7 },
16396
end: { line: 1, column: 11 }
16397
}
16398
},
16399
body: {
16400
type: 'BlockStatement',
16401
body: [{
16402
type: 'ContinueStatement',
16403
label: null,
16404
range: [15, 23],
16405
loc: {
16406
start: { line: 1, column: 15 },
16407
end: { line: 1, column: 23 }
16408
}
16409
}, {
16410
type: 'ExpressionStatement',
16411
expression: {
16412
type: 'Identifier',
16413
name: 'there',
16414
range: [35, 40],
16415
loc: {
16416
start: { line: 2, column: 0 },
16417
end: { line: 2, column: 5 }
16418
}
16419
},
16420
range: [35, 41],
16421
loc: {
16422
start: { line: 2, column: 0 },
16423
end: { line: 2, column: 6 }
16424
}
16425
}],
16426
range: [13, 43],
16427
loc: {
16428
start: { line: 1, column: 13 },
16429
end: { line: 2, column: 8 }
16430
}
16431
},
16432
range: [0, 43],
16433
loc: {
16434
start: { line: 1, column: 0 },
16435
end: { line: 2, column: 8 }
16436
}
16437
},
16438
16439
'while (true) { continue /* Multiline\nComment */there; }': {
16440
type: 'WhileStatement',
16441
test: {
16442
type: 'Literal',
16443
value: true,
16444
raw: 'true',
16445
range: [7, 11],
16446
loc: {
16447
start: { line: 1, column: 7 },
16448
end: { line: 1, column: 11 }
16449
}
16450
},
16451
body: {
16452
type: 'BlockStatement',
16453
body: [{
16454
type: 'ContinueStatement',
16455
label: null,
16456
range: [15, 23],
16457
loc: {
16458
start: { line: 1, column: 15 },
16459
end: { line: 1, column: 23 }
16460
}
16461
}, {
16462
type: 'ExpressionStatement',
16463
expression: {
16464
type: 'Identifier',
16465
name: 'there',
16466
range: [47, 52],
16467
loc: {
16468
start: { line: 2, column: 10 },
16469
end: { line: 2, column: 15 }
16470
}
16471
},
16472
range: [47, 53],
16473
loc: {
16474
start: { line: 2, column: 10 },
16475
end: { line: 2, column: 16 }
16476
}
16477
}],
16478
range: [13, 55],
16479
loc: {
16480
start: { line: 1, column: 13 },
16481
end: { line: 2, column: 18 }
16482
}
16483
},
16484
range: [0, 55],
16485
loc: {
16486
start: { line: 1, column: 0 },
16487
end: { line: 2, column: 18 }
16488
}
16489
},
16490
16491
'while (true) { break\nthere; }': {
16492
type: 'WhileStatement',
16493
test: {
16494
type: 'Literal',
16495
value: true,
16496
raw: 'true',
16497
range: [7, 11],
16498
loc: {
16499
start: { line: 1, column: 7 },
16500
end: { line: 1, column: 11 }
16501
}
16502
},
16503
body: {
16504
type: 'BlockStatement',
16505
body: [{
16506
type: 'BreakStatement',
16507
label: null,
16508
range: [15, 20],
16509
loc: {
16510
start: { line: 1, column: 15 },
16511
end: { line: 1, column: 20 }
16512
}
16513
}, {
16514
type: 'ExpressionStatement',
16515
expression: {
16516
type: 'Identifier',
16517
name: 'there',
16518
range: [21, 26],
16519
loc: {
16520
start: { line: 2, column: 0 },
16521
end: { line: 2, column: 5 }
16522
}
16523
},
16524
range: [21, 27],
16525
loc: {
16526
start: { line: 2, column: 0 },
16527
end: { line: 2, column: 6 }
16528
}
16529
}],
16530
range: [13, 29],
16531
loc: {
16532
start: { line: 1, column: 13 },
16533
end: { line: 2, column: 8 }
16534
}
16535
},
16536
range: [0, 29],
16537
loc: {
16538
start: { line: 1, column: 0 },
16539
end: { line: 2, column: 8 }
16540
}
16541
},
16542
16543
'while (true) { break // Comment\nthere; }': {
16544
type: 'WhileStatement',
16545
test: {
16546
type: 'Literal',
16547
value: true,
16548
raw: 'true',
16549
range: [7, 11],
16550
loc: {
16551
start: { line: 1, column: 7 },
16552
end: { line: 1, column: 11 }
16553
}
16554
},
16555
body: {
16556
type: 'BlockStatement',
16557
body: [{
16558
type: 'BreakStatement',
16559
label: null,
16560
range: [15, 20],
16561
loc: {
16562
start: { line: 1, column: 15 },
16563
end: { line: 1, column: 20 }
16564
}
16565
}, {
16566
type: 'ExpressionStatement',
16567
expression: {
16568
type: 'Identifier',
16569
name: 'there',
16570
range: [32, 37],
16571
loc: {
16572
start: { line: 2, column: 0 },
16573
end: { line: 2, column: 5 }
16574
}
16575
},
16576
range: [32, 38],
16577
loc: {
16578
start: { line: 2, column: 0 },
16579
end: { line: 2, column: 6 }
16580
}
16581
}],
16582
range: [13, 40],
16583
loc: {
16584
start: { line: 1, column: 13 },
16585
end: { line: 2, column: 8 }
16586
}
16587
},
16588
range: [0, 40],
16589
loc: {
16590
start: { line: 1, column: 0 },
16591
end: { line: 2, column: 8 }
16592
}
16593
},
16594
16595
'while (true) { break /* Multiline\nComment */there; }': {
16596
type: 'WhileStatement',
16597
test: {
16598
type: 'Literal',
16599
value: true,
16600
raw: 'true',
16601
range: [7, 11],
16602
loc: {
16603
start: { line: 1, column: 7 },
16604
end: { line: 1, column: 11 }
16605
}
16606
},
16607
body: {
16608
type: 'BlockStatement',
16609
body: [{
16610
type: 'BreakStatement',
16611
label: null,
16612
range: [15, 20],
16613
loc: {
16614
start: { line: 1, column: 15 },
16615
end: { line: 1, column: 20 }
16616
}
16617
}, {
16618
type: 'ExpressionStatement',
16619
expression: {
16620
type: 'Identifier',
16621
name: 'there',
16622
range: [44, 49],
16623
loc: {
16624
start: { line: 2, column: 10 },
16625
end: { line: 2, column: 15 }
16626
}
16627
},
16628
range: [44, 50],
16629
loc: {
16630
start: { line: 2, column: 10 },
16631
end: { line: 2, column: 16 }
16632
}
16633
}],
16634
range: [13, 52],
16635
loc: {
16636
start: { line: 1, column: 13 },
16637
end: { line: 2, column: 18 }
16638
}
16639
},
16640
range: [0, 52],
16641
loc: {
16642
start: { line: 1, column: 0 },
16643
end: { line: 2, column: 18 }
16644
}
16645
},
16646
16647
'(function(){ return\nx; })': {
16648
type: 'ExpressionStatement',
16649
expression: {
16650
type: 'FunctionExpression',
16651
id: null,
16652
params: [],
16653
defaults: [],
16654
body: {
16655
type: 'BlockStatement',
16656
body: [
16657
{
16658
type: 'ReturnStatement',
16659
argument: null,
16660
range: [13, 19],
16661
loc: {
16662
start: { line: 1, column: 13 },
16663
end: { line: 1, column: 19 }
16664
}
16665
},
16666
{
16667
type: 'ExpressionStatement',
16668
expression: {
16669
type: 'Identifier',
16670
name: 'x',
16671
range: [20, 21],
16672
loc: {
16673
start: { line: 2, column: 0 },
16674
end: { line: 2, column: 1 }
16675
}
16676
},
16677
range: [20, 22],
16678
loc: {
16679
start: { line: 2, column: 0 },
16680
end: { line: 2, column: 2 }
16681
}
16682
}
16683
],
16684
range: [11, 24],
16685
loc: {
16686
start: { line: 1, column: 11 },
16687
end: { line: 2, column: 4 }
16688
}
16689
},
16690
rest: null,
16691
generator: false,
16692
expression: false,
16693
range: [1, 24],
16694
loc: {
16695
start: { line: 1, column: 1 },
16696
end: { line: 2, column: 4 }
16697
}
16698
},
16699
range: [0, 25],
16700
loc: {
16701
start: { line: 1, column: 0 },
16702
end: { line: 2, column: 5 }
16703
}
16704
},
16705
16706
'(function(){ return // Comment\nx; })': {
16707
type: 'ExpressionStatement',
16708
expression: {
16709
type: 'FunctionExpression',
16710
id: null,
16711
params: [],
16712
defaults: [],
16713
body: {
16714
type: 'BlockStatement',
16715
body: [
16716
{
16717
type: 'ReturnStatement',
16718
argument: null,
16719
range: [13, 19],
16720
loc: {
16721
start: { line: 1, column: 13 },
16722
end: { line: 1, column: 19 }
16723
}
16724
},
16725
{
16726
type: 'ExpressionStatement',
16727
expression: {
16728
type: 'Identifier',
16729
name: 'x',
16730
range: [31, 32],
16731
loc: {
16732
start: { line: 2, column: 0 },
16733
end: { line: 2, column: 1 }
16734
}
16735
},
16736
range: [31, 33],
16737
loc: {
16738
start: { line: 2, column: 0 },
16739
end: { line: 2, column: 2 }
16740
}
16741
}
16742
],
16743
range: [11, 35],
16744
loc: {
16745
start: { line: 1, column: 11 },
16746
end: { line: 2, column: 4 }
16747
}
16748
},
16749
rest: null,
16750
generator: false,
16751
expression: false,
16752
range: [1, 35],
16753
loc: {
16754
start: { line: 1, column: 1 },
16755
end: { line: 2, column: 4 }
16756
}
16757
},
16758
range: [0, 36],
16759
loc: {
16760
start: { line: 1, column: 0 },
16761
end: { line: 2, column: 5 }
16762
}
16763
},
16764
16765
'(function(){ return/* Multiline\nComment */x; })': {
16766
type: 'ExpressionStatement',
16767
expression: {
16768
type: 'FunctionExpression',
16769
id: null,
16770
params: [],
16771
defaults: [],
16772
body: {
16773
type: 'BlockStatement',
16774
body: [
16775
{
16776
type: 'ReturnStatement',
16777
argument: null,
16778
range: [13, 19],
16779
loc: {
16780
start: { line: 1, column: 13 },
16781
end: { line: 1, column: 19 }
16782
}
16783
},
16784
{
16785
type: 'ExpressionStatement',
16786
expression: {
16787
type: 'Identifier',
16788
name: 'x',
16789
range: [42, 43],
16790
loc: {
16791
start: { line: 2, column: 10 },
16792
end: { line: 2, column: 11 }
16793
}
16794
},
16795
range: [42, 44],
16796
loc: {
16797
start: { line: 2, column: 10 },
16798
end: { line: 2, column: 12 }
16799
}
16800
}
16801
],
16802
range: [11, 46],
16803
loc: {
16804
start: { line: 1, column: 11 },
16805
end: { line: 2, column: 14 }
16806
}
16807
},
16808
rest: null,
16809
generator: false,
16810
expression: false,
16811
range: [1, 46],
16812
loc: {
16813
start: { line: 1, column: 1 },
16814
end: { line: 2, column: 14 }
16815
}
16816
},
16817
range: [0, 47],
16818
loc: {
16819
start: { line: 1, column: 0 },
16820
end: { line: 2, column: 15 }
16821
}
16822
},
16823
16824
'{ throw error\nerror; }': {
16825
type: 'BlockStatement',
16826
body: [{
16827
type: 'ThrowStatement',
16828
argument: {
16829
type: 'Identifier',
16830
name: 'error',
16831
range: [8, 13],
16832
loc: {
16833
start: { line: 1, column: 8 },
16834
end: { line: 1, column: 13 }
16835
}
16836
},
16837
range: [2, 13],
16838
loc: {
16839
start: { line: 1, column: 2 },
16840
end: { line: 1, column: 13 }
16841
}
16842
}, {
16843
type: 'ExpressionStatement',
16844
expression: {
16845
type: 'Identifier',
16846
name: 'error',
16847
range: [14, 19],
16848
loc: {
16849
start: { line: 2, column: 0 },
16850
end: { line: 2, column: 5 }
16851
}
16852
},
16853
range: [14, 20],
16854
loc: {
16855
start: { line: 2, column: 0 },
16856
end: { line: 2, column: 6 }
16857
}
16858
}],
16859
range: [0, 22],
16860
loc: {
16861
start: { line: 1, column: 0 },
16862
end: { line: 2, column: 8 }
16863
}
16864
},
16865
16866
'{ throw error// Comment\nerror; }': {
16867
type: 'BlockStatement',
16868
body: [{
16869
type: 'ThrowStatement',
16870
argument: {
16871
type: 'Identifier',
16872
name: 'error',
16873
range: [8, 13],
16874
loc: {
16875
start: { line: 1, column: 8 },
16876
end: { line: 1, column: 13 }
16877
}
16878
},
16879
range: [2, 13],
16880
loc: {
16881
start: { line: 1, column: 2 },
16882
end: { line: 1, column: 13 }
16883
}
16884
}, {
16885
type: 'ExpressionStatement',
16886
expression: {
16887
type: 'Identifier',
16888
name: 'error',
16889
range: [24, 29],
16890
loc: {
16891
start: { line: 2, column: 0 },
16892
end: { line: 2, column: 5 }
16893
}
16894
},
16895
range: [24, 30],
16896
loc: {
16897
start: { line: 2, column: 0 },
16898
end: { line: 2, column: 6 }
16899
}
16900
}],
16901
range: [0, 32],
16902
loc: {
16903
start: { line: 1, column: 0 },
16904
end: { line: 2, column: 8 }
16905
}
16906
},
16907
16908
'{ throw error/* Multiline\nComment */error; }': {
16909
type: 'BlockStatement',
16910
body: [{
16911
type: 'ThrowStatement',
16912
argument: {
16913
type: 'Identifier',
16914
name: 'error',
16915
range: [8, 13],
16916
loc: {
16917
start: { line: 1, column: 8 },
16918
end: { line: 1, column: 13 }
16919
}
16920
},
16921
range: [2, 13],
16922
loc: {
16923
start: { line: 1, column: 2 },
16924
end: { line: 1, column: 13 }
16925
}
16926
}, {
16927
type: 'ExpressionStatement',
16928
expression: {
16929
type: 'Identifier',
16930
name: 'error',
16931
range: [36, 41],
16932
loc: {
16933
start: { line: 2, column: 10 },
16934
end: { line: 2, column: 15 }
16935
}
16936
},
16937
range: [36, 42],
16938
loc: {
16939
start: { line: 2, column: 10 },
16940
end: { line: 2, column: 16 }
16941
}
16942
}],
16943
range: [0, 44],
16944
loc: {
16945
start: { line: 1, column: 0 },
16946
end: { line: 2, column: 18 }
16947
}
16948
}
16949
16950
},
16951
16952
'Source elements': {
16953
16954
'': {
16955
type: 'Program',
16956
body: [],
16957
range: [0, 0],
16958
loc: {
16959
start: { line: 0, column: 0 },
16960
end: { line: 0, column: 0 }
16961
},
16962
tokens: []
16963
}
16964
},
16965
16966
'Source option': {
16967
'x + y - z': {
16968
type: 'ExpressionStatement',
16969
expression: {
16970
type: 'BinaryExpression',
16971
operator: '-',
16972
left: {
16973
type: 'BinaryExpression',
16974
operator: '+',
16975
left: {
16976
type: 'Identifier',
16977
name: 'x',
16978
range: [0, 1],
16979
loc: {
16980
start: { line: 1, column: 0 },
16981
end: { line: 1, column: 1 },
16982
source: '42.js'
16983
}
16984
},
16985
right: {
16986
type: 'Identifier',
16987
name: 'y',
16988
range: [4, 5],
16989
loc: {
16990
start: { line: 1, column: 4 },
16991
end: { line: 1, column: 5 },
16992
source: '42.js'
16993
}
16994
},
16995
range: [0, 5],
16996
loc: {
16997
start: { line: 1, column: 0 },
16998
end: { line: 1, column: 5 },
16999
source: '42.js'
17000
}
17001
},
17002
right: {
17003
type: 'Identifier',
17004
name: 'z',
17005
range: [8, 9],
17006
loc: {
17007
start: { line: 1, column: 8 },
17008
end: { line: 1, column: 9 },
17009
source: '42.js'
17010
}
17011
},
17012
range: [0, 9],
17013
loc: {
17014
start: { line: 1, column: 0 },
17015
end: { line: 1, column: 9 },
17016
source: '42.js'
17017
}
17018
},
17019
range: [0, 9],
17020
loc: {
17021
start: { line: 1, column: 0 },
17022
end: { line: 1, column: 9 },
17023
source: '42.js'
17024
}
17025
},
17026
17027
'a + (b < (c * d)) + e': {
17028
type: 'ExpressionStatement',
17029
expression: {
17030
type: 'BinaryExpression',
17031
operator: '+',
17032
left: {
17033
type: 'BinaryExpression',
17034
operator: '+',
17035
left: {
17036
type: 'Identifier',
17037
name: 'a',
17038
range: [0, 1],
17039
loc: {
17040
start: { line: 1, column: 0 },
17041
end: { line: 1, column: 1 },
17042
source: '42.js'
17043
}
17044
},
17045
right: {
17046
type: 'BinaryExpression',
17047
operator: '<',
17048
left: {
17049
type: 'Identifier',
17050
name: 'b',
17051
range: [5, 6],
17052
loc: {
17053
start: { line: 1, column: 5 },
17054
end: { line: 1, column: 6 },
17055
source: '42.js'
17056
}
17057
},
17058
right: {
17059
type: 'BinaryExpression',
17060
operator: '*',
17061
left: {
17062
type: 'Identifier',
17063
name: 'c',
17064
range: [10, 11],
17065
loc: {
17066
start: { line: 1, column: 10 },
17067
end: { line: 1, column: 11 },
17068
source: '42.js'
17069
}
17070
},
17071
right: {
17072
type: 'Identifier',
17073
name: 'd',
17074
range: [14, 15],
17075
loc: {
17076
start: { line: 1, column: 14 },
17077
end: { line: 1, column: 15 },
17078
source: '42.js'
17079
}
17080
},
17081
range: [10, 15],
17082
loc: {
17083
start: { line: 1, column: 10 },
17084
end: { line: 1, column: 15 },
17085
source: '42.js'
17086
}
17087
},
17088
range: [5, 16],
17089
loc: {
17090
start: { line: 1, column: 5 },
17091
end: { line: 1, column: 16 },
17092
source: '42.js'
17093
}
17094
},
17095
range: [0, 17],
17096
loc: {
17097
start: { line: 1, column: 0 },
17098
end: { line: 1, column: 17 },
17099
source: '42.js'
17100
}
17101
},
17102
right: {
17103
type: 'Identifier',
17104
name: 'e',
17105
range: [20, 21],
17106
loc: {
17107
start: { line: 1, column: 20 },
17108
end: { line: 1, column: 21 },
17109
source: '42.js'
17110
}
17111
},
17112
range: [0, 21],
17113
loc: {
17114
start: { line: 1, column: 0 },
17115
end: { line: 1, column: 21 },
17116
source: '42.js'
17117
}
17118
},
17119
range: [0, 21],
17120
loc: {
17121
start: { line: 1, column: 0 },
17122
end: { line: 1, column: 21 },
17123
source: '42.js'
17124
}
17125
}
17126
17127
},
17128
17129
17130
'Invalid syntax': {
17131
17132
'{': {
17133
index: 1,
17134
lineNumber: 1,
17135
column: 2,
17136
message: 'Error: Line 1: Unexpected end of input'
17137
},
17138
17139
'}': {
17140
index: 0,
17141
lineNumber: 1,
17142
column: 1,
17143
message: 'Error: Line 1: Unexpected token }'
17144
},
17145
17146
'3ea': {
17147
index: 2,
17148
lineNumber: 1,
17149
column: 3,
17150
message: 'Error: Line 1: Unexpected token ILLEGAL'
17151
},
17152
17153
'3in []': {
17154
index: 1,
17155
lineNumber: 1,
17156
column: 2,
17157
message: 'Error: Line 1: Unexpected token ILLEGAL'
17158
},
17159
17160
'3e': {
17161
index: 2,
17162
lineNumber: 1,
17163
column: 3,
17164
message: 'Error: Line 1: Unexpected token ILLEGAL'
17165
},
17166
17167
'3e+': {
17168
index: 3,
17169
lineNumber: 1,
17170
column: 4,
17171
message: 'Error: Line 1: Unexpected token ILLEGAL'
17172
},
17173
17174
'3e-': {
17175
index: 3,
17176
lineNumber: 1,
17177
column: 4,
17178
message: 'Error: Line 1: Unexpected token ILLEGAL'
17179
},
17180
17181
'3x': {
17182
index: 1,
17183
lineNumber: 1,
17184
column: 2,
17185
message: 'Error: Line 1: Unexpected token ILLEGAL'
17186
},
17187
17188
'3x0': {
17189
index: 1,
17190
lineNumber: 1,
17191
column: 2,
17192
message: 'Error: Line 1: Unexpected token ILLEGAL'
17193
},
17194
17195
'0x': {
17196
index: 2,
17197
lineNumber: 1,
17198
column: 3,
17199
message: 'Error: Line 1: Unexpected token ILLEGAL'
17200
},
17201
17202
'09': {
17203
index: 1,
17204
lineNumber: 1,
17205
column: 2,
17206
message: 'Error: Line 1: Unexpected token ILLEGAL'
17207
},
17208
17209
'018': {
17210
index: 2,
17211
lineNumber: 1,
17212
column: 3,
17213
message: 'Error: Line 1: Unexpected token ILLEGAL'
17214
},
17215
17216
'01a': {
17217
index: 2,
17218
lineNumber: 1,
17219
column: 3,
17220
message: 'Error: Line 1: Unexpected token ILLEGAL'
17221
},
17222
17223
'3in[]': {
17224
index: 1,
17225
lineNumber: 1,
17226
column: 2,
17227
message: 'Error: Line 1: Unexpected token ILLEGAL'
17228
},
17229
17230
'0x3in[]': {
17231
index: 3,
17232
lineNumber: 1,
17233
column: 4,
17234
message: 'Error: Line 1: Unexpected token ILLEGAL'
17235
},
17236
17237
'"Hello\nWorld"': {
17238
index: 7,
17239
lineNumber: 1,
17240
column: 8,
17241
message: 'Error: Line 1: Unexpected token ILLEGAL'
17242
},
17243
17244
'x\\': {
17245
index: 2,
17246
lineNumber: 1,
17247
column: 3,
17248
message: 'Error: Line 1: Unexpected token ILLEGAL'
17249
},
17250
17251
'x\\u005c': {
17252
index: 7,
17253
lineNumber: 1,
17254
column: 8,
17255
message: 'Error: Line 1: Unexpected token ILLEGAL'
17256
},
17257
17258
'x\\u002a': {
17259
index: 7,
17260
lineNumber: 1,
17261
column: 8,
17262
message: 'Error: Line 1: Unexpected token ILLEGAL'
17263
},
17264
17265
'var x = /(s/g': {
17266
index: 13,
17267
lineNumber: 1,
17268
column: 14,
17269
message: 'Error: Line 1: Invalid regular expression'
17270
},
17271
17272
'a\\u': {
17273
index: 3,
17274
lineNumber: 1,
17275
column: 4,
17276
message: 'Error: Line 1: Unexpected token ILLEGAL'
17277
},
17278
17279
'\\ua': {
17280
index: 3,
17281
lineNumber: 1,
17282
column: 4,
17283
message: 'Error: Line 1: Unexpected token ILLEGAL'
17284
},
17285
17286
'/': {
17287
index: 1,
17288
lineNumber: 1,
17289
column: 2,
17290
message: 'Error: Line 1: Invalid regular expression: missing /'
17291
},
17292
17293
'/test': {
17294
index: 5,
17295
lineNumber: 1,
17296
column: 6,
17297
message: 'Error: Line 1: Invalid regular expression: missing /'
17298
},
17299
17300
'var x = /[z-a]/': {
17301
index: 15,
17302
lineNumber: 1,
17303
column: 16,
17304
message: 'Error: Line 1: Invalid regular expression'
17305
},
17306
17307
'/test\n/': {
17308
index: 6,
17309
lineNumber: 1,
17310
column: 7,
17311
message: 'Error: Line 1: Invalid regular expression: missing /'
17312
},
17313
17314
'var x = /[a-z]/\\ux': {
17315
index: 17,
17316
lineNumber: 1,
17317
column: 18,
17318
message: 'Error: Line 1: Unexpected token ILLEGAL'
17319
},
17320
17321
'var x = /[a-z\n]/\\ux': {
17322
index: 14,
17323
lineNumber: 1,
17324
column: 15,
17325
message: 'Error: Line 1: Invalid regular expression: missing /'
17326
},
17327
17328
'var x = /[a-z]/\\\\ux': {
17329
index: 16,
17330
lineNumber: 1,
17331
column: 17,
17332
message: 'Error: Line 1: Unexpected token ILLEGAL'
17333
},
17334
17335
'var x = /[P QR]/\\\\u0067': {
17336
index: 17,
17337
lineNumber: 1,
17338
column: 18,
17339
message: 'Error: Line 1: Unexpected token ILLEGAL'
17340
},
17341
17342
'3 = 4': {
17343
index: 1,
17344
lineNumber: 1,
17345
column: 2,
17346
message: 'Error: Line 1: Invalid left-hand side in assignment'
17347
},
17348
17349
'func() = 4': {
17350
index: 6,
17351
lineNumber: 1,
17352
column: 7,
17353
message: 'Error: Line 1: Invalid left-hand side in assignment'
17354
},
17355
17356
'(1 + 1) = 10': {
17357
index: 7,
17358
lineNumber: 1,
17359
column: 8,
17360
message: 'Error: Line 1: Invalid left-hand side in assignment'
17361
},
17362
17363
'1++': {
17364
index: 1,
17365
lineNumber: 1,
17366
column: 2,
17367
message: 'Error: Line 1: Invalid left-hand side in assignment'
17368
},
17369
17370
'1--': {
17371
index: 1,
17372
lineNumber: 1,
17373
column: 2,
17374
message: 'Error: Line 1: Invalid left-hand side in assignment'
17375
},
17376
17377
'++1': {
17378
index: 3,
17379
lineNumber: 1,
17380
column: 4,
17381
message: 'Error: Line 1: Invalid left-hand side in assignment'
17382
},
17383
17384
'--1': {
17385
index: 3,
17386
lineNumber: 1,
17387
column: 4,
17388
message: 'Error: Line 1: Invalid left-hand side in assignment'
17389
},
17390
17391
'for((1 + 1) in list) process(x);': {
17392
index: 11,
17393
lineNumber: 1,
17394
column: 12,
17395
message: 'Error: Line 1: Invalid left-hand side in for-in'
17396
},
17397
17398
'[': {
17399
index: 1,
17400
lineNumber: 1,
17401
column: 2,
17402
message: 'Error: Line 1: Unexpected end of input'
17403
},
17404
17405
'[,': {
17406
index: 2,
17407
lineNumber: 1,
17408
column: 3,
17409
message: 'Error: Line 1: Unexpected end of input'
17410
},
17411
17412
'1 + {': {
17413
index: 5,
17414
lineNumber: 1,
17415
column: 6,
17416
message: 'Error: Line 1: Unexpected end of input'
17417
},
17418
17419
'1 + { t:t ': {
17420
index: 10,
17421
lineNumber: 1,
17422
column: 11,
17423
message: 'Error: Line 1: Unexpected end of input'
17424
},
17425
17426
'1 + { t:t,': {
17427
index: 10,
17428
lineNumber: 1,
17429
column: 11,
17430
message: 'Error: Line 1: Unexpected end of input'
17431
},
17432
17433
'var x = /\n/': {
17434
index: 10,
17435
lineNumber: 1,
17436
column: 11,
17437
message: 'Error: Line 1: Invalid regular expression: missing /'
17438
},
17439
17440
'var x = "\n': {
17441
index: 10,
17442
lineNumber: 1,
17443
column: 11,
17444
message: 'Error: Line 1: Unexpected token ILLEGAL'
17445
},
17446
17447
'var if = 42': {
17448
index: 4,
17449
lineNumber: 1,
17450
column: 5,
17451
message: 'Error: Line 1: Unexpected token if'
17452
},
17453
17454
'i #= 42': {
17455
index: 2,
17456
lineNumber: 1,
17457
column: 3,
17458
message: 'Error: Line 1: Unexpected token ILLEGAL'
17459
},
17460
17461
'i + 2 = 42': {
17462
index: 5,
17463
lineNumber: 1,
17464
column: 6,
17465
message: 'Error: Line 1: Invalid left-hand side in assignment'
17466
},
17467
17468
'+i = 42': {
17469
index: 2,
17470
lineNumber: 1,
17471
column: 3,
17472
message: 'Error: Line 1: Invalid left-hand side in assignment'
17473
},
17474
17475
'1 + (': {
17476
index: 5,
17477
lineNumber: 1,
17478
column: 6,
17479
message: 'Error: Line 1: Unexpected end of input'
17480
},
17481
17482
'\n\n\n{': {
17483
index: 4,
17484
lineNumber: 4,
17485
column: 2,
17486
message: 'Error: Line 4: Unexpected end of input'
17487
},
17488
17489
'\n/* Some multiline\ncomment */\n)': {
17490
index: 30,
17491
lineNumber: 4,
17492
column: 1,
17493
message: 'Error: Line 4: Unexpected token )'
17494
},
17495
17496
'{ set 1 }': {
17497
index: 6,
17498
lineNumber: 1,
17499
column: 7,
17500
message: 'Error: Line 1: Unexpected number'
17501
},
17502
17503
'{ get 2 }': {
17504
index: 6,
17505
lineNumber: 1,
17506
column: 7,
17507
message: 'Error: Line 1: Unexpected number'
17508
},
17509
17510
'({ set: s(if) { } })': {
17511
index: 10,
17512
lineNumber: 1,
17513
column: 11,
17514
message: 'Error: Line 1: Unexpected token if'
17515
},
17516
17517
'({ set s(.) { } })': {
17518
index: 9,
17519
lineNumber: 1,
17520
column: 10,
17521
message: 'Error: Line 1: Unexpected token .'
17522
},
17523
17524
'({ set: s() { } })': {
17525
index: 12,
17526
lineNumber: 1,
17527
column: 13,
17528
message: 'Error: Line 1: Unexpected token {'
17529
},
17530
17531
'({ set: s(a, b) { } })': {
17532
index: 16,
17533
lineNumber: 1,
17534
column: 17,
17535
message: 'Error: Line 1: Unexpected token {'
17536
},
17537
17538
'({ get: g(d) { } })': {
17539
index: 13,
17540
lineNumber: 1,
17541
column: 14,
17542
message: 'Error: Line 1: Unexpected token {'
17543
},
17544
17545
'({ get i() { }, i: 42 })': {
17546
index: 21,
17547
lineNumber: 1,
17548
column: 22,
17549
message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
17550
},
17551
17552
'({ i: 42, get i() { } })': {
17553
index: 21,
17554
lineNumber: 1,
17555
column: 22,
17556
message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
17557
},
17558
17559
'({ set i(x) { }, i: 42 })': {
17560
index: 22,
17561
lineNumber: 1,
17562
column: 23,
17563
message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
17564
},
17565
17566
'({ i: 42, set i(x) { } })': {
17567
index: 22,
17568
lineNumber: 1,
17569
column: 23,
17570
message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
17571
},
17572
17573
'({ get i() { }, get i() { } })': {
17574
index: 27,
17575
lineNumber: 1,
17576
column: 28,
17577
message: 'Error: Line 1: Object literal may not have multiple get/set accessors with the same name'
17578
},
17579
17580
'({ set i(x) { }, set i(x) { } })': {
17581
index: 29,
17582
lineNumber: 1,
17583
column: 30,
17584
message: 'Error: Line 1: Object literal may not have multiple get/set accessors with the same name'
17585
},
17586
17587
'function t(if) { }': {
17588
index: 11,
17589
lineNumber: 1,
17590
column: 12,
17591
message: 'Error: Line 1: Unexpected token if'
17592
},
17593
17594
'function t(true) { }': {
17595
index: 11,
17596
lineNumber: 1,
17597
column: 12,
17598
message: 'Error: Line 1: Unexpected token true'
17599
},
17600
17601
'function t(false) { }': {
17602
index: 11,
17603
lineNumber: 1,
17604
column: 12,
17605
message: 'Error: Line 1: Unexpected token false'
17606
},
17607
17608
'function t(null) { }': {
17609
index: 11,
17610
lineNumber: 1,
17611
column: 12,
17612
message: 'Error: Line 1: Unexpected token null'
17613
},
17614
17615
'function null() { }': {
17616
index: 9,
17617
lineNumber: 1,
17618
column: 10,
17619
message: 'Error: Line 1: Unexpected token null'
17620
},
17621
17622
'function true() { }': {
17623
index: 9,
17624
lineNumber: 1,
17625
column: 10,
17626
message: 'Error: Line 1: Unexpected token true'
17627
},
17628
17629
'function false() { }': {
17630
index: 9,
17631
lineNumber: 1,
17632
column: 10,
17633
message: 'Error: Line 1: Unexpected token false'
17634
},
17635
17636
'function if() { }': {
17637
index: 9,
17638
lineNumber: 1,
17639
column: 10,
17640
message: 'Error: Line 1: Unexpected token if'
17641
},
17642
17643
'a b;': {
17644
index: 2,
17645
lineNumber: 1,
17646
column: 3,
17647
message: 'Error: Line 1: Unexpected identifier'
17648
},
17649
17650
'if.a;': {
17651
index: 2,
17652
lineNumber: 1,
17653
column: 3,
17654
message: 'Error: Line 1: Unexpected token .'
17655
},
17656
17657
'a if;': {
17658
index: 2,
17659
lineNumber: 1,
17660
column: 3,
17661
message: 'Error: Line 1: Unexpected token if'
17662
},
17663
17664
'a class;': {
17665
index: 2,
17666
lineNumber: 1,
17667
column: 3,
17668
message: 'Error: Line 1: Unexpected reserved word'
17669
},
17670
17671
'break\n': {
17672
index: 5,
17673
lineNumber: 1,
17674
column: 6,
17675
message: 'Error: Line 1: Illegal break statement'
17676
},
17677
17678
'break 1;': {
17679
index: 6,
17680
lineNumber: 1,
17681
column: 7,
17682
message: 'Error: Line 1: Unexpected number'
17683
},
17684
17685
'continue\n': {
17686
index: 8,
17687
lineNumber: 1,
17688
column: 9,
17689
message: 'Error: Line 1: Illegal continue statement'
17690
},
17691
17692
'continue 2;': {
17693
index: 9,
17694
lineNumber: 1,
17695
column: 10,
17696
message: 'Error: Line 1: Unexpected number'
17697
},
17698
17699
'throw': {
17700
index: 5,
17701
lineNumber: 1,
17702
column: 6,
17703
message: 'Error: Line 1: Unexpected end of input'
17704
},
17705
17706
'throw;': {
17707
index: 5,
17708
lineNumber: 1,
17709
column: 6,
17710
message: 'Error: Line 1: Unexpected token ;'
17711
},
17712
17713
'throw\n': {
17714
index: 5,
17715
lineNumber: 1,
17716
column: 6,
17717
message: 'Error: Line 1: Illegal newline after throw'
17718
},
17719
17720
'for (var i, i2 in {});': {
17721
index: 15,
17722
lineNumber: 1,
17723
column: 16,
17724
message: 'Error: Line 1: Unexpected token in'
17725
},
17726
17727
'for ((i in {}));': {
17728
index: 14,
17729
lineNumber: 1,
17730
column: 15,
17731
message: 'Error: Line 1: Unexpected token )'
17732
},
17733
17734
'for (i + 1 in {});': {
17735
index: 10,
17736
lineNumber: 1,
17737
column: 11,
17738
message: 'Error: Line 1: Invalid left-hand side in for-in'
17739
},
17740
17741
'for (+i in {});': {
17742
index: 7,
17743
lineNumber: 1,
17744
column: 8,
17745
message: 'Error: Line 1: Invalid left-hand side in for-in'
17746
},
17747
17748
'if(false)': {
17749
index: 9,
17750
lineNumber: 1,
17751
column: 10,
17752
message: 'Error: Line 1: Unexpected end of input'
17753
},
17754
17755
'if(false) doThis(); else': {
17756
index: 24,
17757
lineNumber: 1,
17758
column: 25,
17759
message: 'Error: Line 1: Unexpected end of input'
17760
},
17761
17762
'do': {
17763
index: 2,
17764
lineNumber: 1,
17765
column: 3,
17766
message: 'Error: Line 1: Unexpected end of input'
17767
},
17768
17769
'while(false)': {
17770
index: 12,
17771
lineNumber: 1,
17772
column: 13,
17773
message: 'Error: Line 1: Unexpected end of input'
17774
},
17775
17776
'for(;;)': {
17777
index: 7,
17778
lineNumber: 1,
17779
column: 8,
17780
message: 'Error: Line 1: Unexpected end of input'
17781
},
17782
17783
'with(x)': {
17784
index: 7,
17785
lineNumber: 1,
17786
column: 8,
17787
message: 'Error: Line 1: Unexpected end of input'
17788
},
17789
17790
'try { }': {
17791
index: 7,
17792
lineNumber: 1,
17793
column: 8,
17794
message: 'Error: Line 1: Missing catch or finally after try'
17795
},
17796
17797
'\u203F = 10': {
17798
index: 0,
17799
lineNumber: 1,
17800
column: 1,
17801
message: 'Error: Line 1: Unexpected token ILLEGAL'
17802
},
17803
17804
'const x = 12, y;': {
17805
index: 15,
17806
lineNumber: 1,
17807
column: 16,
17808
message: 'Error: Line 1: Const must be initialized'
17809
},
17810
17811
'const x, y = 12;': {
17812
index: 7,
17813
lineNumber: 1,
17814
column: 8,
17815
message: 'Error: Line 1: Const must be initialized'
17816
},
17817
17818
'const x;': {
17819
index: 7,
17820
lineNumber: 1,
17821
column: 8,
17822
message: 'Error: Line 1: Const must be initialized'
17823
},
17824
17825
'if(true) let a = 1;': {
17826
index: 9,
17827
lineNumber: 1,
17828
column: 10,
17829
message: 'Error: Line 1: Unexpected token let'
17830
},
17831
17832
'if(true) const a = 1;': {
17833
index: 9,
17834
lineNumber: 1,
17835
column: 10,
17836
message: 'Error: Line 1: Unexpected token const'
17837
},
17838
17839
'switch (c) { default: default: }': {
17840
index: 30,
17841
lineNumber: 1,
17842
column: 31,
17843
message: 'Error: Line 1: More than one default clause in switch statement'
17844
},
17845
17846
'new X()."s"': {
17847
index: 8,
17848
lineNumber: 1,
17849
column: 9,
17850
message: 'Error: Line 1: Unexpected string'
17851
},
17852
17853
'/*': {
17854
index: 2,
17855
lineNumber: 1,
17856
column: 3,
17857
message: 'Error: Line 1: Unexpected token ILLEGAL'
17858
},
17859
17860
'/*\n\n\n': {
17861
index: 5,
17862
lineNumber: 4,
17863
column: 1,
17864
message: 'Error: Line 4: Unexpected token ILLEGAL'
17865
},
17866
17867
'/**': {
17868
index: 3,
17869
lineNumber: 1,
17870
column: 4,
17871
message: 'Error: Line 1: Unexpected token ILLEGAL'
17872
},
17873
17874
'/*\n\n*': {
17875
index: 5,
17876
lineNumber: 3,
17877
column: 2,
17878
message: 'Error: Line 3: Unexpected token ILLEGAL'
17879
},
17880
17881
'/*hello': {
17882
index: 7,
17883
lineNumber: 1,
17884
column: 8,
17885
message: 'Error: Line 1: Unexpected token ILLEGAL'
17886
},
17887
17888
'/*hello *': {
17889
index: 10,
17890
lineNumber: 1,
17891
column: 11,
17892
message: 'Error: Line 1: Unexpected token ILLEGAL'
17893
},
17894
17895
'\n]': {
17896
index: 1,
17897
lineNumber: 2,
17898
column: 1,
17899
message: 'Error: Line 2: Unexpected token ]'
17900
},
17901
17902
'\r]': {
17903
index: 1,
17904
lineNumber: 2,
17905
column: 1,
17906
message: 'Error: Line 2: Unexpected token ]'
17907
},
17908
17909
'\r\n]': {
17910
index: 2,
17911
lineNumber: 2,
17912
column: 1,
17913
message: 'Error: Line 2: Unexpected token ]'
17914
},
17915
17916
'\n\r]': {
17917
index: 2,
17918
lineNumber: 3,
17919
column: 1,
17920
message: 'Error: Line 3: Unexpected token ]'
17921
},
17922
17923
'//\r\n]': {
17924
index: 4,
17925
lineNumber: 2,
17926
column: 1,
17927
message: 'Error: Line 2: Unexpected token ]'
17928
},
17929
17930
'//\n\r]': {
17931
index: 4,
17932
lineNumber: 3,
17933
column: 1,
17934
message: 'Error: Line 3: Unexpected token ]'
17935
},
17936
17937
'/a\\\n/': {
17938
index: 4,
17939
lineNumber: 1,
17940
column: 5,
17941
message: 'Error: Line 1: Invalid regular expression: missing /'
17942
},
17943
17944
'//\r \n]': {
17945
index: 5,
17946
lineNumber: 3,
17947
column: 1,
17948
message: 'Error: Line 3: Unexpected token ]'
17949
},
17950
17951
'/*\r\n*/]': {
17952
index: 6,
17953
lineNumber: 2,
17954
column: 3,
17955
message: 'Error: Line 2: Unexpected token ]'
17956
},
17957
17958
'/*\n\r*/]': {
17959
index: 6,
17960
lineNumber: 3,
17961
column: 3,
17962
message: 'Error: Line 3: Unexpected token ]'
17963
},
17964
17965
'/*\r \n*/]': {
17966
index: 7,
17967
lineNumber: 3,
17968
column: 3,
17969
message: 'Error: Line 3: Unexpected token ]'
17970
},
17971
17972
'\\\\': {
17973
index: 1,
17974
lineNumber: 1,
17975
column: 2,
17976
message: 'Error: Line 1: Unexpected token ILLEGAL'
17977
},
17978
17979
'\\u005c': {
17980
index: 6,
17981
lineNumber: 1,
17982
column: 7,
17983
message: 'Error: Line 1: Unexpected token ILLEGAL'
17984
},
17985
17986
17987
'\\x': {
17988
index: 1,
17989
lineNumber: 1,
17990
column: 2,
17991
message: 'Error: Line 1: Unexpected token ILLEGAL'
17992
},
17993
17994
'\\u0000': {
17995
index: 6,
17996
lineNumber: 1,
17997
column: 7,
17998
message: 'Error: Line 1: Unexpected token ILLEGAL'
17999
},
18000
18001
'\u200C = []': {
18002
index: 0,
18003
lineNumber: 1,
18004
column: 1,
18005
message: 'Error: Line 1: Unexpected token ILLEGAL'
18006
},
18007
18008
'\u200D = []': {
18009
index: 0,
18010
lineNumber: 1,
18011
column: 1,
18012
message: 'Error: Line 1: Unexpected token ILLEGAL'
18013
},
18014
18015
'"\\': {
18016
index: 3,
18017
lineNumber: 1,
18018
column: 4,
18019
message: 'Error: Line 1: Unexpected token ILLEGAL'
18020
},
18021
18022
'"\\u': {
18023
index: 3,
18024
lineNumber: 1,
18025
column: 4,
18026
message: 'Error: Line 1: Unexpected token ILLEGAL'
18027
},
18028
18029
'try { } catch() {}': {
18030
index: 14,
18031
lineNumber: 1,
18032
column: 15,
18033
message: 'Error: Line 1: Unexpected token )'
18034
},
18035
18036
'return': {
18037
index: 6,
18038
lineNumber: 1,
18039
column: 7,
18040
message: 'Error: Line 1: Illegal return statement'
18041
},
18042
18043
'break': {
18044
index: 5,
18045
lineNumber: 1,
18046
column: 6,
18047
message: 'Error: Line 1: Illegal break statement'
18048
},
18049
18050
'continue': {
18051
index: 8,
18052
lineNumber: 1,
18053
column: 9,
18054
message: 'Error: Line 1: Illegal continue statement'
18055
},
18056
18057
'switch (x) { default: continue; }': {
18058
index: 31,
18059
lineNumber: 1,
18060
column: 32,
18061
message: 'Error: Line 1: Illegal continue statement'
18062
},
18063
18064
'do { x } *': {
18065
index: 9,
18066
lineNumber: 1,
18067
column: 10,
18068
message: 'Error: Line 1: Unexpected token *'
18069
},
18070
18071
'while (true) { break x; }': {
18072
index: 22,
18073
lineNumber: 1,
18074
column: 23,
18075
message: 'Error: Line 1: Undefined label \'x\''
18076
},
18077
18078
'while (true) { continue x; }': {
18079
index: 25,
18080
lineNumber: 1,
18081
column: 26,
18082
message: 'Error: Line 1: Undefined label \'x\''
18083
},
18084
18085
'x: while (true) { (function () { break x; }); }': {
18086
index: 40,
18087
lineNumber: 1,
18088
column: 41,
18089
message: 'Error: Line 1: Undefined label \'x\''
18090
},
18091
18092
'x: while (true) { (function () { continue x; }); }': {
18093
index: 43,
18094
lineNumber: 1,
18095
column: 44,
18096
message: 'Error: Line 1: Undefined label \'x\''
18097
},
18098
18099
'x: while (true) { (function () { break; }); }': {
18100
index: 39,
18101
lineNumber: 1,
18102
column: 40,
18103
message: 'Error: Line 1: Illegal break statement'
18104
},
18105
18106
'x: while (true) { (function () { continue; }); }': {
18107
index: 42,
18108
lineNumber: 1,
18109
column: 43,
18110
message: 'Error: Line 1: Illegal continue statement'
18111
},
18112
18113
'x: while (true) { x: while (true) { } }': {
18114
index: 20,
18115
lineNumber: 1,
18116
column: 21,
18117
message: 'Error: Line 1: Label \'x\' has already been declared'
18118
},
18119
18120
'(function () { \'use strict\'; delete i; }())': {
18121
index: 37,
18122
lineNumber: 1,
18123
column: 38,
18124
message: 'Error: Line 1: Delete of an unqualified identifier in strict mode.'
18125
},
18126
18127
'(function () { \'use strict\'; with (i); }())': {
18128
index: 28,
18129
lineNumber: 1,
18130
column: 29,
18131
message: 'Error: Line 1: Strict mode code may not include a with statement'
18132
},
18133
18134
'function hello() {\'use strict\'; ({ i: 42, i: 42 }) }': {
18135
index: 47,
18136
lineNumber: 1,
18137
column: 48,
18138
message: 'Error: Line 1: Duplicate data property in object literal not allowed in strict mode'
18139
},
18140
18141
'function hello() {\'use strict\'; ({ hasOwnProperty: 42, hasOwnProperty: 42 }) }': {
18142
index: 73,
18143
lineNumber: 1,
18144
column: 74,
18145
message: 'Error: Line 1: Duplicate data property in object literal not allowed in strict mode'
18146
},
18147
18148
'function hello() {\'use strict\'; var eval = 10; }': {
18149
index: 40,
18150
lineNumber: 1,
18151
column: 41,
18152
message: 'Error: Line 1: Variable name may not be eval or arguments in strict mode'
18153
},
18154
18155
'function hello() {\'use strict\'; var arguments = 10; }': {
18156
index: 45,
18157
lineNumber: 1,
18158
column: 46,
18159
message: 'Error: Line 1: Variable name may not be eval or arguments in strict mode'
18160
},
18161
18162
'function hello() {\'use strict\'; try { } catch (eval) { } }': {
18163
index: 51,
18164
lineNumber: 1,
18165
column: 52,
18166
message: 'Error: Line 1: Catch variable may not be eval or arguments in strict mode'
18167
},
18168
18169
'function hello() {\'use strict\'; try { } catch (arguments) { } }': {
18170
index: 56,
18171
lineNumber: 1,
18172
column: 57,
18173
message: 'Error: Line 1: Catch variable may not be eval or arguments in strict mode'
18174
},
18175
18176
'function hello() {\'use strict\'; eval = 10; }': {
18177
index: 32,
18178
lineNumber: 1,
18179
column: 33,
18180
message: 'Error: Line 1: Assignment to eval or arguments is not allowed in strict mode'
18181
},
18182
18183
'function hello() {\'use strict\'; arguments = 10; }': {
18184
index: 32,
18185
lineNumber: 1,
18186
column: 33,
18187
message: 'Error: Line 1: Assignment to eval or arguments is not allowed in strict mode'
18188
},
18189
18190
'function hello() {\'use strict\'; ++eval; }': {
18191
index: 38,
18192
lineNumber: 1,
18193
column: 39,
18194
message: 'Error: Line 1: Prefix increment/decrement may not have eval or arguments operand in strict mode'
18195
},
18196
18197
'function hello() {\'use strict\'; --eval; }': {
18198
index: 38,
18199
lineNumber: 1,
18200
column: 39,
18201
message: 'Error: Line 1: Prefix increment/decrement may not have eval or arguments operand in strict mode'
18202
},
18203
18204
'function hello() {\'use strict\'; ++arguments; }': {
18205
index: 43,
18206
lineNumber: 1,
18207
column: 44,
18208
message: 'Error: Line 1: Prefix increment/decrement may not have eval or arguments operand in strict mode'
18209
},
18210
18211
'function hello() {\'use strict\'; --arguments; }': {
18212
index: 43,
18213
lineNumber: 1,
18214
column: 44,
18215
message: 'Error: Line 1: Prefix increment/decrement may not have eval or arguments operand in strict mode'
18216
},
18217
18218
'function hello() {\'use strict\'; eval++; }': {
18219
index: 36,
18220
lineNumber: 1,
18221
column: 37,
18222
message: 'Error: Line 1: Postfix increment/decrement may not have eval or arguments operand in strict mode'
18223
},
18224
18225
'function hello() {\'use strict\'; eval--; }': {
18226
index: 36,
18227
lineNumber: 1,
18228
column: 37,
18229
message: 'Error: Line 1: Postfix increment/decrement may not have eval or arguments operand in strict mode'
18230
},
18231
18232
'function hello() {\'use strict\'; arguments++; }': {
18233
index: 41,
18234
lineNumber: 1,
18235
column: 42,
18236
message: 'Error: Line 1: Postfix increment/decrement may not have eval or arguments operand in strict mode'
18237
},
18238
18239
'function hello() {\'use strict\'; arguments--; }': {
18240
index: 41,
18241
lineNumber: 1,
18242
column: 42,
18243
message: 'Error: Line 1: Postfix increment/decrement may not have eval or arguments operand in strict mode'
18244
},
18245
18246
'function hello() {\'use strict\'; function eval() { } }': {
18247
index: 41,
18248
lineNumber: 1,
18249
column: 42,
18250
message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
18251
},
18252
18253
'function hello() {\'use strict\'; function arguments() { } }': {
18254
index: 41,
18255
lineNumber: 1,
18256
column: 42,
18257
message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
18258
},
18259
18260
'function eval() {\'use strict\'; }': {
18261
index: 9,
18262
lineNumber: 1,
18263
column: 10,
18264
message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
18265
},
18266
18267
'function arguments() {\'use strict\'; }': {
18268
index: 9,
18269
lineNumber: 1,
18270
column: 10,
18271
message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
18272
},
18273
18274
'function hello() {\'use strict\'; (function eval() { }()) }': {
18275
index: 42,
18276
lineNumber: 1,
18277
column: 43,
18278
message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
18279
},
18280
18281
'function hello() {\'use strict\'; (function arguments() { }()) }': {
18282
index: 42,
18283
lineNumber: 1,
18284
column: 43,
18285
message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
18286
},
18287
18288
'(function eval() {\'use strict\'; })()': {
18289
index: 10,
18290
lineNumber: 1,
18291
column: 11,
18292
message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
18293
},
18294
18295
'(function arguments() {\'use strict\'; })()': {
18296
index: 10,
18297
lineNumber: 1,
18298
column: 11,
18299
message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
18300
},
18301
18302
'function hello() {\'use strict\'; ({ s: function eval() { } }); }': {
18303
index: 47,
18304
lineNumber: 1,
18305
column: 48,
18306
message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
18307
},
18308
18309
'(function package() {\'use strict\'; })()': {
18310
index: 10,
18311
lineNumber: 1,
18312
column: 11,
18313
message: 'Error: Line 1: Use of future reserved word in strict mode'
18314
},
18315
18316
'function hello() {\'use strict\'; ({ i: 10, set s(eval) { } }); }': {
18317
index: 48,
18318
lineNumber: 1,
18319
column: 49,
18320
message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
18321
},
18322
18323
'function hello() {\'use strict\'; ({ set s(eval) { } }); }': {
18324
index: 41,
18325
lineNumber: 1,
18326
column: 42,
18327
message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
18328
},
18329
18330
'function hello() {\'use strict\'; ({ s: function s(eval) { } }); }': {
18331
index: 49,
18332
lineNumber: 1,
18333
column: 50,
18334
message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
18335
},
18336
18337
'function hello(eval) {\'use strict\';}': {
18338
index: 15,
18339
lineNumber: 1,
18340
column: 16,
18341
message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
18342
},
18343
18344
'function hello(arguments) {\'use strict\';}': {
18345
index: 15,
18346
lineNumber: 1,
18347
column: 16,
18348
message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
18349
},
18350
18351
'function hello() { \'use strict\'; function inner(eval) {} }': {
18352
index: 48,
18353
lineNumber: 1,
18354
column: 49,
18355
message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
18356
},
18357
18358
'function hello() { \'use strict\'; function inner(arguments) {} }': {
18359
index: 48,
18360
lineNumber: 1,
18361
column: 49,
18362
message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
18363
},
18364
18365
' "\\1"; \'use strict\';': {
18366
index: 1,
18367
lineNumber: 1,
18368
column: 2,
18369
message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
18370
},
18371
18372
'function hello() { \'use strict\'; "\\1"; }': {
18373
index: 33,
18374
lineNumber: 1,
18375
column: 34,
18376
message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
18377
},
18378
18379
'function hello() { \'use strict\'; 021; }': {
18380
index: 33,
18381
lineNumber: 1,
18382
column: 34,
18383
message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
18384
},
18385
18386
'function hello() { \'use strict\'; ({ "\\1": 42 }); }': {
18387
index: 36,
18388
lineNumber: 1,
18389
column: 37,
18390
message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
18391
},
18392
18393
'function hello() { \'use strict\'; ({ 021: 42 }); }': {
18394
index: 36,
18395
lineNumber: 1,
18396
column: 37,
18397
message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
18398
},
18399
18400
'function hello() { "octal directive\\1"; "use strict"; }': {
18401
index: 19,
18402
lineNumber: 1,
18403
column: 20,
18404
message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
18405
},
18406
18407
'function hello() { "octal directive\\1"; "octal directive\\2"; "use strict"; }': {
18408
index: 19,
18409
lineNumber: 1,
18410
column: 20,
18411
message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
18412
},
18413
18414
'function hello() { "use strict"; function inner() { "octal directive\\1"; } }': {
18415
index: 52,
18416
lineNumber: 1,
18417
column: 53,
18418
message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
18419
},
18420
18421
'function hello() { "use strict"; var implements; }': {
18422
index: 37,
18423
lineNumber: 1,
18424
column: 38,
18425
message: 'Error: Line 1: Use of future reserved word in strict mode'
18426
},
18427
18428
'function hello() { "use strict"; var interface; }': {
18429
index: 37,
18430
lineNumber: 1,
18431
column: 38,
18432
message: 'Error: Line 1: Use of future reserved word in strict mode'
18433
},
18434
18435
'function hello() { "use strict"; var package; }': {
18436
index: 37,
18437
lineNumber: 1,
18438
column: 38,
18439
message: 'Error: Line 1: Use of future reserved word in strict mode'
18440
},
18441
18442
'function hello() { "use strict"; var private; }': {
18443
index: 37,
18444
lineNumber: 1,
18445
column: 38,
18446
message: 'Error: Line 1: Use of future reserved word in strict mode'
18447
},
18448
18449
'function hello() { "use strict"; var protected; }': {
18450
index: 37,
18451
lineNumber: 1,
18452
column: 38,
18453
message: 'Error: Line 1: Use of future reserved word in strict mode'
18454
},
18455
18456
'function hello() { "use strict"; var public; }': {
18457
index: 37,
18458
lineNumber: 1,
18459
column: 38,
18460
message: 'Error: Line 1: Use of future reserved word in strict mode'
18461
},
18462
18463
'function hello() { "use strict"; var static; }': {
18464
index: 37,
18465
lineNumber: 1,
18466
column: 38,
18467
message: 'Error: Line 1: Use of future reserved word in strict mode'
18468
},
18469
18470
'function hello() { "use strict"; var yield; }': {
18471
index: 37,
18472
lineNumber: 1,
18473
column: 38,
18474
message: 'Error: Line 1: Use of future reserved word in strict mode'
18475
},
18476
18477
'function hello() { "use strict"; var let; }': {
18478
index: 37,
18479
lineNumber: 1,
18480
column: 38,
18481
message: 'Error: Line 1: Use of future reserved word in strict mode'
18482
},
18483
18484
'function hello(static) { "use strict"; }': {
18485
index: 15,
18486
lineNumber: 1,
18487
column: 16,
18488
message: 'Error: Line 1: Use of future reserved word in strict mode'
18489
},
18490
18491
'function static() { "use strict"; }': {
18492
index: 9,
18493
lineNumber: 1,
18494
column: 10,
18495
message: 'Error: Line 1: Use of future reserved word in strict mode'
18496
},
18497
18498
'function eval(a) { "use strict"; }': {
18499
index: 9,
18500
lineNumber: 1,
18501
column: 10,
18502
message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
18503
},
18504
18505
'function arguments(a) { "use strict"; }': {
18506
index: 9,
18507
lineNumber: 1,
18508
column: 10,
18509
message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
18510
},
18511
18512
'var yield': {
18513
"type": "VariableDeclaration",
18514
"declarations": [
18515
{
18516
"type": "VariableDeclarator",
18517
"id": {
18518
"type": "Identifier",
18519
"name": "yield",
18520
"range": [
18521
4,
18522
9
18523
],
18524
"loc": {
18525
"start": {
18526
"line": 1,
18527
"column": 4
18528
},
18529
"end": {
18530
"line": 1,
18531
"column": 9
18532
}
18533
}
18534
},
18535
"init": null,
18536
"range": [
18537
4,
18538
9
18539
],
18540
"loc": {
18541
"start": {
18542
"line": 1,
18543
"column": 4
18544
},
18545
"end": {
18546
"line": 1,
18547
"column": 9
18548
}
18549
}
18550
}
18551
],
18552
"kind": "var",
18553
"range": [
18554
0,
18555
9
18556
],
18557
"loc": {
18558
"start": {
18559
"line": 1,
18560
"column": 0
18561
},
18562
"end": {
18563
"line": 1,
18564
"column": 9
18565
}
18566
}
18567
},
18568
18569
'var let': {
18570
index: 4,
18571
lineNumber: 1,
18572
column: 5,
18573
message: 'Error: Line 1: Unexpected token let'
18574
},
18575
18576
'"use strict"; function static() { }': {
18577
index: 23,
18578
lineNumber: 1,
18579
column: 24,
18580
message: 'Error: Line 1: Use of future reserved word in strict mode'
18581
},
18582
18583
'function a(t, t) { "use strict"; }': {
18584
index: 14,
18585
lineNumber: 1,
18586
column: 15,
18587
message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
18588
},
18589
18590
'function a(eval) { "use strict"; }': {
18591
index: 11,
18592
lineNumber: 1,
18593
column: 12,
18594
message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
18595
},
18596
18597
'function a(package) { "use strict"; }': {
18598
index: 11,
18599
lineNumber: 1,
18600
column: 12,
18601
message: 'Error: Line 1: Use of future reserved word in strict mode'
18602
},
18603
18604
'function a() { "use strict"; function b(t, t) { }; }': {
18605
index: 43,
18606
lineNumber: 1,
18607
column: 44,
18608
message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
18609
},
18610
18611
'(function a(t, t) { "use strict"; })': {
18612
index: 15,
18613
lineNumber: 1,
18614
column: 16,
18615
message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
18616
},
18617
18618
'function a() { "use strict"; (function b(t, t) { }); }': {
18619
index: 44,
18620
lineNumber: 1,
18621
column: 45,
18622
message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
18623
},
18624
18625
'(function a(eval) { "use strict"; })': {
18626
index: 12,
18627
lineNumber: 1,
18628
column: 13,
18629
message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
18630
},
18631
18632
'(function a(package) { "use strict"; })': {
18633
index: 12,
18634
lineNumber: 1,
18635
column: 13,
18636
message: 'Error: Line 1: Use of future reserved word in strict mode'
18637
},
18638
18639
'__proto__: __proto__: 42;': {
18640
index: 21,
18641
lineNumber: 1,
18642
column: 22,
18643
message: 'Error: Line 1: Label \'__proto__\' has already been declared'
18644
},
18645
18646
'"use strict"; function t(__proto__, __proto__) { }': {
18647
index: 36,
18648
lineNumber: 1,
18649
column: 37,
18650
message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
18651
},
18652
18653
'"use strict"; x = { __proto__: 42, __proto__: 43 }': {
18654
index: 48,
18655
lineNumber: 1,
18656
column: 49,
18657
message: 'Error: Line 1: Duplicate data property in object literal not allowed in strict mode'
18658
},
18659
18660
'"use strict"; x = { get __proto__() { }, __proto__: 43 }': {
18661
index: 54,
18662
lineNumber: 1,
18663
column: 55,
18664
message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
18665
},
18666
18667
'var': {
18668
index: 3,
18669
lineNumber: 1,
18670
column: 4,
18671
message: 'Error: Line 1: Unexpected end of input'
18672
},
18673
18674
'let': {
18675
index: 3,
18676
lineNumber: 1,
18677
column: 4,
18678
message: 'Error: Line 1: Unexpected end of input'
18679
},
18680
18681
'const': {
18682
index: 5,
18683
lineNumber: 1,
18684
column: 6,
18685
message: 'Error: Line 1: Unexpected end of input'
18686
},
18687
18688
'{ ; ; ': {
18689
index: 8,
18690
lineNumber: 1,
18691
column: 9,
18692
message: 'Error: Line 1: Unexpected end of input'
18693
},
18694
18695
'function t() { ; ; ': {
18696
index: 21,
18697
lineNumber: 1,
18698
column: 22,
18699
message: 'Error: Line 1: Unexpected end of input'
18700
}
18701
18702
},
18703
18704
'Tokenize': {
18705
'tokenize(/42/)': [
18706
{
18707
"type": "Identifier",
18708
"value": "tokenize",
18709
"range": [
18710
0,
18711
8
18712
],
18713
"loc": {
18714
"start": {
18715
"line": 1,
18716
"column": 0
18717
},
18718
"end": {
18719
"line": 1,
18720
"column": 8
18721
}
18722
}
18723
},
18724
{
18725
"type": "Punctuator",
18726
"value": "(",
18727
"range": [
18728
8,
18729
9
18730
],
18731
"loc": {
18732
"start": {
18733
"line": 1,
18734
"column": 8
18735
},
18736
"end": {
18737
"line": 1,
18738
"column": 9
18739
}
18740
}
18741
},
18742
{
18743
"type": "RegularExpression",
18744
"value": "/42/",
18745
"regex": {
18746
"pattern": "42",
18747
"flags": ""
18748
},
18749
"range": [
18750
9,
18751
13
18752
],
18753
"loc": {
18754
"start": {
18755
"line": 1,
18756
"column": 9
18757
},
18758
"end": {
18759
"line": 1,
18760
"column": 13
18761
}
18762
}
18763
},
18764
{
18765
"type": "Punctuator",
18766
"value": ")",
18767
"range": [
18768
13,
18769
14
18770
],
18771
"loc": {
18772
"start": {
18773
"line": 1,
18774
"column": 13
18775
},
18776
"end": {
18777
"line": 1,
18778
"column": 14
18779
}
18780
}
18781
}
18782
],
18783
18784
'if (false) { /42/ }': [
18785
{
18786
"type": "Keyword",
18787
"value": "if",
18788
"range": [
18789
0,
18790
2
18791
],
18792
"loc": {
18793
"start": {
18794
"line": 1,
18795
"column": 0
18796
},
18797
"end": {
18798
"line": 1,
18799
"column": 2
18800
}
18801
}
18802
},
18803
{
18804
"type": "Punctuator",
18805
"value": "(",
18806
"range": [
18807
3,
18808
4
18809
],
18810
"loc": {
18811
"start": {
18812
"line": 1,
18813
"column": 3
18814
},
18815
"end": {
18816
"line": 1,
18817
"column": 4
18818
}
18819
}
18820
},
18821
{
18822
"type": "Boolean",
18823
"value": "false",
18824
"range": [
18825
4,
18826
9
18827
],
18828
"loc": {
18829
"start": {
18830
"line": 1,
18831
"column": 4
18832
},
18833
"end": {
18834
"line": 1,
18835
"column": 9
18836
}
18837
}
18838
},
18839
{
18840
"type": "Punctuator",
18841
"value": ")",
18842
"range": [
18843
9,
18844
10
18845
],
18846
"loc": {
18847
"start": {
18848
"line": 1,
18849
"column": 9
18850
},
18851
"end": {
18852
"line": 1,
18853
"column": 10
18854
}
18855
}
18856
},
18857
{
18858
"type": "Punctuator",
18859
"value": "{",
18860
"range": [
18861
11,
18862
12
18863
],
18864
"loc": {
18865
"start": {
18866
"line": 1,
18867
"column": 11
18868
},
18869
"end": {
18870
"line": 1,
18871
"column": 12
18872
}
18873
}
18874
},
18875
{
18876
"type": "RegularExpression",
18877
"value": "/42/",
18878
"regex": {
18879
"pattern": "42",
18880
"flags": ""
18881
},
18882
"range": [
18883
13,
18884
17
18885
],
18886
"loc": {
18887
"start": {
18888
"line": 1,
18889
"column": 13
18890
},
18891
"end": {
18892
"line": 1,
18893
"column": 17
18894
}
18895
}
18896
},
18897
{
18898
"type": "Punctuator",
18899
"value": "}",
18900
"range": [
18901
18,
18902
19
18903
],
18904
"loc": {
18905
"start": {
18906
"line": 1,
18907
"column": 18
18908
},
18909
"end": {
18910
"line": 1,
18911
"column": 19
18912
}
18913
}
18914
}
18915
],
18916
18917
'with (false) /42/': [
18918
{
18919
"type": "Keyword",
18920
"value": "with",
18921
"range": [
18922
0,
18923
4
18924
],
18925
"loc": {
18926
"start": {
18927
"line": 1,
18928
"column": 0
18929
},
18930
"end": {
18931
"line": 1,
18932
"column": 4
18933
}
18934
}
18935
},
18936
{
18937
"type": "Punctuator",
18938
"value": "(",
18939
"range": [
18940
5,
18941
6
18942
],
18943
"loc": {
18944
"start": {
18945
"line": 1,
18946
"column": 5
18947
},
18948
"end": {
18949
"line": 1,
18950
"column": 6
18951
}
18952
}
18953
},
18954
{
18955
"type": "Boolean",
18956
"value": "false",
18957
"range": [
18958
6,
18959
11
18960
],
18961
"loc": {
18962
"start": {
18963
"line": 1,
18964
"column": 6
18965
},
18966
"end": {
18967
"line": 1,
18968
"column": 11
18969
}
18970
}
18971
},
18972
{
18973
"type": "Punctuator",
18974
"value": ")",
18975
"range": [
18976
11,
18977
12
18978
],
18979
"loc": {
18980
"start": {
18981
"line": 1,
18982
"column": 11
18983
},
18984
"end": {
18985
"line": 1,
18986
"column": 12
18987
}
18988
}
18989
},
18990
{
18991
"type": "RegularExpression",
18992
"value": "/42/",
18993
"regex": {
18994
"pattern": "42",
18995
"flags": ""
18996
},
18997
"range": [
18998
13,
18999
17
19000
],
19001
"loc": {
19002
"start": {
19003
"line": 1,
19004
"column": 13
19005
},
19006
"end": {
19007
"line": 1,
19008
"column": 17
19009
}
19010
}
19011
}
19012
],
19013
19014
'(false) /42/': [
19015
{
19016
"type": "Punctuator",
19017
"value": "(",
19018
"range": [
19019
0,
19020
1
19021
],
19022
"loc": {
19023
"start": {
19024
"line": 1,
19025
"column": 0
19026
},
19027
"end": {
19028
"line": 1,
19029
"column": 1
19030
}
19031
}
19032
},
19033
{
19034
"type": "Boolean",
19035
"value": "false",
19036
"range": [
19037
1,
19038
6
19039
],
19040
"loc": {
19041
"start": {
19042
"line": 1,
19043
"column": 1
19044
},
19045
"end": {
19046
"line": 1,
19047
"column": 6
19048
}
19049
}
19050
},
19051
{
19052
"type": "Punctuator",
19053
"value": ")",
19054
"range": [
19055
6,
19056
7
19057
],
19058
"loc": {
19059
"start": {
19060
"line": 1,
19061
"column": 6
19062
},
19063
"end": {
19064
"line": 1,
19065
"column": 7
19066
}
19067
}
19068
},
19069
{
19070
"type": "Punctuator",
19071
"value": "/",
19072
"range": [
19073
8,
19074
9
19075
],
19076
"loc": {
19077
"start": {
19078
"line": 1,
19079
"column": 8
19080
},
19081
"end": {
19082
"line": 1,
19083
"column": 9
19084
}
19085
}
19086
},
19087
{
19088
"type": "Numeric",
19089
"value": "42",
19090
"range": [
19091
9,
19092
11
19093
],
19094
"loc": {
19095
"start": {
19096
"line": 1,
19097
"column": 9
19098
},
19099
"end": {
19100
"line": 1,
19101
"column": 11
19102
}
19103
}
19104
},
19105
{
19106
"type": "Punctuator",
19107
"value": "/",
19108
"range": [
19109
11,
19110
12
19111
],
19112
"loc": {
19113
"start": {
19114
"line": 1,
19115
"column": 11
19116
},
19117
"end": {
19118
"line": 1,
19119
"column": 12
19120
}
19121
}
19122
}
19123
],
19124
19125
'function f(){} /42/': [
19126
{
19127
"type": "Keyword",
19128
"value": "function",
19129
"range": [
19130
0,
19131
8
19132
],
19133
"loc": {
19134
"start": {
19135
"line": 1,
19136
"column": 0
19137
},
19138
"end": {
19139
"line": 1,
19140
"column": 8
19141
}
19142
}
19143
},
19144
{
19145
"type": "Identifier",
19146
"value": "f",
19147
"range": [
19148
9,
19149
10
19150
],
19151
"loc": {
19152
"start": {
19153
"line": 1,
19154
"column": 9
19155
},
19156
"end": {
19157
"line": 1,
19158
"column": 10
19159
}
19160
}
19161
},
19162
{
19163
"type": "Punctuator",
19164
"value": "(",
19165
"range": [
19166
10,
19167
11
19168
],
19169
"loc": {
19170
"start": {
19171
"line": 1,
19172
"column": 10
19173
},
19174
"end": {
19175
"line": 1,
19176
"column": 11
19177
}
19178
}
19179
},
19180
{
19181
"type": "Punctuator",
19182
"value": ")",
19183
"range": [
19184
11,
19185
12
19186
],
19187
"loc": {
19188
"start": {
19189
"line": 1,
19190
"column": 11
19191
},
19192
"end": {
19193
"line": 1,
19194
"column": 12
19195
}
19196
}
19197
},
19198
{
19199
"type": "Punctuator",
19200
"value": "{",
19201
"range": [
19202
12,
19203
13
19204
],
19205
"loc": {
19206
"start": {
19207
"line": 1,
19208
"column": 12
19209
},
19210
"end": {
19211
"line": 1,
19212
"column": 13
19213
}
19214
}
19215
},
19216
{
19217
"type": "Punctuator",
19218
"value": "}",
19219
"range": [
19220
13,
19221
14
19222
],
19223
"loc": {
19224
"start": {
19225
"line": 1,
19226
"column": 13
19227
},
19228
"end": {
19229
"line": 1,
19230
"column": 14
19231
}
19232
}
19233
},
19234
{
19235
"type": "RegularExpression",
19236
"value": "/42/",
19237
"regex": {
19238
"pattern": "42",
19239
"flags": ""
19240
},
19241
"range": [
19242
15,
19243
19
19244
],
19245
"loc": {
19246
"start": {
19247
"line": 1,
19248
"column": 15
19249
},
19250
"end": {
19251
"line": 1,
19252
"column": 19
19253
}
19254
}
19255
}
19256
],
19257
19258
'function(){} /42': [
19259
{
19260
"type": "Keyword",
19261
"value": "function",
19262
"range": [
19263
0,
19264
8
19265
],
19266
"loc": {
19267
"start": {
19268
"line": 1,
19269
"column": 0
19270
},
19271
"end": {
19272
"line": 1,
19273
"column": 8
19274
}
19275
}
19276
},
19277
{
19278
"type": "Punctuator",
19279
"value": "(",
19280
"range": [
19281
8,
19282
9
19283
],
19284
"loc": {
19285
"start": {
19286
"line": 1,
19287
"column": 8
19288
},
19289
"end": {
19290
"line": 1,
19291
"column": 9
19292
}
19293
}
19294
},
19295
{
19296
"type": "Punctuator",
19297
"value": ")",
19298
"range": [
19299
9,
19300
10
19301
],
19302
"loc": {
19303
"start": {
19304
"line": 1,
19305
"column": 9
19306
},
19307
"end": {
19308
"line": 1,
19309
"column": 10
19310
}
19311
}
19312
},
19313
{
19314
"type": "Punctuator",
19315
"value": "{",
19316
"range": [
19317
10,
19318
11
19319
],
19320
"loc": {
19321
"start": {
19322
"line": 1,
19323
"column": 10
19324
},
19325
"end": {
19326
"line": 1,
19327
"column": 11
19328
}
19329
}
19330
},
19331
{
19332
"type": "Punctuator",
19333
"value": "}",
19334
"range": [
19335
11,
19336
12
19337
],
19338
"loc": {
19339
"start": {
19340
"line": 1,
19341
"column": 11
19342
},
19343
"end": {
19344
"line": 1,
19345
"column": 12
19346
}
19347
}
19348
},
19349
{
19350
"type": "Punctuator",
19351
"value": "/",
19352
"range": [
19353
13,
19354
14
19355
],
19356
"loc": {
19357
"start": {
19358
"line": 1,
19359
"column": 13
19360
},
19361
"end": {
19362
"line": 1,
19363
"column": 14
19364
}
19365
}
19366
},
19367
{
19368
"type": "Numeric",
19369
"value": "42",
19370
"range": [
19371
14,
19372
16
19373
],
19374
"loc": {
19375
"start": {
19376
"line": 1,
19377
"column": 14
19378
},
19379
"end": {
19380
"line": 1,
19381
"column": 16
19382
}
19383
}
19384
}
19385
],
19386
19387
'{} /42': [
19388
{
19389
"type": "Punctuator",
19390
"value": "{",
19391
"range": [
19392
0,
19393
1
19394
],
19395
"loc": {
19396
"start": {
19397
"line": 1,
19398
"column": 0
19399
},
19400
"end": {
19401
"line": 1,
19402
"column": 1
19403
}
19404
}
19405
},
19406
{
19407
"type": "Punctuator",
19408
"value": "}",
19409
"range": [
19410
1,
19411
2
19412
],
19413
"loc": {
19414
"start": {
19415
"line": 1,
19416
"column": 1
19417
},
19418
"end": {
19419
"line": 1,
19420
"column": 2
19421
}
19422
}
19423
},
19424
{
19425
"type": "Punctuator",
19426
"value": "/",
19427
"range": [
19428
3,
19429
4
19430
],
19431
"loc": {
19432
"start": {
19433
"line": 1,
19434
"column": 3
19435
},
19436
"end": {
19437
"line": 1,
19438
"column": 4
19439
}
19440
}
19441
},
19442
{
19443
"type": "Numeric",
19444
"value": "42",
19445
"range": [
19446
4,
19447
6
19448
],
19449
"loc": {
19450
"start": {
19451
"line": 1,
19452
"column": 4
19453
},
19454
"end": {
19455
"line": 1,
19456
"column": 6
19457
}
19458
}
19459
}
19460
],
19461
19462
'[function(){} /42]': [
19463
{
19464
"type": "Punctuator",
19465
"value": "[",
19466
"range": [
19467
0,
19468
1
19469
],
19470
"loc": {
19471
"start": {
19472
"line": 1,
19473
"column": 0
19474
},
19475
"end": {
19476
"line": 1,
19477
"column": 1
19478
}
19479
}
19480
},
19481
{
19482
"type": "Keyword",
19483
"value": "function",
19484
"range": [
19485
1,
19486
9
19487
],
19488
"loc": {
19489
"start": {
19490
"line": 1,
19491
"column": 1
19492
},
19493
"end": {
19494
"line": 1,
19495
"column": 9
19496
}
19497
}
19498
},
19499
{
19500
"type": "Punctuator",
19501
"value": "(",
19502
"range": [
19503
9,
19504
10
19505
],
19506
"loc": {
19507
"start": {
19508
"line": 1,
19509
"column": 9
19510
},
19511
"end": {
19512
"line": 1,
19513
"column": 10
19514
}
19515
}
19516
},
19517
{
19518
"type": "Punctuator",
19519
"value": ")",
19520
"range": [
19521
10,
19522
11
19523
],
19524
"loc": {
19525
"start": {
19526
"line": 1,
19527
"column": 10
19528
},
19529
"end": {
19530
"line": 1,
19531
"column": 11
19532
}
19533
}
19534
},
19535
{
19536
"type": "Punctuator",
19537
"value": "{",
19538
"range": [
19539
11,
19540
12
19541
],
19542
"loc": {
19543
"start": {
19544
"line": 1,
19545
"column": 11
19546
},
19547
"end": {
19548
"line": 1,
19549
"column": 12
19550
}
19551
}
19552
},
19553
{
19554
"type": "Punctuator",
19555
"value": "}",
19556
"range": [
19557
12,
19558
13
19559
],
19560
"loc": {
19561
"start": {
19562
"line": 1,
19563
"column": 12
19564
},
19565
"end": {
19566
"line": 1,
19567
"column": 13
19568
}
19569
}
19570
},
19571
{
19572
"type": "Punctuator",
19573
"value": "/",
19574
"range": [
19575
14,
19576
15
19577
],
19578
"loc": {
19579
"start": {
19580
"line": 1,
19581
"column": 14
19582
},
19583
"end": {
19584
"line": 1,
19585
"column": 15
19586
}
19587
}
19588
},
19589
{
19590
"type": "Numeric",
19591
"value": "42",
19592
"range": [
19593
15,
19594
17
19595
],
19596
"loc": {
19597
"start": {
19598
"line": 1,
19599
"column": 15
19600
},
19601
"end": {
19602
"line": 1,
19603
"column": 17
19604
}
19605
}
19606
},
19607
{
19608
"type": "Punctuator",
19609
"value": "]",
19610
"range": [
19611
17,
19612
18
19613
],
19614
"loc": {
19615
"start": {
19616
"line": 1,
19617
"column": 17
19618
},
19619
"end": {
19620
"line": 1,
19621
"column": 18
19622
}
19623
}
19624
}
19625
],
19626
19627
';function f(){} /42/': [
19628
{
19629
"type": "Punctuator",
19630
"value": ";",
19631
"range": [
19632
0,
19633
1
19634
],
19635
"loc": {
19636
"start": {
19637
"line": 1,
19638
"column": 0
19639
},
19640
"end": {
19641
"line": 1,
19642
"column": 1
19643
}
19644
}
19645
},
19646
{
19647
"type": "Keyword",
19648
"value": "function",
19649
"range": [
19650
1,
19651
9
19652
],
19653
"loc": {
19654
"start": {
19655
"line": 1,
19656
"column": 1
19657
},
19658
"end": {
19659
"line": 1,
19660
"column": 9
19661
}
19662
}
19663
},
19664
{
19665
"type": "Identifier",
19666
"value": "f",
19667
"range": [
19668
10,
19669
11
19670
],
19671
"loc": {
19672
"start": {
19673
"line": 1,
19674
"column": 10
19675
},
19676
"end": {
19677
"line": 1,
19678
"column": 11
19679
}
19680
}
19681
},
19682
{
19683
"type": "Punctuator",
19684
"value": "(",
19685
"range": [
19686
11,
19687
12
19688
],
19689
"loc": {
19690
"start": {
19691
"line": 1,
19692
"column": 11
19693
},
19694
"end": {
19695
"line": 1,
19696
"column": 12
19697
}
19698
}
19699
},
19700
{
19701
"type": "Punctuator",
19702
"value": ")",
19703
"range": [
19704
12,
19705
13
19706
],
19707
"loc": {
19708
"start": {
19709
"line": 1,
19710
"column": 12
19711
},
19712
"end": {
19713
"line": 1,
19714
"column": 13
19715
}
19716
}
19717
},
19718
{
19719
"type": "Punctuator",
19720
"value": "{",
19721
"range": [
19722
13,
19723
14
19724
],
19725
"loc": {
19726
"start": {
19727
"line": 1,
19728
"column": 13
19729
},
19730
"end": {
19731
"line": 1,
19732
"column": 14
19733
}
19734
}
19735
},
19736
{
19737
"type": "Punctuator",
19738
"value": "}",
19739
"range": [
19740
14,
19741
15
19742
],
19743
"loc": {
19744
"start": {
19745
"line": 1,
19746
"column": 14
19747
},
19748
"end": {
19749
"line": 1,
19750
"column": 15
19751
}
19752
}
19753
},
19754
{
19755
"type": "RegularExpression",
19756
"value": "/42/",
19757
"regex": {
19758
"pattern": "42",
19759
"flags": ""
19760
},
19761
"range": [
19762
16,
19763
20
19764
],
19765
"loc": {
19766
"start": {
19767
"line": 1,
19768
"column": 16
19769
},
19770
"end": {
19771
"line": 1,
19772
"column": 20
19773
}
19774
}
19775
}
19776
],
19777
19778
'void /42/': [
19779
{
19780
"type": "Keyword",
19781
"value": "void",
19782
"range": [
19783
0,
19784
4
19785
],
19786
"loc": {
19787
"start": {
19788
"line": 1,
19789
"column": 0
19790
},
19791
"end": {
19792
"line": 1,
19793
"column": 4
19794
}
19795
}
19796
},
19797
{
19798
"type": "RegularExpression",
19799
"value": "/42/",
19800
"regex": {
19801
"pattern": "42",
19802
"flags": ""
19803
},
19804
"range": [
19805
5,
19806
9
19807
],
19808
"loc": {
19809
"start": {
19810
"line": 1,
19811
"column": 5
19812
},
19813
"end": {
19814
"line": 1,
19815
"column": 9
19816
}
19817
}
19818
}
19819
],
19820
19821
'/42/': [
19822
{
19823
"type": "RegularExpression",
19824
"value": "/42/",
19825
"regex": {
19826
"pattern": "42",
19827
"flags": ""
19828
},
19829
"range": [
19830
0,
19831
4
19832
],
19833
"loc": {
19834
"start": {
19835
"line": 1,
19836
"column": 0
19837
},
19838
"end": {
19839
"line": 1,
19840
"column": 4
19841
}
19842
}
19843
}
19844
],
19845
19846
'foo[/42]': [
19847
{
19848
"type": "Identifier",
19849
"value": "foo",
19850
"range": [
19851
0,
19852
3
19853
],
19854
"loc": {
19855
"start": {
19856
"line": 1,
19857
"column": 0
19858
},
19859
"end": {
19860
"line": 1,
19861
"column": 3
19862
}
19863
}
19864
},
19865
{
19866
"type": "Punctuator",
19867
"value": "[",
19868
"range": [
19869
3,
19870
4
19871
],
19872
"loc": {
19873
"start": {
19874
"line": 1,
19875
"column": 3
19876
},
19877
"end": {
19878
"line": 1,
19879
"column": 4
19880
}
19881
}
19882
}
19883
],
19884
19885
'': [],
19886
19887
'/42': {
19888
tokenize: true,
19889
index: 3,
19890
lineNumber: 1,
19891
column: 4,
19892
message: 'Error: Line 1: Invalid regular expression: missing /'
19893
},
19894
19895
'foo[/42': {
19896
tokenize: true,
19897
index: 7,
19898
lineNumber: 1,
19899
column: 8,
19900
message: 'Error: Line 1: Invalid regular expression: missing /'
19901
},
19902
19903
'this / 100;': [
19904
{
19905
"type": "Keyword",
19906
"value": "this",
19907
"range": [
19908
0,
19909
4
19910
],
19911
"loc": {
19912
"start": {
19913
"line": 1,
19914
"column": 0
19915
},
19916
"end": {
19917
"line": 1,
19918
"column": 4
19919
}
19920
}
19921
},
19922
{
19923
"type": "Punctuator",
19924
"value": "/",
19925
"range": [
19926
5,
19927
6
19928
],
19929
"loc": {
19930
"start": {
19931
"line": 1,
19932
"column": 5
19933
},
19934
"end": {
19935
"line": 1,
19936
"column": 6
19937
}
19938
}
19939
},
19940
{
19941
"type": "Numeric",
19942
"value": "100",
19943
"range": [
19944
7,
19945
10
19946
],
19947
"loc": {
19948
"start": {
19949
"line": 1,
19950
"column": 7
19951
},
19952
"end": {
19953
"line": 1,
19954
"column": 10
19955
}
19956
}
19957
},
19958
{
19959
"type": "Punctuator",
19960
"value": ";",
19961
"range": [
19962
10,
19963
11
19964
],
19965
"loc": {
19966
"start": {
19967
"line": 1,
19968
"column": 10
19969
},
19970
"end": {
19971
"line": 1,
19972
"column": 11
19973
}
19974
}
19975
}
19976
]
19977
},
19978
19979
'API': {
19980
'parse()': {
19981
call: 'parse',
19982
args: [],
19983
result: {
19984
type: 'Program',
19985
body: [{
19986
type: 'ExpressionStatement',
19987
expression: {
19988
type: 'Identifier',
19989
name: 'undefined'
19990
}
19991
}]
19992
}
19993
},
19994
19995
'parse(null)': {
19996
call: 'parse',
19997
args: [null],
19998
result: {
19999
type: 'Program',
20000
body: [{
20001
type: 'ExpressionStatement',
20002
expression: {
20003
type: 'Literal',
20004
value: null,
20005
raw: 'null'
20006
}
20007
}]
20008
}
20009
},
20010
20011
'parse(42)': {
20012
call: 'parse',
20013
args: [42],
20014
result: {
20015
type: 'Program',
20016
body: [{
20017
type: 'ExpressionStatement',
20018
expression: {
20019
type: 'Literal',
20020
value: 42,
20021
raw: '42'
20022
}
20023
}]
20024
}
20025
},
20026
20027
'parse(true)': {
20028
call: 'parse',
20029
args: [true],
20030
result: {
20031
type: 'Program',
20032
body: [{
20033
type: 'ExpressionStatement',
20034
expression: {
20035
type: 'Literal',
20036
value: true,
20037
raw: 'true'
20038
}
20039
}]
20040
}
20041
},
20042
20043
'parse(undefined)': {
20044
call: 'parse',
20045
args: [void 0],
20046
result: {
20047
type: 'Program',
20048
body: [{
20049
type: 'ExpressionStatement',
20050
expression: {
20051
type: 'Identifier',
20052
name: 'undefined'
20053
}
20054
}]
20055
}
20056
},
20057
20058
'parse(new String("test"))': {
20059
call: 'parse',
20060
args: [new String('test')],
20061
result: {
20062
type: 'Program',
20063
body: [{
20064
type: 'ExpressionStatement',
20065
expression: {
20066
type: 'Identifier',
20067
name: 'test'
20068
}
20069
}]
20070
}
20071
},
20072
20073
'parse(new Number(42))': {
20074
call: 'parse',
20075
args: [new Number(42)],
20076
result: {
20077
type: 'Program',
20078
body: [{
20079
type: 'ExpressionStatement',
20080
expression: {
20081
type: 'Literal',
20082
value: 42,
20083
raw: '42'
20084
}
20085
}]
20086
}
20087
},
20088
20089
'parse(new Boolean(true))': {
20090
call: 'parse',
20091
args: [new Boolean(true)],
20092
result: {
20093
type: 'Program',
20094
body: [{
20095
type: 'ExpressionStatement',
20096
expression: {
20097
type: 'Literal',
20098
value: true,
20099
raw: 'true'
20100
}
20101
}]
20102
}
20103
},
20104
20105
'Syntax': {
20106
property: 'Syntax',
20107
result: {
20108
AnyTypeAnnotation: 'AnyTypeAnnotation',
20109
ArrayExpression: 'ArrayExpression',
20110
ArrayPattern: 'ArrayPattern',
20111
ArrayTypeAnnotation: 'ArrayTypeAnnotation',
20112
ArrowFunctionExpression: 'ArrowFunctionExpression',
20113
AssignmentExpression: 'AssignmentExpression',
20114
BinaryExpression: 'BinaryExpression',
20115
BlockStatement: 'BlockStatement',
20116
BooleanTypeAnnotation: 'BooleanTypeAnnotation',
20117
BreakStatement: 'BreakStatement',
20118
CallExpression: 'CallExpression',
20119
CatchClause: 'CatchClause',
20120
ClassBody: 'ClassBody',
20121
ClassDeclaration: 'ClassDeclaration',
20122
ClassExpression: 'ClassExpression',
20123
ClassImplements: 'ClassImplements',
20124
ClassProperty: 'ClassProperty',
20125
ComprehensionBlock: 'ComprehensionBlock',
20126
ComprehensionExpression: 'ComprehensionExpression',
20127
ConditionalExpression: 'ConditionalExpression',
20128
ContinueStatement: 'ContinueStatement',
20129
DebuggerStatement: 'DebuggerStatement',
20130
DeclareClass: 'DeclareClass',
20131
DeclareFunction: 'DeclareFunction',
20132
DeclareModule: 'DeclareModule',
20133
DeclareVariable: 'DeclareVariable',
20134
DoWhileStatement: 'DoWhileStatement',
20135
EmptyStatement: 'EmptyStatement',
20136
ExportDeclaration: 'ExportDeclaration',
20137
ExportBatchSpecifier: 'ExportBatchSpecifier',
20138
ExportSpecifier: 'ExportSpecifier',
20139
ExpressionStatement: 'ExpressionStatement',
20140
ForInStatement: 'ForInStatement',
20141
ForOfStatement: 'ForOfStatement',
20142
ForStatement: 'ForStatement',
20143
FunctionDeclaration: 'FunctionDeclaration',
20144
FunctionExpression: 'FunctionExpression',
20145
FunctionTypeAnnotation: 'FunctionTypeAnnotation',
20146
FunctionTypeParam: 'FunctionTypeParam',
20147
GenericTypeAnnotation: 'GenericTypeAnnotation',
20148
Identifier: 'Identifier',
20149
IfStatement: 'IfStatement',
20150
ImportDeclaration: 'ImportDeclaration',
20151
ImportDefaultSpecifier: "ImportDefaultSpecifier",
20152
ImportNamespaceSpecifier: "ImportNamespaceSpecifier",
20153
ImportSpecifier: 'ImportSpecifier',
20154
InterfaceDeclaration: 'InterfaceDeclaration',
20155
InterfaceExtends: 'InterfaceExtends',
20156
IntersectionTypeAnnotation: 'IntersectionTypeAnnotation',
20157
LabeledStatement: 'LabeledStatement',
20158
Literal: 'Literal',
20159
LogicalExpression: 'LogicalExpression',
20160
MemberExpression: 'MemberExpression',
20161
MethodDefinition: 'MethodDefinition',
20162
ModuleSpecifier: 'ModuleSpecifier',
20163
NewExpression: 'NewExpression',
20164
NullableTypeAnnotation: 'NullableTypeAnnotation',
20165
NumberTypeAnnotation: 'NumberTypeAnnotation',
20166
ObjectExpression: 'ObjectExpression',
20167
ObjectPattern: 'ObjectPattern',
20168
ObjectTypeAnnotation: 'ObjectTypeAnnotation',
20169
ObjectTypeCallProperty: 'ObjectTypeCallProperty',
20170
ObjectTypeIndexer: 'ObjectTypeIndexer',
20171
ObjectTypeProperty: 'ObjectTypeProperty',
20172
Program: 'Program',
20173
Property: 'Property',
20174
QualifiedTypeIdentifier: 'QualifiedTypeIdentifier',
20175
ReturnStatement: 'ReturnStatement',
20176
SequenceExpression: 'SequenceExpression',
20177
SpreadElement: 'SpreadElement',
20178
SpreadProperty: 'SpreadProperty',
20179
StringLiteralTypeAnnotation: 'StringLiteralTypeAnnotation',
20180
StringTypeAnnotation: 'StringTypeAnnotation',
20181
SwitchCase: 'SwitchCase',
20182
SwitchStatement: 'SwitchStatement',
20183
TaggedTemplateExpression: 'TaggedTemplateExpression',
20184
TemplateElement: 'TemplateElement',
20185
TemplateLiteral: 'TemplateLiteral',
20186
ThisExpression: 'ThisExpression',
20187
ThrowStatement: 'ThrowStatement',
20188
TupleTypeAnnotation: 'TupleTypeAnnotation',
20189
TryStatement: 'TryStatement',
20190
TypeAlias: 'TypeAlias',
20191
TypeAnnotation: 'TypeAnnotation',
20192
TypeCastExpression: 'TypeCastExpression',
20193
TypeofTypeAnnotation: 'TypeofTypeAnnotation',
20194
TypeParameterDeclaration: 'TypeParameterDeclaration',
20195
TypeParameterInstantiation: 'TypeParameterInstantiation',
20196
UnaryExpression: 'UnaryExpression',
20197
UnionTypeAnnotation: 'UnionTypeAnnotation',
20198
UpdateExpression: 'UpdateExpression',
20199
VariableDeclaration: 'VariableDeclaration',
20200
VariableDeclarator: 'VariableDeclarator',
20201
VoidTypeAnnotation: 'VoidTypeAnnotation',
20202
WhileStatement: 'WhileStatement',
20203
WithStatement: 'WithStatement',
20204
JSXIdentifier: 'JSXIdentifier',
20205
JSXNamespacedName: 'JSXNamespacedName',
20206
JSXMemberExpression: "JSXMemberExpression",
20207
JSXEmptyExpression: "JSXEmptyExpression",
20208
JSXExpressionContainer: "JSXExpressionContainer",
20209
JSXElement: 'JSXElement',
20210
JSXClosingElement: 'JSXClosingElement',
20211
JSXOpeningElement: 'JSXOpeningElement',
20212
JSXAttribute: "JSXAttribute",
20213
JSXSpreadAttribute: 'JSXSpreadAttribute',
20214
JSXText: 'JSXText',
20215
YieldExpression: 'YieldExpression',
20216
AwaitExpression: 'AwaitExpression'
20217
}
20218
},
20219
20220
'tokenize()': {
20221
call: 'tokenize',
20222
args: [],
20223
result: [{
20224
type: 'Identifier',
20225
value: 'undefined'
20226
}]
20227
},
20228
20229
'tokenize(null)': {
20230
call: 'tokenize',
20231
args: [null],
20232
result: [{
20233
type: 'Null',
20234
value: 'null'
20235
}]
20236
},
20237
20238
'tokenize(42)': {
20239
call: 'tokenize',
20240
args: [42],
20241
result: [{
20242
type: 'Numeric',
20243
value: '42'
20244
}]
20245
},
20246
20247
'tokenize(true)': {
20248
call: 'tokenize',
20249
args: [true],
20250
result: [{
20251
type: 'Boolean',
20252
value: 'true'
20253
}]
20254
},
20255
20256
'tokenize(undefined)': {
20257
call: 'tokenize',
20258
args: [void 0],
20259
result: [{
20260
type: 'Identifier',
20261
value: 'undefined'
20262
}]
20263
},
20264
20265
'tokenize(new String("test"))': {
20266
call: 'tokenize',
20267
args: [new String('test')],
20268
result: [{
20269
type: 'Identifier',
20270
value: 'test'
20271
}]
20272
},
20273
20274
'tokenize(new Number(42))': {
20275
call: 'tokenize',
20276
args: [new Number(42)],
20277
result: [{
20278
type: 'Numeric',
20279
value: '42'
20280
}]
20281
},
20282
20283
'tokenize(new Boolean(true))': {
20284
call: 'tokenize',
20285
args: [new Boolean(true)],
20286
result: [{
20287
type: 'Boolean',
20288
value: 'true'
20289
}]
20290
}
20291
20292
},
20293
20294
'Tolerant parse': {
20295
'return': {
20296
type: 'Program',
20297
body: [{
20298
type: 'ReturnStatement',
20299
'argument': null,
20300
range: [0, 6],
20301
loc: {
20302
start: { line: 1, column: 0 },
20303
end: { line: 1, column: 6 }
20304
}
20305
}],
20306
range: [0, 6],
20307
loc: {
20308
start: { line: 1, column: 0 },
20309
end: { line: 1, column: 6 }
20310
},
20311
errors: [{
20312
index: 6,
20313
lineNumber: 1,
20314
column: 7,
20315
message: 'Error: Line 1: Illegal return statement'
20316
}]
20317
},
20318
20319
'(function () { \'use strict\'; with (i); }())': {
20320
type: 'Program',
20321
body: [{
20322
type: 'ExpressionStatement',
20323
expression: {
20324
type: 'CallExpression',
20325
callee: {
20326
type: 'FunctionExpression',
20327
id: null,
20328
params: [],
20329
defaults: [],
20330
body: {
20331
type: 'BlockStatement',
20332
body: [{
20333
type: 'ExpressionStatement',
20334
expression: {
20335
type: 'Literal',
20336
value: 'use strict',
20337
raw: '\'use strict\'',
20338
range: [15, 27],
20339
loc: {
20340
start: { line: 1, column: 15 },
20341
end: { line: 1, column: 27 }
20342
}
20343
},
20344
range: [15, 28],
20345
loc: {
20346
start: { line: 1, column: 15 },
20347
end: { line: 1, column: 28 }
20348
}
20349
}, {
20350
type: 'WithStatement',
20351
object: {
20352
type: 'Identifier',
20353
name: 'i',
20354
range: [35, 36],
20355
loc: {
20356
start: { line: 1, column: 35 },
20357
end: { line: 1, column: 36 }
20358
}
20359
},
20360
body: {
20361
type: 'EmptyStatement',
20362
range: [37, 38],
20363
loc: {
20364
start: { line: 1, column: 37 },
20365
end: { line: 1, column: 38 }
20366
}
20367
},
20368
range: [29, 38],
20369
loc: {
20370
start: { line: 1, column: 29 },
20371
end: { line: 1, column: 38 }
20372
}
20373
}],
20374
range: [13, 40],
20375
loc: {
20376
start: { line: 1, column: 13 },
20377
end: { line: 1, column: 40 }
20378
}
20379
},
20380
rest: null,
20381
generator: false,
20382
expression: false,
20383
range: [1, 40],
20384
loc: {
20385
start: { line: 1, column: 1 },
20386
end: { line: 1, column: 40 }
20387
}
20388
},
20389
'arguments': [],
20390
range: [1, 42],
20391
loc: {
20392
start: { line: 1, column: 1 },
20393
end: { line: 1, column: 42 }
20394
}
20395
},
20396
range: [0, 43],
20397
loc: {
20398
start: { line: 1, column: 0 },
20399
end: { line: 1, column: 43 }
20400
}
20401
}],
20402
range: [0, 43],
20403
loc: {
20404
start: { line: 1, column: 0 },
20405
end: { line: 1, column: 43 }
20406
},
20407
errors: [{
20408
index: 29,
20409
lineNumber: 1,
20410
column: 30,
20411
message: 'Error: Line 1: Strict mode code may not include a with statement'
20412
}]
20413
},
20414
20415
'(function () { \'use strict\'; 021 }())': {
20416
type: 'Program',
20417
body: [{
20418
type: 'ExpressionStatement',
20419
expression: {
20420
type: 'CallExpression',
20421
callee: {
20422
type: 'FunctionExpression',
20423
id: null,
20424
params: [],
20425
defaults: [],
20426
body: {
20427
type: 'BlockStatement',
20428
body: [{
20429
type: 'ExpressionStatement',
20430
expression: {
20431
type: 'Literal',
20432
value: 'use strict',
20433
raw: '\'use strict\'',
20434
range: [15, 27],
20435
loc: {
20436
start: { line: 1, column: 15 },
20437
end: { line: 1, column: 27 }
20438
}
20439
},
20440
range: [15, 28],
20441
loc: {
20442
start: { line: 1, column: 15 },
20443
end: { line: 1, column: 28 }
20444
}
20445
}, {
20446
type: 'ExpressionStatement',
20447
expression: {
20448
type: 'Literal',
20449
value: 17,
20450
raw: "021",
20451
range: [29, 32],
20452
loc: {
20453
start: { line: 1, column: 29 },
20454
end: { line: 1, column: 32 }
20455
}
20456
},
20457
range: [29, 33],
20458
loc: {
20459
start: { line: 1, column: 29 },
20460
end: { line: 1, column: 33 }
20461
}
20462
}],
20463
range: [13, 34],
20464
loc: {
20465
start: { line: 1, column: 13 },
20466
end: { line: 1, column: 34 }
20467
}
20468
},
20469
rest: null,
20470
generator: false,
20471
expression: false,
20472
range: [1, 34],
20473
loc: {
20474
start: { line: 1, column: 1 },
20475
end: { line: 1, column: 34 }
20476
}
20477
},
20478
'arguments': [],
20479
range: [1, 36],
20480
loc: {
20481
start: { line: 1, column: 1 },
20482
end: { line: 1, column: 36 }
20483
}
20484
},
20485
range: [0, 37],
20486
loc: {
20487
start: { line: 1, column: 0 },
20488
end: { line: 1, column: 37 }
20489
}
20490
}],
20491
range: [0, 37],
20492
loc: {
20493
start: { line: 1, column: 0 },
20494
end: { line: 1, column: 37 }
20495
},
20496
errors: [{
20497
index: 29,
20498
lineNumber: 1,
20499
column: 30,
20500
message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
20501
}]
20502
},
20503
20504
'"use strict"; delete x': {
20505
type: 'Program',
20506
body: [{
20507
type: 'ExpressionStatement',
20508
expression: {
20509
type: 'Literal',
20510
value: 'use strict',
20511
raw: '"use strict"',
20512
range: [0, 12],
20513
loc: {
20514
start: { line: 1, column: 0 },
20515
end: { line: 1, column: 12 }
20516
}
20517
},
20518
range: [0, 13],
20519
loc: {
20520
start: { line: 1, column: 0 },
20521
end: { line: 1, column: 13 }
20522
}
20523
}, {
20524
type: 'ExpressionStatement',
20525
expression: {
20526
type: 'UnaryExpression',
20527
operator: 'delete',
20528
argument: {
20529
type: 'Identifier',
20530
name: 'x',
20531
range: [21, 22],
20532
loc: {
20533
start: { line: 1, column: 21 },
20534
end: { line: 1, column: 22 }
20535
}
20536
},
20537
prefix: true,
20538
range: [14, 22],
20539
loc: {
20540
start: { line: 1, column: 14 },
20541
end: { line: 1, column: 22 }
20542
}
20543
},
20544
range: [14, 22],
20545
loc: {
20546
start: { line: 1, column: 14 },
20547
end: { line: 1, column: 22 }
20548
}
20549
}],
20550
range: [0, 22],
20551
loc: {
20552
start: { line: 1, column: 0 },
20553
end: { line: 1, column: 22 }
20554
},
20555
errors: [{
20556
index: 22,
20557
lineNumber: 1,
20558
column: 23,
20559
message: 'Error: Line 1: Delete of an unqualified identifier in strict mode.'
20560
}]
20561
},
20562
20563
'"use strict"; try {} catch (eval) {}': {
20564
type: 'Program',
20565
body: [{
20566
type: 'ExpressionStatement',
20567
expression: {
20568
type: 'Literal',
20569
value: 'use strict',
20570
raw: '"use strict"',
20571
range: [0, 12],
20572
loc: {
20573
start: { line: 1, column: 0 },
20574
end: { line: 1, column: 12 }
20575
}
20576
},
20577
range: [0, 13],
20578
loc: {
20579
start: { line: 1, column: 0 },
20580
end: { line: 1, column: 13 }
20581
}
20582
}, {
20583
type: 'TryStatement',
20584
block: {
20585
type: 'BlockStatement',
20586
body: [],
20587
range: [18, 20],
20588
loc: {
20589
start: { line: 1, column: 18 },
20590
end: { line: 1, column: 20 }
20591
}
20592
},
20593
guardedHandlers: [],
20594
handlers: [{
20595
type: 'CatchClause',
20596
param: {
20597
type: 'Identifier',
20598
name: 'eval',
20599
range: [28, 32],
20600
loc: {
20601
start: { line: 1, column: 28 },
20602
end: { line: 1, column: 32 }
20603
}
20604
},
20605
body: {
20606
type: 'BlockStatement',
20607
body: [],
20608
range: [34, 36],
20609
loc: {
20610
start: { line: 1, column: 34 },
20611
end: { line: 1, column: 36 }
20612
}
20613
},
20614
range: [21, 36],
20615
loc: {
20616
start: { line: 1, column: 21 },
20617
end: { line: 1, column: 36 }
20618
}
20619
}],
20620
finalizer: null,
20621
range: [14, 36],
20622
loc: {
20623
start: { line: 1, column: 14 },
20624
end: { line: 1, column: 36 }
20625
}
20626
}],
20627
range: [0, 36],
20628
loc: {
20629
start: { line: 1, column: 0 },
20630
end: { line: 1, column: 36 }
20631
},
20632
errors: [{
20633
index: 32,
20634
lineNumber: 1,
20635
column: 33,
20636
message: 'Error: Line 1: Catch variable may not be eval or arguments in strict mode'
20637
}]
20638
},
20639
20640
'"use strict"; try {} catch (arguments) {}': {
20641
type: 'Program',
20642
body: [{
20643
type: 'ExpressionStatement',
20644
expression: {
20645
type: 'Literal',
20646
value: 'use strict',
20647
raw: '"use strict"',
20648
range: [0, 12],
20649
loc: {
20650
start: { line: 1, column: 0 },
20651
end: { line: 1, column: 12 }
20652
}
20653
},
20654
range: [0, 13],
20655
loc: {
20656
start: { line: 1, column: 0 },
20657
end: { line: 1, column: 13 }
20658
}
20659
}, {
20660
type: 'TryStatement',
20661
block: {
20662
type: 'BlockStatement',
20663
body: [],
20664
range: [18, 20],
20665
loc: {
20666
start: { line: 1, column: 18 },
20667
end: { line: 1, column: 20 }
20668
}
20669
},
20670
guardedHandlers: [],
20671
handlers: [{
20672
type: 'CatchClause',
20673
param: {
20674
type: 'Identifier',
20675
name: 'arguments',
20676
range: [28, 37],
20677
loc: {
20678
start: { line: 1, column: 28 },
20679
end: { line: 1, column: 37 }
20680
}
20681
},
20682
body: {
20683
type: 'BlockStatement',
20684
body: [],
20685
range: [39, 41],
20686
loc: {
20687
start: { line: 1, column: 39 },
20688
end: { line: 1, column: 41 }
20689
}
20690
},
20691
range: [21, 41],
20692
loc: {
20693
start: { line: 1, column: 21 },
20694
end: { line: 1, column: 41 }
20695
}
20696
}],
20697
finalizer: null,
20698
range: [14, 41],
20699
loc: {
20700
start: { line: 1, column: 14 },
20701
end: { line: 1, column: 41 }
20702
}
20703
}],
20704
range: [0, 41],
20705
loc: {
20706
start: { line: 1, column: 0 },
20707
end: { line: 1, column: 41 }
20708
},
20709
errors: [{
20710
index: 37,
20711
lineNumber: 1,
20712
column: 38,
20713
message: 'Error: Line 1: Catch variable may not be eval or arguments in strict mode'
20714
}]
20715
},
20716
20717
'"use strict"; var eval;': {
20718
type: 'Program',
20719
body: [{
20720
type: 'ExpressionStatement',
20721
expression: {
20722
type: 'Literal',
20723
value: 'use strict',
20724
raw: '"use strict"',
20725
range: [0, 12],
20726
loc: {
20727
start: { line: 1, column: 0 },
20728
end: { line: 1, column: 12 }
20729
}
20730
},
20731
range: [0, 13],
20732
loc: {
20733
start: { line: 1, column: 0 },
20734
end: { line: 1, column: 13 }
20735
}
20736
}, {
20737
type: 'VariableDeclaration',
20738
declarations: [{
20739
type: 'VariableDeclarator',
20740
id: {
20741
type: 'Identifier',
20742
name: 'eval',
20743
range: [18, 22],
20744
loc: {
20745
start: { line: 1, column: 18 },
20746
end: { line: 1, column: 22 }
20747
}
20748
},
20749
init: null,
20750
range: [18, 22],
20751
loc: {
20752
start: { line: 1, column: 18 },
20753
end: { line: 1, column: 22 }
20754
}
20755
}],
20756
kind: 'var',
20757
range: [14, 23],
20758
loc: {
20759
start: { line: 1, column: 14 },
20760
end: { line: 1, column: 23 }
20761
}
20762
}],
20763
range: [0, 23],
20764
loc: {
20765
start: { line: 1, column: 0 },
20766
end: { line: 1, column: 23 }
20767
},
20768
errors: [{
20769
index: 22,
20770
lineNumber: 1,
20771
column: 23,
20772
message: 'Error: Line 1: Variable name may not be eval or arguments in strict mode'
20773
}]
20774
},
20775
20776
'"use strict"; var arguments;': {
20777
type: 'Program',
20778
body: [{
20779
type: 'ExpressionStatement',
20780
expression: {
20781
type: 'Literal',
20782
value: 'use strict',
20783
raw: '"use strict"',
20784
range: [0, 12],
20785
loc: {
20786
start: { line: 1, column: 0 },
20787
end: { line: 1, column: 12 }
20788
}
20789
},
20790
range: [0, 13],
20791
loc: {
20792
start: { line: 1, column: 0 },
20793
end: { line: 1, column: 13 }
20794
}
20795
}, {
20796
type: 'VariableDeclaration',
20797
declarations: [{
20798
type: 'VariableDeclarator',
20799
id: {
20800
type: 'Identifier',
20801
name: 'arguments',
20802
range: [18, 27],
20803
loc: {
20804
start: { line: 1, column: 18 },
20805
end: { line: 1, column: 27 }
20806
}
20807
},
20808
init: null,
20809
range: [18, 27],
20810
loc: {
20811
start: { line: 1, column: 18 },
20812
end: { line: 1, column: 27 }
20813
}
20814
}],
20815
kind: 'var',
20816
range: [14, 28],
20817
loc: {
20818
start: { line: 1, column: 14 },
20819
end: { line: 1, column: 28 }
20820
}
20821
}],
20822
range: [0, 28],
20823
loc: {
20824
start: { line: 1, column: 0 },
20825
end: { line: 1, column: 28 }
20826
},
20827
errors: [{
20828
index: 27,
20829
lineNumber: 1,
20830
column: 28,
20831
message: 'Error: Line 1: Variable name may not be eval or arguments in strict mode'
20832
}]
20833
},
20834
20835
'"use strict"; eval = 0;': {
20836
type: 'Program',
20837
body: [{
20838
type: 'ExpressionStatement',
20839
expression: {
20840
type: 'Literal',
20841
value: 'use strict',
20842
raw: '"use strict"',
20843
range: [0, 12],
20844
loc: {
20845
start: { line: 1, column: 0 },
20846
end: { line: 1, column: 12 }
20847
}
20848
},
20849
range: [0, 13],
20850
loc: {
20851
start: { line: 1, column: 0 },
20852
end: { line: 1, column: 13 }
20853
}
20854
}, {
20855
type: 'ExpressionStatement',
20856
expression: {
20857
type: 'AssignmentExpression',
20858
operator: '=',
20859
left: {
20860
type: 'Identifier',
20861
name: 'eval',
20862
range: [14, 18],
20863
loc: {
20864
start: { line: 1, column: 14 },
20865
end: { line: 1, column: 18 }
20866
}
20867
},
20868
right: {
20869
type: 'Literal',
20870
value: 0,
20871
raw: '0',
20872
range: [21, 22],
20873
loc: {
20874
start: { line: 1, column: 21 },
20875
end: { line: 1, column: 22 }
20876
}
20877
},
20878
range: [14, 22],
20879
loc: {
20880
start: { line: 1, column: 14 },
20881
end: { line: 1, column: 22 }
20882
}
20883
},
20884
range: [14, 23],
20885
loc: {
20886
start: { line: 1, column: 14 },
20887
end: { line: 1, column: 23 }
20888
}
20889
}],
20890
range: [0, 23],
20891
loc: {
20892
start: { line: 1, column: 0 },
20893
end: { line: 1, column: 23 }
20894
},
20895
errors: [{
20896
index: 14,
20897
lineNumber: 1,
20898
column: 15,
20899
message: 'Error: Line 1: Assignment to eval or arguments is not allowed in strict mode'
20900
}]
20901
},
20902
20903
'"use strict"; eval++;': {
20904
type: 'Program',
20905
body: [{
20906
type: 'ExpressionStatement',
20907
expression: {
20908
type: 'Literal',
20909
value: 'use strict',
20910
raw: '"use strict"',
20911
range: [0, 12],
20912
loc: {
20913
start: { line: 1, column: 0 },
20914
end: { line: 1, column: 12 }
20915
}
20916
},
20917
range: [0, 13],
20918
loc: {
20919
start: { line: 1, column: 0 },
20920
end: { line: 1, column: 13 }
20921
}
20922
}, {
20923
type: 'ExpressionStatement',
20924
expression: {
20925
type: 'UpdateExpression',
20926
operator: '++',
20927
argument: {
20928
type: 'Identifier',
20929
name: 'eval',
20930
range: [14, 18],
20931
loc: {
20932
start: { line: 1, column: 14 },
20933
end: { line: 1, column: 18 }
20934
}
20935
},
20936
prefix: false,
20937
range: [14, 20],
20938
loc: {
20939
start: { line: 1, column: 14 },
20940
end: { line: 1, column: 20 }
20941
}
20942
},
20943
range: [14, 21],
20944
loc: {
20945
start: { line: 1, column: 14 },
20946
end: { line: 1, column: 21 }
20947
}
20948
}],
20949
range: [0, 21],
20950
loc: {
20951
start: { line: 1, column: 0 },
20952
end: { line: 1, column: 21 }
20953
},
20954
errors: [{
20955
index: 18,
20956
lineNumber: 1,
20957
column: 19,
20958
message: 'Error: Line 1: Postfix increment/decrement may not have eval or arguments operand in strict mode'
20959
}]
20960
},
20961
20962
'"use strict"; --eval;': {
20963
type: 'Program',
20964
body: [{
20965
type: 'ExpressionStatement',
20966
expression: {
20967
type: 'Literal',
20968
value: 'use strict',
20969
raw: '"use strict"',
20970
range: [0, 12],
20971
loc: {
20972
start: { line: 1, column: 0 },
20973
end: { line: 1, column: 12 }
20974
}
20975
},
20976
range: [0, 13],
20977
loc: {
20978
start: { line: 1, column: 0 },
20979
end: { line: 1, column: 13 }
20980
}
20981
}, {
20982
type: 'ExpressionStatement',
20983
expression: {
20984
type: 'UpdateExpression',
20985
operator: '--',
20986
argument: {
20987
type: 'Identifier',
20988
name: 'eval',
20989
range: [16, 20],
20990
loc: {
20991
start: { line: 1, column: 16 },
20992
end: { line: 1, column: 20 }
20993
}
20994
},
20995
prefix: true,
20996
range: [14, 20],
20997
loc: {
20998
start: { line: 1, column: 14 },
20999
end: { line: 1, column: 20 }
21000
}
21001
},
21002
range: [14, 21],
21003
loc: {
21004
start: { line: 1, column: 14 },
21005
end: { line: 1, column: 21 }
21006
}
21007
}],
21008
range: [0, 21],
21009
loc: {
21010
start: { line: 1, column: 0 },
21011
end: { line: 1, column: 21 }
21012
},
21013
errors: [{
21014
index: 20,
21015
lineNumber: 1,
21016
column: 21,
21017
message: 'Error: Line 1: Prefix increment/decrement may not have eval or arguments operand in strict mode'
21018
}]
21019
},
21020
21021
'"use strict"; arguments = 0;': {
21022
type: 'Program',
21023
body: [{
21024
type: 'ExpressionStatement',
21025
expression: {
21026
type: 'Literal',
21027
value: 'use strict',
21028
raw: '"use strict"',
21029
range: [0, 12],
21030
loc: {
21031
start: { line: 1, column: 0 },
21032
end: { line: 1, column: 12 }
21033
}
21034
},
21035
range: [0, 13],
21036
loc: {
21037
start: { line: 1, column: 0 },
21038
end: { line: 1, column: 13 }
21039
}
21040
}, {
21041
type: 'ExpressionStatement',
21042
expression: {
21043
type: 'AssignmentExpression',
21044
operator: '=',
21045
left: {
21046
type: 'Identifier',
21047
name: 'arguments',
21048
range: [14, 23],
21049
loc: {
21050
start: { line: 1, column: 14 },
21051
end: { line: 1, column: 23 }
21052
}
21053
},
21054
right: {
21055
type: 'Literal',
21056
value: 0,
21057
raw: '0',
21058
range: [26, 27],
21059
loc: {
21060
start: { line: 1, column: 26 },
21061
end: { line: 1, column: 27 }
21062
}
21063
},
21064
range: [14, 27],
21065
loc: {
21066
start: { line: 1, column: 14 },
21067
end: { line: 1, column: 27 }
21068
}
21069
},
21070
range: [14, 28],
21071
loc: {
21072
start: { line: 1, column: 14 },
21073
end: { line: 1, column: 28 }
21074
}
21075
}],
21076
range: [0, 28],
21077
loc: {
21078
start: { line: 1, column: 0 },
21079
end: { line: 1, column: 28 }
21080
},
21081
errors: [{
21082
index: 14,
21083
lineNumber: 1,
21084
column: 15,
21085
message: 'Error: Line 1: Assignment to eval or arguments is not allowed in strict mode'
21086
}]
21087
},
21088
21089
'"use strict"; arguments--;': {
21090
type: 'Program',
21091
body: [{
21092
type: 'ExpressionStatement',
21093
expression: {
21094
type: 'Literal',
21095
value: 'use strict',
21096
raw: '"use strict"',
21097
range: [0, 12],
21098
loc: {
21099
start: { line: 1, column: 0 },
21100
end: { line: 1, column: 12 }
21101
}
21102
},
21103
range: [0, 13],
21104
loc: {
21105
start: { line: 1, column: 0 },
21106
end: { line: 1, column: 13 }
21107
}
21108
}, {
21109
type: 'ExpressionStatement',
21110
expression: {
21111
type: 'UpdateExpression',
21112
operator: '--',
21113
argument: {
21114
type: 'Identifier',
21115
name: 'arguments',
21116
range: [14, 23],
21117
loc: {
21118
start: { line: 1, column: 14 },
21119
end: { line: 1, column: 23 }
21120
}
21121
},
21122
prefix: false,
21123
range: [14, 25],
21124
loc: {
21125
start: { line: 1, column: 14 },
21126
end: { line: 1, column: 25 }
21127
}
21128
},
21129
range: [14, 26],
21130
loc: {
21131
start: { line: 1, column: 14 },
21132
end: { line: 1, column: 26 }
21133
}
21134
}],
21135
range: [0, 26],
21136
loc: {
21137
start: { line: 1, column: 0 },
21138
end: { line: 1, column: 26 }
21139
},
21140
errors: [{
21141
index: 23,
21142
lineNumber: 1,
21143
column: 24,
21144
message: 'Error: Line 1: Postfix increment/decrement may not have eval or arguments operand in strict mode'
21145
}]
21146
},
21147
21148
'"use strict"; ++arguments;': {
21149
type: 'Program',
21150
body: [{
21151
type: 'ExpressionStatement',
21152
expression: {
21153
type: 'Literal',
21154
value: 'use strict',
21155
raw: '"use strict"',
21156
range: [0, 12],
21157
loc: {
21158
start: { line: 1, column: 0 },
21159
end: { line: 1, column: 12 }
21160
}
21161
},
21162
range: [0, 13],
21163
loc: {
21164
start: { line: 1, column: 0 },
21165
end: { line: 1, column: 13 }
21166
}
21167
}, {
21168
type: 'ExpressionStatement',
21169
expression: {
21170
type: 'UpdateExpression',
21171
operator: '++',
21172
argument: {
21173
type: 'Identifier',
21174
name: 'arguments',
21175
range: [16, 25],
21176
loc: {
21177
start: { line: 1, column: 16 },
21178
end: { line: 1, column: 25 }
21179
}
21180
},
21181
prefix: true,
21182
range: [14, 25],
21183
loc: {
21184
start: { line: 1, column: 14 },
21185
end: { line: 1, column: 25 }
21186
}
21187
},
21188
range: [14, 26],
21189
loc: {
21190
start: { line: 1, column: 14 },
21191
end: { line: 1, column: 26 }
21192
}
21193
}],
21194
range: [0, 26],
21195
loc: {
21196
start: { line: 1, column: 0 },
21197
end: { line: 1, column: 26 }
21198
},
21199
errors: [{
21200
index: 25,
21201
lineNumber: 1,
21202
column: 26,
21203
message: 'Error: Line 1: Prefix increment/decrement may not have eval or arguments operand in strict mode'
21204
}]
21205
},
21206
21207
21208
'"use strict";x={y:1,y:1}': {
21209
type: 'Program',
21210
body: [{
21211
type: 'ExpressionStatement',
21212
expression: {
21213
type: 'Literal',
21214
value: 'use strict',
21215
raw: '"use strict"',
21216
range: [0, 12],
21217
loc: {
21218
start: { line: 1, column: 0 },
21219
end: { line: 1, column: 12 }
21220
}
21221
},
21222
range: [0, 13],
21223
loc: {
21224
start: { line: 1, column: 0 },
21225
end: { line: 1, column: 13 }
21226
}
21227
}, {
21228
type: 'ExpressionStatement',
21229
expression: {
21230
type: 'AssignmentExpression',
21231
operator: '=',
21232
left: {
21233
type: 'Identifier',
21234
name: 'x',
21235
range: [13, 14],
21236
loc: {
21237
start: { line: 1, column: 13 },
21238
end: { line: 1, column: 14 }
21239
}
21240
},
21241
right: {
21242
type: 'ObjectExpression',
21243
properties: [{
21244
type: 'Property',
21245
key: {
21246
type: 'Identifier',
21247
name: 'y',
21248
range: [16, 17],
21249
loc: {
21250
start: { line: 1, column: 16 },
21251
end: { line: 1, column: 17 }
21252
}
21253
},
21254
value: {
21255
type: 'Literal',
21256
value: 1,
21257
raw: '1',
21258
range: [18, 19],
21259
loc: {
21260
start: { line: 1, column: 18 },
21261
end: { line: 1, column: 19 }
21262
}
21263
},
21264
kind: 'init',
21265
method: false,
21266
shorthand: false,
21267
computed: false,
21268
range: [16, 19],
21269
loc: {
21270
start: { line: 1, column: 16 },
21271
end: { line: 1, column: 19 }
21272
}
21273
}, {
21274
type: 'Property',
21275
key: {
21276
type: 'Identifier',
21277
name: 'y',
21278
range: [20, 21],
21279
loc: {
21280
start: { line: 1, column: 20 },
21281
end: { line: 1, column: 21 }
21282
}
21283
},
21284
value: {
21285
type: 'Literal',
21286
value: 1,
21287
raw: '1',
21288
range: [22, 23],
21289
loc: {
21290
start: { line: 1, column: 22 },
21291
end: { line: 1, column: 23 }
21292
}
21293
},
21294
kind: 'init',
21295
method: false,
21296
shorthand: false,
21297
computed: false,
21298
range: [20, 23],
21299
loc: {
21300
start: { line: 1, column: 20 },
21301
end: { line: 1, column: 23 }
21302
}
21303
}],
21304
range: [15, 24],
21305
loc: {
21306
start: { line: 1, column: 15 },
21307
end: { line: 1, column: 24 }
21308
}
21309
},
21310
range: [13, 24],
21311
loc: {
21312
start: { line: 1, column: 13 },
21313
end: { line: 1, column: 24 }
21314
}
21315
},
21316
range: [13, 24],
21317
loc: {
21318
start: { line: 1, column: 13 },
21319
end: { line: 1, column: 24 }
21320
}
21321
}],
21322
range: [0, 24],
21323
loc: {
21324
start: { line: 1, column: 0 },
21325
end: { line: 1, column: 24 }
21326
},
21327
errors: [{
21328
index: 23,
21329
lineNumber: 1,
21330
column: 24,
21331
message: 'Error: Line 1: Duplicate data property in object literal not allowed in strict mode'
21332
}]
21333
},
21334
21335
'"use strict"; function eval() {};': {
21336
type: 'Program',
21337
body: [{
21338
type: 'ExpressionStatement',
21339
expression: {
21340
type: 'Literal',
21341
value: 'use strict',
21342
raw: '"use strict"',
21343
range: [0, 12],
21344
loc: {
21345
start: { line: 1, column: 0 },
21346
end: { line: 1, column: 12 }
21347
}
21348
},
21349
range: [0, 13],
21350
loc: {
21351
start: { line: 1, column: 0 },
21352
end: { line: 1, column: 13 }
21353
}
21354
}, {
21355
type: 'FunctionDeclaration',
21356
id: {
21357
type: 'Identifier',
21358
name: 'eval',
21359
range: [23, 27],
21360
loc: {
21361
start: { line: 1, column: 23 },
21362
end: { line: 1, column: 27 }
21363
}
21364
},
21365
params: [],
21366
defaults: [],
21367
body: {
21368
type: 'BlockStatement',
21369
body: [],
21370
range: [30, 32],
21371
loc: {
21372
start: { line: 1, column: 30 },
21373
end: { line: 1, column: 32 }
21374
}
21375
},
21376
rest: null,
21377
generator: false,
21378
expression: false,
21379
range: [14, 32],
21380
loc: {
21381
start: { line: 1, column: 14 },
21382
end: { line: 1, column: 32 }
21383
}
21384
}, {
21385
type: 'EmptyStatement',
21386
range: [32, 33],
21387
loc: {
21388
start: { line: 1, column: 32 },
21389
end: { line: 1, column: 33 }
21390
}
21391
}],
21392
range: [0, 33],
21393
loc: {
21394
start: { line: 1, column: 0 },
21395
end: { line: 1, column: 33 }
21396
},
21397
errors: [{
21398
index: 23,
21399
lineNumber: 1,
21400
column: 24,
21401
message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
21402
}]
21403
},
21404
21405
'"use strict"; function arguments() {};': {
21406
type: 'Program',
21407
body: [{
21408
type: 'ExpressionStatement',
21409
expression: {
21410
type: 'Literal',
21411
value: 'use strict',
21412
raw: '"use strict"',
21413
range: [0, 12],
21414
loc: {
21415
start: { line: 1, column: 0 },
21416
end: { line: 1, column: 12 }
21417
}
21418
},
21419
range: [0, 13],
21420
loc: {
21421
start: { line: 1, column: 0 },
21422
end: { line: 1, column: 13 }
21423
}
21424
}, {
21425
type: 'FunctionDeclaration',
21426
id: {
21427
type: 'Identifier',
21428
name: 'arguments',
21429
range: [23, 32],
21430
loc: {
21431
start: { line: 1, column: 23 },
21432
end: { line: 1, column: 32 }
21433
}
21434
},
21435
params: [],
21436
defaults: [],
21437
body: {
21438
type: 'BlockStatement',
21439
body: [],
21440
range: [35, 37],
21441
loc: {
21442
start: { line: 1, column: 35 },
21443
end: { line: 1, column: 37 }
21444
}
21445
},
21446
rest: null,
21447
generator: false,
21448
expression: false,
21449
range: [14, 37],
21450
loc: {
21451
start: { line: 1, column: 14 },
21452
end: { line: 1, column: 37 }
21453
}
21454
}, {
21455
type: 'EmptyStatement',
21456
range: [37, 38],
21457
loc: {
21458
start: { line: 1, column: 37 },
21459
end: { line: 1, column: 38 }
21460
}
21461
}],
21462
range: [0, 38],
21463
loc: {
21464
start: { line: 1, column: 0 },
21465
end: { line: 1, column: 38 }
21466
},
21467
errors: [{
21468
index: 23,
21469
lineNumber: 1,
21470
column: 24,
21471
message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
21472
}]
21473
},
21474
21475
'"use strict"; function interface() {};': {
21476
type: 'Program',
21477
body: [{
21478
type: 'ExpressionStatement',
21479
expression: {
21480
type: 'Literal',
21481
value: 'use strict',
21482
raw: '"use strict"',
21483
range: [0, 12],
21484
loc: {
21485
start: { line: 1, column: 0 },
21486
end: { line: 1, column: 12 }
21487
}
21488
},
21489
range: [0, 13],
21490
loc: {
21491
start: { line: 1, column: 0 },
21492
end: { line: 1, column: 13 }
21493
}
21494
}, {
21495
type: 'FunctionDeclaration',
21496
id: {
21497
type: 'Identifier',
21498
name: 'interface',
21499
range: [23, 32],
21500
loc: {
21501
start: { line: 1, column: 23 },
21502
end: { line: 1, column: 32 }
21503
}
21504
},
21505
params: [],
21506
defaults: [],
21507
body: {
21508
type: 'BlockStatement',
21509
body: [],
21510
range: [35, 37],
21511
loc: {
21512
start: { line: 1, column: 35 },
21513
end: { line: 1, column: 37 }
21514
}
21515
},
21516
rest: null,
21517
generator: false,
21518
expression: false,
21519
range: [14, 37],
21520
loc: {
21521
start: { line: 1, column: 14 },
21522
end: { line: 1, column: 37 }
21523
}
21524
}, {
21525
type: 'EmptyStatement',
21526
range: [37, 38],
21527
loc: {
21528
start: { line: 1, column: 37 },
21529
end: { line: 1, column: 38 }
21530
}
21531
}],
21532
range: [0, 38],
21533
loc: {
21534
start: { line: 1, column: 0 },
21535
end: { line: 1, column: 38 }
21536
},
21537
errors: [{
21538
index: 23,
21539
lineNumber: 1,
21540
column: 24,
21541
message: 'Error: Line 1: Use of future reserved word in strict mode'
21542
}]
21543
},
21544
21545
'"use strict"; (function eval() {});': {
21546
type: 'Program',
21547
body: [{
21548
type: 'ExpressionStatement',
21549
expression: {
21550
type: 'Literal',
21551
value: 'use strict',
21552
raw: '"use strict"',
21553
range: [0, 12],
21554
loc: {
21555
start: { line: 1, column: 0 },
21556
end: { line: 1, column: 12 }
21557
}
21558
},
21559
range: [0, 13],
21560
loc: {
21561
start: { line: 1, column: 0 },
21562
end: { line: 1, column: 13 }
21563
}
21564
}, {
21565
type: 'ExpressionStatement',
21566
expression: {
21567
type: 'FunctionExpression',
21568
id: {
21569
type: 'Identifier',
21570
name: 'eval',
21571
range: [24, 28],
21572
loc: {
21573
start: { line: 1, column: 24 },
21574
end: { line: 1, column: 28 }
21575
}
21576
},
21577
params: [],
21578
defaults: [],
21579
body: {
21580
type: 'BlockStatement',
21581
body: [],
21582
range: [31, 33],
21583
loc: {
21584
start: { line: 1, column: 31 },
21585
end: { line: 1, column: 33 }
21586
}
21587
},
21588
rest: null,
21589
generator: false,
21590
expression: false,
21591
range: [15, 33],
21592
loc: {
21593
start: { line: 1, column: 15 },
21594
end: { line: 1, column: 33 }
21595
}
21596
},
21597
range: [14, 35],
21598
loc: {
21599
start: { line: 1, column: 14 },
21600
end: { line: 1, column: 35 }
21601
}
21602
}],
21603
range: [0, 35],
21604
loc: {
21605
start: { line: 1, column: 0 },
21606
end: { line: 1, column: 35 }
21607
},
21608
errors: [{
21609
index: 24,
21610
lineNumber: 1,
21611
column: 25,
21612
message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
21613
}]
21614
},
21615
21616
'"use strict"; (function arguments() {});': {
21617
type: 'Program',
21618
body: [{
21619
type: 'ExpressionStatement',
21620
expression: {
21621
type: 'Literal',
21622
value: 'use strict',
21623
raw: '"use strict"',
21624
range: [0, 12],
21625
loc: {
21626
start: { line: 1, column: 0 },
21627
end: { line: 1, column: 12 }
21628
}
21629
},
21630
range: [0, 13],
21631
loc: {
21632
start: { line: 1, column: 0 },
21633
end: { line: 1, column: 13 }
21634
}
21635
}, {
21636
type: 'ExpressionStatement',
21637
expression: {
21638
type: 'FunctionExpression',
21639
id: {
21640
type: 'Identifier',
21641
name: 'arguments',
21642
range: [24, 33],
21643
loc: {
21644
start: { line: 1, column: 24 },
21645
end: { line: 1, column: 33 }
21646
}
21647
},
21648
params: [],
21649
defaults: [],
21650
body: {
21651
type: 'BlockStatement',
21652
body: [],
21653
range: [36, 38],
21654
loc: {
21655
start: { line: 1, column: 36 },
21656
end: { line: 1, column: 38 }
21657
}
21658
},
21659
rest: null,
21660
generator: false,
21661
expression: false,
21662
range: [15, 38],
21663
loc: {
21664
start: { line: 1, column: 15 },
21665
end: { line: 1, column: 38 }
21666
}
21667
},
21668
range: [14, 40],
21669
loc: {
21670
start: { line: 1, column: 14 },
21671
end: { line: 1, column: 40 }
21672
}
21673
}],
21674
range: [0, 40],
21675
loc: {
21676
start: { line: 1, column: 0 },
21677
end: { line: 1, column: 40 }
21678
},
21679
errors: [{
21680
index: 24,
21681
lineNumber: 1,
21682
column: 25,
21683
message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
21684
}]
21685
},
21686
21687
'"use strict"; (function interface() {});': {
21688
type: 'Program',
21689
body: [{
21690
type: 'ExpressionStatement',
21691
expression: {
21692
type: 'Literal',
21693
value: 'use strict',
21694
raw: '"use strict"',
21695
range: [0, 12],
21696
loc: {
21697
start: { line: 1, column: 0 },
21698
end: { line: 1, column: 12 }
21699
}
21700
},
21701
range: [0, 13],
21702
loc: {
21703
start: { line: 1, column: 0 },
21704
end: { line: 1, column: 13 }
21705
}
21706
}, {
21707
type: 'ExpressionStatement',
21708
expression: {
21709
type: 'FunctionExpression',
21710
id: {
21711
type: 'Identifier',
21712
name: 'interface',
21713
range: [24, 33],
21714
loc: {
21715
start: { line: 1, column: 24 },
21716
end: { line: 1, column: 33 }
21717
}
21718
},
21719
params: [],
21720
defaults: [],
21721
body: {
21722
type: 'BlockStatement',
21723
body: [],
21724
range: [36, 38],
21725
loc: {
21726
start: { line: 1, column: 36 },
21727
end: { line: 1, column: 38 }
21728
}
21729
},
21730
rest: null,
21731
generator: false,
21732
expression: false,
21733
range: [15, 38],
21734
loc: {
21735
start: { line: 1, column: 15 },
21736
end: { line: 1, column: 38 }
21737
}
21738
},
21739
range: [14, 40],
21740
loc: {
21741
start: { line: 1, column: 14 },
21742
end: { line: 1, column: 40 }
21743
}
21744
}],
21745
range: [0, 40],
21746
loc: {
21747
start: { line: 1, column: 0 },
21748
end: { line: 1, column: 40 }
21749
},
21750
errors: [{
21751
index: 24,
21752
lineNumber: 1,
21753
column: 25,
21754
message: 'Error: Line 1: Use of future reserved word in strict mode'
21755
}]
21756
},
21757
21758
'"use strict"; function f(eval) {};': {
21759
type: 'Program',
21760
body: [{
21761
type: 'ExpressionStatement',
21762
expression: {
21763
type: 'Literal',
21764
value: 'use strict',
21765
raw: '"use strict"',
21766
range: [0, 12],
21767
loc: {
21768
start: { line: 1, column: 0 },
21769
end: { line: 1, column: 12 }
21770
}
21771
},
21772
range: [0, 13],
21773
loc: {
21774
start: { line: 1, column: 0 },
21775
end: { line: 1, column: 13 }
21776
}
21777
}, {
21778
type: 'FunctionDeclaration',
21779
id: {
21780
type: 'Identifier',
21781
name: 'f',
21782
range: [23, 24],
21783
loc: {
21784
start: { line: 1, column: 23 },
21785
end: { line: 1, column: 24 }
21786
}
21787
},
21788
params: [{
21789
type: 'Identifier',
21790
name: 'eval',
21791
range: [25, 29],
21792
loc: {
21793
start: { line: 1, column: 25 },
21794
end: { line: 1, column: 29 }
21795
}
21796
}],
21797
defaults: [],
21798
body: {
21799
type: 'BlockStatement',
21800
body: [],
21801
range: [31, 33],
21802
loc: {
21803
start: { line: 1, column: 31 },
21804
end: { line: 1, column: 33 }
21805
}
21806
},
21807
rest: null,
21808
generator: false,
21809
expression: false,
21810
range: [14, 33],
21811
loc: {
21812
start: { line: 1, column: 14 },
21813
end: { line: 1, column: 33 }
21814
}
21815
}, {
21816
type: 'EmptyStatement',
21817
range: [33, 34],
21818
loc: {
21819
start: { line: 1, column: 33 },
21820
end: { line: 1, column: 34 }
21821
}
21822
}],
21823
range: [0, 34],
21824
loc: {
21825
start: { line: 1, column: 0 },
21826
end: { line: 1, column: 34 }
21827
},
21828
errors: [{
21829
index: 25,
21830
lineNumber: 1,
21831
column: 26,
21832
message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
21833
}]
21834
},
21835
21836
'"use strict"; function f(arguments) {};': {
21837
type: 'Program',
21838
body: [{
21839
type: 'ExpressionStatement',
21840
expression: {
21841
type: 'Literal',
21842
value: 'use strict',
21843
raw: '"use strict"',
21844
range: [0, 12],
21845
loc: {
21846
start: { line: 1, column: 0 },
21847
end: { line: 1, column: 12 }
21848
}
21849
},
21850
range: [0, 13],
21851
loc: {
21852
start: { line: 1, column: 0 },
21853
end: { line: 1, column: 13 }
21854
}
21855
}, {
21856
type: 'FunctionDeclaration',
21857
id: {
21858
type: 'Identifier',
21859
name: 'f',
21860
range: [23, 24],
21861
loc: {
21862
start: { line: 1, column: 23 },
21863
end: { line: 1, column: 24 }
21864
}
21865
},
21866
params: [{
21867
type: 'Identifier',
21868
name: 'arguments',
21869
range: [25, 34],
21870
loc: {
21871
start: { line: 1, column: 25 },
21872
end: { line: 1, column: 34 }
21873
}
21874
}],
21875
defaults: [],
21876
body: {
21877
type: 'BlockStatement',
21878
body: [],
21879
range: [36, 38],
21880
loc: {
21881
start: { line: 1, column: 36 },
21882
end: { line: 1, column: 38 }
21883
}
21884
},
21885
rest: null,
21886
generator: false,
21887
expression: false,
21888
range: [14, 38],
21889
loc: {
21890
start: { line: 1, column: 14 },
21891
end: { line: 1, column: 38 }
21892
}
21893
}, {
21894
type: 'EmptyStatement',
21895
range: [38, 39],
21896
loc: {
21897
start: { line: 1, column: 38 },
21898
end: { line: 1, column: 39 }
21899
}
21900
}],
21901
range: [0, 39],
21902
loc: {
21903
start: { line: 1, column: 0 },
21904
end: { line: 1, column: 39 }
21905
},
21906
errors: [{
21907
index: 25,
21908
lineNumber: 1,
21909
column: 26,
21910
message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
21911
}]
21912
},
21913
21914
'"use strict"; function f(foo, foo) {};': {
21915
type: 'Program',
21916
body: [{
21917
type: 'ExpressionStatement',
21918
expression: {
21919
type: 'Literal',
21920
value: 'use strict',
21921
raw: '"use strict"',
21922
range: [0, 12],
21923
loc: {
21924
start: { line: 1, column: 0 },
21925
end: { line: 1, column: 12 }
21926
}
21927
},
21928
range: [0, 13],
21929
loc: {
21930
start: { line: 1, column: 0 },
21931
end: { line: 1, column: 13 }
21932
}
21933
}, {
21934
type: 'FunctionDeclaration',
21935
id: {
21936
type: 'Identifier',
21937
name: 'f',
21938
range: [23, 24],
21939
loc: {
21940
start: { line: 1, column: 23 },
21941
end: { line: 1, column: 24 }
21942
}
21943
},
21944
params: [{
21945
type: 'Identifier',
21946
name: 'foo',
21947
range: [25, 28],
21948
loc: {
21949
start: { line: 1, column: 25 },
21950
end: { line: 1, column: 28 }
21951
}
21952
}, {
21953
type: 'Identifier',
21954
name: 'foo',
21955
range: [31, 34],
21956
loc: {
21957
start: { line: 1, column: 31 },
21958
end: { line: 1, column: 34 }
21959
}
21960
}],
21961
defaults: [],
21962
body: {
21963
type: 'BlockStatement',
21964
body: [],
21965
range: [36, 38],
21966
loc: {
21967
start: { line: 1, column: 36 },
21968
end: { line: 1, column: 38 }
21969
}
21970
},
21971
rest: null,
21972
generator: false,
21973
expression: false,
21974
range: [14, 38],
21975
loc: {
21976
start: { line: 1, column: 14 },
21977
end: { line: 1, column: 38 }
21978
}
21979
}, {
21980
type: 'EmptyStatement',
21981
range: [38, 39],
21982
loc: {
21983
start: { line: 1, column: 38 },
21984
end: { line: 1, column: 39 }
21985
}
21986
}],
21987
range: [0, 39],
21988
loc: {
21989
start: { line: 1, column: 0 },
21990
end: { line: 1, column: 39 }
21991
},
21992
errors: [{
21993
index: 31,
21994
lineNumber: 1,
21995
column: 32,
21996
message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
21997
}]
21998
},
21999
22000
'"use strict"; (function f(eval) {});': {
22001
type: 'Program',
22002
body: [{
22003
type: 'ExpressionStatement',
22004
expression: {
22005
type: 'Literal',
22006
value: 'use strict',
22007
raw: '"use strict"',
22008
range: [0, 12],
22009
loc: {
22010
start: { line: 1, column: 0 },
22011
end: { line: 1, column: 12 }
22012
}
22013
},
22014
range: [0, 13],
22015
loc: {
22016
start: { line: 1, column: 0 },
22017
end: { line: 1, column: 13 }
22018
}
22019
}, {
22020
type: 'ExpressionStatement',
22021
expression: {
22022
type: 'FunctionExpression',
22023
id: {
22024
type: 'Identifier',
22025
name: 'f',
22026
range: [24, 25],
22027
loc: {
22028
start: { line: 1, column: 24 },
22029
end: { line: 1, column: 25 }
22030
}
22031
},
22032
params: [{
22033
type: 'Identifier',
22034
name: 'eval',
22035
range: [26, 30],
22036
loc: {
22037
start: { line: 1, column: 26 },
22038
end: { line: 1, column: 30 }
22039
}
22040
}],
22041
defaults: [],
22042
body: {
22043
type: 'BlockStatement',
22044
body: [],
22045
range: [32, 34],
22046
loc: {
22047
start: { line: 1, column: 32 },
22048
end: { line: 1, column: 34 }
22049
}
22050
},
22051
rest: null,
22052
generator: false,
22053
expression: false,
22054
range: [15, 34],
22055
loc: {
22056
start: { line: 1, column: 15 },
22057
end: { line: 1, column: 34 }
22058
}
22059
},
22060
range: [14, 36],
22061
loc: {
22062
start: { line: 1, column: 14 },
22063
end: { line: 1, column: 36 }
22064
}
22065
}],
22066
range: [0, 36],
22067
loc: {
22068
start: { line: 1, column: 0 },
22069
end: { line: 1, column: 36 }
22070
},
22071
errors: [{
22072
index: 26,
22073
lineNumber: 1,
22074
column: 27,
22075
message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
22076
}]
22077
},
22078
22079
22080
'"use strict"; (function f(arguments) {});': {
22081
type: 'Program',
22082
body: [{
22083
type: 'ExpressionStatement',
22084
expression: {
22085
type: 'Literal',
22086
value: 'use strict',
22087
raw: '"use strict"',
22088
range: [0, 12],
22089
loc: {
22090
start: { line: 1, column: 0 },
22091
end: { line: 1, column: 12 }
22092
}
22093
},
22094
range: [0, 13],
22095
loc: {
22096
start: { line: 1, column: 0 },
22097
end: { line: 1, column: 13 }
22098
}
22099
}, {
22100
type: 'ExpressionStatement',
22101
expression: {
22102
type: 'FunctionExpression',
22103
id: {
22104
type: 'Identifier',
22105
name: 'f',
22106
range: [24, 25],
22107
loc: {
22108
start: { line: 1, column: 24 },
22109
end: { line: 1, column: 25 }
22110
}
22111
},
22112
params: [{
22113
type: 'Identifier',
22114
name: 'arguments',
22115
range: [26, 35],
22116
loc: {
22117
start: { line: 1, column: 26 },
22118
end: { line: 1, column: 35 }
22119
}
22120
}],
22121
defaults: [],
22122
body: {
22123
type: 'BlockStatement',
22124
body: [],
22125
range: [37, 39],
22126
loc: {
22127
start: { line: 1, column: 37 },
22128
end: { line: 1, column: 39 }
22129
}
22130
},
22131
rest: null,
22132
generator: false,
22133
expression: false,
22134
range: [15, 39],
22135
loc: {
22136
start: { line: 1, column: 15 },
22137
end: { line: 1, column: 39 }
22138
}
22139
},
22140
range: [14, 41],
22141
loc: {
22142
start: { line: 1, column: 14 },
22143
end: { line: 1, column: 41 }
22144
}
22145
}],
22146
range: [0, 41],
22147
loc: {
22148
start: { line: 1, column: 0 },
22149
end: { line: 1, column: 41 }
22150
},
22151
errors: [{
22152
index: 26,
22153
lineNumber: 1,
22154
column: 27,
22155
message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
22156
}]
22157
},
22158
22159
'"use strict"; (function f(foo, foo) {});': {
22160
type: 'Program',
22161
body: [{
22162
type: 'ExpressionStatement',
22163
expression: {
22164
type: 'Literal',
22165
value: 'use strict',
22166
raw: '"use strict"',
22167
range: [0, 12],
22168
loc: {
22169
start: { line: 1, column: 0 },
22170
end: { line: 1, column: 12 }
22171
}
22172
},
22173
range: [0, 13],
22174
loc: {
22175
start: { line: 1, column: 0 },
22176
end: { line: 1, column: 13 }
22177
}
22178
}, {
22179
type: 'ExpressionStatement',
22180
expression: {
22181
type: 'FunctionExpression',
22182
id: {
22183
type: 'Identifier',
22184
name: 'f',
22185
range: [24, 25],
22186
loc: {
22187
start: { line: 1, column: 24 },
22188
end: { line: 1, column: 25 }
22189
}
22190
},
22191
params: [{
22192
type: 'Identifier',
22193
name: 'foo',
22194
range: [26, 29],
22195
loc: {
22196
start: { line: 1, column: 26 },
22197
end: { line: 1, column: 29 }
22198
}
22199
}, {
22200
type: 'Identifier',
22201
name: 'foo',
22202
range: [32, 35],
22203
loc: {
22204
start: { line: 1, column: 32 },
22205
end: { line: 1, column: 35 }
22206
}
22207
}],
22208
defaults: [],
22209
body: {
22210
type: 'BlockStatement',
22211
body: [],
22212
range: [37, 39],
22213
loc: {
22214
start: { line: 1, column: 37 },
22215
end: { line: 1, column: 39 }
22216
}
22217
},
22218
rest: null,
22219
generator: false,
22220
expression: false,
22221
range: [15, 39],
22222
loc: {
22223
start: { line: 1, column: 15 },
22224
end: { line: 1, column: 39 }
22225
}
22226
},
22227
range: [14, 41],
22228
loc: {
22229
start: { line: 1, column: 14 },
22230
end: { line: 1, column: 41 }
22231
}
22232
}],
22233
range: [0, 41],
22234
loc: {
22235
start: { line: 1, column: 0 },
22236
end: { line: 1, column: 41 }
22237
},
22238
errors: [{
22239
index: 32,
22240
lineNumber: 1,
22241
column: 33,
22242
message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
22243
}]
22244
},
22245
22246
'"use strict"; x = { set f(eval) {} }' : {
22247
type: 'Program',
22248
body: [{
22249
type: 'ExpressionStatement',
22250
expression: {
22251
type: 'Literal',
22252
value: 'use strict',
22253
raw: '"use strict"',
22254
range: [0, 12],
22255
loc: {
22256
start: { line: 1, column: 0 },
22257
end: { line: 1, column: 12 }
22258
}
22259
},
22260
range: [0, 13],
22261
loc: {
22262
start: { line: 1, column: 0 },
22263
end: { line: 1, column: 13 }
22264
}
22265
}, {
22266
type: 'ExpressionStatement',
22267
expression: {
22268
type: 'AssignmentExpression',
22269
operator: '=',
22270
left: {
22271
type: 'Identifier',
22272
name: 'x',
22273
range: [14, 15],
22274
loc: {
22275
start: { line: 1, column: 14 },
22276
end: { line: 1, column: 15 }
22277
}
22278
},
22279
right: {
22280
type: 'ObjectExpression',
22281
properties: [{
22282
type: 'Property',
22283
key: {
22284
type: 'Identifier',
22285
name: 'f',
22286
range: [24, 25],
22287
loc: {
22288
start: { line: 1, column: 24 },
22289
end: { line: 1, column: 25 }
22290
}
22291
},
22292
value : {
22293
type: 'FunctionExpression',
22294
id: null,
22295
params: [{
22296
type: 'Identifier',
22297
name: 'eval',
22298
range: [26, 30],
22299
loc: {
22300
start: { line: 1, column: 26 },
22301
end: { line: 1, column: 30 }
22302
}
22303
}],
22304
defaults: [],
22305
body: {
22306
type: 'BlockStatement',
22307
body: [],
22308
range: [32, 34],
22309
loc: {
22310
start: { line: 1, column: 32 },
22311
end: { line: 1, column: 34 }
22312
}
22313
},
22314
rest: null,
22315
generator: false,
22316
expression: false,
22317
range: [32, 34],
22318
loc: {
22319
start: { line: 1, column: 32 },
22320
end: { line: 1, column: 34 }
22321
}
22322
},
22323
kind: 'set',
22324
method: false,
22325
shorthand: false,
22326
computed: false,
22327
range: [20, 34],
22328
loc: {
22329
start: { line: 1, column: 20 },
22330
end: { line: 1, column: 34 }
22331
}
22332
}],
22333
range: [18, 36],
22334
loc: {
22335
start: { line: 1, column: 18 },
22336
end: { line: 1, column: 36 }
22337
}
22338
},
22339
range: [14, 36],
22340
loc: {
22341
start: { line: 1, column: 14 },
22342
end: { line: 1, column: 36 }
22343
}
22344
},
22345
range: [14, 36],
22346
loc: {
22347
start: { line: 1, column: 14 },
22348
end: { line: 1, column: 36 }
22349
}
22350
}],
22351
range: [0, 36],
22352
loc: {
22353
start: { line: 1, column: 0 },
22354
end: { line: 1, column: 36 }
22355
},
22356
errors: [{
22357
index: 26,
22358
lineNumber: 1,
22359
column: 27,
22360
message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
22361
}]
22362
},
22363
22364
'function hello() { "octal directive\\1"; "use strict"; }': {
22365
type: 'Program',
22366
body: [{
22367
type: 'FunctionDeclaration',
22368
id: {
22369
type: 'Identifier',
22370
name: 'hello',
22371
range: [9, 14],
22372
loc: {
22373
start: { line: 1, column: 9 },
22374
end: { line: 1, column: 14 }
22375
}
22376
},
22377
params: [],
22378
defaults: [],
22379
body: {
22380
type: 'BlockStatement',
22381
body: [{
22382
type: 'ExpressionStatement',
22383
expression: {
22384
type: 'Literal',
22385
value: 'octal directive\u0001',
22386
raw: '"octal directive\\1"',
22387
range: [19, 38],
22388
loc: {
22389
start: { line: 1, column: 19 },
22390
end: { line: 1, column: 38 }
22391
}
22392
},
22393
range: [19, 39],
22394
loc: {
22395
start: { line: 1, column: 19 },
22396
end: { line: 1, column: 39 }
22397
}
22398
}, {
22399
type: 'ExpressionStatement',
22400
expression: {
22401
type: 'Literal',
22402
value: 'use strict',
22403
raw: '"use strict"',
22404
range: [40, 52],
22405
loc: {
22406
start: { line: 1, column: 40 },
22407
end: { line: 1, column: 52 }
22408
}
22409
},
22410
range: [40, 53],
22411
loc: {
22412
start: { line: 1, column: 40 },
22413
end: { line: 1, column: 53 }
22414
}
22415
}],
22416
range: [17, 55],
22417
loc: {
22418
start: { line: 1, column: 17 },
22419
end: { line: 1, column: 55 }
22420
}
22421
},
22422
rest: null,
22423
generator: false,
22424
expression: false,
22425
range: [0, 55],
22426
loc: {
22427
start: { line: 1, column: 0 },
22428
end: { line: 1, column: 55 }
22429
}
22430
}],
22431
range: [0, 55],
22432
loc: {
22433
start: { line: 1, column: 0 },
22434
end: { line: 1, column: 55 }
22435
},
22436
errors: [{
22437
index: 19,
22438
lineNumber: 1,
22439
column: 20,
22440
message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
22441
}]
22442
},
22443
22444
'"\\1"; \'use strict\';': {
22445
type: 'Program',
22446
body: [{
22447
type: 'ExpressionStatement',
22448
expression: {
22449
type: 'Literal',
22450
value: '\u0001',
22451
raw: '"\\1"',
22452
range: [0, 4],
22453
loc: {
22454
start: { line: 1, column: 0 },
22455
end: { line: 1, column: 4 }
22456
}
22457
},
22458
range: [0, 5],
22459
loc: {
22460
start: { line: 1, column: 0 },
22461
end: { line: 1, column: 5 }
22462
}
22463
}, {
22464
type: 'ExpressionStatement',
22465
expression: {
22466
type: 'Literal',
22467
value: 'use strict',
22468
raw: '\'use strict\'',
22469
range: [6, 18],
22470
loc: {
22471
start: { line: 1, column: 6 },
22472
end: { line: 1, column: 18 }
22473
}
22474
},
22475
range: [6, 19],
22476
loc: {
22477
start: { line: 1, column: 6 },
22478
end: { line: 1, column: 19 }
22479
}
22480
}],
22481
range: [0, 19],
22482
loc: {
22483
start: { line: 1, column: 0 },
22484
end: { line: 1, column: 19 }
22485
},
22486
errors: [{
22487
index: 0,
22488
lineNumber: 1,
22489
column: 1,
22490
message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
22491
}]
22492
},
22493
22494
'"use strict"; var x = { 014: 3}': {
22495
type: 'Program',
22496
body: [{
22497
type: 'ExpressionStatement',
22498
expression: {
22499
type: 'Literal',
22500
value: 'use strict',
22501
raw: '"use strict"',
22502
range: [0, 12],
22503
loc: {
22504
start: { line: 1, column: 0 },
22505
end: { line: 1, column: 12 }
22506
}
22507
},
22508
range: [0, 13],
22509
loc: {
22510
start: { line: 1, column: 0 },
22511
end: { line: 1, column: 13 }
22512
}
22513
}, {
22514
type: 'VariableDeclaration',
22515
declarations: [{
22516
type: 'VariableDeclarator',
22517
id: {
22518
type: 'Identifier',
22519
name: 'x',
22520
range: [18, 19],
22521
loc: {
22522
start: { line: 1, column: 18 },
22523
end: { line: 1, column: 19 }
22524
}
22525
},
22526
init: {
22527
type: 'ObjectExpression',
22528
properties: [{
22529
type: 'Property',
22530
key: {
22531
type: 'Literal',
22532
value: 12,
22533
raw: '014',
22534
range: [24, 27],
22535
loc: {
22536
start: { line: 1, column: 24 },
22537
end: { line: 1, column: 27 }
22538
}
22539
},
22540
value: {
22541
type: 'Literal',
22542
value: 3,
22543
raw: '3',
22544
range: [29, 30],
22545
loc: {
22546
start: { line: 1, column: 29 },
22547
end: { line: 1, column: 30 }
22548
}
22549
},
22550
kind: 'init',
22551
method: false,
22552
shorthand: false,
22553
computed: false,
22554
range: [24, 30],
22555
loc: {
22556
start: { line: 1, column: 24 },
22557
end: { line: 1, column: 30 }
22558
}
22559
}],
22560
range: [22, 31],
22561
loc: {
22562
start: { line: 1, column: 22 },
22563
end: { line: 1, column: 31 }
22564
}
22565
},
22566
range: [18, 31],
22567
loc: {
22568
start: { line: 1, column: 18 },
22569
end: { line: 1, column: 31 }
22570
}
22571
}],
22572
kind: 'var',
22573
range: [14, 31],
22574
loc: {
22575
start: { line: 1, column: 14 },
22576
end: { line: 1, column: 31 }
22577
}
22578
}],
22579
range: [0, 31],
22580
loc: {
22581
start: { line: 1, column: 0 },
22582
end: { line: 1, column: 31 }
22583
},
22584
errors: [{
22585
index: 24,
22586
lineNumber: 1,
22587
column: 25,
22588
message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
22589
}]
22590
},
22591
22592
'"use strict"; var x = { get i() {}, get i() {} }': {
22593
type: 'Program',
22594
body: [{
22595
type: 'ExpressionStatement',
22596
expression: {
22597
type: 'Literal',
22598
value: 'use strict',
22599
raw: '"use strict"',
22600
range: [0, 12],
22601
loc: {
22602
start: { line: 1, column: 0 },
22603
end: { line: 1, column: 12 }
22604
}
22605
},
22606
range: [0, 13],
22607
loc: {
22608
start: { line: 1, column: 0 },
22609
end: { line: 1, column: 13 }
22610
}
22611
}, {
22612
type: 'VariableDeclaration',
22613
declarations: [{
22614
type: 'VariableDeclarator',
22615
id: {
22616
type: 'Identifier',
22617
name: 'x',
22618
range: [18, 19],
22619
loc: {
22620
start: { line: 1, column: 18 },
22621
end: { line: 1, column: 19 }
22622
}
22623
},
22624
init: {
22625
type: 'ObjectExpression',
22626
properties: [{
22627
type: 'Property',
22628
key: {
22629
type: 'Identifier',
22630
name: 'i',
22631
range: [28, 29],
22632
loc: {
22633
start: { line: 1, column: 28 },
22634
end: { line: 1, column: 29 }
22635
}
22636
},
22637
value: {
22638
type: 'FunctionExpression',
22639
id: null,
22640
params: [],
22641
defaults: [],
22642
body: {
22643
type: 'BlockStatement',
22644
body: [],
22645
range: [32, 34],
22646
loc: {
22647
start: { line: 1, column: 32 },
22648
end: { line: 1, column: 34 }
22649
}
22650
},
22651
rest: null,
22652
generator: false,
22653
expression: false,
22654
range: [32, 34],
22655
loc: {
22656
start: { line: 1, column: 32 },
22657
end: { line: 1, column: 34 }
22658
}
22659
},
22660
kind: 'get',
22661
method: false,
22662
shorthand: false,
22663
computed: false,
22664
range: [24, 34],
22665
loc: {
22666
start: { line: 1, column: 24 },
22667
end: { line: 1, column: 34 }
22668
}
22669
}, {
22670
type: 'Property',
22671
key: {
22672
type: 'Identifier',
22673
name: 'i',
22674
range: [40, 41],
22675
loc: {
22676
start: { line: 1, column: 40 },
22677
end: { line: 1, column: 41 }
22678
}
22679
},
22680
value: {
22681
type: 'FunctionExpression',
22682
id: null,
22683
params: [],
22684
defaults: [],
22685
body: {
22686
type: 'BlockStatement',
22687
body: [],
22688
range: [44, 46],
22689
loc: {
22690
start: { line: 1, column: 44 },
22691
end: { line: 1, column: 46 }
22692
}
22693
},
22694
rest: null,
22695
generator: false,
22696
expression: false,
22697
range: [44, 46],
22698
loc: {
22699
start: { line: 1, column: 44 },
22700
end: { line: 1, column: 46 }
22701
}
22702
},
22703
kind: 'get',
22704
method: false,
22705
shorthand: false,
22706
computed: false,
22707
range: [36, 46],
22708
loc: {
22709
start: { line: 1, column: 36 },
22710
end: { line: 1, column: 46 }
22711
}
22712
}],
22713
range: [22, 48],
22714
loc: {
22715
start: { line: 1, column: 22 },
22716
end: { line: 1, column: 48 }
22717
}
22718
},
22719
range: [18, 48],
22720
loc: {
22721
start: { line: 1, column: 18 },
22722
end: { line: 1, column: 48 }
22723
}
22724
}],
22725
kind: 'var',
22726
range: [14, 48],
22727
loc: {
22728
start: { line: 1, column: 14 },
22729
end: { line: 1, column: 48 }
22730
}
22731
}],
22732
range: [0, 48],
22733
loc: {
22734
start: { line: 1, column: 0 },
22735
end: { line: 1, column: 48 }
22736
},
22737
errors: [{
22738
index: 46,
22739
lineNumber: 1,
22740
column: 47,
22741
message: 'Error: Line 1: Object literal may not have multiple get/set accessors with the same name'
22742
}]
22743
},
22744
22745
'"use strict"; var x = { i: 42, get i() {} }': {
22746
type: 'Program',
22747
body: [{
22748
type: 'ExpressionStatement',
22749
expression: {
22750
type: 'Literal',
22751
value: 'use strict',
22752
raw: '"use strict"',
22753
range: [0, 12],
22754
loc: {
22755
start: { line: 1, column: 0 },
22756
end: { line: 1, column: 12 }
22757
}
22758
},
22759
range: [0, 13],
22760
loc: {
22761
start: { line: 1, column: 0 },
22762
end: { line: 1, column: 13 }
22763
}
22764
}, {
22765
type: 'VariableDeclaration',
22766
declarations: [{
22767
type: 'VariableDeclarator',
22768
id: {
22769
type: 'Identifier',
22770
name: 'x',
22771
range: [18, 19],
22772
loc: {
22773
start: { line: 1, column: 18 },
22774
end: { line: 1, column: 19 }
22775
}
22776
},
22777
init: {
22778
type: 'ObjectExpression',
22779
properties: [{
22780
type: 'Property',
22781
key: {
22782
type: 'Identifier',
22783
name: 'i',
22784
range: [24, 25],
22785
loc: {
22786
start: { line: 1, column: 24 },
22787
end: { line: 1, column: 25 }
22788
}
22789
},
22790
value: {
22791
type: 'Literal',
22792
value: 42,
22793
raw: '42',
22794
range: [27, 29],
22795
loc: {
22796
start: { line: 1, column: 27 },
22797
end: { line: 1, column: 29 }
22798
}
22799
},
22800
kind: 'init',
22801
method: false,
22802
shorthand: false,
22803
computed: false,
22804
range: [24, 29],
22805
loc: {
22806
start: { line: 1, column: 24 },
22807
end: { line: 1, column: 29 }
22808
}
22809
}, {
22810
type: 'Property',
22811
key: {
22812
type: 'Identifier',
22813
name: 'i',
22814
range: [35, 36],
22815
loc: {
22816
start: { line: 1, column: 35 },
22817
end: { line: 1, column: 36 }
22818
}
22819
},
22820
value: {
22821
type: 'FunctionExpression',
22822
id: null,
22823
params: [],
22824
defaults: [],
22825
body: {
22826
type: 'BlockStatement',
22827
body: [],
22828
range: [39, 41],
22829
loc: {
22830
start: { line: 1, column: 39 },
22831
end: { line: 1, column: 41 }
22832
}
22833
},
22834
rest: null,
22835
generator: false,
22836
expression: false,
22837
range: [39, 41],
22838
loc: {
22839
start: { line: 1, column: 39 },
22840
end: { line: 1, column: 41 }
22841
}
22842
},
22843
kind: 'get',
22844
method: false,
22845
shorthand: false,
22846
computed: false,
22847
range: [31, 41],
22848
loc: {
22849
start: { line: 1, column: 31 },
22850
end: { line: 1, column: 41 }
22851
}
22852
}],
22853
range: [22, 43],
22854
loc: {
22855
start: { line: 1, column: 22 },
22856
end: { line: 1, column: 43 }
22857
}
22858
},
22859
range: [18, 43],
22860
loc: {
22861
start: { line: 1, column: 18 },
22862
end: { line: 1, column: 43 }
22863
}
22864
}],
22865
kind: 'var',
22866
range: [14, 43],
22867
loc: {
22868
start: { line: 1, column: 14 },
22869
end: { line: 1, column: 43 }
22870
}
22871
}],
22872
range: [0, 43],
22873
loc: {
22874
start: { line: 1, column: 0 },
22875
end: { line: 1, column: 43 }
22876
},
22877
errors: [{
22878
index: 41,
22879
lineNumber: 1,
22880
column: 42,
22881
message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
22882
}]
22883
},
22884
22885
'"use strict"; var x = { set i(x) {}, i: 42 }': {
22886
type: 'Program',
22887
body: [{
22888
type: 'ExpressionStatement',
22889
expression: {
22890
type: 'Literal',
22891
value: 'use strict',
22892
raw: '"use strict"',
22893
range: [0, 12],
22894
loc: {
22895
start: { line: 1, column: 0 },
22896
end: { line: 1, column: 12 }
22897
}
22898
},
22899
range: [0, 13],
22900
loc: {
22901
start: { line: 1, column: 0 },
22902
end: { line: 1, column: 13 }
22903
}
22904
}, {
22905
type: 'VariableDeclaration',
22906
declarations: [{
22907
type: 'VariableDeclarator',
22908
id: {
22909
type: 'Identifier',
22910
name: 'x',
22911
range: [18, 19],
22912
loc: {
22913
start: { line: 1, column: 18 },
22914
end: { line: 1, column: 19 }
22915
}
22916
},
22917
init: {
22918
type: 'ObjectExpression',
22919
properties: [{
22920
type: 'Property',
22921
key: {
22922
type: 'Identifier',
22923
name: 'i',
22924
range: [28, 29],
22925
loc: {
22926
start: { line: 1, column: 28 },
22927
end: { line: 1, column: 29 }
22928
}
22929
},
22930
value: {
22931
type: 'FunctionExpression',
22932
id: null,
22933
params: [{
22934
type: 'Identifier',
22935
name: 'x',
22936
range: [30, 31],
22937
loc: {
22938
start: { line: 1, column: 30 },
22939
end: { line: 1, column: 31 }
22940
}
22941
}],
22942
defaults: [],
22943
body: {
22944
type: 'BlockStatement',
22945
body: [],
22946
range: [33, 35],
22947
loc: {
22948
start: { line: 1, column: 33 },
22949
end: { line: 1, column: 35 }
22950
}
22951
},
22952
rest: null,
22953
generator: false,
22954
expression: false,
22955
range: [33, 35],
22956
loc: {
22957
start: { line: 1, column: 33 },
22958
end: { line: 1, column: 35 }
22959
}
22960
},
22961
kind: 'set',
22962
method: false,
22963
shorthand: false,
22964
computed: false,
22965
range: [24, 35],
22966
loc: {
22967
start: { line: 1, column: 24 },
22968
end: { line: 1, column: 35 }
22969
}
22970
}, {
22971
type: 'Property',
22972
key: {
22973
type: 'Identifier',
22974
name: 'i',
22975
range: [37, 38],
22976
loc: {
22977
start: { line: 1, column: 37 },
22978
end: { line: 1, column: 38 }
22979
}
22980
},
22981
value: {
22982
type: 'Literal',
22983
value: 42,
22984
raw: '42',
22985
range: [40, 42],
22986
loc: {
22987
start: { line: 1, column: 40 },
22988
end: { line: 1, column: 42 }
22989
}
22990
},
22991
kind: 'init',
22992
method: false,
22993
shorthand: false,
22994
computed: false,
22995
range: [37, 42],
22996
loc: {
22997
start: { line: 1, column: 37 },
22998
end: { line: 1, column: 42 }
22999
}
23000
}],
23001
range: [22, 44],
23002
loc: {
23003
start: { line: 1, column: 22 },
23004
end: { line: 1, column: 44 }
23005
}
23006
},
23007
range: [18, 44],
23008
loc: {
23009
start: { line: 1, column: 18 },
23010
end: { line: 1, column: 44 }
23011
}
23012
}],
23013
kind: 'var',
23014
range: [14, 44],
23015
loc: {
23016
start: { line: 1, column: 14 },
23017
end: { line: 1, column: 44 }
23018
}
23019
}],
23020
range: [0, 44],
23021
loc: {
23022
start: { line: 1, column: 0 },
23023
end: { line: 1, column: 44 }
23024
},
23025
errors: [{
23026
index: 42,
23027
lineNumber: 1,
23028
column: 43,
23029
message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
23030
}]
23031
23032
},
23033
23034
'var x = /[P QR]/\\g': {
23035
type: "Program",
23036
body: [{
23037
type: "VariableDeclaration",
23038
declarations: [{
23039
type: "VariableDeclarator",
23040
id: {
23041
type: "Identifier",
23042
name: "x",
23043
range: [4, 5],
23044
loc: {
23045
start: { line: 1, column: 4 },
23046
end: { line: 1, column: 5 }
23047
}
23048
},
23049
init: {
23050
type: "Literal",
23051
value: "/[P QR]/g",
23052
raw: "/[P QR]/\\g",
23053
regex: {
23054
pattern: '[P QR]',
23055
flags: 'g'
23056
},
23057
range: [8, 18],
23058
loc: {
23059
start: { line: 1, column: 8 },
23060
end: { line: 1, column: 18 }
23061
}
23062
},
23063
range: [4, 18],
23064
loc: {
23065
start: { line: 1, column: 4 },
23066
end: { line: 1, column: 18 }
23067
}
23068
}],
23069
kind: "var",
23070
range: [0, 18],
23071
loc: {
23072
start: { line: 1, column: 0 },
23073
end: { line: 1, column: 18 }
23074
}
23075
}],
23076
range: [0, 18],
23077
loc: {
23078
start: { line: 1, column: 0 },
23079
end: { line: 1, column: 18 }
23080
},
23081
errors: [{
23082
index: 17,
23083
lineNumber: 1,
23084
column: 18,
23085
message: "Error: Line 1: Unexpected token ILLEGAL"
23086
}]
23087
},
23088
23089
'var x = /[P QR]/\\\\u0067': {
23090
type: "Program",
23091
body: [{
23092
type: "VariableDeclaration",
23093
declarations: [{
23094
type: "VariableDeclarator",
23095
id: {
23096
type: "Identifier",
23097
name: "x",
23098
range: [4, 5],
23099
loc: {
23100
start: { line: 1, column: 4 },
23101
end: { line: 1, column: 5 }
23102
}
23103
},
23104
init: {
23105
type: "Literal",
23106
value: "/[P QR]/g",
23107
raw: "/[P QR]/\\\\u0067",
23108
regex: {
23109
pattern: '[P QR]',
23110
flags: 'g'
23111
},
23112
range: [8, 23],
23113
loc: {
23114
start: { line: 1, column: 8 },
23115
end: { line: 1, column: 23 }
23116
}
23117
},
23118
range: [4, 23],
23119
loc: {
23120
start: { line: 1, column: 4 },
23121
end: { line: 1, column: 23 }
23122
}
23123
}],
23124
kind: "var",
23125
range: [0, 23],
23126
loc: {
23127
start: { line: 1, column: 0 },
23128
end: { line: 1, column: 23 }
23129
}
23130
}],
23131
range: [0, 23],
23132
loc: {
23133
start: { line: 1, column: 0 },
23134
end: { line: 1, column: 23 }
23135
},
23136
errors: [{
23137
index: 17,
23138
lineNumber: 1,
23139
column: 18,
23140
message: "Error: Line 1: Unexpected token ILLEGAL"
23141
}, {
23142
index: 23,
23143
lineNumber: 1,
23144
column: 24,
23145
message: "Error: Line 1: Unexpected token ILLEGAL"
23146
}]
23147
}
23148
23149
23150
}
23151
};
23152
23153