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                "body": {
165                  "type": "BlockStatement",
166                  "statements": [
167                    {
168                      "type": "ThrowStatement",
169                      "argument": {
170                        "type": "ETSNewClassInstanceExpression",
171                        "typeReference": {
172                          "type": "ETSTypeReference",
173                          "part": {
174                            "type": "ETSTypeReferencePart",
175                            "name": {
176                              "type": "Identifier",
177                              "name": "Exception",
178                              "decorators": [],
179                              "loc": {
180                                "start": {
181                                  "line": 17,
182                                  "column": 15
183                                },
184                                "end": {
185                                  "line": 17,
186                                  "column": 24
187                                }
188                              }
189                            },
190                            "loc": {
191                              "start": {
192                                "line": 17,
193                                "column": 15
194                              },
195                              "end": {
196                                "line": 17,
197                                "column": 25
198                              }
199                            }
200                          },
201                          "loc": {
202                            "start": {
203                              "line": 17,
204                              "column": 15
205                            },
206                            "end": {
207                              "line": 17,
208                              "column": 25
209                            }
210                          }
211                        },
212                        "arguments": [
213                          {
214                            "type": "StringLiteral",
215                            "value": "I am an exception",
216                            "loc": {
217                              "start": {
218                                "line": 17,
219                                "column": 25
220                              },
221                              "end": {
222                                "line": 17,
223                                "column": 44
224                              }
225                            }
226                          }
227                        ],
228                        "loc": {
229                          "start": {
230                            "line": 17,
231                            "column": 11
232                          },
233                          "end": {
234                            "line": 17,
235                            "column": 46
236                          }
237                        }
238                      },
239                      "loc": {
240                        "start": {
241                          "line": 17,
242                          "column": 5
243                        },
244                        "end": {
245                          "line": 17,
246                          "column": 46
247                        }
248                      }
249                    }
250                  ],
251                  "loc": {
252                    "start": {
253                      "line": 16,
254                      "column": 23
255                    },
256                    "end": {
257                      "line": 18,
258                      "column": 2
259                    }
260                  }
261                }
262                "throwMarker": "throws",
263                "loc": {
264                  "start": {
265                    "line": 16,
266                    "column": 13
267                  },
268                  "end": {
269                    "line": 18,
270                    "column": 2
271                  }
272                }
273              },
274              "loc": {
275                "start": {
276                  "line": 16,
277                  "column": 13
278                },
279                "end": {
280                  "line": 18,
281                  "column": 2
282                }
283              }
284            },
285            "overloads": [],
286            "decorators": [],
287            "loc": {
288              "start": {
289                "line": 16,
290                "column": 1
291              },
292              "end": {
293                "line": 18,
294                "column": 2
295              }
296            }
297          },
298          {
299            "type": "MethodDefinition",
300            "key": {
301              "type": "Identifier",
302              "name": "bar",
303              "decorators": [],
304              "loc": {
305                "start": {
306                  "line": 20,
307                  "column": 10
308                },
309                "end": {
310                  "line": 20,
311                  "column": 13
312                }
313              }
314            },
315            "kind": "method",
316            "accessibility": "public",
317            "static": true,
318            "optional": false,
319            "computed": false,
320            "value": {
321              "type": "FunctionExpression",
322              "function": {
323                "type": "ScriptFunction",
324                "id": {
325                  "type": "Identifier",
326                  "name": "bar",
327                  "decorators": [],
328                  "loc": {
329                    "start": {
330                      "line": 20,
331                      "column": 10
332                    },
333                    "end": {
334                      "line": 20,
335                      "column": 13
336                    }
337                  }
338                },
339                "generator": false,
340                "async": false,
341                "expression": false,
342                "params": [
343                  {
344                    "type": "ETSParameterExpression",
345                    "name": {
346                      "type": "Identifier",
347                      "name": "a",
348                      "typeAnnotation": {
349                        "type": "ETSFunctionType",
350                        "params": [],
351                        "returnType": {
352                          "type": "ETSPrimitiveType",
353                          "loc": {
354                            "start": {
355                              "line": 20,
356                              "column": 23
357                            },
358                            "end": {
359                              "line": 20,
360                              "column": 27
361                            }
362                          }
363                        }
364                        "throwMarker": "throws",
365                        "loc": {
366                          "start": {
367                            "line": 20,
368                            "column": 17
369                          },
370                          "end": {
371                            "line": 20,
372                            "column": 27
373                          }
374                        }
375                      },
376                      "decorators": [],
377                      "loc": {
378                        "start": {
379                          "line": 20,
380                          "column": 14
381                        },
382                        "end": {
383                          "line": 20,
384                          "column": 27
385                        }
386                      }
387                    },
388                    "loc": {
389                      "start": {
390                        "line": 20,
391                        "column": 14
392                      },
393                      "end": {
394                        "line": 20,
395                        "column": 27
396                      }
397                    }
398                  }
399                ],
400                "body": {
401                  "type": "BlockStatement",
402                  "statements": [
403                    {
404                      "type": "TryStatement",
405                      "block": {
406                        "type": "BlockStatement",
407                        "statements": [
408                          {
409                            "type": "ExpressionStatement",
410                            "expression": {
411                              "type": "CallExpression",
412                              "callee": {
413                                "type": "Identifier",
414                                "name": "foo",
415                                "decorators": [],
416                                "loc": {
417                                  "start": {
418                                    "line": 22,
419                                    "column": 9
420                                  },
421                                  "end": {
422                                    "line": 22,
423                                    "column": 12
424                                  }
425                                }
426                              },
427                              "arguments": [],
428                              "optional": false,
429                              "loc": {
430                                "start": {
431                                  "line": 22,
432                                  "column": 9
433                                },
434                                "end": {
435                                  "line": 22,
436                                  "column": 14
437                                }
438                              }
439                            },
440                            "loc": {
441                              "start": {
442                                "line": 22,
443                                "column": 9
444                              },
445                              "end": {
446                                "line": 22,
447                                "column": 15
448                              }
449                            }
450                          }
451                        ],
452                        "loc": {
453                          "start": {
454                            "line": 21,
455                            "column": 9
456                          },
457                          "end": {
458                            "line": 23,
459                            "column": 6
460                          }
461                        }
462                      },
463                      "handler": [
464                        {
465                          "type": "CatchClause",
466                          "body": {
467                            "type": "BlockStatement",
468                            "statements": [],
469                            "loc": {
470                              "start": {
471                                "line": 23,
472                                "column": 17
473                              },
474                              "end": {
475                                "line": 25,
476                                "column": 6
477                              }
478                            }
479                          },
480                          "param": {
481                            "type": "Identifier",
482                            "name": "e",
483                            "decorators": [],
484                            "loc": {
485                              "start": {
486                                "line": 23,
487                                "column": 14
488                              },
489                              "end": {
490                                "line": 23,
491                                "column": 15
492                              }
493                            }
494                          },
495                          "loc": {
496                            "start": {
497                              "line": 23,
498                              "column": 7
499                            },
500                            "end": {
501                              "line": 25,
502                              "column": 6
503                            }
504                          }
505                        }
506                      ],
507                      "finalizer": null,
508                      "loc": {
509                        "start": {
510                          "line": 21,
511                          "column": 5
512                        },
513                        "end": {
514                          "line": 25,
515                          "column": 6
516                        }
517                      }
518                    }
519                  ],
520                  "loc": {
521                    "start": {
522                      "line": 20,
523                      "column": 45
524                    },
525                    "end": {
526                      "line": 26,
527                      "column": 2
528                    }
529                  }
530                }
531                "throwMarker": "rethrows",
532                "loc": {
533                  "start": {
534                    "line": 20,
535                    "column": 13
536                  },
537                  "end": {
538                    "line": 26,
539                    "column": 2
540                  }
541                }
542              },
543              "loc": {
544                "start": {
545                  "line": 20,
546                  "column": 13
547                },
548                "end": {
549                  "line": 26,
550                  "column": 2
551                }
552              }
553            },
554            "overloads": [],
555            "decorators": [],
556            "loc": {
557              "start": {
558                "line": 20,
559                "column": 1
560              },
561              "end": {
562                "line": 26,
563                "column": 2
564              }
565            }
566          }
567        ],
568        "loc": {
569          "start": {
570            "line": 1,
571            "column": 1
572          },
573          "end": {
574            "line": 1,
575            "column": 1
576          }
577        }
578      },
579      "loc": {
580        "start": {
581          "line": 1,
582          "column": 1
583        },
584        "end": {
585          "line": 1,
586          "column": 1
587        }
588      }
589    }
590  ],
591  "loc": {
592    "start": {
593      "line": 1,
594      "column": 1
595    },
596    "end": {
597      "line": 27,
598      "column": 1
599    }
600  }
601}
602