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": "f",
169                      "typeAnnotation": {
170                        "type": "ETSFunctionType",
171                        "params": [],
172                        "returnType": {
173                          "type": "ETSPrimitiveType",
174                          "loc": {
175                            "start": {
176                              "line": 16,
177                              "column": 34
178                            },
179                            "end": {
180                              "line": 16,
181                              "column": 38
182                            }
183                          }
184                        }
185                        "throwMarker": "throws",
186                        "loc": {
187                          "start": {
188                            "line": 16,
189                            "column": 28
190                          },
191                          "end": {
192                            "line": 16,
193                            "column": 38
194                          }
195                        }
196                      },
197                      "decorators": [],
198                      "loc": {
199                        "start": {
200                          "line": 16,
201                          "column": 25
202                        },
203                        "end": {
204                          "line": 16,
205                          "column": 38
206                        }
207                      }
208                    },
209                    "loc": {
210                      "start": {
211                        "line": 16,
212                        "column": 25
213                      },
214                      "end": {
215                        "line": 16,
216                        "column": 38
217                      }
218                    }
219                  }
220                ],
221                "body": {
222                  "type": "BlockStatement",
223                  "statements": [
224                    {
225                      "type": "TryStatement",
226                      "block": {
227                        "type": "BlockStatement",
228                        "statements": [
229                          {
230                            "type": "ThrowStatement",
231                            "argument": {
232                              "type": "ETSNewClassInstanceExpression",
233                              "typeReference": {
234                                "type": "ETSTypeReference",
235                                "part": {
236                                  "type": "ETSTypeReferencePart",
237                                  "name": {
238                                    "type": "Identifier",
239                                    "name": "Exception",
240                                    "decorators": [],
241                                    "loc": {
242                                      "start": {
243                                        "line": 18,
244                                        "column": 15
245                                      },
246                                      "end": {
247                                        "line": 18,
248                                        "column": 24
249                                      }
250                                    }
251                                  },
252                                  "loc": {
253                                    "start": {
254                                      "line": 18,
255                                      "column": 15
256                                    },
257                                    "end": {
258                                      "line": 18,
259                                      "column": 25
260                                    }
261                                  }
262                                },
263                                "loc": {
264                                  "start": {
265                                    "line": 18,
266                                    "column": 15
267                                  },
268                                  "end": {
269                                    "line": 18,
270                                    "column": 25
271                                  }
272                                }
273                              },
274                              "arguments": [],
275                              "loc": {
276                                "start": {
277                                  "line": 18,
278                                  "column": 11
279                                },
280                                "end": {
281                                  "line": 18,
282                                  "column": 27
283                                }
284                              }
285                            },
286                            "loc": {
287                              "start": {
288                                "line": 18,
289                                "column": 5
290                              },
291                              "end": {
292                                "line": 18,
293                                "column": 27
294                              }
295                            }
296                          }
297                        ],
298                        "loc": {
299                          "start": {
300                            "line": 17,
301                            "column": 7
302                          },
303                          "end": {
304                            "line": 19,
305                            "column": 4
306                          }
307                        }
308                      },
309                      "handler": [
310                        {
311                          "type": "CatchClause",
312                          "body": {
313                            "type": "BlockStatement",
314                            "statements": [],
315                            "loc": {
316                              "start": {
317                                "line": 19,
318                                "column": 15
319                              },
320                              "end": {
321                                "line": 19,
322                                "column": 17
323                              }
324                            }
325                          },
326                          "param": {
327                            "type": "Identifier",
328                            "name": "e",
329                            "decorators": [],
330                            "loc": {
331                              "start": {
332                                "line": 19,
333                                "column": 12
334                              },
335                              "end": {
336                                "line": 19,
337                                "column": 13
338                              }
339                            }
340                          },
341                          "loc": {
342                            "start": {
343                              "line": 19,
344                              "column": 5
345                            },
346                            "end": {
347                              "line": 19,
348                              "column": 17
349                            }
350                          }
351                        }
352                      ],
353                      "finalizer": null,
354                      "loc": {
355                        "start": {
356                          "line": 17,
357                          "column": 3
358                        },
359                        "end": {
360                          "line": 19,
361                          "column": 17
362                        }
363                      }
364                    },
365                    {
366                      "type": "ExpressionStatement",
367                      "expression": {
368                        "type": "CallExpression",
369                        "callee": {
370                          "type": "Identifier",
371                          "name": "f",
372                          "decorators": [],
373                          "loc": {
374                            "start": {
375                              "line": 21,
376                              "column": 3
377                            },
378                            "end": {
379                              "line": 21,
380                              "column": 4
381                            }
382                          }
383                        },
384                        "arguments": [],
385                        "optional": false,
386                        "loc": {
387                          "start": {
388                            "line": 21,
389                            "column": 3
390                          },
391                          "end": {
392                            "line": 21,
393                            "column": 6
394                          }
395                        }
396                      },
397                      "loc": {
398                        "start": {
399                          "line": 21,
400                          "column": 3
401                        },
402                        "end": {
403                          "line": 21,
404                          "column": 7
405                        }
406                      }
407                    }
408                  ],
409                  "loc": {
410                    "start": {
411                      "line": 16,
412                      "column": 56
413                    },
414                    "end": {
415                      "line": 22,
416                      "column": 2
417                    }
418                  }
419                }
420                "throwMarker": "rethrows",
421                "loc": {
422                  "start": {
423                    "line": 16,
424                    "column": 24
425                  },
426                  "end": {
427                    "line": 22,
428                    "column": 2
429                  }
430                }
431              },
432              "loc": {
433                "start": {
434                  "line": 16,
435                  "column": 24
436                },
437                "end": {
438                  "line": 22,
439                  "column": 2
440                }
441              }
442            },
443            "overloads": [],
444            "decorators": [],
445            "loc": {
446              "start": {
447                "line": 16,
448                "column": 1
449              },
450              "end": {
451                "line": 22,
452                "column": 2
453              }
454            }
455          }
456        ],
457        "loc": {
458          "start": {
459            "line": 1,
460            "column": 1
461          },
462          "end": {
463            "line": 1,
464            "column": 1
465          }
466        }
467      },
468      "loc": {
469        "start": {
470          "line": 1,
471          "column": 1
472        },
473        "end": {
474          "line": 1,
475          "column": 1
476        }
477      }
478    }
479  ],
480  "loc": {
481    "start": {
482      "line": 1,
483      "column": 1
484    },
485    "end": {
486      "line": 23,
487      "column": 1
488    }
489  }
490}
491