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": "main",
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": "main",
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": "_$init$_",
124              "decorators": [],
125              "loc": {
126                "start": {
127                  "line": 1,
128                  "column": 1
129                },
130                "end": {
131                  "line": 1,
132                  "column": 1
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": "_$init$_",
148                  "decorators": [],
149                  "loc": {
150                    "start": {
151                      "line": 1,
152                      "column": 1
153                    },
154                    "end": {
155                      "line": 1,
156                      "column": 1
157                    }
158                  }
159                },
160                "generator": false,
161                "async": false,
162                "expression": false,
163                "params": [],
164                "body": {
165                  "type": "BlockStatement",
166                  "statements": [
167                    {
168                      "type": "ExpressionStatement",
169                      "expression": {
170                        "type": "AssignmentExpression",
171                        "operator": "=",
172                        "left": {
173                          "type": "Identifier",
174                          "name": "throws",
175                          "decorators": [],
176                          "loc": {
177                            "start": {
178                              "line": 16,
179                              "column": 5
180                            },
181                            "end": {
182                              "line": 16,
183                              "column": 11
184                            }
185                          }
186                        },
187                        "right": {
188                          "type": "NumberLiteral",
189                          "value": 1,
190                          "loc": {
191                            "start": {
192                              "line": 16,
193                              "column": 14
194                            },
195                            "end": {
196                              "line": 16,
197                              "column": 15
198                            }
199                          }
200                        },
201                        "loc": {
202                          "start": {
203                            "line": 16,
204                            "column": 5
205                          },
206                          "end": {
207                            "line": 16,
208                            "column": 15
209                          }
210                        }
211                      },
212                      "loc": {
213                        "start": {
214                          "line": 16,
215                          "column": 5
216                        },
217                        "end": {
218                          "line": 16,
219                          "column": 15
220                        }
221                      }
222                    },
223                    {
224                      "type": "ExpressionStatement",
225                      "expression": {
226                        "type": "AssignmentExpression",
227                        "operator": "=",
228                        "left": {
229                          "type": "Identifier",
230                          "name": "rethrows",
231                          "decorators": [],
232                          "loc": {
233                            "start": {
234                              "line": 17,
235                              "column": 5
236                            },
237                            "end": {
238                              "line": 17,
239                              "column": 13
240                            }
241                          }
242                        },
243                        "right": {
244                          "type": "NumberLiteral",
245                          "value": 2,
246                          "loc": {
247                            "start": {
248                              "line": 17,
249                              "column": 16
250                            },
251                            "end": {
252                              "line": 17,
253                              "column": 17
254                            }
255                          }
256                        },
257                        "loc": {
258                          "start": {
259                            "line": 17,
260                            "column": 5
261                          },
262                          "end": {
263                            "line": 17,
264                            "column": 17
265                          }
266                        }
267                      },
268                      "loc": {
269                        "start": {
270                          "line": 17,
271                          "column": 5
272                        },
273                        "end": {
274                          "line": 17,
275                          "column": 17
276                        }
277                      }
278                    }
279                  ],
280                  "loc": {
281                    "start": {
282                      "line": 1,
283                      "column": 1
284                    },
285                    "end": {
286                      "line": 1,
287                      "column": 1
288                    }
289                  }
290                },
291                "loc": {
292                  "start": {
293                    "line": 1,
294                    "column": 1
295                  },
296                  "end": {
297                    "line": 1,
298                    "column": 1
299                  }
300                }
301              },
302              "loc": {
303                "start": {
304                  "line": 1,
305                  "column": 1
306                },
307                "end": {
308                  "line": 1,
309                  "column": 1
310                }
311              }
312            },
313            "overloads": [],
314            "decorators": [],
315            "loc": {
316              "start": {
317                "line": 1,
318                "column": 1
319              },
320              "end": {
321                "line": 1,
322                "column": 1
323              }
324            }
325          },
326          {
327            "type": "ClassProperty",
328            "key": {
329              "type": "Identifier",
330              "name": "throws",
331              "decorators": [],
332              "loc": {
333                "start": {
334                  "line": 16,
335                  "column": 5
336                },
337                "end": {
338                  "line": 16,
339                  "column": 11
340                }
341              }
342            },
343            "value": {
344              "type": "NumberLiteral",
345              "value": 1,
346              "loc": {
347                "start": {
348                  "line": 16,
349                  "column": 14
350                },
351                "end": {
352                  "line": 16,
353                  "column": 15
354                }
355              }
356            },
357            "accessibility": "public",
358            "static": true,
359            "readonly": false,
360            "declare": false,
361            "optional": false,
362            "computed": false,
363            "definite": false,
364            "decorators": [],
365            "loc": {
366              "start": {
367                "line": 16,
368                "column": 5
369              },
370              "end": {
371                "line": 16,
372                "column": 15
373              }
374            }
375          },
376          {
377            "type": "ClassProperty",
378            "key": {
379              "type": "Identifier",
380              "name": "rethrows",
381              "decorators": [],
382              "loc": {
383                "start": {
384                  "line": 17,
385                  "column": 5
386                },
387                "end": {
388                  "line": 17,
389                  "column": 13
390                }
391              }
392            },
393            "value": {
394              "type": "NumberLiteral",
395              "value": 2,
396              "loc": {
397                "start": {
398                  "line": 17,
399                  "column": 16
400                },
401                "end": {
402                  "line": 17,
403                  "column": 17
404                }
405              }
406            },
407            "accessibility": "public",
408            "static": true,
409            "readonly": false,
410            "declare": false,
411            "optional": false,
412            "computed": false,
413            "definite": false,
414            "decorators": [],
415            "loc": {
416              "start": {
417                "line": 17,
418                "column": 5
419              },
420              "end": {
421                "line": 17,
422                "column": 17
423              }
424            }
425          },
426          {
427            "type": "MethodDefinition",
428            "key": {
429              "type": "Identifier",
430              "name": "testFunction",
431              "decorators": [],
432              "loc": {
433                "start": {
434                  "line": 19,
435                  "column": 10
436                },
437                "end": {
438                  "line": 19,
439                  "column": 22
440                }
441              }
442            },
443            "kind": "method",
444            "accessibility": "public",
445            "static": true,
446            "optional": false,
447            "computed": false,
448            "value": {
449              "type": "FunctionExpression",
450              "function": {
451                "type": "ScriptFunction",
452                "id": {
453                  "type": "Identifier",
454                  "name": "testFunction",
455                  "decorators": [],
456                  "loc": {
457                    "start": {
458                      "line": 19,
459                      "column": 10
460                    },
461                    "end": {
462                      "line": 19,
463                      "column": 22
464                    }
465                  }
466                },
467                "generator": false,
468                "async": false,
469                "expression": false,
470                "params": [],
471                "returnType": {
472                  "type": "ETSPrimitiveType",
473                  "loc": {
474                    "start": {
475                      "line": 19,
476                      "column": 26
477                    },
478                    "end": {
479                      "line": 19,
480                      "column": 30
481                    }
482                  }
483                },
484                "body": {
485                  "type": "BlockStatement",
486                  "statements": [],
487                  "loc": {
488                    "start": {
489                      "line": 19,
490                      "column": 38
491                    },
492                    "end": {
493                      "line": 19,
494                      "column": 40
495                    }
496                  }
497                }
498                "throwMarker": "throws",
499                "loc": {
500                  "start": {
501                    "line": 19,
502                    "column": 22
503                  },
504                  "end": {
505                    "line": 19,
506                    "column": 40
507                  }
508                }
509              },
510              "loc": {
511                "start": {
512                  "line": 19,
513                  "column": 22
514                },
515                "end": {
516                  "line": 19,
517                  "column": 40
518                }
519              }
520            },
521            "overloads": [],
522            "decorators": [],
523            "loc": {
524              "start": {
525                "line": 19,
526                "column": 1
527              },
528              "end": {
529                "line": 19,
530                "column": 40
531              }
532            }
533          },
534          {
535            "type": "MethodDefinition",
536            "key": {
537              "type": "Identifier",
538              "name": "testFunction2",
539              "decorators": [],
540              "loc": {
541                "start": {
542                  "line": 20,
543                  "column": 10
544                },
545                "end": {
546                  "line": 20,
547                  "column": 23
548                }
549              }
550            },
551            "kind": "method",
552            "accessibility": "public",
553            "static": true,
554            "optional": false,
555            "computed": false,
556            "value": {
557              "type": "FunctionExpression",
558              "function": {
559                "type": "ScriptFunction",
560                "id": {
561                  "type": "Identifier",
562                  "name": "testFunction2",
563                  "decorators": [],
564                  "loc": {
565                    "start": {
566                      "line": 20,
567                      "column": 10
568                    },
569                    "end": {
570                      "line": 20,
571                      "column": 23
572                    }
573                  }
574                },
575                "generator": false,
576                "async": false,
577                "expression": false,
578                "params": [
579                  {
580                    "type": "ETSParameterExpression",
581                    "name": {
582                      "type": "Identifier",
583                      "name": "f",
584                      "typeAnnotation": {
585                        "type": "ETSFunctionType",
586                        "params": [],
587                        "returnType": {
588                          "type": "ETSPrimitiveType",
589                          "loc": {
590                            "start": {
591                              "line": 20,
592                              "column": 33
593                            },
594                            "end": {
595                              "line": 20,
596                              "column": 37
597                            }
598                          }
599                        }
600                        "throwMarker": "throws",
601                        "loc": {
602                          "start": {
603                            "line": 20,
604                            "column": 27
605                          },
606                          "end": {
607                            "line": 20,
608                            "column": 37
609                          }
610                        }
611                      },
612                      "decorators": [],
613                      "loc": {
614                        "start": {
615                          "line": 20,
616                          "column": 24
617                        },
618                        "end": {
619                          "line": 20,
620                          "column": 37
621                        }
622                      }
623                    },
624                    "loc": {
625                      "start": {
626                        "line": 20,
627                        "column": 24
628                      },
629                      "end": {
630                        "line": 20,
631                        "column": 37
632                      }
633                    }
634                  }
635                ],
636                "returnType": {
637                  "type": "ETSPrimitiveType",
638                  "loc": {
639                    "start": {
640                      "line": 20,
641                      "column": 47
642                    },
643                    "end": {
644                      "line": 20,
645                      "column": 51
646                    }
647                  }
648                },
649                "body": {
650                  "type": "BlockStatement",
651                  "statements": [],
652                  "loc": {
653                    "start": {
654                      "line": 20,
655                      "column": 61
656                    },
657                    "end": {
658                      "line": 20,
659                      "column": 63
660                    }
661                  }
662                }
663                "throwMarker": "rethrows",
664                "loc": {
665                  "start": {
666                    "line": 20,
667                    "column": 23
668                  },
669                  "end": {
670                    "line": 20,
671                    "column": 63
672                  }
673                }
674              },
675              "loc": {
676                "start": {
677                  "line": 20,
678                  "column": 23
679                },
680                "end": {
681                  "line": 20,
682                  "column": 63
683                }
684              }
685            },
686            "overloads": [],
687            "decorators": [],
688            "loc": {
689              "start": {
690                "line": 20,
691                "column": 1
692              },
693              "end": {
694                "line": 20,
695                "column": 63
696              }
697            }
698          }
699        ],
700        "loc": {
701          "start": {
702            "line": 1,
703            "column": 1
704          },
705          "end": {
706            "line": 1,
707            "column": 1
708          }
709        }
710      },
711      "loc": {
712        "start": {
713          "line": 1,
714          "column": 1
715        },
716        "end": {
717          "line": 1,
718          "column": 1
719        }
720      }
721    }
722  ],
723  "loc": {
724    "start": {
725      "line": 1,
726      "column": 1
727    },
728    "end": {
729      "line": 21,
730      "column": 1
731    }
732  }
733}
734