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