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