1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "ClassDeclaration",
6      "definition": {
7        "id": {
8          "type": "Identifier",
9          "name": "catch",
10          "decorators": [],
11          "loc": {
12            "start": {
13              "line": 16,
14              "column": 7
15            },
16            "end": {
17              "line": 16,
18              "column": 12
19            }
20          }
21        },
22        "superClass": null,
23        "implements": [],
24        "body": [
25          {
26            "type": "MethodDefinition",
27            "key": {
28              "type": "Identifier",
29              "name": "constructor",
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": "constructor",
43            "static": false,
44            "optional": false,
45            "computed": false,
46            "value": {
47              "type": "FunctionExpression",
48              "function": {
49                "type": "ScriptFunction",
50                "id": {
51                  "type": "Identifier",
52                  "name": "constructor",
53                  "decorators": [],
54                  "loc": {
55                    "start": {
56                      "line": 1,
57                      "column": 1
58                    },
59                    "end": {
60                      "line": 1,
61                      "column": 1
62                    }
63                  }
64                },
65                "generator": false,
66                "async": false,
67                "expression": false,
68                "params": [],
69                "body": {
70                  "type": "BlockStatement",
71                  "statements": [],
72                  "loc": {
73                    "start": {
74                      "line": 1,
75                      "column": 1
76                    },
77                    "end": {
78                      "line": 1,
79                      "column": 1
80                    }
81                  }
82                },
83                "loc": {
84                  "start": {
85                    "line": 1,
86                    "column": 1
87                  },
88                  "end": {
89                    "line": 1,
90                    "column": 1
91                  }
92                }
93              },
94              "loc": {
95                "start": {
96                  "line": 1,
97                  "column": 1
98                },
99                "end": {
100                  "line": 1,
101                  "column": 1
102                }
103              }
104            },
105            "overloads": [],
106            "decorators": [],
107            "loc": {
108              "start": {
109                "line": 17,
110                "column": 2
111              },
112              "end": {
113                "line": 17,
114                "column": 2
115              }
116            }
117          }
118        ],
119        "loc": {
120          "start": {
121            "line": 16,
122            "column": 13
123          },
124          "end": {
125            "line": 17,
126            "column": 2
127          }
128        }
129      },
130      "loc": {
131        "start": {
132          "line": 16,
133          "column": 1
134        },
135        "end": {
136          "line": 17,
137          "column": 2
138        }
139      }
140    },
141    {
142      "type": "ClassDeclaration",
143      "definition": {
144        "id": {
145          "type": "Identifier",
146          "name": "cls",
147          "decorators": [],
148          "loc": {
149            "start": {
150              "line": 19,
151              "column": 7
152            },
153            "end": {
154              "line": 19,
155              "column": 10
156            }
157          }
158        },
159        "superClass": null,
160        "implements": [],
161        "body": [
162          {
163            "type": "MethodDefinition",
164            "key": {
165              "type": "Identifier",
166              "name": "catch",
167              "decorators": [],
168              "loc": {
169                "start": {
170                  "line": 20,
171                  "column": 3
172                },
173                "end": {
174                  "line": 20,
175                  "column": 8
176                }
177              }
178            },
179            "kind": "method",
180            "accessibility": "public",
181            "static": false,
182            "optional": false,
183            "computed": false,
184            "value": {
185              "type": "FunctionExpression",
186              "function": {
187                "type": "ScriptFunction",
188                "id": {
189                  "type": "Identifier",
190                  "name": "catch",
191                  "decorators": [],
192                  "loc": {
193                    "start": {
194                      "line": 20,
195                      "column": 3
196                    },
197                    "end": {
198                      "line": 20,
199                      "column": 8
200                    }
201                  }
202                },
203                "generator": false,
204                "async": false,
205                "expression": false,
206                "params": [],
207                "returnType": {
208                  "type": "ETSPrimitiveType",
209                  "loc": {
210                    "start": {
211                      "line": 20,
212                      "column": 12
213                    },
214                    "end": {
215                      "line": 20,
216                      "column": 16
217                    }
218                  }
219                },
220                "body": {
221                  "type": "BlockStatement",
222                  "statements": [],
223                  "loc": {
224                    "start": {
225                      "line": 20,
226                      "column": 17
227                    },
228                    "end": {
229                      "line": 20,
230                      "column": 19
231                    }
232                  }
233                },
234                "loc": {
235                  "start": {
236                    "line": 20,
237                    "column": 8
238                  },
239                  "end": {
240                    "line": 20,
241                    "column": 19
242                  }
243                }
244              },
245              "loc": {
246                "start": {
247                  "line": 20,
248                  "column": 8
249                },
250                "end": {
251                  "line": 20,
252                  "column": 19
253                }
254              }
255            },
256            "overloads": [],
257            "decorators": [],
258            "loc": {
259              "start": {
260                "line": 20,
261                "column": 3
262              },
263              "end": {
264                "line": 20,
265                "column": 19
266              }
267            }
268          },
269          {
270            "type": "MethodDefinition",
271            "key": {
272              "type": "Identifier",
273              "name": "constructor",
274              "decorators": [],
275              "loc": {
276                "start": {
277                  "line": 1,
278                  "column": 1
279                },
280                "end": {
281                  "line": 1,
282                  "column": 1
283                }
284              }
285            },
286            "kind": "constructor",
287            "static": false,
288            "optional": false,
289            "computed": false,
290            "value": {
291              "type": "FunctionExpression",
292              "function": {
293                "type": "ScriptFunction",
294                "id": {
295                  "type": "Identifier",
296                  "name": "constructor",
297                  "decorators": [],
298                  "loc": {
299                    "start": {
300                      "line": 1,
301                      "column": 1
302                    },
303                    "end": {
304                      "line": 1,
305                      "column": 1
306                    }
307                  }
308                },
309                "generator": false,
310                "async": false,
311                "expression": false,
312                "params": [],
313                "body": {
314                  "type": "BlockStatement",
315                  "statements": [],
316                  "loc": {
317                    "start": {
318                      "line": 1,
319                      "column": 1
320                    },
321                    "end": {
322                      "line": 1,
323                      "column": 1
324                    }
325                  }
326                },
327                "loc": {
328                  "start": {
329                    "line": 1,
330                    "column": 1
331                  },
332                  "end": {
333                    "line": 1,
334                    "column": 1
335                  }
336                }
337              },
338              "loc": {
339                "start": {
340                  "line": 1,
341                  "column": 1
342                },
343                "end": {
344                  "line": 1,
345                  "column": 1
346                }
347              }
348            },
349            "overloads": [],
350            "decorators": [],
351            "loc": {
352              "start": {
353                "line": 21,
354                "column": 2
355              },
356              "end": {
357                "line": 21,
358                "column": 2
359              }
360            }
361          }
362        ],
363        "loc": {
364          "start": {
365            "line": 19,
366            "column": 11
367          },
368          "end": {
369            "line": 21,
370            "column": 2
371          }
372        }
373      },
374      "loc": {
375        "start": {
376          "line": 19,
377          "column": 1
378        },
379        "end": {
380          "line": 21,
381          "column": 2
382        }
383      }
384    },
385    {
386      "type": "ClassDeclaration",
387      "definition": {
388        "id": {
389          "type": "Identifier",
390          "name": "ETSGLOBAL",
391          "decorators": [],
392          "loc": {
393            "start": {
394              "line": 1,
395              "column": 1
396            },
397            "end": {
398              "line": 1,
399              "column": 1
400            }
401          }
402        },
403        "superClass": null,
404        "implements": [],
405        "body": [
406          {
407            "type": "MethodDefinition",
408            "key": {
409              "type": "Identifier",
410              "name": "_$init$_",
411              "decorators": [],
412              "loc": {
413                "start": {
414                  "line": 1,
415                  "column": 1
416                },
417                "end": {
418                  "line": 1,
419                  "column": 1
420                }
421              }
422            },
423            "kind": "method",
424            "accessibility": "public",
425            "static": true,
426            "optional": false,
427            "computed": false,
428            "value": {
429              "type": "FunctionExpression",
430              "function": {
431                "type": "ScriptFunction",
432                "id": {
433                  "type": "Identifier",
434                  "name": "_$init$_",
435                  "decorators": [],
436                  "loc": {
437                    "start": {
438                      "line": 1,
439                      "column": 1
440                    },
441                    "end": {
442                      "line": 1,
443                      "column": 1
444                    }
445                  }
446                },
447                "generator": false,
448                "async": false,
449                "expression": false,
450                "params": [],
451                "body": {
452                  "type": "BlockStatement",
453                  "statements": [],
454                  "loc": {
455                    "start": {
456                      "line": 1,
457                      "column": 1
458                    },
459                    "end": {
460                      "line": 1,
461                      "column": 1
462                    }
463                  }
464                },
465                "loc": {
466                  "start": {
467                    "line": 1,
468                    "column": 1
469                  },
470                  "end": {
471                    "line": 1,
472                    "column": 1
473                  }
474                }
475              },
476              "loc": {
477                "start": {
478                  "line": 1,
479                  "column": 1
480                },
481                "end": {
482                  "line": 1,
483                  "column": 1
484                }
485              }
486            },
487            "overloads": [],
488            "decorators": [],
489            "loc": {
490              "start": {
491                "line": 1,
492                "column": 1
493              },
494              "end": {
495                "line": 1,
496                "column": 1
497              }
498            }
499          },
500          {
501            "type": "MethodDefinition",
502            "key": {
503              "type": "Identifier",
504              "name": "foo",
505              "decorators": [],
506              "loc": {
507                "start": {
508                  "line": 23,
509                  "column": 10
510                },
511                "end": {
512                  "line": 23,
513                  "column": 13
514                }
515              }
516            },
517            "kind": "method",
518            "accessibility": "public",
519            "static": true,
520            "optional": false,
521            "computed": false,
522            "value": {
523              "type": "FunctionExpression",
524              "function": {
525                "type": "ScriptFunction",
526                "id": {
527                  "type": "Identifier",
528                  "name": "foo",
529                  "decorators": [],
530                  "loc": {
531                    "start": {
532                      "line": 23,
533                      "column": 10
534                    },
535                    "end": {
536                      "line": 23,
537                      "column": 13
538                    }
539                  }
540                },
541                "generator": false,
542                "async": false,
543                "expression": false,
544                "params": [],
545                "returnType": {
546                  "type": "ETSPrimitiveType",
547                  "loc": {
548                    "start": {
549                      "line": 23,
550                      "column": 17
551                    },
552                    "end": {
553                      "line": 23,
554                      "column": 21
555                    }
556                  }
557                },
558                "body": {
559                  "type": "BlockStatement",
560                  "statements": [
561                    {
562                      "type": "VariableDeclaration",
563                      "declarations": [
564                        {
565                          "type": "VariableDeclarator",
566                          "id": {
567                            "type": "Identifier",
568                            "name": "catch",
569                            "typeAnnotation": {
570                              "type": "ETSPrimitiveType",
571                              "loc": {
572                                "start": {
573                                  "line": 24,
574                                  "column": 14
575                                },
576                                "end": {
577                                  "line": 24,
578                                  "column": 17
579                                }
580                              }
581                            },
582                            "decorators": [],
583                            "loc": {
584                              "start": {
585                                "line": 24,
586                                "column": 7
587                              },
588                              "end": {
589                                "line": 24,
590                                "column": 12
591                              }
592                            }
593                          },
594                          "init": {
595                            "type": "NumberLiteral",
596                            "value": 5,
597                            "loc": {
598                              "start": {
599                                "line": 24,
600                                "column": 20
601                              },
602                              "end": {
603                                "line": 24,
604                                "column": 21
605                              }
606                            }
607                          },
608                          "loc": {
609                            "start": {
610                              "line": 24,
611                              "column": 7
612                            },
613                            "end": {
614                              "line": 24,
615                              "column": 21
616                            }
617                          }
618                        }
619                      ],
620                      "kind": "let",
621                      "loc": {
622                        "start": {
623                          "line": 24,
624                          "column": 3
625                        },
626                        "end": {
627                          "line": 24,
628                          "column": 22
629                        }
630                      }
631                    },
632                    {
633                      "type": "TryStatement",
634                      "block": {
635                        "type": "BlockStatement",
636                        "statements": [],
637                        "loc": {
638                          "start": {
639                            "line": 25,
640                            "column": 7
641                          },
642                          "end": {
643                            "line": 26,
644                            "column": 4
645                          }
646                        }
647                      },
648                      "handler": [
649                        {
650                          "type": "CatchClause",
651                          "body": {
652                            "type": "BlockStatement",
653                            "statements": [],
654                            "loc": {
655                              "start": {
656                                "line": 26,
657                                "column": 30
658                              },
659                              "end": {
660                                "line": 27,
661                                "column": 4
662                              }
663                            }
664                          },
665                          "param": {
666                            "type": "Identifier",
667                            "name": "catch",
668                            "typeAnnotation": {
669                              "type": "ETSTypeReference",
670                              "part": {
671                                "type": "ETSTypeReferencePart",
672                                "name": {
673                                  "type": "Identifier",
674                                  "name": "Exception",
675                                  "decorators": [],
676                                  "loc": {
677                                    "start": {
678                                      "line": 26,
679                                      "column": 19
680                                    },
681                                    "end": {
682                                      "line": 26,
683                                      "column": 28
684                                    }
685                                  }
686                                },
687                                "loc": {
688                                  "start": {
689                                    "line": 26,
690                                    "column": 19
691                                  },
692                                  "end": {
693                                    "line": 26,
694                                    "column": 29
695                                  }
696                                }
697                              },
698                              "loc": {
699                                "start": {
700                                  "line": 26,
701                                  "column": 19
702                                },
703                                "end": {
704                                  "line": 26,
705                                  "column": 29
706                                }
707                              }
708                            },
709                            "decorators": [],
710                            "loc": {
711                              "start": {
712                                "line": 26,
713                                "column": 12
714                              },
715                              "end": {
716                                "line": 26,
717                                "column": 17
718                              }
719                            }
720                          },
721                          "loc": {
722                            "start": {
723                              "line": 26,
724                              "column": 5
725                            },
726                            "end": {
727                              "line": 27,
728                              "column": 4
729                            }
730                          }
731                        }
732                      ],
733                      "finalizer": null,
734                      "loc": {
735                        "start": {
736                          "line": 25,
737                          "column": 3
738                        },
739                        "end": {
740                          "line": 27,
741                          "column": 4
742                        }
743                      }
744                    }
745                  ],
746                  "loc": {
747                    "start": {
748                      "line": 23,
749                      "column": 22
750                    },
751                    "end": {
752                      "line": 28,
753                      "column": 2
754                    }
755                  }
756                },
757                "loc": {
758                  "start": {
759                    "line": 23,
760                    "column": 13
761                  },
762                  "end": {
763                    "line": 28,
764                    "column": 2
765                  }
766                }
767              },
768              "loc": {
769                "start": {
770                  "line": 23,
771                  "column": 13
772                },
773                "end": {
774                  "line": 28,
775                  "column": 2
776                }
777              }
778            },
779            "overloads": [],
780            "decorators": [],
781            "loc": {
782              "start": {
783                "line": 23,
784                "column": 1
785              },
786              "end": {
787                "line": 28,
788                "column": 2
789              }
790            }
791          }
792        ],
793        "loc": {
794          "start": {
795            "line": 1,
796            "column": 1
797          },
798          "end": {
799            "line": 1,
800            "column": 1
801          }
802        }
803      },
804      "loc": {
805        "start": {
806          "line": 1,
807          "column": 1
808        },
809        "end": {
810          "line": 1,
811          "column": 1
812        }
813      }
814    }
815  ],
816  "loc": {
817    "start": {
818      "line": 1,
819      "column": 1
820    },
821    "end": {
822      "line": 29,
823      "column": 1
824    }
825  }
826}
827