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": "ETSTypeReference",
96                              "part": {
97                                "type": "ETSTypeReferencePart",
98                                "name": {
99                                  "type": "Identifier",
100                                  "name": "Int",
101                                  "decorators": [],
102                                  "loc": {
103                                    "start": {
104                                      "line": 18,
105                                      "column": 16
106                                    },
107                                    "end": {
108                                      "line": 18,
109                                      "column": 19
110                                    }
111                                  }
112                                },
113                                "loc": {
114                                  "start": {
115                                    "line": 18,
116                                    "column": 16
117                                  },
118                                  "end": {
119                                    "line": 18,
120                                    "column": 21
121                                  }
122                                }
123                              },
124                              "loc": {
125                                "start": {
126                                  "line": 18,
127                                  "column": 16
128                                },
129                                "end": {
130                                  "line": 18,
131                                  "column": 21
132                                }
133                              }
134                            },
135                            "decorators": [],
136                            "loc": {
137                              "start": {
138                                "line": 18,
139                                "column": 13
140                              },
141                              "end": {
142                                "line": 18,
143                                "column": 14
144                              }
145                            }
146                          },
147                          "init": {
148                            "type": "NumberLiteral",
149                            "value": 200000,
150                            "loc": {
151                              "start": {
152                                "line": 18,
153                                "column": 22
154                              },
155                              "end": {
156                                "line": 18,
157                                "column": 28
158                              }
159                            }
160                          },
161                          "loc": {
162                            "start": {
163                              "line": 18,
164                              "column": 13
165                            },
166                            "end": {
167                              "line": 18,
168                              "column": 28
169                            }
170                          }
171                        }
172                      ],
173                      "kind": "let",
174                      "loc": {
175                        "start": {
176                          "line": 18,
177                          "column": 9
178                        },
179                        "end": {
180                          "line": 18,
181                          "column": 29
182                        }
183                      }
184                    },
185                    {
186                      "type": "VariableDeclaration",
187                      "declarations": [
188                        {
189                          "type": "VariableDeclarator",
190                          "id": {
191                            "type": "Identifier",
192                            "name": "b",
193                            "typeAnnotation": {
194                              "type": "ETSPrimitiveType",
195                              "loc": {
196                                "start": {
197                                  "line": 19,
198                                  "column": 18
199                                },
200                                "end": {
201                                  "line": 19,
202                                  "column": 22
203                                }
204                              }
205                            },
206                            "decorators": [],
207                            "loc": {
208                              "start": {
209                                "line": 19,
210                                "column": 15
211                              },
212                              "end": {
213                                "line": 19,
214                                "column": 16
215                              }
216                            }
217                          },
218                          "init": {
219                            "type": "NumberLiteral",
220                            "value": 20,
221                            "loc": {
222                              "start": {
223                                "line": 19,
224                                "column": 25
225                              },
226                              "end": {
227                                "line": 19,
228                                "column": 27
229                              }
230                            }
231                          },
232                          "loc": {
233                            "start": {
234                              "line": 19,
235                              "column": 15
236                            },
237                            "end": {
238                              "line": 19,
239                              "column": 27
240                            }
241                          }
242                        }
243                      ],
244                      "kind": "const",
245                      "loc": {
246                        "start": {
247                          "line": 19,
248                          "column": 9
249                        },
250                        "end": {
251                          "line": 19,
252                          "column": 28
253                        }
254                      }
255                    },
256                    {
257                      "type": "SwitchStatement",
258                      "discriminant": {
259                        "type": "Identifier",
260                        "name": "a",
261                        "decorators": [],
262                        "loc": {
263                          "start": {
264                            "line": 20,
265                            "column": 16
266                          },
267                          "end": {
268                            "line": 20,
269                            "column": 17
270                          }
271                        }
272                      },
273                      "cases": [
274                        {
275                          "type": "SwitchCase",
276                          "test": {
277                            "type": "Identifier",
278                            "name": "b",
279                            "decorators": [],
280                            "loc": {
281                              "start": {
282                                "line": 21,
283                                "column": 18
284                              },
285                              "end": {
286                                "line": 21,
287                                "column": 19
288                              }
289                            }
290                          },
291                          "consequent": [
292                            {
293                              "type": "BreakStatement",
294                              "label": null,
295                              "loc": {
296                                "start": {
297                                  "line": 22,
298                                  "column": 17
299                                },
300                                "end": {
301                                  "line": 22,
302                                  "column": 23
303                                }
304                              }
305                            }
306                          ],
307                          "loc": {
308                            "start": {
309                              "line": 21,
310                              "column": 13
311                            },
312                            "end": {
313                              "line": 22,
314                              "column": 23
315                            }
316                          }
317                        },
318                        {
319                          "type": "SwitchCase",
320                          "test": {
321                            "type": "CharLiteral",
322                            "value": "k",
323                            "loc": {
324                              "start": {
325                                "line": 23,
326                                "column": 18
327                              },
328                              "end": {
329                                "line": 23,
330                                "column": 22
331                              }
332                            }
333                          },
334                          "consequent": [],
335                          "loc": {
336                            "start": {
337                              "line": 23,
338                              "column": 13
339                            },
340                            "end": {
341                              "line": 23,
342                              "column": 23
343                            }
344                          }
345                        }
346                      ],
347                      "loc": {
348                        "start": {
349                          "line": 20,
350                          "column": 9
351                        },
352                        "end": {
353                          "line": 24,
354                          "column": 10
355                        }
356                      }
357                    }
358                  ],
359                  "loc": {
360                    "start": {
361                      "line": 17,
362                      "column": 16
363                    },
364                    "end": {
365                      "line": 25,
366                      "column": 6
367                    }
368                  }
369                },
370                "loc": {
371                  "start": {
372                    "line": 17,
373                    "column": 8
374                  },
375                  "end": {
376                    "line": 25,
377                    "column": 6
378                  }
379                }
380              },
381              "loc": {
382                "start": {
383                  "line": 17,
384                  "column": 8
385                },
386                "end": {
387                  "line": 25,
388                  "column": 6
389                }
390              }
391            },
392            "overloads": [],
393            "decorators": [],
394            "loc": {
395              "start": {
396                "line": 17,
397                "column": 5
398              },
399              "end": {
400                "line": 25,
401                "column": 6
402              }
403            }
404          },
405          {
406            "type": "MethodDefinition",
407            "key": {
408              "type": "Identifier",
409              "name": "constructor",
410              "decorators": [],
411              "loc": {
412                "start": {
413                  "line": 1,
414                  "column": 1
415                },
416                "end": {
417                  "line": 1,
418                  "column": 1
419                }
420              }
421            },
422            "kind": "constructor",
423            "static": false,
424            "optional": false,
425            "computed": false,
426            "value": {
427              "type": "FunctionExpression",
428              "function": {
429                "type": "ScriptFunction",
430                "id": {
431                  "type": "Identifier",
432                  "name": "constructor",
433                  "decorators": [],
434                  "loc": {
435                    "start": {
436                      "line": 1,
437                      "column": 1
438                    },
439                    "end": {
440                      "line": 1,
441                      "column": 1
442                    }
443                  }
444                },
445                "generator": false,
446                "async": false,
447                "expression": false,
448                "params": [],
449                "body": {
450                  "type": "BlockStatement",
451                  "statements": [],
452                  "loc": {
453                    "start": {
454                      "line": 1,
455                      "column": 1
456                    },
457                    "end": {
458                      "line": 1,
459                      "column": 1
460                    }
461                  }
462                },
463                "loc": {
464                  "start": {
465                    "line": 1,
466                    "column": 1
467                  },
468                  "end": {
469                    "line": 1,
470                    "column": 1
471                  }
472                }
473              },
474              "loc": {
475                "start": {
476                  "line": 1,
477                  "column": 1
478                },
479                "end": {
480                  "line": 1,
481                  "column": 1
482                }
483              }
484            },
485            "overloads": [],
486            "decorators": [],
487            "loc": {
488              "start": {
489                "line": 26,
490                "column": 2
491              },
492              "end": {
493                "line": 26,
494                "column": 2
495              }
496            }
497          }
498        ],
499        "loc": {
500          "start": {
501            "line": 16,
502            "column": 9
503          },
504          "end": {
505            "line": 26,
506            "column": 2
507          }
508        }
509      },
510      "loc": {
511        "start": {
512          "line": 16,
513          "column": 1
514        },
515        "end": {
516          "line": 26,
517          "column": 2
518        }
519      }
520    },
521    {
522      "type": "ClassDeclaration",
523      "definition": {
524        "id": {
525          "type": "Identifier",
526          "name": "ETSGLOBAL",
527          "decorators": [],
528          "loc": {
529            "start": {
530              "line": 1,
531              "column": 1
532            },
533            "end": {
534              "line": 1,
535              "column": 1
536            }
537          }
538        },
539        "superClass": null,
540        "implements": [],
541        "body": [
542          {
543            "type": "MethodDefinition",
544            "key": {
545              "type": "Identifier",
546              "name": "_$init$_",
547              "decorators": [],
548              "loc": {
549                "start": {
550                  "line": 1,
551                  "column": 1
552                },
553                "end": {
554                  "line": 1,
555                  "column": 1
556                }
557              }
558            },
559            "kind": "method",
560            "accessibility": "public",
561            "static": true,
562            "optional": false,
563            "computed": false,
564            "value": {
565              "type": "FunctionExpression",
566              "function": {
567                "type": "ScriptFunction",
568                "id": {
569                  "type": "Identifier",
570                  "name": "_$init$_",
571                  "decorators": [],
572                  "loc": {
573                    "start": {
574                      "line": 1,
575                      "column": 1
576                    },
577                    "end": {
578                      "line": 1,
579                      "column": 1
580                    }
581                  }
582                },
583                "generator": false,
584                "async": false,
585                "expression": false,
586                "params": [],
587                "body": {
588                  "type": "BlockStatement",
589                  "statements": [],
590                  "loc": {
591                    "start": {
592                      "line": 1,
593                      "column": 1
594                    },
595                    "end": {
596                      "line": 1,
597                      "column": 1
598                    }
599                  }
600                },
601                "loc": {
602                  "start": {
603                    "line": 1,
604                    "column": 1
605                  },
606                  "end": {
607                    "line": 1,
608                    "column": 1
609                  }
610                }
611              },
612              "loc": {
613                "start": {
614                  "line": 1,
615                  "column": 1
616                },
617                "end": {
618                  "line": 1,
619                  "column": 1
620                }
621              }
622            },
623            "overloads": [],
624            "decorators": [],
625            "loc": {
626              "start": {
627                "line": 1,
628                "column": 1
629              },
630              "end": {
631                "line": 1,
632                "column": 1
633              }
634            }
635          }
636        ],
637        "loc": {
638          "start": {
639            "line": 1,
640            "column": 1
641          },
642          "end": {
643            "line": 1,
644            "column": 1
645          }
646        }
647      },
648      "loc": {
649        "start": {
650          "line": 1,
651          "column": 1
652        },
653        "end": {
654          "line": 1,
655          "column": 1
656        }
657      }
658    }
659  ],
660  "loc": {
661    "start": {
662      "line": 1,
663      "column": 1
664    },
665    "end": {
666      "line": 27,
667      "column": 1
668    }
669  }
670}
671