1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "ClassDeclaration",
6      "definition": {
7        "id": {
8          "type": "Identifier",
9          "name": "ETSGLOBAL",
10          "decorators": [],
11          "loc": {
12            "start": {
13              "line": 1,
14              "column": 1
15            },
16            "end": {
17              "line": 1,
18              "column": 1
19            }
20          }
21        },
22        "superClass": null,
23        "implements": [],
24        "body": [
25          {
26            "type": "MethodDefinition",
27            "key": {
28              "type": "Identifier",
29              "name": "_$init$_",
30              "decorators": [],
31              "loc": {
32                "start": {
33                  "line": 1,
34                  "column": 1
35                },
36                "end": {
37                  "line": 1,
38                  "column": 1
39                }
40              }
41            },
42            "kind": "method",
43            "accessibility": "public",
44            "static": true,
45            "optional": false,
46            "computed": false,
47            "value": {
48              "type": "FunctionExpression",
49              "function": {
50                "type": "ScriptFunction",
51                "id": {
52                  "type": "Identifier",
53                  "name": "_$init$_",
54                  "decorators": [],
55                  "loc": {
56                    "start": {
57                      "line": 1,
58                      "column": 1
59                    },
60                    "end": {
61                      "line": 1,
62                      "column": 1
63                    }
64                  }
65                },
66                "generator": false,
67                "async": false,
68                "expression": false,
69                "params": [],
70                "body": {
71                  "type": "BlockStatement",
72                  "statements": [],
73                  "loc": {
74                    "start": {
75                      "line": 1,
76                      "column": 1
77                    },
78                    "end": {
79                      "line": 1,
80                      "column": 1
81                    }
82                  }
83                },
84                "loc": {
85                  "start": {
86                    "line": 1,
87                    "column": 1
88                  },
89                  "end": {
90                    "line": 1,
91                    "column": 1
92                  }
93                }
94              },
95              "loc": {
96                "start": {
97                  "line": 1,
98                  "column": 1
99                },
100                "end": {
101                  "line": 1,
102                  "column": 1
103                }
104              }
105            },
106            "overloads": [],
107            "decorators": [],
108            "loc": {
109              "start": {
110                "line": 1,
111                "column": 1
112              },
113              "end": {
114                "line": 1,
115                "column": 1
116              }
117            }
118          },
119          {
120            "type": "MethodDefinition",
121            "key": {
122              "type": "Identifier",
123              "name": "reject",
124              "decorators": [],
125              "loc": {
126                "start": {
127                  "line": 16,
128                  "column": 10
129                },
130                "end": {
131                  "line": 16,
132                  "column": 16
133                }
134              }
135            },
136            "kind": "method",
137            "accessibility": "public",
138            "static": true,
139            "optional": false,
140            "computed": false,
141            "value": {
142              "type": "FunctionExpression",
143              "function": {
144                "type": "ScriptFunction",
145                "id": {
146                  "type": "Identifier",
147                  "name": "reject",
148                  "decorators": [],
149                  "loc": {
150                    "start": {
151                      "line": 16,
152                      "column": 10
153                    },
154                    "end": {
155                      "line": 16,
156                      "column": 16
157                    }
158                  }
159                },
160                "generator": false,
161                "async": false,
162                "expression": false,
163                "params": [
164                  {
165                    "type": "ETSParameterExpression",
166                    "name": {
167                      "type": "Identifier",
168                      "name": "error",
169                      "typeAnnotation": {
170                        "type": "ETSTypeReference",
171                        "part": {
172                          "type": "ETSTypeReferencePart",
173                          "name": {
174                            "type": "Identifier",
175                            "name": "Object",
176                            "decorators": [],
177                            "loc": {
178                              "start": {
179                                "line": 16,
180                                "column": 24
181                              },
182                              "end": {
183                                "line": 16,
184                                "column": 30
185                              }
186                            }
187                          },
188                          "loc": {
189                            "start": {
190                              "line": 16,
191                              "column": 24
192                            },
193                            "end": {
194                              "line": 16,
195                              "column": 31
196                            }
197                          }
198                        },
199                        "loc": {
200                          "start": {
201                            "line": 16,
202                            "column": 24
203                          },
204                          "end": {
205                            "line": 16,
206                            "column": 31
207                          }
208                        }
209                      },
210                      "decorators": [],
211                      "loc": {
212                        "start": {
213                          "line": 16,
214                          "column": 17
215                        },
216                        "end": {
217                          "line": 16,
218                          "column": 31
219                        }
220                      }
221                    },
222                    "loc": {
223                      "start": {
224                        "line": 16,
225                        "column": 17
226                      },
227                      "end": {
228                        "line": 16,
229                        "column": 31
230                      }
231                    }
232                  }
233                ],
234                "returnType": {
235                  "type": "ETSPrimitiveType",
236                  "loc": {
237                    "start": {
238                      "line": 16,
239                      "column": 33
240                    },
241                    "end": {
242                      "line": 16,
243                      "column": 37
244                    }
245                  }
246                },
247                "body": {
248                  "type": "BlockStatement",
249                  "statements": [],
250                  "loc": {
251                    "start": {
252                      "line": 16,
253                      "column": 38
254                    },
255                    "end": {
256                      "line": 17,
257                      "column": 2
258                    }
259                  }
260                },
261                "loc": {
262                  "start": {
263                    "line": 16,
264                    "column": 16
265                  },
266                  "end": {
267                    "line": 17,
268                    "column": 2
269                  }
270                }
271              },
272              "loc": {
273                "start": {
274                  "line": 16,
275                  "column": 16
276                },
277                "end": {
278                  "line": 17,
279                  "column": 2
280                }
281              }
282            },
283            "overloads": [],
284            "decorators": [],
285            "loc": {
286              "start": {
287                "line": 16,
288                "column": 1
289              },
290              "end": {
291                "line": 17,
292                "column": 2
293              }
294            }
295          },
296          {
297            "type": "MethodDefinition",
298            "key": {
299              "type": "Identifier",
300              "name": "main",
301              "decorators": [],
302              "loc": {
303                "start": {
304                  "line": 19,
305                  "column": 10
306                },
307                "end": {
308                  "line": 19,
309                  "column": 14
310                }
311              }
312            },
313            "kind": "method",
314            "accessibility": "public",
315            "static": true,
316            "optional": false,
317            "computed": false,
318            "value": {
319              "type": "FunctionExpression",
320              "function": {
321                "type": "ScriptFunction",
322                "id": {
323                  "type": "Identifier",
324                  "name": "main",
325                  "decorators": [],
326                  "loc": {
327                    "start": {
328                      "line": 19,
329                      "column": 10
330                    },
331                    "end": {
332                      "line": 19,
333                      "column": 14
334                    }
335                  }
336                },
337                "generator": false,
338                "async": false,
339                "expression": false,
340                "params": [],
341                "returnType": {
342                  "type": "ETSPrimitiveType",
343                  "loc": {
344                    "start": {
345                      "line": 19,
346                      "column": 18
347                    },
348                    "end": {
349                      "line": 19,
350                      "column": 22
351                    }
352                  }
353                },
354                "body": {
355                  "type": "BlockStatement",
356                  "statements": [
357                    {
358                      "type": "VariableDeclaration",
359                      "declarations": [
360                        {
361                          "type": "VariableDeclarator",
362                          "id": {
363                            "type": "Identifier",
364                            "name": "fn",
365                            "typeAnnotation": {
366                              "type": "ETSFunctionType",
367                              "params": [],
368                              "returnType": {
369                                "type": "ETSPrimitiveType",
370                                "loc": {
371                                  "start": {
372                                    "line": 20,
373                                    "column": 19
374                                  },
375                                  "end": {
376                                    "line": 20,
377                                    "column": 23
378                                  }
379                                }
380                              },
381                              "loc": {
382                                "start": {
383                                  "line": 20,
384                                  "column": 13
385                                },
386                                "end": {
387                                  "line": 20,
388                                  "column": 23
389                                }
390                              }
391                            },
392                            "decorators": [],
393                            "loc": {
394                              "start": {
395                                "line": 20,
396                                "column": 9
397                              },
398                              "end": {
399                                "line": 20,
400                                "column": 11
401                              }
402                            }
403                          },
404                          "init": {
405                            "type": "ArrowFunctionExpression",
406                            "function": {
407                              "type": "ScriptFunction",
408                              "id": null,
409                              "generator": false,
410                              "async": false,
411                              "expression": false,
412                              "params": [],
413                              "returnType": {
414                                "type": "ETSPrimitiveType",
415                                "loc": {
416                                  "start": {
417                                    "line": 20,
418                                    "column": 30
419                                  },
420                                  "end": {
421                                    "line": 20,
422                                    "column": 34
423                                  }
424                                }
425                              },
426                              "body": {
427                                "type": "BlockStatement",
428                                "statements": [
429                                  {
430                                    "type": "TryStatement",
431                                    "block": {
432                                      "type": "BlockStatement",
433                                      "statements": [],
434                                      "loc": {
435                                        "start": {
436                                          "line": 21,
437                                          "column": 13
438                                        },
439                                        "end": {
440                                          "line": 22,
441                                          "column": 10
442                                        }
443                                      }
444                                    },
445                                    "handler": [
446                                      {
447                                        "type": "CatchClause",
448                                        "body": {
449                                          "type": "BlockStatement",
450                                          "statements": [
451                                            {
452                                              "type": "ExpressionStatement",
453                                              "expression": {
454                                                "type": "CallExpression",
455                                                "callee": {
456                                                  "type": "Identifier",
457                                                  "name": "reject",
458                                                  "decorators": [],
459                                                  "loc": {
460                                                    "start": {
461                                                      "line": 23,
462                                                      "column": 13
463                                                    },
464                                                    "end": {
465                                                      "line": 23,
466                                                      "column": 19
467                                                    }
468                                                  }
469                                                },
470                                                "arguments": [
471                                                  {
472                                                    "type": "Identifier",
473                                                    "name": "error",
474                                                    "decorators": [],
475                                                    "loc": {
476                                                      "start": {
477                                                        "line": 23,
478                                                        "column": 20
479                                                      },
480                                                      "end": {
481                                                        "line": 23,
482                                                        "column": 25
483                                                      }
484                                                    }
485                                                  }
486                                                ],
487                                                "optional": false,
488                                                "loc": {
489                                                  "start": {
490                                                    "line": 23,
491                                                    "column": 13
492                                                  },
493                                                  "end": {
494                                                    "line": 23,
495                                                    "column": 26
496                                                  }
497                                                }
498                                              },
499                                              "loc": {
500                                                "start": {
501                                                  "line": 23,
502                                                  "column": 13
503                                                },
504                                                "end": {
505                                                  "line": 23,
506                                                  "column": 27
507                                                }
508                                              }
509                                            }
510                                          ],
511                                          "loc": {
512                                            "start": {
513                                              "line": 22,
514                                              "column": 36
515                                            },
516                                            "end": {
517                                              "line": 24,
518                                              "column": 10
519                                            }
520                                          }
521                                        },
522                                        "param": {
523                                          "type": "Identifier",
524                                          "name": "error",
525                                          "typeAnnotation": {
526                                            "type": "ETSTypeReference",
527                                            "part": {
528                                              "type": "ETSTypeReferencePart",
529                                              "name": {
530                                                "type": "Identifier",
531                                                "name": "Exception",
532                                                "decorators": [],
533                                                "loc": {
534                                                  "start": {
535                                                    "line": 22,
536                                                    "column": 25
537                                                  },
538                                                  "end": {
539                                                    "line": 22,
540                                                    "column": 34
541                                                  }
542                                                }
543                                              },
544                                              "loc": {
545                                                "start": {
546                                                  "line": 22,
547                                                  "column": 25
548                                                },
549                                                "end": {
550                                                  "line": 22,
551                                                  "column": 35
552                                                }
553                                              }
554                                            },
555                                            "loc": {
556                                              "start": {
557                                                "line": 22,
558                                                "column": 25
559                                              },
560                                              "end": {
561                                                "line": 22,
562                                                "column": 35
563                                              }
564                                            }
565                                          },
566                                          "decorators": [],
567                                          "loc": {
568                                            "start": {
569                                              "line": 22,
570                                              "column": 18
571                                            },
572                                            "end": {
573                                              "line": 22,
574                                              "column": 23
575                                            }
576                                          }
577                                        },
578                                        "loc": {
579                                          "start": {
580                                            "line": 22,
581                                            "column": 11
582                                          },
583                                          "end": {
584                                            "line": 24,
585                                            "column": 10
586                                          }
587                                        }
588                                      }
589                                    ],
590                                    "finalizer": null,
591                                    "loc": {
592                                      "start": {
593                                        "line": 21,
594                                        "column": 9
595                                      },
596                                      "end": {
597                                        "line": 24,
598                                        "column": 10
599                                      }
600                                    }
601                                  }
602                                ],
603                                "loc": {
604                                  "start": {
605                                    "line": 20,
606                                    "column": 38
607                                  },
608                                  "end": {
609                                    "line": 25,
610                                    "column": 6
611                                  }
612                                }
613                              },
614                              "loc": {
615                                "start": {
616                                  "line": 20,
617                                  "column": 26
618                                },
619                                "end": {
620                                  "line": 25,
621                                  "column": 6
622                                }
623                              }
624                            },
625                            "loc": {
626                              "start": {
627                                "line": 20,
628                                "column": 26
629                              },
630                              "end": {
631                                "line": 25,
632                                "column": 6
633                              }
634                            }
635                          },
636                          "loc": {
637                            "start": {
638                              "line": 20,
639                              "column": 9
640                            },
641                            "end": {
642                              "line": 25,
643                              "column": 6
644                            }
645                          }
646                        }
647                      ],
648                      "kind": "let",
649                      "loc": {
650                        "start": {
651                          "line": 20,
652                          "column": 5
653                        },
654                        "end": {
655                          "line": 25,
656                          "column": 6
657                        }
658                      }
659                    }
660                  ],
661                  "loc": {
662                    "start": {
663                      "line": 19,
664                      "column": 23
665                    },
666                    "end": {
667                      "line": 26,
668                      "column": 2
669                    }
670                  }
671                },
672                "loc": {
673                  "start": {
674                    "line": 19,
675                    "column": 14
676                  },
677                  "end": {
678                    "line": 26,
679                    "column": 2
680                  }
681                }
682              },
683              "loc": {
684                "start": {
685                  "line": 19,
686                  "column": 14
687                },
688                "end": {
689                  "line": 26,
690                  "column": 2
691                }
692              }
693            },
694            "overloads": [],
695            "decorators": [],
696            "loc": {
697              "start": {
698                "line": 19,
699                "column": 1
700              },
701              "end": {
702                "line": 26,
703                "column": 2
704              }
705            }
706          }
707        ],
708        "loc": {
709          "start": {
710            "line": 1,
711            "column": 1
712          },
713          "end": {
714            "line": 1,
715            "column": 1
716          }
717        }
718      },
719      "loc": {
720        "start": {
721          "line": 1,
722          "column": 1
723        },
724        "end": {
725          "line": 1,
726          "column": 1
727        }
728      }
729    }
730  ],
731  "loc": {
732    "start": {
733      "line": 1,
734      "column": 1
735    },
736    "end": {
737      "line": 27,
738      "column": 1
739    }
740  }
741}
742