1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "ClassDeclaration",
6      "definition": {
7        "id": {
8          "type": "Identifier",
9          "name": "Class1",
10          "decorators": [],
11          "loc": {
12            "start": {
13              "line": 16,
14              "column": 7
15            },
16            "end": {
17              "line": 16,
18              "column": 13
19            }
20          }
21        },
22        "typeParameters": {
23          "type": "TSTypeParameterDeclaration",
24          "params": [
25            {
26              "type": "TSTypeParameter",
27              "name": {
28                "type": "Identifier",
29                "name": "T",
30                "decorators": [],
31                "loc": {
32                  "start": {
33                    "line": 16,
34                    "column": 14
35                  },
36                  "end": {
37                    "line": 16,
38                    "column": 15
39                  }
40                }
41              },
42              "loc": {
43                "start": {
44                  "line": 16,
45                  "column": 14
46                },
47                "end": {
48                  "line": 16,
49                  "column": 16
50                }
51              }
52            }
53          ],
54          "loc": {
55            "start": {
56              "line": 16,
57              "column": 13
58            },
59            "end": {
60              "line": 16,
61              "column": 16
62            }
63          }
64        },
65        "superClass": null,
66        "implements": [],
67        "body": [
68          {
69            "type": "MethodDefinition",
70            "key": {
71              "type": "Identifier",
72              "name": "constructor",
73              "decorators": [],
74              "loc": {
75                "start": {
76                  "line": 1,
77                  "column": 1
78                },
79                "end": {
80                  "line": 1,
81                  "column": 1
82                }
83              }
84            },
85            "kind": "constructor",
86            "accessibility": "public",
87            "static": false,
88            "optional": false,
89            "computed": false,
90            "value": {
91              "type": "FunctionExpression",
92              "function": {
93                "type": "ScriptFunction",
94                "id": {
95                  "type": "Identifier",
96                  "name": "constructor",
97                  "decorators": [],
98                  "loc": {
99                    "start": {
100                      "line": 1,
101                      "column": 1
102                    },
103                    "end": {
104                      "line": 1,
105                      "column": 1
106                    }
107                  }
108                },
109                "generator": false,
110                "async": false,
111                "expression": false,
112                "params": [
113                  {
114                    "type": "ETSParameterExpression",
115                    "name": {
116                      "type": "Identifier",
117                      "name": "arg1",
118                      "typeAnnotation": {
119                        "type": "ETSUnionType",
120                        "types": [
121                          {
122                            "type": "ETSTypeReference",
123                            "part": {
124                              "type": "ETSTypeReferencePart",
125                              "name": {
126                                "type": "Identifier",
127                                "name": "Class1",
128                                "decorators": [],
129                                "loc": {
130                                  "start": {
131                                    "line": 17,
132                                    "column": 24
133                                  },
134                                  "end": {
135                                    "line": 17,
136                                    "column": 30
137                                  }
138                                }
139                              },
140                              "typeParams": {
141                                "type": "TSTypeParameterInstantiation",
142                                "params": [
143                                  {
144                                    "type": "ETSTypeReference",
145                                    "part": {
146                                      "type": "ETSTypeReferencePart",
147                                      "name": {
148                                        "type": "Identifier",
149                                        "name": "T",
150                                        "decorators": [],
151                                        "loc": {
152                                          "start": {
153                                            "line": 17,
154                                            "column": 31
155                                          },
156                                          "end": {
157                                            "line": 17,
158                                            "column": 32
159                                          }
160                                        }
161                                      },
162                                      "loc": {
163                                        "start": {
164                                          "line": 17,
165                                          "column": 31
166                                        },
167                                        "end": {
168                                          "line": 17,
169                                          "column": 33
170                                        }
171                                      }
172                                    },
173                                    "loc": {
174                                      "start": {
175                                        "line": 17,
176                                        "column": 31
177                                      },
178                                      "end": {
179                                        "line": 17,
180                                        "column": 33
181                                      }
182                                    }
183                                  }
184                                ],
185                                "loc": {
186                                  "start": {
187                                    "line": 17,
188                                    "column": 30
189                                  },
190                                  "end": {
191                                    "line": 17,
192                                    "column": 33
193                                  }
194                                }
195                              },
196                              "loc": {
197                                "start": {
198                                  "line": 17,
199                                  "column": 24
200                                },
201                                "end": {
202                                  "line": 17,
203                                  "column": 34
204                                }
205                              }
206                            },
207                            "loc": {
208                              "start": {
209                                "line": 17,
210                                "column": 24
211                              },
212                              "end": {
213                                "line": 17,
214                                "column": 34
215                              }
216                            }
217                          },
218                          {
219                            "type": "ETSUndefinedType",
220                            "loc": {
221                              "start": {
222                                "line": 17,
223                                "column": 21
224                              },
225                              "end": {
226                                "line": 17,
227                                "column": 22
228                              }
229                            }
230                          }
231                        ],
232                        "loc": {
233                          "start": {
234                            "line": 17,
235                            "column": 24
236                          },
237                          "end": {
238                            "line": 17,
239                            "column": 34
240                          }
241                        }
242                      },
243                      "decorators": [],
244                      "loc": {
245                        "start": {
246                          "line": 17,
247                          "column": 17
248                        },
249                        "end": {
250                          "line": 17,
251                          "column": 34
252                        }
253                      }
254                    },
255                    "loc": {
256                      "start": {
257                        "line": 17,
258                        "column": 17
259                      },
260                      "end": {
261                        "line": 17,
262                        "column": 34
263                      }
264                    }
265                  }
266                ],
267                "body": {
268                  "type": "BlockStatement",
269                  "statements": [],
270                  "loc": {
271                    "start": {
272                      "line": 17,
273                      "column": 35
274                    },
275                    "end": {
276                      "line": 17,
277                      "column": 37
278                    }
279                  }
280                },
281                "loc": {
282                  "start": {
283                    "line": 17,
284                    "column": 16
285                  },
286                  "end": {
287                    "line": 17,
288                    "column": 37
289                  }
290                }
291              },
292              "loc": {
293                "start": {
294                  "line": 17,
295                  "column": 16
296                },
297                "end": {
298                  "line": 17,
299                  "column": 37
300                }
301              }
302            },
303            "overloads": [
304              {
305                "type": "MethodDefinition",
306                "key": {
307                  "type": "Identifier",
308                  "name": "constructor",
309                  "decorators": [],
310                  "loc": {
311                    "start": {
312                      "line": 1,
313                      "column": 1
314                    },
315                    "end": {
316                      "line": 1,
317                      "column": 1
318                    }
319                  }
320                },
321                "kind": "constructor",
322                "accessibility": "public",
323                "static": false,
324                "optional": false,
325                "computed": false,
326                "value": {
327                  "type": "FunctionExpression",
328                  "function": {
329                    "type": "ScriptFunction",
330                    "id": {
331                      "type": "Identifier",
332                      "name": "constructor",
333                      "decorators": [],
334                      "loc": {
335                        "start": {
336                          "line": 1,
337                          "column": 1
338                        },
339                        "end": {
340                          "line": 1,
341                          "column": 1
342                        }
343                      }
344                    },
345                    "generator": false,
346                    "async": false,
347                    "expression": false,
348                    "params": [],
349                    "body": {
350                      "type": "BlockStatement",
351                      "statements": [
352                        {
353                          "type": "ExpressionStatement",
354                          "expression": {
355                            "type": "CallExpression",
356                            "callee": {
357                              "type": "ThisExpression",
358                              "loc": {
359                                "start": {
360                                  "line": 1,
361                                  "column": 1
362                                },
363                                "end": {
364                                  "line": 1,
365                                  "column": 1
366                                }
367                              }
368                            },
369                            "arguments": [
370                              {
371                                "type": "UndefinedLiteral",
372                                "value": undefined,
373                                "loc": {
374                                  "start": {
375                                    "line": 1,
376                                    "column": 1
377                                  },
378                                  "end": {
379                                    "line": 1,
380                                    "column": 1
381                                  }
382                                }
383                              }
384                            ],
385                            "optional": false,
386                            "loc": {
387                              "start": {
388                                "line": 17,
389                                "column": 5
390                              },
391                              "end": {
392                                "line": 17,
393                                "column": 37
394                              }
395                            }
396                          },
397                          "loc": {
398                            "start": {
399                              "line": 1,
400                              "column": 1
401                            },
402                            "end": {
403                              "line": 1,
404                              "column": 1
405                            }
406                          }
407                        }
408                      ],
409                      "loc": {
410                        "start": {
411                          "line": 1,
412                          "column": 1
413                        },
414                        "end": {
415                          "line": 1,
416                          "column": 1
417                        }
418                      }
419                    },
420                    "loc": {
421                      "start": {
422                        "line": 628,
423                        "column": 1
424                      },
425                      "end": {
426                        "line": 628,
427                        "column": 1
428                      }
429                    }
430                  },
431                  "loc": {
432                    "start": {
433                      "line": 1,
434                      "column": 1
435                    },
436                    "end": {
437                      "line": 1,
438                      "column": 1
439                    }
440                  }
441                },
442                "overloads": [],
443                "decorators": [],
444                "loc": {
445                  "start": {
446                    "line": 17,
447                    "column": 5
448                  },
449                  "end": {
450                    "line": 1,
451                    "column": 1
452                  }
453                }
454              }
455            ],
456            "decorators": [],
457            "loc": {
458              "start": {
459                "line": 17,
460                "column": 5
461              },
462              "end": {
463                "line": 17,
464                "column": 37
465              }
466            }
467          }
468        ],
469        "loc": {
470          "start": {
471            "line": 16,
472            "column": 17
473          },
474          "end": {
475            "line": 18,
476            "column": 2
477          }
478        }
479      },
480      "loc": {
481        "start": {
482          "line": 16,
483          "column": 1
484        },
485        "end": {
486          "line": 18,
487          "column": 2
488        }
489      }
490    },
491    {
492      "type": "ClassDeclaration",
493      "definition": {
494        "id": {
495          "type": "Identifier",
496          "name": "ETSGLOBAL",
497          "decorators": [],
498          "loc": {
499            "start": {
500              "line": 1,
501              "column": 1
502            },
503            "end": {
504              "line": 1,
505              "column": 1
506            }
507          }
508        },
509        "superClass": null,
510        "implements": [],
511        "body": [
512          {
513            "type": "MethodDefinition",
514            "key": {
515              "type": "Identifier",
516              "name": "_$init$_",
517              "decorators": [],
518              "loc": {
519                "start": {
520                  "line": 1,
521                  "column": 1
522                },
523                "end": {
524                  "line": 1,
525                  "column": 1
526                }
527              }
528            },
529            "kind": "method",
530            "accessibility": "public",
531            "static": true,
532            "optional": false,
533            "computed": false,
534            "value": {
535              "type": "FunctionExpression",
536              "function": {
537                "type": "ScriptFunction",
538                "id": {
539                  "type": "Identifier",
540                  "name": "_$init$_",
541                  "decorators": [],
542                  "loc": {
543                    "start": {
544                      "line": 1,
545                      "column": 1
546                    },
547                    "end": {
548                      "line": 1,
549                      "column": 1
550                    }
551                  }
552                },
553                "generator": false,
554                "async": false,
555                "expression": false,
556                "params": [],
557                "body": {
558                  "type": "BlockStatement",
559                  "statements": [],
560                  "loc": {
561                    "start": {
562                      "line": 1,
563                      "column": 1
564                    },
565                    "end": {
566                      "line": 1,
567                      "column": 1
568                    }
569                  }
570                },
571                "loc": {
572                  "start": {
573                    "line": 1,
574                    "column": 1
575                  },
576                  "end": {
577                    "line": 1,
578                    "column": 1
579                  }
580                }
581              },
582              "loc": {
583                "start": {
584                  "line": 1,
585                  "column": 1
586                },
587                "end": {
588                  "line": 1,
589                  "column": 1
590                }
591              }
592            },
593            "overloads": [],
594            "decorators": [],
595            "loc": {
596              "start": {
597                "line": 1,
598                "column": 1
599              },
600              "end": {
601                "line": 1,
602                "column": 1
603              }
604            }
605          },
606          {
607            "type": "MethodDefinition",
608            "key": {
609              "type": "Identifier",
610              "name": "main",
611              "decorators": [],
612              "loc": {
613                "start": {
614                  "line": 20,
615                  "column": 10
616                },
617                "end": {
618                  "line": 20,
619                  "column": 14
620                }
621              }
622            },
623            "kind": "method",
624            "accessibility": "public",
625            "static": true,
626            "optional": false,
627            "computed": false,
628            "value": {
629              "type": "FunctionExpression",
630              "function": {
631                "type": "ScriptFunction",
632                "id": {
633                  "type": "Identifier",
634                  "name": "main",
635                  "decorators": [],
636                  "loc": {
637                    "start": {
638                      "line": 20,
639                      "column": 10
640                    },
641                    "end": {
642                      "line": 20,
643                      "column": 14
644                    }
645                  }
646                },
647                "generator": false,
648                "async": false,
649                "expression": false,
650                "params": [],
651                "returnType": {
652                  "type": "ETSPrimitiveType",
653                  "loc": {
654                    "start": {
655                      "line": 20,
656                      "column": 18
657                    },
658                    "end": {
659                      "line": 20,
660                      "column": 22
661                    }
662                  }
663                },
664                "body": {
665                  "type": "BlockStatement",
666                  "statements": [],
667                  "loc": {
668                    "start": {
669                      "line": 20,
670                      "column": 23
671                    },
672                    "end": {
673                      "line": 20,
674                      "column": 25
675                    }
676                  }
677                },
678                "loc": {
679                  "start": {
680                    "line": 20,
681                    "column": 14
682                  },
683                  "end": {
684                    "line": 20,
685                    "column": 25
686                  }
687                }
688              },
689              "loc": {
690                "start": {
691                  "line": 20,
692                  "column": 14
693                },
694                "end": {
695                  "line": 20,
696                  "column": 25
697                }
698              }
699            },
700            "overloads": [],
701            "decorators": [],
702            "loc": {
703              "start": {
704                "line": 20,
705                "column": 1
706              },
707              "end": {
708                "line": 20,
709                "column": 25
710              }
711            }
712          }
713        ],
714        "loc": {
715          "start": {
716            "line": 1,
717            "column": 1
718          },
719          "end": {
720            "line": 1,
721            "column": 1
722          }
723        }
724      },
725      "loc": {
726        "start": {
727          "line": 1,
728          "column": 1
729        },
730        "end": {
731          "line": 1,
732          "column": 1
733        }
734      }
735    }
736  ],
737  "loc": {
738    "start": {
739      "line": 1,
740      "column": 1
741    },
742    "end": {
743      "line": 21,
744      "column": 1
745    }
746  }
747}
748