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": "main",
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": "main",
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": "_$init$_",
261              "decorators": [],
262              "loc": {
263                "start": {
264                  "line": 1,
265                  "column": 1
266                },
267                "end": {
268                  "line": 1,
269                  "column": 1
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": "_$init$_",
285                  "decorators": [],
286                  "loc": {
287                    "start": {
288                      "line": 1,
289                      "column": 1
290                    },
291                    "end": {
292                      "line": 1,
293                      "column": 1
294                    }
295                  }
296                },
297                "generator": false,
298                "async": false,
299                "expression": false,
300                "params": [],
301                "body": {
302                  "type": "BlockStatement",
303                  "statements": [
304                    {
305                      "type": "ExpressionStatement",
306                      "expression": {
307                        "type": "AssignmentExpression",
308                        "operator": "=",
309                        "left": {
310                          "type": "Identifier",
311                          "name": "arr",
312                          "decorators": [],
313                          "loc": {
314                            "start": {
315                              "line": 18,
316                              "column": 5
317                            },
318                            "end": {
319                              "line": 18,
320                              "column": 8
321                            }
322                          }
323                        },
324                        "right": {
325                          "type": "ArrayExpression",
326                          "elements": [
327                            {
328                              "type": "ETSNewClassInstanceExpression",
329                              "typeReference": {
330                                "type": "ETSTypeReference",
331                                "part": {
332                                  "type": "ETSTypeReferencePart",
333                                  "name": {
334                                    "type": "Identifier",
335                                    "name": "Object",
336                                    "decorators": [],
337                                    "loc": {
338                                      "start": {
339                                        "line": 18,
340                                        "column": 34
341                                      },
342                                      "end": {
343                                        "line": 18,
344                                        "column": 40
345                                      }
346                                    }
347                                  },
348                                  "loc": {
349                                    "start": {
350                                      "line": 18,
351                                      "column": 34
352                                    },
353                                    "end": {
354                                      "line": 18,
355                                      "column": 41
356                                    }
357                                  }
358                                },
359                                "loc": {
360                                  "start": {
361                                    "line": 18,
362                                    "column": 34
363                                  },
364                                  "end": {
365                                    "line": 18,
366                                    "column": 41
367                                  }
368                                }
369                              },
370                              "arguments": [],
371                              "loc": {
372                                "start": {
373                                  "line": 18,
374                                  "column": 30
375                                },
376                                "end": {
377                                  "line": 18,
378                                  "column": 43
379                                }
380                              }
381                            },
382                            {
383                              "type": "ETSNewClassInstanceExpression",
384                              "typeReference": {
385                                "type": "ETSTypeReference",
386                                "part": {
387                                  "type": "ETSTypeReferencePart",
388                                  "name": {
389                                    "type": "Identifier",
390                                    "name": "A",
391                                    "decorators": [],
392                                    "loc": {
393                                      "start": {
394                                        "line": 18,
395                                        "column": 48
396                                      },
397                                      "end": {
398                                        "line": 18,
399                                        "column": 49
400                                      }
401                                    }
402                                  },
403                                  "loc": {
404                                    "start": {
405                                      "line": 18,
406                                      "column": 48
407                                    },
408                                    "end": {
409                                      "line": 18,
410                                      "column": 50
411                                    }
412                                  }
413                                },
414                                "loc": {
415                                  "start": {
416                                    "line": 18,
417                                    "column": 48
418                                  },
419                                  "end": {
420                                    "line": 18,
421                                    "column": 50
422                                  }
423                                }
424                              },
425                              "arguments": [],
426                              "loc": {
427                                "start": {
428                                  "line": 18,
429                                  "column": 44
430                                },
431                                "end": {
432                                  "line": 18,
433                                  "column": 52
434                                }
435                              }
436                            }
437                          ],
438                          "loc": {
439                            "start": {
440                              "line": 18,
441                              "column": 29
442                            },
443                            "end": {
444                              "line": 18,
445                              "column": 52
446                            }
447                          }
448                        },
449                        "loc": {
450                          "start": {
451                            "line": 18,
452                            "column": 5
453                          },
454                          "end": {
455                            "line": 18,
456                            "column": 52
457                          }
458                        }
459                      },
460                      "loc": {
461                        "start": {
462                          "line": 18,
463                          "column": 5
464                        },
465                        "end": {
466                          "line": 18,
467                          "column": 52
468                        }
469                      }
470                    },
471                    {
472                      "type": "ExpressionStatement",
473                      "expression": {
474                        "type": "AssignmentExpression",
475                        "operator": "=",
476                        "left": {
477                          "type": "Identifier",
478                          "name": "elem",
479                          "decorators": [],
480                          "loc": {
481                            "start": {
482                              "line": 19,
483                              "column": 5
484                            },
485                            "end": {
486                              "line": 19,
487                              "column": 9
488                            }
489                          }
490                        },
491                        "right": {
492                          "type": "BlockExpression",
493                          "statements": [
494                            {
495                              "type": "VariableDeclaration",
496                              "declarations": [
497                                {
498                                  "type": "VariableDeclarator",
499                                  "id": {
500                                    "type": "Identifier",
501                                    "name": "gensym$_4",
502                                    "decorators": [],
503                                    "loc": {
504                                      "start": {
505                                        "line": 1,
506                                        "column": 3
507                                      },
508                                      "end": {
509                                        "line": 1,
510                                        "column": 3
511                                      }
512                                    }
513                                  },
514                                  "init": {
515                                    "type": "Identifier",
516                                    "name": "arr",
517                                    "decorators": [],
518                                    "loc": {
519                                      "start": {
520                                        "line": 19,
521                                        "column": 33
522                                      },
523                                      "end": {
524                                        "line": 19,
525                                        "column": 36
526                                      }
527                                    }
528                                  },
529                                  "loc": {
530                                    "start": {
531                                      "line": 1,
532                                      "column": 3
533                                    },
534                                    "end": {
535                                      "line": 1,
536                                      "column": 3
537                                    }
538                                  }
539                                }
540                              ],
541                              "kind": "let",
542                              "loc": {
543                                "start": {
544                                  "line": 19,
545                                  "column": 5
546                                },
547                                "end": {
548                                  "line": 19,
549                                  "column": 41
550                                }
551                              }
552                            },
553                            {
554                              "type": "ExpressionStatement",
555                              "expression": {
556                                "type": "ConditionalExpression",
557                                "test": {
558                                  "type": "BinaryExpression",
559                                  "operator": "==",
560                                  "left": {
561                                    "type": "Identifier",
562                                    "name": "gensym$_4",
563                                    "decorators": [],
564                                    "loc": {
565                                      "start": {
566                                        "line": 1,
567                                        "column": 3
568                                      },
569                                      "end": {
570                                        "line": 1,
571                                        "column": 3
572                                      }
573                                    }
574                                  },
575                                  "right": {
576                                    "type": "NullLiteral",
577                                    "value": null,
578                                    "loc": {
579                                      "start": {
580                                        "line": 1,
581                                        "column": 3
582                                      },
583                                      "end": {
584                                        "line": 1,
585                                        "column": 3
586                                      }
587                                    }
588                                  },
589                                  "loc": {
590                                    "start": {
591                                      "line": 1,
592                                      "column": 3
593                                    },
594                                    "end": {
595                                      "line": 1,
596                                      "column": 3
597                                    }
598                                  }
599                                },
600                                "consequent": {
601                                  "type": "UndefinedLiteral",
602                                  "value": undefined,
603                                  "loc": {
604                                    "start": {
605                                      "line": 1,
606                                      "column": 3
607                                    },
608                                    "end": {
609                                      "line": 1,
610                                      "column": 3
611                                    }
612                                  }
613                                },
614                                "alternate": {
615                                  "type": "MemberExpression",
616                                  "object": {
617                                    "type": "Identifier",
618                                    "name": "gensym$_4",
619                                    "decorators": [],
620                                    "loc": {
621                                      "start": {
622                                        "line": 19,
623                                        "column": 33
624                                      },
625                                      "end": {
626                                        "line": 19,
627                                        "column": 41
628                                      }
629                                    }
630                                  },
631                                  "property": {
632                                    "type": "NumberLiteral",
633                                    "value": 0,
634                                    "loc": {
635                                      "start": {
636                                        "line": 19,
637                                        "column": 39
638                                      },
639                                      "end": {
640                                        "line": 19,
641                                        "column": 40
642                                      }
643                                    }
644                                  },
645                                  "computed": true,
646                                  "optional": false,
647                                  "loc": {
648                                    "start": {
649                                      "line": 19,
650                                      "column": 33
651                                    },
652                                    "end": {
653                                      "line": 19,
654                                      "column": 41
655                                    }
656                                  }
657                                },
658                                "loc": {
659                                  "start": {
660                                    "line": 1,
661                                    "column": 3
662                                  },
663                                  "end": {
664                                    "line": 1,
665                                    "column": 3
666                                  }
667                                }
668                              },
669                              "loc": {
670                                "start": {
671                                  "line": 1,
672                                  "column": 3
673                                },
674                                "end": {
675                                  "line": 1,
676                                  "column": 3
677                                }
678                              }
679                            }
680                          ],
681                          "loc": {
682                            "start": {
683                              "line": 19,
684                              "column": 5
685                            },
686                            "end": {
687                              "line": 19,
688                              "column": 41
689                            }
690                          }
691                        },
692                        "loc": {
693                          "start": {
694                            "line": 19,
695                            "column": 5
696                          },
697                          "end": {
698                            "line": 19,
699                            "column": 41
700                          }
701                        }
702                      },
703                      "loc": {
704                        "start": {
705                          "line": 19,
706                          "column": 5
707                        },
708                        "end": {
709                          "line": 19,
710                          "column": 41
711                        }
712                      }
713                    }
714                  ],
715                  "loc": {
716                    "start": {
717                      "line": 1,
718                      "column": 1
719                    },
720                    "end": {
721                      "line": 1,
722                      "column": 1
723                    }
724                  }
725                },
726                "loc": {
727                  "start": {
728                    "line": 1,
729                    "column": 1
730                  },
731                  "end": {
732                    "line": 1,
733                    "column": 1
734                  }
735                }
736              },
737              "loc": {
738                "start": {
739                  "line": 1,
740                  "column": 1
741                },
742                "end": {
743                  "line": 1,
744                  "column": 1
745                }
746              }
747            },
748            "overloads": [],
749            "decorators": [],
750            "loc": {
751              "start": {
752                "line": 1,
753                "column": 1
754              },
755              "end": {
756                "line": 1,
757                "column": 1
758              }
759            }
760          },
761          {
762            "type": "ClassProperty",
763            "key": {
764              "type": "Identifier",
765              "name": "arr",
766              "decorators": [],
767              "loc": {
768                "start": {
769                  "line": 18,
770                  "column": 5
771                },
772                "end": {
773                  "line": 18,
774                  "column": 8
775                }
776              }
777            },
778            "accessibility": "public",
779            "static": true,
780            "readonly": false,
781            "declare": false,
782            "optional": false,
783            "computed": false,
784            "typeAnnotation": {
785              "type": "ETSUnionType",
786              "types": [
787                {
788                  "type": "TSArrayType",
789                  "elementType": {
790                    "type": "ETSTypeReference",
791                    "part": {
792                      "type": "ETSTypeReferencePart",
793                      "name": {
794                        "type": "Identifier",
795                        "name": "Object",
796                        "decorators": [],
797                        "loc": {
798                          "start": {
799                            "line": 18,
800                            "column": 11
801                          },
802                          "end": {
803                            "line": 18,
804                            "column": 17
805                          }
806                        }
807                      },
808                      "loc": {
809                        "start": {
810                          "line": 18,
811                          "column": 11
812                        },
813                        "end": {
814                          "line": 18,
815                          "column": 18
816                        }
817                      }
818                    },
819                    "loc": {
820                      "start": {
821                        "line": 18,
822                        "column": 11
823                      },
824                      "end": {
825                        "line": 18,
826                        "column": 18
827                      }
828                    }
829                  },
830                  "loc": {
831                    "start": {
832                      "line": 18,
833                      "column": 20
834                    },
835                    "end": {
836                      "line": 18,
837                      "column": 21
838                    }
839                  }
840                },
841                {
842                  "type": "ETSNullType",
843                  "loc": {
844                    "start": {
845                      "line": 18,
846                      "column": 22
847                    },
848                    "end": {
849                      "line": 18,
850                      "column": 26
851                    }
852                  }
853                }
854              ],
855              "loc": {
856                "start": {
857                  "line": 18,
858                  "column": 20
859                },
860                "end": {
861                  "line": 18,
862                  "column": 26
863                }
864              }
865            },
866            "definite": false,
867            "decorators": [],
868            "loc": {
869              "start": {
870                "line": 18,
871                "column": 5
872              },
873              "end": {
874                "line": 18,
875                "column": 52
876              }
877            }
878          },
879          {
880            "type": "ClassProperty",
881            "key": {
882              "type": "Identifier",
883              "name": "elem",
884              "decorators": [],
885              "loc": {
886                "start": {
887                  "line": 19,
888                  "column": 5
889                },
890                "end": {
891                  "line": 19,
892                  "column": 9
893                }
894              }
895            },
896            "accessibility": "public",
897            "static": true,
898            "readonly": false,
899            "declare": false,
900            "optional": false,
901            "computed": false,
902            "typeAnnotation": {
903              "type": "ETSUnionType",
904              "types": [
905                {
906                  "type": "ETSTypeReference",
907                  "part": {
908                    "type": "ETSTypeReferencePart",
909                    "name": {
910                      "type": "Identifier",
911                      "name": "Object",
912                      "decorators": [],
913                      "loc": {
914                        "start": {
915                          "line": 19,
916                          "column": 12
917                        },
918                        "end": {
919                          "line": 19,
920                          "column": 18
921                        }
922                      }
923                    },
924                    "loc": {
925                      "start": {
926                        "line": 19,
927                        "column": 12
928                      },
929                      "end": {
930                        "line": 19,
931                        "column": 20
932                      }
933                    }
934                  },
935                  "loc": {
936                    "start": {
937                      "line": 19,
938                      "column": 12
939                    },
940                    "end": {
941                      "line": 19,
942                      "column": 20
943                    }
944                  }
945                },
946                {
947                  "type": "ETSUndefinedType",
948                  "loc": {
949                    "start": {
950                      "line": 19,
951                      "column": 21
952                    },
953                    "end": {
954                      "line": 19,
955                      "column": 30
956                    }
957                  }
958                }
959              ],
960              "loc": {
961                "start": {
962                  "line": 19,
963                  "column": 12
964                },
965                "end": {
966                  "line": 19,
967                  "column": 30
968                }
969              }
970            },
971            "definite": false,
972            "decorators": [],
973            "loc": {
974              "start": {
975                "line": 19,
976                "column": 5
977              },
978              "end": {
979                "line": 19,
980                "column": 41
981              }
982            }
983          }
984        ],
985        "loc": {
986          "start": {
987            "line": 1,
988            "column": 1
989          },
990          "end": {
991            "line": 1,
992            "column": 1
993          }
994        }
995      },
996      "loc": {
997        "start": {
998          "line": 1,
999          "column": 1
1000        },
1001        "end": {
1002          "line": 1,
1003          "column": 1
1004        }
1005      }
1006    }
1007  ],
1008  "loc": {
1009    "start": {
1010      "line": 1,
1011      "column": 1
1012    },
1013    "end": {
1014      "line": 20,
1015      "column": 1
1016    }
1017  }
1018}
1019