• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "TSInterfaceDeclaration",
6      "body": {
7        "type": "TSInterfaceBody",
8        "body": [
9          {
10            "type": "MethodDefinition",
11            "key": {
12              "type": "Identifier",
13              "name": "then",
14              "decorators": [],
15              "loc": {
16                "start": {
17                  "line": 17,
18                  "column": 5
19                },
20                "end": {
21                  "line": 17,
22                  "column": 9
23                }
24              }
25            },
26            "kind": "method",
27            "accessibility": "public",
28            "static": false,
29            "optional": false,
30            "computed": false,
31            "value": {
32              "type": "FunctionExpression",
33              "function": {
34                "type": "ScriptFunction",
35                "id": {
36                  "type": "Identifier",
37                  "name": "then",
38                  "decorators": [],
39                  "loc": {
40                    "start": {
41                      "line": 17,
42                      "column": 5
43                    },
44                    "end": {
45                      "line": 17,
46                      "column": 9
47                    }
48                  }
49                },
50                "generator": false,
51                "async": false,
52                "expression": false,
53                "params": [
54                  {
55                    "type": "ETSParameterExpression",
56                    "name": {
57                      "type": "Identifier",
58                      "name": "onFulfilled",
59                      "typeAnnotation": {
60                        "type": "ETSUnionType",
61                        "types": [
62                          {
63                            "type": "ETSFunctionType",
64                            "params": [
65                              {
66                                "type": "ETSParameterExpression",
67                                "name": {
68                                  "type": "Identifier",
69                                  "name": "value",
70                                  "typeAnnotation": {
71                                    "type": "ETSTypeReference",
72                                    "part": {
73                                      "type": "ETSTypeReferencePart",
74                                      "name": {
75                                        "type": "Identifier",
76                                        "name": "T",
77                                        "decorators": [],
78                                        "loc": {
79                                          "start": {
80                                            "line": 17,
81                                            "column": 46
82                                          },
83                                          "end": {
84                                            "line": 17,
85                                            "column": 47
86                                          }
87                                        }
88                                      },
89                                      "loc": {
90                                        "start": {
91                                          "line": 17,
92                                          "column": 46
93                                        },
94                                        "end": {
95                                          "line": 17,
96                                          "column": 48
97                                        }
98                                      }
99                                    },
100                                    "loc": {
101                                      "start": {
102                                        "line": 17,
103                                        "column": 46
104                                      },
105                                      "end": {
106                                        "line": 17,
107                                        "column": 48
108                                      }
109                                    }
110                                  },
111                                  "decorators": [],
112                                  "loc": {
113                                    "start": {
114                                      "line": 17,
115                                      "column": 39
116                                    },
117                                    "end": {
118                                      "line": 17,
119                                      "column": 48
120                                    }
121                                  }
122                                },
123                                "loc": {
124                                  "start": {
125                                    "line": 17,
126                                    "column": 39
127                                  },
128                                  "end": {
129                                    "line": 17,
130                                    "column": 48
131                                  }
132                                }
133                              }
134                            ],
135                            "returnType": {
136                              "type": "ETSUnionType",
137                              "types": [
138                                {
139                                  "type": "ETSTypeReference",
140                                  "part": {
141                                    "type": "ETSTypeReferencePart",
142                                    "name": {
143                                      "type": "Identifier",
144                                      "name": "U",
145                                      "decorators": [],
146                                      "loc": {
147                                        "start": {
148                                          "line": 17,
149                                          "column": 52
150                                        },
151                                        "end": {
152                                          "line": 17,
153                                          "column": 53
154                                        }
155                                      }
156                                    },
157                                    "loc": {
158                                      "start": {
159                                        "line": 17,
160                                        "column": 52
161                                      },
162                                      "end": {
163                                        "line": 17,
164                                        "column": 54
165                                      }
166                                    }
167                                  },
168                                  "loc": {
169                                    "start": {
170                                      "line": 17,
171                                      "column": 52
172                                    },
173                                    "end": {
174                                      "line": 17,
175                                      "column": 54
176                                    }
177                                  }
178                                },
179                                {
180                                  "type": "ETSTypeReference",
181                                  "part": {
182                                    "type": "ETSTypeReferencePart",
183                                    "name": {
184                                      "type": "Identifier",
185                                      "name": "PL",
186                                      "decorators": [],
187                                      "loc": {
188                                        "start": {
189                                          "line": 17,
190                                          "column": 54
191                                        },
192                                        "end": {
193                                          "line": 17,
194                                          "column": 56
195                                        }
196                                      }
197                                    },
198                                    "typeParams": {
199                                      "type": "TSTypeParameterInstantiation",
200                                      "params": [
201                                        {
202                                          "type": "ETSTypeReference",
203                                          "part": {
204                                            "type": "ETSTypeReferencePart",
205                                            "name": {
206                                              "type": "Identifier",
207                                              "name": "U",
208                                              "decorators": [],
209                                              "loc": {
210                                                "start": {
211                                                  "line": 17,
212                                                  "column": 57
213                                                },
214                                                "end": {
215                                                  "line": 17,
216                                                  "column": 58
217                                                }
218                                              }
219                                            },
220                                            "loc": {
221                                              "start": {
222                                                "line": 17,
223                                                "column": 57
224                                              },
225                                              "end": {
226                                                "line": 17,
227                                                "column": 59
228                                              }
229                                            }
230                                          },
231                                          "loc": {
232                                            "start": {
233                                              "line": 17,
234                                              "column": 57
235                                            },
236                                            "end": {
237                                              "line": 17,
238                                              "column": 59
239                                            }
240                                          }
241                                        }
242                                      ],
243                                      "loc": {
244                                        "start": {
245                                          "line": 17,
246                                          "column": 56
247                                        },
248                                        "end": {
249                                          "line": 17,
250                                          "column": 59
251                                        }
252                                      }
253                                    },
254                                    "loc": {
255                                      "start": {
256                                        "line": 17,
257                                        "column": 54
258                                      },
259                                      "end": {
260                                        "line": 17,
261                                        "column": 66
262                                      }
263                                    }
264                                  },
265                                  "loc": {
266                                    "start": {
267                                      "line": 17,
268                                      "column": 54
269                                    },
270                                    "end": {
271                                      "line": 17,
272                                      "column": 66
273                                    }
274                                  }
275                                }
276                              ],
277                              "loc": {
278                                "start": {
279                                  "line": 17,
280                                  "column": 52
281                                },
282                                "end": {
283                                  "line": 17,
284                                  "column": 66
285                                }
286                              }
287                            },
288                            "throwMarker": "throws",
289                            "loc": {
290                              "start": {
291                                "line": 17,
292                                "column": 38
293                              },
294                              "end": {
295                                "line": 17,
296                                "column": 66
297                              }
298                            }
299                          },
300                          {
301                            "type": "ETSUndefinedType",
302                            "loc": {
303                              "start": {
304                                "line": 17,
305                                "column": 35
306                              },
307                              "end": {
308                                "line": 17,
309                                "column": 36
310                              }
311                            }
312                          }
313                        ],
314                        "loc": {
315                          "start": {
316                            "line": 17,
317                            "column": 38
318                          },
319                          "end": {
320                            "line": 17,
321                            "column": 66
322                          }
323                        }
324                      },
325                      "decorators": [],
326                      "loc": {
327                        "start": {
328                          "line": 17,
329                          "column": 24
330                        },
331                        "end": {
332                          "line": 17,
333                          "column": 66
334                        }
335                      }
336                    },
337                    "loc": {
338                      "start": {
339                        "line": 17,
340                        "column": 24
341                      },
342                      "end": {
343                        "line": 17,
344                        "column": 66
345                      }
346                    }
347                  },
348                  {
349                    "type": "ETSParameterExpression",
350                    "name": {
351                      "type": "Identifier",
352                      "name": "onRejected",
353                      "typeAnnotation": {
354                        "type": "ETSUnionType",
355                        "types": [
356                          {
357                            "type": "ETSFunctionType",
358                            "params": [
359                              {
360                                "type": "ETSParameterExpression",
361                                "name": {
362                                  "type": "Identifier",
363                                  "name": "error",
364                                  "typeAnnotation": {
365                                    "type": "ETSTypeReference",
366                                    "part": {
367                                      "type": "ETSTypeReferencePart",
368                                      "name": {
369                                        "type": "Identifier",
370                                        "name": "NullishType",
371                                        "decorators": [],
372                                        "loc": {
373                                          "start": {
374                                            "line": 18,
375                                            "column": 34
376                                          },
377                                          "end": {
378                                            "line": 18,
379                                            "column": 45
380                                          }
381                                        }
382                                      },
383                                      "loc": {
384                                        "start": {
385                                          "line": 18,
386                                          "column": 34
387                                        },
388                                        "end": {
389                                          "line": 18,
390                                          "column": 46
391                                        }
392                                      }
393                                    },
394                                    "loc": {
395                                      "start": {
396                                        "line": 18,
397                                        "column": 34
398                                      },
399                                      "end": {
400                                        "line": 18,
401                                        "column": 46
402                                      }
403                                    }
404                                  },
405                                  "decorators": [],
406                                  "loc": {
407                                    "start": {
408                                      "line": 18,
409                                      "column": 27
410                                    },
411                                    "end": {
412                                      "line": 18,
413                                      "column": 46
414                                    }
415                                  }
416                                },
417                                "loc": {
418                                  "start": {
419                                    "line": 18,
420                                    "column": 27
421                                  },
422                                  "end": {
423                                    "line": 18,
424                                    "column": 46
425                                  }
426                                }
427                              }
428                            ],
429                            "returnType": {
430                              "type": "ETSUnionType",
431                              "types": [
432                                {
433                                  "type": "ETSTypeReference",
434                                  "part": {
435                                    "type": "ETSTypeReferencePart",
436                                    "name": {
437                                      "type": "Identifier",
438                                      "name": "E",
439                                      "decorators": [],
440                                      "loc": {
441                                        "start": {
442                                          "line": 18,
443                                          "column": 50
444                                        },
445                                        "end": {
446                                          "line": 18,
447                                          "column": 51
448                                        }
449                                      }
450                                    },
451                                    "loc": {
452                                      "start": {
453                                        "line": 18,
454                                        "column": 50
455                                      },
456                                      "end": {
457                                        "line": 18,
458                                        "column": 52
459                                      }
460                                    }
461                                  },
462                                  "loc": {
463                                    "start": {
464                                      "line": 18,
465                                      "column": 50
466                                    },
467                                    "end": {
468                                      "line": 18,
469                                      "column": 52
470                                    }
471                                  }
472                                },
473                                {
474                                  "type": "ETSTypeReference",
475                                  "part": {
476                                    "type": "ETSTypeReferencePart",
477                                    "name": {
478                                      "type": "Identifier",
479                                      "name": "PL",
480                                      "decorators": [],
481                                      "loc": {
482                                        "start": {
483                                          "line": 18,
484                                          "column": 52
485                                        },
486                                        "end": {
487                                          "line": 18,
488                                          "column": 54
489                                        }
490                                      }
491                                    },
492                                    "typeParams": {
493                                      "type": "TSTypeParameterInstantiation",
494                                      "params": [
495                                        {
496                                          "type": "ETSTypeReference",
497                                          "part": {
498                                            "type": "ETSTypeReferencePart",
499                                            "name": {
500                                              "type": "Identifier",
501                                              "name": "E",
502                                              "decorators": [],
503                                              "loc": {
504                                                "start": {
505                                                  "line": 18,
506                                                  "column": 55
507                                                },
508                                                "end": {
509                                                  "line": 18,
510                                                  "column": 56
511                                                }
512                                              }
513                                            },
514                                            "loc": {
515                                              "start": {
516                                                "line": 18,
517                                                "column": 55
518                                              },
519                                              "end": {
520                                                "line": 18,
521                                                "column": 57
522                                              }
523                                            }
524                                          },
525                                          "loc": {
526                                            "start": {
527                                              "line": 18,
528                                              "column": 55
529                                            },
530                                            "end": {
531                                              "line": 18,
532                                              "column": 57
533                                            }
534                                          }
535                                        }
536                                      ],
537                                      "loc": {
538                                        "start": {
539                                          "line": 18,
540                                          "column": 54
541                                        },
542                                        "end": {
543                                          "line": 18,
544                                          "column": 57
545                                        }
546                                      }
547                                    },
548                                    "loc": {
549                                      "start": {
550                                        "line": 18,
551                                        "column": 52
552                                      },
553                                      "end": {
554                                        "line": 18,
555                                        "column": 64
556                                      }
557                                    }
558                                  },
559                                  "loc": {
560                                    "start": {
561                                      "line": 18,
562                                      "column": 52
563                                    },
564                                    "end": {
565                                      "line": 18,
566                                      "column": 64
567                                    }
568                                  }
569                                }
570                              ],
571                              "loc": {
572                                "start": {
573                                  "line": 18,
574                                  "column": 50
575                                },
576                                "end": {
577                                  "line": 18,
578                                  "column": 64
579                                }
580                              }
581                            },
582                            "throwMarker": "throws",
583                            "loc": {
584                              "start": {
585                                "line": 18,
586                                "column": 26
587                              },
588                              "end": {
589                                "line": 18,
590                                "column": 64
591                              }
592                            }
593                          },
594                          {
595                            "type": "ETSUndefinedType",
596                            "loc": {
597                              "start": {
598                                "line": 18,
599                                "column": 23
600                              },
601                              "end": {
602                                "line": 18,
603                                "column": 24
604                              }
605                            }
606                          }
607                        ],
608                        "loc": {
609                          "start": {
610                            "line": 18,
611                            "column": 26
612                          },
613                          "end": {
614                            "line": 18,
615                            "column": 64
616                          }
617                        }
618                      },
619                      "decorators": [],
620                      "loc": {
621                        "start": {
622                          "line": 18,
623                          "column": 13
624                        },
625                        "end": {
626                          "line": 18,
627                          "column": 64
628                        }
629                      }
630                    },
631                    "loc": {
632                      "start": {
633                        "line": 18,
634                        "column": 13
635                      },
636                      "end": {
637                        "line": 18,
638                        "column": 64
639                      }
640                    }
641                  }
642                ],
643                "returnType": {
644                  "type": "ETSTypeReference",
645                  "part": {
646                    "type": "ETSTypeReferencePart",
647                    "name": {
648                      "type": "Identifier",
649                      "name": "PL",
650                      "decorators": [],
651                      "loc": {
652                        "start": {
653                          "line": 18,
654                          "column": 67
655                        },
656                        "end": {
657                          "line": 18,
658                          "column": 69
659                        }
660                      }
661                    },
662                    "typeParams": {
663                      "type": "TSTypeParameterInstantiation",
664                      "params": [
665                        {
666                          "type": "ETSUnionType",
667                          "types": [
668                            {
669                              "type": "ETSTypeReference",
670                              "part": {
671                                "type": "ETSTypeReferencePart",
672                                "name": {
673                                  "type": "Identifier",
674                                  "name": "U",
675                                  "decorators": [],
676                                  "loc": {
677                                    "start": {
678                                      "line": 18,
679                                      "column": 70
680                                    },
681                                    "end": {
682                                      "line": 18,
683                                      "column": 71
684                                    }
685                                  }
686                                },
687                                "loc": {
688                                  "start": {
689                                    "line": 18,
690                                    "column": 70
691                                  },
692                                  "end": {
693                                    "line": 18,
694                                    "column": 72
695                                  }
696                                }
697                              },
698                              "loc": {
699                                "start": {
700                                  "line": 18,
701                                  "column": 70
702                                },
703                                "end": {
704                                  "line": 18,
705                                  "column": 72
706                                }
707                              }
708                            },
709                            {
710                              "type": "ETSTypeReference",
711                              "part": {
712                                "type": "ETSTypeReferencePart",
713                                "name": {
714                                  "type": "Identifier",
715                                  "name": "E",
716                                  "decorators": [],
717                                  "loc": {
718                                    "start": {
719                                      "line": 18,
720                                      "column": 72
721                                    },
722                                    "end": {
723                                      "line": 18,
724                                      "column": 73
725                                    }
726                                  }
727                                },
728                                "loc": {
729                                  "start": {
730                                    "line": 18,
731                                    "column": 72
732                                  },
733                                  "end": {
734                                    "line": 18,
735                                    "column": 74
736                                  }
737                                }
738                              },
739                              "loc": {
740                                "start": {
741                                  "line": 18,
742                                  "column": 72
743                                },
744                                "end": {
745                                  "line": 18,
746                                  "column": 74
747                                }
748                              }
749                            }
750                          ],
751                          "loc": {
752                            "start": {
753                              "line": 18,
754                              "column": 70
755                            },
756                            "end": {
757                              "line": 18,
758                              "column": 74
759                            }
760                          }
761                        }
762                      ],
763                      "loc": {
764                        "start": {
765                          "line": 18,
766                          "column": 69
767                        },
768                        "end": {
769                          "line": 18,
770                          "column": 74
771                        }
772                      }
773                    },
774                    "loc": {
775                      "start": {
776                        "line": 18,
777                        "column": 67
778                      },
779                      "end": {
780                        "line": 18,
781                        "column": 75
782                      }
783                    }
784                  },
785                  "loc": {
786                    "start": {
787                      "line": 18,
788                      "column": 67
789                    },
790                    "end": {
791                      "line": 18,
792                      "column": 75
793                    }
794                  }
795                },
796                "typeParameters": {
797                  "type": "TSTypeParameterDeclaration",
798                  "params": [
799                    {
800                      "type": "TSTypeParameter",
801                      "name": {
802                        "type": "Identifier",
803                        "name": "U",
804                        "decorators": [],
805                        "loc": {
806                          "start": {
807                            "line": 17,
808                            "column": 10
809                          },
810                          "end": {
811                            "line": 17,
812                            "column": 11
813                          }
814                        }
815                      },
816                      "loc": {
817                        "start": {
818                          "line": 17,
819                          "column": 10
820                        },
821                        "end": {
822                          "line": 17,
823                          "column": 12
824                        }
825                      }
826                    },
827                    {
828                      "type": "TSTypeParameter",
829                      "name": {
830                        "type": "Identifier",
831                        "name": "E",
832                        "decorators": [],
833                        "loc": {
834                          "start": {
835                            "line": 17,
836                            "column": 13
837                          },
838                          "end": {
839                            "line": 17,
840                            "column": 14
841                          }
842                        }
843                      },
844                      "default": {
845                        "type": "ETSTypeReference",
846                        "part": {
847                          "type": "ETSTypeReferencePart",
848                          "name": {
849                            "type": "Identifier",
850                            "name": "never",
851                            "decorators": [],
852                            "loc": {
853                              "start": {
854                                "line": 17,
855                                "column": 17
856                              },
857                              "end": {
858                                "line": 17,
859                                "column": 22
860                              }
861                            }
862                          },
863                          "loc": {
864                            "start": {
865                              "line": 17,
866                              "column": 17
867                            },
868                            "end": {
869                              "line": 17,
870                              "column": 23
871                            }
872                          }
873                        },
874                        "loc": {
875                          "start": {
876                            "line": 17,
877                            "column": 17
878                          },
879                          "end": {
880                            "line": 17,
881                            "column": 23
882                          }
883                        }
884                      },
885                      "loc": {
886                        "start": {
887                          "line": 17,
888                          "column": 13
889                        },
890                        "end": {
891                          "line": 17,
892                          "column": 23
893                        }
894                      }
895                    }
896                  ],
897                  "loc": {
898                    "start": {
899                      "line": 17,
900                      "column": 9
901                    },
902                    "end": {
903                      "line": 17,
904                      "column": 23
905                    }
906                  }
907                },
908                "loc": {
909                  "start": {
910                    "line": 17,
911                    "column": 9
912                  },
913                  "end": {
914                    "line": 18,
915                    "column": 75
916                  }
917                }
918              },
919              "loc": {
920                "start": {
921                  "line": 17,
922                  "column": 9
923                },
924                "end": {
925                  "line": 18,
926                  "column": 75
927                }
928              }
929            },
930            "overloads": [
931              {
932                "type": "MethodDefinition",
933                "key": {
934                  "type": "Identifier",
935                  "name": "then",
936                  "decorators": [],
937                  "loc": {
938                    "start": {
939                      "line": 17,
940                      "column": 5
941                    },
942                    "end": {
943                      "line": 17,
944                      "column": 9
945                    }
946                  }
947                },
948                "kind": "method",
949                "accessibility": "public",
950                "static": false,
951                "optional": false,
952                "computed": false,
953                "value": {
954                  "type": "FunctionExpression",
955                  "function": {
956                    "type": "ScriptFunction",
957                    "id": {
958                      "type": "Identifier",
959                      "name": "then",
960                      "decorators": [],
961                      "loc": {
962                        "start": {
963                          "line": 17,
964                          "column": 5
965                        },
966                        "end": {
967                          "line": 17,
968                          "column": 9
969                        }
970                      }
971                    },
972                    "generator": false,
973                    "async": false,
974                    "expression": false,
975                    "params": [
976                      {
977                        "type": "ETSParameterExpression",
978                        "name": {
979                          "type": "Identifier",
980                          "name": "onFulfilled",
981                          "typeAnnotation": {
982                            "type": "ETSUnionType",
983                            "types": [
984                              {
985                                "type": "ETSFunctionType",
986                                "params": [
987                                  {
988                                    "type": "ETSParameterExpression",
989                                    "name": {
990                                      "type": "Identifier",
991                                      "name": "value",
992                                      "typeAnnotation": {
993                                        "type": "ETSTypeReference",
994                                        "part": {
995                                          "type": "ETSTypeReferencePart",
996                                          "name": {
997                                            "type": "Identifier",
998                                            "name": "T",
999                                            "decorators": [],
1000                                            "loc": {
1001                                              "start": {
1002                                                "line": 17,
1003                                                "column": 46
1004                                              },
1005                                              "end": {
1006                                                "line": 17,
1007                                                "column": 47
1008                                              }
1009                                            }
1010                                          },
1011                                          "loc": {
1012                                            "start": {
1013                                              "line": 17,
1014                                              "column": 46
1015                                            },
1016                                            "end": {
1017                                              "line": 17,
1018                                              "column": 48
1019                                            }
1020                                          }
1021                                        },
1022                                        "loc": {
1023                                          "start": {
1024                                            "line": 17,
1025                                            "column": 46
1026                                          },
1027                                          "end": {
1028                                            "line": 17,
1029                                            "column": 48
1030                                          }
1031                                        }
1032                                      },
1033                                      "decorators": [],
1034                                      "loc": {
1035                                        "start": {
1036                                          "line": 17,
1037                                          "column": 39
1038                                        },
1039                                        "end": {
1040                                          "line": 17,
1041                                          "column": 48
1042                                        }
1043                                      }
1044                                    },
1045                                    "loc": {
1046                                      "start": {
1047                                        "line": 1,
1048                                        "column": 1
1049                                      },
1050                                      "end": {
1051                                        "line": 1,
1052                                        "column": 1
1053                                      }
1054                                    }
1055                                  }
1056                                ],
1057                                "returnType": {
1058                                  "type": "ETSUnionType",
1059                                  "types": [
1060                                    {
1061                                      "type": "ETSTypeReference",
1062                                      "part": {
1063                                        "type": "ETSTypeReferencePart",
1064                                        "name": {
1065                                          "type": "Identifier",
1066                                          "name": "U",
1067                                          "decorators": [],
1068                                          "loc": {
1069                                            "start": {
1070                                              "line": 17,
1071                                              "column": 52
1072                                            },
1073                                            "end": {
1074                                              "line": 17,
1075                                              "column": 53
1076                                            }
1077                                          }
1078                                        },
1079                                        "loc": {
1080                                          "start": {
1081                                            "line": 17,
1082                                            "column": 52
1083                                          },
1084                                          "end": {
1085                                            "line": 17,
1086                                            "column": 54
1087                                          }
1088                                        }
1089                                      },
1090                                      "loc": {
1091                                        "start": {
1092                                          "line": 17,
1093                                          "column": 52
1094                                        },
1095                                        "end": {
1096                                          "line": 17,
1097                                          "column": 54
1098                                        }
1099                                      }
1100                                    },
1101                                    {
1102                                      "type": "ETSTypeReference",
1103                                      "part": {
1104                                        "type": "ETSTypeReferencePart",
1105                                        "name": {
1106                                          "type": "Identifier",
1107                                          "name": "PL",
1108                                          "decorators": [],
1109                                          "loc": {
1110                                            "start": {
1111                                              "line": 17,
1112                                              "column": 54
1113                                            },
1114                                            "end": {
1115                                              "line": 17,
1116                                              "column": 56
1117                                            }
1118                                          }
1119                                        },
1120                                        "typeParams": {
1121                                          "type": "TSTypeParameterInstantiation",
1122                                          "params": [
1123                                            {
1124                                              "type": "ETSTypeReference",
1125                                              "part": {
1126                                                "type": "ETSTypeReferencePart",
1127                                                "name": {
1128                                                  "type": "Identifier",
1129                                                  "name": "U",
1130                                                  "decorators": [],
1131                                                  "loc": {
1132                                                    "start": {
1133                                                      "line": 17,
1134                                                      "column": 57
1135                                                    },
1136                                                    "end": {
1137                                                      "line": 17,
1138                                                      "column": 58
1139                                                    }
1140                                                  }
1141                                                },
1142                                                "loc": {
1143                                                  "start": {
1144                                                    "line": 17,
1145                                                    "column": 57
1146                                                  },
1147                                                  "end": {
1148                                                    "line": 17,
1149                                                    "column": 59
1150                                                  }
1151                                                }
1152                                              },
1153                                              "loc": {
1154                                                "start": {
1155                                                  "line": 17,
1156                                                  "column": 57
1157                                                },
1158                                                "end": {
1159                                                  "line": 17,
1160                                                  "column": 59
1161                                                }
1162                                              }
1163                                            }
1164                                          ],
1165                                          "loc": {
1166                                            "start": {
1167                                              "line": 17,
1168                                              "column": 56
1169                                            },
1170                                            "end": {
1171                                              "line": 17,
1172                                              "column": 59
1173                                            }
1174                                          }
1175                                        },
1176                                        "loc": {
1177                                          "start": {
1178                                            "line": 17,
1179                                            "column": 54
1180                                          },
1181                                          "end": {
1182                                            "line": 17,
1183                                            "column": 66
1184                                          }
1185                                        }
1186                                      },
1187                                      "loc": {
1188                                        "start": {
1189                                          "line": 17,
1190                                          "column": 54
1191                                        },
1192                                        "end": {
1193                                          "line": 17,
1194                                          "column": 66
1195                                        }
1196                                      }
1197                                    }
1198                                  ],
1199                                  "loc": {
1200                                    "start": {
1201                                      "line": 1,
1202                                      "column": 1
1203                                    },
1204                                    "end": {
1205                                      "line": 1,
1206                                      "column": 1
1207                                    }
1208                                  }
1209                                },
1210                                "throwMarker": "throws",
1211                                "loc": {
1212                                  "start": {
1213                                    "line": 1,
1214                                    "column": 1
1215                                  },
1216                                  "end": {
1217                                    "line": 1,
1218                                    "column": 1
1219                                  }
1220                                }
1221                              },
1222                              {
1223                                "type": "ETSUndefinedType",
1224                                "loc": {
1225                                  "start": {
1226                                    "line": 1,
1227                                    "column": 1
1228                                  },
1229                                  "end": {
1230                                    "line": 1,
1231                                    "column": 1
1232                                  }
1233                                }
1234                              }
1235                            ],
1236                            "loc": {
1237                              "start": {
1238                                "line": 1,
1239                                "column": 1
1240                              },
1241                              "end": {
1242                                "line": 1,
1243                                "column": 1
1244                              }
1245                            }
1246                          },
1247                          "decorators": [],
1248                          "loc": {
1249                            "start": {
1250                              "line": 17,
1251                              "column": 24
1252                            },
1253                            "end": {
1254                              "line": 17,
1255                              "column": 66
1256                            }
1257                          }
1258                        },
1259                        "loc": {
1260                          "start": {
1261                            "line": 1,
1262                            "column": 1
1263                          },
1264                          "end": {
1265                            "line": 1,
1266                            "column": 1
1267                          }
1268                        }
1269                      }
1270                    ],
1271                    "returnType": {
1272                      "type": "ETSTypeReference",
1273                      "part": {
1274                        "type": "ETSTypeReferencePart",
1275                        "name": {
1276                          "type": "Identifier",
1277                          "name": "PL",
1278                          "decorators": [],
1279                          "loc": {
1280                            "start": {
1281                              "line": 18,
1282                              "column": 67
1283                            },
1284                            "end": {
1285                              "line": 18,
1286                              "column": 69
1287                            }
1288                          }
1289                        },
1290                        "typeParams": {
1291                          "type": "TSTypeParameterInstantiation",
1292                          "params": [
1293                            {
1294                              "type": "ETSUnionType",
1295                              "types": [
1296                                {
1297                                  "type": "ETSTypeReference",
1298                                  "part": {
1299                                    "type": "ETSTypeReferencePart",
1300                                    "name": {
1301                                      "type": "Identifier",
1302                                      "name": "U",
1303                                      "decorators": [],
1304                                      "loc": {
1305                                        "start": {
1306                                          "line": 18,
1307                                          "column": 70
1308                                        },
1309                                        "end": {
1310                                          "line": 18,
1311                                          "column": 71
1312                                        }
1313                                      }
1314                                    },
1315                                    "loc": {
1316                                      "start": {
1317                                        "line": 18,
1318                                        "column": 70
1319                                      },
1320                                      "end": {
1321                                        "line": 18,
1322                                        "column": 72
1323                                      }
1324                                    }
1325                                  },
1326                                  "loc": {
1327                                    "start": {
1328                                      "line": 18,
1329                                      "column": 70
1330                                    },
1331                                    "end": {
1332                                      "line": 18,
1333                                      "column": 72
1334                                    }
1335                                  }
1336                                },
1337                                {
1338                                  "type": "ETSTypeReference",
1339                                  "part": {
1340                                    "type": "ETSTypeReferencePart",
1341                                    "name": {
1342                                      "type": "Identifier",
1343                                      "name": "E",
1344                                      "decorators": [],
1345                                      "loc": {
1346                                        "start": {
1347                                          "line": 18,
1348                                          "column": 72
1349                                        },
1350                                        "end": {
1351                                          "line": 18,
1352                                          "column": 73
1353                                        }
1354                                      }
1355                                    },
1356                                    "loc": {
1357                                      "start": {
1358                                        "line": 18,
1359                                        "column": 72
1360                                      },
1361                                      "end": {
1362                                        "line": 18,
1363                                        "column": 74
1364                                      }
1365                                    }
1366                                  },
1367                                  "loc": {
1368                                    "start": {
1369                                      "line": 18,
1370                                      "column": 72
1371                                    },
1372                                    "end": {
1373                                      "line": 18,
1374                                      "column": 74
1375                                    }
1376                                  }
1377                                }
1378                              ],
1379                              "loc": {
1380                                "start": {
1381                                  "line": 1,
1382                                  "column": 1
1383                                },
1384                                "end": {
1385                                  "line": 1,
1386                                  "column": 1
1387                                }
1388                              }
1389                            }
1390                          ],
1391                          "loc": {
1392                            "start": {
1393                              "line": 18,
1394                              "column": 69
1395                            },
1396                            "end": {
1397                              "line": 18,
1398                              "column": 74
1399                            }
1400                          }
1401                        },
1402                        "loc": {
1403                          "start": {
1404                            "line": 18,
1405                            "column": 67
1406                          },
1407                          "end": {
1408                            "line": 18,
1409                            "column": 75
1410                          }
1411                        }
1412                      },
1413                      "loc": {
1414                        "start": {
1415                          "line": 18,
1416                          "column": 67
1417                        },
1418                        "end": {
1419                          "line": 18,
1420                          "column": 75
1421                        }
1422                      }
1423                    },
1424                    "typeParameters": {
1425                      "type": "TSTypeParameterDeclaration",
1426                      "params": [
1427                        {
1428                          "type": "TSTypeParameter",
1429                          "name": {
1430                            "type": "Identifier",
1431                            "name": "U",
1432                            "decorators": [],
1433                            "loc": {
1434                              "start": {
1435                                "line": 17,
1436                                "column": 10
1437                              },
1438                              "end": {
1439                                "line": 17,
1440                                "column": 11
1441                              }
1442                            }
1443                          },
1444                          "loc": {
1445                            "start": {
1446                              "line": 1,
1447                              "column": 1
1448                            },
1449                            "end": {
1450                              "line": 1,
1451                              "column": 1
1452                            }
1453                          }
1454                        },
1455                        {
1456                          "type": "TSTypeParameter",
1457                          "name": {
1458                            "type": "Identifier",
1459                            "name": "E",
1460                            "decorators": [],
1461                            "loc": {
1462                              "start": {
1463                                "line": 17,
1464                                "column": 13
1465                              },
1466                              "end": {
1467                                "line": 17,
1468                                "column": 14
1469                              }
1470                            }
1471                          },
1472                          "default": {
1473                            "type": "ETSTypeReference",
1474                            "part": {
1475                              "type": "ETSTypeReferencePart",
1476                              "name": {
1477                                "type": "Identifier",
1478                                "name": "never",
1479                                "decorators": [],
1480                                "loc": {
1481                                  "start": {
1482                                    "line": 17,
1483                                    "column": 17
1484                                  },
1485                                  "end": {
1486                                    "line": 17,
1487                                    "column": 22
1488                                  }
1489                                }
1490                              },
1491                              "loc": {
1492                                "start": {
1493                                  "line": 17,
1494                                  "column": 17
1495                                },
1496                                "end": {
1497                                  "line": 17,
1498                                  "column": 23
1499                                }
1500                              }
1501                            },
1502                            "loc": {
1503                              "start": {
1504                                "line": 17,
1505                                "column": 17
1506                              },
1507                              "end": {
1508                                "line": 17,
1509                                "column": 23
1510                              }
1511                            }
1512                          },
1513                          "loc": {
1514                            "start": {
1515                              "line": 1,
1516                              "column": 1
1517                            },
1518                            "end": {
1519                              "line": 1,
1520                              "column": 1
1521                            }
1522                          }
1523                        }
1524                      ],
1525                      "loc": {
1526                        "start": {
1527                          "line": 1,
1528                          "column": 1
1529                        },
1530                        "end": {
1531                          "line": 1,
1532                          "column": 1
1533                        }
1534                      }
1535                    },
1536                    "body": {
1537                      "type": "BlockStatement",
1538                      "statements": [],
1539                      "loc": {
1540                        "start": {
1541                          "line": 1,
1542                          "column": 1
1543                        },
1544                        "end": {
1545                          "line": 1,
1546                          "column": 1
1547                        }
1548                      }
1549                    },
1550                    "loc": {
1551                      "start": {
1552                        "line": 628,
1553                        "column": 1
1554                      },
1555                      "end": {
1556                        "line": 628,
1557                        "column": 1
1558                      }
1559                    }
1560                  },
1561                  "loc": {
1562                    "start": {
1563                      "line": 1,
1564                      "column": 1
1565                    },
1566                    "end": {
1567                      "line": 1,
1568                      "column": 1
1569                    }
1570                  }
1571                },
1572                "overloads": [],
1573                "decorators": [],
1574                "loc": {
1575                  "start": {
1576                    "line": 17,
1577                    "column": 5
1578                  },
1579                  "end": {
1580                    "line": 1,
1581                    "column": 1
1582                  }
1583                }
1584              },
1585              {
1586                "type": "MethodDefinition",
1587                "key": {
1588                  "type": "Identifier",
1589                  "name": "then",
1590                  "decorators": [],
1591                  "loc": {
1592                    "start": {
1593                      "line": 17,
1594                      "column": 5
1595                    },
1596                    "end": {
1597                      "line": 17,
1598                      "column": 9
1599                    }
1600                  }
1601                },
1602                "kind": "method",
1603                "accessibility": "public",
1604                "static": false,
1605                "optional": false,
1606                "computed": false,
1607                "value": {
1608                  "type": "FunctionExpression",
1609                  "function": {
1610                    "type": "ScriptFunction",
1611                    "id": {
1612                      "type": "Identifier",
1613                      "name": "then",
1614                      "decorators": [],
1615                      "loc": {
1616                        "start": {
1617                          "line": 17,
1618                          "column": 5
1619                        },
1620                        "end": {
1621                          "line": 17,
1622                          "column": 9
1623                        }
1624                      }
1625                    },
1626                    "generator": false,
1627                    "async": false,
1628                    "expression": false,
1629                    "params": [],
1630                    "returnType": {
1631                      "type": "ETSTypeReference",
1632                      "part": {
1633                        "type": "ETSTypeReferencePart",
1634                        "name": {
1635                          "type": "Identifier",
1636                          "name": "PL",
1637                          "decorators": [],
1638                          "loc": {
1639                            "start": {
1640                              "line": 18,
1641                              "column": 67
1642                            },
1643                            "end": {
1644                              "line": 18,
1645                              "column": 69
1646                            }
1647                          }
1648                        },
1649                        "typeParams": {
1650                          "type": "TSTypeParameterInstantiation",
1651                          "params": [
1652                            {
1653                              "type": "ETSUnionType",
1654                              "types": [
1655                                {
1656                                  "type": "ETSTypeReference",
1657                                  "part": {
1658                                    "type": "ETSTypeReferencePart",
1659                                    "name": {
1660                                      "type": "Identifier",
1661                                      "name": "U",
1662                                      "decorators": [],
1663                                      "loc": {
1664                                        "start": {
1665                                          "line": 18,
1666                                          "column": 70
1667                                        },
1668                                        "end": {
1669                                          "line": 18,
1670                                          "column": 71
1671                                        }
1672                                      }
1673                                    },
1674                                    "loc": {
1675                                      "start": {
1676                                        "line": 18,
1677                                        "column": 70
1678                                      },
1679                                      "end": {
1680                                        "line": 18,
1681                                        "column": 72
1682                                      }
1683                                    }
1684                                  },
1685                                  "loc": {
1686                                    "start": {
1687                                      "line": 18,
1688                                      "column": 70
1689                                    },
1690                                    "end": {
1691                                      "line": 18,
1692                                      "column": 72
1693                                    }
1694                                  }
1695                                },
1696                                {
1697                                  "type": "ETSTypeReference",
1698                                  "part": {
1699                                    "type": "ETSTypeReferencePart",
1700                                    "name": {
1701                                      "type": "Identifier",
1702                                      "name": "E",
1703                                      "decorators": [],
1704                                      "loc": {
1705                                        "start": {
1706                                          "line": 18,
1707                                          "column": 72
1708                                        },
1709                                        "end": {
1710                                          "line": 18,
1711                                          "column": 73
1712                                        }
1713                                      }
1714                                    },
1715                                    "loc": {
1716                                      "start": {
1717                                        "line": 18,
1718                                        "column": 72
1719                                      },
1720                                      "end": {
1721                                        "line": 18,
1722                                        "column": 74
1723                                      }
1724                                    }
1725                                  },
1726                                  "loc": {
1727                                    "start": {
1728                                      "line": 18,
1729                                      "column": 72
1730                                    },
1731                                    "end": {
1732                                      "line": 18,
1733                                      "column": 74
1734                                    }
1735                                  }
1736                                }
1737                              ],
1738                              "loc": {
1739                                "start": {
1740                                  "line": 1,
1741                                  "column": 1
1742                                },
1743                                "end": {
1744                                  "line": 1,
1745                                  "column": 1
1746                                }
1747                              }
1748                            }
1749                          ],
1750                          "loc": {
1751                            "start": {
1752                              "line": 18,
1753                              "column": 69
1754                            },
1755                            "end": {
1756                              "line": 18,
1757                              "column": 74
1758                            }
1759                          }
1760                        },
1761                        "loc": {
1762                          "start": {
1763                            "line": 18,
1764                            "column": 67
1765                          },
1766                          "end": {
1767                            "line": 18,
1768                            "column": 75
1769                          }
1770                        }
1771                      },
1772                      "loc": {
1773                        "start": {
1774                          "line": 18,
1775                          "column": 67
1776                        },
1777                        "end": {
1778                          "line": 18,
1779                          "column": 75
1780                        }
1781                      }
1782                    },
1783                    "typeParameters": {
1784                      "type": "TSTypeParameterDeclaration",
1785                      "params": [
1786                        {
1787                          "type": "TSTypeParameter",
1788                          "name": {
1789                            "type": "Identifier",
1790                            "name": "U",
1791                            "decorators": [],
1792                            "loc": {
1793                              "start": {
1794                                "line": 17,
1795                                "column": 10
1796                              },
1797                              "end": {
1798                                "line": 17,
1799                                "column": 11
1800                              }
1801                            }
1802                          },
1803                          "loc": {
1804                            "start": {
1805                              "line": 1,
1806                              "column": 1
1807                            },
1808                            "end": {
1809                              "line": 1,
1810                              "column": 1
1811                            }
1812                          }
1813                        },
1814                        {
1815                          "type": "TSTypeParameter",
1816                          "name": {
1817                            "type": "Identifier",
1818                            "name": "E",
1819                            "decorators": [],
1820                            "loc": {
1821                              "start": {
1822                                "line": 17,
1823                                "column": 13
1824                              },
1825                              "end": {
1826                                "line": 17,
1827                                "column": 14
1828                              }
1829                            }
1830                          },
1831                          "default": {
1832                            "type": "ETSTypeReference",
1833                            "part": {
1834                              "type": "ETSTypeReferencePart",
1835                              "name": {
1836                                "type": "Identifier",
1837                                "name": "never",
1838                                "decorators": [],
1839                                "loc": {
1840                                  "start": {
1841                                    "line": 17,
1842                                    "column": 17
1843                                  },
1844                                  "end": {
1845                                    "line": 17,
1846                                    "column": 22
1847                                  }
1848                                }
1849                              },
1850                              "loc": {
1851                                "start": {
1852                                  "line": 17,
1853                                  "column": 17
1854                                },
1855                                "end": {
1856                                  "line": 17,
1857                                  "column": 23
1858                                }
1859                              }
1860                            },
1861                            "loc": {
1862                              "start": {
1863                                "line": 17,
1864                                "column": 17
1865                              },
1866                              "end": {
1867                                "line": 17,
1868                                "column": 23
1869                              }
1870                            }
1871                          },
1872                          "loc": {
1873                            "start": {
1874                              "line": 1,
1875                              "column": 1
1876                            },
1877                            "end": {
1878                              "line": 1,
1879                              "column": 1
1880                            }
1881                          }
1882                        }
1883                      ],
1884                      "loc": {
1885                        "start": {
1886                          "line": 1,
1887                          "column": 1
1888                        },
1889                        "end": {
1890                          "line": 1,
1891                          "column": 1
1892                        }
1893                      }
1894                    },
1895                    "body": {
1896                      "type": "BlockStatement",
1897                      "statements": [],
1898                      "loc": {
1899                        "start": {
1900                          "line": 1,
1901                          "column": 1
1902                        },
1903                        "end": {
1904                          "line": 1,
1905                          "column": 1
1906                        }
1907                      }
1908                    },
1909                    "loc": {
1910                      "start": {
1911                        "line": 628,
1912                        "column": 1
1913                      },
1914                      "end": {
1915                        "line": 628,
1916                        "column": 1
1917                      }
1918                    }
1919                  },
1920                  "loc": {
1921                    "start": {
1922                      "line": 1,
1923                      "column": 1
1924                    },
1925                    "end": {
1926                      "line": 1,
1927                      "column": 1
1928                    }
1929                  }
1930                },
1931                "overloads": [],
1932                "decorators": [],
1933                "loc": {
1934                  "start": {
1935                    "line": 17,
1936                    "column": 5
1937                  },
1938                  "end": {
1939                    "line": 1,
1940                    "column": 1
1941                  }
1942                }
1943              }
1944            ],
1945            "decorators": [],
1946            "loc": {
1947              "start": {
1948                "line": 17,
1949                "column": 5
1950              },
1951              "end": {
1952                "line": 18,
1953                "column": 75
1954              }
1955            }
1956          }
1957        ],
1958        "loc": {
1959          "start": {
1960            "line": 16,
1961            "column": 17
1962          },
1963          "end": {
1964            "line": 19,
1965            "column": 2
1966          }
1967        }
1968      },
1969      "id": {
1970        "type": "Identifier",
1971        "name": "PL",
1972        "decorators": [],
1973        "loc": {
1974          "start": {
1975            "line": 16,
1976            "column": 11
1977          },
1978          "end": {
1979            "line": 16,
1980            "column": 13
1981          }
1982        }
1983      },
1984      "extends": [],
1985      "typeParameters": {
1986        "type": "TSTypeParameterDeclaration",
1987        "params": [
1988          {
1989            "type": "TSTypeParameter",
1990            "name": {
1991              "type": "Identifier",
1992              "name": "T",
1993              "decorators": [],
1994              "loc": {
1995                "start": {
1996                  "line": 16,
1997                  "column": 14
1998                },
1999                "end": {
2000                  "line": 16,
2001                  "column": 15
2002                }
2003              }
2004            },
2005            "loc": {
2006              "start": {
2007                "line": 16,
2008                "column": 14
2009              },
2010              "end": {
2011                "line": 16,
2012                "column": 16
2013              }
2014            }
2015          }
2016        ],
2017        "loc": {
2018          "start": {
2019            "line": 16,
2020            "column": 13
2021          },
2022          "end": {
2023            "line": 16,
2024            "column": 16
2025          }
2026        }
2027      },
2028      "loc": {
2029        "start": {
2030          "line": 16,
2031          "column": 1
2032        },
2033        "end": {
2034          "line": 21,
2035          "column": 6
2036        }
2037      }
2038    },
2039    {
2040      "type": "ClassDeclaration",
2041      "definition": {
2042        "id": {
2043          "type": "Identifier",
2044          "name": "P",
2045          "decorators": [],
2046          "loc": {
2047            "start": {
2048              "line": 21,
2049              "column": 7
2050            },
2051            "end": {
2052              "line": 21,
2053              "column": 8
2054            }
2055          }
2056        },
2057        "typeParameters": {
2058          "type": "TSTypeParameterDeclaration",
2059          "params": [
2060            {
2061              "type": "TSTypeParameter",
2062              "name": {
2063                "type": "Identifier",
2064                "name": "T",
2065                "decorators": [],
2066                "loc": {
2067                  "start": {
2068                    "line": 21,
2069                    "column": 9
2070                  },
2071                  "end": {
2072                    "line": 21,
2073                    "column": 10
2074                  }
2075                }
2076              },
2077              "loc": {
2078                "start": {
2079                  "line": 21,
2080                  "column": 9
2081                },
2082                "end": {
2083                  "line": 21,
2084                  "column": 11
2085                }
2086              }
2087            }
2088          ],
2089          "loc": {
2090            "start": {
2091              "line": 21,
2092              "column": 8
2093            },
2094            "end": {
2095              "line": 21,
2096              "column": 11
2097            }
2098          }
2099        },
2100        "superClass": null,
2101        "implements": [
2102          {
2103            "type": "TSClassImplements",
2104            "expression": {
2105              "type": "ETSTypeReference",
2106              "part": {
2107                "type": "ETSTypeReferencePart",
2108                "name": {
2109                  "type": "Identifier",
2110                  "name": "PL",
2111                  "decorators": [],
2112                  "loc": {
2113                    "start": {
2114                      "line": 21,
2115                      "column": 23
2116                    },
2117                    "end": {
2118                      "line": 21,
2119                      "column": 25
2120                    }
2121                  }
2122                },
2123                "typeParams": {
2124                  "type": "TSTypeParameterInstantiation",
2125                  "params": [
2126                    {
2127                      "type": "ETSTypeReference",
2128                      "part": {
2129                        "type": "ETSTypeReferencePart",
2130                        "name": {
2131                          "type": "Identifier",
2132                          "name": "T",
2133                          "decorators": [],
2134                          "loc": {
2135                            "start": {
2136                              "line": 21,
2137                              "column": 26
2138                            },
2139                            "end": {
2140                              "line": 21,
2141                              "column": 27
2142                            }
2143                          }
2144                        },
2145                        "loc": {
2146                          "start": {
2147                            "line": 21,
2148                            "column": 26
2149                          },
2150                          "end": {
2151                            "line": 21,
2152                            "column": 28
2153                          }
2154                        }
2155                      },
2156                      "loc": {
2157                        "start": {
2158                          "line": 21,
2159                          "column": 26
2160                        },
2161                        "end": {
2162                          "line": 21,
2163                          "column": 28
2164                        }
2165                      }
2166                    }
2167                  ],
2168                  "loc": {
2169                    "start": {
2170                      "line": 21,
2171                      "column": 25
2172                    },
2173                    "end": {
2174                      "line": 21,
2175                      "column": 28
2176                    }
2177                  }
2178                },
2179                "loc": {
2180                  "start": {
2181                    "line": 21,
2182                    "column": 23
2183                  },
2184                  "end": {
2185                    "line": 21,
2186                    "column": 30
2187                  }
2188                }
2189              },
2190              "loc": {
2191                "start": {
2192                  "line": 21,
2193                  "column": 23
2194                },
2195                "end": {
2196                  "line": 21,
2197                  "column": 30
2198                }
2199              }
2200            },
2201            "loc": {
2202              "start": {
2203                "line": 21,
2204                "column": 23
2205              },
2206              "end": {
2207                "line": 21,
2208                "column": 30
2209              }
2210            }
2211          }
2212        ],
2213        "body": [
2214          {
2215            "type": "MethodDefinition",
2216            "key": {
2217              "type": "Identifier",
2218              "name": "then",
2219              "decorators": [],
2220              "loc": {
2221                "start": {
2222                  "line": 22,
2223                  "column": 5
2224                },
2225                "end": {
2226                  "line": 22,
2227                  "column": 9
2228                }
2229              }
2230            },
2231            "kind": "method",
2232            "accessibility": "public",
2233            "static": false,
2234            "optional": false,
2235            "computed": false,
2236            "value": {
2237              "type": "FunctionExpression",
2238              "function": {
2239                "type": "ScriptFunction",
2240                "id": {
2241                  "type": "Identifier",
2242                  "name": "then",
2243                  "decorators": [],
2244                  "loc": {
2245                    "start": {
2246                      "line": 22,
2247                      "column": 5
2248                    },
2249                    "end": {
2250                      "line": 22,
2251                      "column": 9
2252                    }
2253                  }
2254                },
2255                "generator": false,
2256                "async": false,
2257                "expression": false,
2258                "params": [
2259                  {
2260                    "type": "ETSParameterExpression",
2261                    "name": {
2262                      "type": "Identifier",
2263                      "name": "onFulfilled",
2264                      "typeAnnotation": {
2265                        "type": "ETSUnionType",
2266                        "types": [
2267                          {
2268                            "type": "ETSFunctionType",
2269                            "params": [
2270                              {
2271                                "type": "ETSParameterExpression",
2272                                "name": {
2273                                  "type": "Identifier",
2274                                  "name": "value",
2275                                  "typeAnnotation": {
2276                                    "type": "ETSTypeReference",
2277                                    "part": {
2278                                      "type": "ETSTypeReferencePart",
2279                                      "name": {
2280                                        "type": "Identifier",
2281                                        "name": "T",
2282                                        "decorators": [],
2283                                        "loc": {
2284                                          "start": {
2285                                            "line": 22,
2286                                            "column": 46
2287                                          },
2288                                          "end": {
2289                                            "line": 22,
2290                                            "column": 47
2291                                          }
2292                                        }
2293                                      },
2294                                      "loc": {
2295                                        "start": {
2296                                          "line": 22,
2297                                          "column": 46
2298                                        },
2299                                        "end": {
2300                                          "line": 22,
2301                                          "column": 48
2302                                        }
2303                                      }
2304                                    },
2305                                    "loc": {
2306                                      "start": {
2307                                        "line": 22,
2308                                        "column": 46
2309                                      },
2310                                      "end": {
2311                                        "line": 22,
2312                                        "column": 48
2313                                      }
2314                                    }
2315                                  },
2316                                  "decorators": [],
2317                                  "loc": {
2318                                    "start": {
2319                                      "line": 22,
2320                                      "column": 39
2321                                    },
2322                                    "end": {
2323                                      "line": 22,
2324                                      "column": 48
2325                                    }
2326                                  }
2327                                },
2328                                "loc": {
2329                                  "start": {
2330                                    "line": 22,
2331                                    "column": 39
2332                                  },
2333                                  "end": {
2334                                    "line": 22,
2335                                    "column": 48
2336                                  }
2337                                }
2338                              }
2339                            ],
2340                            "returnType": {
2341                              "type": "ETSUnionType",
2342                              "types": [
2343                                {
2344                                  "type": "ETSTypeReference",
2345                                  "part": {
2346                                    "type": "ETSTypeReferencePart",
2347                                    "name": {
2348                                      "type": "Identifier",
2349                                      "name": "U",
2350                                      "decorators": [],
2351                                      "loc": {
2352                                        "start": {
2353                                          "line": 22,
2354                                          "column": 52
2355                                        },
2356                                        "end": {
2357                                          "line": 22,
2358                                          "column": 53
2359                                        }
2360                                      }
2361                                    },
2362                                    "loc": {
2363                                      "start": {
2364                                        "line": 22,
2365                                        "column": 52
2366                                      },
2367                                      "end": {
2368                                        "line": 22,
2369                                        "column": 54
2370                                      }
2371                                    }
2372                                  },
2373                                  "loc": {
2374                                    "start": {
2375                                      "line": 22,
2376                                      "column": 52
2377                                    },
2378                                    "end": {
2379                                      "line": 22,
2380                                      "column": 54
2381                                    }
2382                                  }
2383                                },
2384                                {
2385                                  "type": "ETSTypeReference",
2386                                  "part": {
2387                                    "type": "ETSTypeReferencePart",
2388                                    "name": {
2389                                      "type": "Identifier",
2390                                      "name": "PL",
2391                                      "decorators": [],
2392                                      "loc": {
2393                                        "start": {
2394                                          "line": 22,
2395                                          "column": 54
2396                                        },
2397                                        "end": {
2398                                          "line": 22,
2399                                          "column": 56
2400                                        }
2401                                      }
2402                                    },
2403                                    "typeParams": {
2404                                      "type": "TSTypeParameterInstantiation",
2405                                      "params": [
2406                                        {
2407                                          "type": "ETSTypeReference",
2408                                          "part": {
2409                                            "type": "ETSTypeReferencePart",
2410                                            "name": {
2411                                              "type": "Identifier",
2412                                              "name": "U",
2413                                              "decorators": [],
2414                                              "loc": {
2415                                                "start": {
2416                                                  "line": 22,
2417                                                  "column": 57
2418                                                },
2419                                                "end": {
2420                                                  "line": 22,
2421                                                  "column": 58
2422                                                }
2423                                              }
2424                                            },
2425                                            "loc": {
2426                                              "start": {
2427                                                "line": 22,
2428                                                "column": 57
2429                                              },
2430                                              "end": {
2431                                                "line": 22,
2432                                                "column": 59
2433                                              }
2434                                            }
2435                                          },
2436                                          "loc": {
2437                                            "start": {
2438                                              "line": 22,
2439                                              "column": 57
2440                                            },
2441                                            "end": {
2442                                              "line": 22,
2443                                              "column": 59
2444                                            }
2445                                          }
2446                                        }
2447                                      ],
2448                                      "loc": {
2449                                        "start": {
2450                                          "line": 22,
2451                                          "column": 56
2452                                        },
2453                                        "end": {
2454                                          "line": 22,
2455                                          "column": 59
2456                                        }
2457                                      }
2458                                    },
2459                                    "loc": {
2460                                      "start": {
2461                                        "line": 22,
2462                                        "column": 54
2463                                      },
2464                                      "end": {
2465                                        "line": 22,
2466                                        "column": 66
2467                                      }
2468                                    }
2469                                  },
2470                                  "loc": {
2471                                    "start": {
2472                                      "line": 22,
2473                                      "column": 54
2474                                    },
2475                                    "end": {
2476                                      "line": 22,
2477                                      "column": 66
2478                                    }
2479                                  }
2480                                }
2481                              ],
2482                              "loc": {
2483                                "start": {
2484                                  "line": 22,
2485                                  "column": 52
2486                                },
2487                                "end": {
2488                                  "line": 22,
2489                                  "column": 66
2490                                }
2491                              }
2492                            },
2493                            "throwMarker": "throws",
2494                            "loc": {
2495                              "start": {
2496                                "line": 22,
2497                                "column": 38
2498                              },
2499                              "end": {
2500                                "line": 22,
2501                                "column": 66
2502                              }
2503                            }
2504                          },
2505                          {
2506                            "type": "ETSUndefinedType",
2507                            "loc": {
2508                              "start": {
2509                                "line": 22,
2510                                "column": 35
2511                              },
2512                              "end": {
2513                                "line": 22,
2514                                "column": 36
2515                              }
2516                            }
2517                          }
2518                        ],
2519                        "loc": {
2520                          "start": {
2521                            "line": 22,
2522                            "column": 38
2523                          },
2524                          "end": {
2525                            "line": 22,
2526                            "column": 66
2527                          }
2528                        }
2529                      },
2530                      "decorators": [],
2531                      "loc": {
2532                        "start": {
2533                          "line": 22,
2534                          "column": 24
2535                        },
2536                        "end": {
2537                          "line": 22,
2538                          "column": 66
2539                        }
2540                      }
2541                    },
2542                    "loc": {
2543                      "start": {
2544                        "line": 22,
2545                        "column": 24
2546                      },
2547                      "end": {
2548                        "line": 22,
2549                        "column": 66
2550                      }
2551                    }
2552                  },
2553                  {
2554                    "type": "ETSParameterExpression",
2555                    "name": {
2556                      "type": "Identifier",
2557                      "name": "onRejected",
2558                      "typeAnnotation": {
2559                        "type": "ETSUnionType",
2560                        "types": [
2561                          {
2562                            "type": "ETSFunctionType",
2563                            "params": [
2564                              {
2565                                "type": "ETSParameterExpression",
2566                                "name": {
2567                                  "type": "Identifier",
2568                                  "name": "error",
2569                                  "typeAnnotation": {
2570                                    "type": "ETSTypeReference",
2571                                    "part": {
2572                                      "type": "ETSTypeReferencePart",
2573                                      "name": {
2574                                        "type": "Identifier",
2575                                        "name": "NullishType",
2576                                        "decorators": [],
2577                                        "loc": {
2578                                          "start": {
2579                                            "line": 23,
2580                                            "column": 34
2581                                          },
2582                                          "end": {
2583                                            "line": 23,
2584                                            "column": 45
2585                                          }
2586                                        }
2587                                      },
2588                                      "loc": {
2589                                        "start": {
2590                                          "line": 23,
2591                                          "column": 34
2592                                        },
2593                                        "end": {
2594                                          "line": 23,
2595                                          "column": 46
2596                                        }
2597                                      }
2598                                    },
2599                                    "loc": {
2600                                      "start": {
2601                                        "line": 23,
2602                                        "column": 34
2603                                      },
2604                                      "end": {
2605                                        "line": 23,
2606                                        "column": 46
2607                                      }
2608                                    }
2609                                  },
2610                                  "decorators": [],
2611                                  "loc": {
2612                                    "start": {
2613                                      "line": 23,
2614                                      "column": 27
2615                                    },
2616                                    "end": {
2617                                      "line": 23,
2618                                      "column": 46
2619                                    }
2620                                  }
2621                                },
2622                                "loc": {
2623                                  "start": {
2624                                    "line": 23,
2625                                    "column": 27
2626                                  },
2627                                  "end": {
2628                                    "line": 23,
2629                                    "column": 46
2630                                  }
2631                                }
2632                              }
2633                            ],
2634                            "returnType": {
2635                              "type": "ETSUnionType",
2636                              "types": [
2637                                {
2638                                  "type": "ETSTypeReference",
2639                                  "part": {
2640                                    "type": "ETSTypeReferencePart",
2641                                    "name": {
2642                                      "type": "Identifier",
2643                                      "name": "E",
2644                                      "decorators": [],
2645                                      "loc": {
2646                                        "start": {
2647                                          "line": 23,
2648                                          "column": 50
2649                                        },
2650                                        "end": {
2651                                          "line": 23,
2652                                          "column": 51
2653                                        }
2654                                      }
2655                                    },
2656                                    "loc": {
2657                                      "start": {
2658                                        "line": 23,
2659                                        "column": 50
2660                                      },
2661                                      "end": {
2662                                        "line": 23,
2663                                        "column": 52
2664                                      }
2665                                    }
2666                                  },
2667                                  "loc": {
2668                                    "start": {
2669                                      "line": 23,
2670                                      "column": 50
2671                                    },
2672                                    "end": {
2673                                      "line": 23,
2674                                      "column": 52
2675                                    }
2676                                  }
2677                                },
2678                                {
2679                                  "type": "ETSTypeReference",
2680                                  "part": {
2681                                    "type": "ETSTypeReferencePart",
2682                                    "name": {
2683                                      "type": "Identifier",
2684                                      "name": "PL",
2685                                      "decorators": [],
2686                                      "loc": {
2687                                        "start": {
2688                                          "line": 23,
2689                                          "column": 52
2690                                        },
2691                                        "end": {
2692                                          "line": 23,
2693                                          "column": 54
2694                                        }
2695                                      }
2696                                    },
2697                                    "typeParams": {
2698                                      "type": "TSTypeParameterInstantiation",
2699                                      "params": [
2700                                        {
2701                                          "type": "ETSTypeReference",
2702                                          "part": {
2703                                            "type": "ETSTypeReferencePart",
2704                                            "name": {
2705                                              "type": "Identifier",
2706                                              "name": "E",
2707                                              "decorators": [],
2708                                              "loc": {
2709                                                "start": {
2710                                                  "line": 23,
2711                                                  "column": 55
2712                                                },
2713                                                "end": {
2714                                                  "line": 23,
2715                                                  "column": 56
2716                                                }
2717                                              }
2718                                            },
2719                                            "loc": {
2720                                              "start": {
2721                                                "line": 23,
2722                                                "column": 55
2723                                              },
2724                                              "end": {
2725                                                "line": 23,
2726                                                "column": 57
2727                                              }
2728                                            }
2729                                          },
2730                                          "loc": {
2731                                            "start": {
2732                                              "line": 23,
2733                                              "column": 55
2734                                            },
2735                                            "end": {
2736                                              "line": 23,
2737                                              "column": 57
2738                                            }
2739                                          }
2740                                        }
2741                                      ],
2742                                      "loc": {
2743                                        "start": {
2744                                          "line": 23,
2745                                          "column": 54
2746                                        },
2747                                        "end": {
2748                                          "line": 23,
2749                                          "column": 57
2750                                        }
2751                                      }
2752                                    },
2753                                    "loc": {
2754                                      "start": {
2755                                        "line": 23,
2756                                        "column": 52
2757                                      },
2758                                      "end": {
2759                                        "line": 23,
2760                                        "column": 64
2761                                      }
2762                                    }
2763                                  },
2764                                  "loc": {
2765                                    "start": {
2766                                      "line": 23,
2767                                      "column": 52
2768                                    },
2769                                    "end": {
2770                                      "line": 23,
2771                                      "column": 64
2772                                    }
2773                                  }
2774                                }
2775                              ],
2776                              "loc": {
2777                                "start": {
2778                                  "line": 23,
2779                                  "column": 50
2780                                },
2781                                "end": {
2782                                  "line": 23,
2783                                  "column": 64
2784                                }
2785                              }
2786                            },
2787                            "throwMarker": "throws",
2788                            "loc": {
2789                              "start": {
2790                                "line": 23,
2791                                "column": 26
2792                              },
2793                              "end": {
2794                                "line": 23,
2795                                "column": 64
2796                              }
2797                            }
2798                          },
2799                          {
2800                            "type": "ETSUndefinedType",
2801                            "loc": {
2802                              "start": {
2803                                "line": 23,
2804                                "column": 23
2805                              },
2806                              "end": {
2807                                "line": 23,
2808                                "column": 24
2809                              }
2810                            }
2811                          }
2812                        ],
2813                        "loc": {
2814                          "start": {
2815                            "line": 23,
2816                            "column": 26
2817                          },
2818                          "end": {
2819                            "line": 23,
2820                            "column": 64
2821                          }
2822                        }
2823                      },
2824                      "decorators": [],
2825                      "loc": {
2826                        "start": {
2827                          "line": 23,
2828                          "column": 13
2829                        },
2830                        "end": {
2831                          "line": 23,
2832                          "column": 64
2833                        }
2834                      }
2835                    },
2836                    "loc": {
2837                      "start": {
2838                        "line": 23,
2839                        "column": 13
2840                      },
2841                      "end": {
2842                        "line": 23,
2843                        "column": 64
2844                      }
2845                    }
2846                  }
2847                ],
2848                "returnType": {
2849                  "type": "ETSTypeReference",
2850                  "part": {
2851                    "type": "ETSTypeReferencePart",
2852                    "name": {
2853                      "type": "Identifier",
2854                      "name": "PL",
2855                      "decorators": [],
2856                      "loc": {
2857                        "start": {
2858                          "line": 23,
2859                          "column": 67
2860                        },
2861                        "end": {
2862                          "line": 23,
2863                          "column": 69
2864                        }
2865                      }
2866                    },
2867                    "typeParams": {
2868                      "type": "TSTypeParameterInstantiation",
2869                      "params": [
2870                        {
2871                          "type": "ETSUnionType",
2872                          "types": [
2873                            {
2874                              "type": "ETSTypeReference",
2875                              "part": {
2876                                "type": "ETSTypeReferencePart",
2877                                "name": {
2878                                  "type": "Identifier",
2879                                  "name": "U",
2880                                  "decorators": [],
2881                                  "loc": {
2882                                    "start": {
2883                                      "line": 23,
2884                                      "column": 70
2885                                    },
2886                                    "end": {
2887                                      "line": 23,
2888                                      "column": 71
2889                                    }
2890                                  }
2891                                },
2892                                "loc": {
2893                                  "start": {
2894                                    "line": 23,
2895                                    "column": 70
2896                                  },
2897                                  "end": {
2898                                    "line": 23,
2899                                    "column": 72
2900                                  }
2901                                }
2902                              },
2903                              "loc": {
2904                                "start": {
2905                                  "line": 23,
2906                                  "column": 70
2907                                },
2908                                "end": {
2909                                  "line": 23,
2910                                  "column": 72
2911                                }
2912                              }
2913                            },
2914                            {
2915                              "type": "ETSTypeReference",
2916                              "part": {
2917                                "type": "ETSTypeReferencePart",
2918                                "name": {
2919                                  "type": "Identifier",
2920                                  "name": "E",
2921                                  "decorators": [],
2922                                  "loc": {
2923                                    "start": {
2924                                      "line": 23,
2925                                      "column": 72
2926                                    },
2927                                    "end": {
2928                                      "line": 23,
2929                                      "column": 73
2930                                    }
2931                                  }
2932                                },
2933                                "loc": {
2934                                  "start": {
2935                                    "line": 23,
2936                                    "column": 72
2937                                  },
2938                                  "end": {
2939                                    "line": 23,
2940                                    "column": 74
2941                                  }
2942                                }
2943                              },
2944                              "loc": {
2945                                "start": {
2946                                  "line": 23,
2947                                  "column": 72
2948                                },
2949                                "end": {
2950                                  "line": 23,
2951                                  "column": 74
2952                                }
2953                              }
2954                            }
2955                          ],
2956                          "loc": {
2957                            "start": {
2958                              "line": 23,
2959                              "column": 70
2960                            },
2961                            "end": {
2962                              "line": 23,
2963                              "column": 74
2964                            }
2965                          }
2966                        }
2967                      ],
2968                      "loc": {
2969                        "start": {
2970                          "line": 23,
2971                          "column": 69
2972                        },
2973                        "end": {
2974                          "line": 23,
2975                          "column": 74
2976                        }
2977                      }
2978                    },
2979                    "loc": {
2980                      "start": {
2981                        "line": 23,
2982                        "column": 67
2983                      },
2984                      "end": {
2985                        "line": 23,
2986                        "column": 76
2987                      }
2988                    }
2989                  },
2990                  "loc": {
2991                    "start": {
2992                      "line": 23,
2993                      "column": 67
2994                    },
2995                    "end": {
2996                      "line": 23,
2997                      "column": 76
2998                    }
2999                  }
3000                },
3001                "typeParameters": {
3002                  "type": "TSTypeParameterDeclaration",
3003                  "params": [
3004                    {
3005                      "type": "TSTypeParameter",
3006                      "name": {
3007                        "type": "Identifier",
3008                        "name": "U",
3009                        "decorators": [],
3010                        "loc": {
3011                          "start": {
3012                            "line": 22,
3013                            "column": 10
3014                          },
3015                          "end": {
3016                            "line": 22,
3017                            "column": 11
3018                          }
3019                        }
3020                      },
3021                      "loc": {
3022                        "start": {
3023                          "line": 22,
3024                          "column": 10
3025                        },
3026                        "end": {
3027                          "line": 22,
3028                          "column": 12
3029                        }
3030                      }
3031                    },
3032                    {
3033                      "type": "TSTypeParameter",
3034                      "name": {
3035                        "type": "Identifier",
3036                        "name": "E",
3037                        "decorators": [],
3038                        "loc": {
3039                          "start": {
3040                            "line": 22,
3041                            "column": 13
3042                          },
3043                          "end": {
3044                            "line": 22,
3045                            "column": 14
3046                          }
3047                        }
3048                      },
3049                      "default": {
3050                        "type": "ETSTypeReference",
3051                        "part": {
3052                          "type": "ETSTypeReferencePart",
3053                          "name": {
3054                            "type": "Identifier",
3055                            "name": "never",
3056                            "decorators": [],
3057                            "loc": {
3058                              "start": {
3059                                "line": 22,
3060                                "column": 17
3061                              },
3062                              "end": {
3063                                "line": 22,
3064                                "column": 22
3065                              }
3066                            }
3067                          },
3068                          "loc": {
3069                            "start": {
3070                              "line": 22,
3071                              "column": 17
3072                            },
3073                            "end": {
3074                              "line": 22,
3075                              "column": 23
3076                            }
3077                          }
3078                        },
3079                        "loc": {
3080                          "start": {
3081                            "line": 22,
3082                            "column": 17
3083                          },
3084                          "end": {
3085                            "line": 22,
3086                            "column": 23
3087                          }
3088                        }
3089                      },
3090                      "loc": {
3091                        "start": {
3092                          "line": 22,
3093                          "column": 13
3094                        },
3095                        "end": {
3096                          "line": 22,
3097                          "column": 23
3098                        }
3099                      }
3100                    }
3101                  ],
3102                  "loc": {
3103                    "start": {
3104                      "line": 22,
3105                      "column": 9
3106                    },
3107                    "end": {
3108                      "line": 22,
3109                      "column": 23
3110                    }
3111                  }
3112                },
3113                "body": {
3114                  "type": "BlockStatement",
3115                  "statements": [
3116                    {
3117                      "type": "ReturnStatement",
3118                      "argument": {
3119                        "type": "ETSNewClassInstanceExpression",
3120                        "typeReference": {
3121                          "type": "ETSTypeReference",
3122                          "part": {
3123                            "type": "ETSTypeReferencePart",
3124                            "name": {
3125                              "type": "Identifier",
3126                              "name": "P",
3127                              "decorators": [],
3128                              "loc": {
3129                                "start": {
3130                                  "line": 24,
3131                                  "column": 20
3132                                },
3133                                "end": {
3134                                  "line": 24,
3135                                  "column": 21
3136                                }
3137                              }
3138                            },
3139                            "typeParams": {
3140                              "type": "TSTypeParameterInstantiation",
3141                              "params": [
3142                                {
3143                                  "type": "ETSUnionType",
3144                                  "types": [
3145                                    {
3146                                      "type": "ETSTypeReference",
3147                                      "part": {
3148                                        "type": "ETSTypeReferencePart",
3149                                        "name": {
3150                                          "type": "Identifier",
3151                                          "name": "U",
3152                                          "decorators": [],
3153                                          "loc": {
3154                                            "start": {
3155                                              "line": 24,
3156                                              "column": 22
3157                                            },
3158                                            "end": {
3159                                              "line": 24,
3160                                              "column": 23
3161                                            }
3162                                          }
3163                                        },
3164                                        "loc": {
3165                                          "start": {
3166                                            "line": 24,
3167                                            "column": 22
3168                                          },
3169                                          "end": {
3170                                            "line": 24,
3171                                            "column": 24
3172                                          }
3173                                        }
3174                                      },
3175                                      "loc": {
3176                                        "start": {
3177                                          "line": 24,
3178                                          "column": 22
3179                                        },
3180                                        "end": {
3181                                          "line": 24,
3182                                          "column": 24
3183                                        }
3184                                      }
3185                                    },
3186                                    {
3187                                      "type": "ETSTypeReference",
3188                                      "part": {
3189                                        "type": "ETSTypeReferencePart",
3190                                        "name": {
3191                                          "type": "Identifier",
3192                                          "name": "E",
3193                                          "decorators": [],
3194                                          "loc": {
3195                                            "start": {
3196                                              "line": 24,
3197                                              "column": 24
3198                                            },
3199                                            "end": {
3200                                              "line": 24,
3201                                              "column": 25
3202                                            }
3203                                          }
3204                                        },
3205                                        "loc": {
3206                                          "start": {
3207                                            "line": 24,
3208                                            "column": 24
3209                                          },
3210                                          "end": {
3211                                            "line": 24,
3212                                            "column": 26
3213                                          }
3214                                        }
3215                                      },
3216                                      "loc": {
3217                                        "start": {
3218                                          "line": 24,
3219                                          "column": 24
3220                                        },
3221                                        "end": {
3222                                          "line": 24,
3223                                          "column": 26
3224                                        }
3225                                      }
3226                                    }
3227                                  ],
3228                                  "loc": {
3229                                    "start": {
3230                                      "line": 24,
3231                                      "column": 22
3232                                    },
3233                                    "end": {
3234                                      "line": 24,
3235                                      "column": 26
3236                                    }
3237                                  }
3238                                }
3239                              ],
3240                              "loc": {
3241                                "start": {
3242                                  "line": 24,
3243                                  "column": 21
3244                                },
3245                                "end": {
3246                                  "line": 24,
3247                                  "column": 26
3248                                }
3249                              }
3250                            },
3251                            "loc": {
3252                              "start": {
3253                                "line": 24,
3254                                "column": 20
3255                              },
3256                              "end": {
3257                                "line": 24,
3258                                "column": 27
3259                              }
3260                            }
3261                          },
3262                          "loc": {
3263                            "start": {
3264                              "line": 24,
3265                              "column": 20
3266                            },
3267                            "end": {
3268                              "line": 24,
3269                              "column": 27
3270                            }
3271                          }
3272                        },
3273                        "arguments": [],
3274                        "loc": {
3275                          "start": {
3276                            "line": 24,
3277                            "column": 16
3278                          },
3279                          "end": {
3280                            "line": 25,
3281                            "column": 6
3282                          }
3283                        }
3284                      },
3285                      "loc": {
3286                        "start": {
3287                          "line": 24,
3288                          "column": 9
3289                        },
3290                        "end": {
3291                          "line": 25,
3292                          "column": 6
3293                        }
3294                      }
3295                    }
3296                  ],
3297                  "loc": {
3298                    "start": {
3299                      "line": 23,
3300                      "column": 75
3301                    },
3302                    "end": {
3303                      "line": 25,
3304                      "column": 6
3305                    }
3306                  }
3307                },
3308                "loc": {
3309                  "start": {
3310                    "line": 22,
3311                    "column": 9
3312                  },
3313                  "end": {
3314                    "line": 25,
3315                    "column": 6
3316                  }
3317                }
3318              },
3319              "loc": {
3320                "start": {
3321                  "line": 22,
3322                  "column": 9
3323                },
3324                "end": {
3325                  "line": 25,
3326                  "column": 6
3327                }
3328              }
3329            },
3330            "overloads": [
3331              {
3332                "type": "MethodDefinition",
3333                "key": {
3334                  "type": "Identifier",
3335                  "name": "then",
3336                  "decorators": [],
3337                  "loc": {
3338                    "start": {
3339                      "line": 22,
3340                      "column": 5
3341                    },
3342                    "end": {
3343                      "line": 22,
3344                      "column": 9
3345                    }
3346                  }
3347                },
3348                "kind": "method",
3349                "accessibility": "public",
3350                "static": false,
3351                "optional": false,
3352                "computed": false,
3353                "value": {
3354                  "type": "FunctionExpression",
3355                  "function": {
3356                    "type": "ScriptFunction",
3357                    "id": {
3358                      "type": "Identifier",
3359                      "name": "then",
3360                      "decorators": [],
3361                      "loc": {
3362                        "start": {
3363                          "line": 22,
3364                          "column": 5
3365                        },
3366                        "end": {
3367                          "line": 22,
3368                          "column": 9
3369                        }
3370                      }
3371                    },
3372                    "generator": false,
3373                    "async": false,
3374                    "expression": false,
3375                    "params": [
3376                      {
3377                        "type": "ETSParameterExpression",
3378                        "name": {
3379                          "type": "Identifier",
3380                          "name": "onFulfilled",
3381                          "typeAnnotation": {
3382                            "type": "ETSUnionType",
3383                            "types": [
3384                              {
3385                                "type": "ETSFunctionType",
3386                                "params": [
3387                                  {
3388                                    "type": "ETSParameterExpression",
3389                                    "name": {
3390                                      "type": "Identifier",
3391                                      "name": "value",
3392                                      "typeAnnotation": {
3393                                        "type": "ETSTypeReference",
3394                                        "part": {
3395                                          "type": "ETSTypeReferencePart",
3396                                          "name": {
3397                                            "type": "Identifier",
3398                                            "name": "T",
3399                                            "decorators": [],
3400                                            "loc": {
3401                                              "start": {
3402                                                "line": 22,
3403                                                "column": 46
3404                                              },
3405                                              "end": {
3406                                                "line": 22,
3407                                                "column": 47
3408                                              }
3409                                            }
3410                                          },
3411                                          "loc": {
3412                                            "start": {
3413                                              "line": 22,
3414                                              "column": 46
3415                                            },
3416                                            "end": {
3417                                              "line": 22,
3418                                              "column": 48
3419                                            }
3420                                          }
3421                                        },
3422                                        "loc": {
3423                                          "start": {
3424                                            "line": 22,
3425                                            "column": 46
3426                                          },
3427                                          "end": {
3428                                            "line": 22,
3429                                            "column": 48
3430                                          }
3431                                        }
3432                                      },
3433                                      "decorators": [],
3434                                      "loc": {
3435                                        "start": {
3436                                          "line": 22,
3437                                          "column": 39
3438                                        },
3439                                        "end": {
3440                                          "line": 22,
3441                                          "column": 48
3442                                        }
3443                                      }
3444                                    },
3445                                    "loc": {
3446                                      "start": {
3447                                        "line": 1,
3448                                        "column": 1
3449                                      },
3450                                      "end": {
3451                                        "line": 1,
3452                                        "column": 1
3453                                      }
3454                                    }
3455                                  }
3456                                ],
3457                                "returnType": {
3458                                  "type": "ETSUnionType",
3459                                  "types": [
3460                                    {
3461                                      "type": "ETSTypeReference",
3462                                      "part": {
3463                                        "type": "ETSTypeReferencePart",
3464                                        "name": {
3465                                          "type": "Identifier",
3466                                          "name": "U",
3467                                          "decorators": [],
3468                                          "loc": {
3469                                            "start": {
3470                                              "line": 22,
3471                                              "column": 52
3472                                            },
3473                                            "end": {
3474                                              "line": 22,
3475                                              "column": 53
3476                                            }
3477                                          }
3478                                        },
3479                                        "loc": {
3480                                          "start": {
3481                                            "line": 22,
3482                                            "column": 52
3483                                          },
3484                                          "end": {
3485                                            "line": 22,
3486                                            "column": 54
3487                                          }
3488                                        }
3489                                      },
3490                                      "loc": {
3491                                        "start": {
3492                                          "line": 22,
3493                                          "column": 52
3494                                        },
3495                                        "end": {
3496                                          "line": 22,
3497                                          "column": 54
3498                                        }
3499                                      }
3500                                    },
3501                                    {
3502                                      "type": "ETSTypeReference",
3503                                      "part": {
3504                                        "type": "ETSTypeReferencePart",
3505                                        "name": {
3506                                          "type": "Identifier",
3507                                          "name": "PL",
3508                                          "decorators": [],
3509                                          "loc": {
3510                                            "start": {
3511                                              "line": 22,
3512                                              "column": 54
3513                                            },
3514                                            "end": {
3515                                              "line": 22,
3516                                              "column": 56
3517                                            }
3518                                          }
3519                                        },
3520                                        "typeParams": {
3521                                          "type": "TSTypeParameterInstantiation",
3522                                          "params": [
3523                                            {
3524                                              "type": "ETSTypeReference",
3525                                              "part": {
3526                                                "type": "ETSTypeReferencePart",
3527                                                "name": {
3528                                                  "type": "Identifier",
3529                                                  "name": "U",
3530                                                  "decorators": [],
3531                                                  "loc": {
3532                                                    "start": {
3533                                                      "line": 22,
3534                                                      "column": 57
3535                                                    },
3536                                                    "end": {
3537                                                      "line": 22,
3538                                                      "column": 58
3539                                                    }
3540                                                  }
3541                                                },
3542                                                "loc": {
3543                                                  "start": {
3544                                                    "line": 22,
3545                                                    "column": 57
3546                                                  },
3547                                                  "end": {
3548                                                    "line": 22,
3549                                                    "column": 59
3550                                                  }
3551                                                }
3552                                              },
3553                                              "loc": {
3554                                                "start": {
3555                                                  "line": 22,
3556                                                  "column": 57
3557                                                },
3558                                                "end": {
3559                                                  "line": 22,
3560                                                  "column": 59
3561                                                }
3562                                              }
3563                                            }
3564                                          ],
3565                                          "loc": {
3566                                            "start": {
3567                                              "line": 22,
3568                                              "column": 56
3569                                            },
3570                                            "end": {
3571                                              "line": 22,
3572                                              "column": 59
3573                                            }
3574                                          }
3575                                        },
3576                                        "loc": {
3577                                          "start": {
3578                                            "line": 22,
3579                                            "column": 54
3580                                          },
3581                                          "end": {
3582                                            "line": 22,
3583                                            "column": 66
3584                                          }
3585                                        }
3586                                      },
3587                                      "loc": {
3588                                        "start": {
3589                                          "line": 22,
3590                                          "column": 54
3591                                        },
3592                                        "end": {
3593                                          "line": 22,
3594                                          "column": 66
3595                                        }
3596                                      }
3597                                    }
3598                                  ],
3599                                  "loc": {
3600                                    "start": {
3601                                      "line": 1,
3602                                      "column": 1
3603                                    },
3604                                    "end": {
3605                                      "line": 1,
3606                                      "column": 1
3607                                    }
3608                                  }
3609                                },
3610                                "throwMarker": "throws",
3611                                "loc": {
3612                                  "start": {
3613                                    "line": 1,
3614                                    "column": 1
3615                                  },
3616                                  "end": {
3617                                    "line": 1,
3618                                    "column": 1
3619                                  }
3620                                }
3621                              },
3622                              {
3623                                "type": "ETSUndefinedType",
3624                                "loc": {
3625                                  "start": {
3626                                    "line": 1,
3627                                    "column": 1
3628                                  },
3629                                  "end": {
3630                                    "line": 1,
3631                                    "column": 1
3632                                  }
3633                                }
3634                              }
3635                            ],
3636                            "loc": {
3637                              "start": {
3638                                "line": 1,
3639                                "column": 1
3640                              },
3641                              "end": {
3642                                "line": 1,
3643                                "column": 1
3644                              }
3645                            }
3646                          },
3647                          "decorators": [],
3648                          "loc": {
3649                            "start": {
3650                              "line": 22,
3651                              "column": 24
3652                            },
3653                            "end": {
3654                              "line": 22,
3655                              "column": 66
3656                            }
3657                          }
3658                        },
3659                        "loc": {
3660                          "start": {
3661                            "line": 1,
3662                            "column": 1
3663                          },
3664                          "end": {
3665                            "line": 1,
3666                            "column": 1
3667                          }
3668                        }
3669                      }
3670                    ],
3671                    "returnType": {
3672                      "type": "ETSTypeReference",
3673                      "part": {
3674                        "type": "ETSTypeReferencePart",
3675                        "name": {
3676                          "type": "Identifier",
3677                          "name": "PL",
3678                          "decorators": [],
3679                          "loc": {
3680                            "start": {
3681                              "line": 23,
3682                              "column": 67
3683                            },
3684                            "end": {
3685                              "line": 23,
3686                              "column": 69
3687                            }
3688                          }
3689                        },
3690                        "typeParams": {
3691                          "type": "TSTypeParameterInstantiation",
3692                          "params": [
3693                            {
3694                              "type": "ETSUnionType",
3695                              "types": [
3696                                {
3697                                  "type": "ETSTypeReference",
3698                                  "part": {
3699                                    "type": "ETSTypeReferencePart",
3700                                    "name": {
3701                                      "type": "Identifier",
3702                                      "name": "U",
3703                                      "decorators": [],
3704                                      "loc": {
3705                                        "start": {
3706                                          "line": 23,
3707                                          "column": 70
3708                                        },
3709                                        "end": {
3710                                          "line": 23,
3711                                          "column": 71
3712                                        }
3713                                      }
3714                                    },
3715                                    "loc": {
3716                                      "start": {
3717                                        "line": 23,
3718                                        "column": 70
3719                                      },
3720                                      "end": {
3721                                        "line": 23,
3722                                        "column": 72
3723                                      }
3724                                    }
3725                                  },
3726                                  "loc": {
3727                                    "start": {
3728                                      "line": 23,
3729                                      "column": 70
3730                                    },
3731                                    "end": {
3732                                      "line": 23,
3733                                      "column": 72
3734                                    }
3735                                  }
3736                                },
3737                                {
3738                                  "type": "ETSTypeReference",
3739                                  "part": {
3740                                    "type": "ETSTypeReferencePart",
3741                                    "name": {
3742                                      "type": "Identifier",
3743                                      "name": "E",
3744                                      "decorators": [],
3745                                      "loc": {
3746                                        "start": {
3747                                          "line": 23,
3748                                          "column": 72
3749                                        },
3750                                        "end": {
3751                                          "line": 23,
3752                                          "column": 73
3753                                        }
3754                                      }
3755                                    },
3756                                    "loc": {
3757                                      "start": {
3758                                        "line": 23,
3759                                        "column": 72
3760                                      },
3761                                      "end": {
3762                                        "line": 23,
3763                                        "column": 74
3764                                      }
3765                                    }
3766                                  },
3767                                  "loc": {
3768                                    "start": {
3769                                      "line": 23,
3770                                      "column": 72
3771                                    },
3772                                    "end": {
3773                                      "line": 23,
3774                                      "column": 74
3775                                    }
3776                                  }
3777                                }
3778                              ],
3779                              "loc": {
3780                                "start": {
3781                                  "line": 1,
3782                                  "column": 1
3783                                },
3784                                "end": {
3785                                  "line": 1,
3786                                  "column": 1
3787                                }
3788                              }
3789                            }
3790                          ],
3791                          "loc": {
3792                            "start": {
3793                              "line": 23,
3794                              "column": 69
3795                            },
3796                            "end": {
3797                              "line": 23,
3798                              "column": 74
3799                            }
3800                          }
3801                        },
3802                        "loc": {
3803                          "start": {
3804                            "line": 23,
3805                            "column": 67
3806                          },
3807                          "end": {
3808                            "line": 23,
3809                            "column": 76
3810                          }
3811                        }
3812                      },
3813                      "loc": {
3814                        "start": {
3815                          "line": 23,
3816                          "column": 67
3817                        },
3818                        "end": {
3819                          "line": 23,
3820                          "column": 76
3821                        }
3822                      }
3823                    },
3824                    "typeParameters": {
3825                      "type": "TSTypeParameterDeclaration",
3826                      "params": [
3827                        {
3828                          "type": "TSTypeParameter",
3829                          "name": {
3830                            "type": "Identifier",
3831                            "name": "U",
3832                            "decorators": [],
3833                            "loc": {
3834                              "start": {
3835                                "line": 22,
3836                                "column": 10
3837                              },
3838                              "end": {
3839                                "line": 22,
3840                                "column": 11
3841                              }
3842                            }
3843                          },
3844                          "loc": {
3845                            "start": {
3846                              "line": 1,
3847                              "column": 1
3848                            },
3849                            "end": {
3850                              "line": 1,
3851                              "column": 1
3852                            }
3853                          }
3854                        },
3855                        {
3856                          "type": "TSTypeParameter",
3857                          "name": {
3858                            "type": "Identifier",
3859                            "name": "E",
3860                            "decorators": [],
3861                            "loc": {
3862                              "start": {
3863                                "line": 22,
3864                                "column": 13
3865                              },
3866                              "end": {
3867                                "line": 22,
3868                                "column": 14
3869                              }
3870                            }
3871                          },
3872                          "default": {
3873                            "type": "ETSTypeReference",
3874                            "part": {
3875                              "type": "ETSTypeReferencePart",
3876                              "name": {
3877                                "type": "Identifier",
3878                                "name": "never",
3879                                "decorators": [],
3880                                "loc": {
3881                                  "start": {
3882                                    "line": 22,
3883                                    "column": 17
3884                                  },
3885                                  "end": {
3886                                    "line": 22,
3887                                    "column": 22
3888                                  }
3889                                }
3890                              },
3891                              "loc": {
3892                                "start": {
3893                                  "line": 22,
3894                                  "column": 17
3895                                },
3896                                "end": {
3897                                  "line": 22,
3898                                  "column": 23
3899                                }
3900                              }
3901                            },
3902                            "loc": {
3903                              "start": {
3904                                "line": 22,
3905                                "column": 17
3906                              },
3907                              "end": {
3908                                "line": 22,
3909                                "column": 23
3910                              }
3911                            }
3912                          },
3913                          "loc": {
3914                            "start": {
3915                              "line": 1,
3916                              "column": 1
3917                            },
3918                            "end": {
3919                              "line": 1,
3920                              "column": 1
3921                            }
3922                          }
3923                        }
3924                      ],
3925                      "loc": {
3926                        "start": {
3927                          "line": 1,
3928                          "column": 1
3929                        },
3930                        "end": {
3931                          "line": 1,
3932                          "column": 1
3933                        }
3934                      }
3935                    },
3936                    "body": {
3937                      "type": "BlockStatement",
3938                      "statements": [
3939                        {
3940                          "type": "ReturnStatement",
3941                          "argument": {
3942                            "type": "CallExpression",
3943                            "callee": {
3944                              "type": "MemberExpression",
3945                              "object": {
3946                                "type": "ThisExpression",
3947                                "loc": {
3948                                  "start": {
3949                                    "line": 1,
3950                                    "column": 1
3951                                  },
3952                                  "end": {
3953                                    "line": 1,
3954                                    "column": 1
3955                                  }
3956                                }
3957                              },
3958                              "property": {
3959                                "type": "Identifier",
3960                                "name": "then",
3961                                "decorators": [],
3962                                "loc": {
3963                                  "start": {
3964                                    "line": 1,
3965                                    "column": 1
3966                                  },
3967                                  "end": {
3968                                    "line": 1,
3969                                    "column": 1
3970                                  }
3971                                }
3972                              },
3973                              "computed": false,
3974                              "optional": false,
3975                              "loc": {
3976                                "start": {
3977                                  "line": 1,
3978                                  "column": 1
3979                                },
3980                                "end": {
3981                                  "line": 1,
3982                                  "column": 1
3983                                }
3984                              }
3985                            },
3986                            "arguments": [
3987                              {
3988                                "type": "Identifier",
3989                                "name": "onFulfilled",
3990                                "decorators": [],
3991                                "loc": {
3992                                  "start": {
3993                                    "line": 22,
3994                                    "column": 24
3995                                  },
3996                                  "end": {
3997                                    "line": 22,
3998                                    "column": 66
3999                                  }
4000                                }
4001                              },
4002                              {
4003                                "type": "UndefinedLiteral",
4004                                "value": "undefined",
4005                                "loc": {
4006                                  "start": {
4007                                    "line": 1,
4008                                    "column": 1
4009                                  },
4010                                  "end": {
4011                                    "line": 1,
4012                                    "column": 1
4013                                  }
4014                                }
4015                              }
4016                            ],
4017                            "optional": false,
4018                            "typeParameters": {
4019                              "type": "TSTypeParameterInstantiation",
4020                              "params": [
4021                                {
4022                                  "type": "ETSTypeReference",
4023                                  "part": {
4024                                    "type": "ETSTypeReferencePart",
4025                                    "name": {
4026                                      "type": "Identifier",
4027                                      "name": "U",
4028                                      "decorators": [],
4029                                      "loc": {
4030                                        "start": {
4031                                          "line": 1,
4032                                          "column": 1
4033                                        },
4034                                        "end": {
4035                                          "line": 1,
4036                                          "column": 1
4037                                        }
4038                                      }
4039                                    },
4040                                    "loc": {
4041                                      "start": {
4042                                        "line": 1,
4043                                        "column": 1
4044                                      },
4045                                      "end": {
4046                                        "line": 1,
4047                                        "column": 1
4048                                      }
4049                                    }
4050                                  },
4051                                  "loc": {
4052                                    "start": {
4053                                      "line": 1,
4054                                      "column": 1
4055                                    },
4056                                    "end": {
4057                                      "line": 1,
4058                                      "column": 1
4059                                    }
4060                                  }
4061                                },
4062                                {
4063                                  "type": "ETSTypeReference",
4064                                  "part": {
4065                                    "type": "ETSTypeReferencePart",
4066                                    "name": {
4067                                      "type": "Identifier",
4068                                      "name": "E",
4069                                      "decorators": [],
4070                                      "loc": {
4071                                        "start": {
4072                                          "line": 1,
4073                                          "column": 1
4074                                        },
4075                                        "end": {
4076                                          "line": 1,
4077                                          "column": 1
4078                                        }
4079                                      }
4080                                    },
4081                                    "loc": {
4082                                      "start": {
4083                                        "line": 1,
4084                                        "column": 1
4085                                      },
4086                                      "end": {
4087                                        "line": 1,
4088                                        "column": 1
4089                                      }
4090                                    }
4091                                  },
4092                                  "loc": {
4093                                    "start": {
4094                                      "line": 1,
4095                                      "column": 1
4096                                    },
4097                                    "end": {
4098                                      "line": 1,
4099                                      "column": 1
4100                                    }
4101                                  }
4102                                }
4103                              ],
4104                              "loc": {
4105                                "start": {
4106                                  "line": 1,
4107                                  "column": 1
4108                                },
4109                                "end": {
4110                                  "line": 1,
4111                                  "column": 1
4112                                }
4113                              }
4114                            },
4115                            "loc": {
4116                              "start": {
4117                                "line": 22,
4118                                "column": 5
4119                              },
4120                              "end": {
4121                                "line": 25,
4122                                "column": 6
4123                              }
4124                            }
4125                          },
4126                          "loc": {
4127                            "start": {
4128                              "line": 1,
4129                              "column": 1
4130                            },
4131                            "end": {
4132                              "line": 1,
4133                              "column": 1
4134                            }
4135                          }
4136                        }
4137                      ],
4138                      "loc": {
4139                        "start": {
4140                          "line": 1,
4141                          "column": 1
4142                        },
4143                        "end": {
4144                          "line": 1,
4145                          "column": 1
4146                        }
4147                      }
4148                    },
4149                    "loc": {
4150                      "start": {
4151                        "line": 803,
4152                        "column": 1
4153                      },
4154                      "end": {
4155                        "line": 803,
4156                        "column": 1
4157                      }
4158                    }
4159                  },
4160                  "loc": {
4161                    "start": {
4162                      "line": 1,
4163                      "column": 1
4164                    },
4165                    "end": {
4166                      "line": 1,
4167                      "column": 1
4168                    }
4169                  }
4170                },
4171                "overloads": [],
4172                "decorators": [],
4173                "loc": {
4174                  "start": {
4175                    "line": 22,
4176                    "column": 5
4177                  },
4178                  "end": {
4179                    "line": 1,
4180                    "column": 1
4181                  }
4182                }
4183              },
4184              {
4185                "type": "MethodDefinition",
4186                "key": {
4187                  "type": "Identifier",
4188                  "name": "then",
4189                  "decorators": [],
4190                  "loc": {
4191                    "start": {
4192                      "line": 22,
4193                      "column": 5
4194                    },
4195                    "end": {
4196                      "line": 22,
4197                      "column": 9
4198                    }
4199                  }
4200                },
4201                "kind": "method",
4202                "accessibility": "public",
4203                "static": false,
4204                "optional": false,
4205                "computed": false,
4206                "value": {
4207                  "type": "FunctionExpression",
4208                  "function": {
4209                    "type": "ScriptFunction",
4210                    "id": {
4211                      "type": "Identifier",
4212                      "name": "then",
4213                      "decorators": [],
4214                      "loc": {
4215                        "start": {
4216                          "line": 22,
4217                          "column": 5
4218                        },
4219                        "end": {
4220                          "line": 22,
4221                          "column": 9
4222                        }
4223                      }
4224                    },
4225                    "generator": false,
4226                    "async": false,
4227                    "expression": false,
4228                    "params": [],
4229                    "returnType": {
4230                      "type": "ETSTypeReference",
4231                      "part": {
4232                        "type": "ETSTypeReferencePart",
4233                        "name": {
4234                          "type": "Identifier",
4235                          "name": "PL",
4236                          "decorators": [],
4237                          "loc": {
4238                            "start": {
4239                              "line": 23,
4240                              "column": 67
4241                            },
4242                            "end": {
4243                              "line": 23,
4244                              "column": 69
4245                            }
4246                          }
4247                        },
4248                        "typeParams": {
4249                          "type": "TSTypeParameterInstantiation",
4250                          "params": [
4251                            {
4252                              "type": "ETSUnionType",
4253                              "types": [
4254                                {
4255                                  "type": "ETSTypeReference",
4256                                  "part": {
4257                                    "type": "ETSTypeReferencePart",
4258                                    "name": {
4259                                      "type": "Identifier",
4260                                      "name": "U",
4261                                      "decorators": [],
4262                                      "loc": {
4263                                        "start": {
4264                                          "line": 23,
4265                                          "column": 70
4266                                        },
4267                                        "end": {
4268                                          "line": 23,
4269                                          "column": 71
4270                                        }
4271                                      }
4272                                    },
4273                                    "loc": {
4274                                      "start": {
4275                                        "line": 23,
4276                                        "column": 70
4277                                      },
4278                                      "end": {
4279                                        "line": 23,
4280                                        "column": 72
4281                                      }
4282                                    }
4283                                  },
4284                                  "loc": {
4285                                    "start": {
4286                                      "line": 23,
4287                                      "column": 70
4288                                    },
4289                                    "end": {
4290                                      "line": 23,
4291                                      "column": 72
4292                                    }
4293                                  }
4294                                },
4295                                {
4296                                  "type": "ETSTypeReference",
4297                                  "part": {
4298                                    "type": "ETSTypeReferencePart",
4299                                    "name": {
4300                                      "type": "Identifier",
4301                                      "name": "E",
4302                                      "decorators": [],
4303                                      "loc": {
4304                                        "start": {
4305                                          "line": 23,
4306                                          "column": 72
4307                                        },
4308                                        "end": {
4309                                          "line": 23,
4310                                          "column": 73
4311                                        }
4312                                      }
4313                                    },
4314                                    "loc": {
4315                                      "start": {
4316                                        "line": 23,
4317                                        "column": 72
4318                                      },
4319                                      "end": {
4320                                        "line": 23,
4321                                        "column": 74
4322                                      }
4323                                    }
4324                                  },
4325                                  "loc": {
4326                                    "start": {
4327                                      "line": 23,
4328                                      "column": 72
4329                                    },
4330                                    "end": {
4331                                      "line": 23,
4332                                      "column": 74
4333                                    }
4334                                  }
4335                                }
4336                              ],
4337                              "loc": {
4338                                "start": {
4339                                  "line": 1,
4340                                  "column": 1
4341                                },
4342                                "end": {
4343                                  "line": 1,
4344                                  "column": 1
4345                                }
4346                              }
4347                            }
4348                          ],
4349                          "loc": {
4350                            "start": {
4351                              "line": 23,
4352                              "column": 69
4353                            },
4354                            "end": {
4355                              "line": 23,
4356                              "column": 74
4357                            }
4358                          }
4359                        },
4360                        "loc": {
4361                          "start": {
4362                            "line": 23,
4363                            "column": 67
4364                          },
4365                          "end": {
4366                            "line": 23,
4367                            "column": 76
4368                          }
4369                        }
4370                      },
4371                      "loc": {
4372                        "start": {
4373                          "line": 23,
4374                          "column": 67
4375                        },
4376                        "end": {
4377                          "line": 23,
4378                          "column": 76
4379                        }
4380                      }
4381                    },
4382                    "typeParameters": {
4383                      "type": "TSTypeParameterDeclaration",
4384                      "params": [
4385                        {
4386                          "type": "TSTypeParameter",
4387                          "name": {
4388                            "type": "Identifier",
4389                            "name": "U",
4390                            "decorators": [],
4391                            "loc": {
4392                              "start": {
4393                                "line": 22,
4394                                "column": 10
4395                              },
4396                              "end": {
4397                                "line": 22,
4398                                "column": 11
4399                              }
4400                            }
4401                          },
4402                          "loc": {
4403                            "start": {
4404                              "line": 1,
4405                              "column": 1
4406                            },
4407                            "end": {
4408                              "line": 1,
4409                              "column": 1
4410                            }
4411                          }
4412                        },
4413                        {
4414                          "type": "TSTypeParameter",
4415                          "name": {
4416                            "type": "Identifier",
4417                            "name": "E",
4418                            "decorators": [],
4419                            "loc": {
4420                              "start": {
4421                                "line": 22,
4422                                "column": 13
4423                              },
4424                              "end": {
4425                                "line": 22,
4426                                "column": 14
4427                              }
4428                            }
4429                          },
4430                          "default": {
4431                            "type": "ETSTypeReference",
4432                            "part": {
4433                              "type": "ETSTypeReferencePart",
4434                              "name": {
4435                                "type": "Identifier",
4436                                "name": "never",
4437                                "decorators": [],
4438                                "loc": {
4439                                  "start": {
4440                                    "line": 22,
4441                                    "column": 17
4442                                  },
4443                                  "end": {
4444                                    "line": 22,
4445                                    "column": 22
4446                                  }
4447                                }
4448                              },
4449                              "loc": {
4450                                "start": {
4451                                  "line": 22,
4452                                  "column": 17
4453                                },
4454                                "end": {
4455                                  "line": 22,
4456                                  "column": 23
4457                                }
4458                              }
4459                            },
4460                            "loc": {
4461                              "start": {
4462                                "line": 22,
4463                                "column": 17
4464                              },
4465                              "end": {
4466                                "line": 22,
4467                                "column": 23
4468                              }
4469                            }
4470                          },
4471                          "loc": {
4472                            "start": {
4473                              "line": 1,
4474                              "column": 1
4475                            },
4476                            "end": {
4477                              "line": 1,
4478                              "column": 1
4479                            }
4480                          }
4481                        }
4482                      ],
4483                      "loc": {
4484                        "start": {
4485                          "line": 1,
4486                          "column": 1
4487                        },
4488                        "end": {
4489                          "line": 1,
4490                          "column": 1
4491                        }
4492                      }
4493                    },
4494                    "body": {
4495                      "type": "BlockStatement",
4496                      "statements": [
4497                        {
4498                          "type": "ReturnStatement",
4499                          "argument": {
4500                            "type": "CallExpression",
4501                            "callee": {
4502                              "type": "MemberExpression",
4503                              "object": {
4504                                "type": "ThisExpression",
4505                                "loc": {
4506                                  "start": {
4507                                    "line": 1,
4508                                    "column": 1
4509                                  },
4510                                  "end": {
4511                                    "line": 1,
4512                                    "column": 1
4513                                  }
4514                                }
4515                              },
4516                              "property": {
4517                                "type": "Identifier",
4518                                "name": "then",
4519                                "decorators": [],
4520                                "loc": {
4521                                  "start": {
4522                                    "line": 1,
4523                                    "column": 1
4524                                  },
4525                                  "end": {
4526                                    "line": 1,
4527                                    "column": 1
4528                                  }
4529                                }
4530                              },
4531                              "computed": false,
4532                              "optional": false,
4533                              "loc": {
4534                                "start": {
4535                                  "line": 1,
4536                                  "column": 1
4537                                },
4538                                "end": {
4539                                  "line": 1,
4540                                  "column": 1
4541                                }
4542                              }
4543                            },
4544                            "arguments": [
4545                              {
4546                                "type": "UndefinedLiteral",
4547                                "value": "undefined",
4548                                "loc": {
4549                                  "start": {
4550                                    "line": 1,
4551                                    "column": 1
4552                                  },
4553                                  "end": {
4554                                    "line": 1,
4555                                    "column": 1
4556                                  }
4557                                }
4558                              },
4559                              {
4560                                "type": "UndefinedLiteral",
4561                                "value": "undefined",
4562                                "loc": {
4563                                  "start": {
4564                                    "line": 1,
4565                                    "column": 1
4566                                  },
4567                                  "end": {
4568                                    "line": 1,
4569                                    "column": 1
4570                                  }
4571                                }
4572                              }
4573                            ],
4574                            "optional": false,
4575                            "typeParameters": {
4576                              "type": "TSTypeParameterInstantiation",
4577                              "params": [
4578                                {
4579                                  "type": "ETSTypeReference",
4580                                  "part": {
4581                                    "type": "ETSTypeReferencePart",
4582                                    "name": {
4583                                      "type": "Identifier",
4584                                      "name": "U",
4585                                      "decorators": [],
4586                                      "loc": {
4587                                        "start": {
4588                                          "line": 1,
4589                                          "column": 1
4590                                        },
4591                                        "end": {
4592                                          "line": 1,
4593                                          "column": 1
4594                                        }
4595                                      }
4596                                    },
4597                                    "loc": {
4598                                      "start": {
4599                                        "line": 1,
4600                                        "column": 1
4601                                      },
4602                                      "end": {
4603                                        "line": 1,
4604                                        "column": 1
4605                                      }
4606                                    }
4607                                  },
4608                                  "loc": {
4609                                    "start": {
4610                                      "line": 1,
4611                                      "column": 1
4612                                    },
4613                                    "end": {
4614                                      "line": 1,
4615                                      "column": 1
4616                                    }
4617                                  }
4618                                },
4619                                {
4620                                  "type": "ETSTypeReference",
4621                                  "part": {
4622                                    "type": "ETSTypeReferencePart",
4623                                    "name": {
4624                                      "type": "Identifier",
4625                                      "name": "E",
4626                                      "decorators": [],
4627                                      "loc": {
4628                                        "start": {
4629                                          "line": 1,
4630                                          "column": 1
4631                                        },
4632                                        "end": {
4633                                          "line": 1,
4634                                          "column": 1
4635                                        }
4636                                      }
4637                                    },
4638                                    "loc": {
4639                                      "start": {
4640                                        "line": 1,
4641                                        "column": 1
4642                                      },
4643                                      "end": {
4644                                        "line": 1,
4645                                        "column": 1
4646                                      }
4647                                    }
4648                                  },
4649                                  "loc": {
4650                                    "start": {
4651                                      "line": 1,
4652                                      "column": 1
4653                                    },
4654                                    "end": {
4655                                      "line": 1,
4656                                      "column": 1
4657                                    }
4658                                  }
4659                                }
4660                              ],
4661                              "loc": {
4662                                "start": {
4663                                  "line": 1,
4664                                  "column": 1
4665                                },
4666                                "end": {
4667                                  "line": 1,
4668                                  "column": 1
4669                                }
4670                              }
4671                            },
4672                            "loc": {
4673                              "start": {
4674                                "line": 22,
4675                                "column": 5
4676                              },
4677                              "end": {
4678                                "line": 25,
4679                                "column": 6
4680                              }
4681                            }
4682                          },
4683                          "loc": {
4684                            "start": {
4685                              "line": 1,
4686                              "column": 1
4687                            },
4688                            "end": {
4689                              "line": 1,
4690                              "column": 1
4691                            }
4692                          }
4693                        }
4694                      ],
4695                      "loc": {
4696                        "start": {
4697                          "line": 1,
4698                          "column": 1
4699                        },
4700                        "end": {
4701                          "line": 1,
4702                          "column": 1
4703                        }
4704                      }
4705                    },
4706                    "loc": {
4707                      "start": {
4708                        "line": 803,
4709                        "column": 1
4710                      },
4711                      "end": {
4712                        "line": 803,
4713                        "column": 1
4714                      }
4715                    }
4716                  },
4717                  "loc": {
4718                    "start": {
4719                      "line": 1,
4720                      "column": 1
4721                    },
4722                    "end": {
4723                      "line": 1,
4724                      "column": 1
4725                    }
4726                  }
4727                },
4728                "overloads": [],
4729                "decorators": [],
4730                "loc": {
4731                  "start": {
4732                    "line": 22,
4733                    "column": 5
4734                  },
4735                  "end": {
4736                    "line": 1,
4737                    "column": 1
4738                  }
4739                }
4740              }
4741            ],
4742            "decorators": [],
4743            "loc": {
4744              "start": {
4745                "line": 22,
4746                "column": 5
4747              },
4748              "end": {
4749                "line": 25,
4750                "column": 6
4751              }
4752            }
4753          },
4754          {
4755            "type": "MethodDefinition",
4756            "key": {
4757              "type": "Identifier",
4758              "name": "constructor",
4759              "decorators": [],
4760              "loc": {
4761                "start": {
4762                  "line": 1,
4763                  "column": 1
4764                },
4765                "end": {
4766                  "line": 1,
4767                  "column": 1
4768                }
4769              }
4770            },
4771            "kind": "constructor",
4772            "static": false,
4773            "optional": false,
4774            "computed": false,
4775            "value": {
4776              "type": "FunctionExpression",
4777              "function": {
4778                "type": "ScriptFunction",
4779                "id": {
4780                  "type": "Identifier",
4781                  "name": "constructor",
4782                  "decorators": [],
4783                  "loc": {
4784                    "start": {
4785                      "line": 1,
4786                      "column": 1
4787                    },
4788                    "end": {
4789                      "line": 1,
4790                      "column": 1
4791                    }
4792                  }
4793                },
4794                "generator": false,
4795                "async": false,
4796                "expression": false,
4797                "params": [],
4798                "body": {
4799                  "type": "BlockStatement",
4800                  "statements": [],
4801                  "loc": {
4802                    "start": {
4803                      "line": 1,
4804                      "column": 1
4805                    },
4806                    "end": {
4807                      "line": 1,
4808                      "column": 1
4809                    }
4810                  }
4811                },
4812                "loc": {
4813                  "start": {
4814                    "line": 1,
4815                    "column": 1
4816                  },
4817                  "end": {
4818                    "line": 1,
4819                    "column": 1
4820                  }
4821                }
4822              },
4823              "loc": {
4824                "start": {
4825                  "line": 1,
4826                  "column": 1
4827                },
4828                "end": {
4829                  "line": 1,
4830                  "column": 1
4831                }
4832              }
4833            },
4834            "overloads": [],
4835            "decorators": [],
4836            "loc": {
4837              "start": {
4838                "line": 26,
4839                "column": 2
4840              },
4841              "end": {
4842                "line": 26,
4843                "column": 2
4844              }
4845            }
4846          }
4847        ],
4848        "loc": {
4849          "start": {
4850            "line": 21,
4851            "column": 29
4852          },
4853          "end": {
4854            "line": 26,
4855            "column": 2
4856          }
4857        }
4858      },
4859      "loc": {
4860        "start": {
4861          "line": 21,
4862          "column": 1
4863        },
4864        "end": {
4865          "line": 26,
4866          "column": 2
4867        }
4868      }
4869    },
4870    {
4871      "type": "ClassDeclaration",
4872      "definition": {
4873        "id": {
4874          "type": "Identifier",
4875          "name": "ETSGLOBAL",
4876          "decorators": [],
4877          "loc": {
4878            "start": {
4879              "line": 1,
4880              "column": 1
4881            },
4882            "end": {
4883              "line": 1,
4884              "column": 1
4885            }
4886          }
4887        },
4888        "superClass": null,
4889        "implements": [],
4890        "body": [
4891          {
4892            "type": "MethodDefinition",
4893            "key": {
4894              "type": "Identifier",
4895              "name": "_$init$_",
4896              "decorators": [],
4897              "loc": {
4898                "start": {
4899                  "line": 1,
4900                  "column": 1
4901                },
4902                "end": {
4903                  "line": 1,
4904                  "column": 1
4905                }
4906              }
4907            },
4908            "kind": "method",
4909            "accessibility": "public",
4910            "static": true,
4911            "optional": false,
4912            "computed": false,
4913            "value": {
4914              "type": "FunctionExpression",
4915              "function": {
4916                "type": "ScriptFunction",
4917                "id": {
4918                  "type": "Identifier",
4919                  "name": "_$init$_",
4920                  "decorators": [],
4921                  "loc": {
4922                    "start": {
4923                      "line": 1,
4924                      "column": 1
4925                    },
4926                    "end": {
4927                      "line": 1,
4928                      "column": 1
4929                    }
4930                  }
4931                },
4932                "generator": false,
4933                "async": false,
4934                "expression": false,
4935                "params": [],
4936                "body": {
4937                  "type": "BlockStatement",
4938                  "statements": [],
4939                  "loc": {
4940                    "start": {
4941                      "line": 1,
4942                      "column": 1
4943                    },
4944                    "end": {
4945                      "line": 1,
4946                      "column": 1
4947                    }
4948                  }
4949                },
4950                "loc": {
4951                  "start": {
4952                    "line": 1,
4953                    "column": 1
4954                  },
4955                  "end": {
4956                    "line": 1,
4957                    "column": 1
4958                  }
4959                }
4960              },
4961              "loc": {
4962                "start": {
4963                  "line": 1,
4964                  "column": 1
4965                },
4966                "end": {
4967                  "line": 1,
4968                  "column": 1
4969                }
4970              }
4971            },
4972            "overloads": [],
4973            "decorators": [],
4974            "loc": {
4975              "start": {
4976                "line": 1,
4977                "column": 1
4978              },
4979              "end": {
4980                "line": 1,
4981                "column": 1
4982              }
4983            }
4984          }
4985        ],
4986        "loc": {
4987          "start": {
4988            "line": 1,
4989            "column": 1
4990          },
4991          "end": {
4992            "line": 1,
4993            "column": 1
4994          }
4995        }
4996      },
4997      "loc": {
4998        "start": {
4999          "line": 1,
5000          "column": 1
5001        },
5002        "end": {
5003          "line": 1,
5004          "column": 1
5005        }
5006      }
5007    }
5008  ],
5009  "loc": {
5010    "start": {
5011      "line": 1,
5012      "column": 1
5013    },
5014    "end": {
5015      "line": 27,
5016      "column": 1
5017    }
5018  }
5019}
5020