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