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