1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "ClassDeclaration",
6      "definition": {
7        "id": {
8          "type": "Identifier",
9          "name": "A",
10          "decorators": [],
11          "loc": {
12            "start": {
13              "line": 16,
14              "column": 7
15            },
16            "end": {
17              "line": 16,
18              "column": 8
19            }
20          }
21        },
22        "superClass": null,
23        "implements": [],
24        "body": [
25          {
26            "type": "MethodDefinition",
27            "key": {
28              "type": "Identifier",
29              "name": "foo",
30              "decorators": [],
31              "loc": {
32                "start": {
33                  "line": 17,
34                  "column": 5
35                },
36                "end": {
37                  "line": 17,
38                  "column": 8
39                }
40              }
41            },
42            "kind": "method",
43            "accessibility": "public",
44            "static": false,
45            "optional": false,
46            "computed": false,
47            "value": {
48              "type": "FunctionExpression",
49              "function": {
50                "type": "ScriptFunction",
51                "id": {
52                  "type": "Identifier",
53                  "name": "foo",
54                  "decorators": [],
55                  "loc": {
56                    "start": {
57                      "line": 17,
58                      "column": 5
59                    },
60                    "end": {
61                      "line": 17,
62                      "column": 8
63                    }
64                  }
65                },
66                "generator": false,
67                "async": false,
68                "expression": false,
69                "params": [],
70                "returnType": {
71                  "type": "ETSPrimitiveType",
72                  "loc": {
73                    "start": {
74                      "line": 17,
75                      "column": 12
76                    },
77                    "end": {
78                      "line": 17,
79                      "column": 16
80                    }
81                  }
82                },
83                "body": {
84                  "type": "BlockStatement",
85                  "statements": [
86                    {
87                      "type": "VariableDeclaration",
88                      "declarations": [
89                        {
90                          "type": "VariableDeclarator",
91                          "id": {
92                            "type": "Identifier",
93                            "name": "a",
94                            "typeAnnotation": {
95                              "type": "ETSPrimitiveType",
96                              "loc": {
97                                "start": {
98                                  "line": 18,
99                                  "column": 16
100                                },
101                                "end": {
102                                  "line": 18,
103                                  "column": 20
104                                }
105                              }
106                            },
107                            "decorators": [],
108                            "loc": {
109                              "start": {
110                                "line": 18,
111                                "column": 13
112                              },
113                              "end": {
114                                "line": 18,
115                                "column": 14
116                              }
117                            }
118                          },
119                          "init": {
120                            "type": "NumberLiteral",
121                            "value": 60000000000,
122                            "loc": {
123                              "start": {
124                                "line": 18,
125                                "column": 23
126                              },
127                              "end": {
128                                "line": 18,
129                                "column": 34
130                              }
131                            }
132                          },
133                          "loc": {
134                            "start": {
135                              "line": 18,
136                              "column": 13
137                            },
138                            "end": {
139                              "line": 18,
140                              "column": 34
141                            }
142                          }
143                        }
144                      ],
145                      "kind": "let",
146                      "loc": {
147                        "start": {
148                          "line": 18,
149                          "column": 9
150                        },
151                        "end": {
152                          "line": 18,
153                          "column": 35
154                        }
155                      }
156                    },
157                    {
158                      "type": "SwitchStatement",
159                      "discriminant": {
160                        "type": "Identifier",
161                        "name": "a",
162                        "decorators": [],
163                        "loc": {
164                          "start": {
165                            "line": 19,
166                            "column": 16
167                          },
168                          "end": {
169                            "line": 19,
170                            "column": 17
171                          }
172                        }
173                      },
174                      "cases": [
175                        {
176                          "type": "SwitchCase",
177                          "test": {
178                            "type": "NumberLiteral",
179                            "value": 2,
180                            "loc": {
181                              "start": {
182                                "line": 20,
183                                "column": 18
184                              },
185                              "end": {
186                                "line": 20,
187                                "column": 19
188                              }
189                            }
190                          },
191                          "consequent": [
192                            {
193                              "type": "BreakStatement",
194                              "label": null,
195                              "loc": {
196                                "start": {
197                                  "line": 21,
198                                  "column": 17
199                                },
200                                "end": {
201                                  "line": 21,
202                                  "column": 23
203                                }
204                              }
205                            }
206                          ],
207                          "loc": {
208                            "start": {
209                              "line": 20,
210                              "column": 13
211                            },
212                            "end": {
213                              "line": 21,
214                              "column": 23
215                            }
216                          }
217                        },
218                        {
219                          "type": "SwitchCase",
220                          "test": {
221                            "type": "NumberLiteral",
222                            "value": 200,
223                            "loc": {
224                              "start": {
225                                "line": 22,
226                                "column": 18
227                              },
228                              "end": {
229                                "line": 22,
230                                "column": 21
231                              }
232                            }
233                          },
234                          "consequent": [
235                            {
236                              "type": "BreakStatement",
237                              "label": null,
238                              "loc": {
239                                "start": {
240                                  "line": 23,
241                                  "column": 17
242                                },
243                                "end": {
244                                  "line": 23,
245                                  "column": 23
246                                }
247                              }
248                            }
249                          ],
250                          "loc": {
251                            "start": {
252                              "line": 22,
253                              "column": 13
254                            },
255                            "end": {
256                              "line": 23,
257                              "column": 23
258                            }
259                          }
260                        },
261                        {
262                          "type": "SwitchCase",
263                          "test": {
264                            "type": "NumberLiteral",
265                            "value": 200000,
266                            "loc": {
267                              "start": {
268                                "line": 24,
269                                "column": 18
270                              },
271                              "end": {
272                                "line": 24,
273                                "column": 24
274                              }
275                            }
276                          },
277                          "consequent": [
278                            {
279                              "type": "BreakStatement",
280                              "label": null,
281                              "loc": {
282                                "start": {
283                                  "line": 25,
284                                  "column": 17
285                                },
286                                "end": {
287                                  "line": 25,
288                                  "column": 23
289                                }
290                              }
291                            }
292                          ],
293                          "loc": {
294                            "start": {
295                              "line": 24,
296                              "column": 13
297                            },
298                            "end": {
299                              "line": 25,
300                              "column": 23
301                            }
302                          }
303                        },
304                        {
305                          "type": "SwitchCase",
306                          "test": {
307                            "type": "NumberLiteral",
308                            "value": 200000000000,
309                            "loc": {
310                              "start": {
311                                "line": 26,
312                                "column": 18
313                              },
314                              "end": {
315                                "line": 26,
316                                "column": 30
317                              }
318                            }
319                          },
320                          "consequent": [
321                            {
322                              "type": "BreakStatement",
323                              "label": null,
324                              "loc": {
325                                "start": {
326                                  "line": 27,
327                                  "column": 17
328                                },
329                                "end": {
330                                  "line": 27,
331                                  "column": 23
332                                }
333                              }
334                            }
335                          ],
336                          "loc": {
337                            "start": {
338                              "line": 26,
339                              "column": 13
340                            },
341                            "end": {
342                              "line": 27,
343                              "column": 23
344                            }
345                          }
346                        },
347                        {
348                          "type": "SwitchCase",
349                          "test": {
350                            "type": "CharLiteral",
351                            "value": "l",
352                            "loc": {
353                              "start": {
354                                "line": 28,
355                                "column": 18
356                              },
357                              "end": {
358                                "line": 28,
359                                "column": 22
360                              }
361                            }
362                          },
363                          "consequent": [
364                            {
365                              "type": "BreakStatement",
366                              "label": null,
367                              "loc": {
368                                "start": {
369                                  "line": 29,
370                                  "column": 17
371                                },
372                                "end": {
373                                  "line": 29,
374                                  "column": 23
375                                }
376                              }
377                            }
378                          ],
379                          "loc": {
380                            "start": {
381                              "line": 28,
382                              "column": 13
383                            },
384                            "end": {
385                              "line": 29,
386                              "column": 23
387                            }
388                          }
389                        }
390                      ],
391                      "loc": {
392                        "start": {
393                          "line": 19,
394                          "column": 9
395                        },
396                        "end": {
397                          "line": 30,
398                          "column": 10
399                        }
400                      }
401                    },
402                    {
403                      "type": "VariableDeclaration",
404                      "declarations": [
405                        {
406                          "type": "VariableDeclarator",
407                          "id": {
408                            "type": "Identifier",
409                            "name": "b",
410                            "typeAnnotation": {
411                              "type": "ETSTypeReference",
412                              "part": {
413                                "type": "ETSTypeReferencePart",
414                                "name": {
415                                  "type": "Identifier",
416                                  "name": "Int",
417                                  "decorators": [],
418                                  "loc": {
419                                    "start": {
420                                      "line": 32,
421                                      "column": 16
422                                    },
423                                    "end": {
424                                      "line": 32,
425                                      "column": 19
426                                    }
427                                  }
428                                },
429                                "loc": {
430                                  "start": {
431                                    "line": 32,
432                                    "column": 16
433                                  },
434                                  "end": {
435                                    "line": 32,
436                                    "column": 21
437                                  }
438                                }
439                              },
440                              "loc": {
441                                "start": {
442                                  "line": 32,
443                                  "column": 16
444                                },
445                                "end": {
446                                  "line": 32,
447                                  "column": 21
448                                }
449                              }
450                            },
451                            "decorators": [],
452                            "loc": {
453                              "start": {
454                                "line": 32,
455                                "column": 13
456                              },
457                              "end": {
458                                "line": 32,
459                                "column": 14
460                              }
461                            }
462                          },
463                          "init": {
464                            "type": "NumberLiteral",
465                            "value": 200000,
466                            "loc": {
467                              "start": {
468                                "line": 32,
469                                "column": 22
470                              },
471                              "end": {
472                                "line": 32,
473                                "column": 28
474                              }
475                            }
476                          },
477                          "loc": {
478                            "start": {
479                              "line": 32,
480                              "column": 13
481                            },
482                            "end": {
483                              "line": 32,
484                              "column": 28
485                            }
486                          }
487                        }
488                      ],
489                      "kind": "let",
490                      "loc": {
491                        "start": {
492                          "line": 32,
493                          "column": 9
494                        },
495                        "end": {
496                          "line": 32,
497                          "column": 29
498                        }
499                      }
500                    },
501                    {
502                      "type": "VariableDeclaration",
503                      "declarations": [
504                        {
505                          "type": "VariableDeclarator",
506                          "id": {
507                            "type": "Identifier",
508                            "name": "c",
509                            "typeAnnotation": {
510                              "type": "ETSPrimitiveType",
511                              "loc": {
512                                "start": {
513                                  "line": 33,
514                                  "column": 18
515                                },
516                                "end": {
517                                  "line": 33,
518                                  "column": 21
519                                }
520                              }
521                            },
522                            "decorators": [],
523                            "loc": {
524                              "start": {
525                                "line": 33,
526                                "column": 15
527                              },
528                              "end": {
529                                "line": 33,
530                                "column": 16
531                              }
532                            }
533                          },
534                          "init": {
535                            "type": "NumberLiteral",
536                            "value": 210000,
537                            "loc": {
538                              "start": {
539                                "line": 33,
540                                "column": 24
541                              },
542                              "end": {
543                                "line": 33,
544                                "column": 30
545                              }
546                            }
547                          },
548                          "loc": {
549                            "start": {
550                              "line": 33,
551                              "column": 15
552                            },
553                            "end": {
554                              "line": 33,
555                              "column": 30
556                            }
557                          }
558                        }
559                      ],
560                      "kind": "const",
561                      "loc": {
562                        "start": {
563                          "line": 33,
564                          "column": 9
565                        },
566                        "end": {
567                          "line": 33,
568                          "column": 31
569                        }
570                      }
571                    },
572                    {
573                      "type": "SwitchStatement",
574                      "discriminant": {
575                        "type": "Identifier",
576                        "name": "b",
577                        "decorators": [],
578                        "loc": {
579                          "start": {
580                            "line": 34,
581                            "column": 16
582                          },
583                          "end": {
584                            "line": 34,
585                            "column": 17
586                          }
587                        }
588                      },
589                      "cases": [
590                        {
591                          "type": "SwitchCase",
592                          "test": {
593                            "type": "NumberLiteral",
594                            "value": 300000,
595                            "loc": {
596                              "start": {
597                                "line": 35,
598                                "column": 18
599                              },
600                              "end": {
601                                "line": 35,
602                                "column": 24
603                              }
604                            }
605                          },
606                          "consequent": [
607                            {
608                              "type": "BreakStatement",
609                              "label": null,
610                              "loc": {
611                                "start": {
612                                  "line": 36,
613                                  "column": 17
614                                },
615                                "end": {
616                                  "line": 36,
617                                  "column": 23
618                                }
619                              }
620                            }
621                          ],
622                          "loc": {
623                            "start": {
624                              "line": 35,
625                              "column": 13
626                            },
627                            "end": {
628                              "line": 36,
629                              "column": 23
630                            }
631                          }
632                        },
633                        {
634                          "type": "SwitchCase",
635                          "test": {
636                            "type": "Identifier",
637                            "name": "c",
638                            "decorators": [],
639                            "loc": {
640                              "start": {
641                                "line": 37,
642                                "column": 18
643                              },
644                              "end": {
645                                "line": 37,
646                                "column": 19
647                              }
648                            }
649                          },
650                          "consequent": [
651                            {
652                              "type": "BreakStatement",
653                              "label": null,
654                              "loc": {
655                                "start": {
656                                  "line": 38,
657                                  "column": 17
658                                },
659                                "end": {
660                                  "line": 38,
661                                  "column": 23
662                                }
663                              }
664                            }
665                          ],
666                          "loc": {
667                            "start": {
668                              "line": 37,
669                              "column": 13
670                            },
671                            "end": {
672                              "line": 38,
673                              "column": 23
674                            }
675                          }
676                        }
677                      ],
678                      "loc": {
679                        "start": {
680                          "line": 34,
681                          "column": 9
682                        },
683                        "end": {
684                          "line": 39,
685                          "column": 10
686                        }
687                      }
688                    }
689                  ],
690                  "loc": {
691                    "start": {
692                      "line": 17,
693                      "column": 16
694                    },
695                    "end": {
696                      "line": 40,
697                      "column": 6
698                    }
699                  }
700                },
701                "loc": {
702                  "start": {
703                    "line": 17,
704                    "column": 8
705                  },
706                  "end": {
707                    "line": 40,
708                    "column": 6
709                  }
710                }
711              },
712              "loc": {
713                "start": {
714                  "line": 17,
715                  "column": 8
716                },
717                "end": {
718                  "line": 40,
719                  "column": 6
720                }
721              }
722            },
723            "overloads": [],
724            "decorators": [],
725            "loc": {
726              "start": {
727                "line": 17,
728                "column": 5
729              },
730              "end": {
731                "line": 40,
732                "column": 6
733              }
734            }
735          },
736          {
737            "type": "MethodDefinition",
738            "key": {
739              "type": "Identifier",
740              "name": "constructor",
741              "decorators": [],
742              "loc": {
743                "start": {
744                  "line": 1,
745                  "column": 1
746                },
747                "end": {
748                  "line": 1,
749                  "column": 1
750                }
751              }
752            },
753            "kind": "constructor",
754            "static": false,
755            "optional": false,
756            "computed": false,
757            "value": {
758              "type": "FunctionExpression",
759              "function": {
760                "type": "ScriptFunction",
761                "id": {
762                  "type": "Identifier",
763                  "name": "constructor",
764                  "decorators": [],
765                  "loc": {
766                    "start": {
767                      "line": 1,
768                      "column": 1
769                    },
770                    "end": {
771                      "line": 1,
772                      "column": 1
773                    }
774                  }
775                },
776                "generator": false,
777                "async": false,
778                "expression": false,
779                "params": [],
780                "body": {
781                  "type": "BlockStatement",
782                  "statements": [],
783                  "loc": {
784                    "start": {
785                      "line": 1,
786                      "column": 1
787                    },
788                    "end": {
789                      "line": 1,
790                      "column": 1
791                    }
792                  }
793                },
794                "loc": {
795                  "start": {
796                    "line": 1,
797                    "column": 1
798                  },
799                  "end": {
800                    "line": 1,
801                    "column": 1
802                  }
803                }
804              },
805              "loc": {
806                "start": {
807                  "line": 1,
808                  "column": 1
809                },
810                "end": {
811                  "line": 1,
812                  "column": 1
813                }
814              }
815            },
816            "overloads": [],
817            "decorators": [],
818            "loc": {
819              "start": {
820                "line": 41,
821                "column": 2
822              },
823              "end": {
824                "line": 41,
825                "column": 2
826              }
827            }
828          }
829        ],
830        "loc": {
831          "start": {
832            "line": 16,
833            "column": 9
834          },
835          "end": {
836            "line": 41,
837            "column": 2
838          }
839        }
840      },
841      "loc": {
842        "start": {
843          "line": 16,
844          "column": 1
845        },
846        "end": {
847          "line": 41,
848          "column": 2
849        }
850      }
851    },
852    {
853      "type": "ClassDeclaration",
854      "definition": {
855        "id": {
856          "type": "Identifier",
857          "name": "ETSGLOBAL",
858          "decorators": [],
859          "loc": {
860            "start": {
861              "line": 1,
862              "column": 1
863            },
864            "end": {
865              "line": 1,
866              "column": 1
867            }
868          }
869        },
870        "superClass": null,
871        "implements": [],
872        "body": [
873          {
874            "type": "MethodDefinition",
875            "key": {
876              "type": "Identifier",
877              "name": "_$init$_",
878              "decorators": [],
879              "loc": {
880                "start": {
881                  "line": 1,
882                  "column": 1
883                },
884                "end": {
885                  "line": 1,
886                  "column": 1
887                }
888              }
889            },
890            "kind": "method",
891            "accessibility": "public",
892            "static": true,
893            "optional": false,
894            "computed": false,
895            "value": {
896              "type": "FunctionExpression",
897              "function": {
898                "type": "ScriptFunction",
899                "id": {
900                  "type": "Identifier",
901                  "name": "_$init$_",
902                  "decorators": [],
903                  "loc": {
904                    "start": {
905                      "line": 1,
906                      "column": 1
907                    },
908                    "end": {
909                      "line": 1,
910                      "column": 1
911                    }
912                  }
913                },
914                "generator": false,
915                "async": false,
916                "expression": false,
917                "params": [],
918                "body": {
919                  "type": "BlockStatement",
920                  "statements": [],
921                  "loc": {
922                    "start": {
923                      "line": 1,
924                      "column": 1
925                    },
926                    "end": {
927                      "line": 1,
928                      "column": 1
929                    }
930                  }
931                },
932                "loc": {
933                  "start": {
934                    "line": 1,
935                    "column": 1
936                  },
937                  "end": {
938                    "line": 1,
939                    "column": 1
940                  }
941                }
942              },
943              "loc": {
944                "start": {
945                  "line": 1,
946                  "column": 1
947                },
948                "end": {
949                  "line": 1,
950                  "column": 1
951                }
952              }
953            },
954            "overloads": [],
955            "decorators": [],
956            "loc": {
957              "start": {
958                "line": 1,
959                "column": 1
960              },
961              "end": {
962                "line": 1,
963                "column": 1
964              }
965            }
966          }
967        ],
968        "loc": {
969          "start": {
970            "line": 1,
971            "column": 1
972          },
973          "end": {
974            "line": 1,
975            "column": 1
976          }
977        }
978      },
979      "loc": {
980        "start": {
981          "line": 1,
982          "column": 1
983        },
984        "end": {
985          "line": 1,
986          "column": 1
987        }
988      }
989    }
990  ],
991  "loc": {
992    "start": {
993      "line": 1,
994      "column": 1
995    },
996    "end": {
997      "line": 42,
998      "column": 1
999    }
1000  }
1001}
1002