• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "TSInterfaceDeclaration",
6      "body": {
7        "type": "TSInterfaceBody",
8        "body": [
9          {
10            "type": "MethodDefinition",
11            "key": {
12              "type": "Identifier",
13              "name": "foo1",
14              "decorators": [],
15              "loc": {
16                "start": {
17                  "line": 17,
18                  "column": 5
19                },
20                "end": {
21                  "line": 17,
22                  "column": 9
23                }
24              }
25            },
26            "kind": "method",
27            "accessibility": "public",
28            "static": false,
29            "optional": false,
30            "computed": false,
31            "value": {
32              "type": "FunctionExpression",
33              "function": {
34                "type": "ScriptFunction",
35                "id": {
36                  "type": "Identifier",
37                  "name": "foo1",
38                  "decorators": [],
39                  "loc": {
40                    "start": {
41                      "line": 17,
42                      "column": 5
43                    },
44                    "end": {
45                      "line": 17,
46                      "column": 9
47                    }
48                  }
49                },
50                "generator": false,
51                "async": false,
52                "expression": false,
53                "params": [],
54                "returnType": {
55                  "type": "ETSPrimitiveType",
56                  "loc": {
57                    "start": {
58                      "line": 17,
59                      "column": 13
60                    },
61                    "end": {
62                      "line": 17,
63                      "column": 17
64                    }
65                  }
66                },
67                "throwMarker": "throws",
68                "loc": {
69                  "start": {
70                    "line": 17,
71                    "column": 9
72                  },
73                  "end": {
74                    "line": 17,
75                    "column": 17
76                  }
77                }
78              },
79              "loc": {
80                "start": {
81                  "line": 17,
82                  "column": 9
83                },
84                "end": {
85                  "line": 17,
86                  "column": 17
87                }
88              }
89            },
90            "overloads": [],
91            "decorators": [],
92            "loc": {
93              "start": {
94                "line": 17,
95                "column": 5
96              },
97              "end": {
98                "line": 17,
99                "column": 25
100              }
101            }
102          },
103          {
104            "type": "MethodDefinition",
105            "key": {
106              "type": "Identifier",
107              "name": "foo2",
108              "decorators": [],
109              "loc": {
110                "start": {
111                  "line": 18,
112                  "column": 5
113                },
114                "end": {
115                  "line": 18,
116                  "column": 9
117                }
118              }
119            },
120            "kind": "method",
121            "accessibility": "public",
122            "static": false,
123            "optional": false,
124            "computed": false,
125            "value": {
126              "type": "FunctionExpression",
127              "function": {
128                "type": "ScriptFunction",
129                "id": {
130                  "type": "Identifier",
131                  "name": "foo2",
132                  "decorators": [],
133                  "loc": {
134                    "start": {
135                      "line": 18,
136                      "column": 5
137                    },
138                    "end": {
139                      "line": 18,
140                      "column": 9
141                    }
142                  }
143                },
144                "generator": false,
145                "async": false,
146                "expression": false,
147                "params": [
148                  {
149                    "type": "ETSParameterExpression",
150                    "name": {
151                      "type": "Identifier",
152                      "name": "param",
153                      "typeAnnotation": {
154                        "type": "ETSFunctionType",
155                        "params": [],
156                        "returnType": {
157                          "type": "ETSPrimitiveType",
158                          "loc": {
159                            "start": {
160                              "line": 18,
161                              "column": 23
162                            },
163                            "end": {
164                              "line": 18,
165                              "column": 27
166                            }
167                          }
168                        },
169                        "throwMarker": "throws",
170                        "loc": {
171                          "start": {
172                            "line": 18,
173                            "column": 17
174                          },
175                          "end": {
176                            "line": 18,
177                            "column": 27
178                          }
179                        }
180                      },
181                      "decorators": [],
182                      "loc": {
183                        "start": {
184                          "line": 18,
185                          "column": 10
186                        },
187                        "end": {
188                          "line": 18,
189                          "column": 27
190                        }
191                      }
192                    },
193                    "loc": {
194                      "start": {
195                        "line": 18,
196                        "column": 10
197                      },
198                      "end": {
199                        "line": 18,
200                        "column": 27
201                      }
202                    }
203                  }
204                ],
205                "returnType": {
206                  "type": "ETSPrimitiveType",
207                  "loc": {
208                    "start": {
209                      "line": 18,
210                      "column": 37
211                    },
212                    "end": {
213                      "line": 18,
214                      "column": 41
215                    }
216                  }
217                },
218                "throwMarker": "rethrows",
219                "loc": {
220                  "start": {
221                    "line": 18,
222                    "column": 9
223                  },
224                  "end": {
225                    "line": 18,
226                    "column": 41
227                  }
228                }
229              },
230              "loc": {
231                "start": {
232                  "line": 18,
233                  "column": 9
234                },
235                "end": {
236                  "line": 18,
237                  "column": 41
238                }
239              }
240            },
241            "overloads": [],
242            "decorators": [],
243            "loc": {
244              "start": {
245                "line": 18,
246                "column": 5
247              },
248              "end": {
249                "line": 18,
250                "column": 51
251              }
252            }
253          },
254          {
255            "type": "MethodDefinition",
256            "key": {
257              "type": "Identifier",
258              "name": "foo3",
259              "decorators": [],
260              "loc": {
261                "start": {
262                  "line": 19,
263                  "column": 5
264                },
265                "end": {
266                  "line": 19,
267                  "column": 9
268                }
269              }
270            },
271            "kind": "method",
272            "accessibility": "public",
273            "static": false,
274            "optional": false,
275            "computed": false,
276            "value": {
277              "type": "FunctionExpression",
278              "function": {
279                "type": "ScriptFunction",
280                "id": {
281                  "type": "Identifier",
282                  "name": "foo3",
283                  "decorators": [],
284                  "loc": {
285                    "start": {
286                      "line": 19,
287                      "column": 5
288                    },
289                    "end": {
290                      "line": 19,
291                      "column": 9
292                    }
293                  }
294                },
295                "generator": false,
296                "async": false,
297                "expression": false,
298                "params": [],
299                "returnType": {
300                  "type": "ETSPrimitiveType",
301                  "loc": {
302                    "start": {
303                      "line": 19,
304                      "column": 13
305                    },
306                    "end": {
307                      "line": 19,
308                      "column": 17
309                    }
310                  }
311                },
312                "loc": {
313                  "start": {
314                    "line": 19,
315                    "column": 9
316                  },
317                  "end": {
318                    "line": 19,
319                    "column": 17
320                  }
321                }
322              },
323              "loc": {
324                "start": {
325                  "line": 19,
326                  "column": 9
327                },
328                "end": {
329                  "line": 19,
330                  "column": 17
331                }
332              }
333            },
334            "overloads": [],
335            "decorators": [],
336            "loc": {
337              "start": {
338                "line": 19,
339                "column": 5
340              },
341              "end": {
342                "line": 19,
343                "column": 18
344              }
345            }
346          }
347        ],
348        "loc": {
349          "start": {
350            "line": 16,
351            "column": 13
352          },
353          "end": {
354            "line": 20,
355            "column": 2
356          }
357        }
358      },
359      "id": {
360        "type": "Identifier",
361        "name": "A",
362        "decorators": [],
363        "loc": {
364          "start": {
365            "line": 16,
366            "column": 11
367          },
368          "end": {
369            "line": 16,
370            "column": 12
371          }
372        }
373      },
374      "extends": [],
375      "loc": {
376        "start": {
377          "line": 16,
378          "column": 1
379        },
380        "end": {
381          "line": 22,
382          "column": 6
383        }
384      }
385    },
386    {
387      "type": "ClassDeclaration",
388      "definition": {
389        "id": {
390          "type": "Identifier",
391          "name": "AClass",
392          "decorators": [],
393          "loc": {
394            "start": {
395              "line": 22,
396              "column": 7
397            },
398            "end": {
399              "line": 22,
400              "column": 13
401            }
402          }
403        },
404        "superClass": null,
405        "implements": [
406          {
407            "type": "TSClassImplements",
408            "expression": {
409              "type": "ETSTypeReference",
410              "part": {
411                "type": "ETSTypeReferencePart",
412                "name": {
413                  "type": "Identifier",
414                  "name": "A",
415                  "decorators": [],
416                  "loc": {
417                    "start": {
418                      "line": 22,
419                      "column": 25
420                    },
421                    "end": {
422                      "line": 22,
423                      "column": 26
424                    }
425                  }
426                },
427                "loc": {
428                  "start": {
429                    "line": 22,
430                    "column": 25
431                  },
432                  "end": {
433                    "line": 22,
434                    "column": 28
435                  }
436                }
437              },
438              "loc": {
439                "start": {
440                  "line": 22,
441                  "column": 25
442                },
443                "end": {
444                  "line": 22,
445                  "column": 28
446                }
447              }
448            },
449            "loc": {
450              "start": {
451                "line": 22,
452                "column": 25
453              },
454              "end": {
455                "line": 22,
456                "column": 28
457              }
458            }
459          }
460        ],
461        "body": [
462          {
463            "type": "MethodDefinition",
464            "key": {
465              "type": "Identifier",
466              "name": "foo1",
467              "decorators": [],
468              "loc": {
469                "start": {
470                  "line": 23,
471                  "column": 14
472                },
473                "end": {
474                  "line": 23,
475                  "column": 18
476                }
477              }
478            },
479            "kind": "method",
480            "accessibility": "public",
481            "static": false,
482            "optional": false,
483            "computed": false,
484            "value": {
485              "type": "FunctionExpression",
486              "function": {
487                "type": "ScriptFunction",
488                "id": {
489                  "type": "Identifier",
490                  "name": "foo1",
491                  "decorators": [],
492                  "loc": {
493                    "start": {
494                      "line": 23,
495                      "column": 14
496                    },
497                    "end": {
498                      "line": 23,
499                      "column": 18
500                    }
501                  }
502                },
503                "generator": false,
504                "async": false,
505                "expression": false,
506                "params": [],
507                "returnType": {
508                  "type": "ETSPrimitiveType",
509                  "loc": {
510                    "start": {
511                      "line": 23,
512                      "column": 22
513                    },
514                    "end": {
515                      "line": 23,
516                      "column": 26
517                    }
518                  }
519                },
520                "body": {
521                  "type": "BlockStatement",
522                  "statements": [],
523                  "loc": {
524                    "start": {
525                      "line": 23,
526                      "column": 34
527                    },
528                    "end": {
529                      "line": 23,
530                      "column": 36
531                    }
532                  }
533                },
534                "throwMarker": "throws",
535                "loc": {
536                  "start": {
537                    "line": 23,
538                    "column": 18
539                  },
540                  "end": {
541                    "line": 23,
542                    "column": 36
543                  }
544                }
545              },
546              "loc": {
547                "start": {
548                  "line": 23,
549                  "column": 18
550                },
551                "end": {
552                  "line": 23,
553                  "column": 36
554                }
555              }
556            },
557            "overloads": [],
558            "decorators": [],
559            "loc": {
560              "start": {
561                "line": 23,
562                "column": 5
563              },
564              "end": {
565                "line": 23,
566                "column": 36
567              }
568            }
569          },
570          {
571            "type": "MethodDefinition",
572            "key": {
573              "type": "Identifier",
574              "name": "foo2",
575              "decorators": [],
576              "loc": {
577                "start": {
578                  "line": 24,
579                  "column": 14
580                },
581                "end": {
582                  "line": 24,
583                  "column": 18
584                }
585              }
586            },
587            "kind": "method",
588            "accessibility": "public",
589            "static": false,
590            "optional": false,
591            "computed": false,
592            "value": {
593              "type": "FunctionExpression",
594              "function": {
595                "type": "ScriptFunction",
596                "id": {
597                  "type": "Identifier",
598                  "name": "foo2",
599                  "decorators": [],
600                  "loc": {
601                    "start": {
602                      "line": 24,
603                      "column": 14
604                    },
605                    "end": {
606                      "line": 24,
607                      "column": 18
608                    }
609                  }
610                },
611                "generator": false,
612                "async": false,
613                "expression": false,
614                "params": [
615                  {
616                    "type": "ETSParameterExpression",
617                    "name": {
618                      "type": "Identifier",
619                      "name": "param",
620                      "typeAnnotation": {
621                        "type": "ETSFunctionType",
622                        "params": [],
623                        "returnType": {
624                          "type": "ETSPrimitiveType",
625                          "loc": {
626                            "start": {
627                              "line": 24,
628                              "column": 32
629                            },
630                            "end": {
631                              "line": 24,
632                              "column": 36
633                            }
634                          }
635                        },
636                        "throwMarker": "throws",
637                        "loc": {
638                          "start": {
639                            "line": 24,
640                            "column": 26
641                          },
642                          "end": {
643                            "line": 24,
644                            "column": 36
645                          }
646                        }
647                      },
648                      "decorators": [],
649                      "loc": {
650                        "start": {
651                          "line": 24,
652                          "column": 19
653                        },
654                        "end": {
655                          "line": 24,
656                          "column": 36
657                        }
658                      }
659                    },
660                    "loc": {
661                      "start": {
662                        "line": 24,
663                        "column": 19
664                      },
665                      "end": {
666                        "line": 24,
667                        "column": 36
668                      }
669                    }
670                  }
671                ],
672                "returnType": {
673                  "type": "ETSPrimitiveType",
674                  "loc": {
675                    "start": {
676                      "line": 24,
677                      "column": 46
678                    },
679                    "end": {
680                      "line": 24,
681                      "column": 50
682                    }
683                  }
684                },
685                "body": {
686                  "type": "BlockStatement",
687                  "statements": [],
688                  "loc": {
689                    "start": {
690                      "line": 24,
691                      "column": 60
692                    },
693                    "end": {
694                      "line": 24,
695                      "column": 62
696                    }
697                  }
698                },
699                "throwMarker": "rethrows",
700                "loc": {
701                  "start": {
702                    "line": 24,
703                    "column": 18
704                  },
705                  "end": {
706                    "line": 24,
707                    "column": 62
708                  }
709                }
710              },
711              "loc": {
712                "start": {
713                  "line": 24,
714                  "column": 18
715                },
716                "end": {
717                  "line": 24,
718                  "column": 62
719                }
720              }
721            },
722            "overloads": [],
723            "decorators": [],
724            "loc": {
725              "start": {
726                "line": 24,
727                "column": 5
728              },
729              "end": {
730                "line": 24,
731                "column": 62
732              }
733            }
734          },
735          {
736            "type": "MethodDefinition",
737            "key": {
738              "type": "Identifier",
739              "name": "foo3",
740              "decorators": [],
741              "loc": {
742                "start": {
743                  "line": 25,
744                  "column": 14
745                },
746                "end": {
747                  "line": 25,
748                  "column": 18
749                }
750              }
751            },
752            "kind": "method",
753            "accessibility": "public",
754            "static": false,
755            "optional": false,
756            "computed": false,
757            "value": {
758              "type": "FunctionExpression",
759              "function": {
760                "type": "ScriptFunction",
761                "id": {
762                  "type": "Identifier",
763                  "name": "foo3",
764                  "decorators": [],
765                  "loc": {
766                    "start": {
767                      "line": 25,
768                      "column": 14
769                    },
770                    "end": {
771                      "line": 25,
772                      "column": 18
773                    }
774                  }
775                },
776                "generator": false,
777                "async": false,
778                "expression": false,
779                "params": [],
780                "returnType": {
781                  "type": "ETSPrimitiveType",
782                  "loc": {
783                    "start": {
784                      "line": 25,
785                      "column": 22
786                    },
787                    "end": {
788                      "line": 25,
789                      "column": 26
790                    }
791                  }
792                },
793                "body": {
794                  "type": "BlockStatement",
795                  "statements": [],
796                  "loc": {
797                    "start": {
798                      "line": 25,
799                      "column": 27
800                    },
801                    "end": {
802                      "line": 25,
803                      "column": 29
804                    }
805                  }
806                },
807                "loc": {
808                  "start": {
809                    "line": 25,
810                    "column": 18
811                  },
812                  "end": {
813                    "line": 25,
814                    "column": 29
815                  }
816                }
817              },
818              "loc": {
819                "start": {
820                  "line": 25,
821                  "column": 18
822                },
823                "end": {
824                  "line": 25,
825                  "column": 29
826                }
827              }
828            },
829            "overloads": [],
830            "decorators": [],
831            "loc": {
832              "start": {
833                "line": 25,
834                "column": 5
835              },
836              "end": {
837                "line": 25,
838                "column": 29
839              }
840            }
841          },
842          {
843            "type": "MethodDefinition",
844            "key": {
845              "type": "Identifier",
846              "name": "constructor",
847              "decorators": [],
848              "loc": {
849                "start": {
850                  "line": 1,
851                  "column": 1
852                },
853                "end": {
854                  "line": 1,
855                  "column": 1
856                }
857              }
858            },
859            "kind": "constructor",
860            "static": false,
861            "optional": false,
862            "computed": false,
863            "value": {
864              "type": "FunctionExpression",
865              "function": {
866                "type": "ScriptFunction",
867                "id": {
868                  "type": "Identifier",
869                  "name": "constructor",
870                  "decorators": [],
871                  "loc": {
872                    "start": {
873                      "line": 1,
874                      "column": 1
875                    },
876                    "end": {
877                      "line": 1,
878                      "column": 1
879                    }
880                  }
881                },
882                "generator": false,
883                "async": false,
884                "expression": false,
885                "params": [],
886                "body": {
887                  "type": "BlockStatement",
888                  "statements": [],
889                  "loc": {
890                    "start": {
891                      "line": 1,
892                      "column": 1
893                    },
894                    "end": {
895                      "line": 1,
896                      "column": 1
897                    }
898                  }
899                },
900                "loc": {
901                  "start": {
902                    "line": 1,
903                    "column": 1
904                  },
905                  "end": {
906                    "line": 1,
907                    "column": 1
908                  }
909                }
910              },
911              "loc": {
912                "start": {
913                  "line": 1,
914                  "column": 1
915                },
916                "end": {
917                  "line": 1,
918                  "column": 1
919                }
920              }
921            },
922            "overloads": [],
923            "decorators": [],
924            "loc": {
925              "start": {
926                "line": 26,
927                "column": 2
928              },
929              "end": {
930                "line": 26,
931                "column": 2
932              }
933            }
934          }
935        ],
936        "loc": {
937          "start": {
938            "line": 22,
939            "column": 27
940          },
941          "end": {
942            "line": 26,
943            "column": 2
944          }
945        }
946      },
947      "loc": {
948        "start": {
949          "line": 22,
950          "column": 1
951        },
952        "end": {
953          "line": 26,
954          "column": 2
955        }
956      }
957    },
958    {
959      "type": "ClassDeclaration",
960      "definition": {
961        "id": {
962          "type": "Identifier",
963          "name": "BClass",
964          "decorators": [],
965          "loc": {
966            "start": {
967              "line": 28,
968              "column": 7
969            },
970            "end": {
971              "line": 28,
972              "column": 13
973            }
974          }
975        },
976        "superClass": null,
977        "implements": [],
978        "body": [
979          {
980            "type": "MethodDefinition",
981            "key": {
982              "type": "Identifier",
983              "name": "foo1",
984              "decorators": [],
985              "loc": {
986                "start": {
987                  "line": 29,
988                  "column": 5
989                },
990                "end": {
991                  "line": 29,
992                  "column": 9
993                }
994              }
995            },
996            "kind": "method",
997            "accessibility": "public",
998            "static": false,
999            "optional": false,
1000            "computed": false,
1001            "value": {
1002              "type": "FunctionExpression",
1003              "function": {
1004                "type": "ScriptFunction",
1005                "id": {
1006                  "type": "Identifier",
1007                  "name": "foo1",
1008                  "decorators": [],
1009                  "loc": {
1010                    "start": {
1011                      "line": 29,
1012                      "column": 5
1013                    },
1014                    "end": {
1015                      "line": 29,
1016                      "column": 9
1017                    }
1018                  }
1019                },
1020                "generator": false,
1021                "async": false,
1022                "expression": false,
1023                "params": [],
1024                "returnType": {
1025                  "type": "ETSPrimitiveType",
1026                  "loc": {
1027                    "start": {
1028                      "line": 29,
1029                      "column": 13
1030                    },
1031                    "end": {
1032                      "line": 29,
1033                      "column": 17
1034                    }
1035                  }
1036                },
1037                "body": {
1038                  "type": "BlockStatement",
1039                  "statements": [],
1040                  "loc": {
1041                    "start": {
1042                      "line": 29,
1043                      "column": 25
1044                    },
1045                    "end": {
1046                      "line": 29,
1047                      "column": 27
1048                    }
1049                  }
1050                },
1051                "throwMarker": "throws",
1052                "loc": {
1053                  "start": {
1054                    "line": 29,
1055                    "column": 9
1056                  },
1057                  "end": {
1058                    "line": 29,
1059                    "column": 27
1060                  }
1061                }
1062              },
1063              "loc": {
1064                "start": {
1065                  "line": 29,
1066                  "column": 9
1067                },
1068                "end": {
1069                  "line": 29,
1070                  "column": 27
1071                }
1072              }
1073            },
1074            "overloads": [],
1075            "decorators": [],
1076            "loc": {
1077              "start": {
1078                "line": 29,
1079                "column": 5
1080              },
1081              "end": {
1082                "line": 29,
1083                "column": 27
1084              }
1085            }
1086          },
1087          {
1088            "type": "MethodDefinition",
1089            "key": {
1090              "type": "Identifier",
1091              "name": "foo2",
1092              "decorators": [],
1093              "loc": {
1094                "start": {
1095                  "line": 30,
1096                  "column": 5
1097                },
1098                "end": {
1099                  "line": 30,
1100                  "column": 9
1101                }
1102              }
1103            },
1104            "kind": "method",
1105            "accessibility": "public",
1106            "static": false,
1107            "optional": false,
1108            "computed": false,
1109            "value": {
1110              "type": "FunctionExpression",
1111              "function": {
1112                "type": "ScriptFunction",
1113                "id": {
1114                  "type": "Identifier",
1115                  "name": "foo2",
1116                  "decorators": [],
1117                  "loc": {
1118                    "start": {
1119                      "line": 30,
1120                      "column": 5
1121                    },
1122                    "end": {
1123                      "line": 30,
1124                      "column": 9
1125                    }
1126                  }
1127                },
1128                "generator": false,
1129                "async": false,
1130                "expression": false,
1131                "params": [
1132                  {
1133                    "type": "ETSParameterExpression",
1134                    "name": {
1135                      "type": "Identifier",
1136                      "name": "param",
1137                      "typeAnnotation": {
1138                        "type": "ETSFunctionType",
1139                        "params": [],
1140                        "returnType": {
1141                          "type": "ETSPrimitiveType",
1142                          "loc": {
1143                            "start": {
1144                              "line": 30,
1145                              "column": 23
1146                            },
1147                            "end": {
1148                              "line": 30,
1149                              "column": 27
1150                            }
1151                          }
1152                        },
1153                        "throwMarker": "throws",
1154                        "loc": {
1155                          "start": {
1156                            "line": 30,
1157                            "column": 17
1158                          },
1159                          "end": {
1160                            "line": 30,
1161                            "column": 27
1162                          }
1163                        }
1164                      },
1165                      "decorators": [],
1166                      "loc": {
1167                        "start": {
1168                          "line": 30,
1169                          "column": 10
1170                        },
1171                        "end": {
1172                          "line": 30,
1173                          "column": 27
1174                        }
1175                      }
1176                    },
1177                    "loc": {
1178                      "start": {
1179                        "line": 30,
1180                        "column": 10
1181                      },
1182                      "end": {
1183                        "line": 30,
1184                        "column": 27
1185                      }
1186                    }
1187                  }
1188                ],
1189                "returnType": {
1190                  "type": "ETSPrimitiveType",
1191                  "loc": {
1192                    "start": {
1193                      "line": 30,
1194                      "column": 37
1195                    },
1196                    "end": {
1197                      "line": 30,
1198                      "column": 41
1199                    }
1200                  }
1201                },
1202                "body": {
1203                  "type": "BlockStatement",
1204                  "statements": [],
1205                  "loc": {
1206                    "start": {
1207                      "line": 30,
1208                      "column": 51
1209                    },
1210                    "end": {
1211                      "line": 30,
1212                      "column": 53
1213                    }
1214                  }
1215                },
1216                "throwMarker": "rethrows",
1217                "loc": {
1218                  "start": {
1219                    "line": 30,
1220                    "column": 9
1221                  },
1222                  "end": {
1223                    "line": 30,
1224                    "column": 53
1225                  }
1226                }
1227              },
1228              "loc": {
1229                "start": {
1230                  "line": 30,
1231                  "column": 9
1232                },
1233                "end": {
1234                  "line": 30,
1235                  "column": 53
1236                }
1237              }
1238            },
1239            "overloads": [],
1240            "decorators": [],
1241            "loc": {
1242              "start": {
1243                "line": 30,
1244                "column": 5
1245              },
1246              "end": {
1247                "line": 30,
1248                "column": 53
1249              }
1250            }
1251          },
1252          {
1253            "type": "MethodDefinition",
1254            "key": {
1255              "type": "Identifier",
1256              "name": "foo3",
1257              "decorators": [],
1258              "loc": {
1259                "start": {
1260                  "line": 31,
1261                  "column": 5
1262                },
1263                "end": {
1264                  "line": 31,
1265                  "column": 9
1266                }
1267              }
1268            },
1269            "kind": "method",
1270            "accessibility": "public",
1271            "static": false,
1272            "optional": false,
1273            "computed": false,
1274            "value": {
1275              "type": "FunctionExpression",
1276              "function": {
1277                "type": "ScriptFunction",
1278                "id": {
1279                  "type": "Identifier",
1280                  "name": "foo3",
1281                  "decorators": [],
1282                  "loc": {
1283                    "start": {
1284                      "line": 31,
1285                      "column": 5
1286                    },
1287                    "end": {
1288                      "line": 31,
1289                      "column": 9
1290                    }
1291                  }
1292                },
1293                "generator": false,
1294                "async": false,
1295                "expression": false,
1296                "params": [],
1297                "returnType": {
1298                  "type": "ETSPrimitiveType",
1299                  "loc": {
1300                    "start": {
1301                      "line": 31,
1302                      "column": 13
1303                    },
1304                    "end": {
1305                      "line": 31,
1306                      "column": 17
1307                    }
1308                  }
1309                },
1310                "body": {
1311                  "type": "BlockStatement",
1312                  "statements": [],
1313                  "loc": {
1314                    "start": {
1315                      "line": 31,
1316                      "column": 18
1317                    },
1318                    "end": {
1319                      "line": 31,
1320                      "column": 20
1321                    }
1322                  }
1323                },
1324                "loc": {
1325                  "start": {
1326                    "line": 31,
1327                    "column": 9
1328                  },
1329                  "end": {
1330                    "line": 31,
1331                    "column": 20
1332                  }
1333                }
1334              },
1335              "loc": {
1336                "start": {
1337                  "line": 31,
1338                  "column": 9
1339                },
1340                "end": {
1341                  "line": 31,
1342                  "column": 20
1343                }
1344              }
1345            },
1346            "overloads": [],
1347            "decorators": [],
1348            "loc": {
1349              "start": {
1350                "line": 31,
1351                "column": 5
1352              },
1353              "end": {
1354                "line": 31,
1355                "column": 20
1356              }
1357            }
1358          },
1359          {
1360            "type": "MethodDefinition",
1361            "key": {
1362              "type": "Identifier",
1363              "name": "constructor",
1364              "decorators": [],
1365              "loc": {
1366                "start": {
1367                  "line": 1,
1368                  "column": 1
1369                },
1370                "end": {
1371                  "line": 1,
1372                  "column": 1
1373                }
1374              }
1375            },
1376            "kind": "constructor",
1377            "static": false,
1378            "optional": false,
1379            "computed": false,
1380            "value": {
1381              "type": "FunctionExpression",
1382              "function": {
1383                "type": "ScriptFunction",
1384                "id": {
1385                  "type": "Identifier",
1386                  "name": "constructor",
1387                  "decorators": [],
1388                  "loc": {
1389                    "start": {
1390                      "line": 1,
1391                      "column": 1
1392                    },
1393                    "end": {
1394                      "line": 1,
1395                      "column": 1
1396                    }
1397                  }
1398                },
1399                "generator": false,
1400                "async": false,
1401                "expression": false,
1402                "params": [],
1403                "body": {
1404                  "type": "BlockStatement",
1405                  "statements": [],
1406                  "loc": {
1407                    "start": {
1408                      "line": 1,
1409                      "column": 1
1410                    },
1411                    "end": {
1412                      "line": 1,
1413                      "column": 1
1414                    }
1415                  }
1416                },
1417                "loc": {
1418                  "start": {
1419                    "line": 1,
1420                    "column": 1
1421                  },
1422                  "end": {
1423                    "line": 1,
1424                    "column": 1
1425                  }
1426                }
1427              },
1428              "loc": {
1429                "start": {
1430                  "line": 1,
1431                  "column": 1
1432                },
1433                "end": {
1434                  "line": 1,
1435                  "column": 1
1436                }
1437              }
1438            },
1439            "overloads": [],
1440            "decorators": [],
1441            "loc": {
1442              "start": {
1443                "line": 32,
1444                "column": 2
1445              },
1446              "end": {
1447                "line": 32,
1448                "column": 2
1449              }
1450            }
1451          }
1452        ],
1453        "loc": {
1454          "start": {
1455            "line": 28,
1456            "column": 14
1457          },
1458          "end": {
1459            "line": 32,
1460            "column": 2
1461          }
1462        }
1463      },
1464      "loc": {
1465        "start": {
1466          "line": 28,
1467          "column": 1
1468        },
1469        "end": {
1470          "line": 32,
1471          "column": 2
1472        }
1473      }
1474    },
1475    {
1476      "type": "ClassDeclaration",
1477      "definition": {
1478        "id": {
1479          "type": "Identifier",
1480          "name": "CClass",
1481          "decorators": [],
1482          "loc": {
1483            "start": {
1484              "line": 34,
1485              "column": 13
1486            },
1487            "end": {
1488              "line": 34,
1489              "column": 19
1490            }
1491          }
1492        },
1493        "superClass": {
1494          "type": "ETSTypeReference",
1495          "part": {
1496            "type": "ETSTypeReferencePart",
1497            "name": {
1498              "type": "Identifier",
1499              "name": "BClass",
1500              "decorators": [],
1501              "loc": {
1502                "start": {
1503                  "line": 34,
1504                  "column": 28
1505                },
1506                "end": {
1507                  "line": 34,
1508                  "column": 34
1509                }
1510              }
1511            },
1512            "loc": {
1513              "start": {
1514                "line": 34,
1515                "column": 28
1516              },
1517              "end": {
1518                "line": 34,
1519                "column": 36
1520              }
1521            }
1522          },
1523          "loc": {
1524            "start": {
1525              "line": 34,
1526              "column": 28
1527            },
1528            "end": {
1529              "line": 34,
1530              "column": 36
1531            }
1532          }
1533        },
1534        "implements": [],
1535        "body": [
1536          {
1537            "type": "MethodDefinition",
1538            "key": {
1539              "type": "Identifier",
1540              "name": "foo1",
1541              "decorators": [],
1542              "loc": {
1543                "start": {
1544                  "line": 35,
1545                  "column": 14
1546                },
1547                "end": {
1548                  "line": 35,
1549                  "column": 18
1550                }
1551              }
1552            },
1553            "kind": "method",
1554            "accessibility": "public",
1555            "static": false,
1556            "optional": false,
1557            "computed": false,
1558            "value": {
1559              "type": "FunctionExpression",
1560              "function": {
1561                "type": "ScriptFunction",
1562                "id": {
1563                  "type": "Identifier",
1564                  "name": "foo1",
1565                  "decorators": [],
1566                  "loc": {
1567                    "start": {
1568                      "line": 35,
1569                      "column": 14
1570                    },
1571                    "end": {
1572                      "line": 35,
1573                      "column": 18
1574                    }
1575                  }
1576                },
1577                "generator": false,
1578                "async": false,
1579                "expression": false,
1580                "params": [],
1581                "returnType": {
1582                  "type": "ETSPrimitiveType",
1583                  "loc": {
1584                    "start": {
1585                      "line": 35,
1586                      "column": 22
1587                    },
1588                    "end": {
1589                      "line": 35,
1590                      "column": 26
1591                    }
1592                  }
1593                },
1594                "body": {
1595                  "type": "BlockStatement",
1596                  "statements": [],
1597                  "loc": {
1598                    "start": {
1599                      "line": 35,
1600                      "column": 34
1601                    },
1602                    "end": {
1603                      "line": 35,
1604                      "column": 36
1605                    }
1606                  }
1607                },
1608                "throwMarker": "throws",
1609                "loc": {
1610                  "start": {
1611                    "line": 35,
1612                    "column": 18
1613                  },
1614                  "end": {
1615                    "line": 35,
1616                    "column": 36
1617                  }
1618                }
1619              },
1620              "loc": {
1621                "start": {
1622                  "line": 35,
1623                  "column": 18
1624                },
1625                "end": {
1626                  "line": 35,
1627                  "column": 36
1628                }
1629              }
1630            },
1631            "overloads": [],
1632            "decorators": [],
1633            "loc": {
1634              "start": {
1635                "line": 35,
1636                "column": 5
1637              },
1638              "end": {
1639                "line": 35,
1640                "column": 36
1641              }
1642            }
1643          },
1644          {
1645            "type": "MethodDefinition",
1646            "key": {
1647              "type": "Identifier",
1648              "name": "foo2",
1649              "decorators": [],
1650              "loc": {
1651                "start": {
1652                  "line": 36,
1653                  "column": 14
1654                },
1655                "end": {
1656                  "line": 36,
1657                  "column": 18
1658                }
1659              }
1660            },
1661            "kind": "method",
1662            "accessibility": "public",
1663            "static": false,
1664            "optional": false,
1665            "computed": false,
1666            "value": {
1667              "type": "FunctionExpression",
1668              "function": {
1669                "type": "ScriptFunction",
1670                "id": {
1671                  "type": "Identifier",
1672                  "name": "foo2",
1673                  "decorators": [],
1674                  "loc": {
1675                    "start": {
1676                      "line": 36,
1677                      "column": 14
1678                    },
1679                    "end": {
1680                      "line": 36,
1681                      "column": 18
1682                    }
1683                  }
1684                },
1685                "generator": false,
1686                "async": false,
1687                "expression": false,
1688                "params": [
1689                  {
1690                    "type": "ETSParameterExpression",
1691                    "name": {
1692                      "type": "Identifier",
1693                      "name": "param",
1694                      "typeAnnotation": {
1695                        "type": "ETSFunctionType",
1696                        "params": [],
1697                        "returnType": {
1698                          "type": "ETSPrimitiveType",
1699                          "loc": {
1700                            "start": {
1701                              "line": 36,
1702                              "column": 32
1703                            },
1704                            "end": {
1705                              "line": 36,
1706                              "column": 36
1707                            }
1708                          }
1709                        },
1710                        "throwMarker": "throws",
1711                        "loc": {
1712                          "start": {
1713                            "line": 36,
1714                            "column": 26
1715                          },
1716                          "end": {
1717                            "line": 36,
1718                            "column": 36
1719                          }
1720                        }
1721                      },
1722                      "decorators": [],
1723                      "loc": {
1724                        "start": {
1725                          "line": 36,
1726                          "column": 19
1727                        },
1728                        "end": {
1729                          "line": 36,
1730                          "column": 36
1731                        }
1732                      }
1733                    },
1734                    "loc": {
1735                      "start": {
1736                        "line": 36,
1737                        "column": 19
1738                      },
1739                      "end": {
1740                        "line": 36,
1741                        "column": 36
1742                      }
1743                    }
1744                  }
1745                ],
1746                "returnType": {
1747                  "type": "ETSPrimitiveType",
1748                  "loc": {
1749                    "start": {
1750                      "line": 36,
1751                      "column": 46
1752                    },
1753                    "end": {
1754                      "line": 36,
1755                      "column": 50
1756                    }
1757                  }
1758                },
1759                "body": {
1760                  "type": "BlockStatement",
1761                  "statements": [],
1762                  "loc": {
1763                    "start": {
1764                      "line": 36,
1765                      "column": 60
1766                    },
1767                    "end": {
1768                      "line": 36,
1769                      "column": 62
1770                    }
1771                  }
1772                },
1773                "throwMarker": "rethrows",
1774                "loc": {
1775                  "start": {
1776                    "line": 36,
1777                    "column": 18
1778                  },
1779                  "end": {
1780                    "line": 36,
1781                    "column": 62
1782                  }
1783                }
1784              },
1785              "loc": {
1786                "start": {
1787                  "line": 36,
1788                  "column": 18
1789                },
1790                "end": {
1791                  "line": 36,
1792                  "column": 62
1793                }
1794              }
1795            },
1796            "overloads": [],
1797            "decorators": [],
1798            "loc": {
1799              "start": {
1800                "line": 36,
1801                "column": 5
1802              },
1803              "end": {
1804                "line": 36,
1805                "column": 62
1806              }
1807            }
1808          },
1809          {
1810            "type": "MethodDefinition",
1811            "key": {
1812              "type": "Identifier",
1813              "name": "foo3",
1814              "decorators": [],
1815              "loc": {
1816                "start": {
1817                  "line": 37,
1818                  "column": 14
1819                },
1820                "end": {
1821                  "line": 37,
1822                  "column": 18
1823                }
1824              }
1825            },
1826            "kind": "method",
1827            "accessibility": "public",
1828            "static": false,
1829            "optional": false,
1830            "computed": false,
1831            "value": {
1832              "type": "FunctionExpression",
1833              "function": {
1834                "type": "ScriptFunction",
1835                "id": {
1836                  "type": "Identifier",
1837                  "name": "foo3",
1838                  "decorators": [],
1839                  "loc": {
1840                    "start": {
1841                      "line": 37,
1842                      "column": 14
1843                    },
1844                    "end": {
1845                      "line": 37,
1846                      "column": 18
1847                    }
1848                  }
1849                },
1850                "generator": false,
1851                "async": false,
1852                "expression": false,
1853                "params": [],
1854                "returnType": {
1855                  "type": "ETSPrimitiveType",
1856                  "loc": {
1857                    "start": {
1858                      "line": 37,
1859                      "column": 22
1860                    },
1861                    "end": {
1862                      "line": 37,
1863                      "column": 26
1864                    }
1865                  }
1866                },
1867                "body": {
1868                  "type": "BlockStatement",
1869                  "statements": [],
1870                  "loc": {
1871                    "start": {
1872                      "line": 37,
1873                      "column": 27
1874                    },
1875                    "end": {
1876                      "line": 37,
1877                      "column": 29
1878                    }
1879                  }
1880                },
1881                "loc": {
1882                  "start": {
1883                    "line": 37,
1884                    "column": 18
1885                  },
1886                  "end": {
1887                    "line": 37,
1888                    "column": 29
1889                  }
1890                }
1891              },
1892              "loc": {
1893                "start": {
1894                  "line": 37,
1895                  "column": 18
1896                },
1897                "end": {
1898                  "line": 37,
1899                  "column": 29
1900                }
1901              }
1902            },
1903            "overloads": [],
1904            "decorators": [],
1905            "loc": {
1906              "start": {
1907                "line": 37,
1908                "column": 5
1909              },
1910              "end": {
1911                "line": 37,
1912                "column": 29
1913              }
1914            }
1915          },
1916          {
1917            "type": "MethodDefinition",
1918            "key": {
1919              "type": "Identifier",
1920              "name": "constructor",
1921              "decorators": [],
1922              "loc": {
1923                "start": {
1924                  "line": 1,
1925                  "column": 1
1926                },
1927                "end": {
1928                  "line": 1,
1929                  "column": 1
1930                }
1931              }
1932            },
1933            "kind": "constructor",
1934            "static": false,
1935            "optional": false,
1936            "computed": false,
1937            "value": {
1938              "type": "FunctionExpression",
1939              "function": {
1940                "type": "ScriptFunction",
1941                "id": {
1942                  "type": "Identifier",
1943                  "name": "constructor",
1944                  "decorators": [],
1945                  "loc": {
1946                    "start": {
1947                      "line": 1,
1948                      "column": 1
1949                    },
1950                    "end": {
1951                      "line": 1,
1952                      "column": 1
1953                    }
1954                  }
1955                },
1956                "generator": false,
1957                "async": false,
1958                "expression": false,
1959                "params": [],
1960                "body": {
1961                  "type": "BlockStatement",
1962                  "statements": [],
1963                  "loc": {
1964                    "start": {
1965                      "line": 1,
1966                      "column": 1
1967                    },
1968                    "end": {
1969                      "line": 1,
1970                      "column": 1
1971                    }
1972                  }
1973                },
1974                "loc": {
1975                  "start": {
1976                    "line": 1,
1977                    "column": 1
1978                  },
1979                  "end": {
1980                    "line": 1,
1981                    "column": 1
1982                  }
1983                }
1984              },
1985              "loc": {
1986                "start": {
1987                  "line": 1,
1988                  "column": 1
1989                },
1990                "end": {
1991                  "line": 1,
1992                  "column": 1
1993                }
1994              }
1995            },
1996            "overloads": [],
1997            "decorators": [],
1998            "loc": {
1999              "start": {
2000                "line": 38,
2001                "column": 2
2002              },
2003              "end": {
2004                "line": 38,
2005                "column": 2
2006              }
2007            }
2008          }
2009        ],
2010        "loc": {
2011          "start": {
2012            "line": 34,
2013            "column": 35
2014          },
2015          "end": {
2016            "line": 38,
2017            "column": 2
2018          }
2019        }
2020      },
2021      "loc": {
2022        "start": {
2023          "line": 34,
2024          "column": 7
2025        },
2026        "end": {
2027          "line": 38,
2028          "column": 2
2029        }
2030      }
2031    },
2032    {
2033      "type": "ClassDeclaration",
2034      "definition": {
2035        "id": {
2036          "type": "Identifier",
2037          "name": "ETSGLOBAL",
2038          "decorators": [],
2039          "loc": {
2040            "start": {
2041              "line": 1,
2042              "column": 1
2043            },
2044            "end": {
2045              "line": 1,
2046              "column": 1
2047            }
2048          }
2049        },
2050        "superClass": null,
2051        "implements": [],
2052        "body": [
2053          {
2054            "type": "MethodDefinition",
2055            "key": {
2056              "type": "Identifier",
2057              "name": "_$init$_",
2058              "decorators": [],
2059              "loc": {
2060                "start": {
2061                  "line": 1,
2062                  "column": 1
2063                },
2064                "end": {
2065                  "line": 1,
2066                  "column": 1
2067                }
2068              }
2069            },
2070            "kind": "method",
2071            "accessibility": "public",
2072            "static": true,
2073            "optional": false,
2074            "computed": false,
2075            "value": {
2076              "type": "FunctionExpression",
2077              "function": {
2078                "type": "ScriptFunction",
2079                "id": {
2080                  "type": "Identifier",
2081                  "name": "_$init$_",
2082                  "decorators": [],
2083                  "loc": {
2084                    "start": {
2085                      "line": 1,
2086                      "column": 1
2087                    },
2088                    "end": {
2089                      "line": 1,
2090                      "column": 1
2091                    }
2092                  }
2093                },
2094                "generator": false,
2095                "async": false,
2096                "expression": false,
2097                "params": [],
2098                "body": {
2099                  "type": "BlockStatement",
2100                  "statements": [],
2101                  "loc": {
2102                    "start": {
2103                      "line": 1,
2104                      "column": 1
2105                    },
2106                    "end": {
2107                      "line": 1,
2108                      "column": 1
2109                    }
2110                  }
2111                },
2112                "loc": {
2113                  "start": {
2114                    "line": 1,
2115                    "column": 1
2116                  },
2117                  "end": {
2118                    "line": 1,
2119                    "column": 1
2120                  }
2121                }
2122              },
2123              "loc": {
2124                "start": {
2125                  "line": 1,
2126                  "column": 1
2127                },
2128                "end": {
2129                  "line": 1,
2130                  "column": 1
2131                }
2132              }
2133            },
2134            "overloads": [],
2135            "decorators": [],
2136            "loc": {
2137              "start": {
2138                "line": 1,
2139                "column": 1
2140              },
2141              "end": {
2142                "line": 1,
2143                "column": 1
2144              }
2145            }
2146          }
2147        ],
2148        "loc": {
2149          "start": {
2150            "line": 1,
2151            "column": 1
2152          },
2153          "end": {
2154            "line": 1,
2155            "column": 1
2156          }
2157        }
2158      },
2159      "loc": {
2160        "start": {
2161          "line": 1,
2162          "column": 1
2163        },
2164        "end": {
2165          "line": 1,
2166          "column": 1
2167        }
2168      }
2169    }
2170  ],
2171  "loc": {
2172    "start": {
2173      "line": 1,
2174      "column": 1
2175    },
2176    "end": {
2177      "line": 39,
2178      "column": 1
2179    }
2180  }
2181}
2182