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": "exit",
30              "decorators": [],
31              "loc": {
32                "start": {
33                  "line": 17,
34                  "column": 5
35                },
36                "end": {
37                  "line": 17,
38                  "column": 9
39                }
40              }
41            },
42            "kind": "method",
43            "accessibility": "public",
44            "static": false,
45            "optional": false,
46            "computed": false,
47            "value": {
48              "type": "FunctionExpression",
49              "function": {
50                "type": "ScriptFunction",
51                "id": {
52                  "type": "Identifier",
53                  "name": "exit",
54                  "decorators": [],
55                  "loc": {
56                    "start": {
57                      "line": 17,
58                      "column": 5
59                    },
60                    "end": {
61                      "line": 17,
62                      "column": 9
63                    }
64                  }
65                },
66                "generator": false,
67                "async": false,
68                "expression": false,
69                "params": [
70                  {
71                    "type": "ETSParameterExpression",
72                    "name": {
73                      "type": "Identifier",
74                      "name": "log_",
75                      "typeAnnotation": {
76                        "type": "ETSUnionType",
77                        "types": [
78                          {
79                            "type": "ETSTypeReference",
80                            "part": {
81                              "type": "ETSTypeReferencePart",
82                              "name": {
83                                "type": "Identifier",
84                                "name": "Boolean",
85                                "decorators": [],
86                                "loc": {
87                                  "start": {
88                                    "line": 17,
89                                    "column": 16
90                                  },
91                                  "end": {
92                                    "line": 17,
93                                    "column": 23
94                                  }
95                                }
96                              },
97                              "loc": {
98                                "start": {
99                                  "line": 17,
100                                  "column": 16
101                                },
102                                "end": {
103                                  "line": 17,
104                                  "column": 24
105                                }
106                              }
107                            },
108                            "loc": {
109                              "start": {
110                                "line": 17,
111                                "column": 16
112                              },
113                              "end": {
114                                "line": 17,
115                                "column": 24
116                              }
117                            }
118                          },
119                          {
120                            "type": "ETSNullType",
121                            "loc": {
122                              "start": {
123                                "line": 17,
124                                "column": 24
125                              },
126                              "end": {
127                                "line": 17,
128                                "column": 28
129                              }
130                            }
131                          }
132                        ],
133                        "loc": {
134                          "start": {
135                            "line": 17,
136                            "column": 16
137                          },
138                          "end": {
139                            "line": 17,
140                            "column": 28
141                          }
142                        }
143                      },
144                      "decorators": [],
145                      "loc": {
146                        "start": {
147                          "line": 17,
148                          "column": 10
149                        },
150                        "end": {
151                          "line": 17,
152                          "column": 28
153                        }
154                      }
155                    },
156                    "loc": {
157                      "start": {
158                        "line": 17,
159                        "column": 10
160                      },
161                      "end": {
162                        "line": 17,
163                        "column": 35
164                      }
165                    }
166                  }
167                ],
168                "returnType": {
169                  "type": "ETSPrimitiveType",
170                  "loc": {
171                    "start": {
172                      "line": 17,
173                      "column": 38
174                    },
175                    "end": {
176                      "line": 17,
177                      "column": 42
178                    }
179                  }
180                },
181                "body": {
182                  "type": "BlockStatement",
183                  "statements": [],
184                  "loc": {
185                    "start": {
186                      "line": 17,
187                      "column": 43
188                    },
189                    "end": {
190                      "line": 17,
191                      "column": 45
192                    }
193                  }
194                },
195                "loc": {
196                  "start": {
197                    "line": 17,
198                    "column": 9
199                  },
200                  "end": {
201                    "line": 17,
202                    "column": 45
203                  }
204                }
205              },
206              "loc": {
207                "start": {
208                  "line": 17,
209                  "column": 9
210                },
211                "end": {
212                  "line": 17,
213                  "column": 45
214                }
215              }
216            },
217            "overloads": [
218              {
219                "type": "MethodDefinition",
220                "key": {
221                  "type": "Identifier",
222                  "name": "exit",
223                  "decorators": [],
224                  "loc": {
225                    "start": {
226                      "line": 17,
227                      "column": 5
228                    },
229                    "end": {
230                      "line": 17,
231                      "column": 9
232                    }
233                  }
234                },
235                "kind": "method",
236                "accessibility": "public",
237                "static": false,
238                "optional": false,
239                "computed": false,
240                "value": {
241                  "type": "FunctionExpression",
242                  "function": {
243                    "type": "ScriptFunction",
244                    "id": {
245                      "type": "Identifier",
246                      "name": "exit",
247                      "decorators": [],
248                      "loc": {
249                        "start": {
250                          "line": 17,
251                          "column": 5
252                        },
253                        "end": {
254                          "line": 17,
255                          "column": 9
256                        }
257                      }
258                    },
259                    "generator": false,
260                    "async": false,
261                    "expression": false,
262                    "params": [],
263                    "returnType": {
264                      "type": "ETSPrimitiveType",
265                      "loc": {
266                        "start": {
267                          "line": 17,
268                          "column": 38
269                        },
270                        "end": {
271                          "line": 17,
272                          "column": 42
273                        }
274                      }
275                    },
276                    "body": {
277                      "type": "BlockStatement",
278                      "statements": [
279                        {
280                          "type": "ReturnStatement",
281                          "argument": {
282                            "type": "CallExpression",
283                            "callee": {
284                              "type": "MemberExpression",
285                              "object": {
286                                "type": "ThisExpression",
287                                "loc": {
288                                  "start": {
289                                    "line": 1,
290                                    "column": 1
291                                  },
292                                  "end": {
293                                    "line": 1,
294                                    "column": 1
295                                  }
296                                }
297                              },
298                              "property": {
299                                "type": "Identifier",
300                                "name": "exit",
301                                "decorators": [],
302                                "loc": {
303                                  "start": {
304                                    "line": 1,
305                                    "column": 1
306                                  },
307                                  "end": {
308                                    "line": 1,
309                                    "column": 1
310                                  }
311                                }
312                              },
313                              "computed": false,
314                              "optional": false,
315                              "loc": {
316                                "start": {
317                                  "line": 1,
318                                  "column": 1
319                                },
320                                "end": {
321                                  "line": 1,
322                                  "column": 1
323                                }
324                              }
325                            },
326                            "arguments": [
327                              {
328                                "type": "NullLiteral",
329                                "value": null,
330                                "loc": {
331                                  "start": {
332                                    "line": 17,
333                                    "column": 31
334                                  },
335                                  "end": {
336                                    "line": 17,
337                                    "column": 35
338                                  }
339                                }
340                              }
341                            ],
342                            "optional": false,
343                            "loc": {
344                              "start": {
345                                "line": 17,
346                                "column": 5
347                              },
348                              "end": {
349                                "line": 17,
350                                "column": 45
351                              }
352                            }
353                          },
354                          "loc": {
355                            "start": {
356                              "line": 1,
357                              "column": 1
358                            },
359                            "end": {
360                              "line": 1,
361                              "column": 1
362                            }
363                          }
364                        }
365                      ],
366                      "loc": {
367                        "start": {
368                          "line": 1,
369                          "column": 1
370                        },
371                        "end": {
372                          "line": 1,
373                          "column": 1
374                        }
375                      }
376                    },
377                    "loc": {
378                      "start": {
379                        "line": 620,
380                        "column": 1
381                      },
382                      "end": {
383                        "line": 620,
384                        "column": 1
385                      }
386                    }
387                  },
388                  "loc": {
389                    "start": {
390                      "line": 1,
391                      "column": 1
392                    },
393                    "end": {
394                      "line": 1,
395                      "column": 1
396                    }
397                  }
398                },
399                "overloads": [],
400                "decorators": [],
401                "loc": {
402                  "start": {
403                    "line": 17,
404                    "column": 5
405                  },
406                  "end": {
407                    "line": 1,
408                    "column": 1
409                  }
410                }
411              }
412            ],
413            "decorators": [],
414            "loc": {
415              "start": {
416                "line": 17,
417                "column": 5
418              },
419              "end": {
420                "line": 17,
421                "column": 45
422              }
423            }
424          },
425          {
426            "type": "MethodDefinition",
427            "key": {
428              "type": "Identifier",
429              "name": "exthat",
430              "decorators": [],
431              "loc": {
432                "start": {
433                  "line": 18,
434                  "column": 5
435                },
436                "end": {
437                  "line": 18,
438                  "column": 11
439                }
440              }
441            },
442            "kind": "method",
443            "accessibility": "public",
444            "static": false,
445            "optional": false,
446            "computed": false,
447            "value": {
448              "type": "FunctionExpression",
449              "function": {
450                "type": "ScriptFunction",
451                "id": {
452                  "type": "Identifier",
453                  "name": "exthat",
454                  "decorators": [],
455                  "loc": {
456                    "start": {
457                      "line": 18,
458                      "column": 5
459                    },
460                    "end": {
461                      "line": 18,
462                      "column": 11
463                    }
464                  }
465                },
466                "generator": false,
467                "async": false,
468                "expression": false,
469                "params": [
470                  {
471                    "type": "ETSParameterExpression",
472                    "name": {
473                      "type": "Identifier",
474                      "name": "log_",
475                      "typeAnnotation": {
476                        "type": "ETSUnionType",
477                        "types": [
478                          {
479                            "type": "ETSTypeReference",
480                            "part": {
481                              "type": "ETSTypeReferencePart",
482                              "name": {
483                                "type": "Identifier",
484                                "name": "Boolean",
485                                "decorators": [],
486                                "loc": {
487                                  "start": {
488                                    "line": 18,
489                                    "column": 19
490                                  },
491                                  "end": {
492                                    "line": 18,
493                                    "column": 26
494                                  }
495                                }
496                              },
497                              "loc": {
498                                "start": {
499                                  "line": 18,
500                                  "column": 19
501                                },
502                                "end": {
503                                  "line": 18,
504                                  "column": 27
505                                }
506                              }
507                            },
508                            "loc": {
509                              "start": {
510                                "line": 18,
511                                "column": 19
512                              },
513                              "end": {
514                                "line": 18,
515                                "column": 27
516                              }
517                            }
518                          },
519                          {
520                            "type": "ETSUndefinedType",
521                            "loc": {
522                              "start": {
523                                "line": 18,
524                                "column": 16
525                              },
526                              "end": {
527                                "line": 18,
528                                "column": 17
529                              }
530                            }
531                          }
532                        ],
533                        "loc": {
534                          "start": {
535                            "line": 18,
536                            "column": 19
537                          },
538                          "end": {
539                            "line": 18,
540                            "column": 27
541                          }
542                        }
543                      },
544                      "decorators": [],
545                      "loc": {
546                        "start": {
547                          "line": 18,
548                          "column": 12
549                        },
550                        "end": {
551                          "line": 18,
552                          "column": 27
553                        }
554                      }
555                    },
556                    "loc": {
557                      "start": {
558                        "line": 18,
559                        "column": 12
560                      },
561                      "end": {
562                        "line": 18,
563                        "column": 27
564                      }
565                    }
566                  }
567                ],
568                "returnType": {
569                  "type": "ETSPrimitiveType",
570                  "loc": {
571                    "start": {
572                      "line": 18,
573                      "column": 29
574                    },
575                    "end": {
576                      "line": 18,
577                      "column": 33
578                    }
579                  }
580                },
581                "body": {
582                  "type": "BlockStatement",
583                  "statements": [],
584                  "loc": {
585                    "start": {
586                      "line": 18,
587                      "column": 34
588                    },
589                    "end": {
590                      "line": 18,
591                      "column": 36
592                    }
593                  }
594                },
595                "loc": {
596                  "start": {
597                    "line": 18,
598                    "column": 11
599                  },
600                  "end": {
601                    "line": 18,
602                    "column": 36
603                  }
604                }
605              },
606              "loc": {
607                "start": {
608                  "line": 18,
609                  "column": 11
610                },
611                "end": {
612                  "line": 18,
613                  "column": 36
614                }
615              }
616            },
617            "overloads": [
618              {
619                "type": "MethodDefinition",
620                "key": {
621                  "type": "Identifier",
622                  "name": "exthat",
623                  "decorators": [],
624                  "loc": {
625                    "start": {
626                      "line": 18,
627                      "column": 5
628                    },
629                    "end": {
630                      "line": 18,
631                      "column": 11
632                    }
633                  }
634                },
635                "kind": "method",
636                "accessibility": "public",
637                "static": false,
638                "optional": false,
639                "computed": false,
640                "value": {
641                  "type": "FunctionExpression",
642                  "function": {
643                    "type": "ScriptFunction",
644                    "id": {
645                      "type": "Identifier",
646                      "name": "exthat",
647                      "decorators": [],
648                      "loc": {
649                        "start": {
650                          "line": 18,
651                          "column": 5
652                        },
653                        "end": {
654                          "line": 18,
655                          "column": 11
656                        }
657                      }
658                    },
659                    "generator": false,
660                    "async": false,
661                    "expression": false,
662                    "params": [],
663                    "returnType": {
664                      "type": "ETSPrimitiveType",
665                      "loc": {
666                        "start": {
667                          "line": 18,
668                          "column": 29
669                        },
670                        "end": {
671                          "line": 18,
672                          "column": 33
673                        }
674                      }
675                    },
676                    "body": {
677                      "type": "BlockStatement",
678                      "statements": [
679                        {
680                          "type": "ReturnStatement",
681                          "argument": {
682                            "type": "CallExpression",
683                            "callee": {
684                              "type": "MemberExpression",
685                              "object": {
686                                "type": "ThisExpression",
687                                "loc": {
688                                  "start": {
689                                    "line": 1,
690                                    "column": 1
691                                  },
692                                  "end": {
693                                    "line": 1,
694                                    "column": 1
695                                  }
696                                }
697                              },
698                              "property": {
699                                "type": "Identifier",
700                                "name": "exthat",
701                                "decorators": [],
702                                "loc": {
703                                  "start": {
704                                    "line": 1,
705                                    "column": 1
706                                  },
707                                  "end": {
708                                    "line": 1,
709                                    "column": 1
710                                  }
711                                }
712                              },
713                              "computed": false,
714                              "optional": false,
715                              "loc": {
716                                "start": {
717                                  "line": 1,
718                                  "column": 1
719                                },
720                                "end": {
721                                  "line": 1,
722                                  "column": 1
723                                }
724                              }
725                            },
726                            "arguments": [
727                              {
728                                "type": "UndefinedLiteral",
729                                "value": undefined,
730                                "loc": {
731                                  "start": {
732                                    "line": 1,
733                                    "column": 1
734                                  },
735                                  "end": {
736                                    "line": 1,
737                                    "column": 1
738                                  }
739                                }
740                              }
741                            ],
742                            "optional": false,
743                            "loc": {
744                              "start": {
745                                "line": 18,
746                                "column": 5
747                              },
748                              "end": {
749                                "line": 18,
750                                "column": 36
751                              }
752                            }
753                          },
754                          "loc": {
755                            "start": {
756                              "line": 1,
757                              "column": 1
758                            },
759                            "end": {
760                              "line": 1,
761                              "column": 1
762                            }
763                          }
764                        }
765                      ],
766                      "loc": {
767                        "start": {
768                          "line": 1,
769                          "column": 1
770                        },
771                        "end": {
772                          "line": 1,
773                          "column": 1
774                        }
775                      }
776                    },
777                    "loc": {
778                      "start": {
779                        "line": 665,
780                        "column": 1
781                      },
782                      "end": {
783                        "line": 665,
784                        "column": 1
785                      }
786                    }
787                  },
788                  "loc": {
789                    "start": {
790                      "line": 1,
791                      "column": 1
792                    },
793                    "end": {
794                      "line": 1,
795                      "column": 1
796                    }
797                  }
798                },
799                "overloads": [],
800                "decorators": [],
801                "loc": {
802                  "start": {
803                    "line": 18,
804                    "column": 5
805                  },
806                  "end": {
807                    "line": 1,
808                    "column": 1
809                  }
810                }
811              }
812            ],
813            "decorators": [],
814            "loc": {
815              "start": {
816                "line": 18,
817                "column": 5
818              },
819              "end": {
820                "line": 18,
821                "column": 36
822              }
823            }
824          },
825          {
826            "type": "MethodDefinition",
827            "key": {
828              "type": "Identifier",
829              "name": "constructor",
830              "decorators": [],
831              "loc": {
832                "start": {
833                  "line": 1,
834                  "column": 1
835                },
836                "end": {
837                  "line": 1,
838                  "column": 1
839                }
840              }
841            },
842            "kind": "constructor",
843            "static": false,
844            "optional": false,
845            "computed": false,
846            "value": {
847              "type": "FunctionExpression",
848              "function": {
849                "type": "ScriptFunction",
850                "id": {
851                  "type": "Identifier",
852                  "name": "constructor",
853                  "decorators": [],
854                  "loc": {
855                    "start": {
856                      "line": 1,
857                      "column": 1
858                    },
859                    "end": {
860                      "line": 1,
861                      "column": 1
862                    }
863                  }
864                },
865                "generator": false,
866                "async": false,
867                "expression": false,
868                "params": [],
869                "body": {
870                  "type": "BlockStatement",
871                  "statements": [],
872                  "loc": {
873                    "start": {
874                      "line": 1,
875                      "column": 1
876                    },
877                    "end": {
878                      "line": 1,
879                      "column": 1
880                    }
881                  }
882                },
883                "loc": {
884                  "start": {
885                    "line": 1,
886                    "column": 1
887                  },
888                  "end": {
889                    "line": 1,
890                    "column": 1
891                  }
892                }
893              },
894              "loc": {
895                "start": {
896                  "line": 1,
897                  "column": 1
898                },
899                "end": {
900                  "line": 1,
901                  "column": 1
902                }
903              }
904            },
905            "overloads": [],
906            "decorators": [],
907            "loc": {
908              "start": {
909                "line": 19,
910                "column": 2
911              },
912              "end": {
913                "line": 19,
914                "column": 2
915              }
916            }
917          }
918        ],
919        "loc": {
920          "start": {
921            "line": 16,
922            "column": 9
923          },
924          "end": {
925            "line": 19,
926            "column": 2
927          }
928        }
929      },
930      "loc": {
931        "start": {
932          "line": 16,
933          "column": 1
934        },
935        "end": {
936          "line": 19,
937          "column": 2
938        }
939      }
940    },
941    {
942      "type": "ClassDeclaration",
943      "definition": {
944        "id": {
945          "type": "Identifier",
946          "name": "ETSGLOBAL",
947          "decorators": [],
948          "loc": {
949            "start": {
950              "line": 1,
951              "column": 1
952            },
953            "end": {
954              "line": 1,
955              "column": 1
956            }
957          }
958        },
959        "superClass": null,
960        "implements": [],
961        "body": [
962          {
963            "type": "MethodDefinition",
964            "key": {
965              "type": "Identifier",
966              "name": "_$init$_",
967              "decorators": [],
968              "loc": {
969                "start": {
970                  "line": 1,
971                  "column": 1
972                },
973                "end": {
974                  "line": 1,
975                  "column": 1
976                }
977              }
978            },
979            "kind": "method",
980            "accessibility": "public",
981            "static": true,
982            "optional": false,
983            "computed": false,
984            "value": {
985              "type": "FunctionExpression",
986              "function": {
987                "type": "ScriptFunction",
988                "id": {
989                  "type": "Identifier",
990                  "name": "_$init$_",
991                  "decorators": [],
992                  "loc": {
993                    "start": {
994                      "line": 1,
995                      "column": 1
996                    },
997                    "end": {
998                      "line": 1,
999                      "column": 1
1000                    }
1001                  }
1002                },
1003                "generator": false,
1004                "async": false,
1005                "expression": false,
1006                "params": [],
1007                "body": {
1008                  "type": "BlockStatement",
1009                  "statements": [],
1010                  "loc": {
1011                    "start": {
1012                      "line": 1,
1013                      "column": 1
1014                    },
1015                    "end": {
1016                      "line": 1,
1017                      "column": 1
1018                    }
1019                  }
1020                },
1021                "loc": {
1022                  "start": {
1023                    "line": 1,
1024                    "column": 1
1025                  },
1026                  "end": {
1027                    "line": 1,
1028                    "column": 1
1029                  }
1030                }
1031              },
1032              "loc": {
1033                "start": {
1034                  "line": 1,
1035                  "column": 1
1036                },
1037                "end": {
1038                  "line": 1,
1039                  "column": 1
1040                }
1041              }
1042            },
1043            "overloads": [],
1044            "decorators": [],
1045            "loc": {
1046              "start": {
1047                "line": 1,
1048                "column": 1
1049              },
1050              "end": {
1051                "line": 1,
1052                "column": 1
1053              }
1054            }
1055          },
1056          {
1057            "type": "MethodDefinition",
1058            "key": {
1059              "type": "Identifier",
1060              "name": "main",
1061              "decorators": [],
1062              "loc": {
1063                "start": {
1064                  "line": 21,
1065                  "column": 10
1066                },
1067                "end": {
1068                  "line": 21,
1069                  "column": 14
1070                }
1071              }
1072            },
1073            "kind": "method",
1074            "accessibility": "public",
1075            "static": true,
1076            "optional": false,
1077            "computed": false,
1078            "value": {
1079              "type": "FunctionExpression",
1080              "function": {
1081                "type": "ScriptFunction",
1082                "id": {
1083                  "type": "Identifier",
1084                  "name": "main",
1085                  "decorators": [],
1086                  "loc": {
1087                    "start": {
1088                      "line": 21,
1089                      "column": 10
1090                    },
1091                    "end": {
1092                      "line": 21,
1093                      "column": 14
1094                    }
1095                  }
1096                },
1097                "generator": false,
1098                "async": false,
1099                "expression": false,
1100                "params": [],
1101                "body": {
1102                  "type": "BlockStatement",
1103                  "statements": [],
1104                  "loc": {
1105                    "start": {
1106                      "line": 21,
1107                      "column": 17
1108                    },
1109                    "end": {
1110                      "line": 22,
1111                      "column": 2
1112                    }
1113                  }
1114                },
1115                "loc": {
1116                  "start": {
1117                    "line": 21,
1118                    "column": 14
1119                  },
1120                  "end": {
1121                    "line": 22,
1122                    "column": 2
1123                  }
1124                }
1125              },
1126              "loc": {
1127                "start": {
1128                  "line": 21,
1129                  "column": 14
1130                },
1131                "end": {
1132                  "line": 22,
1133                  "column": 2
1134                }
1135              }
1136            },
1137            "overloads": [],
1138            "decorators": [],
1139            "loc": {
1140              "start": {
1141                "line": 21,
1142                "column": 1
1143              },
1144              "end": {
1145                "line": 22,
1146                "column": 2
1147              }
1148            }
1149          }
1150        ],
1151        "loc": {
1152          "start": {
1153            "line": 1,
1154            "column": 1
1155          },
1156          "end": {
1157            "line": 1,
1158            "column": 1
1159          }
1160        }
1161      },
1162      "loc": {
1163        "start": {
1164          "line": 1,
1165          "column": 1
1166        },
1167        "end": {
1168          "line": 1,
1169          "column": 1
1170        }
1171      }
1172    }
1173  ],
1174  "loc": {
1175    "start": {
1176      "line": 1,
1177      "column": 1
1178    },
1179    "end": {
1180      "line": 23,
1181      "column": 1
1182    }
1183  }
1184}
1185