1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "ClassDeclaration",
6      "definition": {
7        "id": {
8          "type": "Identifier",
9          "name": "A",
10          "decorators": [],
11          "loc": {
12            "start": {
13              "line": 16,
14              "column": 7
15            },
16            "end": {
17              "line": 16,
18              "column": 8
19            }
20          }
21        },
22        "superClass": null,
23        "implements": [],
24        "body": [
25          {
26            "type": "ClassProperty",
27            "key": {
28              "type": "Identifier",
29              "name": "status",
30              "decorators": [],
31              "loc": {
32                "start": {
33                  "line": 17,
34                  "column": 5
35                },
36                "end": {
37                  "line": 17,
38                  "column": 11
39                }
40              }
41            },
42            "value": {
43              "type": "StringLiteral",
44              "value": "",
45              "loc": {
46                "start": {
47                  "line": 17,
48                  "column": 22
49                },
50                "end": {
51                  "line": 17,
52                  "column": 24
53                }
54              }
55            },
56            "accessibility": "public",
57            "static": false,
58            "readonly": false,
59            "declare": false,
60            "optional": false,
61            "computed": false,
62            "typeAnnotation": {
63              "type": "ETSTypeReference",
64              "part": {
65                "type": "ETSTypeReferencePart",
66                "name": {
67                  "type": "Identifier",
68                  "name": "string",
69                  "decorators": [],
70                  "loc": {
71                    "start": {
72                      "line": 17,
73                      "column": 13
74                    },
75                    "end": {
76                      "line": 17,
77                      "column": 19
78                    }
79                  }
80                },
81                "loc": {
82                  "start": {
83                    "line": 17,
84                    "column": 13
85                  },
86                  "end": {
87                    "line": 17,
88                    "column": 21
89                  }
90                }
91              },
92              "loc": {
93                "start": {
94                  "line": 17,
95                  "column": 13
96                },
97                "end": {
98                  "line": 17,
99                  "column": 21
100                }
101              }
102            },
103            "definite": false,
104            "decorators": [],
105            "loc": {
106              "start": {
107                "line": 17,
108                "column": 5
109              },
110              "end": {
111                "line": 17,
112                "column": 24
113              }
114            }
115          },
116          {
117            "type": "MethodDefinition",
118            "key": {
119              "type": "Identifier",
120              "name": "constructor",
121              "decorators": [],
122              "loc": {
123                "start": {
124                  "line": 1,
125                  "column": 1
126                },
127                "end": {
128                  "line": 1,
129                  "column": 1
130                }
131              }
132            },
133            "kind": "constructor",
134            "static": false,
135            "optional": false,
136            "computed": false,
137            "value": {
138              "type": "FunctionExpression",
139              "function": {
140                "type": "ScriptFunction",
141                "id": {
142                  "type": "Identifier",
143                  "name": "constructor",
144                  "decorators": [],
145                  "loc": {
146                    "start": {
147                      "line": 1,
148                      "column": 1
149                    },
150                    "end": {
151                      "line": 1,
152                      "column": 1
153                    }
154                  }
155                },
156                "generator": false,
157                "async": false,
158                "expression": false,
159                "params": [],
160                "body": {
161                  "type": "BlockStatement",
162                  "statements": [],
163                  "loc": {
164                    "start": {
165                      "line": 1,
166                      "column": 1
167                    },
168                    "end": {
169                      "line": 1,
170                      "column": 1
171                    }
172                  }
173                },
174                "loc": {
175                  "start": {
176                    "line": 1,
177                    "column": 1
178                  },
179                  "end": {
180                    "line": 1,
181                    "column": 1
182                  }
183                }
184              },
185              "loc": {
186                "start": {
187                  "line": 1,
188                  "column": 1
189                },
190                "end": {
191                  "line": 1,
192                  "column": 1
193                }
194              }
195            },
196            "overloads": [],
197            "decorators": [],
198            "loc": {
199              "start": {
200                "line": 18,
201                "column": 2
202              },
203              "end": {
204                "line": 18,
205                "column": 2
206              }
207            }
208          }
209        ],
210        "loc": {
211          "start": {
212            "line": 16,
213            "column": 9
214          },
215          "end": {
216            "line": 18,
217            "column": 2
218          }
219        }
220      },
221      "loc": {
222        "start": {
223          "line": 16,
224          "column": 1
225        },
226        "end": {
227          "line": 18,
228          "column": 2
229        }
230      }
231    },
232    {
233      "type": "ClassDeclaration",
234      "definition": {
235        "id": {
236          "type": "Identifier",
237          "name": "B",
238          "decorators": [],
239          "loc": {
240            "start": {
241              "line": 20,
242              "column": 7
243            },
244            "end": {
245              "line": 20,
246              "column": 8
247            }
248          }
249        },
250        "superClass": null,
251        "implements": [],
252        "body": [
253          {
254            "type": "ClassProperty",
255            "key": {
256              "type": "Identifier",
257              "name": "status",
258              "decorators": [],
259              "loc": {
260                "start": {
261                  "line": 21,
262                  "column": 5
263                },
264                "end": {
265                  "line": 21,
266                  "column": 11
267                }
268              }
269            },
270            "value": {
271              "type": "StringLiteral",
272              "value": "",
273              "loc": {
274                "start": {
275                  "line": 21,
276                  "column": 22
277                },
278                "end": {
279                  "line": 21,
280                  "column": 24
281                }
282              }
283            },
284            "accessibility": "public",
285            "static": false,
286            "readonly": false,
287            "declare": false,
288            "optional": false,
289            "computed": false,
290            "typeAnnotation": {
291              "type": "ETSTypeReference",
292              "part": {
293                "type": "ETSTypeReferencePart",
294                "name": {
295                  "type": "Identifier",
296                  "name": "string",
297                  "decorators": [],
298                  "loc": {
299                    "start": {
300                      "line": 21,
301                      "column": 13
302                    },
303                    "end": {
304                      "line": 21,
305                      "column": 19
306                    }
307                  }
308                },
309                "loc": {
310                  "start": {
311                    "line": 21,
312                    "column": 13
313                  },
314                  "end": {
315                    "line": 21,
316                    "column": 21
317                  }
318                }
319              },
320              "loc": {
321                "start": {
322                  "line": 21,
323                  "column": 13
324                },
325                "end": {
326                  "line": 21,
327                  "column": 21
328                }
329              }
330            },
331            "definite": false,
332            "decorators": [],
333            "loc": {
334              "start": {
335                "line": 21,
336                "column": 5
337              },
338              "end": {
339                "line": 21,
340                "column": 24
341              }
342            }
343          },
344          {
345            "type": "MethodDefinition",
346            "key": {
347              "type": "Identifier",
348              "name": "constructor",
349              "decorators": [],
350              "loc": {
351                "start": {
352                  "line": 1,
353                  "column": 1
354                },
355                "end": {
356                  "line": 1,
357                  "column": 1
358                }
359              }
360            },
361            "kind": "constructor",
362            "static": false,
363            "optional": false,
364            "computed": false,
365            "value": {
366              "type": "FunctionExpression",
367              "function": {
368                "type": "ScriptFunction",
369                "id": {
370                  "type": "Identifier",
371                  "name": "constructor",
372                  "decorators": [],
373                  "loc": {
374                    "start": {
375                      "line": 1,
376                      "column": 1
377                    },
378                    "end": {
379                      "line": 1,
380                      "column": 1
381                    }
382                  }
383                },
384                "generator": false,
385                "async": false,
386                "expression": false,
387                "params": [],
388                "body": {
389                  "type": "BlockStatement",
390                  "statements": [],
391                  "loc": {
392                    "start": {
393                      "line": 1,
394                      "column": 1
395                    },
396                    "end": {
397                      "line": 1,
398                      "column": 1
399                    }
400                  }
401                },
402                "loc": {
403                  "start": {
404                    "line": 1,
405                    "column": 1
406                  },
407                  "end": {
408                    "line": 1,
409                    "column": 1
410                  }
411                }
412              },
413              "loc": {
414                "start": {
415                  "line": 1,
416                  "column": 1
417                },
418                "end": {
419                  "line": 1,
420                  "column": 1
421                }
422              }
423            },
424            "overloads": [],
425            "decorators": [],
426            "loc": {
427              "start": {
428                "line": 22,
429                "column": 2
430              },
431              "end": {
432                "line": 22,
433                "column": 2
434              }
435            }
436          }
437        ],
438        "loc": {
439          "start": {
440            "line": 20,
441            "column": 9
442          },
443          "end": {
444            "line": 22,
445            "column": 2
446          }
447        }
448      },
449      "loc": {
450        "start": {
451          "line": 20,
452          "column": 1
453        },
454        "end": {
455          "line": 22,
456          "column": 2
457        }
458      }
459    },
460    {
461      "type": "TSTypeAliasDeclaration",
462      "id": {
463        "type": "Identifier",
464        "name": "Union",
465        "decorators": [],
466        "loc": {
467          "start": {
468            "line": 24,
469            "column": 6
470          },
471          "end": {
472            "line": 24,
473            "column": 11
474          }
475        }
476      },
477      "typeAnnotation": {
478        "type": "ETSUnionType",
479        "types": [
480          {
481            "type": "ETSTypeReference",
482            "part": {
483              "type": "ETSTypeReferencePart",
484              "name": {
485                "type": "Identifier",
486                "name": "A",
487                "decorators": [],
488                "loc": {
489                  "start": {
490                    "line": 24,
491                    "column": 14
492                  },
493                  "end": {
494                    "line": 24,
495                    "column": 15
496                  }
497                }
498              },
499              "loc": {
500                "start": {
501                  "line": 24,
502                  "column": 14
503                },
504                "end": {
505                  "line": 24,
506                  "column": 17
507                }
508              }
509            },
510            "loc": {
511              "start": {
512                "line": 24,
513                "column": 14
514              },
515              "end": {
516                "line": 24,
517                "column": 17
518              }
519            }
520          },
521          {
522            "type": "ETSTypeReference",
523            "part": {
524              "type": "ETSTypeReferencePart",
525              "name": {
526                "type": "Identifier",
527                "name": "B",
528                "decorators": [],
529                "loc": {
530                  "start": {
531                    "line": 24,
532                    "column": 18
533                  },
534                  "end": {
535                    "line": 24,
536                    "column": 19
537                  }
538                }
539              },
540              "loc": {
541                "start": {
542                  "line": 24,
543                  "column": 18
544                },
545                "end": {
546                  "line": 24,
547                  "column": 20
548                }
549              }
550            },
551            "loc": {
552              "start": {
553                "line": 24,
554                "column": 18
555              },
556              "end": {
557                "line": 24,
558                "column": 20
559              }
560            }
561          }
562        ],
563        "loc": {
564          "start": {
565            "line": 24,
566            "column": 14
567          },
568          "end": {
569            "line": 24,
570            "column": 20
571          }
572        }
573      },
574      "loc": {
575        "start": {
576          "line": 24,
577          "column": 1
578        },
579        "end": {
580          "line": 24,
581          "column": 20
582        }
583      }
584    },
585    {
586      "type": "ClassDeclaration",
587      "definition": {
588        "id": {
589          "type": "Identifier",
590          "name": "ETSGLOBAL",
591          "decorators": [],
592          "loc": {
593            "start": {
594              "line": 1,
595              "column": 1
596            },
597            "end": {
598              "line": 1,
599              "column": 1
600            }
601          }
602        },
603        "superClass": null,
604        "implements": [],
605        "body": [
606          {
607            "type": "MethodDefinition",
608            "key": {
609              "type": "Identifier",
610              "name": "_$init$_",
611              "decorators": [],
612              "loc": {
613                "start": {
614                  "line": 1,
615                  "column": 1
616                },
617                "end": {
618                  "line": 1,
619                  "column": 1
620                }
621              }
622            },
623            "kind": "method",
624            "accessibility": "public",
625            "static": true,
626            "optional": false,
627            "computed": false,
628            "value": {
629              "type": "FunctionExpression",
630              "function": {
631                "type": "ScriptFunction",
632                "id": {
633                  "type": "Identifier",
634                  "name": "_$init$_",
635                  "decorators": [],
636                  "loc": {
637                    "start": {
638                      "line": 1,
639                      "column": 1
640                    },
641                    "end": {
642                      "line": 1,
643                      "column": 1
644                    }
645                  }
646                },
647                "generator": false,
648                "async": false,
649                "expression": false,
650                "params": [],
651                "body": {
652                  "type": "BlockStatement",
653                  "statements": [],
654                  "loc": {
655                    "start": {
656                      "line": 1,
657                      "column": 1
658                    },
659                    "end": {
660                      "line": 1,
661                      "column": 1
662                    }
663                  }
664                },
665                "loc": {
666                  "start": {
667                    "line": 1,
668                    "column": 1
669                  },
670                  "end": {
671                    "line": 1,
672                    "column": 1
673                  }
674                }
675              },
676              "loc": {
677                "start": {
678                  "line": 1,
679                  "column": 1
680                },
681                "end": {
682                  "line": 1,
683                  "column": 1
684                }
685              }
686            },
687            "overloads": [],
688            "decorators": [],
689            "loc": {
690              "start": {
691                "line": 1,
692                "column": 1
693              },
694              "end": {
695                "line": 1,
696                "column": 1
697              }
698            }
699          },
700          {
701            "type": "MethodDefinition",
702            "key": {
703              "type": "Identifier",
704              "name": "testPromiseAllSettled",
705              "decorators": [],
706              "loc": {
707                "start": {
708                  "line": 26,
709                  "column": 10
710                },
711                "end": {
712                  "line": 26,
713                  "column": 31
714                }
715              }
716            },
717            "kind": "method",
718            "accessibility": "public",
719            "static": true,
720            "optional": false,
721            "computed": false,
722            "value": {
723              "type": "FunctionExpression",
724              "function": {
725                "type": "ScriptFunction",
726                "id": {
727                  "type": "Identifier",
728                  "name": "testPromiseAllSettled",
729                  "decorators": [],
730                  "loc": {
731                    "start": {
732                      "line": 26,
733                      "column": 10
734                    },
735                    "end": {
736                      "line": 26,
737                      "column": 31
738                    }
739                  }
740                },
741                "generator": false,
742                "async": false,
743                "expression": false,
744                "params": [],
745                "returnType": {
746                  "type": "ETSPrimitiveType",
747                  "loc": {
748                    "start": {
749                      "line": 26,
750                      "column": 36
751                    },
752                    "end": {
753                      "line": 26,
754                      "column": 40
755                    }
756                  }
757                },
758                "body": {
759                  "type": "BlockStatement",
760                  "statements": [
761                    {
762                      "type": "VariableDeclaration",
763                      "declarations": [
764                        {
765                          "type": "VariableDeclarator",
766                          "id": {
767                            "type": "Identifier",
768                            "name": "fn",
769                            "decorators": [],
770                            "loc": {
771                              "start": {
772                                "line": 27,
773                                "column": 9
774                              },
775                              "end": {
776                                "line": 27,
777                                "column": 11
778                              }
779                            }
780                          },
781                          "init": {
782                            "type": "ArrowFunctionExpression",
783                            "function": {
784                              "type": "ScriptFunction",
785                              "id": null,
786                              "generator": false,
787                              "async": false,
788                              "expression": false,
789                              "params": [
790                                {
791                                  "type": "ETSParameterExpression",
792                                  "name": {
793                                    "type": "Identifier",
794                                    "name": "value",
795                                    "typeAnnotation": {
796                                      "type": "ETSTypeReference",
797                                      "part": {
798                                        "type": "ETSTypeReferencePart",
799                                        "name": {
800                                          "type": "Identifier",
801                                          "name": "Union",
802                                          "decorators": [],
803                                          "loc": {
804                                            "start": {
805                                              "line": 27,
806                                              "column": 23
807                                            },
808                                            "end": {
809                                              "line": 27,
810                                              "column": 28
811                                            }
812                                          }
813                                        },
814                                        "loc": {
815                                          "start": {
816                                            "line": 27,
817                                            "column": 23
818                                          },
819                                          "end": {
820                                            "line": 27,
821                                            "column": 29
822                                          }
823                                        }
824                                      },
825                                      "loc": {
826                                        "start": {
827                                          "line": 27,
828                                          "column": 23
829                                        },
830                                        "end": {
831                                          "line": 27,
832                                          "column": 29
833                                        }
834                                      }
835                                    },
836                                    "decorators": [],
837                                    "loc": {
838                                      "start": {
839                                        "line": 27,
840                                        "column": 15
841                                      },
842                                      "end": {
843                                        "line": 27,
844                                        "column": 29
845                                      }
846                                    }
847                                  },
848                                  "loc": {
849                                    "start": {
850                                      "line": 27,
851                                      "column": 15
852                                    },
853                                    "end": {
854                                      "line": 27,
855                                      "column": 29
856                                    }
857                                  }
858                                }
859                              ],
860                              "returnType": {
861                                "type": "ETSTypeReference",
862                                "part": {
863                                  "type": "ETSTypeReferencePart",
864                                  "name": {
865                                    "type": "Identifier",
866                                    "name": "string",
867                                    "decorators": [],
868                                    "loc": {
869                                      "start": {
870                                        "line": 27,
871                                        "column": 32
872                                      },
873                                      "end": {
874                                        "line": 27,
875                                        "column": 38
876                                      }
877                                    }
878                                  },
879                                  "loc": {
880                                    "start": {
881                                      "line": 27,
882                                      "column": 32
883                                    },
884                                    "end": {
885                                      "line": 27,
886                                      "column": 41
887                                    }
888                                  }
889                                },
890                                "loc": {
891                                  "start": {
892                                    "line": 27,
893                                    "column": 32
894                                  },
895                                  "end": {
896                                    "line": 27,
897                                    "column": 41
898                                  }
899                                }
900                              },
901                              "body": {
902                                "type": "BlockStatement",
903                                "statements": [
904                                  {
905                                    "type": "ReturnStatement",
906                                    "argument": {
907                                      "type": "MemberExpression",
908                                      "object": {
909                                        "type": "Identifier",
910                                        "name": "value",
911                                        "decorators": [],
912                                        "loc": {
913                                          "start": {
914                                            "line": 28,
915                                            "column": 16
916                                          },
917                                          "end": {
918                                            "line": 28,
919                                            "column": 21
920                                          }
921                                        }
922                                      },
923                                      "property": {
924                                        "type": "Identifier",
925                                        "name": "status",
926                                        "decorators": [],
927                                        "loc": {
928                                          "start": {
929                                            "line": 28,
930                                            "column": 22
931                                          },
932                                          "end": {
933                                            "line": 28,
934                                            "column": 28
935                                          }
936                                        }
937                                      },
938                                      "computed": false,
939                                      "optional": false,
940                                      "loc": {
941                                        "start": {
942                                          "line": 28,
943                                          "column": 16
944                                        },
945                                        "end": {
946                                          "line": 28,
947                                          "column": 28
948                                        }
949                                      }
950                                    },
951                                    "loc": {
952                                      "start": {
953                                        "line": 28,
954                                        "column": 9
955                                      },
956                                      "end": {
957                                        "line": 28,
958                                        "column": 29
959                                      }
960                                    }
961                                  }
962                                ],
963                                "loc": {
964                                  "start": {
965                                    "line": 27,
966                                    "column": 42
967                                  },
968                                  "end": {
969                                    "line": 29,
970                                    "column": 6
971                                  }
972                                }
973                              },
974                              "loc": {
975                                "start": {
976                                  "line": 27,
977                                  "column": 14
978                                },
979                                "end": {
980                                  "line": 29,
981                                  "column": 6
982                                }
983                              }
984                            },
985                            "loc": {
986                              "start": {
987                                "line": 27,
988                                "column": 14
989                              },
990                              "end": {
991                                "line": 29,
992                                "column": 6
993                              }
994                            }
995                          },
996                          "loc": {
997                            "start": {
998                              "line": 27,
999                              "column": 9
1000                            },
1001                            "end": {
1002                              "line": 29,
1003                              "column": 6
1004                            }
1005                          }
1006                        }
1007                      ],
1008                      "kind": "let",
1009                      "loc": {
1010                        "start": {
1011                          "line": 27,
1012                          "column": 5
1013                        },
1014                        "end": {
1015                          "line": 29,
1016                          "column": 7
1017                        }
1018                      }
1019                    }
1020                  ],
1021                  "loc": {
1022                    "start": {
1023                      "line": 26,
1024                      "column": 41
1025                    },
1026                    "end": {
1027                      "line": 30,
1028                      "column": 2
1029                    }
1030                  }
1031                },
1032                "loc": {
1033                  "start": {
1034                    "line": 26,
1035                    "column": 31
1036                  },
1037                  "end": {
1038                    "line": 30,
1039                    "column": 2
1040                  }
1041                }
1042              },
1043              "loc": {
1044                "start": {
1045                  "line": 26,
1046                  "column": 31
1047                },
1048                "end": {
1049                  "line": 30,
1050                  "column": 2
1051                }
1052              }
1053            },
1054            "overloads": [],
1055            "decorators": [],
1056            "loc": {
1057              "start": {
1058                "line": 26,
1059                "column": 1
1060              },
1061              "end": {
1062                "line": 30,
1063                "column": 2
1064              }
1065            }
1066          }
1067        ],
1068        "loc": {
1069          "start": {
1070            "line": 1,
1071            "column": 1
1072          },
1073          "end": {
1074            "line": 1,
1075            "column": 1
1076          }
1077        }
1078      },
1079      "loc": {
1080        "start": {
1081          "line": 1,
1082          "column": 1
1083        },
1084        "end": {
1085          "line": 1,
1086          "column": 1
1087        }
1088      }
1089    }
1090  ],
1091  "loc": {
1092    "start": {
1093      "line": 1,
1094      "column": 1
1095    },
1096    "end": {
1097      "line": 31,
1098      "column": 1
1099    }
1100  }
1101}
1102