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": "RethrowingFunc",
124              "decorators": [],
125              "loc": {
126                "start": {
127                  "line": 16,
128                  "column": 10
129                },
130                "end": {
131                  "line": 16,
132                  "column": 24
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": "RethrowingFunc",
148                  "decorators": [],
149                  "loc": {
150                    "start": {
151                      "line": 16,
152                      "column": 10
153                    },
154                    "end": {
155                      "line": 16,
156                      "column": 24
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": "func",
169                      "typeAnnotation": {
170                        "type": "ETSFunctionType",
171                        "params": [],
172                        "returnType": {
173                          "type": "ETSPrimitiveType",
174                          "loc": {
175                            "start": {
176                              "line": 16,
177                              "column": 37
178                            },
179                            "end": {
180                              "line": 16,
181                              "column": 41
182                            }
183                          }
184                        }
185                        "throwMarker": "throws",
186                        "loc": {
187                          "start": {
188                            "line": 16,
189                            "column": 31
190                          },
191                          "end": {
192                            "line": 16,
193                            "column": 41
194                          }
195                        }
196                      },
197                      "decorators": [],
198                      "loc": {
199                        "start": {
200                          "line": 16,
201                          "column": 25
202                        },
203                        "end": {
204                          "line": 16,
205                          "column": 41
206                        }
207                      }
208                    },
209                    "loc": {
210                      "start": {
211                        "line": 16,
212                        "column": 25
213                      },
214                      "end": {
215                        "line": 16,
216                        "column": 41
217                      }
218                    }
219                  }
220                ],
221                "returnType": {
222                  "type": "ETSPrimitiveType",
223                  "loc": {
224                    "start": {
225                      "line": 16,
226                      "column": 51
227                    },
228                    "end": {
229                      "line": 16,
230                      "column": 55
231                    }
232                  }
233                },
234                "body": {
235                  "type": "BlockStatement",
236                  "statements": [
237                    {
238                      "type": "ExpressionStatement",
239                      "expression": {
240                        "type": "CallExpression",
241                        "callee": {
242                          "type": "Identifier",
243                          "name": "func",
244                          "decorators": [],
245                          "loc": {
246                            "start": {
247                              "line": 17,
248                              "column": 3
249                            },
250                            "end": {
251                              "line": 17,
252                              "column": 7
253                            }
254                          }
255                        },
256                        "arguments": [],
257                        "optional": false,
258                        "loc": {
259                          "start": {
260                            "line": 17,
261                            "column": 3
262                          },
263                          "end": {
264                            "line": 17,
265                            "column": 9
266                          }
267                        }
268                      },
269                      "loc": {
270                        "start": {
271                          "line": 17,
272                          "column": 3
273                        },
274                        "end": {
275                          "line": 17,
276                          "column": 10
277                        }
278                      }
279                    }
280                  ],
281                  "loc": {
282                    "start": {
283                      "line": 16,
284                      "column": 65
285                    },
286                    "end": {
287                      "line": 18,
288                      "column": 2
289                    }
290                  }
291                }
292                "throwMarker": "rethrows",
293                "loc": {
294                  "start": {
295                    "line": 16,
296                    "column": 24
297                  },
298                  "end": {
299                    "line": 18,
300                    "column": 2
301                  }
302                }
303              },
304              "loc": {
305                "start": {
306                  "line": 16,
307                  "column": 24
308                },
309                "end": {
310                  "line": 18,
311                  "column": 2
312                }
313              }
314            },
315            "overloads": [],
316            "decorators": [],
317            "loc": {
318              "start": {
319                "line": 16,
320                "column": 1
321              },
322              "end": {
323                "line": 18,
324                "column": 2
325              }
326            }
327          },
328          {
329            "type": "MethodDefinition",
330            "key": {
331              "type": "Identifier",
332              "name": "NonThrowingFunc",
333              "decorators": [],
334              "loc": {
335                "start": {
336                  "line": 20,
337                  "column": 10
338                },
339                "end": {
340                  "line": 20,
341                  "column": 25
342                }
343              }
344            },
345            "kind": "method",
346            "accessibility": "public",
347            "static": true,
348            "optional": false,
349            "computed": false,
350            "value": {
351              "type": "FunctionExpression",
352              "function": {
353                "type": "ScriptFunction",
354                "id": {
355                  "type": "Identifier",
356                  "name": "NonThrowingFunc",
357                  "decorators": [],
358                  "loc": {
359                    "start": {
360                      "line": 20,
361                      "column": 10
362                    },
363                    "end": {
364                      "line": 20,
365                      "column": 25
366                    }
367                  }
368                },
369                "generator": false,
370                "async": false,
371                "expression": false,
372                "params": [
373                  {
374                    "type": "ETSParameterExpression",
375                    "name": {
376                      "type": "Identifier",
377                      "name": "func",
378                      "typeAnnotation": {
379                        "type": "ETSFunctionType",
380                        "params": [],
381                        "returnType": {
382                          "type": "ETSPrimitiveType",
383                          "loc": {
384                            "start": {
385                              "line": 20,
386                              "column": 38
387                            },
388                            "end": {
389                              "line": 20,
390                              "column": 42
391                            }
392                          }
393                        }
394                        "throwMarker": "throws",
395                        "loc": {
396                          "start": {
397                            "line": 20,
398                            "column": 32
399                          },
400                          "end": {
401                            "line": 20,
402                            "column": 42
403                          }
404                        }
405                      },
406                      "decorators": [],
407                      "loc": {
408                        "start": {
409                          "line": 20,
410                          "column": 26
411                        },
412                        "end": {
413                          "line": 20,
414                          "column": 42
415                        }
416                      }
417                    },
418                    "loc": {
419                      "start": {
420                        "line": 20,
421                        "column": 26
422                      },
423                      "end": {
424                        "line": 20,
425                        "column": 42
426                      }
427                    }
428                  }
429                ],
430                "returnType": {
431                  "type": "ETSPrimitiveType",
432                  "loc": {
433                    "start": {
434                      "line": 20,
435                      "column": 52
436                    },
437                    "end": {
438                      "line": 20,
439                      "column": 56
440                    }
441                  }
442                },
443                "body": {
444                  "type": "BlockStatement",
445                  "statements": [
446                    {
447                      "type": "TryStatement",
448                      "block": {
449                        "type": "BlockStatement",
450                        "statements": [
451                          {
452                            "type": "ExpressionStatement",
453                            "expression": {
454                              "type": "CallExpression",
455                              "callee": {
456                                "type": "Identifier",
457                                "name": "func",
458                                "decorators": [],
459                                "loc": {
460                                  "start": {
461                                    "line": 22,
462                                    "column": 5
463                                  },
464                                  "end": {
465                                    "line": 22,
466                                    "column": 9
467                                  }
468                                }
469                              },
470                              "arguments": [],
471                              "optional": false,
472                              "loc": {
473                                "start": {
474                                  "line": 22,
475                                  "column": 5
476                                },
477                                "end": {
478                                  "line": 22,
479                                  "column": 11
480                                }
481                              }
482                            },
483                            "loc": {
484                              "start": {
485                                "line": 22,
486                                "column": 5
487                              },
488                              "end": {
489                                "line": 22,
490                                "column": 12
491                              }
492                            }
493                          }
494                        ],
495                        "loc": {
496                          "start": {
497                            "line": 21,
498                            "column": 7
499                          },
500                          "end": {
501                            "line": 23,
502                            "column": 4
503                          }
504                        }
505                      },
506                      "handler": [
507                        {
508                          "type": "CatchClause",
509                          "body": {
510                            "type": "BlockStatement",
511                            "statements": [],
512                            "loc": {
513                              "start": {
514                                "line": 23,
515                                "column": 15
516                              },
517                              "end": {
518                                "line": 23,
519                                "column": 17
520                              }
521                            }
522                          },
523                          "param": {
524                            "type": "Identifier",
525                            "name": "e",
526                            "decorators": [],
527                            "loc": {
528                              "start": {
529                                "line": 23,
530                                "column": 12
531                              },
532                              "end": {
533                                "line": 23,
534                                "column": 13
535                              }
536                            }
537                          },
538                          "loc": {
539                            "start": {
540                              "line": 23,
541                              "column": 5
542                            },
543                            "end": {
544                              "line": 23,
545                              "column": 17
546                            }
547                          }
548                        }
549                      ],
550                      "finalizer": null,
551                      "loc": {
552                        "start": {
553                          "line": 21,
554                          "column": 3
555                        },
556                        "end": {
557                          "line": 23,
558                          "column": 17
559                        }
560                      }
561                    }
562                  ],
563                  "loc": {
564                    "start": {
565                      "line": 20,
566                      "column": 57
567                    },
568                    "end": {
569                      "line": 24,
570                      "column": 2
571                    }
572                  }
573                },
574                "loc": {
575                  "start": {
576                    "line": 20,
577                    "column": 25
578                  },
579                  "end": {
580                    "line": 24,
581                    "column": 2
582                  }
583                }
584              },
585              "loc": {
586                "start": {
587                  "line": 20,
588                  "column": 25
589                },
590                "end": {
591                  "line": 24,
592                  "column": 2
593                }
594              }
595            },
596            "overloads": [],
597            "decorators": [],
598            "loc": {
599              "start": {
600                "line": 20,
601                "column": 1
602              },
603              "end": {
604                "line": 24,
605                "column": 2
606              }
607            }
608          }
609        ],
610        "loc": {
611          "start": {
612            "line": 1,
613            "column": 1
614          },
615          "end": {
616            "line": 1,
617            "column": 1
618          }
619        }
620      },
621      "loc": {
622        "start": {
623          "line": 1,
624          "column": 1
625        },
626        "end": {
627          "line": 1,
628          "column": 1
629        }
630      }
631    }
632  ],
633  "loc": {
634    "start": {
635      "line": 1,
636      "column": 1
637    },
638    "end": {
639      "line": 25,
640      "column": 1
641    }
642  }
643}
644