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