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