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": "foo",
124              "decorators": [],
125              "loc": {
126                "start": {
127                  "line": 16,
128                  "column": 10
129                },
130                "end": {
131                  "line": 16,
132                  "column": 13
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": "foo",
148                  "decorators": [],
149                  "loc": {
150                    "start": {
151                      "line": 16,
152                      "column": 10
153                    },
154                    "end": {
155                      "line": 16,
156                      "column": 13
157                    }
158                  }
159                },
160                "generator": false,
161                "async": false,
162                "expression": false,
163                "params": [],
164                "returnType": {
165                  "type": "ETSPrimitiveType",
166                  "loc": {
167                    "start": {
168                      "line": 16,
169                      "column": 18
170                    },
171                    "end": {
172                      "line": 16,
173                      "column": 22
174                    }
175                  }
176                },
177                "body": {
178                  "type": "BlockStatement",
179                  "statements": [],
180                  "loc": {
181                    "start": {
182                      "line": 16,
183                      "column": 23
184                    },
185                    "end": {
186                      "line": 16,
187                      "column": 25
188                    }
189                  }
190                },
191                "loc": {
192                  "start": {
193                    "line": 16,
194                    "column": 13
195                  },
196                  "end": {
197                    "line": 16,
198                    "column": 25
199                  }
200                }
201              },
202              "loc": {
203                "start": {
204                  "line": 16,
205                  "column": 13
206                },
207                "end": {
208                  "line": 16,
209                  "column": 25
210                }
211              }
212            },
213            "overloads": [],
214            "decorators": [],
215            "loc": {
216              "start": {
217                "line": 16,
218                "column": 1
219              },
220              "end": {
221                "line": 16,
222                "column": 25
223              }
224            }
225          },
226          {
227            "type": "MethodDefinition",
228            "key": {
229              "type": "Identifier",
230              "name": "bar",
231              "decorators": [],
232              "loc": {
233                "start": {
234                  "line": 18,
235                  "column": 10
236                },
237                "end": {
238                  "line": 18,
239                  "column": 13
240                }
241              }
242            },
243            "kind": "method",
244            "accessibility": "public",
245            "static": true,
246            "optional": false,
247            "computed": false,
248            "value": {
249              "type": "FunctionExpression",
250              "function": {
251                "type": "ScriptFunction",
252                "id": {
253                  "type": "Identifier",
254                  "name": "bar",
255                  "decorators": [],
256                  "loc": {
257                    "start": {
258                      "line": 18,
259                      "column": 10
260                    },
261                    "end": {
262                      "line": 18,
263                      "column": 13
264                    }
265                  }
266                },
267                "generator": false,
268                "async": false,
269                "expression": false,
270                "params": [],
271                "returnType": {
272                  "type": "ETSPrimitiveType",
273                  "loc": {
274                    "start": {
275                      "line": 18,
276                      "column": 18
277                    },
278                    "end": {
279                      "line": 18,
280                      "column": 22
281                    }
282                  }
283                },
284                "body": {
285                  "type": "BlockStatement",
286                  "statements": [],
287                  "loc": {
288                    "start": {
289                      "line": 18,
290                      "column": 30
291                    },
292                    "end": {
293                      "line": 18,
294                      "column": 32
295                    }
296                  }
297                }
298                "throwMarker": "throws",
299                "loc": {
300                  "start": {
301                    "line": 18,
302                    "column": 13
303                  },
304                  "end": {
305                    "line": 18,
306                    "column": 32
307                  }
308                }
309              },
310              "loc": {
311                "start": {
312                  "line": 18,
313                  "column": 13
314                },
315                "end": {
316                  "line": 18,
317                  "column": 32
318                }
319              }
320            },
321            "overloads": [],
322            "decorators": [],
323            "loc": {
324              "start": {
325                "line": 18,
326                "column": 1
327              },
328              "end": {
329                "line": 18,
330                "column": 32
331              }
332            }
333          },
334          {
335            "type": "MethodDefinition",
336            "key": {
337              "type": "Identifier",
338              "name": "baz",
339              "decorators": [],
340              "loc": {
341                "start": {
342                  "line": 20,
343                  "column": 10
344                },
345                "end": {
346                  "line": 20,
347                  "column": 13
348                }
349              }
350            },
351            "kind": "method",
352            "accessibility": "public",
353            "static": true,
354            "optional": false,
355            "computed": false,
356            "value": {
357              "type": "FunctionExpression",
358              "function": {
359                "type": "ScriptFunction",
360                "id": {
361                  "type": "Identifier",
362                  "name": "baz",
363                  "decorators": [],
364                  "loc": {
365                    "start": {
366                      "line": 20,
367                      "column": 10
368                    },
369                    "end": {
370                      "line": 20,
371                      "column": 13
372                    }
373                  }
374                },
375                "generator": false,
376                "async": false,
377                "expression": false,
378                "params": [
379                  {
380                    "type": "ETSParameterExpression",
381                    "name": {
382                      "type": "Identifier",
383                      "name": "e",
384                      "typeAnnotation": {
385                        "type": "ETSFunctionType",
386                        "params": [],
387                        "returnType": {
388                          "type": "ETSPrimitiveType",
389                          "loc": {
390                            "start": {
391                              "line": 20,
392                              "column": 23
393                            },
394                            "end": {
395                              "line": 20,
396                              "column": 27
397                            }
398                          }
399                        }
400                        "throwMarker": "throws",
401                        "loc": {
402                          "start": {
403                            "line": 20,
404                            "column": 17
405                          },
406                          "end": {
407                            "line": 20,
408                            "column": 27
409                          }
410                        }
411                      },
412                      "decorators": [],
413                      "loc": {
414                        "start": {
415                          "line": 20,
416                          "column": 14
417                        },
418                        "end": {
419                          "line": 20,
420                          "column": 27
421                        }
422                      }
423                    },
424                    "loc": {
425                      "start": {
426                        "line": 20,
427                        "column": 14
428                      },
429                      "end": {
430                        "line": 20,
431                        "column": 27
432                      }
433                    }
434                  }
435                ],
436                "returnType": {
437                  "type": "ETSPrimitiveType",
438                  "loc": {
439                    "start": {
440                      "line": 20,
441                      "column": 38
442                    },
443                    "end": {
444                      "line": 20,
445                      "column": 42
446                    }
447                  }
448                },
449                "body": {
450                  "type": "BlockStatement",
451                  "statements": [],
452                  "loc": {
453                    "start": {
454                      "line": 20,
455                      "column": 52
456                    },
457                    "end": {
458                      "line": 20,
459                      "column": 54
460                    }
461                  }
462                }
463                "throwMarker": "rethrows",
464                "loc": {
465                  "start": {
466                    "line": 20,
467                    "column": 13
468                  },
469                  "end": {
470                    "line": 20,
471                    "column": 54
472                  }
473                }
474              },
475              "loc": {
476                "start": {
477                  "line": 20,
478                  "column": 13
479                },
480                "end": {
481                  "line": 20,
482                  "column": 54
483                }
484              }
485            },
486            "overloads": [],
487            "decorators": [],
488            "loc": {
489              "start": {
490                "line": 20,
491                "column": 1
492              },
493              "end": {
494                "line": 20,
495                "column": 54
496              }
497            }
498          },
499          {
500            "type": "MethodDefinition",
501            "key": {
502              "type": "Identifier",
503              "name": "main",
504              "decorators": [],
505              "loc": {
506                "start": {
507                  "line": 22,
508                  "column": 10
509                },
510                "end": {
511                  "line": 22,
512                  "column": 14
513                }
514              }
515            },
516            "kind": "method",
517            "accessibility": "public",
518            "static": true,
519            "optional": false,
520            "computed": false,
521            "value": {
522              "type": "FunctionExpression",
523              "function": {
524                "type": "ScriptFunction",
525                "id": {
526                  "type": "Identifier",
527                  "name": "main",
528                  "decorators": [],
529                  "loc": {
530                    "start": {
531                      "line": 22,
532                      "column": 10
533                    },
534                    "end": {
535                      "line": 22,
536                      "column": 14
537                    }
538                  }
539                },
540                "generator": false,
541                "async": false,
542                "expression": false,
543                "params": [],
544                "returnType": {
545                  "type": "ETSPrimitiveType",
546                  "loc": {
547                    "start": {
548                      "line": 22,
549                      "column": 18
550                    },
551                    "end": {
552                      "line": 22,
553                      "column": 22
554                    }
555                  }
556                },
557                "body": {
558                  "type": "BlockStatement",
559                  "statements": [
560                    {
561                      "type": "VariableDeclaration",
562                      "declarations": [
563                        {
564                          "type": "VariableDeclarator",
565                          "id": {
566                            "type": "Identifier",
567                            "name": "throwing1",
568                            "typeAnnotation": {
569                              "type": "ETSFunctionType",
570                              "params": [],
571                              "returnType": {
572                                "type": "ETSPrimitiveType",
573                                "loc": {
574                                  "start": {
575                                    "line": 23,
576                                    "column": 26
577                                  },
578                                  "end": {
579                                    "line": 23,
580                                    "column": 30
581                                  }
582                                }
583                              }
584                              "throwMarker": "throws",
585                              "loc": {
586                                "start": {
587                                  "line": 23,
588                                  "column": 20
589                                },
590                                "end": {
591                                  "line": 23,
592                                  "column": 30
593                                }
594                              }
595                            },
596                            "decorators": [],
597                            "loc": {
598                              "start": {
599                                "line": 23,
600                                "column": 9
601                              },
602                              "end": {
603                                "line": 23,
604                                "column": 18
605                              }
606                            }
607                          },
608                          "init": {
609                            "type": "Identifier",
610                            "name": "foo",
611                            "decorators": [],
612                            "loc": {
613                              "start": {
614                                "line": 23,
615                                "column": 40
616                              },
617                              "end": {
618                                "line": 23,
619                                "column": 43
620                              }
621                            }
622                          },
623                          "loc": {
624                            "start": {
625                              "line": 23,
626                              "column": 9
627                            },
628                            "end": {
629                              "line": 23,
630                              "column": 43
631                            }
632                          }
633                        }
634                      ],
635                      "kind": "let",
636                      "loc": {
637                        "start": {
638                          "line": 23,
639                          "column": 5
640                        },
641                        "end": {
642                          "line": 23,
643                          "column": 44
644                        }
645                      }
646                    },
647                    {
648                      "type": "VariableDeclaration",
649                      "declarations": [
650                        {
651                          "type": "VariableDeclarator",
652                          "id": {
653                            "type": "Identifier",
654                            "name": "throwing2",
655                            "typeAnnotation": {
656                              "type": "ETSFunctionType",
657                              "params": [],
658                              "returnType": {
659                                "type": "ETSPrimitiveType",
660                                "loc": {
661                                  "start": {
662                                    "line": 25,
663                                    "column": 26
664                                  },
665                                  "end": {
666                                    "line": 25,
667                                    "column": 30
668                                  }
669                                }
670                              }
671                              "throwMarker": "throws",
672                              "loc": {
673                                "start": {
674                                  "line": 25,
675                                  "column": 20
676                                },
677                                "end": {
678                                  "line": 25,
679                                  "column": 30
680                                }
681                              }
682                            },
683                            "decorators": [],
684                            "loc": {
685                              "start": {
686                                "line": 25,
687                                "column": 9
688                              },
689                              "end": {
690                                "line": 25,
691                                "column": 18
692                              }
693                            }
694                          },
695                          "init": {
696                            "type": "Identifier",
697                            "name": "bar",
698                            "decorators": [],
699                            "loc": {
700                              "start": {
701                                "line": 25,
702                                "column": 40
703                              },
704                              "end": {
705                                "line": 25,
706                                "column": 43
707                              }
708                            }
709                          },
710                          "loc": {
711                            "start": {
712                              "line": 25,
713                              "column": 9
714                            },
715                            "end": {
716                              "line": 25,
717                              "column": 43
718                            }
719                          }
720                        }
721                      ],
722                      "kind": "let",
723                      "loc": {
724                        "start": {
725                          "line": 25,
726                          "column": 5
727                        },
728                        "end": {
729                          "line": 25,
730                          "column": 44
731                        }
732                      }
733                    },
734                    {
735                      "type": "VariableDeclaration",
736                      "declarations": [
737                        {
738                          "type": "VariableDeclarator",
739                          "id": {
740                            "type": "Identifier",
741                            "name": "throwing3",
742                            "typeAnnotation": {
743                              "type": "ETSFunctionType",
744                              "params": [
745                                {
746                                  "type": "ETSParameterExpression",
747                                  "name": {
748                                    "type": "Identifier",
749                                    "name": "e",
750                                    "typeAnnotation": {
751                                      "type": "ETSFunctionType",
752                                      "params": [],
753                                      "returnType": {
754                                        "type": "ETSPrimitiveType",
755                                        "loc": {
756                                          "start": {
757                                            "line": 27,
758                                            "column": 30
759                                          },
760                                          "end": {
761                                            "line": 27,
762                                            "column": 34
763                                          }
764                                        }
765                                      }
766                                      "throwMarker": "throws",
767                                      "loc": {
768                                        "start": {
769                                          "line": 27,
770                                          "column": 24
771                                        },
772                                        "end": {
773                                          "line": 27,
774                                          "column": 34
775                                        }
776                                      }
777                                    },
778                                    "decorators": [],
779                                    "loc": {
780                                      "start": {
781                                        "line": 27,
782                                        "column": 21
783                                      },
784                                      "end": {
785                                        "line": 27,
786                                        "column": 34
787                                      }
788                                    }
789                                  },
790                                  "loc": {
791                                    "start": {
792                                      "line": 27,
793                                      "column": 21
794                                    },
795                                    "end": {
796                                      "line": 27,
797                                      "column": 34
798                                    }
799                                  }
800                                }
801                              ],
802                              "returnType": {
803                                "type": "ETSPrimitiveType",
804                                "loc": {
805                                  "start": {
806                                    "line": 27,
807                                    "column": 46
808                                  },
809                                  "end": {
810                                    "line": 27,
811                                    "column": 50
812                                  }
813                                }
814                              }
815                              "throwMarker": "throws",
816                              "loc": {
817                                "start": {
818                                  "line": 27,
819                                  "column": 20
820                                },
821                                "end": {
822                                  "line": 27,
823                                  "column": 50
824                                }
825                              }
826                            },
827                            "decorators": [],
828                            "loc": {
829                              "start": {
830                                "line": 27,
831                                "column": 9
832                              },
833                              "end": {
834                                "line": 27,
835                                "column": 18
836                              }
837                            }
838                          },
839                          "init": {
840                            "type": "Identifier",
841                            "name": "baz",
842                            "decorators": [],
843                            "loc": {
844                              "start": {
845                                "line": 27,
846                                "column": 60
847                              },
848                              "end": {
849                                "line": 27,
850                                "column": 63
851                              }
852                            }
853                          },
854                          "loc": {
855                            "start": {
856                              "line": 27,
857                              "column": 9
858                            },
859                            "end": {
860                              "line": 27,
861                              "column": 63
862                            }
863                          }
864                        }
865                      ],
866                      "kind": "let",
867                      "loc": {
868                        "start": {
869                          "line": 27,
870                          "column": 5
871                        },
872                        "end": {
873                          "line": 27,
874                          "column": 64
875                        }
876                      }
877                    }
878                  ],
879                  "loc": {
880                    "start": {
881                      "line": 22,
882                      "column": 23
883                    },
884                    "end": {
885                      "line": 28,
886                      "column": 2
887                    }
888                  }
889                },
890                "loc": {
891                  "start": {
892                    "line": 22,
893                    "column": 14
894                  },
895                  "end": {
896                    "line": 28,
897                    "column": 2
898                  }
899                }
900              },
901              "loc": {
902                "start": {
903                  "line": 22,
904                  "column": 14
905                },
906                "end": {
907                  "line": 28,
908                  "column": 2
909                }
910              }
911            },
912            "overloads": [],
913            "decorators": [],
914            "loc": {
915              "start": {
916                "line": 22,
917                "column": 1
918              },
919              "end": {
920                "line": 28,
921                "column": 2
922              }
923            }
924          }
925        ],
926        "loc": {
927          "start": {
928            "line": 1,
929            "column": 1
930          },
931          "end": {
932            "line": 1,
933            "column": 1
934          }
935        }
936      },
937      "loc": {
938        "start": {
939          "line": 1,
940          "column": 1
941        },
942        "end": {
943          "line": 1,
944          "column": 1
945        }
946      }
947    }
948  ],
949  "loc": {
950    "start": {
951      "line": 1,
952      "column": 1
953    },
954    "end": {
955      "line": 29,
956      "column": 1
957    }
958  }
959}
960