Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
81179 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
var 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: 1, column: 8 },
3870
end: { line: 1, column: 10 }
3871
}
3872
},
3873
range: [8, 10],
3874
loc: {
3875
start: { line: 1, column: 8 },
3876
end: { line: 1, column: 10 }
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: 1, column: 7 }
3885
}
3886
}]
3887
}],
3888
range: [8, 10],
3889
loc: {
3890
start: { line: 1, column: 8 },
3891
end: { line: 1, column: 10 }
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: 1, column: 7 }
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 = /[P QR]/\\g': {
6076
type: 'Program',
6077
body: [{
6078
type: 'VariableDeclaration',
6079
declarations: [{
6080
type: 'VariableDeclarator',
6081
id: {
6082
type: 'Identifier',
6083
name: 'x',
6084
range: [4, 5],
6085
loc: {
6086
start: { line: 1, column: 4 },
6087
end: { line: 1, column: 5 }
6088
}
6089
},
6090
init: {
6091
type: 'Literal',
6092
value: '/[P QR]/g',
6093
raw: '/[P QR]/\\g',
6094
regex: {
6095
pattern: '[P QR]',
6096
flags: 'g'
6097
},
6098
range: [8, 18],
6099
loc: {
6100
start: { line: 1, column: 8 },
6101
end: { line: 1, column: 18 }
6102
}
6103
},
6104
range: [4, 18],
6105
loc: {
6106
start: { line: 1, column: 4 },
6107
end: { line: 1, column: 18 }
6108
}
6109
}],
6110
kind: 'var',
6111
range: [0, 18],
6112
loc: {
6113
start: { line: 1, column: 0 },
6114
end: { line: 1, column: 18 }
6115
}
6116
}],
6117
range: [0, 18],
6118
loc: {
6119
start: { line: 1, column: 0 },
6120
end: { line: 1, column: 18 }
6121
},
6122
tokens: [{
6123
type: 'Keyword',
6124
value: 'var',
6125
range: [0, 3],
6126
loc: {
6127
start: { line: 1, column: 0 },
6128
end: { line: 1, column: 3 }
6129
}
6130
}, {
6131
type: 'Identifier',
6132
value: 'x',
6133
range: [4, 5],
6134
loc: {
6135
start: { line: 1, column: 4 },
6136
end: { line: 1, column: 5 }
6137
}
6138
}, {
6139
type: 'Punctuator',
6140
value: '=',
6141
range: [6, 7],
6142
loc: {
6143
start: { line: 1, column: 6 },
6144
end: { line: 1, column: 7 }
6145
}
6146
}, {
6147
type: 'RegularExpression',
6148
value: '/[P QR]/\\g',
6149
regex: {
6150
pattern: '[P QR]',
6151
flags: 'g'
6152
},
6153
range: [8, 18],
6154
loc: {
6155
start: { line: 1, column: 8 },
6156
end: { line: 1, column: 18 }
6157
}
6158
}]
6159
},
6160
6161
'var x = /42/g.test': {
6162
type: 'VariableDeclaration',
6163
declarations: [{
6164
type: 'VariableDeclarator',
6165
id: {
6166
type: 'Identifier',
6167
name: 'x',
6168
range: [4, 5],
6169
loc: {
6170
start: { line: 1, column: 4 },
6171
end: { line: 1, column: 5 }
6172
}
6173
},
6174
init: {
6175
type: 'MemberExpression',
6176
computed: false,
6177
object: {
6178
type: 'Literal',
6179
value: '/42/g',
6180
raw: '/42/g',
6181
regex: {
6182
pattern: '42',
6183
flags: 'g'
6184
},
6185
range: [8, 13],
6186
loc: {
6187
start: { line: 1, column: 8 },
6188
end: { line: 1, column: 13 }
6189
}
6190
},
6191
property: {
6192
type: 'Identifier',
6193
name: 'test',
6194
range: [14, 18],
6195
loc: {
6196
start: { line: 1, column: 14 },
6197
end: { line: 1, column: 18 }
6198
}
6199
},
6200
range: [8, 18],
6201
loc: {
6202
start: { line: 1, column: 8 },
6203
end: { line: 1, column: 18 }
6204
}
6205
},
6206
range: [4, 18],
6207
loc: {
6208
start: { line: 1, column: 4 },
6209
end: { line: 1, column: 18 }
6210
}
6211
}],
6212
kind: 'var',
6213
range: [0, 18],
6214
loc: {
6215
start: { line: 1, column: 0 },
6216
end: { line: 1, column: 18 }
6217
}
6218
}
6219
6220
},
6221
6222
'Left-Hand-Side Expression': {
6223
6224
'new Button': {
6225
type: 'ExpressionStatement',
6226
expression: {
6227
type: 'NewExpression',
6228
callee: {
6229
type: 'Identifier',
6230
name: 'Button',
6231
range: [4, 10],
6232
loc: {
6233
start: { line: 1, column: 4 },
6234
end: { line: 1, column: 10 }
6235
}
6236
},
6237
'arguments': [],
6238
range: [0, 10],
6239
loc: {
6240
start: { line: 1, column: 0 },
6241
end: { line: 1, column: 10 }
6242
}
6243
},
6244
range: [0, 10],
6245
loc: {
6246
start: { line: 1, column: 0 },
6247
end: { line: 1, column: 10 }
6248
}
6249
},
6250
6251
'new Button()': {
6252
type: 'ExpressionStatement',
6253
expression: {
6254
type: 'NewExpression',
6255
callee: {
6256
type: 'Identifier',
6257
name: 'Button',
6258
range: [4, 10],
6259
loc: {
6260
start: { line: 1, column: 4 },
6261
end: { line: 1, column: 10 }
6262
}
6263
},
6264
'arguments': [],
6265
range: [0, 12],
6266
loc: {
6267
start: { line: 1, column: 0 },
6268
end: { line: 1, column: 12 }
6269
}
6270
},
6271
range: [0, 12],
6272
loc: {
6273
start: { line: 1, column: 0 },
6274
end: { line: 1, column: 12 }
6275
}
6276
},
6277
6278
'new new foo': {
6279
type: 'ExpressionStatement',
6280
expression: {
6281
type: 'NewExpression',
6282
callee: {
6283
type: 'NewExpression',
6284
callee: {
6285
type: 'Identifier',
6286
name: 'foo',
6287
range: [8, 11],
6288
loc: {
6289
start: { line: 1, column: 8 },
6290
end: { line: 1, column: 11 }
6291
}
6292
},
6293
'arguments': [],
6294
range: [4, 11],
6295
loc: {
6296
start: { line: 1, column: 4 },
6297
end: { line: 1, column: 11 }
6298
}
6299
},
6300
'arguments': [],
6301
range: [0, 11],
6302
loc: {
6303
start: { line: 1, column: 0 },
6304
end: { line: 1, column: 11 }
6305
}
6306
},
6307
range: [0, 11],
6308
loc: {
6309
start: { line: 1, column: 0 },
6310
end: { line: 1, column: 11 }
6311
}
6312
},
6313
6314
'new new foo()': {
6315
type: 'ExpressionStatement',
6316
expression: {
6317
type: 'NewExpression',
6318
callee: {
6319
type: 'NewExpression',
6320
callee: {
6321
type: 'Identifier',
6322
name: 'foo',
6323
range: [8, 11],
6324
loc: {
6325
start: { line: 1, column: 8 },
6326
end: { line: 1, column: 11 }
6327
}
6328
},
6329
'arguments': [],
6330
range: [4, 13],
6331
loc: {
6332
start: { line: 1, column: 4 },
6333
end: { line: 1, column: 13 }
6334
}
6335
},
6336
'arguments': [],
6337
range: [0, 13],
6338
loc: {
6339
start: { line: 1, column: 0 },
6340
end: { line: 1, column: 13 }
6341
}
6342
},
6343
range: [0, 13],
6344
loc: {
6345
start: { line: 1, column: 0 },
6346
end: { line: 1, column: 13 }
6347
}
6348
},
6349
6350
'new foo().bar()': {
6351
type: 'ExpressionStatement',
6352
expression: {
6353
type: 'CallExpression',
6354
callee: {
6355
type: 'MemberExpression',
6356
computed: false,
6357
object: {
6358
type: 'NewExpression',
6359
callee: {
6360
type: 'Identifier',
6361
name: 'foo',
6362
range: [4, 7],
6363
loc: {
6364
start: { line: 1, column: 4 },
6365
end: { line: 1, column: 7 }
6366
}
6367
},
6368
'arguments': [],
6369
range: [0, 9],
6370
loc: {
6371
start: { line: 1, column: 0 },
6372
end: { line: 1, column: 9 }
6373
}
6374
},
6375
property: {
6376
type: 'Identifier',
6377
name: 'bar',
6378
range: [10, 13],
6379
loc: {
6380
start: { line: 1, column: 10 },
6381
end: { line: 1, column: 13 }
6382
}
6383
},
6384
range: [0, 13],
6385
loc: {
6386
start: { line: 1, column: 0 },
6387
end: { line: 1, column: 13 }
6388
}
6389
},
6390
'arguments': [],
6391
range: [0, 15],
6392
loc: {
6393
start: { line: 1, column: 0 },
6394
end: { line: 1, column: 15 }
6395
}
6396
},
6397
range: [0, 15],
6398
loc: {
6399
start: { line: 1, column: 0 },
6400
end: { line: 1, column: 15 }
6401
}
6402
},
6403
6404
'new foo[bar]': {
6405
type: 'ExpressionStatement',
6406
expression: {
6407
type: 'NewExpression',
6408
callee: {
6409
type: 'MemberExpression',
6410
computed: true,
6411
object: {
6412
type: 'Identifier',
6413
name: 'foo',
6414
range: [4, 7],
6415
loc: {
6416
start: { line: 1, column: 4 },
6417
end: { line: 1, column: 7 }
6418
}
6419
},
6420
property: {
6421
type: 'Identifier',
6422
name: 'bar',
6423
range: [8, 11],
6424
loc: {
6425
start: { line: 1, column: 8 },
6426
end: { line: 1, column: 11 }
6427
}
6428
},
6429
range: [4, 12],
6430
loc: {
6431
start: { line: 1, column: 4 },
6432
end: { line: 1, column: 12 }
6433
}
6434
},
6435
'arguments': [],
6436
range: [0, 12],
6437
loc: {
6438
start: { line: 1, column: 0 },
6439
end: { line: 1, column: 12 }
6440
}
6441
},
6442
range: [0, 12],
6443
loc: {
6444
start: { line: 1, column: 0 },
6445
end: { line: 1, column: 12 }
6446
}
6447
},
6448
6449
'new foo.bar()': {
6450
type: 'ExpressionStatement',
6451
expression: {
6452
type: 'NewExpression',
6453
callee: {
6454
type: 'MemberExpression',
6455
computed: false,
6456
object: {
6457
type: 'Identifier',
6458
name: 'foo',
6459
range: [4, 7],
6460
loc: {
6461
start: { line: 1, column: 4 },
6462
end: { line: 1, column: 7 }
6463
}
6464
},
6465
property: {
6466
type: 'Identifier',
6467
name: 'bar',
6468
range: [8, 11],
6469
loc: {
6470
start: { line: 1, column: 8 },
6471
end: { line: 1, column: 11 }
6472
}
6473
},
6474
range: [4, 11],
6475
loc: {
6476
start: { line: 1, column: 4 },
6477
end: { line: 1, column: 11 }
6478
}
6479
},
6480
'arguments': [],
6481
range: [0, 13],
6482
loc: {
6483
start: { line: 1, column: 0 },
6484
end: { line: 1, column: 13 }
6485
}
6486
},
6487
range: [0, 13],
6488
loc: {
6489
start: { line: 1, column: 0 },
6490
end: { line: 1, column: 13 }
6491
}
6492
},
6493
6494
'( new foo).bar()': {
6495
type: 'ExpressionStatement',
6496
expression: {
6497
type: 'CallExpression',
6498
callee: {
6499
type: 'MemberExpression',
6500
computed: false,
6501
object: {
6502
type: 'NewExpression',
6503
callee: {
6504
type: 'Identifier',
6505
name: 'foo',
6506
range: [6, 9],
6507
loc: {
6508
start: { line: 1, column: 6 },
6509
end: { line: 1, column: 9 }
6510
}
6511
},
6512
'arguments': [],
6513
range: [2, 9],
6514
loc: {
6515
start: { line: 1, column: 2 },
6516
end: { line: 1, column: 9 }
6517
}
6518
},
6519
property: {
6520
type: 'Identifier',
6521
name: 'bar',
6522
range: [11, 14],
6523
loc: {
6524
start: { line: 1, column: 11 },
6525
end: { line: 1, column: 14 }
6526
}
6527
},
6528
range: [0, 14],
6529
loc: {
6530
start: { line: 1, column: 0 },
6531
end: { line: 1, column: 14 }
6532
}
6533
},
6534
'arguments': [],
6535
range: [0, 16],
6536
loc: {
6537
start: { line: 1, column: 0 },
6538
end: { line: 1, column: 16 }
6539
}
6540
},
6541
range: [0, 16],
6542
loc: {
6543
start: { line: 1, column: 0 },
6544
end: { line: 1, column: 16 }
6545
}
6546
},
6547
6548
'foo(bar, baz)': {
6549
type: 'ExpressionStatement',
6550
expression: {
6551
type: 'CallExpression',
6552
callee: {
6553
type: 'Identifier',
6554
name: 'foo',
6555
range: [0, 3],
6556
loc: {
6557
start: { line: 1, column: 0 },
6558
end: { line: 1, column: 3 }
6559
}
6560
},
6561
'arguments': [{
6562
type: 'Identifier',
6563
name: 'bar',
6564
range: [4, 7],
6565
loc: {
6566
start: { line: 1, column: 4 },
6567
end: { line: 1, column: 7 }
6568
}
6569
}, {
6570
type: 'Identifier',
6571
name: 'baz',
6572
range: [9, 12],
6573
loc: {
6574
start: { line: 1, column: 9 },
6575
end: { line: 1, column: 12 }
6576
}
6577
}],
6578
range: [0, 13],
6579
loc: {
6580
start: { line: 1, column: 0 },
6581
end: { line: 1, column: 13 }
6582
}
6583
},
6584
range: [0, 13],
6585
loc: {
6586
start: { line: 1, column: 0 },
6587
end: { line: 1, column: 13 }
6588
}
6589
},
6590
6591
'( foo )()': {
6592
type: 'ExpressionStatement',
6593
expression: {
6594
type: 'CallExpression',
6595
callee: {
6596
type: 'Identifier',
6597
name: 'foo',
6598
range: [5, 8],
6599
loc: {
6600
start: { line: 1, column: 5 },
6601
end: { line: 1, column: 8 }
6602
}
6603
},
6604
'arguments': [],
6605
range: [0, 13],
6606
loc: {
6607
start: { line: 1, column: 0 },
6608
end: { line: 1, column: 13 }
6609
}
6610
},
6611
range: [0, 13],
6612
loc: {
6613
start: { line: 1, column: 0 },
6614
end: { line: 1, column: 13 }
6615
}
6616
},
6617
6618
'universe.milkyway': {
6619
type: 'ExpressionStatement',
6620
expression: {
6621
type: 'MemberExpression',
6622
computed: false,
6623
object: {
6624
type: 'Identifier',
6625
name: 'universe',
6626
range: [0, 8],
6627
loc: {
6628
start: { line: 1, column: 0 },
6629
end: { line: 1, column: 8 }
6630
}
6631
},
6632
property: {
6633
type: 'Identifier',
6634
name: 'milkyway',
6635
range: [9, 17],
6636
loc: {
6637
start: { line: 1, column: 9 },
6638
end: { line: 1, column: 17 }
6639
}
6640
},
6641
range: [0, 17],
6642
loc: {
6643
start: { line: 1, column: 0 },
6644
end: { line: 1, column: 17 }
6645
}
6646
},
6647
range: [0, 17],
6648
loc: {
6649
start: { line: 1, column: 0 },
6650
end: { line: 1, column: 17 }
6651
}
6652
},
6653
6654
'universe.milkyway.solarsystem': {
6655
type: 'ExpressionStatement',
6656
expression: {
6657
type: 'MemberExpression',
6658
computed: false,
6659
object: {
6660
type: 'MemberExpression',
6661
computed: false,
6662
object: {
6663
type: 'Identifier',
6664
name: 'universe',
6665
range: [0, 8],
6666
loc: {
6667
start: { line: 1, column: 0 },
6668
end: { line: 1, column: 8 }
6669
}
6670
},
6671
property: {
6672
type: 'Identifier',
6673
name: 'milkyway',
6674
range: [9, 17],
6675
loc: {
6676
start: { line: 1, column: 9 },
6677
end: { line: 1, column: 17 }
6678
}
6679
},
6680
range: [0, 17],
6681
loc: {
6682
start: { line: 1, column: 0 },
6683
end: { line: 1, column: 17 }
6684
}
6685
},
6686
property: {
6687
type: 'Identifier',
6688
name: 'solarsystem',
6689
range: [18, 29],
6690
loc: {
6691
start: { line: 1, column: 18 },
6692
end: { line: 1, column: 29 }
6693
}
6694
},
6695
range: [0, 29],
6696
loc: {
6697
start: { line: 1, column: 0 },
6698
end: { line: 1, column: 29 }
6699
}
6700
},
6701
range: [0, 29],
6702
loc: {
6703
start: { line: 1, column: 0 },
6704
end: { line: 1, column: 29 }
6705
}
6706
},
6707
6708
'universe.milkyway.solarsystem.Earth': {
6709
type: 'ExpressionStatement',
6710
expression: {
6711
type: 'MemberExpression',
6712
computed: false,
6713
object: {
6714
type: 'MemberExpression',
6715
computed: false,
6716
object: {
6717
type: 'MemberExpression',
6718
computed: false,
6719
object: {
6720
type: 'Identifier',
6721
name: 'universe',
6722
range: [0, 8],
6723
loc: {
6724
start: { line: 1, column: 0 },
6725
end: { line: 1, column: 8 }
6726
}
6727
},
6728
property: {
6729
type: 'Identifier',
6730
name: 'milkyway',
6731
range: [9, 17],
6732
loc: {
6733
start: { line: 1, column: 9 },
6734
end: { line: 1, column: 17 }
6735
}
6736
},
6737
range: [0, 17],
6738
loc: {
6739
start: { line: 1, column: 0 },
6740
end: { line: 1, column: 17 }
6741
}
6742
},
6743
property: {
6744
type: 'Identifier',
6745
name: 'solarsystem',
6746
range: [18, 29],
6747
loc: {
6748
start: { line: 1, column: 18 },
6749
end: { line: 1, column: 29 }
6750
}
6751
},
6752
range: [0, 29],
6753
loc: {
6754
start: { line: 1, column: 0 },
6755
end: { line: 1, column: 29 }
6756
}
6757
},
6758
property: {
6759
type: 'Identifier',
6760
name: 'Earth',
6761
range: [30, 35],
6762
loc: {
6763
start: { line: 1, column: 30 },
6764
end: { line: 1, column: 35 }
6765
}
6766
},
6767
range: [0, 35],
6768
loc: {
6769
start: { line: 1, column: 0 },
6770
end: { line: 1, column: 35 }
6771
}
6772
},
6773
range: [0, 35],
6774
loc: {
6775
start: { line: 1, column: 0 },
6776
end: { line: 1, column: 35 }
6777
}
6778
},
6779
6780
'universe[galaxyName, otherUselessName]': {
6781
type: 'ExpressionStatement',
6782
expression: {
6783
type: 'MemberExpression',
6784
computed: true,
6785
object: {
6786
type: 'Identifier',
6787
name: 'universe',
6788
range: [0, 8],
6789
loc: {
6790
start: { line: 1, column: 0 },
6791
end: { line: 1, column: 8 }
6792
}
6793
},
6794
property: {
6795
type: 'SequenceExpression',
6796
expressions: [{
6797
type: 'Identifier',
6798
name: 'galaxyName',
6799
range: [9, 19],
6800
loc: {
6801
start: { line: 1, column: 9 },
6802
end: { line: 1, column: 19 }
6803
}
6804
}, {
6805
type: 'Identifier',
6806
name: 'otherUselessName',
6807
range: [21, 37],
6808
loc: {
6809
start: { line: 1, column: 21 },
6810
end: { line: 1, column: 37 }
6811
}
6812
}],
6813
range: [9, 37],
6814
loc: {
6815
start: { line: 1, column: 9 },
6816
end: { line: 1, column: 37 }
6817
}
6818
},
6819
range: [0, 38],
6820
loc: {
6821
start: { line: 1, column: 0 },
6822
end: { line: 1, column: 38 }
6823
}
6824
},
6825
range: [0, 38],
6826
loc: {
6827
start: { line: 1, column: 0 },
6828
end: { line: 1, column: 38 }
6829
}
6830
},
6831
6832
'universe[galaxyName]': {
6833
type: 'ExpressionStatement',
6834
expression: {
6835
type: 'MemberExpression',
6836
computed: true,
6837
object: {
6838
type: 'Identifier',
6839
name: 'universe',
6840
range: [0, 8],
6841
loc: {
6842
start: { line: 1, column: 0 },
6843
end: { line: 1, column: 8 }
6844
}
6845
},
6846
property: {
6847
type: 'Identifier',
6848
name: 'galaxyName',
6849
range: [9, 19],
6850
loc: {
6851
start: { line: 1, column: 9 },
6852
end: { line: 1, column: 19 }
6853
}
6854
},
6855
range: [0, 20],
6856
loc: {
6857
start: { line: 1, column: 0 },
6858
end: { line: 1, column: 20 }
6859
}
6860
},
6861
range: [0, 20],
6862
loc: {
6863
start: { line: 1, column: 0 },
6864
end: { line: 1, column: 20 }
6865
}
6866
},
6867
6868
'universe[42].galaxies': {
6869
type: 'ExpressionStatement',
6870
expression: {
6871
type: 'MemberExpression',
6872
computed: false,
6873
object: {
6874
type: 'MemberExpression',
6875
computed: true,
6876
object: {
6877
type: 'Identifier',
6878
name: 'universe',
6879
range: [0, 8],
6880
loc: {
6881
start: { line: 1, column: 0 },
6882
end: { line: 1, column: 8 }
6883
}
6884
},
6885
property: {
6886
type: 'Literal',
6887
value: 42,
6888
raw: '42',
6889
range: [9, 11],
6890
loc: {
6891
start: { line: 1, column: 9 },
6892
end: { line: 1, column: 11 }
6893
}
6894
},
6895
range: [0, 12],
6896
loc: {
6897
start: { line: 1, column: 0 },
6898
end: { line: 1, column: 12 }
6899
}
6900
},
6901
property: {
6902
type: 'Identifier',
6903
name: 'galaxies',
6904
range: [13, 21],
6905
loc: {
6906
start: { line: 1, column: 13 },
6907
end: { line: 1, column: 21 }
6908
}
6909
},
6910
range: [0, 21],
6911
loc: {
6912
start: { line: 1, column: 0 },
6913
end: { line: 1, column: 21 }
6914
}
6915
},
6916
range: [0, 21],
6917
loc: {
6918
start: { line: 1, column: 0 },
6919
end: { line: 1, column: 21 }
6920
}
6921
},
6922
6923
'universe(42).galaxies': {
6924
type: 'ExpressionStatement',
6925
expression: {
6926
type: 'MemberExpression',
6927
computed: false,
6928
object: {
6929
type: 'CallExpression',
6930
callee: {
6931
type: 'Identifier',
6932
name: 'universe',
6933
range: [0, 8],
6934
loc: {
6935
start: { line: 1, column: 0 },
6936
end: { line: 1, column: 8 }
6937
}
6938
},
6939
'arguments': [{
6940
type: 'Literal',
6941
value: 42,
6942
raw: '42',
6943
range: [9, 11],
6944
loc: {
6945
start: { line: 1, column: 9 },
6946
end: { line: 1, column: 11 }
6947
}
6948
}],
6949
range: [0, 12],
6950
loc: {
6951
start: { line: 1, column: 0 },
6952
end: { line: 1, column: 12 }
6953
}
6954
},
6955
property: {
6956
type: 'Identifier',
6957
name: 'galaxies',
6958
range: [13, 21],
6959
loc: {
6960
start: { line: 1, column: 13 },
6961
end: { line: 1, column: 21 }
6962
}
6963
},
6964
range: [0, 21],
6965
loc: {
6966
start: { line: 1, column: 0 },
6967
end: { line: 1, column: 21 }
6968
}
6969
},
6970
range: [0, 21],
6971
loc: {
6972
start: { line: 1, column: 0 },
6973
end: { line: 1, column: 21 }
6974
}
6975
},
6976
6977
'universe(42).galaxies(14, 3, 77).milkyway': {
6978
type: 'ExpressionStatement',
6979
expression: {
6980
type: 'MemberExpression',
6981
computed: false,
6982
object: {
6983
type: 'CallExpression',
6984
callee: {
6985
type: 'MemberExpression',
6986
computed: false,
6987
object: {
6988
type: 'CallExpression',
6989
callee: {
6990
type: 'Identifier',
6991
name: 'universe',
6992
range: [0, 8],
6993
loc: {
6994
start: { line: 1, column: 0 },
6995
end: { line: 1, column: 8 }
6996
}
6997
},
6998
'arguments': [{
6999
type: 'Literal',
7000
value: 42,
7001
raw: '42',
7002
range: [9, 11],
7003
loc: {
7004
start: { line: 1, column: 9 },
7005
end: { line: 1, column: 11 }
7006
}
7007
}],
7008
range: [0, 12],
7009
loc: {
7010
start: { line: 1, column: 0 },
7011
end: { line: 1, column: 12 }
7012
}
7013
},
7014
property: {
7015
type: 'Identifier',
7016
name: 'galaxies',
7017
range: [13, 21],
7018
loc: {
7019
start: { line: 1, column: 13 },
7020
end: { line: 1, column: 21 }
7021
}
7022
},
7023
range: [0, 21],
7024
loc: {
7025
start: { line: 1, column: 0 },
7026
end: { line: 1, column: 21 }
7027
}
7028
},
7029
'arguments': [{
7030
type: 'Literal',
7031
value: 14,
7032
raw: '14',
7033
range: [22, 24],
7034
loc: {
7035
start: { line: 1, column: 22 },
7036
end: { line: 1, column: 24 }
7037
}
7038
}, {
7039
type: 'Literal',
7040
value: 3,
7041
raw: '3',
7042
range: [26, 27],
7043
loc: {
7044
start: { line: 1, column: 26 },
7045
end: { line: 1, column: 27 }
7046
}
7047
}, {
7048
type: 'Literal',
7049
value: 77,
7050
raw: '77',
7051
range: [29, 31],
7052
loc: {
7053
start: { line: 1, column: 29 },
7054
end: { line: 1, column: 31 }
7055
}
7056
}],
7057
range: [0, 32],
7058
loc: {
7059
start: { line: 1, column: 0 },
7060
end: { line: 1, column: 32 }
7061
}
7062
},
7063
property: {
7064
type: 'Identifier',
7065
name: 'milkyway',
7066
range: [33, 41],
7067
loc: {
7068
start: { line: 1, column: 33 },
7069
end: { line: 1, column: 41 }
7070
}
7071
},
7072
range: [0, 41],
7073
loc: {
7074
start: { line: 1, column: 0 },
7075
end: { line: 1, column: 41 }
7076
}
7077
},
7078
range: [0, 41],
7079
loc: {
7080
start: { line: 1, column: 0 },
7081
end: { line: 1, column: 41 }
7082
}
7083
},
7084
7085
'earth.asia.Indonesia.prepareForElection(2014)': {
7086
type: 'ExpressionStatement',
7087
expression: {
7088
type: 'CallExpression',
7089
callee: {
7090
type: 'MemberExpression',
7091
computed: false,
7092
object: {
7093
type: 'MemberExpression',
7094
computed: false,
7095
object: {
7096
type: 'MemberExpression',
7097
computed: false,
7098
object: {
7099
type: 'Identifier',
7100
name: 'earth',
7101
range: [0, 5],
7102
loc: {
7103
start: { line: 1, column: 0 },
7104
end: { line: 1, column: 5 }
7105
}
7106
},
7107
property: {
7108
type: 'Identifier',
7109
name: 'asia',
7110
range: [6, 10],
7111
loc: {
7112
start: { line: 1, column: 6 },
7113
end: { line: 1, column: 10 }
7114
}
7115
},
7116
range: [0, 10],
7117
loc: {
7118
start: { line: 1, column: 0 },
7119
end: { line: 1, column: 10 }
7120
}
7121
},
7122
property: {
7123
type: 'Identifier',
7124
name: 'Indonesia',
7125
range: [11, 20],
7126
loc: {
7127
start: { line: 1, column: 11 },
7128
end: { line: 1, column: 20 }
7129
}
7130
},
7131
range: [0, 20],
7132
loc: {
7133
start: { line: 1, column: 0 },
7134
end: { line: 1, column: 20 }
7135
}
7136
},
7137
property: {
7138
type: 'Identifier',
7139
name: 'prepareForElection',
7140
range: [21, 39],
7141
loc: {
7142
start: { line: 1, column: 21 },
7143
end: { line: 1, column: 39 }
7144
}
7145
},
7146
range: [0, 39],
7147
loc: {
7148
start: { line: 1, column: 0 },
7149
end: { line: 1, column: 39 }
7150
}
7151
},
7152
'arguments': [{
7153
type: 'Literal',
7154
value: 2014,
7155
raw: '2014',
7156
range: [40, 44],
7157
loc: {
7158
start: { line: 1, column: 40 },
7159
end: { line: 1, column: 44 }
7160
}
7161
}],
7162
range: [0, 45],
7163
loc: {
7164
start: { line: 1, column: 0 },
7165
end: { line: 1, column: 45 }
7166
}
7167
},
7168
range: [0, 45],
7169
loc: {
7170
start: { line: 1, column: 0 },
7171
end: { line: 1, column: 45 }
7172
}
7173
},
7174
7175
'universe.if': {
7176
type: 'ExpressionStatement',
7177
expression: {
7178
type: 'MemberExpression',
7179
computed: false,
7180
object: {
7181
type: 'Identifier',
7182
name: 'universe',
7183
range: [0, 8],
7184
loc: {
7185
start: { line: 1, column: 0 },
7186
end: { line: 1, column: 8 }
7187
}
7188
},
7189
property: {
7190
type: 'Identifier',
7191
name: 'if',
7192
range: [9, 11],
7193
loc: {
7194
start: { line: 1, column: 9 },
7195
end: { line: 1, column: 11 }
7196
}
7197
},
7198
range: [0, 11],
7199
loc: {
7200
start: { line: 1, column: 0 },
7201
end: { line: 1, column: 11 }
7202
}
7203
},
7204
range: [0, 11],
7205
loc: {
7206
start: { line: 1, column: 0 },
7207
end: { line: 1, column: 11 }
7208
}
7209
},
7210
7211
'universe.true': {
7212
type: 'ExpressionStatement',
7213
expression: {
7214
type: 'MemberExpression',
7215
computed: false,
7216
object: {
7217
type: 'Identifier',
7218
name: 'universe',
7219
range: [0, 8],
7220
loc: {
7221
start: { line: 1, column: 0 },
7222
end: { line: 1, column: 8 }
7223
}
7224
},
7225
property: {
7226
type: 'Identifier',
7227
name: 'true',
7228
range: [9, 13],
7229
loc: {
7230
start: { line: 1, column: 9 },
7231
end: { line: 1, column: 13 }
7232
}
7233
},
7234
range: [0, 13],
7235
loc: {
7236
start: { line: 1, column: 0 },
7237
end: { line: 1, column: 13 }
7238
}
7239
},
7240
range: [0, 13],
7241
loc: {
7242
start: { line: 1, column: 0 },
7243
end: { line: 1, column: 13 }
7244
}
7245
},
7246
7247
'universe.false': {
7248
type: 'ExpressionStatement',
7249
expression: {
7250
type: 'MemberExpression',
7251
computed: false,
7252
object: {
7253
type: 'Identifier',
7254
name: 'universe',
7255
range: [0, 8],
7256
loc: {
7257
start: { line: 1, column: 0 },
7258
end: { line: 1, column: 8 }
7259
}
7260
},
7261
property: {
7262
type: 'Identifier',
7263
name: 'false',
7264
range: [9, 14],
7265
loc: {
7266
start: { line: 1, column: 9 },
7267
end: { line: 1, column: 14 }
7268
}
7269
},
7270
range: [0, 14],
7271
loc: {
7272
start: { line: 1, column: 0 },
7273
end: { line: 1, column: 14 }
7274
}
7275
},
7276
range: [0, 14],
7277
loc: {
7278
start: { line: 1, column: 0 },
7279
end: { line: 1, column: 14 }
7280
}
7281
},
7282
7283
'universe.null': {
7284
type: 'ExpressionStatement',
7285
expression: {
7286
type: 'MemberExpression',
7287
computed: false,
7288
object: {
7289
type: 'Identifier',
7290
name: 'universe',
7291
range: [0, 8],
7292
loc: {
7293
start: { line: 1, column: 0 },
7294
end: { line: 1, column: 8 }
7295
}
7296
},
7297
property: {
7298
type: 'Identifier',
7299
name: 'null',
7300
range: [9, 13],
7301
loc: {
7302
start: { line: 1, column: 9 },
7303
end: { line: 1, column: 13 }
7304
}
7305
},
7306
range: [0, 13],
7307
loc: {
7308
start: { line: 1, column: 0 },
7309
end: { line: 1, column: 13 }
7310
}
7311
},
7312
range: [0, 13],
7313
loc: {
7314
start: { line: 1, column: 0 },
7315
end: { line: 1, column: 13 }
7316
}
7317
}
7318
7319
},
7320
7321
'Postfix Expressions': {
7322
7323
'x++': {
7324
type: 'ExpressionStatement',
7325
expression: {
7326
type: 'UpdateExpression',
7327
operator: '++',
7328
argument: {
7329
type: 'Identifier',
7330
name: 'x',
7331
range: [0, 1],
7332
loc: {
7333
start: { line: 1, column: 0 },
7334
end: { line: 1, column: 1 }
7335
}
7336
},
7337
prefix: false,
7338
range: [0, 3],
7339
loc: {
7340
start: { line: 1, column: 0 },
7341
end: { line: 1, column: 3 }
7342
}
7343
},
7344
range: [0, 3],
7345
loc: {
7346
start: { line: 1, column: 0 },
7347
end: { line: 1, column: 3 }
7348
}
7349
},
7350
7351
'x--': {
7352
type: 'ExpressionStatement',
7353
expression: {
7354
type: 'UpdateExpression',
7355
operator: '--',
7356
argument: {
7357
type: 'Identifier',
7358
name: 'x',
7359
range: [0, 1],
7360
loc: {
7361
start: { line: 1, column: 0 },
7362
end: { line: 1, column: 1 }
7363
}
7364
},
7365
prefix: false,
7366
range: [0, 3],
7367
loc: {
7368
start: { line: 1, column: 0 },
7369
end: { line: 1, column: 3 }
7370
}
7371
},
7372
range: [0, 3],
7373
loc: {
7374
start: { line: 1, column: 0 },
7375
end: { line: 1, column: 3 }
7376
}
7377
},
7378
7379
'eval++': {
7380
type: 'ExpressionStatement',
7381
expression: {
7382
type: 'UpdateExpression',
7383
operator: '++',
7384
argument: {
7385
type: 'Identifier',
7386
name: 'eval',
7387
range: [0, 4],
7388
loc: {
7389
start: { line: 1, column: 0 },
7390
end: { line: 1, column: 4 }
7391
}
7392
},
7393
prefix: false,
7394
range: [0, 6],
7395
loc: {
7396
start: { line: 1, column: 0 },
7397
end: { line: 1, column: 6 }
7398
}
7399
},
7400
range: [0, 6],
7401
loc: {
7402
start: { line: 1, column: 0 },
7403
end: { line: 1, column: 6 }
7404
}
7405
},
7406
7407
'eval--': {
7408
type: 'ExpressionStatement',
7409
expression: {
7410
type: 'UpdateExpression',
7411
operator: '--',
7412
argument: {
7413
type: 'Identifier',
7414
name: 'eval',
7415
range: [0, 4],
7416
loc: {
7417
start: { line: 1, column: 0 },
7418
end: { line: 1, column: 4 }
7419
}
7420
},
7421
prefix: false,
7422
range: [0, 6],
7423
loc: {
7424
start: { line: 1, column: 0 },
7425
end: { line: 1, column: 6 }
7426
}
7427
},
7428
range: [0, 6],
7429
loc: {
7430
start: { line: 1, column: 0 },
7431
end: { line: 1, column: 6 }
7432
}
7433
},
7434
7435
'arguments++': {
7436
type: 'ExpressionStatement',
7437
expression: {
7438
type: 'UpdateExpression',
7439
operator: '++',
7440
argument: {
7441
type: 'Identifier',
7442
name: 'arguments',
7443
range: [0, 9],
7444
loc: {
7445
start: { line: 1, column: 0 },
7446
end: { line: 1, column: 9 }
7447
}
7448
},
7449
prefix: false,
7450
range: [0, 11],
7451
loc: {
7452
start: { line: 1, column: 0 },
7453
end: { line: 1, column: 11 }
7454
}
7455
},
7456
range: [0, 11],
7457
loc: {
7458
start: { line: 1, column: 0 },
7459
end: { line: 1, column: 11 }
7460
}
7461
},
7462
7463
'arguments--': {
7464
type: 'ExpressionStatement',
7465
expression: {
7466
type: 'UpdateExpression',
7467
operator: '--',
7468
argument: {
7469
type: 'Identifier',
7470
name: 'arguments',
7471
range: [0, 9],
7472
loc: {
7473
start: { line: 1, column: 0 },
7474
end: { line: 1, column: 9 }
7475
}
7476
},
7477
prefix: false,
7478
range: [0, 11],
7479
loc: {
7480
start: { line: 1, column: 0 },
7481
end: { line: 1, column: 11 }
7482
}
7483
},
7484
range: [0, 11],
7485
loc: {
7486
start: { line: 1, column: 0 },
7487
end: { line: 1, column: 11 }
7488
}
7489
}
7490
7491
},
7492
7493
'Unary Operators': {
7494
7495
'++x': {
7496
type: 'ExpressionStatement',
7497
expression: {
7498
type: 'UpdateExpression',
7499
operator: '++',
7500
argument: {
7501
type: 'Identifier',
7502
name: 'x',
7503
range: [2, 3],
7504
loc: {
7505
start: { line: 1, column: 2 },
7506
end: { line: 1, column: 3 }
7507
}
7508
},
7509
prefix: true,
7510
range: [0, 3],
7511
loc: {
7512
start: { line: 1, column: 0 },
7513
end: { line: 1, column: 3 }
7514
}
7515
},
7516
range: [0, 3],
7517
loc: {
7518
start: { line: 1, column: 0 },
7519
end: { line: 1, column: 3 }
7520
}
7521
},
7522
7523
'--x': {
7524
type: 'ExpressionStatement',
7525
expression: {
7526
type: 'UpdateExpression',
7527
operator: '--',
7528
argument: {
7529
type: 'Identifier',
7530
name: 'x',
7531
range: [2, 3],
7532
loc: {
7533
start: { line: 1, column: 2 },
7534
end: { line: 1, column: 3 }
7535
}
7536
},
7537
prefix: true,
7538
range: [0, 3],
7539
loc: {
7540
start: { line: 1, column: 0 },
7541
end: { line: 1, column: 3 }
7542
}
7543
},
7544
range: [0, 3],
7545
loc: {
7546
start: { line: 1, column: 0 },
7547
end: { line: 1, column: 3 }
7548
}
7549
},
7550
7551
'++eval': {
7552
type: 'ExpressionStatement',
7553
expression: {
7554
type: 'UpdateExpression',
7555
operator: '++',
7556
argument: {
7557
type: 'Identifier',
7558
name: 'eval',
7559
range: [2, 6],
7560
loc: {
7561
start: { line: 1, column: 2 },
7562
end: { line: 1, column: 6 }
7563
}
7564
},
7565
prefix: true,
7566
range: [0, 6],
7567
loc: {
7568
start: { line: 1, column: 0 },
7569
end: { line: 1, column: 6 }
7570
}
7571
},
7572
range: [0, 6],
7573
loc: {
7574
start: { line: 1, column: 0 },
7575
end: { line: 1, column: 6 }
7576
}
7577
},
7578
7579
'--eval': {
7580
type: 'ExpressionStatement',
7581
expression: {
7582
type: 'UpdateExpression',
7583
operator: '--',
7584
argument: {
7585
type: 'Identifier',
7586
name: 'eval',
7587
range: [2, 6],
7588
loc: {
7589
start: { line: 1, column: 2 },
7590
end: { line: 1, column: 6 }
7591
}
7592
},
7593
prefix: true,
7594
range: [0, 6],
7595
loc: {
7596
start: { line: 1, column: 0 },
7597
end: { line: 1, column: 6 }
7598
}
7599
},
7600
range: [0, 6],
7601
loc: {
7602
start: { line: 1, column: 0 },
7603
end: { line: 1, column: 6 }
7604
}
7605
},
7606
7607
'++arguments': {
7608
type: 'ExpressionStatement',
7609
expression: {
7610
type: 'UpdateExpression',
7611
operator: '++',
7612
argument: {
7613
type: 'Identifier',
7614
name: 'arguments',
7615
range: [2, 11],
7616
loc: {
7617
start: { line: 1, column: 2 },
7618
end: { line: 1, column: 11 }
7619
}
7620
},
7621
prefix: true,
7622
range: [0, 11],
7623
loc: {
7624
start: { line: 1, column: 0 },
7625
end: { line: 1, column: 11 }
7626
}
7627
},
7628
range: [0, 11],
7629
loc: {
7630
start: { line: 1, column: 0 },
7631
end: { line: 1, column: 11 }
7632
}
7633
},
7634
7635
'--arguments': {
7636
type: 'ExpressionStatement',
7637
expression: {
7638
type: 'UpdateExpression',
7639
operator: '--',
7640
argument: {
7641
type: 'Identifier',
7642
name: 'arguments',
7643
range: [2, 11],
7644
loc: {
7645
start: { line: 1, column: 2 },
7646
end: { line: 1, column: 11 }
7647
}
7648
},
7649
prefix: true,
7650
range: [0, 11],
7651
loc: {
7652
start: { line: 1, column: 0 },
7653
end: { line: 1, column: 11 }
7654
}
7655
},
7656
range: [0, 11],
7657
loc: {
7658
start: { line: 1, column: 0 },
7659
end: { line: 1, column: 11 }
7660
}
7661
},
7662
7663
'+x': {
7664
type: 'ExpressionStatement',
7665
expression: {
7666
type: 'UnaryExpression',
7667
operator: '+',
7668
argument: {
7669
type: 'Identifier',
7670
name: 'x',
7671
range: [1, 2],
7672
loc: {
7673
start: { line: 1, column: 1 },
7674
end: { line: 1, column: 2 }
7675
}
7676
},
7677
prefix: true,
7678
range: [0, 2],
7679
loc: {
7680
start: { line: 1, column: 0 },
7681
end: { line: 1, column: 2 }
7682
}
7683
},
7684
range: [0, 2],
7685
loc: {
7686
start: { line: 1, column: 0 },
7687
end: { line: 1, column: 2 }
7688
}
7689
},
7690
7691
'-x': {
7692
type: 'ExpressionStatement',
7693
expression: {
7694
type: 'UnaryExpression',
7695
operator: '-',
7696
argument: {
7697
type: 'Identifier',
7698
name: 'x',
7699
range: [1, 2],
7700
loc: {
7701
start: { line: 1, column: 1 },
7702
end: { line: 1, column: 2 }
7703
}
7704
},
7705
prefix: true,
7706
range: [0, 2],
7707
loc: {
7708
start: { line: 1, column: 0 },
7709
end: { line: 1, column: 2 }
7710
}
7711
},
7712
range: [0, 2],
7713
loc: {
7714
start: { line: 1, column: 0 },
7715
end: { line: 1, column: 2 }
7716
}
7717
},
7718
7719
'~x': {
7720
type: 'ExpressionStatement',
7721
expression: {
7722
type: 'UnaryExpression',
7723
operator: '~',
7724
argument: {
7725
type: 'Identifier',
7726
name: 'x',
7727
range: [1, 2],
7728
loc: {
7729
start: { line: 1, column: 1 },
7730
end: { line: 1, column: 2 }
7731
}
7732
},
7733
prefix: true,
7734
range: [0, 2],
7735
loc: {
7736
start: { line: 1, column: 0 },
7737
end: { line: 1, column: 2 }
7738
}
7739
},
7740
range: [0, 2],
7741
loc: {
7742
start: { line: 1, column: 0 },
7743
end: { line: 1, column: 2 }
7744
}
7745
},
7746
7747
'!x': {
7748
type: 'ExpressionStatement',
7749
expression: {
7750
type: 'UnaryExpression',
7751
operator: '!',
7752
argument: {
7753
type: 'Identifier',
7754
name: 'x',
7755
range: [1, 2],
7756
loc: {
7757
start: { line: 1, column: 1 },
7758
end: { line: 1, column: 2 }
7759
}
7760
},
7761
prefix: true,
7762
range: [0, 2],
7763
loc: {
7764
start: { line: 1, column: 0 },
7765
end: { line: 1, column: 2 }
7766
}
7767
},
7768
range: [0, 2],
7769
loc: {
7770
start: { line: 1, column: 0 },
7771
end: { line: 1, column: 2 }
7772
}
7773
},
7774
7775
'void x': {
7776
type: 'ExpressionStatement',
7777
expression: {
7778
type: 'UnaryExpression',
7779
operator: 'void',
7780
argument: {
7781
type: 'Identifier',
7782
name: 'x',
7783
range: [5, 6],
7784
loc: {
7785
start: { line: 1, column: 5 },
7786
end: { line: 1, column: 6 }
7787
}
7788
},
7789
prefix: true,
7790
range: [0, 6],
7791
loc: {
7792
start: { line: 1, column: 0 },
7793
end: { line: 1, column: 6 }
7794
}
7795
},
7796
range: [0, 6],
7797
loc: {
7798
start: { line: 1, column: 0 },
7799
end: { line: 1, column: 6 }
7800
}
7801
},
7802
7803
'delete x': {
7804
type: 'ExpressionStatement',
7805
expression: {
7806
type: 'UnaryExpression',
7807
operator: 'delete',
7808
argument: {
7809
type: 'Identifier',
7810
name: 'x',
7811
range: [7, 8],
7812
loc: {
7813
start: { line: 1, column: 7 },
7814
end: { line: 1, column: 8 }
7815
}
7816
},
7817
prefix: true,
7818
range: [0, 8],
7819
loc: {
7820
start: { line: 1, column: 0 },
7821
end: { line: 1, column: 8 }
7822
}
7823
},
7824
range: [0, 8],
7825
loc: {
7826
start: { line: 1, column: 0 },
7827
end: { line: 1, column: 8 }
7828
}
7829
},
7830
7831
'typeof x': {
7832
type: 'ExpressionStatement',
7833
expression: {
7834
type: 'UnaryExpression',
7835
operator: 'typeof',
7836
argument: {
7837
type: 'Identifier',
7838
name: 'x',
7839
range: [7, 8],
7840
loc: {
7841
start: { line: 1, column: 7 },
7842
end: { line: 1, column: 8 }
7843
}
7844
},
7845
prefix: true,
7846
range: [0, 8],
7847
loc: {
7848
start: { line: 1, column: 0 },
7849
end: { line: 1, column: 8 }
7850
}
7851
},
7852
range: [0, 8],
7853
loc: {
7854
start: { line: 1, column: 0 },
7855
end: { line: 1, column: 8 }
7856
}
7857
}
7858
7859
},
7860
7861
'Multiplicative Operators': {
7862
7863
'x * y': {
7864
type: 'ExpressionStatement',
7865
expression: {
7866
type: 'BinaryExpression',
7867
operator: '*',
7868
left: {
7869
type: 'Identifier',
7870
name: 'x',
7871
range: [0, 1],
7872
loc: {
7873
start: { line: 1, column: 0 },
7874
end: { line: 1, column: 1 }
7875
}
7876
},
7877
right: {
7878
type: 'Identifier',
7879
name: 'y',
7880
range: [4, 5],
7881
loc: {
7882
start: { line: 1, column: 4 },
7883
end: { line: 1, column: 5 }
7884
}
7885
},
7886
range: [0, 5],
7887
loc: {
7888
start: { line: 1, column: 0 },
7889
end: { line: 1, column: 5 }
7890
}
7891
},
7892
range: [0, 5],
7893
loc: {
7894
start: { line: 1, column: 0 },
7895
end: { line: 1, column: 5 }
7896
}
7897
},
7898
7899
'x / y': {
7900
type: 'ExpressionStatement',
7901
expression: {
7902
type: 'BinaryExpression',
7903
operator: '/',
7904
left: {
7905
type: 'Identifier',
7906
name: 'x',
7907
range: [0, 1],
7908
loc: {
7909
start: { line: 1, column: 0 },
7910
end: { line: 1, column: 1 }
7911
}
7912
},
7913
right: {
7914
type: 'Identifier',
7915
name: 'y',
7916
range: [4, 5],
7917
loc: {
7918
start: { line: 1, column: 4 },
7919
end: { line: 1, column: 5 }
7920
}
7921
},
7922
range: [0, 5],
7923
loc: {
7924
start: { line: 1, column: 0 },
7925
end: { line: 1, column: 5 }
7926
}
7927
},
7928
range: [0, 5],
7929
loc: {
7930
start: { line: 1, column: 0 },
7931
end: { line: 1, column: 5 }
7932
}
7933
},
7934
7935
'x % y': {
7936
type: 'ExpressionStatement',
7937
expression: {
7938
type: 'BinaryExpression',
7939
operator: '%',
7940
left: {
7941
type: 'Identifier',
7942
name: 'x',
7943
range: [0, 1],
7944
loc: {
7945
start: { line: 1, column: 0 },
7946
end: { line: 1, column: 1 }
7947
}
7948
},
7949
right: {
7950
type: 'Identifier',
7951
name: 'y',
7952
range: [4, 5],
7953
loc: {
7954
start: { line: 1, column: 4 },
7955
end: { line: 1, column: 5 }
7956
}
7957
},
7958
range: [0, 5],
7959
loc: {
7960
start: { line: 1, column: 0 },
7961
end: { line: 1, column: 5 }
7962
}
7963
},
7964
range: [0, 5],
7965
loc: {
7966
start: { line: 1, column: 0 },
7967
end: { line: 1, column: 5 }
7968
}
7969
}
7970
7971
},
7972
7973
'Additive Operators': {
7974
7975
'x + y': {
7976
type: 'ExpressionStatement',
7977
expression: {
7978
type: 'BinaryExpression',
7979
operator: '+',
7980
left: {
7981
type: 'Identifier',
7982
name: 'x',
7983
range: [0, 1],
7984
loc: {
7985
start: { line: 1, column: 0 },
7986
end: { line: 1, column: 1 }
7987
}
7988
},
7989
right: {
7990
type: 'Identifier',
7991
name: 'y',
7992
range: [4, 5],
7993
loc: {
7994
start: { line: 1, column: 4 },
7995
end: { line: 1, column: 5 }
7996
}
7997
},
7998
range: [0, 5],
7999
loc: {
8000
start: { line: 1, column: 0 },
8001
end: { line: 1, column: 5 }
8002
}
8003
},
8004
range: [0, 5],
8005
loc: {
8006
start: { line: 1, column: 0 },
8007
end: { line: 1, column: 5 }
8008
}
8009
},
8010
8011
'x - y': {
8012
type: 'ExpressionStatement',
8013
expression: {
8014
type: 'BinaryExpression',
8015
operator: '-',
8016
left: {
8017
type: 'Identifier',
8018
name: 'x',
8019
range: [0, 1],
8020
loc: {
8021
start: { line: 1, column: 0 },
8022
end: { line: 1, column: 1 }
8023
}
8024
},
8025
right: {
8026
type: 'Identifier',
8027
name: 'y',
8028
range: [4, 5],
8029
loc: {
8030
start: { line: 1, column: 4 },
8031
end: { line: 1, column: 5 }
8032
}
8033
},
8034
range: [0, 5],
8035
loc: {
8036
start: { line: 1, column: 0 },
8037
end: { line: 1, column: 5 }
8038
}
8039
},
8040
range: [0, 5],
8041
loc: {
8042
start: { line: 1, column: 0 },
8043
end: { line: 1, column: 5 }
8044
}
8045
},
8046
8047
'"use strict" + 42': {
8048
type: 'ExpressionStatement',
8049
expression: {
8050
type: 'BinaryExpression',
8051
operator: '+',
8052
left: {
8053
type: 'Literal',
8054
value: 'use strict',
8055
raw: '"use strict"',
8056
range: [0, 12],
8057
loc: {
8058
start: { line: 1, column: 0 },
8059
end: { line: 1, column: 12 }
8060
}
8061
},
8062
right: {
8063
type: 'Literal',
8064
value: 42,
8065
raw: '42',
8066
range: [15, 17],
8067
loc: {
8068
start: { line: 1, column: 15 },
8069
end: { line: 1, column: 17 }
8070
}
8071
},
8072
range: [0, 17],
8073
loc: {
8074
start: { line: 1, column: 0 },
8075
end: { line: 1, column: 17 }
8076
}
8077
},
8078
range: [0, 17],
8079
loc: {
8080
start: { line: 1, column: 0 },
8081
end: { line: 1, column: 17 }
8082
}
8083
}
8084
8085
},
8086
8087
'Bitwise Shift Operator': {
8088
8089
'x << y': {
8090
type: 'ExpressionStatement',
8091
expression: {
8092
type: 'BinaryExpression',
8093
operator: '<<',
8094
left: {
8095
type: 'Identifier',
8096
name: 'x',
8097
range: [0, 1],
8098
loc: {
8099
start: { line: 1, column: 0 },
8100
end: { line: 1, column: 1 }
8101
}
8102
},
8103
right: {
8104
type: 'Identifier',
8105
name: 'y',
8106
range: [5, 6],
8107
loc: {
8108
start: { line: 1, column: 5 },
8109
end: { line: 1, column: 6 }
8110
}
8111
},
8112
range: [0, 6],
8113
loc: {
8114
start: { line: 1, column: 0 },
8115
end: { line: 1, column: 6 }
8116
}
8117
},
8118
range: [0, 6],
8119
loc: {
8120
start: { line: 1, column: 0 },
8121
end: { line: 1, column: 6 }
8122
}
8123
},
8124
8125
'x >> y': {
8126
type: 'ExpressionStatement',
8127
expression: {
8128
type: 'BinaryExpression',
8129
operator: '>>',
8130
left: {
8131
type: 'Identifier',
8132
name: 'x',
8133
range: [0, 1],
8134
loc: {
8135
start: { line: 1, column: 0 },
8136
end: { line: 1, column: 1 }
8137
}
8138
},
8139
right: {
8140
type: 'Identifier',
8141
name: 'y',
8142
range: [5, 6],
8143
loc: {
8144
start: { line: 1, column: 5 },
8145
end: { line: 1, column: 6 }
8146
}
8147
},
8148
range: [0, 6],
8149
loc: {
8150
start: { line: 1, column: 0 },
8151
end: { line: 1, column: 6 }
8152
}
8153
},
8154
range: [0, 6],
8155
loc: {
8156
start: { line: 1, column: 0 },
8157
end: { line: 1, column: 6 }
8158
}
8159
},
8160
8161
'x >>> y': {
8162
type: 'ExpressionStatement',
8163
expression: {
8164
type: 'BinaryExpression',
8165
operator: '>>>',
8166
left: {
8167
type: 'Identifier',
8168
name: 'x',
8169
range: [0, 1],
8170
loc: {
8171
start: { line: 1, column: 0 },
8172
end: { line: 1, column: 1 }
8173
}
8174
},
8175
right: {
8176
type: 'Identifier',
8177
name: 'y',
8178
range: [6, 7],
8179
loc: {
8180
start: { line: 1, column: 6 },
8181
end: { line: 1, column: 7 }
8182
}
8183
},
8184
range: [0, 7],
8185
loc: {
8186
start: { line: 1, column: 0 },
8187
end: { line: 1, column: 7 }
8188
}
8189
},
8190
range: [0, 7],
8191
loc: {
8192
start: { line: 1, column: 0 },
8193
end: { line: 1, column: 7 }
8194
}
8195
}
8196
8197
},
8198
8199
'Relational Operators': {
8200
8201
'x < y': {
8202
type: 'ExpressionStatement',
8203
expression: {
8204
type: 'BinaryExpression',
8205
operator: '<',
8206
left: {
8207
type: 'Identifier',
8208
name: 'x',
8209
range: [0, 1],
8210
loc: {
8211
start: { line: 1, column: 0 },
8212
end: { line: 1, column: 1 }
8213
}
8214
},
8215
right: {
8216
type: 'Identifier',
8217
name: 'y',
8218
range: [4, 5],
8219
loc: {
8220
start: { line: 1, column: 4 },
8221
end: { line: 1, column: 5 }
8222
}
8223
},
8224
range: [0, 5],
8225
loc: {
8226
start: { line: 1, column: 0 },
8227
end: { line: 1, column: 5 }
8228
}
8229
},
8230
range: [0, 5],
8231
loc: {
8232
start: { line: 1, column: 0 },
8233
end: { line: 1, column: 5 }
8234
}
8235
},
8236
8237
'x > y': {
8238
type: 'ExpressionStatement',
8239
expression: {
8240
type: 'BinaryExpression',
8241
operator: '>',
8242
left: {
8243
type: 'Identifier',
8244
name: 'x',
8245
range: [0, 1],
8246
loc: {
8247
start: { line: 1, column: 0 },
8248
end: { line: 1, column: 1 }
8249
}
8250
},
8251
right: {
8252
type: 'Identifier',
8253
name: 'y',
8254
range: [4, 5],
8255
loc: {
8256
start: { line: 1, column: 4 },
8257
end: { line: 1, column: 5 }
8258
}
8259
},
8260
range: [0, 5],
8261
loc: {
8262
start: { line: 1, column: 0 },
8263
end: { line: 1, column: 5 }
8264
}
8265
},
8266
range: [0, 5],
8267
loc: {
8268
start: { line: 1, column: 0 },
8269
end: { line: 1, column: 5 }
8270
}
8271
},
8272
8273
'x <= y': {
8274
type: 'ExpressionStatement',
8275
expression: {
8276
type: 'BinaryExpression',
8277
operator: '<=',
8278
left: {
8279
type: 'Identifier',
8280
name: 'x',
8281
range: [0, 1],
8282
loc: {
8283
start: { line: 1, column: 0 },
8284
end: { line: 1, column: 1 }
8285
}
8286
},
8287
right: {
8288
type: 'Identifier',
8289
name: 'y',
8290
range: [5, 6],
8291
loc: {
8292
start: { line: 1, column: 5 },
8293
end: { line: 1, column: 6 }
8294
}
8295
},
8296
range: [0, 6],
8297
loc: {
8298
start: { line: 1, column: 0 },
8299
end: { line: 1, column: 6 }
8300
}
8301
},
8302
range: [0, 6],
8303
loc: {
8304
start: { line: 1, column: 0 },
8305
end: { line: 1, column: 6 }
8306
}
8307
},
8308
8309
'x >= y': {
8310
type: 'ExpressionStatement',
8311
expression: {
8312
type: 'BinaryExpression',
8313
operator: '>=',
8314
left: {
8315
type: 'Identifier',
8316
name: 'x',
8317
range: [0, 1],
8318
loc: {
8319
start: { line: 1, column: 0 },
8320
end: { line: 1, column: 1 }
8321
}
8322
},
8323
right: {
8324
type: 'Identifier',
8325
name: 'y',
8326
range: [5, 6],
8327
loc: {
8328
start: { line: 1, column: 5 },
8329
end: { line: 1, column: 6 }
8330
}
8331
},
8332
range: [0, 6],
8333
loc: {
8334
start: { line: 1, column: 0 },
8335
end: { line: 1, column: 6 }
8336
}
8337
},
8338
range: [0, 6],
8339
loc: {
8340
start: { line: 1, column: 0 },
8341
end: { line: 1, column: 6 }
8342
}
8343
},
8344
8345
'x in y': {
8346
type: 'ExpressionStatement',
8347
expression: {
8348
type: 'BinaryExpression',
8349
operator: 'in',
8350
left: {
8351
type: 'Identifier',
8352
name: 'x',
8353
range: [0, 1],
8354
loc: {
8355
start: { line: 1, column: 0 },
8356
end: { line: 1, column: 1 }
8357
}
8358
},
8359
right: {
8360
type: 'Identifier',
8361
name: 'y',
8362
range: [5, 6],
8363
loc: {
8364
start: { line: 1, column: 5 },
8365
end: { line: 1, column: 6 }
8366
}
8367
},
8368
range: [0, 6],
8369
loc: {
8370
start: { line: 1, column: 0 },
8371
end: { line: 1, column: 6 }
8372
}
8373
},
8374
range: [0, 6],
8375
loc: {
8376
start: { line: 1, column: 0 },
8377
end: { line: 1, column: 6 }
8378
}
8379
},
8380
8381
'x instanceof y': {
8382
type: 'ExpressionStatement',
8383
expression: {
8384
type: 'BinaryExpression',
8385
operator: 'instanceof',
8386
left: {
8387
type: 'Identifier',
8388
name: 'x',
8389
range: [0, 1],
8390
loc: {
8391
start: { line: 1, column: 0 },
8392
end: { line: 1, column: 1 }
8393
}
8394
},
8395
right: {
8396
type: 'Identifier',
8397
name: 'y',
8398
range: [13, 14],
8399
loc: {
8400
start: { line: 1, column: 13 },
8401
end: { line: 1, column: 14 }
8402
}
8403
},
8404
range: [0, 14],
8405
loc: {
8406
start: { line: 1, column: 0 },
8407
end: { line: 1, column: 14 }
8408
}
8409
},
8410
range: [0, 14],
8411
loc: {
8412
start: { line: 1, column: 0 },
8413
end: { line: 1, column: 14 }
8414
}
8415
},
8416
8417
'x < y < z': {
8418
type: 'ExpressionStatement',
8419
expression: {
8420
type: 'BinaryExpression',
8421
operator: '<',
8422
left: {
8423
type: 'BinaryExpression',
8424
operator: '<',
8425
left: {
8426
type: 'Identifier',
8427
name: 'x',
8428
range: [0, 1],
8429
loc: {
8430
start: { line: 1, column: 0 },
8431
end: { line: 1, column: 1 }
8432
}
8433
},
8434
right: {
8435
type: 'Identifier',
8436
name: 'y',
8437
range: [4, 5],
8438
loc: {
8439
start: { line: 1, column: 4 },
8440
end: { line: 1, column: 5 }
8441
}
8442
},
8443
range: [0, 5],
8444
loc: {
8445
start: { line: 1, column: 0 },
8446
end: { line: 1, column: 5 }
8447
}
8448
},
8449
right: {
8450
type: 'Identifier',
8451
name: 'z',
8452
range: [8, 9],
8453
loc: {
8454
start: { line: 1, column: 8 },
8455
end: { line: 1, column: 9 }
8456
}
8457
},
8458
range: [0, 9],
8459
loc: {
8460
start: { line: 1, column: 0 },
8461
end: { line: 1, column: 9 }
8462
}
8463
},
8464
range: [0, 9],
8465
loc: {
8466
start: { line: 1, column: 0 },
8467
end: { line: 1, column: 9 }
8468
}
8469
}
8470
8471
},
8472
8473
'Equality Operators': {
8474
8475
'x == y': {
8476
type: 'ExpressionStatement',
8477
expression: {
8478
type: 'BinaryExpression',
8479
operator: '==',
8480
left: {
8481
type: 'Identifier',
8482
name: 'x',
8483
range: [0, 1],
8484
loc: {
8485
start: { line: 1, column: 0 },
8486
end: { line: 1, column: 1 }
8487
}
8488
},
8489
right: {
8490
type: 'Identifier',
8491
name: 'y',
8492
range: [5, 6],
8493
loc: {
8494
start: { line: 1, column: 5 },
8495
end: { line: 1, column: 6 }
8496
}
8497
},
8498
range: [0, 6],
8499
loc: {
8500
start: { line: 1, column: 0 },
8501
end: { line: 1, column: 6 }
8502
}
8503
},
8504
range: [0, 6],
8505
loc: {
8506
start: { line: 1, column: 0 },
8507
end: { line: 1, column: 6 }
8508
}
8509
},
8510
8511
'x != y': {
8512
type: 'ExpressionStatement',
8513
expression: {
8514
type: 'BinaryExpression',
8515
operator: '!=',
8516
left: {
8517
type: 'Identifier',
8518
name: 'x',
8519
range: [0, 1],
8520
loc: {
8521
start: { line: 1, column: 0 },
8522
end: { line: 1, column: 1 }
8523
}
8524
},
8525
right: {
8526
type: 'Identifier',
8527
name: 'y',
8528
range: [5, 6],
8529
loc: {
8530
start: { line: 1, column: 5 },
8531
end: { line: 1, column: 6 }
8532
}
8533
},
8534
range: [0, 6],
8535
loc: {
8536
start: { line: 1, column: 0 },
8537
end: { line: 1, column: 6 }
8538
}
8539
},
8540
range: [0, 6],
8541
loc: {
8542
start: { line: 1, column: 0 },
8543
end: { line: 1, column: 6 }
8544
}
8545
},
8546
8547
'x === y': {
8548
type: 'ExpressionStatement',
8549
expression: {
8550
type: 'BinaryExpression',
8551
operator: '===',
8552
left: {
8553
type: 'Identifier',
8554
name: 'x',
8555
range: [0, 1],
8556
loc: {
8557
start: { line: 1, column: 0 },
8558
end: { line: 1, column: 1 }
8559
}
8560
},
8561
right: {
8562
type: 'Identifier',
8563
name: 'y',
8564
range: [6, 7],
8565
loc: {
8566
start: { line: 1, column: 6 },
8567
end: { line: 1, column: 7 }
8568
}
8569
},
8570
range: [0, 7],
8571
loc: {
8572
start: { line: 1, column: 0 },
8573
end: { line: 1, column: 7 }
8574
}
8575
},
8576
range: [0, 7],
8577
loc: {
8578
start: { line: 1, column: 0 },
8579
end: { line: 1, column: 7 }
8580
}
8581
},
8582
8583
'x !== y': {
8584
type: 'ExpressionStatement',
8585
expression: {
8586
type: 'BinaryExpression',
8587
operator: '!==',
8588
left: {
8589
type: 'Identifier',
8590
name: 'x',
8591
range: [0, 1],
8592
loc: {
8593
start: { line: 1, column: 0 },
8594
end: { line: 1, column: 1 }
8595
}
8596
},
8597
right: {
8598
type: 'Identifier',
8599
name: 'y',
8600
range: [6, 7],
8601
loc: {
8602
start: { line: 1, column: 6 },
8603
end: { line: 1, column: 7 }
8604
}
8605
},
8606
range: [0, 7],
8607
loc: {
8608
start: { line: 1, column: 0 },
8609
end: { line: 1, column: 7 }
8610
}
8611
},
8612
range: [0, 7],
8613
loc: {
8614
start: { line: 1, column: 0 },
8615
end: { line: 1, column: 7 }
8616
}
8617
}
8618
8619
},
8620
8621
'Binary Bitwise Operators': {
8622
8623
'x & y': {
8624
type: 'ExpressionStatement',
8625
expression: {
8626
type: 'BinaryExpression',
8627
operator: '&',
8628
left: {
8629
type: 'Identifier',
8630
name: 'x',
8631
range: [0, 1],
8632
loc: {
8633
start: { line: 1, column: 0 },
8634
end: { line: 1, column: 1 }
8635
}
8636
},
8637
right: {
8638
type: 'Identifier',
8639
name: 'y',
8640
range: [4, 5],
8641
loc: {
8642
start: { line: 1, column: 4 },
8643
end: { line: 1, column: 5 }
8644
}
8645
},
8646
range: [0, 5],
8647
loc: {
8648
start: { line: 1, column: 0 },
8649
end: { line: 1, column: 5 }
8650
}
8651
},
8652
range: [0, 5],
8653
loc: {
8654
start: { line: 1, column: 0 },
8655
end: { line: 1, column: 5 }
8656
}
8657
},
8658
8659
'x ^ y': {
8660
type: 'ExpressionStatement',
8661
expression: {
8662
type: 'BinaryExpression',
8663
operator: '^',
8664
left: {
8665
type: 'Identifier',
8666
name: 'x',
8667
range: [0, 1],
8668
loc: {
8669
start: { line: 1, column: 0 },
8670
end: { line: 1, column: 1 }
8671
}
8672
},
8673
right: {
8674
type: 'Identifier',
8675
name: 'y',
8676
range: [4, 5],
8677
loc: {
8678
start: { line: 1, column: 4 },
8679
end: { line: 1, column: 5 }
8680
}
8681
},
8682
range: [0, 5],
8683
loc: {
8684
start: { line: 1, column: 0 },
8685
end: { line: 1, column: 5 }
8686
}
8687
},
8688
range: [0, 5],
8689
loc: {
8690
start: { line: 1, column: 0 },
8691
end: { line: 1, column: 5 }
8692
}
8693
},
8694
8695
'x | y': {
8696
type: 'ExpressionStatement',
8697
expression: {
8698
type: 'BinaryExpression',
8699
operator: '|',
8700
left: {
8701
type: 'Identifier',
8702
name: 'x',
8703
range: [0, 1],
8704
loc: {
8705
start: { line: 1, column: 0 },
8706
end: { line: 1, column: 1 }
8707
}
8708
},
8709
right: {
8710
type: 'Identifier',
8711
name: 'y',
8712
range: [4, 5],
8713
loc: {
8714
start: { line: 1, column: 4 },
8715
end: { line: 1, column: 5 }
8716
}
8717
},
8718
range: [0, 5],
8719
loc: {
8720
start: { line: 1, column: 0 },
8721
end: { line: 1, column: 5 }
8722
}
8723
},
8724
range: [0, 5],
8725
loc: {
8726
start: { line: 1, column: 0 },
8727
end: { line: 1, column: 5 }
8728
}
8729
}
8730
8731
},
8732
8733
'Binary Expressions': {
8734
8735
'x + y + z': {
8736
type: 'ExpressionStatement',
8737
expression: {
8738
type: 'BinaryExpression',
8739
operator: '+',
8740
left: {
8741
type: 'BinaryExpression',
8742
operator: '+',
8743
left: {
8744
type: 'Identifier',
8745
name: 'x',
8746
range: [0, 1],
8747
loc: {
8748
start: { line: 1, column: 0 },
8749
end: { line: 1, column: 1 }
8750
}
8751
},
8752
right: {
8753
type: 'Identifier',
8754
name: 'y',
8755
range: [4, 5],
8756
loc: {
8757
start: { line: 1, column: 4 },
8758
end: { line: 1, column: 5 }
8759
}
8760
},
8761
range: [0, 5],
8762
loc: {
8763
start: { line: 1, column: 0 },
8764
end: { line: 1, column: 5 }
8765
}
8766
},
8767
right: {
8768
type: 'Identifier',
8769
name: 'z',
8770
range: [8, 9],
8771
loc: {
8772
start: { line: 1, column: 8 },
8773
end: { line: 1, column: 9 }
8774
}
8775
},
8776
range: [0, 9],
8777
loc: {
8778
start: { line: 1, column: 0 },
8779
end: { line: 1, column: 9 }
8780
}
8781
},
8782
range: [0, 9],
8783
loc: {
8784
start: { line: 1, column: 0 },
8785
end: { line: 1, column: 9 }
8786
}
8787
},
8788
8789
'x - y + z': {
8790
type: 'ExpressionStatement',
8791
expression: {
8792
type: 'BinaryExpression',
8793
operator: '+',
8794
left: {
8795
type: 'BinaryExpression',
8796
operator: '-',
8797
left: {
8798
type: 'Identifier',
8799
name: 'x',
8800
range: [0, 1],
8801
loc: {
8802
start: { line: 1, column: 0 },
8803
end: { line: 1, column: 1 }
8804
}
8805
},
8806
right: {
8807
type: 'Identifier',
8808
name: 'y',
8809
range: [4, 5],
8810
loc: {
8811
start: { line: 1, column: 4 },
8812
end: { line: 1, column: 5 }
8813
}
8814
},
8815
range: [0, 5],
8816
loc: {
8817
start: { line: 1, column: 0 },
8818
end: { line: 1, column: 5 }
8819
}
8820
},
8821
right: {
8822
type: 'Identifier',
8823
name: 'z',
8824
range: [8, 9],
8825
loc: {
8826
start: { line: 1, column: 8 },
8827
end: { line: 1, column: 9 }
8828
}
8829
},
8830
range: [0, 9],
8831
loc: {
8832
start: { line: 1, column: 0 },
8833
end: { line: 1, column: 9 }
8834
}
8835
},
8836
range: [0, 9],
8837
loc: {
8838
start: { line: 1, column: 0 },
8839
end: { line: 1, column: 9 }
8840
}
8841
},
8842
8843
'x + y - z': {
8844
type: 'ExpressionStatement',
8845
expression: {
8846
type: 'BinaryExpression',
8847
operator: '-',
8848
left: {
8849
type: 'BinaryExpression',
8850
operator: '+',
8851
left: {
8852
type: 'Identifier',
8853
name: 'x',
8854
range: [0, 1],
8855
loc: {
8856
start: { line: 1, column: 0 },
8857
end: { line: 1, column: 1 }
8858
}
8859
},
8860
right: {
8861
type: 'Identifier',
8862
name: 'y',
8863
range: [4, 5],
8864
loc: {
8865
start: { line: 1, column: 4 },
8866
end: { line: 1, column: 5 }
8867
}
8868
},
8869
range: [0, 5],
8870
loc: {
8871
start: { line: 1, column: 0 },
8872
end: { line: 1, column: 5 }
8873
}
8874
},
8875
right: {
8876
type: 'Identifier',
8877
name: 'z',
8878
range: [8, 9],
8879
loc: {
8880
start: { line: 1, column: 8 },
8881
end: { line: 1, column: 9 }
8882
}
8883
},
8884
range: [0, 9],
8885
loc: {
8886
start: { line: 1, column: 0 },
8887
end: { line: 1, column: 9 }
8888
}
8889
},
8890
range: [0, 9],
8891
loc: {
8892
start: { line: 1, column: 0 },
8893
end: { line: 1, column: 9 }
8894
}
8895
},
8896
8897
'x - y - z': {
8898
type: 'ExpressionStatement',
8899
expression: {
8900
type: 'BinaryExpression',
8901
operator: '-',
8902
left: {
8903
type: 'BinaryExpression',
8904
operator: '-',
8905
left: {
8906
type: 'Identifier',
8907
name: 'x',
8908
range: [0, 1],
8909
loc: {
8910
start: { line: 1, column: 0 },
8911
end: { line: 1, column: 1 }
8912
}
8913
},
8914
right: {
8915
type: 'Identifier',
8916
name: 'y',
8917
range: [4, 5],
8918
loc: {
8919
start: { line: 1, column: 4 },
8920
end: { line: 1, column: 5 }
8921
}
8922
},
8923
range: [0, 5],
8924
loc: {
8925
start: { line: 1, column: 0 },
8926
end: { line: 1, column: 5 }
8927
}
8928
},
8929
right: {
8930
type: 'Identifier',
8931
name: 'z',
8932
range: [8, 9],
8933
loc: {
8934
start: { line: 1, column: 8 },
8935
end: { line: 1, column: 9 }
8936
}
8937
},
8938
range: [0, 9],
8939
loc: {
8940
start: { line: 1, column: 0 },
8941
end: { line: 1, column: 9 }
8942
}
8943
},
8944
range: [0, 9],
8945
loc: {
8946
start: { line: 1, column: 0 },
8947
end: { line: 1, column: 9 }
8948
}
8949
},
8950
8951
'x + y * z': {
8952
type: 'ExpressionStatement',
8953
expression: {
8954
type: 'BinaryExpression',
8955
operator: '+',
8956
left: {
8957
type: 'Identifier',
8958
name: 'x',
8959
range: [0, 1],
8960
loc: {
8961
start: { line: 1, column: 0 },
8962
end: { line: 1, column: 1 }
8963
}
8964
},
8965
right: {
8966
type: 'BinaryExpression',
8967
operator: '*',
8968
left: {
8969
type: 'Identifier',
8970
name: 'y',
8971
range: [4, 5],
8972
loc: {
8973
start: { line: 1, column: 4 },
8974
end: { line: 1, column: 5 }
8975
}
8976
},
8977
right: {
8978
type: 'Identifier',
8979
name: 'z',
8980
range: [8, 9],
8981
loc: {
8982
start: { line: 1, column: 8 },
8983
end: { line: 1, column: 9 }
8984
}
8985
},
8986
range: [4, 9],
8987
loc: {
8988
start: { line: 1, column: 4 },
8989
end: { line: 1, column: 9 }
8990
}
8991
},
8992
range: [0, 9],
8993
loc: {
8994
start: { line: 1, column: 0 },
8995
end: { line: 1, column: 9 }
8996
}
8997
},
8998
range: [0, 9],
8999
loc: {
9000
start: { line: 1, column: 0 },
9001
end: { line: 1, column: 9 }
9002
}
9003
},
9004
9005
'x + y / z': {
9006
type: 'ExpressionStatement',
9007
expression: {
9008
type: 'BinaryExpression',
9009
operator: '+',
9010
left: {
9011
type: 'Identifier',
9012
name: 'x',
9013
range: [0, 1],
9014
loc: {
9015
start: { line: 1, column: 0 },
9016
end: { line: 1, column: 1 }
9017
}
9018
},
9019
right: {
9020
type: 'BinaryExpression',
9021
operator: '/',
9022
left: {
9023
type: 'Identifier',
9024
name: 'y',
9025
range: [4, 5],
9026
loc: {
9027
start: { line: 1, column: 4 },
9028
end: { line: 1, column: 5 }
9029
}
9030
},
9031
right: {
9032
type: 'Identifier',
9033
name: 'z',
9034
range: [8, 9],
9035
loc: {
9036
start: { line: 1, column: 8 },
9037
end: { line: 1, column: 9 }
9038
}
9039
},
9040
range: [4, 9],
9041
loc: {
9042
start: { line: 1, column: 4 },
9043
end: { line: 1, column: 9 }
9044
}
9045
},
9046
range: [0, 9],
9047
loc: {
9048
start: { line: 1, column: 0 },
9049
end: { line: 1, column: 9 }
9050
}
9051
},
9052
range: [0, 9],
9053
loc: {
9054
start: { line: 1, column: 0 },
9055
end: { line: 1, column: 9 }
9056
}
9057
},
9058
9059
'x - y % z': {
9060
type: 'ExpressionStatement',
9061
expression: {
9062
type: 'BinaryExpression',
9063
operator: '-',
9064
left: {
9065
type: 'Identifier',
9066
name: 'x',
9067
range: [0, 1],
9068
loc: {
9069
start: { line: 1, column: 0 },
9070
end: { line: 1, column: 1 }
9071
}
9072
},
9073
right: {
9074
type: 'BinaryExpression',
9075
operator: '%',
9076
left: {
9077
type: 'Identifier',
9078
name: 'y',
9079
range: [4, 5],
9080
loc: {
9081
start: { line: 1, column: 4 },
9082
end: { line: 1, column: 5 }
9083
}
9084
},
9085
right: {
9086
type: 'Identifier',
9087
name: 'z',
9088
range: [8, 9],
9089
loc: {
9090
start: { line: 1, column: 8 },
9091
end: { line: 1, column: 9 }
9092
}
9093
},
9094
range: [4, 9],
9095
loc: {
9096
start: { line: 1, column: 4 },
9097
end: { line: 1, column: 9 }
9098
}
9099
},
9100
range: [0, 9],
9101
loc: {
9102
start: { line: 1, column: 0 },
9103
end: { line: 1, column: 9 }
9104
}
9105
},
9106
range: [0, 9],
9107
loc: {
9108
start: { line: 1, column: 0 },
9109
end: { line: 1, column: 9 }
9110
}
9111
},
9112
9113
'x * y * z': {
9114
type: 'ExpressionStatement',
9115
expression: {
9116
type: 'BinaryExpression',
9117
operator: '*',
9118
left: {
9119
type: 'BinaryExpression',
9120
operator: '*',
9121
left: {
9122
type: 'Identifier',
9123
name: 'x',
9124
range: [0, 1],
9125
loc: {
9126
start: { line: 1, column: 0 },
9127
end: { line: 1, column: 1 }
9128
}
9129
},
9130
right: {
9131
type: 'Identifier',
9132
name: 'y',
9133
range: [4, 5],
9134
loc: {
9135
start: { line: 1, column: 4 },
9136
end: { line: 1, column: 5 }
9137
}
9138
},
9139
range: [0, 5],
9140
loc: {
9141
start: { line: 1, column: 0 },
9142
end: { line: 1, column: 5 }
9143
}
9144
},
9145
right: {
9146
type: 'Identifier',
9147
name: 'z',
9148
range: [8, 9],
9149
loc: {
9150
start: { line: 1, column: 8 },
9151
end: { line: 1, column: 9 }
9152
}
9153
},
9154
range: [0, 9],
9155
loc: {
9156
start: { line: 1, column: 0 },
9157
end: { line: 1, column: 9 }
9158
}
9159
},
9160
range: [0, 9],
9161
loc: {
9162
start: { line: 1, column: 0 },
9163
end: { line: 1, column: 9 }
9164
}
9165
},
9166
9167
'x * y / z': {
9168
type: 'ExpressionStatement',
9169
expression: {
9170
type: 'BinaryExpression',
9171
operator: '/',
9172
left: {
9173
type: 'BinaryExpression',
9174
operator: '*',
9175
left: {
9176
type: 'Identifier',
9177
name: 'x',
9178
range: [0, 1],
9179
loc: {
9180
start: { line: 1, column: 0 },
9181
end: { line: 1, column: 1 }
9182
}
9183
},
9184
right: {
9185
type: 'Identifier',
9186
name: 'y',
9187
range: [4, 5],
9188
loc: {
9189
start: { line: 1, column: 4 },
9190
end: { line: 1, column: 5 }
9191
}
9192
},
9193
range: [0, 5],
9194
loc: {
9195
start: { line: 1, column: 0 },
9196
end: { line: 1, column: 5 }
9197
}
9198
},
9199
right: {
9200
type: 'Identifier',
9201
name: 'z',
9202
range: [8, 9],
9203
loc: {
9204
start: { line: 1, column: 8 },
9205
end: { line: 1, column: 9 }
9206
}
9207
},
9208
range: [0, 9],
9209
loc: {
9210
start: { line: 1, column: 0 },
9211
end: { line: 1, column: 9 }
9212
}
9213
},
9214
range: [0, 9],
9215
loc: {
9216
start: { line: 1, column: 0 },
9217
end: { line: 1, column: 9 }
9218
}
9219
},
9220
9221
'x * y % z': {
9222
type: 'ExpressionStatement',
9223
expression: {
9224
type: 'BinaryExpression',
9225
operator: '%',
9226
left: {
9227
type: 'BinaryExpression',
9228
operator: '*',
9229
left: {
9230
type: 'Identifier',
9231
name: 'x',
9232
range: [0, 1],
9233
loc: {
9234
start: { line: 1, column: 0 },
9235
end: { line: 1, column: 1 }
9236
}
9237
},
9238
right: {
9239
type: 'Identifier',
9240
name: 'y',
9241
range: [4, 5],
9242
loc: {
9243
start: { line: 1, column: 4 },
9244
end: { line: 1, column: 5 }
9245
}
9246
},
9247
range: [0, 5],
9248
loc: {
9249
start: { line: 1, column: 0 },
9250
end: { line: 1, column: 5 }
9251
}
9252
},
9253
right: {
9254
type: 'Identifier',
9255
name: 'z',
9256
range: [8, 9],
9257
loc: {
9258
start: { line: 1, column: 8 },
9259
end: { line: 1, column: 9 }
9260
}
9261
},
9262
range: [0, 9],
9263
loc: {
9264
start: { line: 1, column: 0 },
9265
end: { line: 1, column: 9 }
9266
}
9267
},
9268
range: [0, 9],
9269
loc: {
9270
start: { line: 1, column: 0 },
9271
end: { line: 1, column: 9 }
9272
}
9273
},
9274
9275
'x % y * z': {
9276
type: 'ExpressionStatement',
9277
expression: {
9278
type: 'BinaryExpression',
9279
operator: '*',
9280
left: {
9281
type: 'BinaryExpression',
9282
operator: '%',
9283
left: {
9284
type: 'Identifier',
9285
name: 'x',
9286
range: [0, 1],
9287
loc: {
9288
start: { line: 1, column: 0 },
9289
end: { line: 1, column: 1 }
9290
}
9291
},
9292
right: {
9293
type: 'Identifier',
9294
name: 'y',
9295
range: [4, 5],
9296
loc: {
9297
start: { line: 1, column: 4 },
9298
end: { line: 1, column: 5 }
9299
}
9300
},
9301
range: [0, 5],
9302
loc: {
9303
start: { line: 1, column: 0 },
9304
end: { line: 1, column: 5 }
9305
}
9306
},
9307
right: {
9308
type: 'Identifier',
9309
name: 'z',
9310
range: [8, 9],
9311
loc: {
9312
start: { line: 1, column: 8 },
9313
end: { line: 1, column: 9 }
9314
}
9315
},
9316
range: [0, 9],
9317
loc: {
9318
start: { line: 1, column: 0 },
9319
end: { line: 1, column: 9 }
9320
}
9321
},
9322
range: [0, 9],
9323
loc: {
9324
start: { line: 1, column: 0 },
9325
end: { line: 1, column: 9 }
9326
}
9327
},
9328
9329
'x << y << z': {
9330
type: 'ExpressionStatement',
9331
expression: {
9332
type: 'BinaryExpression',
9333
operator: '<<',
9334
left: {
9335
type: 'BinaryExpression',
9336
operator: '<<',
9337
left: {
9338
type: 'Identifier',
9339
name: 'x',
9340
range: [0, 1],
9341
loc: {
9342
start: { line: 1, column: 0 },
9343
end: { line: 1, column: 1 }
9344
}
9345
},
9346
right: {
9347
type: 'Identifier',
9348
name: 'y',
9349
range: [5, 6],
9350
loc: {
9351
start: { line: 1, column: 5 },
9352
end: { line: 1, column: 6 }
9353
}
9354
},
9355
range: [0, 6],
9356
loc: {
9357
start: { line: 1, column: 0 },
9358
end: { line: 1, column: 6 }
9359
}
9360
},
9361
right: {
9362
type: 'Identifier',
9363
name: 'z',
9364
range: [10, 11],
9365
loc: {
9366
start: { line: 1, column: 10 },
9367
end: { line: 1, column: 11 }
9368
}
9369
},
9370
range: [0, 11],
9371
loc: {
9372
start: { line: 1, column: 0 },
9373
end: { line: 1, column: 11 }
9374
}
9375
},
9376
range: [0, 11],
9377
loc: {
9378
start: { line: 1, column: 0 },
9379
end: { line: 1, column: 11 }
9380
}
9381
},
9382
9383
'x | y | z': {
9384
type: 'ExpressionStatement',
9385
expression: {
9386
type: 'BinaryExpression',
9387
operator: '|',
9388
left: {
9389
type: 'BinaryExpression',
9390
operator: '|',
9391
left: {
9392
type: 'Identifier',
9393
name: 'x',
9394
range: [0, 1],
9395
loc: {
9396
start: { line: 1, column: 0 },
9397
end: { line: 1, column: 1 }
9398
}
9399
},
9400
right: {
9401
type: 'Identifier',
9402
name: 'y',
9403
range: [4, 5],
9404
loc: {
9405
start: { line: 1, column: 4 },
9406
end: { line: 1, column: 5 }
9407
}
9408
},
9409
range: [0, 5],
9410
loc: {
9411
start: { line: 1, column: 0 },
9412
end: { line: 1, column: 5 }
9413
}
9414
},
9415
right: {
9416
type: 'Identifier',
9417
name: 'z',
9418
range: [8, 9],
9419
loc: {
9420
start: { line: 1, column: 8 },
9421
end: { line: 1, column: 9 }
9422
}
9423
},
9424
range: [0, 9],
9425
loc: {
9426
start: { line: 1, column: 0 },
9427
end: { line: 1, column: 9 }
9428
}
9429
},
9430
range: [0, 9],
9431
loc: {
9432
start: { line: 1, column: 0 },
9433
end: { line: 1, column: 9 }
9434
}
9435
},
9436
9437
'x & y & z': {
9438
type: 'ExpressionStatement',
9439
expression: {
9440
type: 'BinaryExpression',
9441
operator: '&',
9442
left: {
9443
type: 'BinaryExpression',
9444
operator: '&',
9445
left: {
9446
type: 'Identifier',
9447
name: 'x',
9448
range: [0, 1],
9449
loc: {
9450
start: { line: 1, column: 0 },
9451
end: { line: 1, column: 1 }
9452
}
9453
},
9454
right: {
9455
type: 'Identifier',
9456
name: 'y',
9457
range: [4, 5],
9458
loc: {
9459
start: { line: 1, column: 4 },
9460
end: { line: 1, column: 5 }
9461
}
9462
},
9463
range: [0, 5],
9464
loc: {
9465
start: { line: 1, column: 0 },
9466
end: { line: 1, column: 5 }
9467
}
9468
},
9469
right: {
9470
type: 'Identifier',
9471
name: 'z',
9472
range: [8, 9],
9473
loc: {
9474
start: { line: 1, column: 8 },
9475
end: { line: 1, column: 9 }
9476
}
9477
},
9478
range: [0, 9],
9479
loc: {
9480
start: { line: 1, column: 0 },
9481
end: { line: 1, column: 9 }
9482
}
9483
},
9484
range: [0, 9],
9485
loc: {
9486
start: { line: 1, column: 0 },
9487
end: { line: 1, column: 9 }
9488
}
9489
},
9490
9491
'x ^ y ^ z': {
9492
type: 'ExpressionStatement',
9493
expression: {
9494
type: 'BinaryExpression',
9495
operator: '^',
9496
left: {
9497
type: 'BinaryExpression',
9498
operator: '^',
9499
left: {
9500
type: 'Identifier',
9501
name: 'x',
9502
range: [0, 1],
9503
loc: {
9504
start: { line: 1, column: 0 },
9505
end: { line: 1, column: 1 }
9506
}
9507
},
9508
right: {
9509
type: 'Identifier',
9510
name: 'y',
9511
range: [4, 5],
9512
loc: {
9513
start: { line: 1, column: 4 },
9514
end: { line: 1, column: 5 }
9515
}
9516
},
9517
range: [0, 5],
9518
loc: {
9519
start: { line: 1, column: 0 },
9520
end: { line: 1, column: 5 }
9521
}
9522
},
9523
right: {
9524
type: 'Identifier',
9525
name: 'z',
9526
range: [8, 9],
9527
loc: {
9528
start: { line: 1, column: 8 },
9529
end: { line: 1, column: 9 }
9530
}
9531
},
9532
range: [0, 9],
9533
loc: {
9534
start: { line: 1, column: 0 },
9535
end: { line: 1, column: 9 }
9536
}
9537
},
9538
range: [0, 9],
9539
loc: {
9540
start: { line: 1, column: 0 },
9541
end: { line: 1, column: 9 }
9542
}
9543
},
9544
9545
'x & y | z': {
9546
type: 'ExpressionStatement',
9547
expression: {
9548
type: 'BinaryExpression',
9549
operator: '|',
9550
left: {
9551
type: 'BinaryExpression',
9552
operator: '&',
9553
left: {
9554
type: 'Identifier',
9555
name: 'x',
9556
range: [0, 1],
9557
loc: {
9558
start: { line: 1, column: 0 },
9559
end: { line: 1, column: 1 }
9560
}
9561
},
9562
right: {
9563
type: 'Identifier',
9564
name: 'y',
9565
range: [4, 5],
9566
loc: {
9567
start: { line: 1, column: 4 },
9568
end: { line: 1, column: 5 }
9569
}
9570
},
9571
range: [0, 5],
9572
loc: {
9573
start: { line: 1, column: 0 },
9574
end: { line: 1, column: 5 }
9575
}
9576
},
9577
right: {
9578
type: 'Identifier',
9579
name: 'z',
9580
range: [8, 9],
9581
loc: {
9582
start: { line: 1, column: 8 },
9583
end: { line: 1, column: 9 }
9584
}
9585
},
9586
range: [0, 9],
9587
loc: {
9588
start: { line: 1, column: 0 },
9589
end: { line: 1, column: 9 }
9590
}
9591
},
9592
range: [0, 9],
9593
loc: {
9594
start: { line: 1, column: 0 },
9595
end: { line: 1, column: 9 }
9596
}
9597
},
9598
9599
'x | y ^ z': {
9600
type: 'ExpressionStatement',
9601
expression: {
9602
type: 'BinaryExpression',
9603
operator: '|',
9604
left: {
9605
type: 'Identifier',
9606
name: 'x',
9607
range: [0, 1],
9608
loc: {
9609
start: { line: 1, column: 0 },
9610
end: { line: 1, column: 1 }
9611
}
9612
},
9613
right: {
9614
type: 'BinaryExpression',
9615
operator: '^',
9616
left: {
9617
type: 'Identifier',
9618
name: 'y',
9619
range: [4, 5],
9620
loc: {
9621
start: { line: 1, column: 4 },
9622
end: { line: 1, column: 5 }
9623
}
9624
},
9625
right: {
9626
type: 'Identifier',
9627
name: 'z',
9628
range: [8, 9],
9629
loc: {
9630
start: { line: 1, column: 8 },
9631
end: { line: 1, column: 9 }
9632
}
9633
},
9634
range: [4, 9],
9635
loc: {
9636
start: { line: 1, column: 4 },
9637
end: { line: 1, column: 9 }
9638
}
9639
},
9640
range: [0, 9],
9641
loc: {
9642
start: { line: 1, column: 0 },
9643
end: { line: 1, column: 9 }
9644
}
9645
},
9646
range: [0, 9],
9647
loc: {
9648
start: { line: 1, column: 0 },
9649
end: { line: 1, column: 9 }
9650
}
9651
},
9652
9653
'x | y & z': {
9654
type: 'ExpressionStatement',
9655
expression: {
9656
type: 'BinaryExpression',
9657
operator: '|',
9658
left: {
9659
type: 'Identifier',
9660
name: 'x',
9661
range: [0, 1],
9662
loc: {
9663
start: { line: 1, column: 0 },
9664
end: { line: 1, column: 1 }
9665
}
9666
},
9667
right: {
9668
type: 'BinaryExpression',
9669
operator: '&',
9670
left: {
9671
type: 'Identifier',
9672
name: 'y',
9673
range: [4, 5],
9674
loc: {
9675
start: { line: 1, column: 4 },
9676
end: { line: 1, column: 5 }
9677
}
9678
},
9679
right: {
9680
type: 'Identifier',
9681
name: 'z',
9682
range: [8, 9],
9683
loc: {
9684
start: { line: 1, column: 8 },
9685
end: { line: 1, column: 9 }
9686
}
9687
},
9688
range: [4, 9],
9689
loc: {
9690
start: { line: 1, column: 4 },
9691
end: { line: 1, column: 9 }
9692
}
9693
},
9694
range: [0, 9],
9695
loc: {
9696
start: { line: 1, column: 0 },
9697
end: { line: 1, column: 9 }
9698
}
9699
},
9700
range: [0, 9],
9701
loc: {
9702
start: { line: 1, column: 0 },
9703
end: { line: 1, column: 9 }
9704
}
9705
}
9706
9707
},
9708
9709
'Binary Logical Operators': {
9710
9711
'x || y': {
9712
type: 'ExpressionStatement',
9713
expression: {
9714
type: 'LogicalExpression',
9715
operator: '||',
9716
left: {
9717
type: 'Identifier',
9718
name: 'x',
9719
range: [0, 1],
9720
loc: {
9721
start: { line: 1, column: 0 },
9722
end: { line: 1, column: 1 }
9723
}
9724
},
9725
right: {
9726
type: 'Identifier',
9727
name: 'y',
9728
range: [5, 6],
9729
loc: {
9730
start: { line: 1, column: 5 },
9731
end: { line: 1, column: 6 }
9732
}
9733
},
9734
range: [0, 6],
9735
loc: {
9736
start: { line: 1, column: 0 },
9737
end: { line: 1, column: 6 }
9738
}
9739
},
9740
range: [0, 6],
9741
loc: {
9742
start: { line: 1, column: 0 },
9743
end: { line: 1, column: 6 }
9744
}
9745
},
9746
9747
'x && y': {
9748
type: 'ExpressionStatement',
9749
expression: {
9750
type: 'LogicalExpression',
9751
operator: '&&',
9752
left: {
9753
type: 'Identifier',
9754
name: 'x',
9755
range: [0, 1],
9756
loc: {
9757
start: { line: 1, column: 0 },
9758
end: { line: 1, column: 1 }
9759
}
9760
},
9761
right: {
9762
type: 'Identifier',
9763
name: 'y',
9764
range: [5, 6],
9765
loc: {
9766
start: { line: 1, column: 5 },
9767
end: { line: 1, column: 6 }
9768
}
9769
},
9770
range: [0, 6],
9771
loc: {
9772
start: { line: 1, column: 0 },
9773
end: { line: 1, column: 6 }
9774
}
9775
},
9776
range: [0, 6],
9777
loc: {
9778
start: { line: 1, column: 0 },
9779
end: { line: 1, column: 6 }
9780
}
9781
},
9782
9783
'x || y || z': {
9784
type: 'ExpressionStatement',
9785
expression: {
9786
type: 'LogicalExpression',
9787
operator: '||',
9788
left: {
9789
type: 'LogicalExpression',
9790
operator: '||',
9791
left: {
9792
type: 'Identifier',
9793
name: 'x',
9794
range: [0, 1],
9795
loc: {
9796
start: { line: 1, column: 0 },
9797
end: { line: 1, column: 1 }
9798
}
9799
},
9800
right: {
9801
type: 'Identifier',
9802
name: 'y',
9803
range: [5, 6],
9804
loc: {
9805
start: { line: 1, column: 5 },
9806
end: { line: 1, column: 6 }
9807
}
9808
},
9809
range: [0, 6],
9810
loc: {
9811
start: { line: 1, column: 0 },
9812
end: { line: 1, column: 6 }
9813
}
9814
},
9815
right: {
9816
type: 'Identifier',
9817
name: 'z',
9818
range: [10, 11],
9819
loc: {
9820
start: { line: 1, column: 10 },
9821
end: { line: 1, column: 11 }
9822
}
9823
},
9824
range: [0, 11],
9825
loc: {
9826
start: { line: 1, column: 0 },
9827
end: { line: 1, column: 11 }
9828
}
9829
},
9830
range: [0, 11],
9831
loc: {
9832
start: { line: 1, column: 0 },
9833
end: { line: 1, column: 11 }
9834
}
9835
},
9836
9837
'x && y && z': {
9838
type: 'ExpressionStatement',
9839
expression: {
9840
type: 'LogicalExpression',
9841
operator: '&&',
9842
left: {
9843
type: 'LogicalExpression',
9844
operator: '&&',
9845
left: {
9846
type: 'Identifier',
9847
name: 'x',
9848
range: [0, 1],
9849
loc: {
9850
start: { line: 1, column: 0 },
9851
end: { line: 1, column: 1 }
9852
}
9853
},
9854
right: {
9855
type: 'Identifier',
9856
name: 'y',
9857
range: [5, 6],
9858
loc: {
9859
start: { line: 1, column: 5 },
9860
end: { line: 1, column: 6 }
9861
}
9862
},
9863
range: [0, 6],
9864
loc: {
9865
start: { line: 1, column: 0 },
9866
end: { line: 1, column: 6 }
9867
}
9868
},
9869
right: {
9870
type: 'Identifier',
9871
name: 'z',
9872
range: [10, 11],
9873
loc: {
9874
start: { line: 1, column: 10 },
9875
end: { line: 1, column: 11 }
9876
}
9877
},
9878
range: [0, 11],
9879
loc: {
9880
start: { line: 1, column: 0 },
9881
end: { line: 1, column: 11 }
9882
}
9883
},
9884
range: [0, 11],
9885
loc: {
9886
start: { line: 1, column: 0 },
9887
end: { line: 1, column: 11 }
9888
}
9889
},
9890
9891
'x || y && z': {
9892
type: 'ExpressionStatement',
9893
expression: {
9894
type: 'LogicalExpression',
9895
operator: '||',
9896
left: {
9897
type: 'Identifier',
9898
name: 'x',
9899
range: [0, 1],
9900
loc: {
9901
start: { line: 1, column: 0 },
9902
end: { line: 1, column: 1 }
9903
}
9904
},
9905
right: {
9906
type: 'LogicalExpression',
9907
operator: '&&',
9908
left: {
9909
type: 'Identifier',
9910
name: 'y',
9911
range: [5, 6],
9912
loc: {
9913
start: { line: 1, column: 5 },
9914
end: { line: 1, column: 6 }
9915
}
9916
},
9917
right: {
9918
type: 'Identifier',
9919
name: 'z',
9920
range: [10, 11],
9921
loc: {
9922
start: { line: 1, column: 10 },
9923
end: { line: 1, column: 11 }
9924
}
9925
},
9926
range: [5, 11],
9927
loc: {
9928
start: { line: 1, column: 5 },
9929
end: { line: 1, column: 11 }
9930
}
9931
},
9932
range: [0, 11],
9933
loc: {
9934
start: { line: 1, column: 0 },
9935
end: { line: 1, column: 11 }
9936
}
9937
},
9938
range: [0, 11],
9939
loc: {
9940
start: { line: 1, column: 0 },
9941
end: { line: 1, column: 11 }
9942
}
9943
},
9944
9945
'x || y ^ z': {
9946
type: 'ExpressionStatement',
9947
expression: {
9948
type: 'LogicalExpression',
9949
operator: '||',
9950
left: {
9951
type: 'Identifier',
9952
name: 'x',
9953
range: [0, 1],
9954
loc: {
9955
start: { line: 1, column: 0 },
9956
end: { line: 1, column: 1 }
9957
}
9958
},
9959
right: {
9960
type: 'BinaryExpression',
9961
operator: '^',
9962
left: {
9963
type: 'Identifier',
9964
name: 'y',
9965
range: [5, 6],
9966
loc: {
9967
start: { line: 1, column: 5 },
9968
end: { line: 1, column: 6 }
9969
}
9970
},
9971
right: {
9972
type: 'Identifier',
9973
name: 'z',
9974
range: [9, 10],
9975
loc: {
9976
start: { line: 1, column: 9 },
9977
end: { line: 1, column: 10 }
9978
}
9979
},
9980
range: [5, 10],
9981
loc: {
9982
start: { line: 1, column: 5 },
9983
end: { line: 1, column: 10 }
9984
}
9985
},
9986
range: [0, 10],
9987
loc: {
9988
start: { line: 1, column: 0 },
9989
end: { line: 1, column: 10 }
9990
}
9991
},
9992
range: [0, 10],
9993
loc: {
9994
start: { line: 1, column: 0 },
9995
end: { line: 1, column: 10 }
9996
}
9997
}
9998
9999
},
10000
10001
'Conditional Operator': {
10002
10003
'y ? 1 : 2': {
10004
type: 'ExpressionStatement',
10005
expression: {
10006
type: 'ConditionalExpression',
10007
test: {
10008
type: 'Identifier',
10009
name: 'y',
10010
range: [0, 1],
10011
loc: {
10012
start: { line: 1, column: 0 },
10013
end: { line: 1, column: 1 }
10014
}
10015
},
10016
consequent: {
10017
type: 'Literal',
10018
value: 1,
10019
raw: '1',
10020
range: [4, 5],
10021
loc: {
10022
start: { line: 1, column: 4 },
10023
end: { line: 1, column: 5 }
10024
}
10025
},
10026
alternate: {
10027
type: 'Literal',
10028
value: 2,
10029
raw: '2',
10030
range: [8, 9],
10031
loc: {
10032
start: { line: 1, column: 8 },
10033
end: { line: 1, column: 9 }
10034
}
10035
},
10036
range: [0, 9],
10037
loc: {
10038
start: { line: 1, column: 0 },
10039
end: { line: 1, column: 9 }
10040
}
10041
},
10042
range: [0, 9],
10043
loc: {
10044
start: { line: 1, column: 0 },
10045
end: { line: 1, column: 9 }
10046
}
10047
},
10048
10049
'x && y ? 1 : 2': {
10050
type: 'ExpressionStatement',
10051
expression: {
10052
type: 'ConditionalExpression',
10053
test: {
10054
type: 'LogicalExpression',
10055
operator: '&&',
10056
left: {
10057
type: 'Identifier',
10058
name: 'x',
10059
range: [0, 1],
10060
loc: {
10061
start: { line: 1, column: 0 },
10062
end: { line: 1, column: 1 }
10063
}
10064
},
10065
right: {
10066
type: 'Identifier',
10067
name: 'y',
10068
range: [5, 6],
10069
loc: {
10070
start: { line: 1, column: 5 },
10071
end: { line: 1, column: 6 }
10072
}
10073
},
10074
range: [0, 6],
10075
loc: {
10076
start: { line: 1, column: 0 },
10077
end: { line: 1, column: 6 }
10078
}
10079
},
10080
consequent: {
10081
type: 'Literal',
10082
value: 1,
10083
raw: '1',
10084
range: [9, 10],
10085
loc: {
10086
start: { line: 1, column: 9 },
10087
end: { line: 1, column: 10 }
10088
}
10089
},
10090
alternate: {
10091
type: 'Literal',
10092
value: 2,
10093
raw: '2',
10094
range: [13, 14],
10095
loc: {
10096
start: { line: 1, column: 13 },
10097
end: { line: 1, column: 14 }
10098
}
10099
},
10100
range: [0, 14],
10101
loc: {
10102
start: { line: 1, column: 0 },
10103
end: { line: 1, column: 14 }
10104
}
10105
},
10106
range: [0, 14],
10107
loc: {
10108
start: { line: 1, column: 0 },
10109
end: { line: 1, column: 14 }
10110
}
10111
}
10112
10113
},
10114
10115
'Assignment Operators': {
10116
10117
'x = 42': {
10118
type: 'ExpressionStatement',
10119
expression: {
10120
type: 'AssignmentExpression',
10121
operator: '=',
10122
left: {
10123
type: 'Identifier',
10124
name: 'x',
10125
range: [0, 1],
10126
loc: {
10127
start: { line: 1, column: 0 },
10128
end: { line: 1, column: 1 }
10129
}
10130
},
10131
right: {
10132
type: 'Literal',
10133
value: 42,
10134
raw: '42',
10135
range: [4, 6],
10136
loc: {
10137
start: { line: 1, column: 4 },
10138
end: { line: 1, column: 6 }
10139
}
10140
},
10141
range: [0, 6],
10142
loc: {
10143
start: { line: 1, column: 0 },
10144
end: { line: 1, column: 6 }
10145
}
10146
},
10147
range: [0, 6],
10148
loc: {
10149
start: { line: 1, column: 0 },
10150
end: { line: 1, column: 6 }
10151
}
10152
},
10153
10154
'eval = 42': {
10155
type: 'ExpressionStatement',
10156
expression: {
10157
type: 'AssignmentExpression',
10158
operator: '=',
10159
left: {
10160
type: 'Identifier',
10161
name: 'eval',
10162
range: [0, 4],
10163
loc: {
10164
start: { line: 1, column: 0 },
10165
end: { line: 1, column: 4 }
10166
}
10167
},
10168
right: {
10169
type: 'Literal',
10170
value: 42,
10171
raw: '42',
10172
range: [7, 9],
10173
loc: {
10174
start: { line: 1, column: 7 },
10175
end: { line: 1, column: 9 }
10176
}
10177
},
10178
range: [0, 9],
10179
loc: {
10180
start: { line: 1, column: 0 },
10181
end: { line: 1, column: 9 }
10182
}
10183
},
10184
range: [0, 9],
10185
loc: {
10186
start: { line: 1, column: 0 },
10187
end: { line: 1, column: 9 }
10188
}
10189
},
10190
10191
'arguments = 42': {
10192
type: 'ExpressionStatement',
10193
expression: {
10194
type: 'AssignmentExpression',
10195
operator: '=',
10196
left: {
10197
type: 'Identifier',
10198
name: 'arguments',
10199
range: [0, 9],
10200
loc: {
10201
start: { line: 1, column: 0 },
10202
end: { line: 1, column: 9 }
10203
}
10204
},
10205
right: {
10206
type: 'Literal',
10207
value: 42,
10208
raw: '42',
10209
range: [12, 14],
10210
loc: {
10211
start: { line: 1, column: 12 },
10212
end: { line: 1, column: 14 }
10213
}
10214
},
10215
range: [0, 14],
10216
loc: {
10217
start: { line: 1, column: 0 },
10218
end: { line: 1, column: 14 }
10219
}
10220
},
10221
range: [0, 14],
10222
loc: {
10223
start: { line: 1, column: 0 },
10224
end: { line: 1, column: 14 }
10225
}
10226
},
10227
10228
'type = 42': {
10229
type: 'ExpressionStatement',
10230
expression: {
10231
type: 'AssignmentExpression',
10232
operator: '=',
10233
left: {
10234
type: 'Identifier',
10235
name: 'type',
10236
range: [0, 4],
10237
loc: {
10238
start: { line: 1, column: 0 },
10239
end: { line: 1, column: 4 }
10240
}
10241
},
10242
right: {
10243
type: 'Literal',
10244
value: 42,
10245
raw: '42',
10246
range: [7, 9],
10247
loc: {
10248
start: { line: 1, column: 7 },
10249
end: { line: 1, column: 9 }
10250
}
10251
},
10252
range: [0, 9],
10253
loc: {
10254
start: { line: 1, column: 0 },
10255
end: { line: 1, column: 9 }
10256
}
10257
},
10258
range: [0, 9],
10259
loc: {
10260
start: { line: 1, column: 0 },
10261
end: { line: 1, column: 9 }
10262
}
10263
},
10264
10265
'x *= 42': {
10266
type: 'ExpressionStatement',
10267
expression: {
10268
type: 'AssignmentExpression',
10269
operator: '*=',
10270
left: {
10271
type: 'Identifier',
10272
name: 'x',
10273
range: [0, 1],
10274
loc: {
10275
start: { line: 1, column: 0 },
10276
end: { line: 1, column: 1 }
10277
}
10278
},
10279
right: {
10280
type: 'Literal',
10281
value: 42,
10282
raw: '42',
10283
range: [5, 7],
10284
loc: {
10285
start: { line: 1, column: 5 },
10286
end: { line: 1, column: 7 }
10287
}
10288
},
10289
range: [0, 7],
10290
loc: {
10291
start: { line: 1, column: 0 },
10292
end: { line: 1, column: 7 }
10293
}
10294
},
10295
range: [0, 7],
10296
loc: {
10297
start: { line: 1, column: 0 },
10298
end: { line: 1, column: 7 }
10299
}
10300
},
10301
10302
'x /= 42': {
10303
type: 'ExpressionStatement',
10304
expression: {
10305
type: 'AssignmentExpression',
10306
operator: '/=',
10307
left: {
10308
type: 'Identifier',
10309
name: 'x',
10310
range: [0, 1],
10311
loc: {
10312
start: { line: 1, column: 0 },
10313
end: { line: 1, column: 1 }
10314
}
10315
},
10316
right: {
10317
type: 'Literal',
10318
value: 42,
10319
raw: '42',
10320
range: [5, 7],
10321
loc: {
10322
start: { line: 1, column: 5 },
10323
end: { line: 1, column: 7 }
10324
}
10325
},
10326
range: [0, 7],
10327
loc: {
10328
start: { line: 1, column: 0 },
10329
end: { line: 1, column: 7 }
10330
}
10331
},
10332
range: [0, 7],
10333
loc: {
10334
start: { line: 1, column: 0 },
10335
end: { line: 1, column: 7 }
10336
}
10337
},
10338
10339
'x %= 42': {
10340
type: 'ExpressionStatement',
10341
expression: {
10342
type: 'AssignmentExpression',
10343
operator: '%=',
10344
left: {
10345
type: 'Identifier',
10346
name: 'x',
10347
range: [0, 1],
10348
loc: {
10349
start: { line: 1, column: 0 },
10350
end: { line: 1, column: 1 }
10351
}
10352
},
10353
right: {
10354
type: 'Literal',
10355
value: 42,
10356
raw: '42',
10357
range: [5, 7],
10358
loc: {
10359
start: { line: 1, column: 5 },
10360
end: { line: 1, column: 7 }
10361
}
10362
},
10363
range: [0, 7],
10364
loc: {
10365
start: { line: 1, column: 0 },
10366
end: { line: 1, column: 7 }
10367
}
10368
},
10369
range: [0, 7],
10370
loc: {
10371
start: { line: 1, column: 0 },
10372
end: { line: 1, column: 7 }
10373
}
10374
},
10375
10376
'x += 42': {
10377
type: 'ExpressionStatement',
10378
expression: {
10379
type: 'AssignmentExpression',
10380
operator: '+=',
10381
left: {
10382
type: 'Identifier',
10383
name: 'x',
10384
range: [0, 1],
10385
loc: {
10386
start: { line: 1, column: 0 },
10387
end: { line: 1, column: 1 }
10388
}
10389
},
10390
right: {
10391
type: 'Literal',
10392
value: 42,
10393
raw: '42',
10394
range: [5, 7],
10395
loc: {
10396
start: { line: 1, column: 5 },
10397
end: { line: 1, column: 7 }
10398
}
10399
},
10400
range: [0, 7],
10401
loc: {
10402
start: { line: 1, column: 0 },
10403
end: { line: 1, column: 7 }
10404
}
10405
},
10406
range: [0, 7],
10407
loc: {
10408
start: { line: 1, column: 0 },
10409
end: { line: 1, column: 7 }
10410
}
10411
},
10412
10413
'x -= 42': {
10414
type: 'ExpressionStatement',
10415
expression: {
10416
type: 'AssignmentExpression',
10417
operator: '-=',
10418
left: {
10419
type: 'Identifier',
10420
name: 'x',
10421
range: [0, 1],
10422
loc: {
10423
start: { line: 1, column: 0 },
10424
end: { line: 1, column: 1 }
10425
}
10426
},
10427
right: {
10428
type: 'Literal',
10429
value: 42,
10430
raw: '42',
10431
range: [5, 7],
10432
loc: {
10433
start: { line: 1, column: 5 },
10434
end: { line: 1, column: 7 }
10435
}
10436
},
10437
range: [0, 7],
10438
loc: {
10439
start: { line: 1, column: 0 },
10440
end: { line: 1, column: 7 }
10441
}
10442
},
10443
range: [0, 7],
10444
loc: {
10445
start: { line: 1, column: 0 },
10446
end: { line: 1, column: 7 }
10447
}
10448
},
10449
10450
'x <<= 42': {
10451
type: 'ExpressionStatement',
10452
expression: {
10453
type: 'AssignmentExpression',
10454
operator: '<<=',
10455
left: {
10456
type: 'Identifier',
10457
name: 'x',
10458
range: [0, 1],
10459
loc: {
10460
start: { line: 1, column: 0 },
10461
end: { line: 1, column: 1 }
10462
}
10463
},
10464
right: {
10465
type: 'Literal',
10466
value: 42,
10467
raw: '42',
10468
range: [6, 8],
10469
loc: {
10470
start: { line: 1, column: 6 },
10471
end: { line: 1, column: 8 }
10472
}
10473
},
10474
range: [0, 8],
10475
loc: {
10476
start: { line: 1, column: 0 },
10477
end: { line: 1, column: 8 }
10478
}
10479
},
10480
range: [0, 8],
10481
loc: {
10482
start: { line: 1, column: 0 },
10483
end: { line: 1, column: 8 }
10484
}
10485
},
10486
10487
'x >>= 42': {
10488
type: 'ExpressionStatement',
10489
expression: {
10490
type: 'AssignmentExpression',
10491
operator: '>>=',
10492
left: {
10493
type: 'Identifier',
10494
name: 'x',
10495
range: [0, 1],
10496
loc: {
10497
start: { line: 1, column: 0 },
10498
end: { line: 1, column: 1 }
10499
}
10500
},
10501
right: {
10502
type: 'Literal',
10503
value: 42,
10504
raw: '42',
10505
range: [6, 8],
10506
loc: {
10507
start: { line: 1, column: 6 },
10508
end: { line: 1, column: 8 }
10509
}
10510
},
10511
range: [0, 8],
10512
loc: {
10513
start: { line: 1, column: 0 },
10514
end: { line: 1, column: 8 }
10515
}
10516
},
10517
range: [0, 8],
10518
loc: {
10519
start: { line: 1, column: 0 },
10520
end: { line: 1, column: 8 }
10521
}
10522
},
10523
10524
'x >>>= 42': {
10525
type: 'ExpressionStatement',
10526
expression: {
10527
type: 'AssignmentExpression',
10528
operator: '>>>=',
10529
left: {
10530
type: 'Identifier',
10531
name: 'x',
10532
range: [0, 1],
10533
loc: {
10534
start: { line: 1, column: 0 },
10535
end: { line: 1, column: 1 }
10536
}
10537
},
10538
right: {
10539
type: 'Literal',
10540
value: 42,
10541
raw: '42',
10542
range: [7, 9],
10543
loc: {
10544
start: { line: 1, column: 7 },
10545
end: { line: 1, column: 9 }
10546
}
10547
},
10548
range: [0, 9],
10549
loc: {
10550
start: { line: 1, column: 0 },
10551
end: { line: 1, column: 9 }
10552
}
10553
},
10554
range: [0, 9],
10555
loc: {
10556
start: { line: 1, column: 0 },
10557
end: { line: 1, column: 9 }
10558
}
10559
},
10560
10561
'x &= 42': {
10562
type: 'ExpressionStatement',
10563
expression: {
10564
type: 'AssignmentExpression',
10565
operator: '&=',
10566
left: {
10567
type: 'Identifier',
10568
name: 'x',
10569
range: [0, 1],
10570
loc: {
10571
start: { line: 1, column: 0 },
10572
end: { line: 1, column: 1 }
10573
}
10574
},
10575
right: {
10576
type: 'Literal',
10577
value: 42,
10578
raw: '42',
10579
range: [5, 7],
10580
loc: {
10581
start: { line: 1, column: 5 },
10582
end: { line: 1, column: 7 }
10583
}
10584
},
10585
range: [0, 7],
10586
loc: {
10587
start: { line: 1, column: 0 },
10588
end: { line: 1, column: 7 }
10589
}
10590
},
10591
range: [0, 7],
10592
loc: {
10593
start: { line: 1, column: 0 },
10594
end: { line: 1, column: 7 }
10595
}
10596
},
10597
10598
'x ^= 42': {
10599
type: 'ExpressionStatement',
10600
expression: {
10601
type: 'AssignmentExpression',
10602
operator: '^=',
10603
left: {
10604
type: 'Identifier',
10605
name: 'x',
10606
range: [0, 1],
10607
loc: {
10608
start: { line: 1, column: 0 },
10609
end: { line: 1, column: 1 }
10610
}
10611
},
10612
right: {
10613
type: 'Literal',
10614
value: 42,
10615
raw: '42',
10616
range: [5, 7],
10617
loc: {
10618
start: { line: 1, column: 5 },
10619
end: { line: 1, column: 7 }
10620
}
10621
},
10622
range: [0, 7],
10623
loc: {
10624
start: { line: 1, column: 0 },
10625
end: { line: 1, column: 7 }
10626
}
10627
},
10628
range: [0, 7],
10629
loc: {
10630
start: { line: 1, column: 0 },
10631
end: { line: 1, column: 7 }
10632
}
10633
},
10634
10635
'x |= 42': {
10636
type: 'ExpressionStatement',
10637
expression: {
10638
type: 'AssignmentExpression',
10639
operator: '|=',
10640
left: {
10641
type: 'Identifier',
10642
name: 'x',
10643
range: [0, 1],
10644
loc: {
10645
start: { line: 1, column: 0 },
10646
end: { line: 1, column: 1 }
10647
}
10648
},
10649
right: {
10650
type: 'Literal',
10651
value: 42,
10652
raw: '42',
10653
range: [5, 7],
10654
loc: {
10655
start: { line: 1, column: 5 },
10656
end: { line: 1, column: 7 }
10657
}
10658
},
10659
range: [0, 7],
10660
loc: {
10661
start: { line: 1, column: 0 },
10662
end: { line: 1, column: 7 }
10663
}
10664
},
10665
range: [0, 7],
10666
loc: {
10667
start: { line: 1, column: 0 },
10668
end: { line: 1, column: 7 }
10669
}
10670
}
10671
10672
},
10673
10674
'Complex Expression': {
10675
10676
'a || b && c | d ^ e & f == g < h >>> i + j * k': {
10677
type: 'ExpressionStatement',
10678
expression: {
10679
type: 'LogicalExpression',
10680
operator: '||',
10681
left: {
10682
type: 'Identifier',
10683
name: 'a',
10684
range: [0, 1],
10685
loc: {
10686
start: { line: 1, column: 0 },
10687
end: { line: 1, column: 1 }
10688
}
10689
},
10690
right: {
10691
type: 'LogicalExpression',
10692
operator: '&&',
10693
left: {
10694
type: 'Identifier',
10695
name: 'b',
10696
range: [5, 6],
10697
loc: {
10698
start: { line: 1, column: 5 },
10699
end: { line: 1, column: 6 }
10700
}
10701
},
10702
right: {
10703
type: 'BinaryExpression',
10704
operator: '|',
10705
left: {
10706
type: 'Identifier',
10707
name: 'c',
10708
range: [10, 11],
10709
loc: {
10710
start: { line: 1, column: 10 },
10711
end: { line: 1, column: 11 }
10712
}
10713
},
10714
right: {
10715
type: 'BinaryExpression',
10716
operator: '^',
10717
left: {
10718
type: 'Identifier',
10719
name: 'd',
10720
range: [14, 15],
10721
loc: {
10722
start: { line: 1, column: 14 },
10723
end: { line: 1, column: 15 }
10724
}
10725
},
10726
right: {
10727
type: 'BinaryExpression',
10728
operator: '&',
10729
left: {
10730
type: 'Identifier',
10731
name: 'e',
10732
range: [18, 19],
10733
loc: {
10734
start: { line: 1, column: 18 },
10735
end: { line: 1, column: 19 }
10736
}
10737
},
10738
right: {
10739
type: 'BinaryExpression',
10740
operator: '==',
10741
left: {
10742
type: 'Identifier',
10743
name: 'f',
10744
range: [22, 23],
10745
loc: {
10746
start: { line: 1, column: 22 },
10747
end: { line: 1, column: 23 }
10748
}
10749
},
10750
right: {
10751
type: 'BinaryExpression',
10752
operator: '<',
10753
left: {
10754
type: 'Identifier',
10755
name: 'g',
10756
range: [27, 28],
10757
loc: {
10758
start: { line: 1, column: 27 },
10759
end: { line: 1, column: 28 }
10760
}
10761
},
10762
right: {
10763
type: 'BinaryExpression',
10764
operator: '>>>',
10765
left: {
10766
type: 'Identifier',
10767
name: 'h',
10768
range: [31, 32],
10769
loc: {
10770
start: { line: 1, column: 31 },
10771
end: { line: 1, column: 32 }
10772
}
10773
},
10774
right: {
10775
type: 'BinaryExpression',
10776
operator: '+',
10777
left: {
10778
type: 'Identifier',
10779
name: 'i',
10780
range: [37, 38],
10781
loc: {
10782
start: { line: 1, column: 37 },
10783
end: { line: 1, column: 38 }
10784
}
10785
},
10786
right: {
10787
type: 'BinaryExpression',
10788
operator: '*',
10789
left: {
10790
type: 'Identifier',
10791
name: 'j',
10792
range: [41, 42],
10793
loc: {
10794
start: { line: 1, column: 41 },
10795
end: { line: 1, column: 42 }
10796
}
10797
},
10798
right: {
10799
type: 'Identifier',
10800
name: 'k',
10801
range: [45, 46],
10802
loc: {
10803
start: { line: 1, column: 45 },
10804
end: { line: 1, column: 46 }
10805
}
10806
},
10807
range: [41, 46],
10808
loc: {
10809
start: { line: 1, column: 41 },
10810
end: { line: 1, column: 46 }
10811
}
10812
},
10813
range: [37, 46],
10814
loc: {
10815
start: { line: 1, column: 37 },
10816
end: { line: 1, column: 46 }
10817
}
10818
},
10819
range: [31, 46],
10820
loc: {
10821
start: { line: 1, column: 31 },
10822
end: { line: 1, column: 46 }
10823
}
10824
},
10825
range: [27, 46],
10826
loc: {
10827
start: { line: 1, column: 27 },
10828
end: { line: 1, column: 46 }
10829
}
10830
},
10831
range: [22, 46],
10832
loc: {
10833
start: { line: 1, column: 22 },
10834
end: { line: 1, column: 46 }
10835
}
10836
},
10837
range: [18, 46],
10838
loc: {
10839
start: { line: 1, column: 18 },
10840
end: { line: 1, column: 46 }
10841
}
10842
},
10843
range: [14, 46],
10844
loc: {
10845
start: { line: 1, column: 14 },
10846
end: { line: 1, column: 46 }
10847
}
10848
},
10849
range: [10, 46],
10850
loc: {
10851
start: { line: 1, column: 10 },
10852
end: { line: 1, column: 46 }
10853
}
10854
},
10855
range: [5, 46],
10856
loc: {
10857
start: { line: 1, column: 5 },
10858
end: { line: 1, column: 46 }
10859
}
10860
},
10861
range: [0, 46],
10862
loc: {
10863
start: { line: 1, column: 0 },
10864
end: { line: 1, column: 46 }
10865
}
10866
},
10867
range: [0, 46],
10868
loc: {
10869
start: { line: 1, column: 0 },
10870
end: { line: 1, column: 46 }
10871
}
10872
}
10873
10874
},
10875
10876
'Block': {
10877
10878
'{ foo }': {
10879
type: 'BlockStatement',
10880
body: [{
10881
type: 'ExpressionStatement',
10882
expression: {
10883
type: 'Identifier',
10884
name: 'foo',
10885
range: [2, 5],
10886
loc: {
10887
start: { line: 1, column: 2 },
10888
end: { line: 1, column: 5 }
10889
}
10890
},
10891
range: [2, 6],
10892
loc: {
10893
start: { line: 1, column: 2 },
10894
end: { line: 1, column: 6 }
10895
}
10896
}],
10897
range: [0, 7],
10898
loc: {
10899
start: { line: 1, column: 0 },
10900
end: { line: 1, column: 7 }
10901
}
10902
},
10903
10904
'{ doThis(); doThat(); }': {
10905
type: 'BlockStatement',
10906
body: [{
10907
type: 'ExpressionStatement',
10908
expression: {
10909
type: 'CallExpression',
10910
callee: {
10911
type: 'Identifier',
10912
name: 'doThis',
10913
range: [2, 8],
10914
loc: {
10915
start: { line: 1, column: 2 },
10916
end: { line: 1, column: 8 }
10917
}
10918
},
10919
'arguments': [],
10920
range: [2, 10],
10921
loc: {
10922
start: { line: 1, column: 2 },
10923
end: { line: 1, column: 10 }
10924
}
10925
},
10926
range: [2, 11],
10927
loc: {
10928
start: { line: 1, column: 2 },
10929
end: { line: 1, column: 11 }
10930
}
10931
}, {
10932
type: 'ExpressionStatement',
10933
expression: {
10934
type: 'CallExpression',
10935
callee: {
10936
type: 'Identifier',
10937
name: 'doThat',
10938
range: [12, 18],
10939
loc: {
10940
start: { line: 1, column: 12 },
10941
end: { line: 1, column: 18 }
10942
}
10943
},
10944
'arguments': [],
10945
range: [12, 20],
10946
loc: {
10947
start: { line: 1, column: 12 },
10948
end: { line: 1, column: 20 }
10949
}
10950
},
10951
range: [12, 21],
10952
loc: {
10953
start: { line: 1, column: 12 },
10954
end: { line: 1, column: 21 }
10955
}
10956
}],
10957
range: [0, 23],
10958
loc: {
10959
start: { line: 1, column: 0 },
10960
end: { line: 1, column: 23 }
10961
}
10962
},
10963
10964
'{}': {
10965
type: 'BlockStatement',
10966
body: [],
10967
range: [0, 2],
10968
loc: {
10969
start: { line: 1, column: 0 },
10970
end: { line: 1, column: 2 }
10971
}
10972
}
10973
10974
},
10975
10976
'Variable Statement': {
10977
10978
'var x': {
10979
type: 'VariableDeclaration',
10980
declarations: [{
10981
type: 'VariableDeclarator',
10982
id: {
10983
type: 'Identifier',
10984
name: 'x',
10985
range: [4, 5],
10986
loc: {
10987
start: { line: 1, column: 4 },
10988
end: { line: 1, column: 5 }
10989
}
10990
},
10991
init: null,
10992
range: [4, 5],
10993
loc: {
10994
start: { line: 1, column: 4 },
10995
end: { line: 1, column: 5 }
10996
}
10997
}],
10998
kind: 'var',
10999
range: [0, 5],
11000
loc: {
11001
start: { line: 1, column: 0 },
11002
end: { line: 1, column: 5 }
11003
}
11004
},
11005
11006
'var x, y;': {
11007
type: 'VariableDeclaration',
11008
declarations: [{
11009
type: 'VariableDeclarator',
11010
id: {
11011
type: 'Identifier',
11012
name: 'x',
11013
range: [4, 5],
11014
loc: {
11015
start: { line: 1, column: 4 },
11016
end: { line: 1, column: 5 }
11017
}
11018
},
11019
init: null,
11020
range: [4, 5],
11021
loc: {
11022
start: { line: 1, column: 4 },
11023
end: { line: 1, column: 5 }
11024
}
11025
}, {
11026
type: 'VariableDeclarator',
11027
id: {
11028
type: 'Identifier',
11029
name: 'y',
11030
range: [7, 8],
11031
loc: {
11032
start: { line: 1, column: 7 },
11033
end: { line: 1, column: 8 }
11034
}
11035
},
11036
init: null,
11037
range: [7, 8],
11038
loc: {
11039
start: { line: 1, column: 7 },
11040
end: { line: 1, column: 8 }
11041
}
11042
}],
11043
kind: 'var',
11044
range: [0, 9],
11045
loc: {
11046
start: { line: 1, column: 0 },
11047
end: { line: 1, column: 9 }
11048
}
11049
},
11050
11051
'var x = 42': {
11052
type: 'VariableDeclaration',
11053
declarations: [{
11054
type: 'VariableDeclarator',
11055
id: {
11056
type: 'Identifier',
11057
name: 'x',
11058
range: [4, 5],
11059
loc: {
11060
start: { line: 1, column: 4 },
11061
end: { line: 1, column: 5 }
11062
}
11063
},
11064
init: {
11065
type: 'Literal',
11066
value: 42,
11067
raw: '42',
11068
range: [8, 10],
11069
loc: {
11070
start: { line: 1, column: 8 },
11071
end: { line: 1, column: 10 }
11072
}
11073
},
11074
range: [4, 10],
11075
loc: {
11076
start: { line: 1, column: 4 },
11077
end: { line: 1, column: 10 }
11078
}
11079
}],
11080
kind: 'var',
11081
range: [0, 10],
11082
loc: {
11083
start: { line: 1, column: 0 },
11084
end: { line: 1, column: 10 }
11085
}
11086
},
11087
11088
'var eval = 42, arguments = 42': {
11089
type: 'VariableDeclaration',
11090
declarations: [{
11091
type: 'VariableDeclarator',
11092
id: {
11093
type: 'Identifier',
11094
name: 'eval',
11095
range: [4, 8],
11096
loc: {
11097
start: { line: 1, column: 4 },
11098
end: { line: 1, column: 8 }
11099
}
11100
},
11101
init: {
11102
type: 'Literal',
11103
value: 42,
11104
raw: '42',
11105
range: [11, 13],
11106
loc: {
11107
start: { line: 1, column: 11 },
11108
end: { line: 1, column: 13 }
11109
}
11110
},
11111
range: [4, 13],
11112
loc: {
11113
start: { line: 1, column: 4 },
11114
end: { line: 1, column: 13 }
11115
}
11116
}, {
11117
type: 'VariableDeclarator',
11118
id: {
11119
type: 'Identifier',
11120
name: 'arguments',
11121
range: [15, 24],
11122
loc: {
11123
start: { line: 1, column: 15 },
11124
end: { line: 1, column: 24 }
11125
}
11126
},
11127
init: {
11128
type: 'Literal',
11129
value: 42,
11130
raw: '42',
11131
range: [27, 29],
11132
loc: {
11133
start: { line: 1, column: 27 },
11134
end: { line: 1, column: 29 }
11135
}
11136
},
11137
range: [15, 29],
11138
loc: {
11139
start: { line: 1, column: 15 },
11140
end: { line: 1, column: 29 }
11141
}
11142
}],
11143
kind: 'var',
11144
range: [0, 29],
11145
loc: {
11146
start: { line: 1, column: 0 },
11147
end: { line: 1, column: 29 }
11148
}
11149
},
11150
11151
'var x = 14, y = 3, z = 1977': {
11152
type: 'VariableDeclaration',
11153
declarations: [{
11154
type: 'VariableDeclarator',
11155
id: {
11156
type: 'Identifier',
11157
name: 'x',
11158
range: [4, 5],
11159
loc: {
11160
start: { line: 1, column: 4 },
11161
end: { line: 1, column: 5 }
11162
}
11163
},
11164
init: {
11165
type: 'Literal',
11166
value: 14,
11167
raw: '14',
11168
range: [8, 10],
11169
loc: {
11170
start: { line: 1, column: 8 },
11171
end: { line: 1, column: 10 }
11172
}
11173
},
11174
range: [4, 10],
11175
loc: {
11176
start: { line: 1, column: 4 },
11177
end: { line: 1, column: 10 }
11178
}
11179
}, {
11180
type: 'VariableDeclarator',
11181
id: {
11182
type: 'Identifier',
11183
name: 'y',
11184
range: [12, 13],
11185
loc: {
11186
start: { line: 1, column: 12 },
11187
end: { line: 1, column: 13 }
11188
}
11189
},
11190
init: {
11191
type: 'Literal',
11192
value: 3,
11193
raw: '3',
11194
range: [16, 17],
11195
loc: {
11196
start: { line: 1, column: 16 },
11197
end: { line: 1, column: 17 }
11198
}
11199
},
11200
range: [12, 17],
11201
loc: {
11202
start: { line: 1, column: 12 },
11203
end: { line: 1, column: 17 }
11204
}
11205
}, {
11206
type: 'VariableDeclarator',
11207
id: {
11208
type: 'Identifier',
11209
name: 'z',
11210
range: [19, 20],
11211
loc: {
11212
start: { line: 1, column: 19 },
11213
end: { line: 1, column: 20 }
11214
}
11215
},
11216
init: {
11217
type: 'Literal',
11218
value: 1977,
11219
raw: '1977',
11220
range: [23, 27],
11221
loc: {
11222
start: { line: 1, column: 23 },
11223
end: { line: 1, column: 27 }
11224
}
11225
},
11226
range: [19, 27],
11227
loc: {
11228
start: { line: 1, column: 19 },
11229
end: { line: 1, column: 27 }
11230
}
11231
}],
11232
kind: 'var',
11233
range: [0, 27],
11234
loc: {
11235
start: { line: 1, column: 0 },
11236
end: { line: 1, column: 27 }
11237
}
11238
},
11239
11240
'var implements, interface, package': {
11241
type: 'VariableDeclaration',
11242
declarations: [{
11243
type: 'VariableDeclarator',
11244
id: {
11245
type: 'Identifier',
11246
name: 'implements',
11247
range: [4, 14],
11248
loc: {
11249
start: { line: 1, column: 4 },
11250
end: { line: 1, column: 14 }
11251
}
11252
},
11253
init: null,
11254
range: [4, 14],
11255
loc: {
11256
start: { line: 1, column: 4 },
11257
end: { line: 1, column: 14 }
11258
}
11259
}, {
11260
type: 'VariableDeclarator',
11261
id: {
11262
type: 'Identifier',
11263
name: 'interface',
11264
range: [16, 25],
11265
loc: {
11266
start: { line: 1, column: 16 },
11267
end: { line: 1, column: 25 }
11268
}
11269
},
11270
init: null,
11271
range: [16, 25],
11272
loc: {
11273
start: { line: 1, column: 16 },
11274
end: { line: 1, column: 25 }
11275
}
11276
}, {
11277
type: 'VariableDeclarator',
11278
id: {
11279
type: 'Identifier',
11280
name: 'package',
11281
range: [27, 34],
11282
loc: {
11283
start: { line: 1, column: 27 },
11284
end: { line: 1, column: 34 }
11285
}
11286
},
11287
init: null,
11288
range: [27, 34],
11289
loc: {
11290
start: { line: 1, column: 27 },
11291
end: { line: 1, column: 34 }
11292
}
11293
}],
11294
kind: 'var',
11295
range: [0, 34],
11296
loc: {
11297
start: { line: 1, column: 0 },
11298
end: { line: 1, column: 34 }
11299
}
11300
},
11301
11302
'var private, protected, public, static': {
11303
type: 'VariableDeclaration',
11304
declarations: [{
11305
type: 'VariableDeclarator',
11306
id: {
11307
type: 'Identifier',
11308
name: 'private',
11309
range: [4, 11],
11310
loc: {
11311
start: { line: 1, column: 4 },
11312
end: { line: 1, column: 11 }
11313
}
11314
},
11315
init: null,
11316
range: [4, 11],
11317
loc: {
11318
start: { line: 1, column: 4 },
11319
end: { line: 1, column: 11 }
11320
}
11321
}, {
11322
type: 'VariableDeclarator',
11323
id: {
11324
type: 'Identifier',
11325
name: 'protected',
11326
range: [13, 22],
11327
loc: {
11328
start: { line: 1, column: 13 },
11329
end: { line: 1, column: 22 }
11330
}
11331
},
11332
init: null,
11333
range: [13, 22],
11334
loc: {
11335
start: { line: 1, column: 13 },
11336
end: { line: 1, column: 22 }
11337
}
11338
}, {
11339
type: 'VariableDeclarator',
11340
id: {
11341
type: 'Identifier',
11342
name: 'public',
11343
range: [24, 30],
11344
loc: {
11345
start: { line: 1, column: 24 },
11346
end: { line: 1, column: 30 }
11347
}
11348
},
11349
init: null,
11350
range: [24, 30],
11351
loc: {
11352
start: { line: 1, column: 24 },
11353
end: { line: 1, column: 30 }
11354
}
11355
}, {
11356
type: 'VariableDeclarator',
11357
id: {
11358
type: 'Identifier',
11359
name: 'static',
11360
range: [32, 38],
11361
loc: {
11362
start: { line: 1, column: 32 },
11363
end: { line: 1, column: 38 }
11364
}
11365
},
11366
init: null,
11367
range: [32, 38],
11368
loc: {
11369
start: { line: 1, column: 32 },
11370
end: { line: 1, column: 38 }
11371
}
11372
}],
11373
kind: 'var',
11374
range: [0, 38],
11375
loc: {
11376
start: { line: 1, column: 0 },
11377
end: { line: 1, column: 38 }
11378
}
11379
}
11380
11381
},
11382
11383
'Let Statement': {
11384
11385
'let x': {
11386
type: 'VariableDeclaration',
11387
declarations: [{
11388
type: 'VariableDeclarator',
11389
id: {
11390
type: 'Identifier',
11391
name: 'x',
11392
range: [4, 5],
11393
loc: {
11394
start: { line: 1, column: 4 },
11395
end: { line: 1, column: 5 }
11396
}
11397
},
11398
init: null,
11399
range: [4, 5],
11400
loc: {
11401
start: { line: 1, column: 4 },
11402
end: { line: 1, column: 5 }
11403
}
11404
}],
11405
kind: 'let',
11406
range: [0, 5],
11407
loc: {
11408
start: { line: 1, column: 0 },
11409
end: { line: 1, column: 5 }
11410
}
11411
},
11412
11413
'{ let x }': {
11414
type: 'BlockStatement',
11415
body: [{
11416
type: 'VariableDeclaration',
11417
declarations: [{
11418
type: 'VariableDeclarator',
11419
id: {
11420
type: 'Identifier',
11421
name: 'x',
11422
range: [6, 7],
11423
loc: {
11424
start: { line: 1, column: 6 },
11425
end: { line: 1, column: 7 }
11426
}
11427
},
11428
init: null,
11429
range: [6, 7],
11430
loc: {
11431
start: { line: 1, column: 6 },
11432
end: { line: 1, column: 7 }
11433
}
11434
}],
11435
kind: 'let',
11436
range: [2, 8],
11437
loc: {
11438
start: { line: 1, column: 2 },
11439
end: { line: 1, column: 8 }
11440
}
11441
}],
11442
range: [0, 9],
11443
loc: {
11444
start: { line: 1, column: 0 },
11445
end: { line: 1, column: 9 }
11446
}
11447
},
11448
11449
'{ let x = 42 }': {
11450
type: 'BlockStatement',
11451
body: [{
11452
type: 'VariableDeclaration',
11453
declarations: [{
11454
type: 'VariableDeclarator',
11455
id: {
11456
type: 'Identifier',
11457
name: 'x',
11458
range: [6, 7],
11459
loc: {
11460
start: { line: 1, column: 6 },
11461
end: { line: 1, column: 7 }
11462
}
11463
},
11464
init: {
11465
type: 'Literal',
11466
value: 42,
11467
raw: '42',
11468
range: [10, 12],
11469
loc: {
11470
start: { line: 1, column: 10 },
11471
end: { line: 1, column: 12 }
11472
}
11473
},
11474
range: [6, 12],
11475
loc: {
11476
start: { line: 1, column: 6 },
11477
end: { line: 1, column: 12 }
11478
}
11479
}],
11480
kind: 'let',
11481
range: [2, 13],
11482
loc: {
11483
start: { line: 1, column: 2 },
11484
end: { line: 1, column: 13 }
11485
}
11486
}],
11487
range: [0, 14],
11488
loc: {
11489
start: { line: 1, column: 0 },
11490
end: { line: 1, column: 14 }
11491
}
11492
},
11493
11494
'{ let x = 14, y = 3, z = 1977 }': {
11495
type: 'BlockStatement',
11496
body: [{
11497
type: 'VariableDeclaration',
11498
declarations: [{
11499
type: 'VariableDeclarator',
11500
id: {
11501
type: 'Identifier',
11502
name: 'x',
11503
range: [6, 7],
11504
loc: {
11505
start: { line: 1, column: 6 },
11506
end: { line: 1, column: 7 }
11507
}
11508
},
11509
init: {
11510
type: 'Literal',
11511
value: 14,
11512
raw: '14',
11513
range: [10, 12],
11514
loc: {
11515
start: { line: 1, column: 10 },
11516
end: { line: 1, column: 12 }
11517
}
11518
},
11519
range: [6, 12],
11520
loc: {
11521
start: { line: 1, column: 6 },
11522
end: { line: 1, column: 12 }
11523
}
11524
}, {
11525
type: 'VariableDeclarator',
11526
id: {
11527
type: 'Identifier',
11528
name: 'y',
11529
range: [14, 15],
11530
loc: {
11531
start: { line: 1, column: 14 },
11532
end: { line: 1, column: 15 }
11533
}
11534
},
11535
init: {
11536
type: 'Literal',
11537
value: 3,
11538
raw: '3',
11539
range: [18, 19],
11540
loc: {
11541
start: { line: 1, column: 18 },
11542
end: { line: 1, column: 19 }
11543
}
11544
},
11545
range: [14, 19],
11546
loc: {
11547
start: { line: 1, column: 14 },
11548
end: { line: 1, column: 19 }
11549
}
11550
}, {
11551
type: 'VariableDeclarator',
11552
id: {
11553
type: 'Identifier',
11554
name: 'z',
11555
range: [21, 22],
11556
loc: {
11557
start: { line: 1, column: 21 },
11558
end: { line: 1, column: 22 }
11559
}
11560
},
11561
init: {
11562
type: 'Literal',
11563
value: 1977,
11564
raw: '1977',
11565
range: [25, 29],
11566
loc: {
11567
start: { line: 1, column: 25 },
11568
end: { line: 1, column: 29 }
11569
}
11570
},
11571
range: [21, 29],
11572
loc: {
11573
start: { line: 1, column: 21 },
11574
end: { line: 1, column: 29 }
11575
}
11576
}],
11577
kind: 'let',
11578
range: [2, 30],
11579
loc: {
11580
start: { line: 1, column: 2 },
11581
end: { line: 1, column: 30 }
11582
}
11583
}],
11584
range: [0, 31],
11585
loc: {
11586
start: { line: 1, column: 0 },
11587
end: { line: 1, column: 31 }
11588
}
11589
}
11590
11591
},
11592
11593
'Const Statement': {
11594
11595
'const x = 42': {
11596
type: 'VariableDeclaration',
11597
declarations: [{
11598
type: 'VariableDeclarator',
11599
id: {
11600
type: 'Identifier',
11601
name: 'x',
11602
range: [6, 7],
11603
loc: {
11604
start: { line: 1, column: 6 },
11605
end: { line: 1, column: 7 }
11606
}
11607
},
11608
init: {
11609
type: 'Literal',
11610
value: 42,
11611
raw: '42',
11612
range: [10, 12],
11613
loc: {
11614
start: { line: 1, column: 10 },
11615
end: { line: 1, column: 12 }
11616
}
11617
},
11618
range: [6, 12],
11619
loc: {
11620
start: { line: 1, column: 6 },
11621
end: { line: 1, column: 12 }
11622
}
11623
}],
11624
kind: 'const',
11625
range: [0, 12],
11626
loc: {
11627
start: { line: 1, column: 0 },
11628
end: { line: 1, column: 12 }
11629
}
11630
},
11631
11632
'{ const x = 42 }': {
11633
type: 'BlockStatement',
11634
body: [{
11635
type: 'VariableDeclaration',
11636
declarations: [{
11637
type: 'VariableDeclarator',
11638
id: {
11639
type: 'Identifier',
11640
name: 'x',
11641
range: [8, 9],
11642
loc: {
11643
start: { line: 1, column: 8 },
11644
end: { line: 1, column: 9 }
11645
}
11646
},
11647
init: {
11648
type: 'Literal',
11649
value: 42,
11650
raw: '42',
11651
range: [12, 14],
11652
loc: {
11653
start: { line: 1, column: 12 },
11654
end: { line: 1, column: 14 }
11655
}
11656
},
11657
range: [8, 14],
11658
loc: {
11659
start: { line: 1, column: 8 },
11660
end: { line: 1, column: 14 }
11661
}
11662
}],
11663
kind: 'const',
11664
range: [2, 15],
11665
loc: {
11666
start: { line: 1, column: 2 },
11667
end: { line: 1, column: 15 }
11668
}
11669
}],
11670
range: [0, 16],
11671
loc: {
11672
start: { line: 1, column: 0 },
11673
end: { line: 1, column: 16 }
11674
}
11675
},
11676
11677
'{ const x = 14, y = 3, z = 1977 }': {
11678
type: 'BlockStatement',
11679
body: [{
11680
type: 'VariableDeclaration',
11681
declarations: [{
11682
type: 'VariableDeclarator',
11683
id: {
11684
type: 'Identifier',
11685
name: 'x',
11686
range: [8, 9],
11687
loc: {
11688
start: { line: 1, column: 8 },
11689
end: { line: 1, column: 9 }
11690
}
11691
},
11692
init: {
11693
type: 'Literal',
11694
value: 14,
11695
raw: '14',
11696
range: [12, 14],
11697
loc: {
11698
start: { line: 1, column: 12 },
11699
end: { line: 1, column: 14 }
11700
}
11701
},
11702
range: [8, 14],
11703
loc: {
11704
start: { line: 1, column: 8 },
11705
end: { line: 1, column: 14 }
11706
}
11707
}, {
11708
type: 'VariableDeclarator',
11709
id: {
11710
type: 'Identifier',
11711
name: 'y',
11712
range: [16, 17],
11713
loc: {
11714
start: { line: 1, column: 16 },
11715
end: { line: 1, column: 17 }
11716
}
11717
},
11718
init: {
11719
type: 'Literal',
11720
value: 3,
11721
raw: '3',
11722
range: [20, 21],
11723
loc: {
11724
start: { line: 1, column: 20 },
11725
end: { line: 1, column: 21 }
11726
}
11727
},
11728
range: [16, 21],
11729
loc: {
11730
start: { line: 1, column: 16 },
11731
end: { line: 1, column: 21 }
11732
}
11733
}, {
11734
type: 'VariableDeclarator',
11735
id: {
11736
type: 'Identifier',
11737
name: 'z',
11738
range: [23, 24],
11739
loc: {
11740
start: { line: 1, column: 23 },
11741
end: { line: 1, column: 24 }
11742
}
11743
},
11744
init: {
11745
type: 'Literal',
11746
value: 1977,
11747
raw: '1977',
11748
range: [27, 31],
11749
loc: {
11750
start: { line: 1, column: 27 },
11751
end: { line: 1, column: 31 }
11752
}
11753
},
11754
range: [23, 31],
11755
loc: {
11756
start: { line: 1, column: 23 },
11757
end: { line: 1, column: 31 }
11758
}
11759
}],
11760
kind: 'const',
11761
range: [2, 32],
11762
loc: {
11763
start: { line: 1, column: 2 },
11764
end: { line: 1, column: 32 }
11765
}
11766
}],
11767
range: [0, 33],
11768
loc: {
11769
start: { line: 1, column: 0 },
11770
end: { line: 1, column: 33 }
11771
}
11772
}
11773
11774
},
11775
11776
'Empty Statement': {
11777
11778
';': {
11779
type: 'EmptyStatement',
11780
range: [0, 1],
11781
loc: {
11782
start: { line: 1, column: 0 },
11783
end: { line: 1, column: 1 }
11784
}
11785
}
11786
11787
},
11788
11789
'Expression Statement': {
11790
11791
'x': {
11792
type: 'ExpressionStatement',
11793
expression: {
11794
type: 'Identifier',
11795
name: 'x',
11796
range: [0, 1],
11797
loc: {
11798
start: { line: 1, column: 0 },
11799
end: { line: 1, column: 1 }
11800
}
11801
},
11802
range: [0, 1],
11803
loc: {
11804
start: { line: 1, column: 0 },
11805
end: { line: 1, column: 1 }
11806
}
11807
},
11808
11809
'x, y': {
11810
type: 'ExpressionStatement',
11811
expression: {
11812
type: 'SequenceExpression',
11813
expressions: [{
11814
type: 'Identifier',
11815
name: 'x',
11816
range: [0, 1],
11817
loc: {
11818
start: { line: 1, column: 0 },
11819
end: { line: 1, column: 1 }
11820
}
11821
}, {
11822
type: 'Identifier',
11823
name: 'y',
11824
range: [3, 4],
11825
loc: {
11826
start: { line: 1, column: 3 },
11827
end: { line: 1, column: 4 }
11828
}
11829
}],
11830
range: [0, 4],
11831
loc: {
11832
start: { line: 1, column: 0 },
11833
end: { line: 1, column: 4 }
11834
}
11835
},
11836
range: [0, 4],
11837
loc: {
11838
start: { line: 1, column: 0 },
11839
end: { line: 1, column: 4 }
11840
}
11841
},
11842
11843
'\\u0061': {
11844
type: 'ExpressionStatement',
11845
expression: {
11846
type: 'Identifier',
11847
name: 'a',
11848
range: [0, 6],
11849
loc: {
11850
start: { line: 1, column: 0 },
11851
end: { line: 1, column: 6 }
11852
}
11853
},
11854
range: [0, 6],
11855
loc: {
11856
start: { line: 1, column: 0 },
11857
end: { line: 1, column: 6 }
11858
}
11859
},
11860
11861
'a\\u0061': {
11862
type: 'ExpressionStatement',
11863
expression: {
11864
type: 'Identifier',
11865
name: 'aa',
11866
range: [0, 7],
11867
loc: {
11868
start: { line: 1, column: 0 },
11869
end: { line: 1, column: 7 }
11870
}
11871
},
11872
range: [0, 7],
11873
loc: {
11874
start: { line: 1, column: 0 },
11875
end: { line: 1, column: 7 }
11876
}
11877
},
11878
11879
'\\u0061a': {
11880
type: 'ExpressionStatement',
11881
expression: {
11882
type: 'Identifier',
11883
name: 'aa',
11884
range: [0, 7],
11885
loc: {
11886
start: { line: 1, column: 0 },
11887
end: { line: 1, column: 7 }
11888
}
11889
},
11890
range: [0, 7],
11891
loc: {
11892
start: { line: 1, column: 0 },
11893
end: { line: 1, column: 7 }
11894
}
11895
},
11896
11897
'\\u0061a ': {
11898
type: 'ExpressionStatement',
11899
expression: {
11900
type: 'Identifier',
11901
name: 'aa',
11902
range: [0, 7],
11903
loc: {
11904
start: { line: 1, column: 0 },
11905
end: { line: 1, column: 7 }
11906
}
11907
},
11908
range: [0, 8],
11909
loc: {
11910
start: { line: 1, column: 0 },
11911
end: { line: 1, column: 8 }
11912
}
11913
}
11914
},
11915
11916
'If Statement': {
11917
11918
'if (morning) goodMorning()': {
11919
type: 'IfStatement',
11920
test: {
11921
type: 'Identifier',
11922
name: 'morning',
11923
range: [4, 11],
11924
loc: {
11925
start: { line: 1, column: 4 },
11926
end: { line: 1, column: 11 }
11927
}
11928
},
11929
consequent: {
11930
type: 'ExpressionStatement',
11931
expression: {
11932
type: 'CallExpression',
11933
callee: {
11934
type: 'Identifier',
11935
name: 'goodMorning',
11936
range: [13, 24],
11937
loc: {
11938
start: { line: 1, column: 13 },
11939
end: { line: 1, column: 24 }
11940
}
11941
},
11942
'arguments': [],
11943
range: [13, 26],
11944
loc: {
11945
start: { line: 1, column: 13 },
11946
end: { line: 1, column: 26 }
11947
}
11948
},
11949
range: [13, 26],
11950
loc: {
11951
start: { line: 1, column: 13 },
11952
end: { line: 1, column: 26 }
11953
}
11954
},
11955
alternate: null,
11956
range: [0, 26],
11957
loc: {
11958
start: { line: 1, column: 0 },
11959
end: { line: 1, column: 26 }
11960
}
11961
},
11962
11963
'if (morning) (function(){})': {
11964
type: 'IfStatement',
11965
test: {
11966
type: 'Identifier',
11967
name: 'morning',
11968
range: [4, 11],
11969
loc: {
11970
start: { line: 1, column: 4 },
11971
end: { line: 1, column: 11 }
11972
}
11973
},
11974
consequent: {
11975
type: 'ExpressionStatement',
11976
expression: {
11977
type: 'FunctionExpression',
11978
id: null,
11979
params: [],
11980
defaults: [],
11981
body: {
11982
type: 'BlockStatement',
11983
body: [],
11984
range: [24, 26],
11985
loc: {
11986
start: { line: 1, column: 24 },
11987
end: { line: 1, column: 26 }
11988
}
11989
},
11990
rest: null,
11991
generator: false,
11992
expression: false,
11993
range: [14, 26],
11994
loc: {
11995
start: { line: 1, column: 14 },
11996
end: { line: 1, column: 26 }
11997
}
11998
},
11999
range: [13, 27],
12000
loc: {
12001
start: { line: 1, column: 13 },
12002
end: { line: 1, column: 27 }
12003
}
12004
},
12005
alternate: null,
12006
range: [0, 27],
12007
loc: {
12008
start: { line: 1, column: 0 },
12009
end: { line: 1, column: 27 }
12010
}
12011
},
12012
12013
'if (morning) var x = 0;': {
12014
type: 'IfStatement',
12015
test: {
12016
type: 'Identifier',
12017
name: 'morning',
12018
range: [4, 11],
12019
loc: {
12020
start: { line: 1, column: 4 },
12021
end: { line: 1, column: 11 }
12022
}
12023
},
12024
consequent: {
12025
type: 'VariableDeclaration',
12026
declarations: [{
12027
type: 'VariableDeclarator',
12028
id: {
12029
type: 'Identifier',
12030
name: 'x',
12031
range: [17, 18],
12032
loc: {
12033
start: { line: 1, column: 17 },
12034
end: { line: 1, column: 18 }
12035
}
12036
},
12037
init: {
12038
type: 'Literal',
12039
value: 0,
12040
raw: '0',
12041
range: [21, 22],
12042
loc: {
12043
start: { line: 1, column: 21 },
12044
end: { line: 1, column: 22 }
12045
}
12046
},
12047
range: [17, 22],
12048
loc: {
12049
start: { line: 1, column: 17 },
12050
end: { line: 1, column: 22 }
12051
}
12052
}],
12053
kind: 'var',
12054
range: [13, 23],
12055
loc: {
12056
start: { line: 1, column: 13 },
12057
end: { line: 1, column: 23 }
12058
}
12059
},
12060
alternate: null,
12061
range: [0, 23],
12062
loc: {
12063
start: { line: 1, column: 0 },
12064
end: { line: 1, column: 23 }
12065
}
12066
},
12067
12068
'if (morning) function a(){}': {
12069
type: 'IfStatement',
12070
test: {
12071
type: 'Identifier',
12072
name: 'morning',
12073
range: [4, 11],
12074
loc: {
12075
start: { line: 1, column: 4 },
12076
end: { line: 1, column: 11 }
12077
}
12078
},
12079
consequent: {
12080
type: 'FunctionDeclaration',
12081
id: {
12082
type: 'Identifier',
12083
name: 'a',
12084
range: [22, 23],
12085
loc: {
12086
start: { line: 1, column: 22 },
12087
end: { line: 1, column: 23 }
12088
}
12089
},
12090
params: [],
12091
defaults: [],
12092
body: {
12093
type: 'BlockStatement',
12094
body: [],
12095
range: [25, 27],
12096
loc: {
12097
start: { line: 1, column: 25 },
12098
end: { line: 1, column: 27 }
12099
}
12100
},
12101
rest: null,
12102
generator: false,
12103
expression: false,
12104
range: [13, 27],
12105
loc: {
12106
start: { line: 1, column: 13 },
12107
end: { line: 1, column: 27 }
12108
}
12109
},
12110
alternate: null,
12111
range: [0, 27],
12112
loc: {
12113
start: { line: 1, column: 0 },
12114
end: { line: 1, column: 27 }
12115
}
12116
},
12117
12118
'if (morning) goodMorning(); else goodDay()': {
12119
type: 'IfStatement',
12120
test: {
12121
type: 'Identifier',
12122
name: 'morning',
12123
range: [4, 11],
12124
loc: {
12125
start: { line: 1, column: 4 },
12126
end: { line: 1, column: 11 }
12127
}
12128
},
12129
consequent: {
12130
type: 'ExpressionStatement',
12131
expression: {
12132
type: 'CallExpression',
12133
callee: {
12134
type: 'Identifier',
12135
name: 'goodMorning',
12136
range: [13, 24],
12137
loc: {
12138
start: { line: 1, column: 13 },
12139
end: { line: 1, column: 24 }
12140
}
12141
},
12142
'arguments': [],
12143
range: [13, 26],
12144
loc: {
12145
start: { line: 1, column: 13 },
12146
end: { line: 1, column: 26 }
12147
}
12148
},
12149
range: [13, 27],
12150
loc: {
12151
start: { line: 1, column: 13 },
12152
end: { line: 1, column: 27 }
12153
}
12154
},
12155
alternate: {
12156
type: 'ExpressionStatement',
12157
expression: {
12158
type: 'CallExpression',
12159
callee: {
12160
type: 'Identifier',
12161
name: 'goodDay',
12162
range: [33, 40],
12163
loc: {
12164
start: { line: 1, column: 33 },
12165
end: { line: 1, column: 40 }
12166
}
12167
},
12168
'arguments': [],
12169
range: [33, 42],
12170
loc: {
12171
start: { line: 1, column: 33 },
12172
end: { line: 1, column: 42 }
12173
}
12174
},
12175
range: [33, 42],
12176
loc: {
12177
start: { line: 1, column: 33 },
12178
end: { line: 1, column: 42 }
12179
}
12180
},
12181
range: [0, 42],
12182
loc: {
12183
start: { line: 1, column: 0 },
12184
end: { line: 1, column: 42 }
12185
}
12186
}
12187
12188
},
12189
12190
'Iteration Statements': {
12191
12192
'do keep(); while (true)': {
12193
type: 'DoWhileStatement',
12194
body: {
12195
type: 'ExpressionStatement',
12196
expression: {
12197
type: 'CallExpression',
12198
callee: {
12199
type: 'Identifier',
12200
name: 'keep',
12201
range: [3, 7],
12202
loc: {
12203
start: { line: 1, column: 3 },
12204
end: { line: 1, column: 7 }
12205
}
12206
},
12207
'arguments': [],
12208
range: [3, 9],
12209
loc: {
12210
start: { line: 1, column: 3 },
12211
end: { line: 1, column: 9 }
12212
}
12213
},
12214
range: [3, 10],
12215
loc: {
12216
start: { line: 1, column: 3 },
12217
end: { line: 1, column: 10 }
12218
}
12219
},
12220
test: {
12221
type: 'Literal',
12222
value: true,
12223
raw: 'true',
12224
range: [18, 22],
12225
loc: {
12226
start: { line: 1, column: 18 },
12227
end: { line: 1, column: 22 }
12228
}
12229
},
12230
range: [0, 23],
12231
loc: {
12232
start: { line: 1, column: 0 },
12233
end: { line: 1, column: 23 }
12234
}
12235
},
12236
12237
'do keep(); while (true);': {
12238
type: 'DoWhileStatement',
12239
body: {
12240
type: 'ExpressionStatement',
12241
expression: {
12242
type: 'CallExpression',
12243
callee: {
12244
type: 'Identifier',
12245
name: 'keep',
12246
range: [3, 7],
12247
loc: {
12248
start: { line: 1, column: 3 },
12249
end: { line: 1, column: 7 }
12250
}
12251
},
12252
'arguments': [],
12253
range: [3, 9],
12254
loc: {
12255
start: { line: 1, column: 3 },
12256
end: { line: 1, column: 9 }
12257
}
12258
},
12259
range: [3, 10],
12260
loc: {
12261
start: { line: 1, column: 3 },
12262
end: { line: 1, column: 10 }
12263
}
12264
},
12265
test: {
12266
type: 'Literal',
12267
value: true,
12268
raw: 'true',
12269
range: [18, 22],
12270
loc: {
12271
start: { line: 1, column: 18 },
12272
end: { line: 1, column: 22 }
12273
}
12274
},
12275
range: [0, 24],
12276
loc: {
12277
start: { line: 1, column: 0 },
12278
end: { line: 1, column: 24 }
12279
}
12280
},
12281
12282
'do { x++; y--; } while (x < 10)': {
12283
type: 'DoWhileStatement',
12284
body: {
12285
type: 'BlockStatement',
12286
body: [{
12287
type: 'ExpressionStatement',
12288
expression: {
12289
type: 'UpdateExpression',
12290
operator: '++',
12291
argument: {
12292
type: 'Identifier',
12293
name: 'x',
12294
range: [5, 6],
12295
loc: {
12296
start: { line: 1, column: 5 },
12297
end: { line: 1, column: 6 }
12298
}
12299
},
12300
prefix: false,
12301
range: [5, 8],
12302
loc: {
12303
start: { line: 1, column: 5 },
12304
end: { line: 1, column: 8 }
12305
}
12306
},
12307
range: [5, 9],
12308
loc: {
12309
start: { line: 1, column: 5 },
12310
end: { line: 1, column: 9 }
12311
}
12312
}, {
12313
type: 'ExpressionStatement',
12314
expression: {
12315
type: 'UpdateExpression',
12316
operator: '--',
12317
argument: {
12318
type: 'Identifier',
12319
name: 'y',
12320
range: [10, 11],
12321
loc: {
12322
start: { line: 1, column: 10 },
12323
end: { line: 1, column: 11 }
12324
}
12325
},
12326
prefix: false,
12327
range: [10, 13],
12328
loc: {
12329
start: { line: 1, column: 10 },
12330
end: { line: 1, column: 13 }
12331
}
12332
},
12333
range: [10, 14],
12334
loc: {
12335
start: { line: 1, column: 10 },
12336
end: { line: 1, column: 14 }
12337
}
12338
}],
12339
range: [3, 16],
12340
loc: {
12341
start: { line: 1, column: 3 },
12342
end: { line: 1, column: 16 }
12343
}
12344
},
12345
test: {
12346
type: 'BinaryExpression',
12347
operator: '<',
12348
left: {
12349
type: 'Identifier',
12350
name: 'x',
12351
range: [24, 25],
12352
loc: {
12353
start: { line: 1, column: 24 },
12354
end: { line: 1, column: 25 }
12355
}
12356
},
12357
right: {
12358
type: 'Literal',
12359
value: 10,
12360
raw: '10',
12361
range: [28, 30],
12362
loc: {
12363
start: { line: 1, column: 28 },
12364
end: { line: 1, column: 30 }
12365
}
12366
},
12367
range: [24, 30],
12368
loc: {
12369
start: { line: 1, column: 24 },
12370
end: { line: 1, column: 30 }
12371
}
12372
},
12373
range: [0, 31],
12374
loc: {
12375
start: { line: 1, column: 0 },
12376
end: { line: 1, column: 31 }
12377
}
12378
},
12379
12380
'{ do { } while (false) false }': {
12381
type: 'BlockStatement',
12382
body: [{
12383
type: 'DoWhileStatement',
12384
body: {
12385
type: 'BlockStatement',
12386
body: [],
12387
range: [5, 8],
12388
loc: {
12389
start: { line: 1, column: 5 },
12390
end: { line: 1, column: 8 }
12391
}
12392
},
12393
test: {
12394
type: 'Literal',
12395
value: false,
12396
raw: 'false',
12397
range: [16, 21],
12398
loc: {
12399
start: { line: 1, column: 16 },
12400
end: { line: 1, column: 21 }
12401
}
12402
},
12403
range: [2, 22],
12404
loc: {
12405
start: { line: 1, column: 2 },
12406
end: { line: 1, column: 22 }
12407
}
12408
}, {
12409
type: 'ExpressionStatement',
12410
expression: {
12411
type: 'Literal',
12412
value: false,
12413
raw: 'false',
12414
range: [23, 28],
12415
loc: {
12416
start: { line: 1, column: 23 },
12417
end: { line: 1, column: 28 }
12418
}
12419
},
12420
range: [23, 29],
12421
loc: {
12422
start: { line: 1, column: 23 },
12423
end: { line: 1, column: 29 }
12424
}
12425
}],
12426
range: [0, 30],
12427
loc: {
12428
start: { line: 1, column: 0 },
12429
end: { line: 1, column: 30 }
12430
}
12431
},
12432
12433
'while (true) doSomething()': {
12434
type: 'WhileStatement',
12435
test: {
12436
type: 'Literal',
12437
value: true,
12438
raw: 'true',
12439
range: [7, 11],
12440
loc: {
12441
start: { line: 1, column: 7 },
12442
end: { line: 1, column: 11 }
12443
}
12444
},
12445
body: {
12446
type: 'ExpressionStatement',
12447
expression: {
12448
type: 'CallExpression',
12449
callee: {
12450
type: 'Identifier',
12451
name: 'doSomething',
12452
range: [13, 24],
12453
loc: {
12454
start: { line: 1, column: 13 },
12455
end: { line: 1, column: 24 }
12456
}
12457
},
12458
'arguments': [],
12459
range: [13, 26],
12460
loc: {
12461
start: { line: 1, column: 13 },
12462
end: { line: 1, column: 26 }
12463
}
12464
},
12465
range: [13, 26],
12466
loc: {
12467
start: { line: 1, column: 13 },
12468
end: { line: 1, column: 26 }
12469
}
12470
},
12471
range: [0, 26],
12472
loc: {
12473
start: { line: 1, column: 0 },
12474
end: { line: 1, column: 26 }
12475
}
12476
},
12477
12478
'while (x < 10) { x++; y--; }': {
12479
type: 'WhileStatement',
12480
test: {
12481
type: 'BinaryExpression',
12482
operator: '<',
12483
left: {
12484
type: 'Identifier',
12485
name: 'x',
12486
range: [7, 8],
12487
loc: {
12488
start: { line: 1, column: 7 },
12489
end: { line: 1, column: 8 }
12490
}
12491
},
12492
right: {
12493
type: 'Literal',
12494
value: 10,
12495
raw: '10',
12496
range: [11, 13],
12497
loc: {
12498
start: { line: 1, column: 11 },
12499
end: { line: 1, column: 13 }
12500
}
12501
},
12502
range: [7, 13],
12503
loc: {
12504
start: { line: 1, column: 7 },
12505
end: { line: 1, column: 13 }
12506
}
12507
},
12508
body: {
12509
type: 'BlockStatement',
12510
body: [{
12511
type: 'ExpressionStatement',
12512
expression: {
12513
type: 'UpdateExpression',
12514
operator: '++',
12515
argument: {
12516
type: 'Identifier',
12517
name: 'x',
12518
range: [17, 18],
12519
loc: {
12520
start: { line: 1, column: 17 },
12521
end: { line: 1, column: 18 }
12522
}
12523
},
12524
prefix: false,
12525
range: [17, 20],
12526
loc: {
12527
start: { line: 1, column: 17 },
12528
end: { line: 1, column: 20 }
12529
}
12530
},
12531
range: [17, 21],
12532
loc: {
12533
start: { line: 1, column: 17 },
12534
end: { line: 1, column: 21 }
12535
}
12536
}, {
12537
type: 'ExpressionStatement',
12538
expression: {
12539
type: 'UpdateExpression',
12540
operator: '--',
12541
argument: {
12542
type: 'Identifier',
12543
name: 'y',
12544
range: [22, 23],
12545
loc: {
12546
start: { line: 1, column: 22 },
12547
end: { line: 1, column: 23 }
12548
}
12549
},
12550
prefix: false,
12551
range: [22, 25],
12552
loc: {
12553
start: { line: 1, column: 22 },
12554
end: { line: 1, column: 25 }
12555
}
12556
},
12557
range: [22, 26],
12558
loc: {
12559
start: { line: 1, column: 22 },
12560
end: { line: 1, column: 26 }
12561
}
12562
}],
12563
range: [15, 28],
12564
loc: {
12565
start: { line: 1, column: 15 },
12566
end: { line: 1, column: 28 }
12567
}
12568
},
12569
range: [0, 28],
12570
loc: {
12571
start: { line: 1, column: 0 },
12572
end: { line: 1, column: 28 }
12573
}
12574
},
12575
12576
'for(;;);': {
12577
type: 'ForStatement',
12578
init: null,
12579
test: null,
12580
update: null,
12581
body: {
12582
type: 'EmptyStatement',
12583
range: [7, 8],
12584
loc: {
12585
start: { line: 1, column: 7 },
12586
end: { line: 1, column: 8 }
12587
}
12588
},
12589
range: [0, 8],
12590
loc: {
12591
start: { line: 1, column: 0 },
12592
end: { line: 1, column: 8 }
12593
}
12594
},
12595
12596
'for(;;){}': {
12597
type: 'ForStatement',
12598
init: null,
12599
test: null,
12600
update: null,
12601
body: {
12602
type: 'BlockStatement',
12603
body: [],
12604
range: [7, 9],
12605
loc: {
12606
start: { line: 1, column: 7 },
12607
end: { line: 1, column: 9 }
12608
}
12609
},
12610
range: [0, 9],
12611
loc: {
12612
start: { line: 1, column: 0 },
12613
end: { line: 1, column: 9 }
12614
}
12615
},
12616
12617
'for(x = 0;;);': {
12618
type: 'ForStatement',
12619
init: {
12620
type: 'AssignmentExpression',
12621
operator: '=',
12622
left: {
12623
type: 'Identifier',
12624
name: 'x',
12625
range: [4, 5],
12626
loc: {
12627
start: { line: 1, column: 4 },
12628
end: { line: 1, column: 5 }
12629
}
12630
},
12631
right: {
12632
type: 'Literal',
12633
value: 0,
12634
raw: '0',
12635
range: [8, 9],
12636
loc: {
12637
start: { line: 1, column: 8 },
12638
end: { line: 1, column: 9 }
12639
}
12640
},
12641
range: [4, 9],
12642
loc: {
12643
start: { line: 1, column: 4 },
12644
end: { line: 1, column: 9 }
12645
}
12646
},
12647
test: null,
12648
update: null,
12649
body: {
12650
type: 'EmptyStatement',
12651
range: [12, 13],
12652
loc: {
12653
start: { line: 1, column: 12 },
12654
end: { line: 1, column: 13 }
12655
}
12656
},
12657
range: [0, 13],
12658
loc: {
12659
start: { line: 1, column: 0 },
12660
end: { line: 1, column: 13 }
12661
}
12662
},
12663
12664
'for(var x = 0;;);': {
12665
type: 'ForStatement',
12666
init: {
12667
type: 'VariableDeclaration',
12668
declarations: [{
12669
type: 'VariableDeclarator',
12670
id: {
12671
type: 'Identifier',
12672
name: 'x',
12673
range: [8, 9],
12674
loc: {
12675
start: { line: 1, column: 8 },
12676
end: { line: 1, column: 9 }
12677
}
12678
},
12679
init: {
12680
type: 'Literal',
12681
value: 0,
12682
raw: '0',
12683
range: [12, 13],
12684
loc: {
12685
start: { line: 1, column: 12 },
12686
end: { line: 1, column: 13 }
12687
}
12688
},
12689
range: [8, 13],
12690
loc: {
12691
start: { line: 1, column: 8 },
12692
end: { line: 1, column: 13 }
12693
}
12694
}],
12695
kind: 'var',
12696
range: [4, 13],
12697
loc: {
12698
start: { line: 1, column: 4 },
12699
end: { line: 1, column: 13 }
12700
}
12701
},
12702
test: null,
12703
update: null,
12704
body: {
12705
type: 'EmptyStatement',
12706
range: [16, 17],
12707
loc: {
12708
start: { line: 1, column: 16 },
12709
end: { line: 1, column: 17 }
12710
}
12711
},
12712
range: [0, 17],
12713
loc: {
12714
start: { line: 1, column: 0 },
12715
end: { line: 1, column: 17 }
12716
}
12717
},
12718
12719
'for(let x = 0;;);': {
12720
type: 'ForStatement',
12721
init: {
12722
type: 'VariableDeclaration',
12723
declarations: [{
12724
type: 'VariableDeclarator',
12725
id: {
12726
type: 'Identifier',
12727
name: 'x',
12728
range: [8, 9],
12729
loc: {
12730
start: { line: 1, column: 8 },
12731
end: { line: 1, column: 9 }
12732
}
12733
},
12734
init: {
12735
type: 'Literal',
12736
value: 0,
12737
raw: '0',
12738
range: [12, 13],
12739
loc: {
12740
start: { line: 1, column: 12 },
12741
end: { line: 1, column: 13 }
12742
}
12743
},
12744
range: [8, 13],
12745
loc: {
12746
start: { line: 1, column: 8 },
12747
end: { line: 1, column: 13 }
12748
}
12749
}],
12750
kind: 'let',
12751
range: [4, 13],
12752
loc: {
12753
start: { line: 1, column: 4 },
12754
end: { line: 1, column: 13 }
12755
}
12756
},
12757
test: null,
12758
update: null,
12759
body: {
12760
type: 'EmptyStatement',
12761
range: [16, 17],
12762
loc: {
12763
start: { line: 1, column: 16 },
12764
end: { line: 1, column: 17 }
12765
}
12766
},
12767
range: [0, 17],
12768
loc: {
12769
start: { line: 1, column: 0 },
12770
end: { line: 1, column: 17 }
12771
}
12772
},
12773
12774
'for(var x = 0, y = 1;;);': {
12775
type: 'ForStatement',
12776
init: {
12777
type: 'VariableDeclaration',
12778
declarations: [{
12779
type: 'VariableDeclarator',
12780
id: {
12781
type: 'Identifier',
12782
name: 'x',
12783
range: [8, 9],
12784
loc: {
12785
start: { line: 1, column: 8 },
12786
end: { line: 1, column: 9 }
12787
}
12788
},
12789
init: {
12790
type: 'Literal',
12791
value: 0,
12792
raw: '0',
12793
range: [12, 13],
12794
loc: {
12795
start: { line: 1, column: 12 },
12796
end: { line: 1, column: 13 }
12797
}
12798
},
12799
range: [8, 13],
12800
loc: {
12801
start: { line: 1, column: 8 },
12802
end: { line: 1, column: 13 }
12803
}
12804
}, {
12805
type: 'VariableDeclarator',
12806
id: {
12807
type: 'Identifier',
12808
name: 'y',
12809
range: [15, 16],
12810
loc: {
12811
start: { line: 1, column: 15 },
12812
end: { line: 1, column: 16 }
12813
}
12814
},
12815
init: {
12816
type: 'Literal',
12817
value: 1,
12818
raw: '1',
12819
range: [19, 20],
12820
loc: {
12821
start: { line: 1, column: 19 },
12822
end: { line: 1, column: 20 }
12823
}
12824
},
12825
range: [15, 20],
12826
loc: {
12827
start: { line: 1, column: 15 },
12828
end: { line: 1, column: 20 }
12829
}
12830
}],
12831
kind: 'var',
12832
range: [4, 20],
12833
loc: {
12834
start: { line: 1, column: 4 },
12835
end: { line: 1, column: 20 }
12836
}
12837
},
12838
test: null,
12839
update: null,
12840
body: {
12841
type: 'EmptyStatement',
12842
range: [23, 24],
12843
loc: {
12844
start: { line: 1, column: 23 },
12845
end: { line: 1, column: 24 }
12846
}
12847
},
12848
range: [0, 24],
12849
loc: {
12850
start: { line: 1, column: 0 },
12851
end: { line: 1, column: 24 }
12852
}
12853
},
12854
12855
'for(x = 0; x < 42;);': {
12856
type: 'ForStatement',
12857
init: {
12858
type: 'AssignmentExpression',
12859
operator: '=',
12860
left: {
12861
type: 'Identifier',
12862
name: 'x',
12863
range: [4, 5],
12864
loc: {
12865
start: { line: 1, column: 4 },
12866
end: { line: 1, column: 5 }
12867
}
12868
},
12869
right: {
12870
type: 'Literal',
12871
value: 0,
12872
raw: '0',
12873
range: [8, 9],
12874
loc: {
12875
start: { line: 1, column: 8 },
12876
end: { line: 1, column: 9 }
12877
}
12878
},
12879
range: [4, 9],
12880
loc: {
12881
start: { line: 1, column: 4 },
12882
end: { line: 1, column: 9 }
12883
}
12884
},
12885
test: {
12886
type: 'BinaryExpression',
12887
operator: '<',
12888
left: {
12889
type: 'Identifier',
12890
name: 'x',
12891
range: [11, 12],
12892
loc: {
12893
start: { line: 1, column: 11 },
12894
end: { line: 1, column: 12 }
12895
}
12896
},
12897
right: {
12898
type: 'Literal',
12899
value: 42,
12900
raw: '42',
12901
range: [15, 17],
12902
loc: {
12903
start: { line: 1, column: 15 },
12904
end: { line: 1, column: 17 }
12905
}
12906
},
12907
range: [11, 17],
12908
loc: {
12909
start: { line: 1, column: 11 },
12910
end: { line: 1, column: 17 }
12911
}
12912
},
12913
update: null,
12914
body: {
12915
type: 'EmptyStatement',
12916
range: [19, 20],
12917
loc: {
12918
start: { line: 1, column: 19 },
12919
end: { line: 1, column: 20 }
12920
}
12921
},
12922
range: [0, 20],
12923
loc: {
12924
start: { line: 1, column: 0 },
12925
end: { line: 1, column: 20 }
12926
}
12927
},
12928
12929
'for(x = 0; x < 42; x++);': {
12930
type: 'ForStatement',
12931
init: {
12932
type: 'AssignmentExpression',
12933
operator: '=',
12934
left: {
12935
type: 'Identifier',
12936
name: 'x',
12937
range: [4, 5],
12938
loc: {
12939
start: { line: 1, column: 4 },
12940
end: { line: 1, column: 5 }
12941
}
12942
},
12943
right: {
12944
type: 'Literal',
12945
value: 0,
12946
raw: '0',
12947
range: [8, 9],
12948
loc: {
12949
start: { line: 1, column: 8 },
12950
end: { line: 1, column: 9 }
12951
}
12952
},
12953
range: [4, 9],
12954
loc: {
12955
start: { line: 1, column: 4 },
12956
end: { line: 1, column: 9 }
12957
}
12958
},
12959
test: {
12960
type: 'BinaryExpression',
12961
operator: '<',
12962
left: {
12963
type: 'Identifier',
12964
name: 'x',
12965
range: [11, 12],
12966
loc: {
12967
start: { line: 1, column: 11 },
12968
end: { line: 1, column: 12 }
12969
}
12970
},
12971
right: {
12972
type: 'Literal',
12973
value: 42,
12974
raw: '42',
12975
range: [15, 17],
12976
loc: {
12977
start: { line: 1, column: 15 },
12978
end: { line: 1, column: 17 }
12979
}
12980
},
12981
range: [11, 17],
12982
loc: {
12983
start: { line: 1, column: 11 },
12984
end: { line: 1, column: 17 }
12985
}
12986
},
12987
update: {
12988
type: 'UpdateExpression',
12989
operator: '++',
12990
argument: {
12991
type: 'Identifier',
12992
name: 'x',
12993
range: [19, 20],
12994
loc: {
12995
start: { line: 1, column: 19 },
12996
end: { line: 1, column: 20 }
12997
}
12998
},
12999
prefix: false,
13000
range: [19, 22],
13001
loc: {
13002
start: { line: 1, column: 19 },
13003
end: { line: 1, column: 22 }
13004
}
13005
},
13006
body: {
13007
type: 'EmptyStatement',
13008
range: [23, 24],
13009
loc: {
13010
start: { line: 1, column: 23 },
13011
end: { line: 1, column: 24 }
13012
}
13013
},
13014
range: [0, 24],
13015
loc: {
13016
start: { line: 1, column: 0 },
13017
end: { line: 1, column: 24 }
13018
}
13019
},
13020
13021
'for(x = 0; x < 42; x++) process(x);': {
13022
type: 'ForStatement',
13023
init: {
13024
type: 'AssignmentExpression',
13025
operator: '=',
13026
left: {
13027
type: 'Identifier',
13028
name: 'x',
13029
range: [4, 5],
13030
loc: {
13031
start: { line: 1, column: 4 },
13032
end: { line: 1, column: 5 }
13033
}
13034
},
13035
right: {
13036
type: 'Literal',
13037
value: 0,
13038
raw: '0',
13039
range: [8, 9],
13040
loc: {
13041
start: { line: 1, column: 8 },
13042
end: { line: 1, column: 9 }
13043
}
13044
},
13045
range: [4, 9],
13046
loc: {
13047
start: { line: 1, column: 4 },
13048
end: { line: 1, column: 9 }
13049
}
13050
},
13051
test: {
13052
type: 'BinaryExpression',
13053
operator: '<',
13054
left: {
13055
type: 'Identifier',
13056
name: 'x',
13057
range: [11, 12],
13058
loc: {
13059
start: { line: 1, column: 11 },
13060
end: { line: 1, column: 12 }
13061
}
13062
},
13063
right: {
13064
type: 'Literal',
13065
value: 42,
13066
raw: '42',
13067
range: [15, 17],
13068
loc: {
13069
start: { line: 1, column: 15 },
13070
end: { line: 1, column: 17 }
13071
}
13072
},
13073
range: [11, 17],
13074
loc: {
13075
start: { line: 1, column: 11 },
13076
end: { line: 1, column: 17 }
13077
}
13078
},
13079
update: {
13080
type: 'UpdateExpression',
13081
operator: '++',
13082
argument: {
13083
type: 'Identifier',
13084
name: 'x',
13085
range: [19, 20],
13086
loc: {
13087
start: { line: 1, column: 19 },
13088
end: { line: 1, column: 20 }
13089
}
13090
},
13091
prefix: false,
13092
range: [19, 22],
13093
loc: {
13094
start: { line: 1, column: 19 },
13095
end: { line: 1, column: 22 }
13096
}
13097
},
13098
body: {
13099
type: 'ExpressionStatement',
13100
expression: {
13101
type: 'CallExpression',
13102
callee: {
13103
type: 'Identifier',
13104
name: 'process',
13105
range: [24, 31],
13106
loc: {
13107
start: { line: 1, column: 24 },
13108
end: { line: 1, column: 31 }
13109
}
13110
},
13111
'arguments': [{
13112
type: 'Identifier',
13113
name: 'x',
13114
range: [32, 33],
13115
loc: {
13116
start: { line: 1, column: 32 },
13117
end: { line: 1, column: 33 }
13118
}
13119
}],
13120
range: [24, 34],
13121
loc: {
13122
start: { line: 1, column: 24 },
13123
end: { line: 1, column: 34 }
13124
}
13125
},
13126
range: [24, 35],
13127
loc: {
13128
start: { line: 1, column: 24 },
13129
end: { line: 1, column: 35 }
13130
}
13131
},
13132
range: [0, 35],
13133
loc: {
13134
start: { line: 1, column: 0 },
13135
end: { line: 1, column: 35 }
13136
}
13137
},
13138
13139
'for(x in list) process(x);': {
13140
type: 'ForInStatement',
13141
left: {
13142
type: 'Identifier',
13143
name: 'x',
13144
range: [4, 5],
13145
loc: {
13146
start: { line: 1, column: 4 },
13147
end: { line: 1, column: 5 }
13148
}
13149
},
13150
right: {
13151
type: 'Identifier',
13152
name: 'list',
13153
range: [9, 13],
13154
loc: {
13155
start: { line: 1, column: 9 },
13156
end: { line: 1, column: 13 }
13157
}
13158
},
13159
body: {
13160
type: 'ExpressionStatement',
13161
expression: {
13162
type: 'CallExpression',
13163
callee: {
13164
type: 'Identifier',
13165
name: 'process',
13166
range: [15, 22],
13167
loc: {
13168
start: { line: 1, column: 15 },
13169
end: { line: 1, column: 22 }
13170
}
13171
},
13172
'arguments': [{
13173
type: 'Identifier',
13174
name: 'x',
13175
range: [23, 24],
13176
loc: {
13177
start: { line: 1, column: 23 },
13178
end: { line: 1, column: 24 }
13179
}
13180
}],
13181
range: [15, 25],
13182
loc: {
13183
start: { line: 1, column: 15 },
13184
end: { line: 1, column: 25 }
13185
}
13186
},
13187
range: [15, 26],
13188
loc: {
13189
start: { line: 1, column: 15 },
13190
end: { line: 1, column: 26 }
13191
}
13192
},
13193
each: false,
13194
range: [0, 26],
13195
loc: {
13196
start: { line: 1, column: 0 },
13197
end: { line: 1, column: 26 }
13198
}
13199
},
13200
13201
'for (var x in list) process(x);': {
13202
type: 'ForInStatement',
13203
left: {
13204
type: 'VariableDeclaration',
13205
declarations: [{
13206
type: 'VariableDeclarator',
13207
id: {
13208
type: 'Identifier',
13209
name: 'x',
13210
range: [9, 10],
13211
loc: {
13212
start: { line: 1, column: 9 },
13213
end: { line: 1, column: 10 }
13214
}
13215
},
13216
init: null,
13217
range: [9, 10],
13218
loc: {
13219
start: { line: 1, column: 9 },
13220
end: { line: 1, column: 10 }
13221
}
13222
}],
13223
kind: 'var',
13224
range: [5, 10],
13225
loc: {
13226
start: { line: 1, column: 5 },
13227
end: { line: 1, column: 10 }
13228
}
13229
},
13230
right: {
13231
type: 'Identifier',
13232
name: 'list',
13233
range: [14, 18],
13234
loc: {
13235
start: { line: 1, column: 14 },
13236
end: { line: 1, column: 18 }
13237
}
13238
},
13239
body: {
13240
type: 'ExpressionStatement',
13241
expression: {
13242
type: 'CallExpression',
13243
callee: {
13244
type: 'Identifier',
13245
name: 'process',
13246
range: [20, 27],
13247
loc: {
13248
start: { line: 1, column: 20 },
13249
end: { line: 1, column: 27 }
13250
}
13251
},
13252
'arguments': [{
13253
type: 'Identifier',
13254
name: 'x',
13255
range: [28, 29],
13256
loc: {
13257
start: { line: 1, column: 28 },
13258
end: { line: 1, column: 29 }
13259
}
13260
}],
13261
range: [20, 30],
13262
loc: {
13263
start: { line: 1, column: 20 },
13264
end: { line: 1, column: 30 }
13265
}
13266
},
13267
range: [20, 31],
13268
loc: {
13269
start: { line: 1, column: 20 },
13270
end: { line: 1, column: 31 }
13271
}
13272
},
13273
each: false,
13274
range: [0, 31],
13275
loc: {
13276
start: { line: 1, column: 0 },
13277
end: { line: 1, column: 31 }
13278
}
13279
},
13280
13281
'for (let x in list) process(x);': {
13282
type: 'ForInStatement',
13283
left: {
13284
type: 'VariableDeclaration',
13285
declarations: [{
13286
type: 'VariableDeclarator',
13287
id: {
13288
type: 'Identifier',
13289
name: 'x',
13290
range: [9, 10],
13291
loc: {
13292
start: { line: 1, column: 9 },
13293
end: { line: 1, column: 10 }
13294
}
13295
},
13296
init: null,
13297
range: [9, 10],
13298
loc: {
13299
start: { line: 1, column: 9 },
13300
end: { line: 1, column: 10 }
13301
}
13302
}],
13303
kind: 'let',
13304
range: [5, 10],
13305
loc: {
13306
start: { line: 1, column: 5 },
13307
end: { line: 1, column: 10 }
13308
}
13309
},
13310
right: {
13311
type: 'Identifier',
13312
name: 'list',
13313
range: [14, 18],
13314
loc: {
13315
start: { line: 1, column: 14 },
13316
end: { line: 1, column: 18 }
13317
}
13318
},
13319
body: {
13320
type: 'ExpressionStatement',
13321
expression: {
13322
type: 'CallExpression',
13323
callee: {
13324
type: 'Identifier',
13325
name: 'process',
13326
range: [20, 27],
13327
loc: {
13328
start: { line: 1, column: 20 },
13329
end: { line: 1, column: 27 }
13330
}
13331
},
13332
'arguments': [{
13333
type: 'Identifier',
13334
name: 'x',
13335
range: [28, 29],
13336
loc: {
13337
start: { line: 1, column: 28 },
13338
end: { line: 1, column: 29 }
13339
}
13340
}],
13341
range: [20, 30],
13342
loc: {
13343
start: { line: 1, column: 20 },
13344
end: { line: 1, column: 30 }
13345
}
13346
},
13347
range: [20, 31],
13348
loc: {
13349
start: { line: 1, column: 20 },
13350
end: { line: 1, column: 31 }
13351
}
13352
},
13353
each: false,
13354
range: [0, 31],
13355
loc: {
13356
start: { line: 1, column: 0 },
13357
end: { line: 1, column: 31 }
13358
}
13359
},
13360
13361
'for (var i = function() { return 10 in [] } of list) process(x);': {
13362
type: 'ForOfStatement',
13363
left: {
13364
type: 'VariableDeclaration',
13365
declarations: [{
13366
type: 'VariableDeclarator',
13367
id: {
13368
type: 'Identifier',
13369
name: 'i',
13370
range: [9, 10],
13371
loc: {
13372
start: { line: 1, column: 9 },
13373
end: { line: 1, column: 10 }
13374
}
13375
},
13376
init: {
13377
type: 'FunctionExpression',
13378
id: null,
13379
params: [],
13380
defaults: [],
13381
body: {
13382
type: 'BlockStatement',
13383
body: [{
13384
type: 'ReturnStatement',
13385
argument: {
13386
type: 'BinaryExpression',
13387
operator: 'in',
13388
left: {
13389
type: 'Literal',
13390
value: 10,
13391
raw: '10',
13392
range: [33, 35],
13393
loc: {
13394
start: { line: 1, column: 33 },
13395
end: { line: 1, column: 35 }
13396
}
13397
},
13398
right: {
13399
type: 'ArrayExpression',
13400
elements: [],
13401
range: [39, 41],
13402
loc: {
13403
start: { line: 1, column: 39 },
13404
end: { line: 1, column: 41 }
13405
}
13406
},
13407
range: [33, 41],
13408
loc: {
13409
start: { line: 1, column: 33 },
13410
end: { line: 1, column: 41 }
13411
}
13412
},
13413
range: [26, 42],
13414
loc: {
13415
start: { line: 1, column: 26 },
13416
end: { line: 1, column: 42 }
13417
}
13418
}],
13419
range: [24, 43],
13420
loc: {
13421
start: { line: 1, column: 24 },
13422
end: { line: 1, column: 43 }
13423
}
13424
},
13425
rest: null,
13426
generator: false,
13427
expression: false,
13428
range: [13, 43],
13429
loc: {
13430
start: { line: 1, column: 13 },
13431
end: { line: 1, column: 43 }
13432
}
13433
},
13434
range: [9, 43],
13435
loc: {
13436
start: { line: 1, column: 9 },
13437
end: { line: 1, column: 43 }
13438
}
13439
}],
13440
kind: 'var',
13441
range: [5, 43],
13442
loc: {
13443
start: { line: 1, column: 5 },
13444
end: { line: 1, column: 43 }
13445
}
13446
},
13447
right: {
13448
type: 'Identifier',
13449
name: 'list',
13450
range: [47, 51],
13451
loc: {
13452
start: { line: 1, column: 47 },
13453
end: { line: 1, column: 51 }
13454
}
13455
},
13456
body: {
13457
type: 'ExpressionStatement',
13458
expression: {
13459
type: 'CallExpression',
13460
callee: {
13461
type: 'Identifier',
13462
name: 'process',
13463
range: [53, 60],
13464
loc: {
13465
start: { line: 1, column: 53 },
13466
end: { line: 1, column: 60 }
13467
}
13468
},
13469
'arguments': [{
13470
type: 'Identifier',
13471
name: 'x',
13472
range: [61, 62],
13473
loc: {
13474
start: { line: 1, column: 61 },
13475
end: { line: 1, column: 62 }
13476
}
13477
}],
13478
range: [53, 63],
13479
loc: {
13480
start: { line: 1, column: 53 },
13481
end: { line: 1, column: 63 }
13482
}
13483
},
13484
range: [53, 64],
13485
loc: {
13486
start: { line: 1, column: 53 },
13487
end: { line: 1, column: 64 }
13488
}
13489
},
13490
range: [0, 64],
13491
loc: {
13492
start: { line: 1, column: 0 },
13493
end: { line: 1, column: 64 }
13494
}
13495
}
13496
13497
},
13498
13499
'continue statement': {
13500
13501
'while (true) { continue; }': {
13502
type: 'WhileStatement',
13503
test: {
13504
type: 'Literal',
13505
value: true,
13506
raw: 'true',
13507
range: [7, 11],
13508
loc: {
13509
start: { line: 1, column: 7 },
13510
end: { line: 1, column: 11 }
13511
}
13512
},
13513
body: {
13514
type: 'BlockStatement',
13515
body: [
13516
{
13517
type: 'ContinueStatement',
13518
label: null,
13519
range: [15, 24],
13520
loc: {
13521
start: { line: 1, column: 15 },
13522
end: { line: 1, column: 24 }
13523
}
13524
}
13525
],
13526
range: [13, 26],
13527
loc: {
13528
start: { line: 1, column: 13 },
13529
end: { line: 1, column: 26 }
13530
}
13531
},
13532
range: [0, 26],
13533
loc: {
13534
start: { line: 1, column: 0 },
13535
end: { line: 1, column: 26 }
13536
}
13537
},
13538
13539
'while (true) { continue }': {
13540
type: 'WhileStatement',
13541
test: {
13542
type: 'Literal',
13543
value: true,
13544
raw: 'true',
13545
range: [7, 11],
13546
loc: {
13547
start: { line: 1, column: 7 },
13548
end: { line: 1, column: 11 }
13549
}
13550
},
13551
body: {
13552
type: 'BlockStatement',
13553
body: [
13554
{
13555
type: 'ContinueStatement',
13556
label: null,
13557
range: [15, 24],
13558
loc: {
13559
start: { line: 1, column: 15 },
13560
end: { line: 1, column: 24 }
13561
}
13562
}
13563
],
13564
range: [13, 25],
13565
loc: {
13566
start: { line: 1, column: 13 },
13567
end: { line: 1, column: 25 }
13568
}
13569
},
13570
range: [0, 25],
13571
loc: {
13572
start: { line: 1, column: 0 },
13573
end: { line: 1, column: 25 }
13574
}
13575
},
13576
13577
'done: while (true) { continue done }': {
13578
type: 'LabeledStatement',
13579
label: {
13580
type: 'Identifier',
13581
name: 'done',
13582
range: [0, 4],
13583
loc: {
13584
start: { line: 1, column: 0 },
13585
end: { line: 1, column: 4 }
13586
}
13587
},
13588
body: {
13589
type: 'WhileStatement',
13590
test: {
13591
type: 'Literal',
13592
value: true,
13593
raw: 'true',
13594
range: [13, 17],
13595
loc: {
13596
start: { line: 1, column: 13 },
13597
end: { line: 1, column: 17 }
13598
}
13599
},
13600
body: {
13601
type: 'BlockStatement',
13602
body: [
13603
{
13604
type: 'ContinueStatement',
13605
label: {
13606
type: 'Identifier',
13607
name: 'done',
13608
range: [30, 34],
13609
loc: {
13610
start: { line: 1, column: 30 },
13611
end: { line: 1, column: 34 }
13612
}
13613
},
13614
range: [21, 35],
13615
loc: {
13616
start: { line: 1, column: 21 },
13617
end: { line: 1, column: 35 }
13618
}
13619
}
13620
],
13621
range: [19, 36],
13622
loc: {
13623
start: { line: 1, column: 19 },
13624
end: { line: 1, column: 36 }
13625
}
13626
},
13627
range: [6, 36],
13628
loc: {
13629
start: { line: 1, column: 6 },
13630
end: { line: 1, column: 36 }
13631
}
13632
},
13633
range: [0, 36],
13634
loc: {
13635
start: { line: 1, column: 0 },
13636
end: { line: 1, column: 36 }
13637
}
13638
},
13639
13640
'done: while (true) { continue done; }': {
13641
type: 'LabeledStatement',
13642
label: {
13643
type: 'Identifier',
13644
name: 'done',
13645
range: [0, 4],
13646
loc: {
13647
start: { line: 1, column: 0 },
13648
end: { line: 1, column: 4 }
13649
}
13650
},
13651
body: {
13652
type: 'WhileStatement',
13653
test: {
13654
type: 'Literal',
13655
value: true,
13656
raw: 'true',
13657
range: [13, 17],
13658
loc: {
13659
start: { line: 1, column: 13 },
13660
end: { line: 1, column: 17 }
13661
}
13662
},
13663
body: {
13664
type: 'BlockStatement',
13665
body: [
13666
{
13667
type: 'ContinueStatement',
13668
label: {
13669
type: 'Identifier',
13670
name: 'done',
13671
range: [30, 34],
13672
loc: {
13673
start: { line: 1, column: 30 },
13674
end: { line: 1, column: 34 }
13675
}
13676
},
13677
range: [21, 35],
13678
loc: {
13679
start: { line: 1, column: 21 },
13680
end: { line: 1, column: 35 }
13681
}
13682
}
13683
],
13684
range: [19, 37],
13685
loc: {
13686
start: { line: 1, column: 19 },
13687
end: { line: 1, column: 37 }
13688
}
13689
},
13690
range: [6, 37],
13691
loc: {
13692
start: { line: 1, column: 6 },
13693
end: { line: 1, column: 37 }
13694
}
13695
},
13696
range: [0, 37],
13697
loc: {
13698
start: { line: 1, column: 0 },
13699
end: { line: 1, column: 37 }
13700
}
13701
},
13702
13703
'__proto__: while (true) { continue __proto__; }': {
13704
type: 'LabeledStatement',
13705
label: {
13706
type: 'Identifier',
13707
name: '__proto__',
13708
range: [0, 9],
13709
loc: {
13710
start: { line: 1, column: 0 },
13711
end: { line: 1, column: 9 }
13712
}
13713
},
13714
body: {
13715
type: 'WhileStatement',
13716
test: {
13717
type: 'Literal',
13718
value: true,
13719
raw: 'true',
13720
range: [18, 22],
13721
loc: {
13722
start: { line: 1, column: 18 },
13723
end: { line: 1, column: 22 }
13724
}
13725
},
13726
body: {
13727
type: 'BlockStatement',
13728
body: [{
13729
type: 'ContinueStatement',
13730
label: {
13731
type: 'Identifier',
13732
name: '__proto__',
13733
range: [35, 44],
13734
loc: {
13735
start: { line: 1, column: 35 },
13736
end: { line: 1, column: 44 }
13737
}
13738
},
13739
range: [26, 45],
13740
loc: {
13741
start: { line: 1, column: 26 },
13742
end: { line: 1, column: 45 }
13743
}
13744
}],
13745
range: [24, 47],
13746
loc: {
13747
start: { line: 1, column: 24 },
13748
end: { line: 1, column: 47 }
13749
}
13750
},
13751
range: [11, 47],
13752
loc: {
13753
start: { line: 1, column: 11 },
13754
end: { line: 1, column: 47 }
13755
}
13756
},
13757
range: [0, 47],
13758
loc: {
13759
start: { line: 1, column: 0 },
13760
end: { line: 1, column: 47 }
13761
}
13762
}
13763
13764
},
13765
13766
'break statement': {
13767
13768
'while (true) { break }': {
13769
type: 'WhileStatement',
13770
test: {
13771
type: 'Literal',
13772
value: true,
13773
raw: 'true',
13774
range: [7, 11],
13775
loc: {
13776
start: { line: 1, column: 7 },
13777
end: { line: 1, column: 11 }
13778
}
13779
},
13780
body: {
13781
type: 'BlockStatement',
13782
body: [
13783
{
13784
type: 'BreakStatement',
13785
label: null,
13786
range: [15, 21],
13787
loc: {
13788
start: { line: 1, column: 15 },
13789
end: { line: 1, column: 21 }
13790
}
13791
}
13792
],
13793
range: [13, 22],
13794
loc: {
13795
start: { line: 1, column: 13 },
13796
end: { line: 1, column: 22 }
13797
}
13798
},
13799
range: [0, 22],
13800
loc: {
13801
start: { line: 1, column: 0 },
13802
end: { line: 1, column: 22 }
13803
}
13804
},
13805
13806
'done: while (true) { break done }': {
13807
type: 'LabeledStatement',
13808
label: {
13809
type: 'Identifier',
13810
name: 'done',
13811
range: [0, 4],
13812
loc: {
13813
start: { line: 1, column: 0 },
13814
end: { line: 1, column: 4 }
13815
}
13816
},
13817
body: {
13818
type: 'WhileStatement',
13819
test: {
13820
type: 'Literal',
13821
value: true,
13822
raw: 'true',
13823
range: [13, 17],
13824
loc: {
13825
start: { line: 1, column: 13 },
13826
end: { line: 1, column: 17 }
13827
}
13828
},
13829
body: {
13830
type: 'BlockStatement',
13831
body: [
13832
{
13833
type: 'BreakStatement',
13834
label: {
13835
type: 'Identifier',
13836
name: 'done',
13837
range: [27, 31],
13838
loc: {
13839
start: { line: 1, column: 27 },
13840
end: { line: 1, column: 31 }
13841
}
13842
},
13843
range: [21, 32],
13844
loc: {
13845
start: { line: 1, column: 21 },
13846
end: { line: 1, column: 32 }
13847
}
13848
}
13849
],
13850
range: [19, 33],
13851
loc: {
13852
start: { line: 1, column: 19 },
13853
end: { line: 1, column: 33 }
13854
}
13855
},
13856
range: [6, 33],
13857
loc: {
13858
start: { line: 1, column: 6 },
13859
end: { line: 1, column: 33 }
13860
}
13861
},
13862
range: [0, 33],
13863
loc: {
13864
start: { line: 1, column: 0 },
13865
end: { line: 1, column: 33 }
13866
}
13867
},
13868
13869
'done: while (true) { break done; }': {
13870
type: 'LabeledStatement',
13871
label: {
13872
type: 'Identifier',
13873
name: 'done',
13874
range: [0, 4],
13875
loc: {
13876
start: { line: 1, column: 0 },
13877
end: { line: 1, column: 4 }
13878
}
13879
},
13880
body: {
13881
type: 'WhileStatement',
13882
test: {
13883
type: 'Literal',
13884
value: true,
13885
raw: 'true',
13886
range: [13, 17],
13887
loc: {
13888
start: { line: 1, column: 13 },
13889
end: { line: 1, column: 17 }
13890
}
13891
},
13892
body: {
13893
type: 'BlockStatement',
13894
body: [
13895
{
13896
type: 'BreakStatement',
13897
label: {
13898
type: 'Identifier',
13899
name: 'done',
13900
range: [27, 31],
13901
loc: {
13902
start: { line: 1, column: 27 },
13903
end: { line: 1, column: 31 }
13904
}
13905
},
13906
range: [21, 32],
13907
loc: {
13908
start: { line: 1, column: 21 },
13909
end: { line: 1, column: 32 }
13910
}
13911
}
13912
],
13913
range: [19, 34],
13914
loc: {
13915
start: { line: 1, column: 19 },
13916
end: { line: 1, column: 34 }
13917
}
13918
},
13919
range: [6, 34],
13920
loc: {
13921
start: { line: 1, column: 6 },
13922
end: { line: 1, column: 34 }
13923
}
13924
},
13925
range: [0, 34],
13926
loc: {
13927
start: { line: 1, column: 0 },
13928
end: { line: 1, column: 34 }
13929
}
13930
},
13931
13932
'__proto__: while (true) { break __proto__; }': {
13933
type: 'LabeledStatement',
13934
label: {
13935
type: 'Identifier',
13936
name: '__proto__',
13937
range: [0, 9],
13938
loc: {
13939
start: { line: 1, column: 0 },
13940
end: { line: 1, column: 9 }
13941
}
13942
},
13943
body: {
13944
type: 'WhileStatement',
13945
test: {
13946
type: 'Literal',
13947
value: true,
13948
raw: 'true',
13949
range: [18, 22],
13950
loc: {
13951
start: { line: 1, column: 18 },
13952
end: { line: 1, column: 22 }
13953
}
13954
},
13955
body: {
13956
type: 'BlockStatement',
13957
body: [{
13958
type: 'BreakStatement',
13959
label: {
13960
type: 'Identifier',
13961
name: '__proto__',
13962
range: [32, 41],
13963
loc: {
13964
start: { line: 1, column: 32 },
13965
end: { line: 1, column: 41 }
13966
}
13967
},
13968
range: [26, 42],
13969
loc: {
13970
start: { line: 1, column: 26 },
13971
end: { line: 1, column: 42 }
13972
}
13973
}],
13974
range: [24, 44],
13975
loc: {
13976
start: { line: 1, column: 24 },
13977
end: { line: 1, column: 44 }
13978
}
13979
},
13980
range: [11, 44],
13981
loc: {
13982
start: { line: 1, column: 11 },
13983
end: { line: 1, column: 44 }
13984
}
13985
},
13986
range: [0, 44],
13987
loc: {
13988
start: { line: 1, column: 0 },
13989
end: { line: 1, column: 44 }
13990
}
13991
}
13992
13993
},
13994
13995
'return statement': {
13996
13997
'(function(){ return })': {
13998
type: 'ExpressionStatement',
13999
expression: {
14000
type: 'FunctionExpression',
14001
id: null,
14002
params: [],
14003
defaults: [],
14004
body: {
14005
type: 'BlockStatement',
14006
body: [
14007
{
14008
type: 'ReturnStatement',
14009
argument: null,
14010
range: [13, 20],
14011
loc: {
14012
start: { line: 1, column: 13 },
14013
end: { line: 1, column: 20 }
14014
}
14015
}
14016
],
14017
range: [11, 21],
14018
loc: {
14019
start: { line: 1, column: 11 },
14020
end: { line: 1, column: 21 }
14021
}
14022
},
14023
rest: null,
14024
generator: false,
14025
expression: false,
14026
range: [1, 21],
14027
loc: {
14028
start: { line: 1, column: 1 },
14029
end: { line: 1, column: 21 }
14030
}
14031
},
14032
range: [0, 22],
14033
loc: {
14034
start: { line: 1, column: 0 },
14035
end: { line: 1, column: 22 }
14036
}
14037
},
14038
14039
'(function(){ return; })': {
14040
type: 'ExpressionStatement',
14041
expression: {
14042
type: 'FunctionExpression',
14043
id: null,
14044
params: [],
14045
defaults: [],
14046
body: {
14047
type: 'BlockStatement',
14048
body: [
14049
{
14050
type: 'ReturnStatement',
14051
argument: null,
14052
range: [13, 20],
14053
loc: {
14054
start: { line: 1, column: 13 },
14055
end: { line: 1, column: 20 }
14056
}
14057
}
14058
],
14059
range: [11, 22],
14060
loc: {
14061
start: { line: 1, column: 11 },
14062
end: { line: 1, column: 22 }
14063
}
14064
},
14065
rest: null,
14066
generator: false,
14067
expression: false,
14068
range: [1, 22],
14069
loc: {
14070
start: { line: 1, column: 1 },
14071
end: { line: 1, column: 22 }
14072
}
14073
},
14074
range: [0, 23],
14075
loc: {
14076
start: { line: 1, column: 0 },
14077
end: { line: 1, column: 23 }
14078
}
14079
},
14080
14081
'(function(){ return x; })': {
14082
type: 'ExpressionStatement',
14083
expression: {
14084
type: 'FunctionExpression',
14085
id: null,
14086
params: [],
14087
defaults: [],
14088
body: {
14089
type: 'BlockStatement',
14090
body: [
14091
{
14092
type: 'ReturnStatement',
14093
argument: {
14094
type: 'Identifier',
14095
name: 'x',
14096
range: [20, 21],
14097
loc: {
14098
start: { line: 1, column: 20 },
14099
end: { line: 1, column: 21 }
14100
}
14101
},
14102
range: [13, 22],
14103
loc: {
14104
start: { line: 1, column: 13 },
14105
end: { line: 1, column: 22 }
14106
}
14107
}
14108
],
14109
range: [11, 24],
14110
loc: {
14111
start: { line: 1, column: 11 },
14112
end: { line: 1, column: 24 }
14113
}
14114
},
14115
rest: null,
14116
generator: false,
14117
expression: false,
14118
range: [1, 24],
14119
loc: {
14120
start: { line: 1, column: 1 },
14121
end: { line: 1, column: 24 }
14122
}
14123
},
14124
range: [0, 25],
14125
loc: {
14126
start: { line: 1, column: 0 },
14127
end: { line: 1, column: 25 }
14128
}
14129
},
14130
14131
'(function(){ return x * y })': {
14132
type: 'ExpressionStatement',
14133
expression: {
14134
type: 'FunctionExpression',
14135
id: null,
14136
params: [],
14137
defaults: [],
14138
body: {
14139
type: 'BlockStatement',
14140
body: [
14141
{
14142
type: 'ReturnStatement',
14143
argument: {
14144
type: 'BinaryExpression',
14145
operator: '*',
14146
left: {
14147
type: 'Identifier',
14148
name: 'x',
14149
range: [20, 21],
14150
loc: {
14151
start: { line: 1, column: 20 },
14152
end: { line: 1, column: 21 }
14153
}
14154
},
14155
right: {
14156
type: 'Identifier',
14157
name: 'y',
14158
range: [24, 25],
14159
loc: {
14160
start: { line: 1, column: 24 },
14161
end: { line: 1, column: 25 }
14162
}
14163
},
14164
range: [20, 25],
14165
loc: {
14166
start: { line: 1, column: 20 },
14167
end: { line: 1, column: 25 }
14168
}
14169
},
14170
range: [13, 26],
14171
loc: {
14172
start: { line: 1, column: 13 },
14173
end: { line: 1, column: 26 }
14174
}
14175
}
14176
],
14177
range: [11, 27],
14178
loc: {
14179
start: { line: 1, column: 11 },
14180
end: { line: 1, column: 27 }
14181
}
14182
},
14183
rest: null,
14184
generator: false,
14185
expression: false,
14186
range: [1, 27],
14187
loc: {
14188
start: { line: 1, column: 1 },
14189
end: { line: 1, column: 27 }
14190
}
14191
},
14192
range: [0, 28],
14193
loc: {
14194
start: { line: 1, column: 0 },
14195
end: { line: 1, column: 28 }
14196
}
14197
}
14198
},
14199
14200
'with statement': {
14201
14202
'with (x) foo = bar': {
14203
type: 'WithStatement',
14204
object: {
14205
type: 'Identifier',
14206
name: 'x',
14207
range: [6, 7],
14208
loc: {
14209
start: { line: 1, column: 6 },
14210
end: { line: 1, column: 7 }
14211
}
14212
},
14213
body: {
14214
type: 'ExpressionStatement',
14215
expression: {
14216
type: 'AssignmentExpression',
14217
operator: '=',
14218
left: {
14219
type: 'Identifier',
14220
name: 'foo',
14221
range: [9, 12],
14222
loc: {
14223
start: { line: 1, column: 9 },
14224
end: { line: 1, column: 12 }
14225
}
14226
},
14227
right: {
14228
type: 'Identifier',
14229
name: 'bar',
14230
range: [15, 18],
14231
loc: {
14232
start: { line: 1, column: 15 },
14233
end: { line: 1, column: 18 }
14234
}
14235
},
14236
range: [9, 18],
14237
loc: {
14238
start: { line: 1, column: 9 },
14239
end: { line: 1, column: 18 }
14240
}
14241
},
14242
range: [9, 18],
14243
loc: {
14244
start: { line: 1, column: 9 },
14245
end: { line: 1, column: 18 }
14246
}
14247
},
14248
range: [0, 18],
14249
loc: {
14250
start: { line: 1, column: 0 },
14251
end: { line: 1, column: 18 }
14252
}
14253
},
14254
14255
'with (x) foo = bar;': {
14256
type: 'WithStatement',
14257
object: {
14258
type: 'Identifier',
14259
name: 'x',
14260
range: [6, 7],
14261
loc: {
14262
start: { line: 1, column: 6 },
14263
end: { line: 1, column: 7 }
14264
}
14265
},
14266
body: {
14267
type: 'ExpressionStatement',
14268
expression: {
14269
type: 'AssignmentExpression',
14270
operator: '=',
14271
left: {
14272
type: 'Identifier',
14273
name: 'foo',
14274
range: [9, 12],
14275
loc: {
14276
start: { line: 1, column: 9 },
14277
end: { line: 1, column: 12 }
14278
}
14279
},
14280
right: {
14281
type: 'Identifier',
14282
name: 'bar',
14283
range: [15, 18],
14284
loc: {
14285
start: { line: 1, column: 15 },
14286
end: { line: 1, column: 18 }
14287
}
14288
},
14289
range: [9, 18],
14290
loc: {
14291
start: { line: 1, column: 9 },
14292
end: { line: 1, column: 18 }
14293
}
14294
},
14295
range: [9, 19],
14296
loc: {
14297
start: { line: 1, column: 9 },
14298
end: { line: 1, column: 19 }
14299
}
14300
},
14301
range: [0, 19],
14302
loc: {
14303
start: { line: 1, column: 0 },
14304
end: { line: 1, column: 19 }
14305
}
14306
},
14307
14308
'with (x) { foo = bar }': {
14309
type: 'WithStatement',
14310
object: {
14311
type: 'Identifier',
14312
name: 'x',
14313
range: [6, 7],
14314
loc: {
14315
start: { line: 1, column: 6 },
14316
end: { line: 1, column: 7 }
14317
}
14318
},
14319
body: {
14320
type: 'BlockStatement',
14321
body: [{
14322
type: 'ExpressionStatement',
14323
expression: {
14324
type: 'AssignmentExpression',
14325
operator: '=',
14326
left: {
14327
type: 'Identifier',
14328
name: 'foo',
14329
range: [11, 14],
14330
loc: {
14331
start: { line: 1, column: 11 },
14332
end: { line: 1, column: 14 }
14333
}
14334
},
14335
right: {
14336
type: 'Identifier',
14337
name: 'bar',
14338
range: [17, 20],
14339
loc: {
14340
start: { line: 1, column: 17 },
14341
end: { line: 1, column: 20 }
14342
}
14343
},
14344
range: [11, 20],
14345
loc: {
14346
start: { line: 1, column: 11 },
14347
end: { line: 1, column: 20 }
14348
}
14349
},
14350
range: [11, 21],
14351
loc: {
14352
start: { line: 1, column: 11 },
14353
end: { line: 1, column: 21 }
14354
}
14355
}],
14356
range: [9, 22],
14357
loc: {
14358
start: { line: 1, column: 9 },
14359
end: { line: 1, column: 22 }
14360
}
14361
},
14362
range: [0, 22],
14363
loc: {
14364
start: { line: 1, column: 0 },
14365
end: { line: 1, column: 22 }
14366
}
14367
}
14368
14369
},
14370
14371
'switch statement': {
14372
14373
'switch (x) {}': {
14374
type: 'SwitchStatement',
14375
discriminant: {
14376
type: 'Identifier',
14377
name: 'x',
14378
range: [8, 9],
14379
loc: {
14380
start: { line: 1, column: 8 },
14381
end: { line: 1, column: 9 }
14382
}
14383
},
14384
cases:[],
14385
range: [0, 13],
14386
loc: {
14387
start: { line: 1, column: 0 },
14388
end: { line: 1, column: 13 }
14389
}
14390
},
14391
14392
'switch (answer) { case 42: hi(); break; }': {
14393
type: 'SwitchStatement',
14394
discriminant: {
14395
type: 'Identifier',
14396
name: 'answer',
14397
range: [8, 14],
14398
loc: {
14399
start: { line: 1, column: 8 },
14400
end: { line: 1, column: 14 }
14401
}
14402
},
14403
cases: [{
14404
type: 'SwitchCase',
14405
test: {
14406
type: 'Literal',
14407
value: 42,
14408
raw: '42',
14409
range: [23, 25],
14410
loc: {
14411
start: { line: 1, column: 23 },
14412
end: { line: 1, column: 25 }
14413
}
14414
},
14415
consequent: [{
14416
type: 'ExpressionStatement',
14417
expression: {
14418
type: 'CallExpression',
14419
callee: {
14420
type: 'Identifier',
14421
name: 'hi',
14422
range: [27, 29],
14423
loc: {
14424
start: { line: 1, column: 27 },
14425
end: { line: 1, column: 29 }
14426
}
14427
},
14428
'arguments': [],
14429
range: [27, 31],
14430
loc: {
14431
start: { line: 1, column: 27 },
14432
end: { line: 1, column: 31 }
14433
}
14434
},
14435
range: [27, 32],
14436
loc: {
14437
start: { line: 1, column: 27 },
14438
end: { line: 1, column: 32 }
14439
}
14440
}, {
14441
type: 'BreakStatement',
14442
label: null,
14443
range: [33, 39],
14444
loc: {
14445
start: { line: 1, column: 33 },
14446
end: { line: 1, column: 39 }
14447
}
14448
}],
14449
range: [18, 39],
14450
loc: {
14451
start: { line: 1, column: 18 },
14452
end: { line: 1, column: 39 }
14453
}
14454
}],
14455
range: [0, 41],
14456
loc: {
14457
start: { line: 1, column: 0 },
14458
end: { line: 1, column: 41 }
14459
}
14460
},
14461
14462
'switch (answer) { case 42: hi(); break; default: break }': {
14463
type: 'SwitchStatement',
14464
discriminant: {
14465
type: 'Identifier',
14466
name: 'answer',
14467
range: [8, 14],
14468
loc: {
14469
start: { line: 1, column: 8 },
14470
end: { line: 1, column: 14 }
14471
}
14472
},
14473
cases: [{
14474
type: 'SwitchCase',
14475
test: {
14476
type: 'Literal',
14477
value: 42,
14478
raw: '42',
14479
range: [23, 25],
14480
loc: {
14481
start: { line: 1, column: 23 },
14482
end: { line: 1, column: 25 }
14483
}
14484
},
14485
consequent: [{
14486
type: 'ExpressionStatement',
14487
expression: {
14488
type: 'CallExpression',
14489
callee: {
14490
type: 'Identifier',
14491
name: 'hi',
14492
range: [27, 29],
14493
loc: {
14494
start: { line: 1, column: 27 },
14495
end: { line: 1, column: 29 }
14496
}
14497
},
14498
'arguments': [],
14499
range: [27, 31],
14500
loc: {
14501
start: { line: 1, column: 27 },
14502
end: { line: 1, column: 31 }
14503
}
14504
},
14505
range: [27, 32],
14506
loc: {
14507
start: { line: 1, column: 27 },
14508
end: { line: 1, column: 32 }
14509
}
14510
}, {
14511
type: 'BreakStatement',
14512
label: null,
14513
range: [33, 39],
14514
loc: {
14515
start: { line: 1, column: 33 },
14516
end: { line: 1, column: 39 }
14517
}
14518
}],
14519
range: [18, 39],
14520
loc: {
14521
start: { line: 1, column: 18 },
14522
end: { line: 1, column: 39 }
14523
}
14524
}, {
14525
type: 'SwitchCase',
14526
test: null,
14527
consequent: [{
14528
type: 'BreakStatement',
14529
label: null,
14530
range: [49, 55],
14531
loc: {
14532
start: { line: 1, column: 49 },
14533
end: { line: 1, column: 55 }
14534
}
14535
}],
14536
range: [40, 55],
14537
loc: {
14538
start: { line: 1, column: 40 },
14539
end: { line: 1, column: 55 }
14540
}
14541
}],
14542
range: [0, 56],
14543
loc: {
14544
start: { line: 1, column: 0 },
14545
end: { line: 1, column: 56 }
14546
}
14547
}
14548
14549
},
14550
14551
'Labelled Statements': {
14552
14553
'start: for (;;) break start': {
14554
type: 'LabeledStatement',
14555
label: {
14556
type: 'Identifier',
14557
name: 'start',
14558
range: [0, 5],
14559
loc: {
14560
start: { line: 1, column: 0 },
14561
end: { line: 1, column: 5 }
14562
}
14563
},
14564
body: {
14565
type: 'ForStatement',
14566
init: null,
14567
test: null,
14568
update: null,
14569
body: {
14570
type: 'BreakStatement',
14571
label: {
14572
type: 'Identifier',
14573
name: 'start',
14574
range: [22, 27],
14575
loc: {
14576
start: { line: 1, column: 22 },
14577
end: { line: 1, column: 27 }
14578
}
14579
},
14580
range: [16, 27],
14581
loc: {
14582
start: { line: 1, column: 16 },
14583
end: { line: 1, column: 27 }
14584
}
14585
},
14586
range: [7, 27],
14587
loc: {
14588
start: { line: 1, column: 7 },
14589
end: { line: 1, column: 27 }
14590
}
14591
},
14592
range: [0, 27],
14593
loc: {
14594
start: { line: 1, column: 0 },
14595
end: { line: 1, column: 27 }
14596
}
14597
},
14598
14599
'start: while (true) break start': {
14600
type: 'LabeledStatement',
14601
label: {
14602
type: 'Identifier',
14603
name: 'start',
14604
range: [0, 5],
14605
loc: {
14606
start: { line: 1, column: 0 },
14607
end: { line: 1, column: 5 }
14608
}
14609
},
14610
body: {
14611
type: 'WhileStatement',
14612
test: {
14613
type: 'Literal',
14614
value: true,
14615
raw: 'true',
14616
range: [14, 18],
14617
loc: {
14618
start: { line: 1, column: 14 },
14619
end: { line: 1, column: 18 }
14620
}
14621
},
14622
body: {
14623
type: 'BreakStatement',
14624
label: {
14625
type: 'Identifier',
14626
name: 'start',
14627
range: [26, 31],
14628
loc: {
14629
start: { line: 1, column: 26 },
14630
end: { line: 1, column: 31 }
14631
}
14632
},
14633
range: [20, 31],
14634
loc: {
14635
start: { line: 1, column: 20 },
14636
end: { line: 1, column: 31 }
14637
}
14638
},
14639
range: [7, 31],
14640
loc: {
14641
start: { line: 1, column: 7 },
14642
end: { line: 1, column: 31 }
14643
}
14644
},
14645
range: [0, 31],
14646
loc: {
14647
start: { line: 1, column: 0 },
14648
end: { line: 1, column: 31 }
14649
}
14650
},
14651
14652
'__proto__: test': {
14653
type: 'LabeledStatement',
14654
label: {
14655
type: 'Identifier',
14656
name: '__proto__',
14657
range: [0, 9],
14658
loc: {
14659
start: { line: 1, column: 0 },
14660
end: { line: 1, column: 9 }
14661
}
14662
},
14663
body: {
14664
type: 'ExpressionStatement',
14665
expression: {
14666
type: 'Identifier',
14667
name: 'test',
14668
range: [11, 15],
14669
loc: {
14670
start: { line: 1, column: 11 },
14671
end: { line: 1, column: 15 }
14672
}
14673
},
14674
range: [11, 15],
14675
loc: {
14676
start: { line: 1, column: 11 },
14677
end: { line: 1, column: 15 }
14678
}
14679
},
14680
range: [0, 15],
14681
loc: {
14682
start: { line: 1, column: 0 },
14683
end: { line: 1, column: 15 }
14684
}
14685
}
14686
14687
},
14688
14689
'throw statement': {
14690
14691
'throw x;': {
14692
type: 'ThrowStatement',
14693
argument: {
14694
type: 'Identifier',
14695
name: 'x',
14696
range: [6, 7],
14697
loc: {
14698
start: { line: 1, column: 6 },
14699
end: { line: 1, column: 7 }
14700
}
14701
},
14702
range: [0, 8],
14703
loc: {
14704
start: { line: 1, column: 0 },
14705
end: { line: 1, column: 8 }
14706
}
14707
},
14708
14709
'throw x * y': {
14710
type: 'ThrowStatement',
14711
argument: {
14712
type: 'BinaryExpression',
14713
operator: '*',
14714
left: {
14715
type: 'Identifier',
14716
name: 'x',
14717
range: [6, 7],
14718
loc: {
14719
start: { line: 1, column: 6 },
14720
end: { line: 1, column: 7 }
14721
}
14722
},
14723
right: {
14724
type: 'Identifier',
14725
name: 'y',
14726
range: [10, 11],
14727
loc: {
14728
start: { line: 1, column: 10 },
14729
end: { line: 1, column: 11 }
14730
}
14731
},
14732
range: [6, 11],
14733
loc: {
14734
start: { line: 1, column: 6 },
14735
end: { line: 1, column: 11 }
14736
}
14737
},
14738
range: [0, 11],
14739
loc: {
14740
start: { line: 1, column: 0 },
14741
end: { line: 1, column: 11 }
14742
}
14743
},
14744
14745
'throw { message: "Error" }': {
14746
type: 'ThrowStatement',
14747
argument: {
14748
type: 'ObjectExpression',
14749
properties: [{
14750
type: 'Property',
14751
key: {
14752
type: 'Identifier',
14753
name: 'message',
14754
range: [8, 15],
14755
loc: {
14756
start: { line: 1, column: 8 },
14757
end: { line: 1, column: 15 }
14758
}
14759
},
14760
value: {
14761
type: 'Literal',
14762
value: 'Error',
14763
raw: '"Error"',
14764
range: [17, 24],
14765
loc: {
14766
start: { line: 1, column: 17 },
14767
end: { line: 1, column: 24 }
14768
}
14769
},
14770
kind: 'init',
14771
method: false,
14772
shorthand: false,
14773
computed: false,
14774
range: [8, 24],
14775
loc: {
14776
start: { line: 1, column: 8 },
14777
end: { line: 1, column: 24 }
14778
}
14779
}],
14780
range: [6, 26],
14781
loc: {
14782
start: { line: 1, column: 6 },
14783
end: { line: 1, column: 26 }
14784
}
14785
},
14786
range: [0, 26],
14787
loc: {
14788
start: { line: 1, column: 0 },
14789
end: { line: 1, column: 26 }
14790
}
14791
}
14792
14793
},
14794
14795
'try statement': {
14796
14797
'try { } catch (e) { }': {
14798
type: 'TryStatement',
14799
block: {
14800
type: 'BlockStatement',
14801
body: [],
14802
range: [4, 7],
14803
loc: {
14804
start: { line: 1, column: 4 },
14805
end: { line: 1, column: 7 }
14806
}
14807
},
14808
guardedHandlers: [],
14809
handlers: [{
14810
type: 'CatchClause',
14811
param: {
14812
type: 'Identifier',
14813
name: 'e',
14814
range: [15, 16],
14815
loc: {
14816
start: { line: 1, column: 15 },
14817
end: { line: 1, column: 16 }
14818
}
14819
},
14820
body: {
14821
type: 'BlockStatement',
14822
body: [],
14823
range: [18, 21],
14824
loc: {
14825
start: { line: 1, column: 18 },
14826
end: { line: 1, column: 21 }
14827
}
14828
},
14829
range: [8, 21],
14830
loc: {
14831
start: { line: 1, column: 8 },
14832
end: { line: 1, column: 21 }
14833
}
14834
}],
14835
finalizer: null,
14836
range: [0, 21],
14837
loc: {
14838
start: { line: 1, column: 0 },
14839
end: { line: 1, column: 21 }
14840
}
14841
},
14842
14843
'try { } catch (eval) { }': {
14844
type: 'TryStatement',
14845
block: {
14846
type: 'BlockStatement',
14847
body: [],
14848
range: [4, 7],
14849
loc: {
14850
start: { line: 1, column: 4 },
14851
end: { line: 1, column: 7 }
14852
}
14853
},
14854
guardedHandlers: [],
14855
handlers: [{
14856
type: 'CatchClause',
14857
param: {
14858
type: 'Identifier',
14859
name: 'eval',
14860
range: [15, 19],
14861
loc: {
14862
start: { line: 1, column: 15 },
14863
end: { line: 1, column: 19 }
14864
}
14865
},
14866
body: {
14867
type: 'BlockStatement',
14868
body: [],
14869
range: [21, 24],
14870
loc: {
14871
start: { line: 1, column: 21 },
14872
end: { line: 1, column: 24 }
14873
}
14874
},
14875
range: [8, 24],
14876
loc: {
14877
start: { line: 1, column: 8 },
14878
end: { line: 1, column: 24 }
14879
}
14880
}],
14881
finalizer: null,
14882
range: [0, 24],
14883
loc: {
14884
start: { line: 1, column: 0 },
14885
end: { line: 1, column: 24 }
14886
}
14887
},
14888
14889
'try { } catch (arguments) { }': {
14890
type: 'TryStatement',
14891
block: {
14892
type: 'BlockStatement',
14893
body: [],
14894
range: [4, 7],
14895
loc: {
14896
start: { line: 1, column: 4 },
14897
end: { line: 1, column: 7 }
14898
}
14899
},
14900
guardedHandlers: [],
14901
handlers: [{
14902
type: 'CatchClause',
14903
param: {
14904
type: 'Identifier',
14905
name: 'arguments',
14906
range: [15, 24],
14907
loc: {
14908
start: { line: 1, column: 15 },
14909
end: { line: 1, column: 24 }
14910
}
14911
},
14912
body: {
14913
type: 'BlockStatement',
14914
body: [],
14915
range: [26, 29],
14916
loc: {
14917
start: { line: 1, column: 26 },
14918
end: { line: 1, column: 29 }
14919
}
14920
},
14921
range: [8, 29],
14922
loc: {
14923
start: { line: 1, column: 8 },
14924
end: { line: 1, column: 29 }
14925
}
14926
}],
14927
finalizer: null,
14928
range: [0, 29],
14929
loc: {
14930
start: { line: 1, column: 0 },
14931
end: { line: 1, column: 29 }
14932
}
14933
},
14934
14935
'try { } catch (e) { say(e) }': {
14936
type: 'TryStatement',
14937
block: {
14938
type: 'BlockStatement',
14939
body: [],
14940
range: [4, 7],
14941
loc: {
14942
start: { line: 1, column: 4 },
14943
end: { line: 1, column: 7 }
14944
}
14945
},
14946
guardedHandlers: [],
14947
handlers: [{
14948
type: 'CatchClause',
14949
param: {
14950
type: 'Identifier',
14951
name: 'e',
14952
range: [15, 16],
14953
loc: {
14954
start: { line: 1, column: 15 },
14955
end: { line: 1, column: 16 }
14956
}
14957
},
14958
body: {
14959
type: 'BlockStatement',
14960
body: [{
14961
type: 'ExpressionStatement',
14962
expression: {
14963
type: 'CallExpression',
14964
callee: {
14965
type: 'Identifier',
14966
name: 'say',
14967
range: [20, 23],
14968
loc: {
14969
start: { line: 1, column: 20 },
14970
end: { line: 1, column: 23 }
14971
}
14972
},
14973
'arguments': [{
14974
type: 'Identifier',
14975
name: 'e',
14976
range: [24, 25],
14977
loc: {
14978
start: { line: 1, column: 24 },
14979
end: { line: 1, column: 25 }
14980
}
14981
}],
14982
range: [20, 26],
14983
loc: {
14984
start: { line: 1, column: 20 },
14985
end: { line: 1, column: 26 }
14986
}
14987
},
14988
range: [20, 27],
14989
loc: {
14990
start: { line: 1, column: 20 },
14991
end: { line: 1, column: 27 }
14992
}
14993
}],
14994
range: [18, 28],
14995
loc: {
14996
start: { line: 1, column: 18 },
14997
end: { line: 1, column: 28 }
14998
}
14999
},
15000
range: [8, 28],
15001
loc: {
15002
start: { line: 1, column: 8 },
15003
end: { line: 1, column: 28 }
15004
}
15005
}],
15006
finalizer: null,
15007
range: [0, 28],
15008
loc: {
15009
start: { line: 1, column: 0 },
15010
end: { line: 1, column: 28 }
15011
}
15012
},
15013
15014
'try { } finally { cleanup(stuff) }': {
15015
type: 'TryStatement',
15016
block: {
15017
type: 'BlockStatement',
15018
body: [],
15019
range: [4, 7],
15020
loc: {
15021
start: { line: 1, column: 4 },
15022
end: { line: 1, column: 7 }
15023
}
15024
},
15025
guardedHandlers: [],
15026
handlers: [],
15027
finalizer: {
15028
type: 'BlockStatement',
15029
body: [{
15030
type: 'ExpressionStatement',
15031
expression: {
15032
type: 'CallExpression',
15033
callee: {
15034
type: 'Identifier',
15035
name: 'cleanup',
15036
range: [18, 25],
15037
loc: {
15038
start: { line: 1, column: 18 },
15039
end: { line: 1, column: 25 }
15040
}
15041
},
15042
'arguments': [{
15043
type: 'Identifier',
15044
name: 'stuff',
15045
range: [26, 31],
15046
loc: {
15047
start: { line: 1, column: 26 },
15048
end: { line: 1, column: 31 }
15049
}
15050
}],
15051
range: [18, 32],
15052
loc: {
15053
start: { line: 1, column: 18 },
15054
end: { line: 1, column: 32 }
15055
}
15056
},
15057
range: [18, 33],
15058
loc: {
15059
start: { line: 1, column: 18 },
15060
end: { line: 1, column: 33 }
15061
}
15062
}],
15063
range: [16, 34],
15064
loc: {
15065
start: { line: 1, column: 16 },
15066
end: { line: 1, column: 34 }
15067
}
15068
},
15069
range: [0, 34],
15070
loc: {
15071
start: { line: 1, column: 0 },
15072
end: { line: 1, column: 34 }
15073
}
15074
},
15075
15076
'try { doThat(); } catch (e) { say(e) }': {
15077
type: 'TryStatement',
15078
block: {
15079
type: 'BlockStatement',
15080
body: [{
15081
type: 'ExpressionStatement',
15082
expression: {
15083
type: 'CallExpression',
15084
callee: {
15085
type: 'Identifier',
15086
name: 'doThat',
15087
range: [6, 12],
15088
loc: {
15089
start: { line: 1, column: 6 },
15090
end: { line: 1, column: 12 }
15091
}
15092
},
15093
'arguments': [],
15094
range: [6, 14],
15095
loc: {
15096
start: { line: 1, column: 6 },
15097
end: { line: 1, column: 14 }
15098
}
15099
},
15100
range: [6, 15],
15101
loc: {
15102
start: { line: 1, column: 6 },
15103
end: { line: 1, column: 15 }
15104
}
15105
}],
15106
range: [4, 17],
15107
loc: {
15108
start: { line: 1, column: 4 },
15109
end: { line: 1, column: 17 }
15110
}
15111
},
15112
guardedHandlers: [],
15113
handlers: [{
15114
type: 'CatchClause',
15115
param: {
15116
type: 'Identifier',
15117
name: 'e',
15118
range: [25, 26],
15119
loc: {
15120
start: { line: 1, column: 25 },
15121
end: { line: 1, column: 26 }
15122
}
15123
},
15124
body: {
15125
type: 'BlockStatement',
15126
body: [{
15127
type: 'ExpressionStatement',
15128
expression: {
15129
type: 'CallExpression',
15130
callee: {
15131
type: 'Identifier',
15132
name: 'say',
15133
range: [30, 33],
15134
loc: {
15135
start: { line: 1, column: 30 },
15136
end: { line: 1, column: 33 }
15137
}
15138
},
15139
'arguments': [{
15140
type: 'Identifier',
15141
name: 'e',
15142
range: [34, 35],
15143
loc: {
15144
start: { line: 1, column: 34 },
15145
end: { line: 1, column: 35 }
15146
}
15147
}],
15148
range: [30, 36],
15149
loc: {
15150
start: { line: 1, column: 30 },
15151
end: { line: 1, column: 36 }
15152
}
15153
},
15154
range: [30, 37],
15155
loc: {
15156
start: { line: 1, column: 30 },
15157
end: { line: 1, column: 37 }
15158
}
15159
}],
15160
range: [28, 38],
15161
loc: {
15162
start: { line: 1, column: 28 },
15163
end: { line: 1, column: 38 }
15164
}
15165
},
15166
range: [18, 38],
15167
loc: {
15168
start: { line: 1, column: 18 },
15169
end: { line: 1, column: 38 }
15170
}
15171
}],
15172
finalizer: null,
15173
range: [0, 38],
15174
loc: {
15175
start: { line: 1, column: 0 },
15176
end: { line: 1, column: 38 }
15177
}
15178
},
15179
15180
'try { doThat(); } catch (e) { say(e) } finally { cleanup(stuff) }': {
15181
type: 'TryStatement',
15182
block: {
15183
type: 'BlockStatement',
15184
body: [{
15185
type: 'ExpressionStatement',
15186
expression: {
15187
type: 'CallExpression',
15188
callee: {
15189
type: 'Identifier',
15190
name: 'doThat',
15191
range: [6, 12],
15192
loc: {
15193
start: { line: 1, column: 6 },
15194
end: { line: 1, column: 12 }
15195
}
15196
},
15197
'arguments': [],
15198
range: [6, 14],
15199
loc: {
15200
start: { line: 1, column: 6 },
15201
end: { line: 1, column: 14 }
15202
}
15203
},
15204
range: [6, 15],
15205
loc: {
15206
start: { line: 1, column: 6 },
15207
end: { line: 1, column: 15 }
15208
}
15209
}],
15210
range: [4, 17],
15211
loc: {
15212
start: { line: 1, column: 4 },
15213
end: { line: 1, column: 17 }
15214
}
15215
},
15216
guardedHandlers: [],
15217
handlers: [{
15218
type: 'CatchClause',
15219
param: {
15220
type: 'Identifier',
15221
name: 'e',
15222
range: [25, 26],
15223
loc: {
15224
start: { line: 1, column: 25 },
15225
end: { line: 1, column: 26 }
15226
}
15227
},
15228
body: {
15229
type: 'BlockStatement',
15230
body: [{
15231
type: 'ExpressionStatement',
15232
expression: {
15233
type: 'CallExpression',
15234
callee: {
15235
type: 'Identifier',
15236
name: 'say',
15237
range: [30, 33],
15238
loc: {
15239
start: { line: 1, column: 30 },
15240
end: { line: 1, column: 33 }
15241
}
15242
},
15243
'arguments': [{
15244
type: 'Identifier',
15245
name: 'e',
15246
range: [34, 35],
15247
loc: {
15248
start: { line: 1, column: 34 },
15249
end: { line: 1, column: 35 }
15250
}
15251
}],
15252
range: [30, 36],
15253
loc: {
15254
start: { line: 1, column: 30 },
15255
end: { line: 1, column: 36 }
15256
}
15257
},
15258
range: [30, 37],
15259
loc: {
15260
start: { line: 1, column: 30 },
15261
end: { line: 1, column: 37 }
15262
}
15263
}],
15264
range: [28, 38],
15265
loc: {
15266
start: { line: 1, column: 28 },
15267
end: { line: 1, column: 38 }
15268
}
15269
},
15270
range: [18, 38],
15271
loc: {
15272
start: { line: 1, column: 18 },
15273
end: { line: 1, column: 38 }
15274
}
15275
}],
15276
finalizer: {
15277
type: 'BlockStatement',
15278
body: [{
15279
type: 'ExpressionStatement',
15280
expression: {
15281
type: 'CallExpression',
15282
callee: {
15283
type: 'Identifier',
15284
name: 'cleanup',
15285
range: [49, 56],
15286
loc: {
15287
start: { line: 1, column: 49 },
15288
end: { line: 1, column: 56 }
15289
}
15290
},
15291
'arguments': [{
15292
type: 'Identifier',
15293
name: 'stuff',
15294
range: [57, 62],
15295
loc: {
15296
start: { line: 1, column: 57 },
15297
end: { line: 1, column: 62 }
15298
}
15299
}],
15300
range: [49, 63],
15301
loc: {
15302
start: { line: 1, column: 49 },
15303
end: { line: 1, column: 63 }
15304
}
15305
},
15306
range: [49, 64],
15307
loc: {
15308
start: { line: 1, column: 49 },
15309
end: { line: 1, column: 64 }
15310
}
15311
}],
15312
range: [47, 65],
15313
loc: {
15314
start: { line: 1, column: 47 },
15315
end: { line: 1, column: 65 }
15316
}
15317
},
15318
range: [0, 65],
15319
loc: {
15320
start: { line: 1, column: 0 },
15321
end: { line: 1, column: 65 }
15322
}
15323
}
15324
15325
},
15326
15327
'debugger statement': {
15328
15329
'debugger;': {
15330
type: 'DebuggerStatement',
15331
range: [0, 9],
15332
loc: {
15333
start: { line: 1, column: 0 },
15334
end: { line: 1, column: 9 }
15335
}
15336
}
15337
15338
},
15339
15340
'Function Definition': {
15341
15342
'function hello() { sayHi(); }': {
15343
type: 'FunctionDeclaration',
15344
id: {
15345
type: 'Identifier',
15346
name: 'hello',
15347
range: [9, 14],
15348
loc: {
15349
start: { line: 1, column: 9 },
15350
end: { line: 1, column: 14 }
15351
}
15352
},
15353
params: [],
15354
defaults: [],
15355
body: {
15356
type: 'BlockStatement',
15357
body: [{
15358
type: 'ExpressionStatement',
15359
expression: {
15360
type: 'CallExpression',
15361
callee: {
15362
type: 'Identifier',
15363
name: 'sayHi',
15364
range: [19, 24],
15365
loc: {
15366
start: { line: 1, column: 19 },
15367
end: { line: 1, column: 24 }
15368
}
15369
},
15370
'arguments': [],
15371
range: [19, 26],
15372
loc: {
15373
start: { line: 1, column: 19 },
15374
end: { line: 1, column: 26 }
15375
}
15376
},
15377
range: [19, 27],
15378
loc: {
15379
start: { line: 1, column: 19 },
15380
end: { line: 1, column: 27 }
15381
}
15382
}],
15383
range: [17, 29],
15384
loc: {
15385
start: { line: 1, column: 17 },
15386
end: { line: 1, column: 29 }
15387
}
15388
},
15389
rest: null,
15390
generator: false,
15391
expression: false,
15392
range: [0, 29],
15393
loc: {
15394
start: { line: 1, column: 0 },
15395
end: { line: 1, column: 29 }
15396
}
15397
},
15398
15399
'function eval() { }': {
15400
type: 'FunctionDeclaration',
15401
id: {
15402
type: 'Identifier',
15403
name: 'eval',
15404
range: [9, 13],
15405
loc: {
15406
start: { line: 1, column: 9 },
15407
end: { line: 1, column: 13 }
15408
}
15409
},
15410
params: [],
15411
defaults: [],
15412
body: {
15413
type: 'BlockStatement',
15414
body: [],
15415
range: [16, 19],
15416
loc: {
15417
start: { line: 1, column: 16 },
15418
end: { line: 1, column: 19 }
15419
}
15420
},
15421
rest: null,
15422
generator: false,
15423
expression: false,
15424
range: [0, 19],
15425
loc: {
15426
start: { line: 1, column: 0 },
15427
end: { line: 1, column: 19 }
15428
}
15429
},
15430
15431
'function arguments() { }': {
15432
type: 'FunctionDeclaration',
15433
id: {
15434
type: 'Identifier',
15435
name: 'arguments',
15436
range: [9, 18],
15437
loc: {
15438
start: { line: 1, column: 9 },
15439
end: { line: 1, column: 18 }
15440
}
15441
},
15442
params: [],
15443
defaults: [],
15444
body: {
15445
type: 'BlockStatement',
15446
body: [],
15447
range: [21, 24],
15448
loc: {
15449
start: { line: 1, column: 21 },
15450
end: { line: 1, column: 24 }
15451
}
15452
},
15453
rest: null,
15454
generator: false,
15455
expression: false,
15456
range: [0, 24],
15457
loc: {
15458
start: { line: 1, column: 0 },
15459
end: { line: 1, column: 24 }
15460
}
15461
},
15462
15463
'function test(t, t) { }': {
15464
type: 'FunctionDeclaration',
15465
id: {
15466
type: 'Identifier',
15467
name: 'test',
15468
range: [9, 13],
15469
loc: {
15470
start: { line: 1, column: 9 },
15471
end: { line: 1, column: 13 }
15472
}
15473
},
15474
params: [{
15475
type: 'Identifier',
15476
name: 't',
15477
range: [14, 15],
15478
loc: {
15479
start: { line: 1, column: 14 },
15480
end: { line: 1, column: 15 }
15481
}
15482
}, {
15483
type: 'Identifier',
15484
name: 't',
15485
range: [17, 18],
15486
loc: {
15487
start: { line: 1, column: 17 },
15488
end: { line: 1, column: 18 }
15489
}
15490
}],
15491
defaults: [],
15492
body: {
15493
type: 'BlockStatement',
15494
body: [],
15495
range: [20, 23],
15496
loc: {
15497
start: { line: 1, column: 20 },
15498
end: { line: 1, column: 23 }
15499
}
15500
},
15501
rest: null,
15502
generator: false,
15503
expression: false,
15504
range: [0, 23],
15505
loc: {
15506
start: { line: 1, column: 0 },
15507
end: { line: 1, column: 23 }
15508
}
15509
},
15510
15511
'(function test(t, t) { })': {
15512
type: 'ExpressionStatement',
15513
expression: {
15514
type: 'FunctionExpression',
15515
id: {
15516
type: 'Identifier',
15517
name: 'test',
15518
range: [10, 14],
15519
loc: {
15520
start: { line: 1, column: 10 },
15521
end: { line: 1, column: 14 }
15522
}
15523
},
15524
params: [{
15525
type: 'Identifier',
15526
name: 't',
15527
range: [15, 16],
15528
loc: {
15529
start: { line: 1, column: 15 },
15530
end: { line: 1, column: 16 }
15531
}
15532
}, {
15533
type: 'Identifier',
15534
name: 't',
15535
range: [18, 19],
15536
loc: {
15537
start: { line: 1, column: 18 },
15538
end: { line: 1, column: 19 }
15539
}
15540
}],
15541
defaults: [],
15542
body: {
15543
type: 'BlockStatement',
15544
body: [],
15545
range: [21, 24],
15546
loc: {
15547
start: { line: 1, column: 21 },
15548
end: { line: 1, column: 24 }
15549
}
15550
},
15551
rest: null,
15552
generator: false,
15553
expression: false,
15554
range: [1, 24],
15555
loc: {
15556
start: { line: 1, column: 1 },
15557
end: { line: 1, column: 24 }
15558
}
15559
},
15560
range: [0, 25],
15561
loc: {
15562
start: { line: 1, column: 0 },
15563
end: { line: 1, column: 25 }
15564
}
15565
},
15566
15567
'function eval() { function inner() { "use strict" } }': {
15568
type: 'FunctionDeclaration',
15569
id: {
15570
type: 'Identifier',
15571
name: 'eval',
15572
range: [9, 13],
15573
loc: {
15574
start: { line: 1, column: 9 },
15575
end: { line: 1, column: 13 }
15576
}
15577
},
15578
params: [],
15579
defaults: [],
15580
body: {
15581
type: 'BlockStatement',
15582
body: [{
15583
type: 'FunctionDeclaration',
15584
id: {
15585
type: 'Identifier',
15586
name: 'inner',
15587
range: [27, 32],
15588
loc: {
15589
start: { line: 1, column: 27 },
15590
end: { line: 1, column: 32 }
15591
}
15592
},
15593
params: [],
15594
defaults: [],
15595
body: {
15596
type: 'BlockStatement',
15597
body: [{
15598
type: 'ExpressionStatement',
15599
expression: {
15600
type: 'Literal',
15601
value: 'use strict',
15602
raw: '\"use strict\"',
15603
range: [37, 49],
15604
loc: {
15605
start: { line: 1, column: 37 },
15606
end: { line: 1, column: 49 }
15607
}
15608
},
15609
range: [37, 50],
15610
loc: {
15611
start: { line: 1, column: 37 },
15612
end: { line: 1, column: 50 }
15613
}
15614
}],
15615
range: [35, 51],
15616
loc: {
15617
start: { line: 1, column: 35 },
15618
end: { line: 1, column: 51 }
15619
}
15620
},
15621
rest: null,
15622
generator: false,
15623
expression: false,
15624
range: [18, 51],
15625
loc: {
15626
start: { line: 1, column: 18 },
15627
end: { line: 1, column: 51 }
15628
}
15629
}],
15630
range: [16, 53],
15631
loc: {
15632
start: { line: 1, column: 16 },
15633
end: { line: 1, column: 53 }
15634
}
15635
},
15636
rest: null,
15637
generator: false,
15638
expression: false,
15639
range: [0, 53],
15640
loc: {
15641
start: { line: 1, column: 0 },
15642
end: { line: 1, column: 53 }
15643
}
15644
},
15645
15646
'function hello(a) { sayHi(); }': {
15647
type: 'FunctionDeclaration',
15648
id: {
15649
type: 'Identifier',
15650
name: 'hello',
15651
range: [9, 14],
15652
loc: {
15653
start: { line: 1, column: 9 },
15654
end: { line: 1, column: 14 }
15655
}
15656
},
15657
params: [{
15658
type: 'Identifier',
15659
name: 'a',
15660
range: [15, 16],
15661
loc: {
15662
start: { line: 1, column: 15 },
15663
end: { line: 1, column: 16 }
15664
}
15665
}],
15666
defaults: [],
15667
body: {
15668
type: 'BlockStatement',
15669
body: [{
15670
type: 'ExpressionStatement',
15671
expression: {
15672
type: 'CallExpression',
15673
callee: {
15674
type: 'Identifier',
15675
name: 'sayHi',
15676
range: [20, 25],
15677
loc: {
15678
start: { line: 1, column: 20 },
15679
end: { line: 1, column: 25 }
15680
}
15681
},
15682
'arguments': [],
15683
range: [20, 27],
15684
loc: {
15685
start: { line: 1, column: 20 },
15686
end: { line: 1, column: 27 }
15687
}
15688
},
15689
range: [20, 28],
15690
loc: {
15691
start: { line: 1, column: 20 },
15692
end: { line: 1, column: 28 }
15693
}
15694
}],
15695
range: [18, 30],
15696
loc: {
15697
start: { line: 1, column: 18 },
15698
end: { line: 1, column: 30 }
15699
}
15700
},
15701
rest: null,
15702
generator: false,
15703
expression: false,
15704
range: [0, 30],
15705
loc: {
15706
start: { line: 1, column: 0 },
15707
end: { line: 1, column: 30 }
15708
}
15709
},
15710
15711
'function hello(a, b) { sayHi(); }': {
15712
type: 'FunctionDeclaration',
15713
id: {
15714
type: 'Identifier',
15715
name: 'hello',
15716
range: [9, 14],
15717
loc: {
15718
start: { line: 1, column: 9 },
15719
end: { line: 1, column: 14 }
15720
}
15721
},
15722
params: [{
15723
type: 'Identifier',
15724
name: 'a',
15725
range: [15, 16],
15726
loc: {
15727
start: { line: 1, column: 15 },
15728
end: { line: 1, column: 16 }
15729
}
15730
}, {
15731
type: 'Identifier',
15732
name: 'b',
15733
range: [18, 19],
15734
loc: {
15735
start: { line: 1, column: 18 },
15736
end: { line: 1, column: 19 }
15737
}
15738
}],
15739
defaults: [],
15740
body: {
15741
type: 'BlockStatement',
15742
body: [{
15743
type: 'ExpressionStatement',
15744
expression: {
15745
type: 'CallExpression',
15746
callee: {
15747
type: 'Identifier',
15748
name: 'sayHi',
15749
range: [23, 28],
15750
loc: {
15751
start: { line: 1, column: 23 },
15752
end: { line: 1, column: 28 }
15753
}
15754
},
15755
'arguments': [],
15756
range: [23, 30],
15757
loc: {
15758
start: { line: 1, column: 23 },
15759
end: { line: 1, column: 30 }
15760
}
15761
},
15762
range: [23, 31],
15763
loc: {
15764
start: { line: 1, column: 23 },
15765
end: { line: 1, column: 31 }
15766
}
15767
}],
15768
range: [21, 33],
15769
loc: {
15770
start: { line: 1, column: 21 },
15771
end: { line: 1, column: 33 }
15772
}
15773
},
15774
rest: null,
15775
generator: false,
15776
expression: false,
15777
range: [0, 33],
15778
loc: {
15779
start: { line: 1, column: 0 },
15780
end: { line: 1, column: 33 }
15781
}
15782
},
15783
15784
'var hi = function() { sayHi() };': {
15785
type: 'VariableDeclaration',
15786
declarations: [{
15787
type: 'VariableDeclarator',
15788
id: {
15789
type: 'Identifier',
15790
name: 'hi',
15791
range: [4, 6],
15792
loc: {
15793
start: { line: 1, column: 4 },
15794
end: { line: 1, column: 6 }
15795
}
15796
},
15797
init: {
15798
type: 'FunctionExpression',
15799
id: null,
15800
params: [],
15801
defaults: [],
15802
body: {
15803
type: 'BlockStatement',
15804
body: [{
15805
type: 'ExpressionStatement',
15806
expression: {
15807
type: 'CallExpression',
15808
callee: {
15809
type: 'Identifier',
15810
name: 'sayHi',
15811
range: [22, 27],
15812
loc: {
15813
start: { line: 1, column: 22 },
15814
end: { line: 1, column: 27 }
15815
}
15816
},
15817
'arguments': [],
15818
range: [22, 29],
15819
loc: {
15820
start: { line: 1, column: 22 },
15821
end: { line: 1, column: 29 }
15822
}
15823
},
15824
range: [22, 30],
15825
loc: {
15826
start: { line: 1, column: 22 },
15827
end: { line: 1, column: 30 }
15828
}
15829
}],
15830
range: [20, 31],
15831
loc: {
15832
start: { line: 1, column: 20 },
15833
end: { line: 1, column: 31 }
15834
}
15835
},
15836
rest: null,
15837
generator: false,
15838
expression: false,
15839
range: [9, 31],
15840
loc: {
15841
start: { line: 1, column: 9 },
15842
end: { line: 1, column: 31 }
15843
}
15844
},
15845
range: [4, 31],
15846
loc: {
15847
start: { line: 1, column: 4 },
15848
end: { line: 1, column: 31 }
15849
}
15850
}],
15851
kind: 'var',
15852
range: [0, 32],
15853
loc: {
15854
start: { line: 1, column: 0 },
15855
end: { line: 1, column: 32 }
15856
}
15857
},
15858
15859
'var hi = function eval() { };': {
15860
type: 'VariableDeclaration',
15861
declarations: [{
15862
type: 'VariableDeclarator',
15863
id: {
15864
type: 'Identifier',
15865
name: 'hi',
15866
range: [4, 6],
15867
loc: {
15868
start: { line: 1, column: 4 },
15869
end: { line: 1, column: 6 }
15870
}
15871
},
15872
init: {
15873
type: 'FunctionExpression',
15874
id: {
15875
type: 'Identifier',
15876
name: 'eval',
15877
range: [18, 22],
15878
loc: {
15879
start: { line: 1, column: 18 },
15880
end: { line: 1, column: 22 }
15881
}
15882
},
15883
params: [],
15884
defaults: [],
15885
body: {
15886
type: 'BlockStatement',
15887
body: [],
15888
range: [25, 28],
15889
loc: {
15890
start: { line: 1, column: 25 },
15891
end: { line: 1, column: 28 }
15892
}
15893
},
15894
rest: null,
15895
generator: false,
15896
expression: false,
15897
range: [9, 28],
15898
loc: {
15899
start: { line: 1, column: 9 },
15900
end: { line: 1, column: 28 }
15901
}
15902
},
15903
range: [4, 28],
15904
loc: {
15905
start: { line: 1, column: 4 },
15906
end: { line: 1, column: 28 }
15907
}
15908
}],
15909
kind: 'var',
15910
range: [0, 29],
15911
loc: {
15912
start: { line: 1, column: 0 },
15913
end: { line: 1, column: 29 }
15914
}
15915
},
15916
15917
'var hi = function arguments() { };': {
15918
type: 'VariableDeclaration',
15919
declarations: [{
15920
type: 'VariableDeclarator',
15921
id: {
15922
type: 'Identifier',
15923
name: 'hi',
15924
range: [4, 6],
15925
loc: {
15926
start: { line: 1, column: 4 },
15927
end: { line: 1, column: 6 }
15928
}
15929
},
15930
init: {
15931
type: 'FunctionExpression',
15932
id: {
15933
type: 'Identifier',
15934
name: 'arguments',
15935
range: [18, 27],
15936
loc: {
15937
start: { line: 1, column: 18 },
15938
end: { line: 1, column: 27 }
15939
}
15940
},
15941
params: [],
15942
defaults: [],
15943
body: {
15944
type: 'BlockStatement',
15945
body: [],
15946
range: [30, 33],
15947
loc: {
15948
start: { line: 1, column: 30 },
15949
end: { line: 1, column: 33 }
15950
}
15951
},
15952
rest: null,
15953
generator: false,
15954
expression: false,
15955
range: [9, 33],
15956
loc: {
15957
start: { line: 1, column: 9 },
15958
end: { line: 1, column: 33 }
15959
}
15960
},
15961
range: [4, 33],
15962
loc: {
15963
start: { line: 1, column: 4 },
15964
end: { line: 1, column: 33 }
15965
}
15966
}],
15967
kind: 'var',
15968
range: [0, 34],
15969
loc: {
15970
start: { line: 1, column: 0 },
15971
end: { line: 1, column: 34 }
15972
}
15973
},
15974
15975
'var hello = function hi() { sayHi() };': {
15976
type: 'VariableDeclaration',
15977
declarations: [{
15978
type: 'VariableDeclarator',
15979
id: {
15980
type: 'Identifier',
15981
name: 'hello',
15982
range: [4, 9],
15983
loc: {
15984
start: { line: 1, column: 4 },
15985
end: { line: 1, column: 9 }
15986
}
15987
},
15988
init: {
15989
type: 'FunctionExpression',
15990
id: {
15991
type: 'Identifier',
15992
name: 'hi',
15993
range: [21, 23],
15994
loc: {
15995
start: { line: 1, column: 21 },
15996
end: { line: 1, column: 23 }
15997
}
15998
},
15999
params: [],
16000
defaults: [],
16001
body: {
16002
type: 'BlockStatement',
16003
body: [{
16004
type: 'ExpressionStatement',
16005
expression: {
16006
type: 'CallExpression',
16007
callee: {
16008
type: 'Identifier',
16009
name: 'sayHi',
16010
range: [28, 33],
16011
loc: {
16012
start: { line: 1, column: 28 },
16013
end: { line: 1, column: 33 }
16014
}
16015
},
16016
'arguments': [],
16017
range: [28, 35],
16018
loc: {
16019
start: { line: 1, column: 28 },
16020
end: { line: 1, column: 35 }
16021
}
16022
},
16023
range: [28, 36],
16024
loc: {
16025
start: { line: 1, column: 28 },
16026
end: { line: 1, column: 36 }
16027
}
16028
}],
16029
range: [26, 37],
16030
loc: {
16031
start: { line: 1, column: 26 },
16032
end: { line: 1, column: 37 }
16033
}
16034
},
16035
rest: null,
16036
generator: false,
16037
expression: false,
16038
range: [12, 37],
16039
loc: {
16040
start: { line: 1, column: 12 },
16041
end: { line: 1, column: 37 }
16042
}
16043
},
16044
range: [4, 37],
16045
loc: {
16046
start: { line: 1, column: 4 },
16047
end: { line: 1, column: 37 }
16048
}
16049
}],
16050
kind: 'var',
16051
range: [0, 38],
16052
loc: {
16053
start: { line: 1, column: 0 },
16054
end: { line: 1, column: 38 }
16055
}
16056
},
16057
16058
'(function(){})': {
16059
type: 'ExpressionStatement',
16060
expression: {
16061
type: 'FunctionExpression',
16062
id: null,
16063
params: [],
16064
defaults: [],
16065
body: {
16066
type: 'BlockStatement',
16067
body: [],
16068
range: [11, 13],
16069
loc: {
16070
start: { line: 1, column: 11 },
16071
end: { line: 1, column: 13 }
16072
}
16073
},
16074
rest: null,
16075
generator: false,
16076
expression: false,
16077
range: [1, 13],
16078
loc: {
16079
start: { line: 1, column: 1 },
16080
end: { line: 1, column: 13 }
16081
}
16082
},
16083
range: [0, 14],
16084
loc: {
16085
start: { line: 1, column: 0 },
16086
end: { line: 1, column: 14 }
16087
}
16088
},
16089
16090
'function universe(__proto__) { }': {
16091
type: 'FunctionDeclaration',
16092
id: {
16093
type: 'Identifier',
16094
name: 'universe',
16095
range: [9, 17],
16096
loc: {
16097
start: { line: 1, column: 9 },
16098
end: { line: 1, column: 17 }
16099
}
16100
},
16101
params: [{
16102
type: 'Identifier',
16103
name: '__proto__',
16104
range: [18, 27],
16105
loc: {
16106
start: { line: 1, column: 18 },
16107
end: { line: 1, column: 27 }
16108
}
16109
}],
16110
defaults: [],
16111
body: {
16112
type: 'BlockStatement',
16113
body: [],
16114
range: [29, 32],
16115
loc: {
16116
start: { line: 1, column: 29 },
16117
end: { line: 1, column: 32 }
16118
}
16119
},
16120
rest: null,
16121
generator: false,
16122
expression: false,
16123
range: [0, 32],
16124
loc: {
16125
start: { line: 1, column: 0 },
16126
end: { line: 1, column: 32 }
16127
}
16128
},
16129
16130
'function test() { "use strict" + 42; }': {
16131
type: 'FunctionDeclaration',
16132
id: {
16133
type: 'Identifier',
16134
name: 'test',
16135
range: [9, 13],
16136
loc: {
16137
start: { line: 1, column: 9 },
16138
end: { line: 1, column: 13 }
16139
}
16140
},
16141
params: [],
16142
defaults: [],
16143
body: {
16144
type: 'BlockStatement',
16145
body: [{
16146
type: 'ExpressionStatement',
16147
expression: {
16148
type: 'BinaryExpression',
16149
operator: '+',
16150
left: {
16151
type: 'Literal',
16152
value: 'use strict',
16153
raw: '"use strict"',
16154
range: [18, 30],
16155
loc: {
16156
start: { line: 1, column: 18 },
16157
end: { line: 1, column: 30 }
16158
}
16159
},
16160
right: {
16161
type: 'Literal',
16162
value: 42,
16163
raw: '42',
16164
range: [33, 35],
16165
loc: {
16166
start: { line: 1, column: 33 },
16167
end: { line: 1, column: 35 }
16168
}
16169
},
16170
range: [18, 35],
16171
loc: {
16172
start: { line: 1, column: 18 },
16173
end: { line: 1, column: 35 }
16174
}
16175
},
16176
range: [18, 36],
16177
loc: {
16178
start: { line: 1, column: 18 },
16179
end: { line: 1, column: 36 }
16180
}
16181
}],
16182
range: [16, 38],
16183
loc: {
16184
start: { line: 1, column: 16 },
16185
end: { line: 1, column: 38 }
16186
}
16187
},
16188
rest: null,
16189
generator: false,
16190
expression: false,
16191
range: [0, 38],
16192
loc: {
16193
start: { line: 1, column: 0 },
16194
end: { line: 1, column: 38 }
16195
}
16196
}
16197
16198
},
16199
16200
'Automatic semicolon insertion': {
16201
16202
'{ x\n++y }': {
16203
type: 'BlockStatement',
16204
body: [{
16205
type: 'ExpressionStatement',
16206
expression: {
16207
type: 'Identifier',
16208
name: 'x',
16209
range: [2, 3],
16210
loc: {
16211
start: { line: 1, column: 2 },
16212
end: { line: 1, column: 3 }
16213
}
16214
},
16215
range: [2, 3],
16216
loc: {
16217
start: { line: 1, column: 2 },
16218
end: { line: 1, column: 3 }
16219
}
16220
}, {
16221
type: 'ExpressionStatement',
16222
expression: {
16223
type: 'UpdateExpression',
16224
operator: '++',
16225
argument: {
16226
type: 'Identifier',
16227
name: 'y',
16228
range: [6, 7],
16229
loc: {
16230
start: { line: 2, column: 2 },
16231
end: { line: 2, column: 3 }
16232
}
16233
},
16234
prefix: true,
16235
range: [4, 7],
16236
loc: {
16237
start: { line: 2, column: 0 },
16238
end: { line: 2, column: 3 }
16239
}
16240
},
16241
range: [4, 8],
16242
loc: {
16243
start: { line: 2, column: 0 },
16244
end: { line: 2, column: 4 }
16245
}
16246
}],
16247
range: [0, 9],
16248
loc: {
16249
start: { line: 1, column: 0 },
16250
end: { line: 2, column: 5 }
16251
}
16252
},
16253
16254
'{ x\n--y }': {
16255
type: 'BlockStatement',
16256
body: [{
16257
type: 'ExpressionStatement',
16258
expression: {
16259
type: 'Identifier',
16260
name: 'x',
16261
range: [2, 3],
16262
loc: {
16263
start: { line: 1, column: 2 },
16264
end: { line: 1, column: 3 }
16265
}
16266
},
16267
range: [2, 3],
16268
loc: {
16269
start: { line: 1, column: 2 },
16270
end: { line: 1, column: 3 }
16271
}
16272
}, {
16273
type: 'ExpressionStatement',
16274
expression: {
16275
type: 'UpdateExpression',
16276
operator: '--',
16277
argument: {
16278
type: 'Identifier',
16279
name: 'y',
16280
range: [6, 7],
16281
loc: {
16282
start: { line: 2, column: 2 },
16283
end: { line: 2, column: 3 }
16284
}
16285
},
16286
prefix: true,
16287
range: [4, 7],
16288
loc: {
16289
start: { line: 2, column: 0 },
16290
end: { line: 2, column: 3 }
16291
}
16292
},
16293
range: [4, 8],
16294
loc: {
16295
start: { line: 2, column: 0 },
16296
end: { line: 2, column: 4 }
16297
}
16298
}],
16299
range: [0, 9],
16300
loc: {
16301
start: { line: 1, column: 0 },
16302
end: { line: 2, column: 5 }
16303
}
16304
},
16305
16306
'var x /* comment */;': {
16307
type: 'VariableDeclaration',
16308
declarations: [{
16309
type: 'VariableDeclarator',
16310
id: {
16311
type: 'Identifier',
16312
name: 'x',
16313
range: [4, 5],
16314
loc: {
16315
start: { line: 1, column: 4 },
16316
end: { line: 1, column: 5 }
16317
}
16318
},
16319
init: null,
16320
range: [4, 5],
16321
loc: {
16322
start: { line: 1, column: 4 },
16323
end: { line: 1, column: 5 }
16324
}
16325
}],
16326
kind: 'var',
16327
range: [0, 20],
16328
loc: {
16329
start: { line: 1, column: 0 },
16330
end: { line: 1, column: 20 }
16331
}
16332
},
16333
16334
'{ var x = 14, y = 3\nz; }': {
16335
type: 'BlockStatement',
16336
body: [{
16337
type: 'VariableDeclaration',
16338
declarations: [{
16339
type: 'VariableDeclarator',
16340
id: {
16341
type: 'Identifier',
16342
name: 'x',
16343
range: [6, 7],
16344
loc: {
16345
start: { line: 1, column: 6 },
16346
end: { line: 1, column: 7 }
16347
}
16348
},
16349
init: {
16350
type: 'Literal',
16351
value: 14,
16352
raw: '14',
16353
range: [10, 12],
16354
loc: {
16355
start: { line: 1, column: 10 },
16356
end: { line: 1, column: 12 }
16357
}
16358
},
16359
range: [6, 12],
16360
loc: {
16361
start: { line: 1, column: 6 },
16362
end: { line: 1, column: 12 }
16363
}
16364
}, {
16365
type: 'VariableDeclarator',
16366
id: {
16367
type: 'Identifier',
16368
name: 'y',
16369
range: [14, 15],
16370
loc: {
16371
start: { line: 1, column: 14 },
16372
end: { line: 1, column: 15 }
16373
}
16374
},
16375
init: {
16376
type: 'Literal',
16377
value: 3,
16378
raw: '3',
16379
range: [18, 19],
16380
loc: {
16381
start: { line: 1, column: 18 },
16382
end: { line: 1, column: 19 }
16383
}
16384
},
16385
range: [14, 19],
16386
loc: {
16387
start: { line: 1, column: 14 },
16388
end: { line: 1, column: 19 }
16389
}
16390
}],
16391
kind: 'var',
16392
range: [2, 19],
16393
loc: {
16394
start: { line: 1, column: 2 },
16395
end: { line: 1, column: 19 }
16396
}
16397
}, {
16398
type: 'ExpressionStatement',
16399
expression: {
16400
type: 'Identifier',
16401
name: 'z',
16402
range: [20, 21],
16403
loc: {
16404
start: { line: 2, column: 0 },
16405
end: { line: 2, column: 1 }
16406
}
16407
},
16408
range: [20, 22],
16409
loc: {
16410
start: { line: 2, column: 0 },
16411
end: { line: 2, column: 2 }
16412
}
16413
}],
16414
range: [0, 24],
16415
loc: {
16416
start: { line: 1, column: 0 },
16417
end: { line: 2, column: 4 }
16418
}
16419
},
16420
16421
'while (true) { continue\nthere; }': {
16422
type: 'WhileStatement',
16423
test: {
16424
type: 'Literal',
16425
value: true,
16426
raw: 'true',
16427
range: [7, 11],
16428
loc: {
16429
start: { line: 1, column: 7 },
16430
end: { line: 1, column: 11 }
16431
}
16432
},
16433
body: {
16434
type: 'BlockStatement',
16435
body: [{
16436
type: 'ContinueStatement',
16437
label: null,
16438
range: [15, 23],
16439
loc: {
16440
start: { line: 1, column: 15 },
16441
end: { line: 1, column: 23 }
16442
}
16443
}, {
16444
type: 'ExpressionStatement',
16445
expression: {
16446
type: 'Identifier',
16447
name: 'there',
16448
range: [24, 29],
16449
loc: {
16450
start: { line: 2, column: 0 },
16451
end: { line: 2, column: 5 }
16452
}
16453
},
16454
range: [24, 30],
16455
loc: {
16456
start: { line: 2, column: 0 },
16457
end: { line: 2, column: 6 }
16458
}
16459
}],
16460
range: [13, 32],
16461
loc: {
16462
start: { line: 1, column: 13 },
16463
end: { line: 2, column: 8 }
16464
}
16465
},
16466
range: [0, 32],
16467
loc: {
16468
start: { line: 1, column: 0 },
16469
end: { line: 2, column: 8 }
16470
}
16471
},
16472
16473
'while (true) { continue // Comment\nthere; }': {
16474
type: 'WhileStatement',
16475
test: {
16476
type: 'Literal',
16477
value: true,
16478
raw: 'true',
16479
range: [7, 11],
16480
loc: {
16481
start: { line: 1, column: 7 },
16482
end: { line: 1, column: 11 }
16483
}
16484
},
16485
body: {
16486
type: 'BlockStatement',
16487
body: [{
16488
type: 'ContinueStatement',
16489
label: null,
16490
range: [15, 23],
16491
loc: {
16492
start: { line: 1, column: 15 },
16493
end: { line: 1, column: 23 }
16494
}
16495
}, {
16496
type: 'ExpressionStatement',
16497
expression: {
16498
type: 'Identifier',
16499
name: 'there',
16500
range: [35, 40],
16501
loc: {
16502
start: { line: 2, column: 0 },
16503
end: { line: 2, column: 5 }
16504
}
16505
},
16506
range: [35, 41],
16507
loc: {
16508
start: { line: 2, column: 0 },
16509
end: { line: 2, column: 6 }
16510
}
16511
}],
16512
range: [13, 43],
16513
loc: {
16514
start: { line: 1, column: 13 },
16515
end: { line: 2, column: 8 }
16516
}
16517
},
16518
range: [0, 43],
16519
loc: {
16520
start: { line: 1, column: 0 },
16521
end: { line: 2, column: 8 }
16522
}
16523
},
16524
16525
'while (true) { continue /* Multiline\nComment */there; }': {
16526
type: 'WhileStatement',
16527
test: {
16528
type: 'Literal',
16529
value: true,
16530
raw: 'true',
16531
range: [7, 11],
16532
loc: {
16533
start: { line: 1, column: 7 },
16534
end: { line: 1, column: 11 }
16535
}
16536
},
16537
body: {
16538
type: 'BlockStatement',
16539
body: [{
16540
type: 'ContinueStatement',
16541
label: null,
16542
range: [15, 23],
16543
loc: {
16544
start: { line: 1, column: 15 },
16545
end: { line: 1, column: 23 }
16546
}
16547
}, {
16548
type: 'ExpressionStatement',
16549
expression: {
16550
type: 'Identifier',
16551
name: 'there',
16552
range: [47, 52],
16553
loc: {
16554
start: { line: 2, column: 10 },
16555
end: { line: 2, column: 15 }
16556
}
16557
},
16558
range: [47, 53],
16559
loc: {
16560
start: { line: 2, column: 10 },
16561
end: { line: 2, column: 16 }
16562
}
16563
}],
16564
range: [13, 55],
16565
loc: {
16566
start: { line: 1, column: 13 },
16567
end: { line: 2, column: 18 }
16568
}
16569
},
16570
range: [0, 55],
16571
loc: {
16572
start: { line: 1, column: 0 },
16573
end: { line: 2, column: 18 }
16574
}
16575
},
16576
16577
'while (true) { break\nthere; }': {
16578
type: 'WhileStatement',
16579
test: {
16580
type: 'Literal',
16581
value: true,
16582
raw: 'true',
16583
range: [7, 11],
16584
loc: {
16585
start: { line: 1, column: 7 },
16586
end: { line: 1, column: 11 }
16587
}
16588
},
16589
body: {
16590
type: 'BlockStatement',
16591
body: [{
16592
type: 'BreakStatement',
16593
label: null,
16594
range: [15, 20],
16595
loc: {
16596
start: { line: 1, column: 15 },
16597
end: { line: 1, column: 20 }
16598
}
16599
}, {
16600
type: 'ExpressionStatement',
16601
expression: {
16602
type: 'Identifier',
16603
name: 'there',
16604
range: [21, 26],
16605
loc: {
16606
start: { line: 2, column: 0 },
16607
end: { line: 2, column: 5 }
16608
}
16609
},
16610
range: [21, 27],
16611
loc: {
16612
start: { line: 2, column: 0 },
16613
end: { line: 2, column: 6 }
16614
}
16615
}],
16616
range: [13, 29],
16617
loc: {
16618
start: { line: 1, column: 13 },
16619
end: { line: 2, column: 8 }
16620
}
16621
},
16622
range: [0, 29],
16623
loc: {
16624
start: { line: 1, column: 0 },
16625
end: { line: 2, column: 8 }
16626
}
16627
},
16628
16629
'while (true) { break // Comment\nthere; }': {
16630
type: 'WhileStatement',
16631
test: {
16632
type: 'Literal',
16633
value: true,
16634
raw: 'true',
16635
range: [7, 11],
16636
loc: {
16637
start: { line: 1, column: 7 },
16638
end: { line: 1, column: 11 }
16639
}
16640
},
16641
body: {
16642
type: 'BlockStatement',
16643
body: [{
16644
type: 'BreakStatement',
16645
label: null,
16646
range: [15, 20],
16647
loc: {
16648
start: { line: 1, column: 15 },
16649
end: { line: 1, column: 20 }
16650
}
16651
}, {
16652
type: 'ExpressionStatement',
16653
expression: {
16654
type: 'Identifier',
16655
name: 'there',
16656
range: [32, 37],
16657
loc: {
16658
start: { line: 2, column: 0 },
16659
end: { line: 2, column: 5 }
16660
}
16661
},
16662
range: [32, 38],
16663
loc: {
16664
start: { line: 2, column: 0 },
16665
end: { line: 2, column: 6 }
16666
}
16667
}],
16668
range: [13, 40],
16669
loc: {
16670
start: { line: 1, column: 13 },
16671
end: { line: 2, column: 8 }
16672
}
16673
},
16674
range: [0, 40],
16675
loc: {
16676
start: { line: 1, column: 0 },
16677
end: { line: 2, column: 8 }
16678
}
16679
},
16680
16681
'while (true) { break /* Multiline\nComment */there; }': {
16682
type: 'WhileStatement',
16683
test: {
16684
type: 'Literal',
16685
value: true,
16686
raw: 'true',
16687
range: [7, 11],
16688
loc: {
16689
start: { line: 1, column: 7 },
16690
end: { line: 1, column: 11 }
16691
}
16692
},
16693
body: {
16694
type: 'BlockStatement',
16695
body: [{
16696
type: 'BreakStatement',
16697
label: null,
16698
range: [15, 20],
16699
loc: {
16700
start: { line: 1, column: 15 },
16701
end: { line: 1, column: 20 }
16702
}
16703
}, {
16704
type: 'ExpressionStatement',
16705
expression: {
16706
type: 'Identifier',
16707
name: 'there',
16708
range: [44, 49],
16709
loc: {
16710
start: { line: 2, column: 10 },
16711
end: { line: 2, column: 15 }
16712
}
16713
},
16714
range: [44, 50],
16715
loc: {
16716
start: { line: 2, column: 10 },
16717
end: { line: 2, column: 16 }
16718
}
16719
}],
16720
range: [13, 52],
16721
loc: {
16722
start: { line: 1, column: 13 },
16723
end: { line: 2, column: 18 }
16724
}
16725
},
16726
range: [0, 52],
16727
loc: {
16728
start: { line: 1, column: 0 },
16729
end: { line: 2, column: 18 }
16730
}
16731
},
16732
16733
'(function(){ return\nx; })': {
16734
type: 'ExpressionStatement',
16735
expression: {
16736
type: 'FunctionExpression',
16737
id: null,
16738
params: [],
16739
defaults: [],
16740
body: {
16741
type: 'BlockStatement',
16742
body: [
16743
{
16744
type: 'ReturnStatement',
16745
argument: null,
16746
range: [13, 19],
16747
loc: {
16748
start: { line: 1, column: 13 },
16749
end: { line: 1, column: 19 }
16750
}
16751
},
16752
{
16753
type: 'ExpressionStatement',
16754
expression: {
16755
type: 'Identifier',
16756
name: 'x',
16757
range: [20, 21],
16758
loc: {
16759
start: { line: 2, column: 0 },
16760
end: { line: 2, column: 1 }
16761
}
16762
},
16763
range: [20, 22],
16764
loc: {
16765
start: { line: 2, column: 0 },
16766
end: { line: 2, column: 2 }
16767
}
16768
}
16769
],
16770
range: [11, 24],
16771
loc: {
16772
start: { line: 1, column: 11 },
16773
end: { line: 2, column: 4 }
16774
}
16775
},
16776
rest: null,
16777
generator: false,
16778
expression: false,
16779
range: [1, 24],
16780
loc: {
16781
start: { line: 1, column: 1 },
16782
end: { line: 2, column: 4 }
16783
}
16784
},
16785
range: [0, 25],
16786
loc: {
16787
start: { line: 1, column: 0 },
16788
end: { line: 2, column: 5 }
16789
}
16790
},
16791
16792
'(function(){ return // Comment\nx; })': {
16793
type: 'ExpressionStatement',
16794
expression: {
16795
type: 'FunctionExpression',
16796
id: null,
16797
params: [],
16798
defaults: [],
16799
body: {
16800
type: 'BlockStatement',
16801
body: [
16802
{
16803
type: 'ReturnStatement',
16804
argument: null,
16805
range: [13, 19],
16806
loc: {
16807
start: { line: 1, column: 13 },
16808
end: { line: 1, column: 19 }
16809
}
16810
},
16811
{
16812
type: 'ExpressionStatement',
16813
expression: {
16814
type: 'Identifier',
16815
name: 'x',
16816
range: [31, 32],
16817
loc: {
16818
start: { line: 2, column: 0 },
16819
end: { line: 2, column: 1 }
16820
}
16821
},
16822
range: [31, 33],
16823
loc: {
16824
start: { line: 2, column: 0 },
16825
end: { line: 2, column: 2 }
16826
}
16827
}
16828
],
16829
range: [11, 35],
16830
loc: {
16831
start: { line: 1, column: 11 },
16832
end: { line: 2, column: 4 }
16833
}
16834
},
16835
rest: null,
16836
generator: false,
16837
expression: false,
16838
range: [1, 35],
16839
loc: {
16840
start: { line: 1, column: 1 },
16841
end: { line: 2, column: 4 }
16842
}
16843
},
16844
range: [0, 36],
16845
loc: {
16846
start: { line: 1, column: 0 },
16847
end: { line: 2, column: 5 }
16848
}
16849
},
16850
16851
'(function(){ return/* Multiline\nComment */x; })': {
16852
type: 'ExpressionStatement',
16853
expression: {
16854
type: 'FunctionExpression',
16855
id: null,
16856
params: [],
16857
defaults: [],
16858
body: {
16859
type: 'BlockStatement',
16860
body: [
16861
{
16862
type: 'ReturnStatement',
16863
argument: null,
16864
range: [13, 19],
16865
loc: {
16866
start: { line: 1, column: 13 },
16867
end: { line: 1, column: 19 }
16868
}
16869
},
16870
{
16871
type: 'ExpressionStatement',
16872
expression: {
16873
type: 'Identifier',
16874
name: 'x',
16875
range: [42, 43],
16876
loc: {
16877
start: { line: 2, column: 10 },
16878
end: { line: 2, column: 11 }
16879
}
16880
},
16881
range: [42, 44],
16882
loc: {
16883
start: { line: 2, column: 10 },
16884
end: { line: 2, column: 12 }
16885
}
16886
}
16887
],
16888
range: [11, 46],
16889
loc: {
16890
start: { line: 1, column: 11 },
16891
end: { line: 2, column: 14 }
16892
}
16893
},
16894
rest: null,
16895
generator: false,
16896
expression: false,
16897
range: [1, 46],
16898
loc: {
16899
start: { line: 1, column: 1 },
16900
end: { line: 2, column: 14 }
16901
}
16902
},
16903
range: [0, 47],
16904
loc: {
16905
start: { line: 1, column: 0 },
16906
end: { line: 2, column: 15 }
16907
}
16908
},
16909
16910
'{ throw error\nerror; }': {
16911
type: 'BlockStatement',
16912
body: [{
16913
type: 'ThrowStatement',
16914
argument: {
16915
type: 'Identifier',
16916
name: 'error',
16917
range: [8, 13],
16918
loc: {
16919
start: { line: 1, column: 8 },
16920
end: { line: 1, column: 13 }
16921
}
16922
},
16923
range: [2, 13],
16924
loc: {
16925
start: { line: 1, column: 2 },
16926
end: { line: 1, column: 13 }
16927
}
16928
}, {
16929
type: 'ExpressionStatement',
16930
expression: {
16931
type: 'Identifier',
16932
name: 'error',
16933
range: [14, 19],
16934
loc: {
16935
start: { line: 2, column: 0 },
16936
end: { line: 2, column: 5 }
16937
}
16938
},
16939
range: [14, 20],
16940
loc: {
16941
start: { line: 2, column: 0 },
16942
end: { line: 2, column: 6 }
16943
}
16944
}],
16945
range: [0, 22],
16946
loc: {
16947
start: { line: 1, column: 0 },
16948
end: { line: 2, column: 8 }
16949
}
16950
},
16951
16952
'{ throw error// Comment\nerror; }': {
16953
type: 'BlockStatement',
16954
body: [{
16955
type: 'ThrowStatement',
16956
argument: {
16957
type: 'Identifier',
16958
name: 'error',
16959
range: [8, 13],
16960
loc: {
16961
start: { line: 1, column: 8 },
16962
end: { line: 1, column: 13 }
16963
}
16964
},
16965
range: [2, 13],
16966
loc: {
16967
start: { line: 1, column: 2 },
16968
end: { line: 1, column: 13 }
16969
}
16970
}, {
16971
type: 'ExpressionStatement',
16972
expression: {
16973
type: 'Identifier',
16974
name: 'error',
16975
range: [24, 29],
16976
loc: {
16977
start: { line: 2, column: 0 },
16978
end: { line: 2, column: 5 }
16979
}
16980
},
16981
range: [24, 30],
16982
loc: {
16983
start: { line: 2, column: 0 },
16984
end: { line: 2, column: 6 }
16985
}
16986
}],
16987
range: [0, 32],
16988
loc: {
16989
start: { line: 1, column: 0 },
16990
end: { line: 2, column: 8 }
16991
}
16992
},
16993
16994
'{ throw error/* Multiline\nComment */error; }': {
16995
type: 'BlockStatement',
16996
body: [{
16997
type: 'ThrowStatement',
16998
argument: {
16999
type: 'Identifier',
17000
name: 'error',
17001
range: [8, 13],
17002
loc: {
17003
start: { line: 1, column: 8 },
17004
end: { line: 1, column: 13 }
17005
}
17006
},
17007
range: [2, 13],
17008
loc: {
17009
start: { line: 1, column: 2 },
17010
end: { line: 1, column: 13 }
17011
}
17012
}, {
17013
type: 'ExpressionStatement',
17014
expression: {
17015
type: 'Identifier',
17016
name: 'error',
17017
range: [36, 41],
17018
loc: {
17019
start: { line: 2, column: 10 },
17020
end: { line: 2, column: 15 }
17021
}
17022
},
17023
range: [36, 42],
17024
loc: {
17025
start: { line: 2, column: 10 },
17026
end: { line: 2, column: 16 }
17027
}
17028
}],
17029
range: [0, 44],
17030
loc: {
17031
start: { line: 1, column: 0 },
17032
end: { line: 2, column: 18 }
17033
}
17034
}
17035
17036
},
17037
17038
'Source elements': {
17039
17040
'': {
17041
type: 'Program',
17042
body: [],
17043
range: [0, 0],
17044
loc: {
17045
start: { line: 0, column: 0 },
17046
end: { line: 0, column: 0 }
17047
},
17048
tokens: []
17049
}
17050
},
17051
17052
'Source option': {
17053
'x + y - z': {
17054
type: 'ExpressionStatement',
17055
expression: {
17056
type: 'BinaryExpression',
17057
operator: '-',
17058
left: {
17059
type: 'BinaryExpression',
17060
operator: '+',
17061
left: {
17062
type: 'Identifier',
17063
name: 'x',
17064
range: [0, 1],
17065
loc: {
17066
start: { line: 1, column: 0 },
17067
end: { line: 1, column: 1 },
17068
source: '42.js'
17069
}
17070
},
17071
right: {
17072
type: 'Identifier',
17073
name: 'y',
17074
range: [4, 5],
17075
loc: {
17076
start: { line: 1, column: 4 },
17077
end: { line: 1, column: 5 },
17078
source: '42.js'
17079
}
17080
},
17081
range: [0, 5],
17082
loc: {
17083
start: { line: 1, column: 0 },
17084
end: { line: 1, column: 5 },
17085
source: '42.js'
17086
}
17087
},
17088
right: {
17089
type: 'Identifier',
17090
name: 'z',
17091
range: [8, 9],
17092
loc: {
17093
start: { line: 1, column: 8 },
17094
end: { line: 1, column: 9 },
17095
source: '42.js'
17096
}
17097
},
17098
range: [0, 9],
17099
loc: {
17100
start: { line: 1, column: 0 },
17101
end: { line: 1, column: 9 },
17102
source: '42.js'
17103
}
17104
},
17105
range: [0, 9],
17106
loc: {
17107
start: { line: 1, column: 0 },
17108
end: { line: 1, column: 9 },
17109
source: '42.js'
17110
}
17111
},
17112
17113
'a + (b < (c * d)) + e': {
17114
type: 'ExpressionStatement',
17115
expression: {
17116
type: 'BinaryExpression',
17117
operator: '+',
17118
left: {
17119
type: 'BinaryExpression',
17120
operator: '+',
17121
left: {
17122
type: 'Identifier',
17123
name: 'a',
17124
range: [0, 1],
17125
loc: {
17126
start: { line: 1, column: 0 },
17127
end: { line: 1, column: 1 },
17128
source: '42.js'
17129
}
17130
},
17131
right: {
17132
type: 'BinaryExpression',
17133
operator: '<',
17134
left: {
17135
type: 'Identifier',
17136
name: 'b',
17137
range: [5, 6],
17138
loc: {
17139
start: { line: 1, column: 5 },
17140
end: { line: 1, column: 6 },
17141
source: '42.js'
17142
}
17143
},
17144
right: {
17145
type: 'BinaryExpression',
17146
operator: '*',
17147
left: {
17148
type: 'Identifier',
17149
name: 'c',
17150
range: [10, 11],
17151
loc: {
17152
start: { line: 1, column: 10 },
17153
end: { line: 1, column: 11 },
17154
source: '42.js'
17155
}
17156
},
17157
right: {
17158
type: 'Identifier',
17159
name: 'd',
17160
range: [14, 15],
17161
loc: {
17162
start: { line: 1, column: 14 },
17163
end: { line: 1, column: 15 },
17164
source: '42.js'
17165
}
17166
},
17167
range: [10, 15],
17168
loc: {
17169
start: { line: 1, column: 10 },
17170
end: { line: 1, column: 15 },
17171
source: '42.js'
17172
}
17173
},
17174
range: [5, 16],
17175
loc: {
17176
start: { line: 1, column: 5 },
17177
end: { line: 1, column: 16 },
17178
source: '42.js'
17179
}
17180
},
17181
range: [0, 17],
17182
loc: {
17183
start: { line: 1, column: 0 },
17184
end: { line: 1, column: 17 },
17185
source: '42.js'
17186
}
17187
},
17188
right: {
17189
type: 'Identifier',
17190
name: 'e',
17191
range: [20, 21],
17192
loc: {
17193
start: { line: 1, column: 20 },
17194
end: { line: 1, column: 21 },
17195
source: '42.js'
17196
}
17197
},
17198
range: [0, 21],
17199
loc: {
17200
start: { line: 1, column: 0 },
17201
end: { line: 1, column: 21 },
17202
source: '42.js'
17203
}
17204
},
17205
range: [0, 21],
17206
loc: {
17207
start: { line: 1, column: 0 },
17208
end: { line: 1, column: 21 },
17209
source: '42.js'
17210
}
17211
}
17212
17213
},
17214
17215
17216
'Invalid syntax': {
17217
17218
'{': {
17219
index: 1,
17220
lineNumber: 1,
17221
column: 2,
17222
message: 'Error: Line 1: Unexpected end of input'
17223
},
17224
17225
'}': {
17226
index: 0,
17227
lineNumber: 1,
17228
column: 1,
17229
message: 'Error: Line 1: Unexpected token }'
17230
},
17231
17232
'3ea': {
17233
index: 2,
17234
lineNumber: 1,
17235
column: 3,
17236
message: 'Error: Line 1: Unexpected token ILLEGAL'
17237
},
17238
17239
'3in []': {
17240
index: 1,
17241
lineNumber: 1,
17242
column: 2,
17243
message: 'Error: Line 1: Unexpected token ILLEGAL'
17244
},
17245
17246
'3e': {
17247
index: 2,
17248
lineNumber: 1,
17249
column: 3,
17250
message: 'Error: Line 1: Unexpected token ILLEGAL'
17251
},
17252
17253
'3e+': {
17254
index: 3,
17255
lineNumber: 1,
17256
column: 4,
17257
message: 'Error: Line 1: Unexpected token ILLEGAL'
17258
},
17259
17260
'3e-': {
17261
index: 3,
17262
lineNumber: 1,
17263
column: 4,
17264
message: 'Error: Line 1: Unexpected token ILLEGAL'
17265
},
17266
17267
'3x': {
17268
index: 1,
17269
lineNumber: 1,
17270
column: 2,
17271
message: 'Error: Line 1: Unexpected token ILLEGAL'
17272
},
17273
17274
'3x0': {
17275
index: 1,
17276
lineNumber: 1,
17277
column: 2,
17278
message: 'Error: Line 1: Unexpected token ILLEGAL'
17279
},
17280
17281
'0x': {
17282
index: 2,
17283
lineNumber: 1,
17284
column: 3,
17285
message: 'Error: Line 1: Unexpected token ILLEGAL'
17286
},
17287
17288
'09': {
17289
index: 1,
17290
lineNumber: 1,
17291
column: 2,
17292
message: 'Error: Line 1: Unexpected token ILLEGAL'
17293
},
17294
17295
'018': {
17296
index: 2,
17297
lineNumber: 1,
17298
column: 3,
17299
message: 'Error: Line 1: Unexpected token ILLEGAL'
17300
},
17301
17302
'01a': {
17303
index: 2,
17304
lineNumber: 1,
17305
column: 3,
17306
message: 'Error: Line 1: Unexpected token ILLEGAL'
17307
},
17308
17309
'3in[]': {
17310
index: 1,
17311
lineNumber: 1,
17312
column: 2,
17313
message: 'Error: Line 1: Unexpected token ILLEGAL'
17314
},
17315
17316
'0x3in[]': {
17317
index: 3,
17318
lineNumber: 1,
17319
column: 4,
17320
message: 'Error: Line 1: Unexpected token ILLEGAL'
17321
},
17322
17323
'"Hello\nWorld"': {
17324
index: 7,
17325
lineNumber: 1,
17326
column: 8,
17327
message: 'Error: Line 1: Unexpected token ILLEGAL'
17328
},
17329
17330
'x\\': {
17331
index: 2,
17332
lineNumber: 1,
17333
column: 3,
17334
message: 'Error: Line 1: Unexpected token ILLEGAL'
17335
},
17336
17337
'x\\u005c': {
17338
index: 7,
17339
lineNumber: 1,
17340
column: 8,
17341
message: 'Error: Line 1: Unexpected token ILLEGAL'
17342
},
17343
17344
'x\\u002a': {
17345
index: 7,
17346
lineNumber: 1,
17347
column: 8,
17348
message: 'Error: Line 1: Unexpected token ILLEGAL'
17349
},
17350
17351
'var x = /(s/g': {
17352
index: 13,
17353
lineNumber: 1,
17354
column: 14,
17355
message: 'Error: Line 1: Invalid regular expression'
17356
},
17357
17358
'a\\u': {
17359
index: 3,
17360
lineNumber: 1,
17361
column: 4,
17362
message: 'Error: Line 1: Unexpected token ILLEGAL'
17363
},
17364
17365
'\\ua': {
17366
index: 3,
17367
lineNumber: 1,
17368
column: 4,
17369
message: 'Error: Line 1: Unexpected token ILLEGAL'
17370
},
17371
17372
'/': {
17373
index: 1,
17374
lineNumber: 1,
17375
column: 2,
17376
message: 'Error: Line 1: Invalid regular expression: missing /'
17377
},
17378
17379
'/test': {
17380
index: 5,
17381
lineNumber: 1,
17382
column: 6,
17383
message: 'Error: Line 1: Invalid regular expression: missing /'
17384
},
17385
17386
'var x = /[z-a]/': {
17387
index: 15,
17388
lineNumber: 1,
17389
column: 16,
17390
message: 'Error: Line 1: Invalid regular expression'
17391
},
17392
17393
'/test\n/': {
17394
index: 6,
17395
lineNumber: 1,
17396
column: 7,
17397
message: 'Error: Line 1: Invalid regular expression: missing /'
17398
},
17399
17400
'var x = /[a-z]/\\ux': {
17401
index: 17,
17402
lineNumber: 1,
17403
column: 18,
17404
message: 'Error: Line 1: Unexpected token ILLEGAL'
17405
},
17406
17407
'var x = /[a-z\n]/\\ux': {
17408
index: 18,
17409
lineNumber: 1,
17410
column: 19,
17411
message: 'Error: Line 1: Unexpected token ILLEGAL'
17412
},
17413
17414
'var x = /[a-z]/\\\\ux': {
17415
index: 18,
17416
lineNumber: 1,
17417
column: 19,
17418
message: 'Error: Line 1: Unexpected token ILLEGAL'
17419
},
17420
17421
'var x = /[P QR]/\\\\u0067': {
17422
index: 23,
17423
lineNumber: 1,
17424
column: 24,
17425
message: 'Error: Line 1: Unexpected token ILLEGAL'
17426
},
17427
17428
'3 = 4': {
17429
index: 1,
17430
lineNumber: 1,
17431
column: 2,
17432
message: 'Error: Line 1: Invalid left-hand side in assignment'
17433
},
17434
17435
'func() = 4': {
17436
index: 6,
17437
lineNumber: 1,
17438
column: 7,
17439
message: 'Error: Line 1: Invalid left-hand side in assignment'
17440
},
17441
17442
'(1 + 1) = 10': {
17443
index: 7,
17444
lineNumber: 1,
17445
column: 8,
17446
message: 'Error: Line 1: Invalid left-hand side in assignment'
17447
},
17448
17449
'1++': {
17450
index: 1,
17451
lineNumber: 1,
17452
column: 2,
17453
message: 'Error: Line 1: Invalid left-hand side in assignment'
17454
},
17455
17456
'1--': {
17457
index: 1,
17458
lineNumber: 1,
17459
column: 2,
17460
message: 'Error: Line 1: Invalid left-hand side in assignment'
17461
},
17462
17463
'++1': {
17464
index: 3,
17465
lineNumber: 1,
17466
column: 4,
17467
message: 'Error: Line 1: Invalid left-hand side in assignment'
17468
},
17469
17470
'--1': {
17471
index: 3,
17472
lineNumber: 1,
17473
column: 4,
17474
message: 'Error: Line 1: Invalid left-hand side in assignment'
17475
},
17476
17477
'for((1 + 1) in list) process(x);': {
17478
index: 11,
17479
lineNumber: 1,
17480
column: 12,
17481
message: 'Error: Line 1: Invalid left-hand side in for-in'
17482
},
17483
17484
'[': {
17485
index: 1,
17486
lineNumber: 1,
17487
column: 2,
17488
message: 'Error: Line 1: Unexpected end of input'
17489
},
17490
17491
'[,': {
17492
index: 2,
17493
lineNumber: 1,
17494
column: 3,
17495
message: 'Error: Line 1: Unexpected end of input'
17496
},
17497
17498
'1 + {': {
17499
index: 5,
17500
lineNumber: 1,
17501
column: 6,
17502
message: 'Error: Line 1: Unexpected end of input'
17503
},
17504
17505
'1 + { t:t ': {
17506
index: 10,
17507
lineNumber: 1,
17508
column: 11,
17509
message: 'Error: Line 1: Unexpected end of input'
17510
},
17511
17512
'1 + { t:t,': {
17513
index: 10,
17514
lineNumber: 1,
17515
column: 11,
17516
message: 'Error: Line 1: Unexpected end of input'
17517
},
17518
17519
'var x = /\n/': {
17520
index: 10,
17521
lineNumber: 1,
17522
column: 11,
17523
message: 'Error: Line 1: Invalid regular expression: missing /'
17524
},
17525
17526
'var x = "\n': {
17527
index: 10,
17528
lineNumber: 1,
17529
column: 11,
17530
message: 'Error: Line 1: Unexpected token ILLEGAL'
17531
},
17532
17533
'var if = 42': {
17534
index: 4,
17535
lineNumber: 1,
17536
column: 5,
17537
message: 'Error: Line 1: Unexpected token if'
17538
},
17539
17540
'i #= 42': {
17541
index: 2,
17542
lineNumber: 1,
17543
column: 3,
17544
message: 'Error: Line 1: Unexpected token ILLEGAL'
17545
},
17546
17547
'i + 2 = 42': {
17548
index: 5,
17549
lineNumber: 1,
17550
column: 6,
17551
message: 'Error: Line 1: Invalid left-hand side in assignment'
17552
},
17553
17554
'+i = 42': {
17555
index: 2,
17556
lineNumber: 1,
17557
column: 3,
17558
message: 'Error: Line 1: Invalid left-hand side in assignment'
17559
},
17560
17561
'1 + (': {
17562
index: 5,
17563
lineNumber: 1,
17564
column: 6,
17565
message: 'Error: Line 1: Unexpected end of input'
17566
},
17567
17568
'\n\n\n{': {
17569
index: 4,
17570
lineNumber: 4,
17571
column: 2,
17572
message: 'Error: Line 4: Unexpected end of input'
17573
},
17574
17575
'\n/* Some multiline\ncomment */\n)': {
17576
index: 30,
17577
lineNumber: 4,
17578
column: 1,
17579
message: 'Error: Line 4: Unexpected token )'
17580
},
17581
17582
'{ set 1 }': {
17583
index: 6,
17584
lineNumber: 1,
17585
column: 7,
17586
message: 'Error: Line 1: Unexpected number'
17587
},
17588
17589
'{ get 2 }': {
17590
index: 6,
17591
lineNumber: 1,
17592
column: 7,
17593
message: 'Error: Line 1: Unexpected number'
17594
},
17595
17596
'({ set: s(if) { } })': {
17597
index: 10,
17598
lineNumber: 1,
17599
column: 11,
17600
message: 'Error: Line 1: Unexpected token if'
17601
},
17602
17603
'({ set s(.) { } })': {
17604
index: 9,
17605
lineNumber: 1,
17606
column: 10,
17607
message: 'Error: Line 1: Unexpected token .'
17608
},
17609
17610
'({ set: s() { } })': {
17611
index: 12,
17612
lineNumber: 1,
17613
column: 13,
17614
message: 'Error: Line 1: Unexpected token {'
17615
},
17616
17617
'({ set: s(a, b) { } })': {
17618
index: 16,
17619
lineNumber: 1,
17620
column: 17,
17621
message: 'Error: Line 1: Unexpected token {'
17622
},
17623
17624
'({ get: g(d) { } })': {
17625
index: 13,
17626
lineNumber: 1,
17627
column: 14,
17628
message: 'Error: Line 1: Unexpected token {'
17629
},
17630
17631
'({ get i() { }, i: 42 })': {
17632
index: 21,
17633
lineNumber: 1,
17634
column: 22,
17635
message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
17636
},
17637
17638
'({ i: 42, get i() { } })': {
17639
index: 21,
17640
lineNumber: 1,
17641
column: 22,
17642
message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
17643
},
17644
17645
'({ set i(x) { }, i: 42 })': {
17646
index: 22,
17647
lineNumber: 1,
17648
column: 23,
17649
message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
17650
},
17651
17652
'({ i: 42, set i(x) { } })': {
17653
index: 22,
17654
lineNumber: 1,
17655
column: 23,
17656
message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
17657
},
17658
17659
'({ get i() { }, get i() { } })': {
17660
index: 27,
17661
lineNumber: 1,
17662
column: 28,
17663
message: 'Error: Line 1: Object literal may not have multiple get/set accessors with the same name'
17664
},
17665
17666
'({ set i(x) { }, set i(x) { } })': {
17667
index: 29,
17668
lineNumber: 1,
17669
column: 30,
17670
message: 'Error: Line 1: Object literal may not have multiple get/set accessors with the same name'
17671
},
17672
17673
'function t(if) { }': {
17674
index: 11,
17675
lineNumber: 1,
17676
column: 12,
17677
message: 'Error: Line 1: Unexpected token if'
17678
},
17679
17680
'function t(true) { }': {
17681
index: 11,
17682
lineNumber: 1,
17683
column: 12,
17684
message: 'Error: Line 1: Unexpected token true'
17685
},
17686
17687
'function t(false) { }': {
17688
index: 11,
17689
lineNumber: 1,
17690
column: 12,
17691
message: 'Error: Line 1: Unexpected token false'
17692
},
17693
17694
'function t(null) { }': {
17695
index: 11,
17696
lineNumber: 1,
17697
column: 12,
17698
message: 'Error: Line 1: Unexpected token null'
17699
},
17700
17701
'function null() { }': {
17702
index: 9,
17703
lineNumber: 1,
17704
column: 10,
17705
message: 'Error: Line 1: Unexpected token null'
17706
},
17707
17708
'function true() { }': {
17709
index: 9,
17710
lineNumber: 1,
17711
column: 10,
17712
message: 'Error: Line 1: Unexpected token true'
17713
},
17714
17715
'function false() { }': {
17716
index: 9,
17717
lineNumber: 1,
17718
column: 10,
17719
message: 'Error: Line 1: Unexpected token false'
17720
},
17721
17722
'function if() { }': {
17723
index: 9,
17724
lineNumber: 1,
17725
column: 10,
17726
message: 'Error: Line 1: Unexpected token if'
17727
},
17728
17729
'a b;': {
17730
index: 2,
17731
lineNumber: 1,
17732
column: 3,
17733
message: 'Error: Line 1: Unexpected identifier'
17734
},
17735
17736
'if.a;': {
17737
index: 2,
17738
lineNumber: 1,
17739
column: 3,
17740
message: 'Error: Line 1: Unexpected token .'
17741
},
17742
17743
'a if;': {
17744
index: 2,
17745
lineNumber: 1,
17746
column: 3,
17747
message: 'Error: Line 1: Unexpected token if'
17748
},
17749
17750
'a class;': {
17751
index: 2,
17752
lineNumber: 1,
17753
column: 3,
17754
message: 'Error: Line 1: Unexpected reserved word'
17755
},
17756
17757
'break\n': {
17758
index: 5,
17759
lineNumber: 1,
17760
column: 6,
17761
message: 'Error: Line 1: Illegal break statement'
17762
},
17763
17764
'break 1;': {
17765
index: 6,
17766
lineNumber: 1,
17767
column: 7,
17768
message: 'Error: Line 1: Unexpected number'
17769
},
17770
17771
'continue\n': {
17772
index: 8,
17773
lineNumber: 1,
17774
column: 9,
17775
message: 'Error: Line 1: Illegal continue statement'
17776
},
17777
17778
'continue 2;': {
17779
index: 9,
17780
lineNumber: 1,
17781
column: 10,
17782
message: 'Error: Line 1: Unexpected number'
17783
},
17784
17785
'throw': {
17786
index: 5,
17787
lineNumber: 1,
17788
column: 6,
17789
message: 'Error: Line 1: Unexpected end of input'
17790
},
17791
17792
'throw;': {
17793
index: 5,
17794
lineNumber: 1,
17795
column: 6,
17796
message: 'Error: Line 1: Unexpected token ;'
17797
},
17798
17799
'throw\n': {
17800
index: 5,
17801
lineNumber: 1,
17802
column: 6,
17803
message: 'Error: Line 1: Illegal newline after throw'
17804
},
17805
17806
'for (var i, i2 in {});': {
17807
index: 15,
17808
lineNumber: 1,
17809
column: 16,
17810
message: 'Error: Line 1: Unexpected token in'
17811
},
17812
17813
'for ((i in {}));': {
17814
index: 14,
17815
lineNumber: 1,
17816
column: 15,
17817
message: 'Error: Line 1: Unexpected token )'
17818
},
17819
17820
'for (i + 1 in {});': {
17821
index: 10,
17822
lineNumber: 1,
17823
column: 11,
17824
message: 'Error: Line 1: Invalid left-hand side in for-in'
17825
},
17826
17827
'for (+i in {});': {
17828
index: 7,
17829
lineNumber: 1,
17830
column: 8,
17831
message: 'Error: Line 1: Invalid left-hand side in for-in'
17832
},
17833
17834
'if(false)': {
17835
index: 9,
17836
lineNumber: 1,
17837
column: 10,
17838
message: 'Error: Line 1: Unexpected end of input'
17839
},
17840
17841
'if(false) doThis(); else': {
17842
index: 24,
17843
lineNumber: 1,
17844
column: 25,
17845
message: 'Error: Line 1: Unexpected end of input'
17846
},
17847
17848
'do': {
17849
index: 2,
17850
lineNumber: 1,
17851
column: 3,
17852
message: 'Error: Line 1: Unexpected end of input'
17853
},
17854
17855
'while(false)': {
17856
index: 12,
17857
lineNumber: 1,
17858
column: 13,
17859
message: 'Error: Line 1: Unexpected end of input'
17860
},
17861
17862
'for(;;)': {
17863
index: 7,
17864
lineNumber: 1,
17865
column: 8,
17866
message: 'Error: Line 1: Unexpected end of input'
17867
},
17868
17869
'with(x)': {
17870
index: 7,
17871
lineNumber: 1,
17872
column: 8,
17873
message: 'Error: Line 1: Unexpected end of input'
17874
},
17875
17876
'try { }': {
17877
index: 7,
17878
lineNumber: 1,
17879
column: 8,
17880
message: 'Error: Line 1: Missing catch or finally after try'
17881
},
17882
17883
'\u203F = 10': {
17884
index: 0,
17885
lineNumber: 1,
17886
column: 1,
17887
message: 'Error: Line 1: Unexpected token ILLEGAL'
17888
},
17889
17890
'const x = 12, y;': {
17891
index: 15,
17892
lineNumber: 1,
17893
column: 16,
17894
message: 'Error: Line 1: Const must be initialized'
17895
},
17896
17897
'const x, y = 12;': {
17898
index: 7,
17899
lineNumber: 1,
17900
column: 8,
17901
message: 'Error: Line 1: Const must be initialized'
17902
},
17903
17904
'const x;': {
17905
index: 7,
17906
lineNumber: 1,
17907
column: 8,
17908
message: 'Error: Line 1: Const must be initialized'
17909
},
17910
17911
'if(true) let a = 1;': {
17912
index: 9,
17913
lineNumber: 1,
17914
column: 10,
17915
message: 'Error: Line 1: Unexpected token let'
17916
},
17917
17918
'if(true) const a = 1;': {
17919
index: 9,
17920
lineNumber: 1,
17921
column: 10,
17922
message: 'Error: Line 1: Unexpected token const'
17923
},
17924
17925
'switch (c) { default: default: }': {
17926
index: 30,
17927
lineNumber: 1,
17928
column: 31,
17929
message: 'Error: Line 1: More than one default clause in switch statement'
17930
},
17931
17932
'new X()."s"': {
17933
index: 8,
17934
lineNumber: 1,
17935
column: 9,
17936
message: 'Error: Line 1: Unexpected string'
17937
},
17938
17939
'/*': {
17940
index: 2,
17941
lineNumber: 1,
17942
column: 3,
17943
message: 'Error: Line 1: Unexpected token ILLEGAL'
17944
},
17945
17946
'/*\n\n\n': {
17947
index: 5,
17948
lineNumber: 4,
17949
column: 1,
17950
message: 'Error: Line 4: Unexpected token ILLEGAL'
17951
},
17952
17953
'/**': {
17954
index: 3,
17955
lineNumber: 1,
17956
column: 4,
17957
message: 'Error: Line 1: Unexpected token ILLEGAL'
17958
},
17959
17960
'/*\n\n*': {
17961
index: 5,
17962
lineNumber: 3,
17963
column: 2,
17964
message: 'Error: Line 3: Unexpected token ILLEGAL'
17965
},
17966
17967
'/*hello': {
17968
index: 7,
17969
lineNumber: 1,
17970
column: 8,
17971
message: 'Error: Line 1: Unexpected token ILLEGAL'
17972
},
17973
17974
'/*hello *': {
17975
index: 10,
17976
lineNumber: 1,
17977
column: 11,
17978
message: 'Error: Line 1: Unexpected token ILLEGAL'
17979
},
17980
17981
'\n]': {
17982
index: 1,
17983
lineNumber: 2,
17984
column: 1,
17985
message: 'Error: Line 2: Unexpected token ]'
17986
},
17987
17988
'\r]': {
17989
index: 1,
17990
lineNumber: 2,
17991
column: 1,
17992
message: 'Error: Line 2: Unexpected token ]'
17993
},
17994
17995
'\r\n]': {
17996
index: 2,
17997
lineNumber: 2,
17998
column: 1,
17999
message: 'Error: Line 2: Unexpected token ]'
18000
},
18001
18002
'\n\r]': {
18003
index: 2,
18004
lineNumber: 3,
18005
column: 1,
18006
message: 'Error: Line 3: Unexpected token ]'
18007
},
18008
18009
'//\r\n]': {
18010
index: 4,
18011
lineNumber: 2,
18012
column: 1,
18013
message: 'Error: Line 2: Unexpected token ]'
18014
},
18015
18016
'//\n\r]': {
18017
index: 4,
18018
lineNumber: 3,
18019
column: 1,
18020
message: 'Error: Line 3: Unexpected token ]'
18021
},
18022
18023
'/a\\\n/': {
18024
index: 4,
18025
lineNumber: 1,
18026
column: 5,
18027
message: 'Error: Line 1: Invalid regular expression: missing /'
18028
},
18029
18030
'//\r \n]': {
18031
index: 5,
18032
lineNumber: 3,
18033
column: 1,
18034
message: 'Error: Line 3: Unexpected token ]'
18035
},
18036
18037
'/*\r\n*/]': {
18038
index: 6,
18039
lineNumber: 2,
18040
column: 3,
18041
message: 'Error: Line 2: Unexpected token ]'
18042
},
18043
18044
'/*\n\r*/]': {
18045
index: 6,
18046
lineNumber: 2,
18047
column: 4,
18048
message: 'Error: Line 2: Unexpected token ]'
18049
},
18050
18051
'/*\r \n*/]': {
18052
index: 7,
18053
lineNumber: 2,
18054
column: 3,
18055
message: 'Error: Line 2: Unexpected token ]'
18056
},
18057
18058
'\\\\': {
18059
index: 1,
18060
lineNumber: 1,
18061
column: 2,
18062
message: 'Error: Line 1: Unexpected token ILLEGAL'
18063
},
18064
18065
'\\u005c': {
18066
index: 6,
18067
lineNumber: 1,
18068
column: 7,
18069
message: 'Error: Line 1: Unexpected token ILLEGAL'
18070
},
18071
18072
18073
'\\x': {
18074
index: 1,
18075
lineNumber: 1,
18076
column: 2,
18077
message: 'Error: Line 1: Unexpected token ILLEGAL'
18078
},
18079
18080
'\\u0000': {
18081
index: 6,
18082
lineNumber: 1,
18083
column: 7,
18084
message: 'Error: Line 1: Unexpected token ILLEGAL'
18085
},
18086
18087
'\u200C = []': {
18088
index: 0,
18089
lineNumber: 1,
18090
column: 1,
18091
message: 'Error: Line 1: Unexpected token ILLEGAL'
18092
},
18093
18094
'\u200D = []': {
18095
index: 0,
18096
lineNumber: 1,
18097
column: 1,
18098
message: 'Error: Line 1: Unexpected token ILLEGAL'
18099
},
18100
18101
'"\\': {
18102
index: 3,
18103
lineNumber: 1,
18104
column: 4,
18105
message: 'Error: Line 1: Unexpected token ILLEGAL'
18106
},
18107
18108
'"\\u': {
18109
index: 3,
18110
lineNumber: 1,
18111
column: 4,
18112
message: 'Error: Line 1: Unexpected token ILLEGAL'
18113
},
18114
18115
'try { } catch() {}': {
18116
index: 14,
18117
lineNumber: 1,
18118
column: 15,
18119
message: 'Error: Line 1: Unexpected token )'
18120
},
18121
18122
'return': {
18123
index: 6,
18124
lineNumber: 1,
18125
column: 7,
18126
message: 'Error: Line 1: Illegal return statement'
18127
},
18128
18129
'break': {
18130
index: 5,
18131
lineNumber: 1,
18132
column: 6,
18133
message: 'Error: Line 1: Illegal break statement'
18134
},
18135
18136
'continue': {
18137
index: 8,
18138
lineNumber: 1,
18139
column: 9,
18140
message: 'Error: Line 1: Illegal continue statement'
18141
},
18142
18143
'switch (x) { default: continue; }': {
18144
index: 31,
18145
lineNumber: 1,
18146
column: 32,
18147
message: 'Error: Line 1: Illegal continue statement'
18148
},
18149
18150
'do { x } *': {
18151
index: 9,
18152
lineNumber: 1,
18153
column: 10,
18154
message: 'Error: Line 1: Unexpected token *'
18155
},
18156
18157
'while (true) { break x; }': {
18158
index: 22,
18159
lineNumber: 1,
18160
column: 23,
18161
message: 'Error: Line 1: Undefined label \'x\''
18162
},
18163
18164
'while (true) { continue x; }': {
18165
index: 25,
18166
lineNumber: 1,
18167
column: 26,
18168
message: 'Error: Line 1: Undefined label \'x\''
18169
},
18170
18171
'x: while (true) { (function () { break x; }); }': {
18172
index: 40,
18173
lineNumber: 1,
18174
column: 41,
18175
message: 'Error: Line 1: Undefined label \'x\''
18176
},
18177
18178
'x: while (true) { (function () { continue x; }); }': {
18179
index: 43,
18180
lineNumber: 1,
18181
column: 44,
18182
message: 'Error: Line 1: Undefined label \'x\''
18183
},
18184
18185
'x: while (true) { (function () { break; }); }': {
18186
index: 39,
18187
lineNumber: 1,
18188
column: 40,
18189
message: 'Error: Line 1: Illegal break statement'
18190
},
18191
18192
'x: while (true) { (function () { continue; }); }': {
18193
index: 42,
18194
lineNumber: 1,
18195
column: 43,
18196
message: 'Error: Line 1: Illegal continue statement'
18197
},
18198
18199
'x: while (true) { x: while (true) { } }': {
18200
index: 20,
18201
lineNumber: 1,
18202
column: 21,
18203
message: 'Error: Line 1: Label \'x\' has already been declared'
18204
},
18205
18206
'(function () { \'use strict\'; delete i; }())': {
18207
index: 37,
18208
lineNumber: 1,
18209
column: 38,
18210
message: 'Error: Line 1: Delete of an unqualified identifier in strict mode.'
18211
},
18212
18213
'(function () { \'use strict\'; with (i); }())': {
18214
index: 28,
18215
lineNumber: 1,
18216
column: 29,
18217
message: 'Error: Line 1: Strict mode code may not include a with statement'
18218
},
18219
18220
'function hello() {\'use strict\'; ({ i: 42, i: 42 }) }': {
18221
index: 47,
18222
lineNumber: 1,
18223
column: 48,
18224
message: 'Error: Line 1: Duplicate data property in object literal not allowed in strict mode'
18225
},
18226
18227
'function hello() {\'use strict\'; ({ hasOwnProperty: 42, hasOwnProperty: 42 }) }': {
18228
index: 73,
18229
lineNumber: 1,
18230
column: 74,
18231
message: 'Error: Line 1: Duplicate data property in object literal not allowed in strict mode'
18232
},
18233
18234
'function hello() {\'use strict\'; var eval = 10; }': {
18235
index: 40,
18236
lineNumber: 1,
18237
column: 41,
18238
message: 'Error: Line 1: Variable name may not be eval or arguments in strict mode'
18239
},
18240
18241
'function hello() {\'use strict\'; var arguments = 10; }': {
18242
index: 45,
18243
lineNumber: 1,
18244
column: 46,
18245
message: 'Error: Line 1: Variable name may not be eval or arguments in strict mode'
18246
},
18247
18248
'function hello() {\'use strict\'; try { } catch (eval) { } }': {
18249
index: 51,
18250
lineNumber: 1,
18251
column: 52,
18252
message: 'Error: Line 1: Catch variable may not be eval or arguments in strict mode'
18253
},
18254
18255
'function hello() {\'use strict\'; try { } catch (arguments) { } }': {
18256
index: 56,
18257
lineNumber: 1,
18258
column: 57,
18259
message: 'Error: Line 1: Catch variable may not be eval or arguments in strict mode'
18260
},
18261
18262
'function hello() {\'use strict\'; eval = 10; }': {
18263
index: 32,
18264
lineNumber: 1,
18265
column: 33,
18266
message: 'Error: Line 1: Assignment to eval or arguments is not allowed in strict mode'
18267
},
18268
18269
'function hello() {\'use strict\'; arguments = 10; }': {
18270
index: 32,
18271
lineNumber: 1,
18272
column: 33,
18273
message: 'Error: Line 1: Assignment to eval or arguments is not allowed in strict mode'
18274
},
18275
18276
'function hello() {\'use strict\'; ++eval; }': {
18277
index: 38,
18278
lineNumber: 1,
18279
column: 39,
18280
message: 'Error: Line 1: Prefix increment/decrement may not have eval or arguments operand in strict mode'
18281
},
18282
18283
'function hello() {\'use strict\'; --eval; }': {
18284
index: 38,
18285
lineNumber: 1,
18286
column: 39,
18287
message: 'Error: Line 1: Prefix increment/decrement may not have eval or arguments operand in strict mode'
18288
},
18289
18290
'function hello() {\'use strict\'; ++arguments; }': {
18291
index: 43,
18292
lineNumber: 1,
18293
column: 44,
18294
message: 'Error: Line 1: Prefix increment/decrement may not have eval or arguments operand in strict mode'
18295
},
18296
18297
'function hello() {\'use strict\'; --arguments; }': {
18298
index: 43,
18299
lineNumber: 1,
18300
column: 44,
18301
message: 'Error: Line 1: Prefix increment/decrement may not have eval or arguments operand in strict mode'
18302
},
18303
18304
'function hello() {\'use strict\'; eval++; }': {
18305
index: 36,
18306
lineNumber: 1,
18307
column: 37,
18308
message: 'Error: Line 1: Postfix increment/decrement may not have eval or arguments operand in strict mode'
18309
},
18310
18311
'function hello() {\'use strict\'; eval--; }': {
18312
index: 36,
18313
lineNumber: 1,
18314
column: 37,
18315
message: 'Error: Line 1: Postfix increment/decrement may not have eval or arguments operand in strict mode'
18316
},
18317
18318
'function hello() {\'use strict\'; arguments++; }': {
18319
index: 41,
18320
lineNumber: 1,
18321
column: 42,
18322
message: 'Error: Line 1: Postfix increment/decrement may not have eval or arguments operand in strict mode'
18323
},
18324
18325
'function hello() {\'use strict\'; arguments--; }': {
18326
index: 41,
18327
lineNumber: 1,
18328
column: 42,
18329
message: 'Error: Line 1: Postfix increment/decrement may not have eval or arguments operand in strict mode'
18330
},
18331
18332
'function hello() {\'use strict\'; function eval() { } }': {
18333
index: 41,
18334
lineNumber: 1,
18335
column: 42,
18336
message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
18337
},
18338
18339
'function hello() {\'use strict\'; function arguments() { } }': {
18340
index: 41,
18341
lineNumber: 1,
18342
column: 42,
18343
message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
18344
},
18345
18346
'function eval() {\'use strict\'; }': {
18347
index: 9,
18348
lineNumber: 1,
18349
column: 10,
18350
message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
18351
},
18352
18353
'function arguments() {\'use strict\'; }': {
18354
index: 9,
18355
lineNumber: 1,
18356
column: 10,
18357
message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
18358
},
18359
18360
'function hello() {\'use strict\'; (function eval() { }()) }': {
18361
index: 42,
18362
lineNumber: 1,
18363
column: 43,
18364
message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
18365
},
18366
18367
'function hello() {\'use strict\'; (function arguments() { }()) }': {
18368
index: 42,
18369
lineNumber: 1,
18370
column: 43,
18371
message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
18372
},
18373
18374
'(function eval() {\'use strict\'; })()': {
18375
index: 10,
18376
lineNumber: 1,
18377
column: 11,
18378
message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
18379
},
18380
18381
'(function arguments() {\'use strict\'; })()': {
18382
index: 10,
18383
lineNumber: 1,
18384
column: 11,
18385
message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
18386
},
18387
18388
'function hello() {\'use strict\'; ({ s: function eval() { } }); }': {
18389
index: 47,
18390
lineNumber: 1,
18391
column: 48,
18392
message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
18393
},
18394
18395
'(function package() {\'use strict\'; })()': {
18396
index: 10,
18397
lineNumber: 1,
18398
column: 11,
18399
message: 'Error: Line 1: Use of future reserved word in strict mode'
18400
},
18401
18402
'function hello() {\'use strict\'; ({ i: 10, set s(eval) { } }); }': {
18403
index: 48,
18404
lineNumber: 1,
18405
column: 49,
18406
message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
18407
},
18408
18409
'function hello() {\'use strict\'; ({ set s(eval) { } }); }': {
18410
index: 41,
18411
lineNumber: 1,
18412
column: 42,
18413
message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
18414
},
18415
18416
'function hello() {\'use strict\'; ({ s: function s(eval) { } }); }': {
18417
index: 49,
18418
lineNumber: 1,
18419
column: 50,
18420
message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
18421
},
18422
18423
'function hello(eval) {\'use strict\';}': {
18424
index: 15,
18425
lineNumber: 1,
18426
column: 16,
18427
message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
18428
},
18429
18430
'function hello(arguments) {\'use strict\';}': {
18431
index: 15,
18432
lineNumber: 1,
18433
column: 16,
18434
message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
18435
},
18436
18437
'function hello() { \'use strict\'; function inner(eval) {} }': {
18438
index: 48,
18439
lineNumber: 1,
18440
column: 49,
18441
message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
18442
},
18443
18444
'function hello() { \'use strict\'; function inner(arguments) {} }': {
18445
index: 48,
18446
lineNumber: 1,
18447
column: 49,
18448
message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
18449
},
18450
18451
' "\\1"; \'use strict\';': {
18452
index: 1,
18453
lineNumber: 1,
18454
column: 2,
18455
message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
18456
},
18457
18458
'function hello() { \'use strict\'; "\\1"; }': {
18459
index: 33,
18460
lineNumber: 1,
18461
column: 34,
18462
message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
18463
},
18464
18465
'function hello() { \'use strict\'; 021; }': {
18466
index: 33,
18467
lineNumber: 1,
18468
column: 34,
18469
message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
18470
},
18471
18472
'function hello() { \'use strict\'; ({ "\\1": 42 }); }': {
18473
index: 36,
18474
lineNumber: 1,
18475
column: 37,
18476
message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
18477
},
18478
18479
'function hello() { \'use strict\'; ({ 021: 42 }); }': {
18480
index: 36,
18481
lineNumber: 1,
18482
column: 37,
18483
message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
18484
},
18485
18486
'function hello() { "octal directive\\1"; "use strict"; }': {
18487
index: 19,
18488
lineNumber: 1,
18489
column: 20,
18490
message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
18491
},
18492
18493
'function hello() { "octal directive\\1"; "octal directive\\2"; "use strict"; }': {
18494
index: 19,
18495
lineNumber: 1,
18496
column: 20,
18497
message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
18498
},
18499
18500
'function hello() { "use strict"; function inner() { "octal directive\\1"; } }': {
18501
index: 52,
18502
lineNumber: 1,
18503
column: 53,
18504
message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
18505
},
18506
18507
'function hello() { "use strict"; var implements; }': {
18508
index: 37,
18509
lineNumber: 1,
18510
column: 38,
18511
message: 'Error: Line 1: Use of future reserved word in strict mode'
18512
},
18513
18514
'function hello() { "use strict"; var interface; }': {
18515
index: 37,
18516
lineNumber: 1,
18517
column: 38,
18518
message: 'Error: Line 1: Use of future reserved word in strict mode'
18519
},
18520
18521
'function hello() { "use strict"; var package; }': {
18522
index: 37,
18523
lineNumber: 1,
18524
column: 38,
18525
message: 'Error: Line 1: Use of future reserved word in strict mode'
18526
},
18527
18528
'function hello() { "use strict"; var private; }': {
18529
index: 37,
18530
lineNumber: 1,
18531
column: 38,
18532
message: 'Error: Line 1: Use of future reserved word in strict mode'
18533
},
18534
18535
'function hello() { "use strict"; var protected; }': {
18536
index: 37,
18537
lineNumber: 1,
18538
column: 38,
18539
message: 'Error: Line 1: Use of future reserved word in strict mode'
18540
},
18541
18542
'function hello() { "use strict"; var public; }': {
18543
index: 37,
18544
lineNumber: 1,
18545
column: 38,
18546
message: 'Error: Line 1: Use of future reserved word in strict mode'
18547
},
18548
18549
'function hello() { "use strict"; var static; }': {
18550
index: 37,
18551
lineNumber: 1,
18552
column: 38,
18553
message: 'Error: Line 1: Use of future reserved word in strict mode'
18554
},
18555
18556
'function hello() { "use strict"; var yield; }': {
18557
index: 37,
18558
lineNumber: 1,
18559
column: 38,
18560
message: 'Error: Line 1: Use of future reserved word in strict mode'
18561
},
18562
18563
'function hello() { "use strict"; var let; }': {
18564
index: 37,
18565
lineNumber: 1,
18566
column: 38,
18567
message: 'Error: Line 1: Use of future reserved word in strict mode'
18568
},
18569
18570
'function hello(static) { "use strict"; }': {
18571
index: 15,
18572
lineNumber: 1,
18573
column: 16,
18574
message: 'Error: Line 1: Use of future reserved word in strict mode'
18575
},
18576
18577
'function static() { "use strict"; }': {
18578
index: 9,
18579
lineNumber: 1,
18580
column: 10,
18581
message: 'Error: Line 1: Use of future reserved word in strict mode'
18582
},
18583
18584
'function eval(a) { "use strict"; }': {
18585
index: 9,
18586
lineNumber: 1,
18587
column: 10,
18588
message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
18589
},
18590
18591
'function arguments(a) { "use strict"; }': {
18592
index: 9,
18593
lineNumber: 1,
18594
column: 10,
18595
message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
18596
},
18597
18598
'var yield': {
18599
"type": "VariableDeclaration",
18600
"declarations": [
18601
{
18602
"type": "VariableDeclarator",
18603
"id": {
18604
"type": "Identifier",
18605
"name": "yield",
18606
"range": [
18607
4,
18608
9
18609
],
18610
"loc": {
18611
"start": {
18612
"line": 1,
18613
"column": 4
18614
},
18615
"end": {
18616
"line": 1,
18617
"column": 9
18618
}
18619
}
18620
},
18621
"init": null,
18622
"range": [
18623
4,
18624
9
18625
],
18626
"loc": {
18627
"start": {
18628
"line": 1,
18629
"column": 4
18630
},
18631
"end": {
18632
"line": 1,
18633
"column": 9
18634
}
18635
}
18636
}
18637
],
18638
"kind": "var",
18639
"range": [
18640
0,
18641
9
18642
],
18643
"loc": {
18644
"start": {
18645
"line": 1,
18646
"column": 0
18647
},
18648
"end": {
18649
"line": 1,
18650
"column": 9
18651
}
18652
}
18653
},
18654
18655
'var let': {
18656
index: 4,
18657
lineNumber: 1,
18658
column: 5,
18659
message: 'Error: Line 1: Unexpected token let'
18660
},
18661
18662
'"use strict"; function static() { }': {
18663
index: 23,
18664
lineNumber: 1,
18665
column: 24,
18666
message: 'Error: Line 1: Use of future reserved word in strict mode'
18667
},
18668
18669
'function a(t, t) { "use strict"; }': {
18670
index: 14,
18671
lineNumber: 1,
18672
column: 15,
18673
message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
18674
},
18675
18676
'function a(eval) { "use strict"; }': {
18677
index: 11,
18678
lineNumber: 1,
18679
column: 12,
18680
message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
18681
},
18682
18683
'function a(package) { "use strict"; }': {
18684
index: 11,
18685
lineNumber: 1,
18686
column: 12,
18687
message: 'Error: Line 1: Use of future reserved word in strict mode'
18688
},
18689
18690
'function a() { "use strict"; function b(t, t) { }; }': {
18691
index: 43,
18692
lineNumber: 1,
18693
column: 44,
18694
message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
18695
},
18696
18697
'(function a(t, t) { "use strict"; })': {
18698
index: 15,
18699
lineNumber: 1,
18700
column: 16,
18701
message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
18702
},
18703
18704
'function a() { "use strict"; (function b(t, t) { }); }': {
18705
index: 44,
18706
lineNumber: 1,
18707
column: 45,
18708
message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
18709
},
18710
18711
'(function a(eval) { "use strict"; })': {
18712
index: 12,
18713
lineNumber: 1,
18714
column: 13,
18715
message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
18716
},
18717
18718
'(function a(package) { "use strict"; })': {
18719
index: 12,
18720
lineNumber: 1,
18721
column: 13,
18722
message: 'Error: Line 1: Use of future reserved word in strict mode'
18723
},
18724
18725
'__proto__: __proto__: 42;': {
18726
index: 21,
18727
lineNumber: 1,
18728
column: 22,
18729
message: 'Error: Line 1: Label \'__proto__\' has already been declared'
18730
},
18731
18732
'"use strict"; function t(__proto__, __proto__) { }': {
18733
index: 36,
18734
lineNumber: 1,
18735
column: 37,
18736
message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
18737
},
18738
18739
'"use strict"; x = { __proto__: 42, __proto__: 43 }': {
18740
index: 48,
18741
lineNumber: 1,
18742
column: 49,
18743
message: 'Error: Line 1: Duplicate data property in object literal not allowed in strict mode'
18744
},
18745
18746
'"use strict"; x = { get __proto__() { }, __proto__: 43 }': {
18747
index: 54,
18748
lineNumber: 1,
18749
column: 55,
18750
message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
18751
},
18752
18753
'var': {
18754
index: 3,
18755
lineNumber: 1,
18756
column: 4,
18757
message: 'Error: Line 1: Unexpected end of input'
18758
},
18759
18760
'let': {
18761
index: 3,
18762
lineNumber: 1,
18763
column: 4,
18764
message: 'Error: Line 1: Unexpected end of input'
18765
},
18766
18767
'const': {
18768
index: 5,
18769
lineNumber: 1,
18770
column: 6,
18771
message: 'Error: Line 1: Unexpected end of input'
18772
},
18773
18774
'{ ; ; ': {
18775
index: 8,
18776
lineNumber: 1,
18777
column: 9,
18778
message: 'Error: Line 1: Unexpected end of input'
18779
},
18780
18781
'function t() { ; ; ': {
18782
index: 21,
18783
lineNumber: 1,
18784
column: 22,
18785
message: 'Error: Line 1: Unexpected end of input'
18786
}
18787
18788
},
18789
18790
'Tokenize': {
18791
'tokenize(/42/)': [
18792
{
18793
"type": "Identifier",
18794
"value": "tokenize",
18795
"range": [
18796
0,
18797
8
18798
],
18799
"loc": {
18800
"start": {
18801
"line": 1,
18802
"column": 0
18803
},
18804
"end": {
18805
"line": 1,
18806
"column": 8
18807
}
18808
}
18809
},
18810
{
18811
"type": "Punctuator",
18812
"value": "(",
18813
"range": [
18814
8,
18815
9
18816
],
18817
"loc": {
18818
"start": {
18819
"line": 1,
18820
"column": 8
18821
},
18822
"end": {
18823
"line": 1,
18824
"column": 9
18825
}
18826
}
18827
},
18828
{
18829
"type": "RegularExpression",
18830
"value": "/42/",
18831
"regex": {
18832
"pattern": "42",
18833
"flags": ""
18834
},
18835
"range": [
18836
9,
18837
13
18838
],
18839
"loc": {
18840
"start": {
18841
"line": 1,
18842
"column": 9
18843
},
18844
"end": {
18845
"line": 1,
18846
"column": 13
18847
}
18848
}
18849
},
18850
{
18851
"type": "Punctuator",
18852
"value": ")",
18853
"range": [
18854
13,
18855
14
18856
],
18857
"loc": {
18858
"start": {
18859
"line": 1,
18860
"column": 13
18861
},
18862
"end": {
18863
"line": 1,
18864
"column": 14
18865
}
18866
}
18867
}
18868
],
18869
18870
'if (false) { /42/ }': [
18871
{
18872
"type": "Keyword",
18873
"value": "if",
18874
"range": [
18875
0,
18876
2
18877
],
18878
"loc": {
18879
"start": {
18880
"line": 1,
18881
"column": 0
18882
},
18883
"end": {
18884
"line": 1,
18885
"column": 2
18886
}
18887
}
18888
},
18889
{
18890
"type": "Punctuator",
18891
"value": "(",
18892
"range": [
18893
3,
18894
4
18895
],
18896
"loc": {
18897
"start": {
18898
"line": 1,
18899
"column": 3
18900
},
18901
"end": {
18902
"line": 1,
18903
"column": 4
18904
}
18905
}
18906
},
18907
{
18908
"type": "Boolean",
18909
"value": "false",
18910
"range": [
18911
4,
18912
9
18913
],
18914
"loc": {
18915
"start": {
18916
"line": 1,
18917
"column": 4
18918
},
18919
"end": {
18920
"line": 1,
18921
"column": 9
18922
}
18923
}
18924
},
18925
{
18926
"type": "Punctuator",
18927
"value": ")",
18928
"range": [
18929
9,
18930
10
18931
],
18932
"loc": {
18933
"start": {
18934
"line": 1,
18935
"column": 9
18936
},
18937
"end": {
18938
"line": 1,
18939
"column": 10
18940
}
18941
}
18942
},
18943
{
18944
"type": "Punctuator",
18945
"value": "{",
18946
"range": [
18947
11,
18948
12
18949
],
18950
"loc": {
18951
"start": {
18952
"line": 1,
18953
"column": 11
18954
},
18955
"end": {
18956
"line": 1,
18957
"column": 12
18958
}
18959
}
18960
},
18961
{
18962
"type": "RegularExpression",
18963
"value": "/42/",
18964
"regex": {
18965
"pattern": "42",
18966
"flags": ""
18967
},
18968
"range": [
18969
13,
18970
17
18971
],
18972
"loc": {
18973
"start": {
18974
"line": 1,
18975
"column": 13
18976
},
18977
"end": {
18978
"line": 1,
18979
"column": 17
18980
}
18981
}
18982
},
18983
{
18984
"type": "Punctuator",
18985
"value": "}",
18986
"range": [
18987
18,
18988
19
18989
],
18990
"loc": {
18991
"start": {
18992
"line": 1,
18993
"column": 18
18994
},
18995
"end": {
18996
"line": 1,
18997
"column": 19
18998
}
18999
}
19000
}
19001
],
19002
19003
'with (false) /42/': [
19004
{
19005
"type": "Keyword",
19006
"value": "with",
19007
"range": [
19008
0,
19009
4
19010
],
19011
"loc": {
19012
"start": {
19013
"line": 1,
19014
"column": 0
19015
},
19016
"end": {
19017
"line": 1,
19018
"column": 4
19019
}
19020
}
19021
},
19022
{
19023
"type": "Punctuator",
19024
"value": "(",
19025
"range": [
19026
5,
19027
6
19028
],
19029
"loc": {
19030
"start": {
19031
"line": 1,
19032
"column": 5
19033
},
19034
"end": {
19035
"line": 1,
19036
"column": 6
19037
}
19038
}
19039
},
19040
{
19041
"type": "Boolean",
19042
"value": "false",
19043
"range": [
19044
6,
19045
11
19046
],
19047
"loc": {
19048
"start": {
19049
"line": 1,
19050
"column": 6
19051
},
19052
"end": {
19053
"line": 1,
19054
"column": 11
19055
}
19056
}
19057
},
19058
{
19059
"type": "Punctuator",
19060
"value": ")",
19061
"range": [
19062
11,
19063
12
19064
],
19065
"loc": {
19066
"start": {
19067
"line": 1,
19068
"column": 11
19069
},
19070
"end": {
19071
"line": 1,
19072
"column": 12
19073
}
19074
}
19075
},
19076
{
19077
"type": "RegularExpression",
19078
"value": "/42/",
19079
"regex": {
19080
"pattern": "42",
19081
"flags": ""
19082
},
19083
"range": [
19084
13,
19085
17
19086
],
19087
"loc": {
19088
"start": {
19089
"line": 1,
19090
"column": 13
19091
},
19092
"end": {
19093
"line": 1,
19094
"column": 17
19095
}
19096
}
19097
}
19098
],
19099
19100
'(false) /42/': [
19101
{
19102
"type": "Punctuator",
19103
"value": "(",
19104
"range": [
19105
0,
19106
1
19107
],
19108
"loc": {
19109
"start": {
19110
"line": 1,
19111
"column": 0
19112
},
19113
"end": {
19114
"line": 1,
19115
"column": 1
19116
}
19117
}
19118
},
19119
{
19120
"type": "Boolean",
19121
"value": "false",
19122
"range": [
19123
1,
19124
6
19125
],
19126
"loc": {
19127
"start": {
19128
"line": 1,
19129
"column": 1
19130
},
19131
"end": {
19132
"line": 1,
19133
"column": 6
19134
}
19135
}
19136
},
19137
{
19138
"type": "Punctuator",
19139
"value": ")",
19140
"range": [
19141
6,
19142
7
19143
],
19144
"loc": {
19145
"start": {
19146
"line": 1,
19147
"column": 6
19148
},
19149
"end": {
19150
"line": 1,
19151
"column": 7
19152
}
19153
}
19154
},
19155
{
19156
"type": "Punctuator",
19157
"value": "/",
19158
"range": [
19159
8,
19160
9
19161
],
19162
"loc": {
19163
"start": {
19164
"line": 1,
19165
"column": 8
19166
},
19167
"end": {
19168
"line": 1,
19169
"column": 9
19170
}
19171
}
19172
},
19173
{
19174
"type": "Numeric",
19175
"value": "42",
19176
"range": [
19177
9,
19178
11
19179
],
19180
"loc": {
19181
"start": {
19182
"line": 1,
19183
"column": 9
19184
},
19185
"end": {
19186
"line": 1,
19187
"column": 11
19188
}
19189
}
19190
},
19191
{
19192
"type": "Punctuator",
19193
"value": "/",
19194
"range": [
19195
11,
19196
12
19197
],
19198
"loc": {
19199
"start": {
19200
"line": 1,
19201
"column": 11
19202
},
19203
"end": {
19204
"line": 1,
19205
"column": 12
19206
}
19207
}
19208
}
19209
],
19210
19211
'function f(){} /42/': [
19212
{
19213
"type": "Keyword",
19214
"value": "function",
19215
"range": [
19216
0,
19217
8
19218
],
19219
"loc": {
19220
"start": {
19221
"line": 1,
19222
"column": 0
19223
},
19224
"end": {
19225
"line": 1,
19226
"column": 8
19227
}
19228
}
19229
},
19230
{
19231
"type": "Identifier",
19232
"value": "f",
19233
"range": [
19234
9,
19235
10
19236
],
19237
"loc": {
19238
"start": {
19239
"line": 1,
19240
"column": 9
19241
},
19242
"end": {
19243
"line": 1,
19244
"column": 10
19245
}
19246
}
19247
},
19248
{
19249
"type": "Punctuator",
19250
"value": "(",
19251
"range": [
19252
10,
19253
11
19254
],
19255
"loc": {
19256
"start": {
19257
"line": 1,
19258
"column": 10
19259
},
19260
"end": {
19261
"line": 1,
19262
"column": 11
19263
}
19264
}
19265
},
19266
{
19267
"type": "Punctuator",
19268
"value": ")",
19269
"range": [
19270
11,
19271
12
19272
],
19273
"loc": {
19274
"start": {
19275
"line": 1,
19276
"column": 11
19277
},
19278
"end": {
19279
"line": 1,
19280
"column": 12
19281
}
19282
}
19283
},
19284
{
19285
"type": "Punctuator",
19286
"value": "{",
19287
"range": [
19288
12,
19289
13
19290
],
19291
"loc": {
19292
"start": {
19293
"line": 1,
19294
"column": 12
19295
},
19296
"end": {
19297
"line": 1,
19298
"column": 13
19299
}
19300
}
19301
},
19302
{
19303
"type": "Punctuator",
19304
"value": "}",
19305
"range": [
19306
13,
19307
14
19308
],
19309
"loc": {
19310
"start": {
19311
"line": 1,
19312
"column": 13
19313
},
19314
"end": {
19315
"line": 1,
19316
"column": 14
19317
}
19318
}
19319
},
19320
{
19321
"type": "RegularExpression",
19322
"value": "/42/",
19323
"regex": {
19324
"pattern": "42",
19325
"flags": ""
19326
},
19327
"range": [
19328
15,
19329
19
19330
],
19331
"loc": {
19332
"start": {
19333
"line": 1,
19334
"column": 15
19335
},
19336
"end": {
19337
"line": 1,
19338
"column": 19
19339
}
19340
}
19341
}
19342
],
19343
19344
'function(){} /42': [
19345
{
19346
"type": "Keyword",
19347
"value": "function",
19348
"range": [
19349
0,
19350
8
19351
],
19352
"loc": {
19353
"start": {
19354
"line": 1,
19355
"column": 0
19356
},
19357
"end": {
19358
"line": 1,
19359
"column": 8
19360
}
19361
}
19362
},
19363
{
19364
"type": "Punctuator",
19365
"value": "(",
19366
"range": [
19367
8,
19368
9
19369
],
19370
"loc": {
19371
"start": {
19372
"line": 1,
19373
"column": 8
19374
},
19375
"end": {
19376
"line": 1,
19377
"column": 9
19378
}
19379
}
19380
},
19381
{
19382
"type": "Punctuator",
19383
"value": ")",
19384
"range": [
19385
9,
19386
10
19387
],
19388
"loc": {
19389
"start": {
19390
"line": 1,
19391
"column": 9
19392
},
19393
"end": {
19394
"line": 1,
19395
"column": 10
19396
}
19397
}
19398
},
19399
{
19400
"type": "Punctuator",
19401
"value": "{",
19402
"range": [
19403
10,
19404
11
19405
],
19406
"loc": {
19407
"start": {
19408
"line": 1,
19409
"column": 10
19410
},
19411
"end": {
19412
"line": 1,
19413
"column": 11
19414
}
19415
}
19416
},
19417
{
19418
"type": "Punctuator",
19419
"value": "}",
19420
"range": [
19421
11,
19422
12
19423
],
19424
"loc": {
19425
"start": {
19426
"line": 1,
19427
"column": 11
19428
},
19429
"end": {
19430
"line": 1,
19431
"column": 12
19432
}
19433
}
19434
},
19435
{
19436
"type": "Punctuator",
19437
"value": "/",
19438
"range": [
19439
13,
19440
14
19441
],
19442
"loc": {
19443
"start": {
19444
"line": 1,
19445
"column": 13
19446
},
19447
"end": {
19448
"line": 1,
19449
"column": 14
19450
}
19451
}
19452
},
19453
{
19454
"type": "Numeric",
19455
"value": "42",
19456
"range": [
19457
14,
19458
16
19459
],
19460
"loc": {
19461
"start": {
19462
"line": 1,
19463
"column": 14
19464
},
19465
"end": {
19466
"line": 1,
19467
"column": 16
19468
}
19469
}
19470
}
19471
],
19472
19473
'{} /42': [
19474
{
19475
"type": "Punctuator",
19476
"value": "{",
19477
"range": [
19478
0,
19479
1
19480
],
19481
"loc": {
19482
"start": {
19483
"line": 1,
19484
"column": 0
19485
},
19486
"end": {
19487
"line": 1,
19488
"column": 1
19489
}
19490
}
19491
},
19492
{
19493
"type": "Punctuator",
19494
"value": "}",
19495
"range": [
19496
1,
19497
2
19498
],
19499
"loc": {
19500
"start": {
19501
"line": 1,
19502
"column": 1
19503
},
19504
"end": {
19505
"line": 1,
19506
"column": 2
19507
}
19508
}
19509
},
19510
{
19511
"type": "Punctuator",
19512
"value": "/",
19513
"range": [
19514
3,
19515
4
19516
],
19517
"loc": {
19518
"start": {
19519
"line": 1,
19520
"column": 3
19521
},
19522
"end": {
19523
"line": 1,
19524
"column": 4
19525
}
19526
}
19527
},
19528
{
19529
"type": "Numeric",
19530
"value": "42",
19531
"range": [
19532
4,
19533
6
19534
],
19535
"loc": {
19536
"start": {
19537
"line": 1,
19538
"column": 4
19539
},
19540
"end": {
19541
"line": 1,
19542
"column": 6
19543
}
19544
}
19545
}
19546
],
19547
19548
'[function(){} /42]': [
19549
{
19550
"type": "Punctuator",
19551
"value": "[",
19552
"range": [
19553
0,
19554
1
19555
],
19556
"loc": {
19557
"start": {
19558
"line": 1,
19559
"column": 0
19560
},
19561
"end": {
19562
"line": 1,
19563
"column": 1
19564
}
19565
}
19566
},
19567
{
19568
"type": "Keyword",
19569
"value": "function",
19570
"range": [
19571
1,
19572
9
19573
],
19574
"loc": {
19575
"start": {
19576
"line": 1,
19577
"column": 1
19578
},
19579
"end": {
19580
"line": 1,
19581
"column": 9
19582
}
19583
}
19584
},
19585
{
19586
"type": "Punctuator",
19587
"value": "(",
19588
"range": [
19589
9,
19590
10
19591
],
19592
"loc": {
19593
"start": {
19594
"line": 1,
19595
"column": 9
19596
},
19597
"end": {
19598
"line": 1,
19599
"column": 10
19600
}
19601
}
19602
},
19603
{
19604
"type": "Punctuator",
19605
"value": ")",
19606
"range": [
19607
10,
19608
11
19609
],
19610
"loc": {
19611
"start": {
19612
"line": 1,
19613
"column": 10
19614
},
19615
"end": {
19616
"line": 1,
19617
"column": 11
19618
}
19619
}
19620
},
19621
{
19622
"type": "Punctuator",
19623
"value": "{",
19624
"range": [
19625
11,
19626
12
19627
],
19628
"loc": {
19629
"start": {
19630
"line": 1,
19631
"column": 11
19632
},
19633
"end": {
19634
"line": 1,
19635
"column": 12
19636
}
19637
}
19638
},
19639
{
19640
"type": "Punctuator",
19641
"value": "}",
19642
"range": [
19643
12,
19644
13
19645
],
19646
"loc": {
19647
"start": {
19648
"line": 1,
19649
"column": 12
19650
},
19651
"end": {
19652
"line": 1,
19653
"column": 13
19654
}
19655
}
19656
},
19657
{
19658
"type": "Punctuator",
19659
"value": "/",
19660
"range": [
19661
14,
19662
15
19663
],
19664
"loc": {
19665
"start": {
19666
"line": 1,
19667
"column": 14
19668
},
19669
"end": {
19670
"line": 1,
19671
"column": 15
19672
}
19673
}
19674
},
19675
{
19676
"type": "Numeric",
19677
"value": "42",
19678
"range": [
19679
15,
19680
17
19681
],
19682
"loc": {
19683
"start": {
19684
"line": 1,
19685
"column": 15
19686
},
19687
"end": {
19688
"line": 1,
19689
"column": 17
19690
}
19691
}
19692
},
19693
{
19694
"type": "Punctuator",
19695
"value": "]",
19696
"range": [
19697
17,
19698
18
19699
],
19700
"loc": {
19701
"start": {
19702
"line": 1,
19703
"column": 17
19704
},
19705
"end": {
19706
"line": 1,
19707
"column": 18
19708
}
19709
}
19710
}
19711
],
19712
19713
';function f(){} /42/': [
19714
{
19715
"type": "Punctuator",
19716
"value": ";",
19717
"range": [
19718
0,
19719
1
19720
],
19721
"loc": {
19722
"start": {
19723
"line": 1,
19724
"column": 0
19725
},
19726
"end": {
19727
"line": 1,
19728
"column": 1
19729
}
19730
}
19731
},
19732
{
19733
"type": "Keyword",
19734
"value": "function",
19735
"range": [
19736
1,
19737
9
19738
],
19739
"loc": {
19740
"start": {
19741
"line": 1,
19742
"column": 1
19743
},
19744
"end": {
19745
"line": 1,
19746
"column": 9
19747
}
19748
}
19749
},
19750
{
19751
"type": "Identifier",
19752
"value": "f",
19753
"range": [
19754
10,
19755
11
19756
],
19757
"loc": {
19758
"start": {
19759
"line": 1,
19760
"column": 10
19761
},
19762
"end": {
19763
"line": 1,
19764
"column": 11
19765
}
19766
}
19767
},
19768
{
19769
"type": "Punctuator",
19770
"value": "(",
19771
"range": [
19772
11,
19773
12
19774
],
19775
"loc": {
19776
"start": {
19777
"line": 1,
19778
"column": 11
19779
},
19780
"end": {
19781
"line": 1,
19782
"column": 12
19783
}
19784
}
19785
},
19786
{
19787
"type": "Punctuator",
19788
"value": ")",
19789
"range": [
19790
12,
19791
13
19792
],
19793
"loc": {
19794
"start": {
19795
"line": 1,
19796
"column": 12
19797
},
19798
"end": {
19799
"line": 1,
19800
"column": 13
19801
}
19802
}
19803
},
19804
{
19805
"type": "Punctuator",
19806
"value": "{",
19807
"range": [
19808
13,
19809
14
19810
],
19811
"loc": {
19812
"start": {
19813
"line": 1,
19814
"column": 13
19815
},
19816
"end": {
19817
"line": 1,
19818
"column": 14
19819
}
19820
}
19821
},
19822
{
19823
"type": "Punctuator",
19824
"value": "}",
19825
"range": [
19826
14,
19827
15
19828
],
19829
"loc": {
19830
"start": {
19831
"line": 1,
19832
"column": 14
19833
},
19834
"end": {
19835
"line": 1,
19836
"column": 15
19837
}
19838
}
19839
},
19840
{
19841
"type": "RegularExpression",
19842
"value": "/42/",
19843
"regex": {
19844
"pattern": "42",
19845
"flags": ""
19846
},
19847
"range": [
19848
16,
19849
20
19850
],
19851
"loc": {
19852
"start": {
19853
"line": 1,
19854
"column": 16
19855
},
19856
"end": {
19857
"line": 1,
19858
"column": 20
19859
}
19860
}
19861
}
19862
],
19863
19864
'void /42/': [
19865
{
19866
"type": "Keyword",
19867
"value": "void",
19868
"range": [
19869
0,
19870
4
19871
],
19872
"loc": {
19873
"start": {
19874
"line": 1,
19875
"column": 0
19876
},
19877
"end": {
19878
"line": 1,
19879
"column": 4
19880
}
19881
}
19882
},
19883
{
19884
"type": "RegularExpression",
19885
"value": "/42/",
19886
"regex": {
19887
"pattern": "42",
19888
"flags": ""
19889
},
19890
"range": [
19891
5,
19892
9
19893
],
19894
"loc": {
19895
"start": {
19896
"line": 1,
19897
"column": 5
19898
},
19899
"end": {
19900
"line": 1,
19901
"column": 9
19902
}
19903
}
19904
}
19905
],
19906
19907
'/42/': [
19908
{
19909
"type": "RegularExpression",
19910
"value": "/42/",
19911
"regex": {
19912
"pattern": "42",
19913
"flags": ""
19914
},
19915
"range": [
19916
0,
19917
4
19918
],
19919
"loc": {
19920
"start": {
19921
"line": 1,
19922
"column": 0
19923
},
19924
"end": {
19925
"line": 1,
19926
"column": 4
19927
}
19928
}
19929
}
19930
],
19931
19932
'foo[/42]': [
19933
{
19934
"type": "Identifier",
19935
"value": "foo",
19936
"range": [
19937
0,
19938
3
19939
],
19940
"loc": {
19941
"start": {
19942
"line": 1,
19943
"column": 0
19944
},
19945
"end": {
19946
"line": 1,
19947
"column": 3
19948
}
19949
}
19950
},
19951
{
19952
"type": "Punctuator",
19953
"value": "[",
19954
"range": [
19955
3,
19956
4
19957
],
19958
"loc": {
19959
"start": {
19960
"line": 1,
19961
"column": 3
19962
},
19963
"end": {
19964
"line": 1,
19965
"column": 4
19966
}
19967
}
19968
}
19969
],
19970
19971
'': [],
19972
19973
'/42': {
19974
tokenize: true,
19975
index: 3,
19976
lineNumber: 1,
19977
column: 4,
19978
message: 'Error: Line 1: Invalid regular expression: missing /'
19979
},
19980
19981
'foo[/42': {
19982
tokenize: true,
19983
index: 7,
19984
lineNumber: 1,
19985
column: 8,
19986
message: 'Error: Line 1: Invalid regular expression: missing /'
19987
}
19988
19989
},
19990
19991
'API': {
19992
'parse()': {
19993
call: 'parse',
19994
args: [],
19995
result: {
19996
type: 'Program',
19997
body: [{
19998
type: 'ExpressionStatement',
19999
expression: {
20000
type: 'Identifier',
20001
name: 'undefined'
20002
}
20003
}]
20004
}
20005
},
20006
20007
'parse(null)': {
20008
call: 'parse',
20009
args: [null],
20010
result: {
20011
type: 'Program',
20012
body: [{
20013
type: 'ExpressionStatement',
20014
expression: {
20015
type: 'Literal',
20016
value: null,
20017
raw: 'null'
20018
}
20019
}]
20020
}
20021
},
20022
20023
'parse(42)': {
20024
call: 'parse',
20025
args: [42],
20026
result: {
20027
type: 'Program',
20028
body: [{
20029
type: 'ExpressionStatement',
20030
expression: {
20031
type: 'Literal',
20032
value: 42,
20033
raw: '42'
20034
}
20035
}]
20036
}
20037
},
20038
20039
'parse(true)': {
20040
call: 'parse',
20041
args: [true],
20042
result: {
20043
type: 'Program',
20044
body: [{
20045
type: 'ExpressionStatement',
20046
expression: {
20047
type: 'Literal',
20048
value: true,
20049
raw: 'true'
20050
}
20051
}]
20052
}
20053
},
20054
20055
'parse(undefined)': {
20056
call: 'parse',
20057
args: [void 0],
20058
result: {
20059
type: 'Program',
20060
body: [{
20061
type: 'ExpressionStatement',
20062
expression: {
20063
type: 'Identifier',
20064
name: 'undefined'
20065
}
20066
}]
20067
}
20068
},
20069
20070
'parse(new String("test"))': {
20071
call: 'parse',
20072
args: [new String('test')],
20073
result: {
20074
type: 'Program',
20075
body: [{
20076
type: 'ExpressionStatement',
20077
expression: {
20078
type: 'Identifier',
20079
name: 'test'
20080
}
20081
}]
20082
}
20083
},
20084
20085
'parse(new Number(42))': {
20086
call: 'parse',
20087
args: [new Number(42)],
20088
result: {
20089
type: 'Program',
20090
body: [{
20091
type: 'ExpressionStatement',
20092
expression: {
20093
type: 'Literal',
20094
value: 42,
20095
raw: '42'
20096
}
20097
}]
20098
}
20099
},
20100
20101
'parse(new Boolean(true))': {
20102
call: 'parse',
20103
args: [new Boolean(true)],
20104
result: {
20105
type: 'Program',
20106
body: [{
20107
type: 'ExpressionStatement',
20108
expression: {
20109
type: 'Literal',
20110
value: true,
20111
raw: 'true'
20112
}
20113
}]
20114
}
20115
},
20116
20117
'Syntax': {
20118
property: 'Syntax',
20119
result: {
20120
AnyTypeAnnotation: 'AnyTypeAnnotation',
20121
ArrayExpression: 'ArrayExpression',
20122
ArrayPattern: 'ArrayPattern',
20123
ArrayTypeAnnotation: 'ArrayTypeAnnotation',
20124
ArrowFunctionExpression: 'ArrowFunctionExpression',
20125
AssignmentExpression: 'AssignmentExpression',
20126
BinaryExpression: 'BinaryExpression',
20127
BlockStatement: 'BlockStatement',
20128
BooleanTypeAnnotation: 'BooleanTypeAnnotation',
20129
BreakStatement: 'BreakStatement',
20130
CallExpression: 'CallExpression',
20131
CatchClause: 'CatchClause',
20132
ClassBody: 'ClassBody',
20133
ClassDeclaration: 'ClassDeclaration',
20134
ClassExpression: 'ClassExpression',
20135
ClassImplements: 'ClassImplements',
20136
ClassProperty: 'ClassProperty',
20137
ComprehensionBlock: 'ComprehensionBlock',
20138
ComprehensionExpression: 'ComprehensionExpression',
20139
ConditionalExpression: 'ConditionalExpression',
20140
ContinueStatement: 'ContinueStatement',
20141
DebuggerStatement: 'DebuggerStatement',
20142
DeclareClass: 'DeclareClass',
20143
DeclareFunction: 'DeclareFunction',
20144
DeclareModule: 'DeclareModule',
20145
DeclareVariable: 'DeclareVariable',
20146
DoWhileStatement: 'DoWhileStatement',
20147
EmptyStatement: 'EmptyStatement',
20148
ExportDeclaration: 'ExportDeclaration',
20149
ExportBatchSpecifier: 'ExportBatchSpecifier',
20150
ExportSpecifier: 'ExportSpecifier',
20151
ExpressionStatement: 'ExpressionStatement',
20152
ForInStatement: 'ForInStatement',
20153
ForOfStatement: 'ForOfStatement',
20154
ForStatement: 'ForStatement',
20155
FunctionDeclaration: 'FunctionDeclaration',
20156
FunctionExpression: 'FunctionExpression',
20157
FunctionTypeAnnotation: 'FunctionTypeAnnotation',
20158
FunctionTypeParam: 'FunctionTypeParam',
20159
GenericTypeAnnotation: 'GenericTypeAnnotation',
20160
Identifier: 'Identifier',
20161
IfStatement: 'IfStatement',
20162
ImportDeclaration: 'ImportDeclaration',
20163
ImportDefaultSpecifier: "ImportDefaultSpecifier",
20164
ImportNamespaceSpecifier: "ImportNamespaceSpecifier",
20165
ImportSpecifier: 'ImportSpecifier',
20166
InterfaceDeclaration: 'InterfaceDeclaration',
20167
InterfaceExtends: 'InterfaceExtends',
20168
IntersectionTypeAnnotation: 'IntersectionTypeAnnotation',
20169
LabeledStatement: 'LabeledStatement',
20170
Literal: 'Literal',
20171
LogicalExpression: 'LogicalExpression',
20172
MemberExpression: 'MemberExpression',
20173
MethodDefinition: 'MethodDefinition',
20174
ModuleSpecifier: 'ModuleSpecifier',
20175
NewExpression: 'NewExpression',
20176
NullableTypeAnnotation: 'NullableTypeAnnotation',
20177
NumberTypeAnnotation: 'NumberTypeAnnotation',
20178
ObjectExpression: 'ObjectExpression',
20179
ObjectPattern: 'ObjectPattern',
20180
ObjectTypeAnnotation: 'ObjectTypeAnnotation',
20181
ObjectTypeCallProperty: 'ObjectTypeCallProperty',
20182
ObjectTypeIndexer: 'ObjectTypeIndexer',
20183
ObjectTypeProperty: 'ObjectTypeProperty',
20184
Program: 'Program',
20185
Property: 'Property',
20186
QualifiedTypeIdentifier: 'QualifiedTypeIdentifier',
20187
ReturnStatement: 'ReturnStatement',
20188
SequenceExpression: 'SequenceExpression',
20189
SpreadElement: 'SpreadElement',
20190
SpreadProperty: 'SpreadProperty',
20191
StringLiteralTypeAnnotation: 'StringLiteralTypeAnnotation',
20192
StringTypeAnnotation: 'StringTypeAnnotation',
20193
SwitchCase: 'SwitchCase',
20194
SwitchStatement: 'SwitchStatement',
20195
TaggedTemplateExpression: 'TaggedTemplateExpression',
20196
TemplateElement: 'TemplateElement',
20197
TemplateLiteral: 'TemplateLiteral',
20198
ThisExpression: 'ThisExpression',
20199
ThrowStatement: 'ThrowStatement',
20200
TupleTypeAnnotation: 'TupleTypeAnnotation',
20201
TryStatement: 'TryStatement',
20202
TypeAlias: 'TypeAlias',
20203
TypeAnnotation: 'TypeAnnotation',
20204
TypeofTypeAnnotation: 'TypeofTypeAnnotation',
20205
TypeParameterDeclaration: 'TypeParameterDeclaration',
20206
TypeParameterInstantiation: 'TypeParameterInstantiation',
20207
UnaryExpression: 'UnaryExpression',
20208
UnionTypeAnnotation: 'UnionTypeAnnotation',
20209
UpdateExpression: 'UpdateExpression',
20210
VariableDeclaration: 'VariableDeclaration',
20211
VariableDeclarator: 'VariableDeclarator',
20212
VoidTypeAnnotation: 'VoidTypeAnnotation',
20213
WhileStatement: 'WhileStatement',
20214
WithStatement: 'WithStatement',
20215
XJSIdentifier: 'XJSIdentifier',
20216
XJSNamespacedName: 'XJSNamespacedName',
20217
XJSMemberExpression: "XJSMemberExpression",
20218
XJSEmptyExpression: "XJSEmptyExpression",
20219
XJSExpressionContainer: "XJSExpressionContainer",
20220
XJSElement: 'XJSElement',
20221
XJSClosingElement: 'XJSClosingElement',
20222
XJSOpeningElement: 'XJSOpeningElement',
20223
XJSAttribute: "XJSAttribute",
20224
XJSSpreadAttribute: 'XJSSpreadAttribute',
20225
XJSText: 'XJSText',
20226
YieldExpression: 'YieldExpression',
20227
AwaitExpression: 'AwaitExpression'
20228
}
20229
},
20230
20231
'tokenize()': {
20232
call: 'tokenize',
20233
args: [],
20234
result: [{
20235
type: 'Identifier',
20236
value: 'undefined'
20237
}]
20238
},
20239
20240
'tokenize(null)': {
20241
call: 'tokenize',
20242
args: [null],
20243
result: [{
20244
type: 'Null',
20245
value: 'null'
20246
}]
20247
},
20248
20249
'tokenize(42)': {
20250
call: 'tokenize',
20251
args: [42],
20252
result: [{
20253
type: 'Numeric',
20254
value: '42'
20255
}]
20256
},
20257
20258
'tokenize(true)': {
20259
call: 'tokenize',
20260
args: [true],
20261
result: [{
20262
type: 'Boolean',
20263
value: 'true'
20264
}]
20265
},
20266
20267
'tokenize(undefined)': {
20268
call: 'tokenize',
20269
args: [void 0],
20270
result: [{
20271
type: 'Identifier',
20272
value: 'undefined'
20273
}]
20274
},
20275
20276
'tokenize(new String("test"))': {
20277
call: 'tokenize',
20278
args: [new String('test')],
20279
result: [{
20280
type: 'Identifier',
20281
value: 'test'
20282
}]
20283
},
20284
20285
'tokenize(new Number(42))': {
20286
call: 'tokenize',
20287
args: [new Number(42)],
20288
result: [{
20289
type: 'Numeric',
20290
value: '42'
20291
}]
20292
},
20293
20294
'tokenize(new Boolean(true))': {
20295
call: 'tokenize',
20296
args: [new Boolean(true)],
20297
result: [{
20298
type: 'Boolean',
20299
value: 'true'
20300
}]
20301
},
20302
20303
},
20304
20305
'Tolerant parse': {
20306
'return': {
20307
type: 'Program',
20308
body: [{
20309
type: 'ReturnStatement',
20310
'argument': null,
20311
range: [0, 6],
20312
loc: {
20313
start: { line: 1, column: 0 },
20314
end: { line: 1, column: 6 }
20315
}
20316
}],
20317
range: [0, 6],
20318
loc: {
20319
start: { line: 1, column: 0 },
20320
end: { line: 1, column: 6 }
20321
},
20322
errors: [{
20323
index: 6,
20324
lineNumber: 1,
20325
column: 7,
20326
message: 'Error: Line 1: Illegal return statement'
20327
}]
20328
},
20329
20330
'(function () { \'use strict\'; with (i); }())': {
20331
type: 'Program',
20332
body: [{
20333
type: 'ExpressionStatement',
20334
expression: {
20335
type: 'CallExpression',
20336
callee: {
20337
type: 'FunctionExpression',
20338
id: null,
20339
params: [],
20340
defaults: [],
20341
body: {
20342
type: 'BlockStatement',
20343
body: [{
20344
type: 'ExpressionStatement',
20345
expression: {
20346
type: 'Literal',
20347
value: 'use strict',
20348
raw: '\'use strict\'',
20349
range: [15, 27],
20350
loc: {
20351
start: { line: 1, column: 15 },
20352
end: { line: 1, column: 27 }
20353
}
20354
},
20355
range: [15, 28],
20356
loc: {
20357
start: { line: 1, column: 15 },
20358
end: { line: 1, column: 28 }
20359
}
20360
}, {
20361
type: 'WithStatement',
20362
object: {
20363
type: 'Identifier',
20364
name: 'i',
20365
range: [35, 36],
20366
loc: {
20367
start: { line: 1, column: 35 },
20368
end: { line: 1, column: 36 }
20369
}
20370
},
20371
body: {
20372
type: 'EmptyStatement',
20373
range: [37, 38],
20374
loc: {
20375
start: { line: 1, column: 37 },
20376
end: { line: 1, column: 38 }
20377
}
20378
},
20379
range: [29, 38],
20380
loc: {
20381
start: { line: 1, column: 29 },
20382
end: { line: 1, column: 38 }
20383
}
20384
}],
20385
range: [13, 40],
20386
loc: {
20387
start: { line: 1, column: 13 },
20388
end: { line: 1, column: 40 }
20389
}
20390
},
20391
rest: null,
20392
generator: false,
20393
expression: false,
20394
range: [1, 40],
20395
loc: {
20396
start: { line: 1, column: 1 },
20397
end: { line: 1, column: 40 }
20398
}
20399
},
20400
'arguments': [],
20401
range: [1, 42],
20402
loc: {
20403
start: { line: 1, column: 1 },
20404
end: { line: 1, column: 42 }
20405
}
20406
},
20407
range: [0, 43],
20408
loc: {
20409
start: { line: 1, column: 0 },
20410
end: { line: 1, column: 43 }
20411
}
20412
}],
20413
range: [0, 43],
20414
loc: {
20415
start: { line: 1, column: 0 },
20416
end: { line: 1, column: 43 }
20417
},
20418
errors: [{
20419
index: 29,
20420
lineNumber: 1,
20421
column: 30,
20422
message: 'Error: Line 1: Strict mode code may not include a with statement'
20423
}]
20424
},
20425
20426
'(function () { \'use strict\'; 021 }())': {
20427
type: 'Program',
20428
body: [{
20429
type: 'ExpressionStatement',
20430
expression: {
20431
type: 'CallExpression',
20432
callee: {
20433
type: 'FunctionExpression',
20434
id: null,
20435
params: [],
20436
defaults: [],
20437
body: {
20438
type: 'BlockStatement',
20439
body: [{
20440
type: 'ExpressionStatement',
20441
expression: {
20442
type: 'Literal',
20443
value: 'use strict',
20444
raw: '\'use strict\'',
20445
range: [15, 27],
20446
loc: {
20447
start: { line: 1, column: 15 },
20448
end: { line: 1, column: 27 }
20449
}
20450
},
20451
range: [15, 28],
20452
loc: {
20453
start: { line: 1, column: 15 },
20454
end: { line: 1, column: 28 }
20455
}
20456
}, {
20457
type: 'ExpressionStatement',
20458
expression: {
20459
type: 'Literal',
20460
value: 17,
20461
raw: "021",
20462
range: [29, 32],
20463
loc: {
20464
start: { line: 1, column: 29 },
20465
end: { line: 1, column: 32 }
20466
}
20467
},
20468
range: [29, 33],
20469
loc: {
20470
start: { line: 1, column: 29 },
20471
end: { line: 1, column: 33 }
20472
}
20473
}],
20474
range: [13, 34],
20475
loc: {
20476
start: { line: 1, column: 13 },
20477
end: { line: 1, column: 34 }
20478
}
20479
},
20480
rest: null,
20481
generator: false,
20482
expression: false,
20483
range: [1, 34],
20484
loc: {
20485
start: { line: 1, column: 1 },
20486
end: { line: 1, column: 34 }
20487
}
20488
},
20489
'arguments': [],
20490
range: [1, 36],
20491
loc: {
20492
start: { line: 1, column: 1 },
20493
end: { line: 1, column: 36 }
20494
}
20495
},
20496
range: [0, 37],
20497
loc: {
20498
start: { line: 1, column: 0 },
20499
end: { line: 1, column: 37 }
20500
}
20501
}],
20502
range: [0, 37],
20503
loc: {
20504
start: { line: 1, column: 0 },
20505
end: { line: 1, column: 37 }
20506
},
20507
errors: [{
20508
index: 29,
20509
lineNumber: 1,
20510
column: 30,
20511
message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
20512
}]
20513
},
20514
20515
'"use strict"; delete x': {
20516
type: 'Program',
20517
body: [{
20518
type: 'ExpressionStatement',
20519
expression: {
20520
type: 'Literal',
20521
value: 'use strict',
20522
raw: '"use strict"',
20523
range: [0, 12],
20524
loc: {
20525
start: { line: 1, column: 0 },
20526
end: { line: 1, column: 12 }
20527
}
20528
},
20529
range: [0, 13],
20530
loc: {
20531
start: { line: 1, column: 0 },
20532
end: { line: 1, column: 13 }
20533
}
20534
}, {
20535
type: 'ExpressionStatement',
20536
expression: {
20537
type: 'UnaryExpression',
20538
operator: 'delete',
20539
argument: {
20540
type: 'Identifier',
20541
name: 'x',
20542
range: [21, 22],
20543
loc: {
20544
start: { line: 1, column: 21 },
20545
end: { line: 1, column: 22 }
20546
}
20547
},
20548
prefix: true,
20549
range: [14, 22],
20550
loc: {
20551
start: { line: 1, column: 14 },
20552
end: { line: 1, column: 22 }
20553
}
20554
},
20555
range: [14, 22],
20556
loc: {
20557
start: { line: 1, column: 14 },
20558
end: { line: 1, column: 22 }
20559
}
20560
}],
20561
range: [0, 22],
20562
loc: {
20563
start: { line: 1, column: 0 },
20564
end: { line: 1, column: 22 }
20565
},
20566
errors: [{
20567
index: 22,
20568
lineNumber: 1,
20569
column: 23,
20570
message: 'Error: Line 1: Delete of an unqualified identifier in strict mode.'
20571
}]
20572
},
20573
20574
'"use strict"; try {} catch (eval) {}': {
20575
type: 'Program',
20576
body: [{
20577
type: 'ExpressionStatement',
20578
expression: {
20579
type: 'Literal',
20580
value: 'use strict',
20581
raw: '"use strict"',
20582
range: [0, 12],
20583
loc: {
20584
start: { line: 1, column: 0 },
20585
end: { line: 1, column: 12 }
20586
}
20587
},
20588
range: [0, 13],
20589
loc: {
20590
start: { line: 1, column: 0 },
20591
end: { line: 1, column: 13 }
20592
}
20593
}, {
20594
type: 'TryStatement',
20595
block: {
20596
type: 'BlockStatement',
20597
body: [],
20598
range: [18, 20],
20599
loc: {
20600
start: { line: 1, column: 18 },
20601
end: { line: 1, column: 20 }
20602
}
20603
},
20604
guardedHandlers: [],
20605
handlers: [{
20606
type: 'CatchClause',
20607
param: {
20608
type: 'Identifier',
20609
name: 'eval',
20610
range: [28, 32],
20611
loc: {
20612
start: { line: 1, column: 28 },
20613
end: { line: 1, column: 32 }
20614
}
20615
},
20616
body: {
20617
type: 'BlockStatement',
20618
body: [],
20619
range: [34, 36],
20620
loc: {
20621
start: { line: 1, column: 34 },
20622
end: { line: 1, column: 36 }
20623
}
20624
},
20625
range: [21, 36],
20626
loc: {
20627
start: { line: 1, column: 21 },
20628
end: { line: 1, column: 36 }
20629
}
20630
}],
20631
finalizer: null,
20632
range: [14, 36],
20633
loc: {
20634
start: { line: 1, column: 14 },
20635
end: { line: 1, column: 36 }
20636
}
20637
}],
20638
range: [0, 36],
20639
loc: {
20640
start: { line: 1, column: 0 },
20641
end: { line: 1, column: 36 }
20642
},
20643
errors: [{
20644
index: 32,
20645
lineNumber: 1,
20646
column: 33,
20647
message: 'Error: Line 1: Catch variable may not be eval or arguments in strict mode'
20648
}]
20649
},
20650
20651
'"use strict"; try {} catch (arguments) {}': {
20652
type: 'Program',
20653
body: [{
20654
type: 'ExpressionStatement',
20655
expression: {
20656
type: 'Literal',
20657
value: 'use strict',
20658
raw: '"use strict"',
20659
range: [0, 12],
20660
loc: {
20661
start: { line: 1, column: 0 },
20662
end: { line: 1, column: 12 }
20663
}
20664
},
20665
range: [0, 13],
20666
loc: {
20667
start: { line: 1, column: 0 },
20668
end: { line: 1, column: 13 }
20669
}
20670
}, {
20671
type: 'TryStatement',
20672
block: {
20673
type: 'BlockStatement',
20674
body: [],
20675
range: [18, 20],
20676
loc: {
20677
start: { line: 1, column: 18 },
20678
end: { line: 1, column: 20 }
20679
}
20680
},
20681
guardedHandlers: [],
20682
handlers: [{
20683
type: 'CatchClause',
20684
param: {
20685
type: 'Identifier',
20686
name: 'arguments',
20687
range: [28, 37],
20688
loc: {
20689
start: { line: 1, column: 28 },
20690
end: { line: 1, column: 37 }
20691
}
20692
},
20693
body: {
20694
type: 'BlockStatement',
20695
body: [],
20696
range: [39, 41],
20697
loc: {
20698
start: { line: 1, column: 39 },
20699
end: { line: 1, column: 41 }
20700
}
20701
},
20702
range: [21, 41],
20703
loc: {
20704
start: { line: 1, column: 21 },
20705
end: { line: 1, column: 41 }
20706
}
20707
}],
20708
finalizer: null,
20709
range: [14, 41],
20710
loc: {
20711
start: { line: 1, column: 14 },
20712
end: { line: 1, column: 41 }
20713
}
20714
}],
20715
range: [0, 41],
20716
loc: {
20717
start: { line: 1, column: 0 },
20718
end: { line: 1, column: 41 }
20719
},
20720
errors: [{
20721
index: 37,
20722
lineNumber: 1,
20723
column: 38,
20724
message: 'Error: Line 1: Catch variable may not be eval or arguments in strict mode'
20725
}]
20726
},
20727
20728
'"use strict"; var eval;': {
20729
type: 'Program',
20730
body: [{
20731
type: 'ExpressionStatement',
20732
expression: {
20733
type: 'Literal',
20734
value: 'use strict',
20735
raw: '"use strict"',
20736
range: [0, 12],
20737
loc: {
20738
start: { line: 1, column: 0 },
20739
end: { line: 1, column: 12 }
20740
}
20741
},
20742
range: [0, 13],
20743
loc: {
20744
start: { line: 1, column: 0 },
20745
end: { line: 1, column: 13 }
20746
}
20747
}, {
20748
type: 'VariableDeclaration',
20749
declarations: [{
20750
type: 'VariableDeclarator',
20751
id: {
20752
type: 'Identifier',
20753
name: 'eval',
20754
range: [18, 22],
20755
loc: {
20756
start: { line: 1, column: 18 },
20757
end: { line: 1, column: 22 }
20758
}
20759
},
20760
init: null,
20761
range: [18, 22],
20762
loc: {
20763
start: { line: 1, column: 18 },
20764
end: { line: 1, column: 22 }
20765
}
20766
}],
20767
kind: 'var',
20768
range: [14, 23],
20769
loc: {
20770
start: { line: 1, column: 14 },
20771
end: { line: 1, column: 23 }
20772
}
20773
}],
20774
range: [0, 23],
20775
loc: {
20776
start: { line: 1, column: 0 },
20777
end: { line: 1, column: 23 }
20778
},
20779
errors: [{
20780
index: 22,
20781
lineNumber: 1,
20782
column: 23,
20783
message: 'Error: Line 1: Variable name may not be eval or arguments in strict mode'
20784
}]
20785
},
20786
20787
'"use strict"; var arguments;': {
20788
type: 'Program',
20789
body: [{
20790
type: 'ExpressionStatement',
20791
expression: {
20792
type: 'Literal',
20793
value: 'use strict',
20794
raw: '"use strict"',
20795
range: [0, 12],
20796
loc: {
20797
start: { line: 1, column: 0 },
20798
end: { line: 1, column: 12 }
20799
}
20800
},
20801
range: [0, 13],
20802
loc: {
20803
start: { line: 1, column: 0 },
20804
end: { line: 1, column: 13 }
20805
}
20806
}, {
20807
type: 'VariableDeclaration',
20808
declarations: [{
20809
type: 'VariableDeclarator',
20810
id: {
20811
type: 'Identifier',
20812
name: 'arguments',
20813
range: [18, 27],
20814
loc: {
20815
start: { line: 1, column: 18 },
20816
end: { line: 1, column: 27 }
20817
}
20818
},
20819
init: null,
20820
range: [18, 27],
20821
loc: {
20822
start: { line: 1, column: 18 },
20823
end: { line: 1, column: 27 }
20824
}
20825
}],
20826
kind: 'var',
20827
range: [14, 28],
20828
loc: {
20829
start: { line: 1, column: 14 },
20830
end: { line: 1, column: 28 }
20831
}
20832
}],
20833
range: [0, 28],
20834
loc: {
20835
start: { line: 1, column: 0 },
20836
end: { line: 1, column: 28 }
20837
},
20838
errors: [{
20839
index: 27,
20840
lineNumber: 1,
20841
column: 28,
20842
message: 'Error: Line 1: Variable name may not be eval or arguments in strict mode'
20843
}]
20844
},
20845
20846
'"use strict"; eval = 0;': {
20847
type: 'Program',
20848
body: [{
20849
type: 'ExpressionStatement',
20850
expression: {
20851
type: 'Literal',
20852
value: 'use strict',
20853
raw: '"use strict"',
20854
range: [0, 12],
20855
loc: {
20856
start: { line: 1, column: 0 },
20857
end: { line: 1, column: 12 }
20858
}
20859
},
20860
range: [0, 13],
20861
loc: {
20862
start: { line: 1, column: 0 },
20863
end: { line: 1, column: 13 }
20864
}
20865
}, {
20866
type: 'ExpressionStatement',
20867
expression: {
20868
type: 'AssignmentExpression',
20869
operator: '=',
20870
left: {
20871
type: 'Identifier',
20872
name: 'eval',
20873
range: [14, 18],
20874
loc: {
20875
start: { line: 1, column: 14 },
20876
end: { line: 1, column: 18 }
20877
}
20878
},
20879
right: {
20880
type: 'Literal',
20881
value: 0,
20882
raw: '0',
20883
range: [21, 22],
20884
loc: {
20885
start: { line: 1, column: 21 },
20886
end: { line: 1, column: 22 }
20887
}
20888
},
20889
range: [14, 22],
20890
loc: {
20891
start: { line: 1, column: 14 },
20892
end: { line: 1, column: 22 }
20893
}
20894
},
20895
range: [14, 23],
20896
loc: {
20897
start: { line: 1, column: 14 },
20898
end: { line: 1, column: 23 }
20899
}
20900
}],
20901
range: [0, 23],
20902
loc: {
20903
start: { line: 1, column: 0 },
20904
end: { line: 1, column: 23 }
20905
},
20906
errors: [{
20907
index: 14,
20908
lineNumber: 1,
20909
column: 15,
20910
message: 'Error: Line 1: Assignment to eval or arguments is not allowed in strict mode'
20911
}]
20912
},
20913
20914
'"use strict"; eval++;': {
20915
type: 'Program',
20916
body: [{
20917
type: 'ExpressionStatement',
20918
expression: {
20919
type: 'Literal',
20920
value: 'use strict',
20921
raw: '"use strict"',
20922
range: [0, 12],
20923
loc: {
20924
start: { line: 1, column: 0 },
20925
end: { line: 1, column: 12 }
20926
}
20927
},
20928
range: [0, 13],
20929
loc: {
20930
start: { line: 1, column: 0 },
20931
end: { line: 1, column: 13 }
20932
}
20933
}, {
20934
type: 'ExpressionStatement',
20935
expression: {
20936
type: 'UpdateExpression',
20937
operator: '++',
20938
argument: {
20939
type: 'Identifier',
20940
name: 'eval',
20941
range: [14, 18],
20942
loc: {
20943
start: { line: 1, column: 14 },
20944
end: { line: 1, column: 18 }
20945
}
20946
},
20947
prefix: false,
20948
range: [14, 20],
20949
loc: {
20950
start: { line: 1, column: 14 },
20951
end: { line: 1, column: 20 }
20952
}
20953
},
20954
range: [14, 21],
20955
loc: {
20956
start: { line: 1, column: 14 },
20957
end: { line: 1, column: 21 }
20958
}
20959
}],
20960
range: [0, 21],
20961
loc: {
20962
start: { line: 1, column: 0 },
20963
end: { line: 1, column: 21 }
20964
},
20965
errors: [{
20966
index: 18,
20967
lineNumber: 1,
20968
column: 19,
20969
message: 'Error: Line 1: Postfix increment/decrement may not have eval or arguments operand in strict mode'
20970
}]
20971
},
20972
20973
'"use strict"; --eval;': {
20974
type: 'Program',
20975
body: [{
20976
type: 'ExpressionStatement',
20977
expression: {
20978
type: 'Literal',
20979
value: 'use strict',
20980
raw: '"use strict"',
20981
range: [0, 12],
20982
loc: {
20983
start: { line: 1, column: 0 },
20984
end: { line: 1, column: 12 }
20985
}
20986
},
20987
range: [0, 13],
20988
loc: {
20989
start: { line: 1, column: 0 },
20990
end: { line: 1, column: 13 }
20991
}
20992
}, {
20993
type: 'ExpressionStatement',
20994
expression: {
20995
type: 'UpdateExpression',
20996
operator: '--',
20997
argument: {
20998
type: 'Identifier',
20999
name: 'eval',
21000
range: [16, 20],
21001
loc: {
21002
start: { line: 1, column: 16 },
21003
end: { line: 1, column: 20 }
21004
}
21005
},
21006
prefix: true,
21007
range: [14, 20],
21008
loc: {
21009
start: { line: 1, column: 14 },
21010
end: { line: 1, column: 20 }
21011
}
21012
},
21013
range: [14, 21],
21014
loc: {
21015
start: { line: 1, column: 14 },
21016
end: { line: 1, column: 21 }
21017
}
21018
}],
21019
range: [0, 21],
21020
loc: {
21021
start: { line: 1, column: 0 },
21022
end: { line: 1, column: 21 }
21023
},
21024
errors: [{
21025
index: 20,
21026
lineNumber: 1,
21027
column: 21,
21028
message: 'Error: Line 1: Prefix increment/decrement may not have eval or arguments operand in strict mode'
21029
}]
21030
},
21031
21032
'"use strict"; arguments = 0;': {
21033
type: 'Program',
21034
body: [{
21035
type: 'ExpressionStatement',
21036
expression: {
21037
type: 'Literal',
21038
value: 'use strict',
21039
raw: '"use strict"',
21040
range: [0, 12],
21041
loc: {
21042
start: { line: 1, column: 0 },
21043
end: { line: 1, column: 12 }
21044
}
21045
},
21046
range: [0, 13],
21047
loc: {
21048
start: { line: 1, column: 0 },
21049
end: { line: 1, column: 13 }
21050
}
21051
}, {
21052
type: 'ExpressionStatement',
21053
expression: {
21054
type: 'AssignmentExpression',
21055
operator: '=',
21056
left: {
21057
type: 'Identifier',
21058
name: 'arguments',
21059
range: [14, 23],
21060
loc: {
21061
start: { line: 1, column: 14 },
21062
end: { line: 1, column: 23 }
21063
}
21064
},
21065
right: {
21066
type: 'Literal',
21067
value: 0,
21068
raw: '0',
21069
range: [26, 27],
21070
loc: {
21071
start: { line: 1, column: 26 },
21072
end: { line: 1, column: 27 }
21073
}
21074
},
21075
range: [14, 27],
21076
loc: {
21077
start: { line: 1, column: 14 },
21078
end: { line: 1, column: 27 }
21079
}
21080
},
21081
range: [14, 28],
21082
loc: {
21083
start: { line: 1, column: 14 },
21084
end: { line: 1, column: 28 }
21085
}
21086
}],
21087
range: [0, 28],
21088
loc: {
21089
start: { line: 1, column: 0 },
21090
end: { line: 1, column: 28 }
21091
},
21092
errors: [{
21093
index: 14,
21094
lineNumber: 1,
21095
column: 15,
21096
message: 'Error: Line 1: Assignment to eval or arguments is not allowed in strict mode'
21097
}]
21098
},
21099
21100
'"use strict"; arguments--;': {
21101
type: 'Program',
21102
body: [{
21103
type: 'ExpressionStatement',
21104
expression: {
21105
type: 'Literal',
21106
value: 'use strict',
21107
raw: '"use strict"',
21108
range: [0, 12],
21109
loc: {
21110
start: { line: 1, column: 0 },
21111
end: { line: 1, column: 12 }
21112
}
21113
},
21114
range: [0, 13],
21115
loc: {
21116
start: { line: 1, column: 0 },
21117
end: { line: 1, column: 13 }
21118
}
21119
}, {
21120
type: 'ExpressionStatement',
21121
expression: {
21122
type: 'UpdateExpression',
21123
operator: '--',
21124
argument: {
21125
type: 'Identifier',
21126
name: 'arguments',
21127
range: [14, 23],
21128
loc: {
21129
start: { line: 1, column: 14 },
21130
end: { line: 1, column: 23 }
21131
}
21132
},
21133
prefix: false,
21134
range: [14, 25],
21135
loc: {
21136
start: { line: 1, column: 14 },
21137
end: { line: 1, column: 25 }
21138
}
21139
},
21140
range: [14, 26],
21141
loc: {
21142
start: { line: 1, column: 14 },
21143
end: { line: 1, column: 26 }
21144
}
21145
}],
21146
range: [0, 26],
21147
loc: {
21148
start: { line: 1, column: 0 },
21149
end: { line: 1, column: 26 }
21150
},
21151
errors: [{
21152
index: 23,
21153
lineNumber: 1,
21154
column: 24,
21155
message: 'Error: Line 1: Postfix increment/decrement may not have eval or arguments operand in strict mode'
21156
}]
21157
},
21158
21159
'"use strict"; ++arguments;': {
21160
type: 'Program',
21161
body: [{
21162
type: 'ExpressionStatement',
21163
expression: {
21164
type: 'Literal',
21165
value: 'use strict',
21166
raw: '"use strict"',
21167
range: [0, 12],
21168
loc: {
21169
start: { line: 1, column: 0 },
21170
end: { line: 1, column: 12 }
21171
}
21172
},
21173
range: [0, 13],
21174
loc: {
21175
start: { line: 1, column: 0 },
21176
end: { line: 1, column: 13 }
21177
}
21178
}, {
21179
type: 'ExpressionStatement',
21180
expression: {
21181
type: 'UpdateExpression',
21182
operator: '++',
21183
argument: {
21184
type: 'Identifier',
21185
name: 'arguments',
21186
range: [16, 25],
21187
loc: {
21188
start: { line: 1, column: 16 },
21189
end: { line: 1, column: 25 }
21190
}
21191
},
21192
prefix: true,
21193
range: [14, 25],
21194
loc: {
21195
start: { line: 1, column: 14 },
21196
end: { line: 1, column: 25 }
21197
}
21198
},
21199
range: [14, 26],
21200
loc: {
21201
start: { line: 1, column: 14 },
21202
end: { line: 1, column: 26 }
21203
}
21204
}],
21205
range: [0, 26],
21206
loc: {
21207
start: { line: 1, column: 0 },
21208
end: { line: 1, column: 26 }
21209
},
21210
errors: [{
21211
index: 25,
21212
lineNumber: 1,
21213
column: 26,
21214
message: 'Error: Line 1: Prefix increment/decrement may not have eval or arguments operand in strict mode'
21215
}]
21216
},
21217
21218
21219
'"use strict";x={y:1,y:1}': {
21220
type: 'Program',
21221
body: [{
21222
type: 'ExpressionStatement',
21223
expression: {
21224
type: 'Literal',
21225
value: 'use strict',
21226
raw: '"use strict"',
21227
range: [0, 12],
21228
loc: {
21229
start: { line: 1, column: 0 },
21230
end: { line: 1, column: 12 }
21231
}
21232
},
21233
range: [0, 13],
21234
loc: {
21235
start: { line: 1, column: 0 },
21236
end: { line: 1, column: 13 }
21237
}
21238
}, {
21239
type: 'ExpressionStatement',
21240
expression: {
21241
type: 'AssignmentExpression',
21242
operator: '=',
21243
left: {
21244
type: 'Identifier',
21245
name: 'x',
21246
range: [13, 14],
21247
loc: {
21248
start: { line: 1, column: 13 },
21249
end: { line: 1, column: 14 }
21250
}
21251
},
21252
right: {
21253
type: 'ObjectExpression',
21254
properties: [{
21255
type: 'Property',
21256
key: {
21257
type: 'Identifier',
21258
name: 'y',
21259
range: [16, 17],
21260
loc: {
21261
start: { line: 1, column: 16 },
21262
end: { line: 1, column: 17 }
21263
}
21264
},
21265
value: {
21266
type: 'Literal',
21267
value: 1,
21268
raw: '1',
21269
range: [18, 19],
21270
loc: {
21271
start: { line: 1, column: 18 },
21272
end: { line: 1, column: 19 }
21273
}
21274
},
21275
kind: 'init',
21276
method: false,
21277
shorthand: false,
21278
computed: false,
21279
range: [16, 19],
21280
loc: {
21281
start: { line: 1, column: 16 },
21282
end: { line: 1, column: 19 }
21283
}
21284
}, {
21285
type: 'Property',
21286
key: {
21287
type: 'Identifier',
21288
name: 'y',
21289
range: [20, 21],
21290
loc: {
21291
start: { line: 1, column: 20 },
21292
end: { line: 1, column: 21 }
21293
}
21294
},
21295
value: {
21296
type: 'Literal',
21297
value: 1,
21298
raw: '1',
21299
range: [22, 23],
21300
loc: {
21301
start: { line: 1, column: 22 },
21302
end: { line: 1, column: 23 }
21303
}
21304
},
21305
kind: 'init',
21306
method: false,
21307
shorthand: false,
21308
computed: false,
21309
range: [20, 23],
21310
loc: {
21311
start: { line: 1, column: 20 },
21312
end: { line: 1, column: 23 }
21313
}
21314
}],
21315
range: [15, 24],
21316
loc: {
21317
start: { line: 1, column: 15 },
21318
end: { line: 1, column: 24 }
21319
}
21320
},
21321
range: [13, 24],
21322
loc: {
21323
start: { line: 1, column: 13 },
21324
end: { line: 1, column: 24 }
21325
}
21326
},
21327
range: [13, 24],
21328
loc: {
21329
start: { line: 1, column: 13 },
21330
end: { line: 1, column: 24 }
21331
}
21332
}],
21333
range: [0, 24],
21334
loc: {
21335
start: { line: 1, column: 0 },
21336
end: { line: 1, column: 24 }
21337
},
21338
errors: [{
21339
index: 23,
21340
lineNumber: 1,
21341
column: 24,
21342
message: 'Error: Line 1: Duplicate data property in object literal not allowed in strict mode'
21343
}]
21344
},
21345
21346
'"use strict"; function eval() {};': {
21347
type: 'Program',
21348
body: [{
21349
type: 'ExpressionStatement',
21350
expression: {
21351
type: 'Literal',
21352
value: 'use strict',
21353
raw: '"use strict"',
21354
range: [0, 12],
21355
loc: {
21356
start: { line: 1, column: 0 },
21357
end: { line: 1, column: 12 }
21358
}
21359
},
21360
range: [0, 13],
21361
loc: {
21362
start: { line: 1, column: 0 },
21363
end: { line: 1, column: 13 }
21364
}
21365
}, {
21366
type: 'FunctionDeclaration',
21367
id: {
21368
type: 'Identifier',
21369
name: 'eval',
21370
range: [23, 27],
21371
loc: {
21372
start: { line: 1, column: 23 },
21373
end: { line: 1, column: 27 }
21374
}
21375
},
21376
params: [],
21377
defaults: [],
21378
body: {
21379
type: 'BlockStatement',
21380
body: [],
21381
range: [30, 32],
21382
loc: {
21383
start: { line: 1, column: 30 },
21384
end: { line: 1, column: 32 }
21385
}
21386
},
21387
rest: null,
21388
generator: false,
21389
expression: false,
21390
range: [14, 32],
21391
loc: {
21392
start: { line: 1, column: 14 },
21393
end: { line: 1, column: 32 }
21394
}
21395
}, {
21396
type: 'EmptyStatement',
21397
range: [32, 33],
21398
loc: {
21399
start: { line: 1, column: 32 },
21400
end: { line: 1, column: 33 }
21401
}
21402
}],
21403
range: [0, 33],
21404
loc: {
21405
start: { line: 1, column: 0 },
21406
end: { line: 1, column: 33 }
21407
},
21408
errors: [{
21409
index: 23,
21410
lineNumber: 1,
21411
column: 24,
21412
message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
21413
}]
21414
},
21415
21416
'"use strict"; function arguments() {};': {
21417
type: 'Program',
21418
body: [{
21419
type: 'ExpressionStatement',
21420
expression: {
21421
type: 'Literal',
21422
value: 'use strict',
21423
raw: '"use strict"',
21424
range: [0, 12],
21425
loc: {
21426
start: { line: 1, column: 0 },
21427
end: { line: 1, column: 12 }
21428
}
21429
},
21430
range: [0, 13],
21431
loc: {
21432
start: { line: 1, column: 0 },
21433
end: { line: 1, column: 13 }
21434
}
21435
}, {
21436
type: 'FunctionDeclaration',
21437
id: {
21438
type: 'Identifier',
21439
name: 'arguments',
21440
range: [23, 32],
21441
loc: {
21442
start: { line: 1, column: 23 },
21443
end: { line: 1, column: 32 }
21444
}
21445
},
21446
params: [],
21447
defaults: [],
21448
body: {
21449
type: 'BlockStatement',
21450
body: [],
21451
range: [35, 37],
21452
loc: {
21453
start: { line: 1, column: 35 },
21454
end: { line: 1, column: 37 }
21455
}
21456
},
21457
rest: null,
21458
generator: false,
21459
expression: false,
21460
range: [14, 37],
21461
loc: {
21462
start: { line: 1, column: 14 },
21463
end: { line: 1, column: 37 }
21464
}
21465
}, {
21466
type: 'EmptyStatement',
21467
range: [37, 38],
21468
loc: {
21469
start: { line: 1, column: 37 },
21470
end: { line: 1, column: 38 }
21471
}
21472
}],
21473
range: [0, 38],
21474
loc: {
21475
start: { line: 1, column: 0 },
21476
end: { line: 1, column: 38 }
21477
},
21478
errors: [{
21479
index: 23,
21480
lineNumber: 1,
21481
column: 24,
21482
message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
21483
}]
21484
},
21485
21486
'"use strict"; function interface() {};': {
21487
type: 'Program',
21488
body: [{
21489
type: 'ExpressionStatement',
21490
expression: {
21491
type: 'Literal',
21492
value: 'use strict',
21493
raw: '"use strict"',
21494
range: [0, 12],
21495
loc: {
21496
start: { line: 1, column: 0 },
21497
end: { line: 1, column: 12 }
21498
}
21499
},
21500
range: [0, 13],
21501
loc: {
21502
start: { line: 1, column: 0 },
21503
end: { line: 1, column: 13 }
21504
}
21505
}, {
21506
type: 'FunctionDeclaration',
21507
id: {
21508
type: 'Identifier',
21509
name: 'interface',
21510
range: [23, 32],
21511
loc: {
21512
start: { line: 1, column: 23 },
21513
end: { line: 1, column: 32 }
21514
}
21515
},
21516
params: [],
21517
defaults: [],
21518
body: {
21519
type: 'BlockStatement',
21520
body: [],
21521
range: [35, 37],
21522
loc: {
21523
start: { line: 1, column: 35 },
21524
end: { line: 1, column: 37 }
21525
}
21526
},
21527
rest: null,
21528
generator: false,
21529
expression: false,
21530
range: [14, 37],
21531
loc: {
21532
start: { line: 1, column: 14 },
21533
end: { line: 1, column: 37 }
21534
}
21535
}, {
21536
type: 'EmptyStatement',
21537
range: [37, 38],
21538
loc: {
21539
start: { line: 1, column: 37 },
21540
end: { line: 1, column: 38 }
21541
}
21542
}],
21543
range: [0, 38],
21544
loc: {
21545
start: { line: 1, column: 0 },
21546
end: { line: 1, column: 38 }
21547
},
21548
errors: [{
21549
index: 23,
21550
lineNumber: 1,
21551
column: 24,
21552
message: 'Error: Line 1: Use of future reserved word in strict mode'
21553
}]
21554
},
21555
21556
'"use strict"; (function eval() {});': {
21557
type: 'Program',
21558
body: [{
21559
type: 'ExpressionStatement',
21560
expression: {
21561
type: 'Literal',
21562
value: 'use strict',
21563
raw: '"use strict"',
21564
range: [0, 12],
21565
loc: {
21566
start: { line: 1, column: 0 },
21567
end: { line: 1, column: 12 }
21568
}
21569
},
21570
range: [0, 13],
21571
loc: {
21572
start: { line: 1, column: 0 },
21573
end: { line: 1, column: 13 }
21574
}
21575
}, {
21576
type: 'ExpressionStatement',
21577
expression: {
21578
type: 'FunctionExpression',
21579
id: {
21580
type: 'Identifier',
21581
name: 'eval',
21582
range: [24, 28],
21583
loc: {
21584
start: { line: 1, column: 24 },
21585
end: { line: 1, column: 28 }
21586
}
21587
},
21588
params: [],
21589
defaults: [],
21590
body: {
21591
type: 'BlockStatement',
21592
body: [],
21593
range: [31, 33],
21594
loc: {
21595
start: { line: 1, column: 31 },
21596
end: { line: 1, column: 33 }
21597
}
21598
},
21599
rest: null,
21600
generator: false,
21601
expression: false,
21602
range: [15, 33],
21603
loc: {
21604
start: { line: 1, column: 15 },
21605
end: { line: 1, column: 33 }
21606
}
21607
},
21608
range: [14, 35],
21609
loc: {
21610
start: { line: 1, column: 14 },
21611
end: { line: 1, column: 35 }
21612
}
21613
}],
21614
range: [0, 35],
21615
loc: {
21616
start: { line: 1, column: 0 },
21617
end: { line: 1, column: 35 }
21618
},
21619
errors: [{
21620
index: 24,
21621
lineNumber: 1,
21622
column: 25,
21623
message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
21624
}]
21625
},
21626
21627
'"use strict"; (function arguments() {});': {
21628
type: 'Program',
21629
body: [{
21630
type: 'ExpressionStatement',
21631
expression: {
21632
type: 'Literal',
21633
value: 'use strict',
21634
raw: '"use strict"',
21635
range: [0, 12],
21636
loc: {
21637
start: { line: 1, column: 0 },
21638
end: { line: 1, column: 12 }
21639
}
21640
},
21641
range: [0, 13],
21642
loc: {
21643
start: { line: 1, column: 0 },
21644
end: { line: 1, column: 13 }
21645
}
21646
}, {
21647
type: 'ExpressionStatement',
21648
expression: {
21649
type: 'FunctionExpression',
21650
id: {
21651
type: 'Identifier',
21652
name: 'arguments',
21653
range: [24, 33],
21654
loc: {
21655
start: { line: 1, column: 24 },
21656
end: { line: 1, column: 33 }
21657
}
21658
},
21659
params: [],
21660
defaults: [],
21661
body: {
21662
type: 'BlockStatement',
21663
body: [],
21664
range: [36, 38],
21665
loc: {
21666
start: { line: 1, column: 36 },
21667
end: { line: 1, column: 38 }
21668
}
21669
},
21670
rest: null,
21671
generator: false,
21672
expression: false,
21673
range: [15, 38],
21674
loc: {
21675
start: { line: 1, column: 15 },
21676
end: { line: 1, column: 38 }
21677
}
21678
},
21679
range: [14, 40],
21680
loc: {
21681
start: { line: 1, column: 14 },
21682
end: { line: 1, column: 40 }
21683
}
21684
}],
21685
range: [0, 40],
21686
loc: {
21687
start: { line: 1, column: 0 },
21688
end: { line: 1, column: 40 }
21689
},
21690
errors: [{
21691
index: 24,
21692
lineNumber: 1,
21693
column: 25,
21694
message: 'Error: Line 1: Function name may not be eval or arguments in strict mode'
21695
}]
21696
},
21697
21698
'"use strict"; (function interface() {});': {
21699
type: 'Program',
21700
body: [{
21701
type: 'ExpressionStatement',
21702
expression: {
21703
type: 'Literal',
21704
value: 'use strict',
21705
raw: '"use strict"',
21706
range: [0, 12],
21707
loc: {
21708
start: { line: 1, column: 0 },
21709
end: { line: 1, column: 12 }
21710
}
21711
},
21712
range: [0, 13],
21713
loc: {
21714
start: { line: 1, column: 0 },
21715
end: { line: 1, column: 13 }
21716
}
21717
}, {
21718
type: 'ExpressionStatement',
21719
expression: {
21720
type: 'FunctionExpression',
21721
id: {
21722
type: 'Identifier',
21723
name: 'interface',
21724
range: [24, 33],
21725
loc: {
21726
start: { line: 1, column: 24 },
21727
end: { line: 1, column: 33 }
21728
}
21729
},
21730
params: [],
21731
defaults: [],
21732
body: {
21733
type: 'BlockStatement',
21734
body: [],
21735
range: [36, 38],
21736
loc: {
21737
start: { line: 1, column: 36 },
21738
end: { line: 1, column: 38 }
21739
}
21740
},
21741
rest: null,
21742
generator: false,
21743
expression: false,
21744
range: [15, 38],
21745
loc: {
21746
start: { line: 1, column: 15 },
21747
end: { line: 1, column: 38 }
21748
}
21749
},
21750
range: [14, 40],
21751
loc: {
21752
start: { line: 1, column: 14 },
21753
end: { line: 1, column: 40 }
21754
}
21755
}],
21756
range: [0, 40],
21757
loc: {
21758
start: { line: 1, column: 0 },
21759
end: { line: 1, column: 40 }
21760
},
21761
errors: [{
21762
index: 24,
21763
lineNumber: 1,
21764
column: 25,
21765
message: 'Error: Line 1: Use of future reserved word in strict mode'
21766
}]
21767
},
21768
21769
'"use strict"; function f(eval) {};': {
21770
type: 'Program',
21771
body: [{
21772
type: 'ExpressionStatement',
21773
expression: {
21774
type: 'Literal',
21775
value: 'use strict',
21776
raw: '"use strict"',
21777
range: [0, 12],
21778
loc: {
21779
start: { line: 1, column: 0 },
21780
end: { line: 1, column: 12 }
21781
}
21782
},
21783
range: [0, 13],
21784
loc: {
21785
start: { line: 1, column: 0 },
21786
end: { line: 1, column: 13 }
21787
}
21788
}, {
21789
type: 'FunctionDeclaration',
21790
id: {
21791
type: 'Identifier',
21792
name: 'f',
21793
range: [23, 24],
21794
loc: {
21795
start: { line: 1, column: 23 },
21796
end: { line: 1, column: 24 }
21797
}
21798
},
21799
params: [{
21800
type: 'Identifier',
21801
name: 'eval',
21802
range: [25, 29],
21803
loc: {
21804
start: { line: 1, column: 25 },
21805
end: { line: 1, column: 29 }
21806
}
21807
}],
21808
defaults: [],
21809
body: {
21810
type: 'BlockStatement',
21811
body: [],
21812
range: [31, 33],
21813
loc: {
21814
start: { line: 1, column: 31 },
21815
end: { line: 1, column: 33 }
21816
}
21817
},
21818
rest: null,
21819
generator: false,
21820
expression: false,
21821
range: [14, 33],
21822
loc: {
21823
start: { line: 1, column: 14 },
21824
end: { line: 1, column: 33 }
21825
}
21826
}, {
21827
type: 'EmptyStatement',
21828
range: [33, 34],
21829
loc: {
21830
start: { line: 1, column: 33 },
21831
end: { line: 1, column: 34 }
21832
}
21833
}],
21834
range: [0, 34],
21835
loc: {
21836
start: { line: 1, column: 0 },
21837
end: { line: 1, column: 34 }
21838
},
21839
errors: [{
21840
index: 25,
21841
lineNumber: 1,
21842
column: 26,
21843
message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
21844
}]
21845
},
21846
21847
'"use strict"; function f(arguments) {};': {
21848
type: 'Program',
21849
body: [{
21850
type: 'ExpressionStatement',
21851
expression: {
21852
type: 'Literal',
21853
value: 'use strict',
21854
raw: '"use strict"',
21855
range: [0, 12],
21856
loc: {
21857
start: { line: 1, column: 0 },
21858
end: { line: 1, column: 12 }
21859
}
21860
},
21861
range: [0, 13],
21862
loc: {
21863
start: { line: 1, column: 0 },
21864
end: { line: 1, column: 13 }
21865
}
21866
}, {
21867
type: 'FunctionDeclaration',
21868
id: {
21869
type: 'Identifier',
21870
name: 'f',
21871
range: [23, 24],
21872
loc: {
21873
start: { line: 1, column: 23 },
21874
end: { line: 1, column: 24 }
21875
}
21876
},
21877
params: [{
21878
type: 'Identifier',
21879
name: 'arguments',
21880
range: [25, 34],
21881
loc: {
21882
start: { line: 1, column: 25 },
21883
end: { line: 1, column: 34 }
21884
}
21885
}],
21886
defaults: [],
21887
body: {
21888
type: 'BlockStatement',
21889
body: [],
21890
range: [36, 38],
21891
loc: {
21892
start: { line: 1, column: 36 },
21893
end: { line: 1, column: 38 }
21894
}
21895
},
21896
rest: null,
21897
generator: false,
21898
expression: false,
21899
range: [14, 38],
21900
loc: {
21901
start: { line: 1, column: 14 },
21902
end: { line: 1, column: 38 }
21903
}
21904
}, {
21905
type: 'EmptyStatement',
21906
range: [38, 39],
21907
loc: {
21908
start: { line: 1, column: 38 },
21909
end: { line: 1, column: 39 }
21910
}
21911
}],
21912
range: [0, 39],
21913
loc: {
21914
start: { line: 1, column: 0 },
21915
end: { line: 1, column: 39 }
21916
},
21917
errors: [{
21918
index: 25,
21919
lineNumber: 1,
21920
column: 26,
21921
message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
21922
}]
21923
},
21924
21925
'"use strict"; function f(foo, foo) {};': {
21926
type: 'Program',
21927
body: [{
21928
type: 'ExpressionStatement',
21929
expression: {
21930
type: 'Literal',
21931
value: 'use strict',
21932
raw: '"use strict"',
21933
range: [0, 12],
21934
loc: {
21935
start: { line: 1, column: 0 },
21936
end: { line: 1, column: 12 }
21937
}
21938
},
21939
range: [0, 13],
21940
loc: {
21941
start: { line: 1, column: 0 },
21942
end: { line: 1, column: 13 }
21943
}
21944
}, {
21945
type: 'FunctionDeclaration',
21946
id: {
21947
type: 'Identifier',
21948
name: 'f',
21949
range: [23, 24],
21950
loc: {
21951
start: { line: 1, column: 23 },
21952
end: { line: 1, column: 24 }
21953
}
21954
},
21955
params: [{
21956
type: 'Identifier',
21957
name: 'foo',
21958
range: [25, 28],
21959
loc: {
21960
start: { line: 1, column: 25 },
21961
end: { line: 1, column: 28 }
21962
}
21963
}, {
21964
type: 'Identifier',
21965
name: 'foo',
21966
range: [31, 34],
21967
loc: {
21968
start: { line: 1, column: 31 },
21969
end: { line: 1, column: 34 }
21970
}
21971
}],
21972
defaults: [],
21973
body: {
21974
type: 'BlockStatement',
21975
body: [],
21976
range: [36, 38],
21977
loc: {
21978
start: { line: 1, column: 36 },
21979
end: { line: 1, column: 38 }
21980
}
21981
},
21982
rest: null,
21983
generator: false,
21984
expression: false,
21985
range: [14, 38],
21986
loc: {
21987
start: { line: 1, column: 14 },
21988
end: { line: 1, column: 38 }
21989
}
21990
}, {
21991
type: 'EmptyStatement',
21992
range: [38, 39],
21993
loc: {
21994
start: { line: 1, column: 38 },
21995
end: { line: 1, column: 39 }
21996
}
21997
}],
21998
range: [0, 39],
21999
loc: {
22000
start: { line: 1, column: 0 },
22001
end: { line: 1, column: 39 }
22002
},
22003
errors: [{
22004
index: 31,
22005
lineNumber: 1,
22006
column: 32,
22007
message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
22008
}]
22009
},
22010
22011
'"use strict"; (function f(eval) {});': {
22012
type: 'Program',
22013
body: [{
22014
type: 'ExpressionStatement',
22015
expression: {
22016
type: 'Literal',
22017
value: 'use strict',
22018
raw: '"use strict"',
22019
range: [0, 12],
22020
loc: {
22021
start: { line: 1, column: 0 },
22022
end: { line: 1, column: 12 }
22023
}
22024
},
22025
range: [0, 13],
22026
loc: {
22027
start: { line: 1, column: 0 },
22028
end: { line: 1, column: 13 }
22029
}
22030
}, {
22031
type: 'ExpressionStatement',
22032
expression: {
22033
type: 'FunctionExpression',
22034
id: {
22035
type: 'Identifier',
22036
name: 'f',
22037
range: [24, 25],
22038
loc: {
22039
start: { line: 1, column: 24 },
22040
end: { line: 1, column: 25 }
22041
}
22042
},
22043
params: [{
22044
type: 'Identifier',
22045
name: 'eval',
22046
range: [26, 30],
22047
loc: {
22048
start: { line: 1, column: 26 },
22049
end: { line: 1, column: 30 }
22050
}
22051
}],
22052
defaults: [],
22053
body: {
22054
type: 'BlockStatement',
22055
body: [],
22056
range: [32, 34],
22057
loc: {
22058
start: { line: 1, column: 32 },
22059
end: { line: 1, column: 34 }
22060
}
22061
},
22062
rest: null,
22063
generator: false,
22064
expression: false,
22065
range: [15, 34],
22066
loc: {
22067
start: { line: 1, column: 15 },
22068
end: { line: 1, column: 34 }
22069
}
22070
},
22071
range: [14, 36],
22072
loc: {
22073
start: { line: 1, column: 14 },
22074
end: { line: 1, column: 36 }
22075
}
22076
}],
22077
range: [0, 36],
22078
loc: {
22079
start: { line: 1, column: 0 },
22080
end: { line: 1, column: 36 }
22081
},
22082
errors: [{
22083
index: 26,
22084
lineNumber: 1,
22085
column: 27,
22086
message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
22087
}]
22088
},
22089
22090
22091
'"use strict"; (function f(arguments) {});': {
22092
type: 'Program',
22093
body: [{
22094
type: 'ExpressionStatement',
22095
expression: {
22096
type: 'Literal',
22097
value: 'use strict',
22098
raw: '"use strict"',
22099
range: [0, 12],
22100
loc: {
22101
start: { line: 1, column: 0 },
22102
end: { line: 1, column: 12 }
22103
}
22104
},
22105
range: [0, 13],
22106
loc: {
22107
start: { line: 1, column: 0 },
22108
end: { line: 1, column: 13 }
22109
}
22110
}, {
22111
type: 'ExpressionStatement',
22112
expression: {
22113
type: 'FunctionExpression',
22114
id: {
22115
type: 'Identifier',
22116
name: 'f',
22117
range: [24, 25],
22118
loc: {
22119
start: { line: 1, column: 24 },
22120
end: { line: 1, column: 25 }
22121
}
22122
},
22123
params: [{
22124
type: 'Identifier',
22125
name: 'arguments',
22126
range: [26, 35],
22127
loc: {
22128
start: { line: 1, column: 26 },
22129
end: { line: 1, column: 35 }
22130
}
22131
}],
22132
defaults: [],
22133
body: {
22134
type: 'BlockStatement',
22135
body: [],
22136
range: [37, 39],
22137
loc: {
22138
start: { line: 1, column: 37 },
22139
end: { line: 1, column: 39 }
22140
}
22141
},
22142
rest: null,
22143
generator: false,
22144
expression: false,
22145
range: [15, 39],
22146
loc: {
22147
start: { line: 1, column: 15 },
22148
end: { line: 1, column: 39 }
22149
}
22150
},
22151
range: [14, 41],
22152
loc: {
22153
start: { line: 1, column: 14 },
22154
end: { line: 1, column: 41 }
22155
}
22156
}],
22157
range: [0, 41],
22158
loc: {
22159
start: { line: 1, column: 0 },
22160
end: { line: 1, column: 41 }
22161
},
22162
errors: [{
22163
index: 26,
22164
lineNumber: 1,
22165
column: 27,
22166
message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
22167
}]
22168
},
22169
22170
'"use strict"; (function f(foo, foo) {});': {
22171
type: 'Program',
22172
body: [{
22173
type: 'ExpressionStatement',
22174
expression: {
22175
type: 'Literal',
22176
value: 'use strict',
22177
raw: '"use strict"',
22178
range: [0, 12],
22179
loc: {
22180
start: { line: 1, column: 0 },
22181
end: { line: 1, column: 12 }
22182
}
22183
},
22184
range: [0, 13],
22185
loc: {
22186
start: { line: 1, column: 0 },
22187
end: { line: 1, column: 13 }
22188
}
22189
}, {
22190
type: 'ExpressionStatement',
22191
expression: {
22192
type: 'FunctionExpression',
22193
id: {
22194
type: 'Identifier',
22195
name: 'f',
22196
range: [24, 25],
22197
loc: {
22198
start: { line: 1, column: 24 },
22199
end: { line: 1, column: 25 }
22200
}
22201
},
22202
params: [{
22203
type: 'Identifier',
22204
name: 'foo',
22205
range: [26, 29],
22206
loc: {
22207
start: { line: 1, column: 26 },
22208
end: { line: 1, column: 29 }
22209
}
22210
}, {
22211
type: 'Identifier',
22212
name: 'foo',
22213
range: [32, 35],
22214
loc: {
22215
start: { line: 1, column: 32 },
22216
end: { line: 1, column: 35 }
22217
}
22218
}],
22219
defaults: [],
22220
body: {
22221
type: 'BlockStatement',
22222
body: [],
22223
range: [37, 39],
22224
loc: {
22225
start: { line: 1, column: 37 },
22226
end: { line: 1, column: 39 }
22227
}
22228
},
22229
rest: null,
22230
generator: false,
22231
expression: false,
22232
range: [15, 39],
22233
loc: {
22234
start: { line: 1, column: 15 },
22235
end: { line: 1, column: 39 }
22236
}
22237
},
22238
range: [14, 41],
22239
loc: {
22240
start: { line: 1, column: 14 },
22241
end: { line: 1, column: 41 }
22242
}
22243
}],
22244
range: [0, 41],
22245
loc: {
22246
start: { line: 1, column: 0 },
22247
end: { line: 1, column: 41 }
22248
},
22249
errors: [{
22250
index: 32,
22251
lineNumber: 1,
22252
column: 33,
22253
message: 'Error: Line 1: Strict mode function may not have duplicate parameter names'
22254
}]
22255
},
22256
22257
'"use strict"; x = { set f(eval) {} }' : {
22258
type: 'Program',
22259
body: [{
22260
type: 'ExpressionStatement',
22261
expression: {
22262
type: 'Literal',
22263
value: 'use strict',
22264
raw: '"use strict"',
22265
range: [0, 12],
22266
loc: {
22267
start: { line: 1, column: 0 },
22268
end: { line: 1, column: 12 }
22269
}
22270
},
22271
range: [0, 13],
22272
loc: {
22273
start: { line: 1, column: 0 },
22274
end: { line: 1, column: 13 }
22275
}
22276
}, {
22277
type: 'ExpressionStatement',
22278
expression: {
22279
type: 'AssignmentExpression',
22280
operator: '=',
22281
left: {
22282
type: 'Identifier',
22283
name: 'x',
22284
range: [14, 15],
22285
loc: {
22286
start: { line: 1, column: 14 },
22287
end: { line: 1, column: 15 }
22288
}
22289
},
22290
right: {
22291
type: 'ObjectExpression',
22292
properties: [{
22293
type: 'Property',
22294
key: {
22295
type: 'Identifier',
22296
name: 'f',
22297
range: [24, 25],
22298
loc: {
22299
start: { line: 1, column: 24 },
22300
end: { line: 1, column: 25 }
22301
}
22302
},
22303
value : {
22304
type: 'FunctionExpression',
22305
id: null,
22306
params: [{
22307
type: 'Identifier',
22308
name: 'eval',
22309
range: [26, 30],
22310
loc: {
22311
start: { line: 1, column: 26 },
22312
end: { line: 1, column: 30 }
22313
}
22314
}],
22315
defaults: [],
22316
body: {
22317
type: 'BlockStatement',
22318
body: [],
22319
range: [32, 34],
22320
loc: {
22321
start: { line: 1, column: 32 },
22322
end: { line: 1, column: 34 }
22323
}
22324
},
22325
rest: null,
22326
generator: false,
22327
expression: false,
22328
range: [32, 34],
22329
loc: {
22330
start: { line: 1, column: 32 },
22331
end: { line: 1, column: 34 }
22332
}
22333
},
22334
kind: 'set',
22335
method: false,
22336
shorthand: false,
22337
computed: false,
22338
range: [20, 34],
22339
loc: {
22340
start: { line: 1, column: 20 },
22341
end: { line: 1, column: 34 }
22342
}
22343
}],
22344
range: [18, 36],
22345
loc: {
22346
start: { line: 1, column: 18 },
22347
end: { line: 1, column: 36 }
22348
}
22349
},
22350
range: [14, 36],
22351
loc: {
22352
start: { line: 1, column: 14 },
22353
end: { line: 1, column: 36 }
22354
}
22355
},
22356
range: [14, 36],
22357
loc: {
22358
start: { line: 1, column: 14 },
22359
end: { line: 1, column: 36 }
22360
}
22361
}],
22362
range: [0, 36],
22363
loc: {
22364
start: { line: 1, column: 0 },
22365
end: { line: 1, column: 36 }
22366
},
22367
errors: [{
22368
index: 26,
22369
lineNumber: 1,
22370
column: 27,
22371
message: 'Error: Line 1: Parameter name eval or arguments is not allowed in strict mode'
22372
}]
22373
},
22374
22375
'function hello() { "octal directive\\1"; "use strict"; }': {
22376
type: 'Program',
22377
body: [{
22378
type: 'FunctionDeclaration',
22379
id: {
22380
type: 'Identifier',
22381
name: 'hello',
22382
range: [9, 14],
22383
loc: {
22384
start: { line: 1, column: 9 },
22385
end: { line: 1, column: 14 }
22386
}
22387
},
22388
params: [],
22389
defaults: [],
22390
body: {
22391
type: 'BlockStatement',
22392
body: [{
22393
type: 'ExpressionStatement',
22394
expression: {
22395
type: 'Literal',
22396
value: 'octal directive\u0001',
22397
raw: '"octal directive\\1"',
22398
range: [19, 38],
22399
loc: {
22400
start: { line: 1, column: 19 },
22401
end: { line: 1, column: 38 }
22402
}
22403
},
22404
range: [19, 39],
22405
loc: {
22406
start: { line: 1, column: 19 },
22407
end: { line: 1, column: 39 }
22408
}
22409
}, {
22410
type: 'ExpressionStatement',
22411
expression: {
22412
type: 'Literal',
22413
value: 'use strict',
22414
raw: '"use strict"',
22415
range: [40, 52],
22416
loc: {
22417
start: { line: 1, column: 40 },
22418
end: { line: 1, column: 52 }
22419
}
22420
},
22421
range: [40, 53],
22422
loc: {
22423
start: { line: 1, column: 40 },
22424
end: { line: 1, column: 53 }
22425
}
22426
}],
22427
range: [17, 55],
22428
loc: {
22429
start: { line: 1, column: 17 },
22430
end: { line: 1, column: 55 }
22431
}
22432
},
22433
rest: null,
22434
generator: false,
22435
expression: false,
22436
range: [0, 55],
22437
loc: {
22438
start: { line: 1, column: 0 },
22439
end: { line: 1, column: 55 }
22440
}
22441
}],
22442
range: [0, 55],
22443
loc: {
22444
start: { line: 1, column: 0 },
22445
end: { line: 1, column: 55 }
22446
},
22447
errors: [{
22448
index: 19,
22449
lineNumber: 1,
22450
column: 20,
22451
message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
22452
}]
22453
},
22454
22455
'"\\1"; \'use strict\';': {
22456
type: 'Program',
22457
body: [{
22458
type: 'ExpressionStatement',
22459
expression: {
22460
type: 'Literal',
22461
value: '\u0001',
22462
raw: '"\\1"',
22463
range: [0, 4],
22464
loc: {
22465
start: { line: 1, column: 0 },
22466
end: { line: 1, column: 4 }
22467
}
22468
},
22469
range: [0, 5],
22470
loc: {
22471
start: { line: 1, column: 0 },
22472
end: { line: 1, column: 5 }
22473
}
22474
}, {
22475
type: 'ExpressionStatement',
22476
expression: {
22477
type: 'Literal',
22478
value: 'use strict',
22479
raw: '\'use strict\'',
22480
range: [6, 18],
22481
loc: {
22482
start: { line: 1, column: 6 },
22483
end: { line: 1, column: 18 }
22484
}
22485
},
22486
range: [6, 19],
22487
loc: {
22488
start: { line: 1, column: 6 },
22489
end: { line: 1, column: 19 }
22490
}
22491
}],
22492
range: [0, 19],
22493
loc: {
22494
start: { line: 1, column: 0 },
22495
end: { line: 1, column: 19 }
22496
},
22497
errors: [{
22498
index: 0,
22499
lineNumber: 1,
22500
column: 1,
22501
message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
22502
}]
22503
},
22504
22505
'"use strict"; var x = { 014: 3}': {
22506
type: 'Program',
22507
body: [{
22508
type: 'ExpressionStatement',
22509
expression: {
22510
type: 'Literal',
22511
value: 'use strict',
22512
raw: '"use strict"',
22513
range: [0, 12],
22514
loc: {
22515
start: { line: 1, column: 0 },
22516
end: { line: 1, column: 12 }
22517
}
22518
},
22519
range: [0, 13],
22520
loc: {
22521
start: { line: 1, column: 0 },
22522
end: { line: 1, column: 13 }
22523
}
22524
}, {
22525
type: 'VariableDeclaration',
22526
declarations: [{
22527
type: 'VariableDeclarator',
22528
id: {
22529
type: 'Identifier',
22530
name: 'x',
22531
range: [18, 19],
22532
loc: {
22533
start: { line: 1, column: 18 },
22534
end: { line: 1, column: 19 }
22535
}
22536
},
22537
init: {
22538
type: 'ObjectExpression',
22539
properties: [{
22540
type: 'Property',
22541
key: {
22542
type: 'Literal',
22543
value: 12,
22544
raw: '014',
22545
range: [24, 27],
22546
loc: {
22547
start: { line: 1, column: 24 },
22548
end: { line: 1, column: 27 }
22549
}
22550
},
22551
value: {
22552
type: 'Literal',
22553
value: 3,
22554
raw: '3',
22555
range: [29, 30],
22556
loc: {
22557
start: { line: 1, column: 29 },
22558
end: { line: 1, column: 30 }
22559
}
22560
},
22561
kind: 'init',
22562
method: false,
22563
shorthand: false,
22564
computed: false,
22565
range: [24, 30],
22566
loc: {
22567
start: { line: 1, column: 24 },
22568
end: { line: 1, column: 30 }
22569
}
22570
}],
22571
range: [22, 31],
22572
loc: {
22573
start: { line: 1, column: 22 },
22574
end: { line: 1, column: 31 }
22575
}
22576
},
22577
range: [18, 31],
22578
loc: {
22579
start: { line: 1, column: 18 },
22580
end: { line: 1, column: 31 }
22581
}
22582
}],
22583
kind: 'var',
22584
range: [14, 31],
22585
loc: {
22586
start: { line: 1, column: 14 },
22587
end: { line: 1, column: 31 }
22588
}
22589
}],
22590
range: [0, 31],
22591
loc: {
22592
start: { line: 1, column: 0 },
22593
end: { line: 1, column: 31 }
22594
},
22595
errors: [{
22596
index: 24,
22597
lineNumber: 1,
22598
column: 25,
22599
message: 'Error: Line 1: Octal literals are not allowed in strict mode.'
22600
}]
22601
},
22602
22603
'"use strict"; var x = { get i() {}, get i() {} }': {
22604
type: 'Program',
22605
body: [{
22606
type: 'ExpressionStatement',
22607
expression: {
22608
type: 'Literal',
22609
value: 'use strict',
22610
raw: '"use strict"',
22611
range: [0, 12],
22612
loc: {
22613
start: { line: 1, column: 0 },
22614
end: { line: 1, column: 12 }
22615
}
22616
},
22617
range: [0, 13],
22618
loc: {
22619
start: { line: 1, column: 0 },
22620
end: { line: 1, column: 13 }
22621
}
22622
}, {
22623
type: 'VariableDeclaration',
22624
declarations: [{
22625
type: 'VariableDeclarator',
22626
id: {
22627
type: 'Identifier',
22628
name: 'x',
22629
range: [18, 19],
22630
loc: {
22631
start: { line: 1, column: 18 },
22632
end: { line: 1, column: 19 }
22633
}
22634
},
22635
init: {
22636
type: 'ObjectExpression',
22637
properties: [{
22638
type: 'Property',
22639
key: {
22640
type: 'Identifier',
22641
name: 'i',
22642
range: [28, 29],
22643
loc: {
22644
start: { line: 1, column: 28 },
22645
end: { line: 1, column: 29 }
22646
}
22647
},
22648
value: {
22649
type: 'FunctionExpression',
22650
id: null,
22651
params: [],
22652
defaults: [],
22653
body: {
22654
type: 'BlockStatement',
22655
body: [],
22656
range: [32, 34],
22657
loc: {
22658
start: { line: 1, column: 32 },
22659
end: { line: 1, column: 34 }
22660
}
22661
},
22662
rest: null,
22663
generator: false,
22664
expression: false,
22665
range: [32, 34],
22666
loc: {
22667
start: { line: 1, column: 32 },
22668
end: { line: 1, column: 34 }
22669
}
22670
},
22671
kind: 'get',
22672
method: false,
22673
shorthand: false,
22674
computed: false,
22675
range: [24, 34],
22676
loc: {
22677
start: { line: 1, column: 24 },
22678
end: { line: 1, column: 34 }
22679
}
22680
}, {
22681
type: 'Property',
22682
key: {
22683
type: 'Identifier',
22684
name: 'i',
22685
range: [40, 41],
22686
loc: {
22687
start: { line: 1, column: 40 },
22688
end: { line: 1, column: 41 }
22689
}
22690
},
22691
value: {
22692
type: 'FunctionExpression',
22693
id: null,
22694
params: [],
22695
defaults: [],
22696
body: {
22697
type: 'BlockStatement',
22698
body: [],
22699
range: [44, 46],
22700
loc: {
22701
start: { line: 1, column: 44 },
22702
end: { line: 1, column: 46 }
22703
}
22704
},
22705
rest: null,
22706
generator: false,
22707
expression: false,
22708
range: [44, 46],
22709
loc: {
22710
start: { line: 1, column: 44 },
22711
end: { line: 1, column: 46 }
22712
}
22713
},
22714
kind: 'get',
22715
method: false,
22716
shorthand: false,
22717
computed: false,
22718
range: [36, 46],
22719
loc: {
22720
start: { line: 1, column: 36 },
22721
end: { line: 1, column: 46 }
22722
}
22723
}],
22724
range: [22, 48],
22725
loc: {
22726
start: { line: 1, column: 22 },
22727
end: { line: 1, column: 48 }
22728
}
22729
},
22730
range: [18, 48],
22731
loc: {
22732
start: { line: 1, column: 18 },
22733
end: { line: 1, column: 48 }
22734
}
22735
}],
22736
kind: 'var',
22737
range: [14, 48],
22738
loc: {
22739
start: { line: 1, column: 14 },
22740
end: { line: 1, column: 48 }
22741
}
22742
}],
22743
range: [0, 48],
22744
loc: {
22745
start: { line: 1, column: 0 },
22746
end: { line: 1, column: 48 }
22747
},
22748
errors: [{
22749
index: 46,
22750
lineNumber: 1,
22751
column: 47,
22752
message: 'Error: Line 1: Object literal may not have multiple get/set accessors with the same name'
22753
}]
22754
},
22755
22756
'"use strict"; var x = { i: 42, get i() {} }': {
22757
type: 'Program',
22758
body: [{
22759
type: 'ExpressionStatement',
22760
expression: {
22761
type: 'Literal',
22762
value: 'use strict',
22763
raw: '"use strict"',
22764
range: [0, 12],
22765
loc: {
22766
start: { line: 1, column: 0 },
22767
end: { line: 1, column: 12 }
22768
}
22769
},
22770
range: [0, 13],
22771
loc: {
22772
start: { line: 1, column: 0 },
22773
end: { line: 1, column: 13 }
22774
}
22775
}, {
22776
type: 'VariableDeclaration',
22777
declarations: [{
22778
type: 'VariableDeclarator',
22779
id: {
22780
type: 'Identifier',
22781
name: 'x',
22782
range: [18, 19],
22783
loc: {
22784
start: { line: 1, column: 18 },
22785
end: { line: 1, column: 19 }
22786
}
22787
},
22788
init: {
22789
type: 'ObjectExpression',
22790
properties: [{
22791
type: 'Property',
22792
key: {
22793
type: 'Identifier',
22794
name: 'i',
22795
range: [24, 25],
22796
loc: {
22797
start: { line: 1, column: 24 },
22798
end: { line: 1, column: 25 }
22799
}
22800
},
22801
value: {
22802
type: 'Literal',
22803
value: 42,
22804
raw: '42',
22805
range: [27, 29],
22806
loc: {
22807
start: { line: 1, column: 27 },
22808
end: { line: 1, column: 29 }
22809
}
22810
},
22811
kind: 'init',
22812
method: false,
22813
shorthand: false,
22814
computed: false,
22815
range: [24, 29],
22816
loc: {
22817
start: { line: 1, column: 24 },
22818
end: { line: 1, column: 29 }
22819
}
22820
}, {
22821
type: 'Property',
22822
key: {
22823
type: 'Identifier',
22824
name: 'i',
22825
range: [35, 36],
22826
loc: {
22827
start: { line: 1, column: 35 },
22828
end: { line: 1, column: 36 }
22829
}
22830
},
22831
value: {
22832
type: 'FunctionExpression',
22833
id: null,
22834
params: [],
22835
defaults: [],
22836
body: {
22837
type: 'BlockStatement',
22838
body: [],
22839
range: [39, 41],
22840
loc: {
22841
start: { line: 1, column: 39 },
22842
end: { line: 1, column: 41 }
22843
}
22844
},
22845
rest: null,
22846
generator: false,
22847
expression: false,
22848
range: [39, 41],
22849
loc: {
22850
start: { line: 1, column: 39 },
22851
end: { line: 1, column: 41 }
22852
}
22853
},
22854
kind: 'get',
22855
method: false,
22856
shorthand: false,
22857
computed: false,
22858
range: [31, 41],
22859
loc: {
22860
start: { line: 1, column: 31 },
22861
end: { line: 1, column: 41 }
22862
}
22863
}],
22864
range: [22, 43],
22865
loc: {
22866
start: { line: 1, column: 22 },
22867
end: { line: 1, column: 43 }
22868
}
22869
},
22870
range: [18, 43],
22871
loc: {
22872
start: { line: 1, column: 18 },
22873
end: { line: 1, column: 43 }
22874
}
22875
}],
22876
kind: 'var',
22877
range: [14, 43],
22878
loc: {
22879
start: { line: 1, column: 14 },
22880
end: { line: 1, column: 43 }
22881
}
22882
}],
22883
range: [0, 43],
22884
loc: {
22885
start: { line: 1, column: 0 },
22886
end: { line: 1, column: 43 }
22887
},
22888
errors: [{
22889
index: 41,
22890
lineNumber: 1,
22891
column: 42,
22892
message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
22893
}]
22894
},
22895
22896
'"use strict"; var x = { set i(x) {}, i: 42 }': {
22897
type: 'Program',
22898
body: [{
22899
type: 'ExpressionStatement',
22900
expression: {
22901
type: 'Literal',
22902
value: 'use strict',
22903
raw: '"use strict"',
22904
range: [0, 12],
22905
loc: {
22906
start: { line: 1, column: 0 },
22907
end: { line: 1, column: 12 }
22908
}
22909
},
22910
range: [0, 13],
22911
loc: {
22912
start: { line: 1, column: 0 },
22913
end: { line: 1, column: 13 }
22914
}
22915
}, {
22916
type: 'VariableDeclaration',
22917
declarations: [{
22918
type: 'VariableDeclarator',
22919
id: {
22920
type: 'Identifier',
22921
name: 'x',
22922
range: [18, 19],
22923
loc: {
22924
start: { line: 1, column: 18 },
22925
end: { line: 1, column: 19 }
22926
}
22927
},
22928
init: {
22929
type: 'ObjectExpression',
22930
properties: [{
22931
type: 'Property',
22932
key: {
22933
type: 'Identifier',
22934
name: 'i',
22935
range: [28, 29],
22936
loc: {
22937
start: { line: 1, column: 28 },
22938
end: { line: 1, column: 29 }
22939
}
22940
},
22941
value: {
22942
type: 'FunctionExpression',
22943
id: null,
22944
params: [{
22945
type: 'Identifier',
22946
name: 'x',
22947
range: [30, 31],
22948
loc: {
22949
start: { line: 1, column: 30 },
22950
end: { line: 1, column: 31 }
22951
}
22952
}],
22953
defaults: [],
22954
body: {
22955
type: 'BlockStatement',
22956
body: [],
22957
range: [33, 35],
22958
loc: {
22959
start: { line: 1, column: 33 },
22960
end: { line: 1, column: 35 }
22961
}
22962
},
22963
rest: null,
22964
generator: false,
22965
expression: false,
22966
range: [33, 35],
22967
loc: {
22968
start: { line: 1, column: 33 },
22969
end: { line: 1, column: 35 }
22970
}
22971
},
22972
kind: 'set',
22973
method: false,
22974
shorthand: false,
22975
computed: false,
22976
range: [24, 35],
22977
loc: {
22978
start: { line: 1, column: 24 },
22979
end: { line: 1, column: 35 }
22980
}
22981
}, {
22982
type: 'Property',
22983
key: {
22984
type: 'Identifier',
22985
name: 'i',
22986
range: [37, 38],
22987
loc: {
22988
start: { line: 1, column: 37 },
22989
end: { line: 1, column: 38 }
22990
}
22991
},
22992
value: {
22993
type: 'Literal',
22994
value: 42,
22995
raw: '42',
22996
range: [40, 42],
22997
loc: {
22998
start: { line: 1, column: 40 },
22999
end: { line: 1, column: 42 }
23000
}
23001
},
23002
kind: 'init',
23003
method: false,
23004
shorthand: false,
23005
computed: false,
23006
range: [37, 42],
23007
loc: {
23008
start: { line: 1, column: 37 },
23009
end: { line: 1, column: 42 }
23010
}
23011
}],
23012
range: [22, 44],
23013
loc: {
23014
start: { line: 1, column: 22 },
23015
end: { line: 1, column: 44 }
23016
}
23017
},
23018
range: [18, 44],
23019
loc: {
23020
start: { line: 1, column: 18 },
23021
end: { line: 1, column: 44 }
23022
}
23023
}],
23024
kind: 'var',
23025
range: [14, 44],
23026
loc: {
23027
start: { line: 1, column: 14 },
23028
end: { line: 1, column: 44 }
23029
}
23030
}],
23031
range: [0, 44],
23032
loc: {
23033
start: { line: 1, column: 0 },
23034
end: { line: 1, column: 44 }
23035
},
23036
errors: [{
23037
index: 42,
23038
lineNumber: 1,
23039
column: 43,
23040
message: 'Error: Line 1: Object literal may not have data and accessor property with the same name'
23041
}]
23042
23043
},
23044
23045
'var x = /[P QR]/\\\\u0067': {
23046
type: "Program",
23047
body: [{
23048
type: "VariableDeclaration",
23049
declarations: [{
23050
type: "VariableDeclarator",
23051
id: {
23052
type: "Identifier",
23053
name: "x",
23054
range: [4, 5],
23055
loc: {
23056
start: { line: 1, column: 4 },
23057
end: { line: 1, column: 5 }
23058
}
23059
},
23060
init: {
23061
type: "Literal",
23062
value: "/[P QR]/g",
23063
raw: "/[P QR]/\\\\u0067",
23064
regex: {
23065
pattern: '[P QR]',
23066
flags: 'g'
23067
},
23068
range: [8, 23],
23069
loc: {
23070
start: { line: 1, column: 8 },
23071
end: { line: 1, column: 23 }
23072
}
23073
},
23074
range: [4, 23],
23075
loc: {
23076
start: { line: 1, column: 4 },
23077
end: { line: 1, column: 23 }
23078
}
23079
}],
23080
kind: "var",
23081
range: [0, 23],
23082
loc: {
23083
start: { line: 1, column: 0 },
23084
end: { line: 1, column: 23 }
23085
}
23086
}],
23087
range: [0, 23],
23088
loc: {
23089
start: { line: 1, column: 0 },
23090
end: { line: 1, column: 23 }
23091
},
23092
errors: [{
23093
index: 23,
23094
lineNumber: 1,
23095
column: 24,
23096
message: "Error: Line 1: Unexpected token ILLEGAL"
23097
}]
23098
}
23099
23100
23101
},
23102
};
23103
23104