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