1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "ClassDeclaration",
6      "definition": {
7        "id": {
8          "type": "Identifier",
9          "name": "TestClass",
10          "decorators": [],
11          "loc": {
12            "start": {
13              "line": 16,
14              "column": 7
15            },
16            "end": {
17              "line": 16,
18              "column": 16
19            }
20          }
21        },
22        "superClass": null,
23        "implements": [],
24        "body": [
25          {
26            "type": "MethodDefinition",
27            "key": {
28              "type": "Identifier",
29              "name": "testMethodThrows",
30              "decorators": [],
31              "loc": {
32                "start": {
33                  "line": 17,
34                  "column": 3
35                },
36                "end": {
37                  "line": 17,
38                  "column": 19
39                }
40              }
41            },
42            "kind": "method",
43            "accessibility": "public",
44            "static": false,
45            "optional": false,
46            "computed": false,
47            "value": {
48              "type": "FunctionExpression",
49              "function": {
50                "type": "ScriptFunction",
51                "id": {
52                  "type": "Identifier",
53                  "name": "testMethodThrows",
54                  "decorators": [],
55                  "loc": {
56                    "start": {
57                      "line": 17,
58                      "column": 3
59                    },
60                    "end": {
61                      "line": 17,
62                      "column": 19
63                    }
64                  }
65                },
66                "generator": false,
67                "async": false,
68                "expression": false,
69                "params": [],
70                "returnType": {
71                  "type": "ETSPrimitiveType",
72                  "loc": {
73                    "start": {
74                      "line": 17,
75                      "column": 23
76                    },
77                    "end": {
78                      "line": 17,
79                      "column": 27
80                    }
81                  }
82                },
83                "body": {
84                  "type": "BlockStatement",
85                  "statements": [],
86                  "loc": {
87                    "start": {
88                      "line": 17,
89                      "column": 35
90                    },
91                    "end": {
92                      "line": 17,
93                      "column": 37
94                    }
95                  }
96                }
97                "throwMarker": "throws",
98                "loc": {
99                  "start": {
100                    "line": 17,
101                    "column": 19
102                  },
103                  "end": {
104                    "line": 17,
105                    "column": 37
106                  }
107                }
108              },
109              "loc": {
110                "start": {
111                  "line": 17,
112                  "column": 19
113                },
114                "end": {
115                  "line": 17,
116                  "column": 37
117                }
118              }
119            },
120            "overloads": [],
121            "decorators": [],
122            "loc": {
123              "start": {
124                "line": 17,
125                "column": 3
126              },
127              "end": {
128                "line": 17,
129                "column": 37
130              }
131            }
132          },
133          {
134            "type": "MethodDefinition",
135            "key": {
136              "type": "Identifier",
137              "name": "testMethodRethrows",
138              "decorators": [],
139              "loc": {
140                "start": {
141                  "line": 19,
142                  "column": 3
143                },
144                "end": {
145                  "line": 19,
146                  "column": 21
147                }
148              }
149            },
150            "kind": "method",
151            "accessibility": "public",
152            "static": false,
153            "optional": false,
154            "computed": false,
155            "value": {
156              "type": "FunctionExpression",
157              "function": {
158                "type": "ScriptFunction",
159                "id": {
160                  "type": "Identifier",
161                  "name": "testMethodRethrows",
162                  "decorators": [],
163                  "loc": {
164                    "start": {
165                      "line": 19,
166                      "column": 3
167                    },
168                    "end": {
169                      "line": 19,
170                      "column": 21
171                    }
172                  }
173                },
174                "generator": false,
175                "async": false,
176                "expression": false,
177                "params": [
178                  {
179                    "type": "ETSParameterExpression",
180                    "name": {
181                      "type": "Identifier",
182                      "name": "param",
183                      "typeAnnotation": {
184                        "type": "ETSFunctionType",
185                        "params": [
186                          {
187                            "type": "ETSParameterExpression",
188                            "name": {
189                              "type": "Identifier",
190                              "name": "c",
191                              "typeAnnotation": {
192                                "type": "ETSPrimitiveType",
193                                "loc": {
194                                  "start": {
195                                    "line": 19,
196                                    "column": 33
197                                  },
198                                  "end": {
199                                    "line": 19,
200                                    "column": 36
201                                  }
202                                }
203                              },
204                              "decorators": [],
205                              "loc": {
206                                "start": {
207                                  "line": 19,
208                                  "column": 30
209                                },
210                                "end": {
211                                  "line": 19,
212                                  "column": 36
213                                }
214                              }
215                            },
216                            "loc": {
217                              "start": {
218                                "line": 19,
219                                "column": 30
220                              },
221                              "end": {
222                                "line": 19,
223                                "column": 36
224                              }
225                            }
226                          },
227                          {
228                            "type": "ETSParameterExpression",
229                            "name": {
230                              "type": "Identifier",
231                              "name": "b",
232                              "typeAnnotation": {
233                                "type": "ETSPrimitiveType",
234                                "loc": {
235                                  "start": {
236                                    "line": 19,
237                                    "column": 41
238                                  },
239                                  "end": {
240                                    "line": 19,
241                                    "column": 44
242                                  }
243                                }
244                              },
245                              "decorators": [],
246                              "loc": {
247                                "start": {
248                                  "line": 19,
249                                  "column": 38
250                                },
251                                "end": {
252                                  "line": 19,
253                                  "column": 44
254                                }
255                              }
256                            },
257                            "loc": {
258                              "start": {
259                                "line": 19,
260                                "column": 38
261                              },
262                              "end": {
263                                "line": 19,
264                                "column": 44
265                              }
266                            }
267                          }
268                        ],
269                        "returnType": {
270                          "type": "ETSPrimitiveType",
271                          "loc": {
272                            "start": {
273                              "line": 19,
274                              "column": 49
275                            },
276                            "end": {
277                              "line": 19,
278                              "column": 53
279                            }
280                          }
281                        }
282                        "throwMarker": "throws",
283                        "loc": {
284                          "start": {
285                            "line": 19,
286                            "column": 29
287                          },
288                          "end": {
289                            "line": 19,
290                            "column": 53
291                          }
292                        }
293                      },
294                      "decorators": [],
295                      "loc": {
296                        "start": {
297                          "line": 19,
298                          "column": 22
299                        },
300                        "end": {
301                          "line": 19,
302                          "column": 53
303                        }
304                      }
305                    },
306                    "loc": {
307                      "start": {
308                        "line": 19,
309                        "column": 22
310                      },
311                      "end": {
312                        "line": 19,
313                        "column": 53
314                      }
315                    }
316                  }
317                ],
318                "returnType": {
319                  "type": "ETSPrimitiveType",
320                  "loc": {
321                    "start": {
322                      "line": 19,
323                      "column": 63
324                    },
325                    "end": {
326                      "line": 19,
327                      "column": 67
328                    }
329                  }
330                },
331                "body": {
332                  "type": "BlockStatement",
333                  "statements": [],
334                  "loc": {
335                    "start": {
336                      "line": 19,
337                      "column": 77
338                    },
339                    "end": {
340                      "line": 19,
341                      "column": 79
342                    }
343                  }
344                }
345                "throwMarker": "rethrows",
346                "loc": {
347                  "start": {
348                    "line": 19,
349                    "column": 21
350                  },
351                  "end": {
352                    "line": 19,
353                    "column": 79
354                  }
355                }
356              },
357              "loc": {
358                "start": {
359                  "line": 19,
360                  "column": 21
361                },
362                "end": {
363                  "line": 19,
364                  "column": 79
365                }
366              }
367            },
368            "overloads": [],
369            "decorators": [],
370            "loc": {
371              "start": {
372                "line": 19,
373                "column": 3
374              },
375              "end": {
376                "line": 19,
377                "column": 79
378              }
379            }
380          },
381          {
382            "type": "MethodDefinition",
383            "key": {
384              "type": "Identifier",
385              "name": "constructor",
386              "decorators": [],
387              "loc": {
388                "start": {
389                  "line": 1,
390                  "column": 1
391                },
392                "end": {
393                  "line": 1,
394                  "column": 1
395                }
396              }
397            },
398            "kind": "constructor",
399            "static": false,
400            "optional": false,
401            "computed": false,
402            "value": {
403              "type": "FunctionExpression",
404              "function": {
405                "type": "ScriptFunction",
406                "id": {
407                  "type": "Identifier",
408                  "name": "constructor",
409                  "decorators": [],
410                  "loc": {
411                    "start": {
412                      "line": 1,
413                      "column": 1
414                    },
415                    "end": {
416                      "line": 1,
417                      "column": 1
418                    }
419                  }
420                },
421                "generator": false,
422                "async": false,
423                "expression": false,
424                "params": [],
425                "body": {
426                  "type": "BlockStatement",
427                  "statements": [],
428                  "loc": {
429                    "start": {
430                      "line": 1,
431                      "column": 1
432                    },
433                    "end": {
434                      "line": 1,
435                      "column": 1
436                    }
437                  }
438                },
439                "loc": {
440                  "start": {
441                    "line": 1,
442                    "column": 1
443                  },
444                  "end": {
445                    "line": 1,
446                    "column": 1
447                  }
448                }
449              },
450              "loc": {
451                "start": {
452                  "line": 1,
453                  "column": 1
454                },
455                "end": {
456                  "line": 1,
457                  "column": 1
458                }
459              }
460            },
461            "overloads": [],
462            "decorators": [],
463            "loc": {
464              "start": {
465                "line": 20,
466                "column": 2
467              },
468              "end": {
469                "line": 20,
470                "column": 2
471              }
472            }
473          }
474        ],
475        "loc": {
476          "start": {
477            "line": 16,
478            "column": 17
479          },
480          "end": {
481            "line": 20,
482            "column": 2
483          }
484        }
485      },
486      "loc": {
487        "start": {
488          "line": 16,
489          "column": 1
490        },
491        "end": {
492          "line": 20,
493          "column": 2
494        }
495      }
496    },
497    {
498      "type": "ClassDeclaration",
499      "definition": {
500        "id": {
501          "type": "Identifier",
502          "name": "ETSGLOBAL",
503          "decorators": [],
504          "loc": {
505            "start": {
506              "line": 1,
507              "column": 1
508            },
509            "end": {
510              "line": 1,
511              "column": 1
512            }
513          }
514        },
515        "superClass": null,
516        "implements": [],
517        "body": [
518          {
519            "type": "MethodDefinition",
520            "key": {
521              "type": "Identifier",
522              "name": "_$init$_",
523              "decorators": [],
524              "loc": {
525                "start": {
526                  "line": 1,
527                  "column": 1
528                },
529                "end": {
530                  "line": 1,
531                  "column": 1
532                }
533              }
534            },
535            "kind": "method",
536            "accessibility": "public",
537            "static": true,
538            "optional": false,
539            "computed": false,
540            "value": {
541              "type": "FunctionExpression",
542              "function": {
543                "type": "ScriptFunction",
544                "id": {
545                  "type": "Identifier",
546                  "name": "_$init$_",
547                  "decorators": [],
548                  "loc": {
549                    "start": {
550                      "line": 1,
551                      "column": 1
552                    },
553                    "end": {
554                      "line": 1,
555                      "column": 1
556                    }
557                  }
558                },
559                "generator": false,
560                "async": false,
561                "expression": false,
562                "params": [],
563                "body": {
564                  "type": "BlockStatement",
565                  "statements": [],
566                  "loc": {
567                    "start": {
568                      "line": 1,
569                      "column": 1
570                    },
571                    "end": {
572                      "line": 1,
573                      "column": 1
574                    }
575                  }
576                },
577                "loc": {
578                  "start": {
579                    "line": 1,
580                    "column": 1
581                  },
582                  "end": {
583                    "line": 1,
584                    "column": 1
585                  }
586                }
587              },
588              "loc": {
589                "start": {
590                  "line": 1,
591                  "column": 1
592                },
593                "end": {
594                  "line": 1,
595                  "column": 1
596                }
597              }
598            },
599            "overloads": [],
600            "decorators": [],
601            "loc": {
602              "start": {
603                "line": 1,
604                "column": 1
605              },
606              "end": {
607                "line": 1,
608                "column": 1
609              }
610            }
611          }
612        ],
613        "loc": {
614          "start": {
615            "line": 1,
616            "column": 1
617          },
618          "end": {
619            "line": 1,
620            "column": 1
621          }
622        }
623      },
624      "loc": {
625        "start": {
626          "line": 1,
627          "column": 1
628        },
629        "end": {
630          "line": 1,
631          "column": 1
632        }
633      }
634    }
635  ],
636  "loc": {
637    "start": {
638      "line": 1,
639      "column": 1
640    },
641    "end": {
642      "line": 21,
643      "column": 1
644    }
645  }
646}
647