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