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