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": "fooInt",
124              "decorators": [],
125              "loc": {
126                "start": {
127                  "line": 16,
128                  "column": 10
129                },
130                "end": {
131                  "line": 16,
132                  "column": 16
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": "fooInt",
148                  "decorators": [],
149                  "loc": {
150                    "start": {
151                      "line": 16,
152                      "column": 10
153                    },
154                    "end": {
155                      "line": 16,
156                      "column": 16
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": 20
170                    },
171                    "end": {
172                      "line": 16,
173                      "column": 23
174                    }
175                  }
176                },
177                "body": {
178                  "type": "BlockStatement",
179                  "statements": [
180                    {
181                      "type": "ReturnStatement",
182                      "argument": {
183                        "type": "NumberLiteral",
184                        "value": 5,
185                        "loc": {
186                          "start": {
187                            "line": 17,
188                            "column": 12
189                          },
190                          "end": {
191                            "line": 17,
192                            "column": 13
193                          }
194                        }
195                      },
196                      "loc": {
197                        "start": {
198                          "line": 17,
199                          "column": 5
200                        },
201                        "end": {
202                          "line": 17,
203                          "column": 14
204                        }
205                      }
206                    }
207                  ],
208                  "loc": {
209                    "start": {
210                      "line": 16,
211                      "column": 24
212                    },
213                    "end": {
214                      "line": 18,
215                      "column": 2
216                    }
217                  }
218                },
219                "loc": {
220                  "start": {
221                    "line": 16,
222                    "column": 16
223                  },
224                  "end": {
225                    "line": 18,
226                    "column": 2
227                  }
228                }
229              },
230              "loc": {
231                "start": {
232                  "line": 16,
233                  "column": 16
234                },
235                "end": {
236                  "line": 18,
237                  "column": 2
238                }
239              }
240            },
241            "overloads": [],
242            "decorators": [],
243            "loc": {
244              "start": {
245                "line": 16,
246                "column": 1
247              },
248              "end": {
249                "line": 18,
250                "column": 2
251              }
252            }
253          },
254          {
255            "type": "MethodDefinition",
256            "key": {
257              "type": "Identifier",
258              "name": "main",
259              "decorators": [],
260              "loc": {
261                "start": {
262                  "line": 20,
263                  "column": 10
264                },
265                "end": {
266                  "line": 20,
267                  "column": 14
268                }
269              }
270            },
271            "kind": "method",
272            "accessibility": "public",
273            "static": true,
274            "optional": false,
275            "computed": false,
276            "value": {
277              "type": "FunctionExpression",
278              "function": {
279                "type": "ScriptFunction",
280                "id": {
281                  "type": "Identifier",
282                  "name": "main",
283                  "decorators": [],
284                  "loc": {
285                    "start": {
286                      "line": 20,
287                      "column": 10
288                    },
289                    "end": {
290                      "line": 20,
291                      "column": 14
292                    }
293                  }
294                },
295                "generator": false,
296                "async": false,
297                "expression": false,
298                "params": [],
299                "returnType": {
300                  "type": "ETSPrimitiveType",
301                  "loc": {
302                    "start": {
303                      "line": 20,
304                      "column": 18
305                    },
306                    "end": {
307                      "line": 20,
308                      "column": 22
309                    }
310                  }
311                },
312                "body": {
313                  "type": "BlockStatement",
314                  "statements": [
315                    {
316                      "type": "VariableDeclaration",
317                      "declarations": [
318                        {
319                          "type": "VariableDeclarator",
320                          "id": {
321                            "type": "Identifier",
322                            "name": "p",
323                            "typeAnnotation": {
324                              "type": "ETSTypeReference",
325                              "part": {
326                                "type": "ETSTypeReferencePart",
327                                "name": {
328                                  "type": "Identifier",
329                                  "name": "Promise",
330                                  "decorators": [],
331                                  "loc": {
332                                    "start": {
333                                      "line": 21,
334                                      "column": 12
335                                    },
336                                    "end": {
337                                      "line": 21,
338                                      "column": 19
339                                    }
340                                  }
341                                },
342                                "typeParams": {
343                                  "type": "TSTypeParameterInstantiation",
344                                  "params": [
345                                    {
346                                      "type": "ETSPrimitiveType",
347                                      "loc": {
348                                        "start": {
349                                          "line": 21,
350                                          "column": 20
351                                        },
352                                        "end": {
353                                          "line": 21,
354                                          "column": 23
355                                        }
356                                      }
357                                    }
358                                  ],
359                                  "loc": {
360                                    "start": {
361                                      "line": 21,
362                                      "column": 19
363                                    },
364                                    "end": {
365                                      "line": 21,
366                                      "column": 24
367                                    }
368                                  }
369                                },
370                                "loc": {
371                                  "start": {
372                                    "line": 21,
373                                    "column": 12
374                                  },
375                                  "end": {
376                                    "line": 21,
377                                    "column": 26
378                                  }
379                                }
380                              },
381                              "loc": {
382                                "start": {
383                                  "line": 21,
384                                  "column": 12
385                                },
386                                "end": {
387                                  "line": 21,
388                                  "column": 26
389                                }
390                              }
391                            },
392                            "decorators": [],
393                            "loc": {
394                              "start": {
395                                "line": 21,
396                                "column": 9
397                              },
398                              "end": {
399                                "line": 21,
400                                "column": 10
401                              }
402                            }
403                          },
404                          "init": {
405                            "type": "ETSLaunchExpression",
406                            "expr": {
407                              "type": "CallExpression",
408                              "callee": {
409                                "type": "Identifier",
410                                "name": "fooInt",
411                                "decorators": [],
412                                "loc": {
413                                  "start": {
414                                    "line": 21,
415                                    "column": 34
416                                  },
417                                  "end": {
418                                    "line": 21,
419                                    "column": 40
420                                  }
421                                }
422                              },
423                              "arguments": [],
424                              "optional": false,
425                              "loc": {
426                                "start": {
427                                  "line": 21,
428                                  "column": 34
429                                },
430                                "end": {
431                                  "line": 21,
432                                  "column": 42
433                                }
434                              }
435                            },
436                            "loc": {
437                              "start": {
438                                "line": 21,
439                                "column": 27
440                              },
441                              "end": {
442                                "line": 21,
443                                "column": 42
444                              }
445                            }
446                          },
447                          "loc": {
448                            "start": {
449                              "line": 21,
450                              "column": 9
451                            },
452                            "end": {
453                              "line": 21,
454                              "column": 42
455                            }
456                          }
457                        }
458                      ],
459                      "kind": "let",
460                      "loc": {
461                        "start": {
462                          "line": 21,
463                          "column": 5
464                        },
465                        "end": {
466                          "line": 21,
467                          "column": 43
468                        }
469                      }
470                    }
471                  ],
472                  "loc": {
473                    "start": {
474                      "line": 20,
475                      "column": 23
476                    },
477                    "end": {
478                      "line": 22,
479                      "column": 2
480                    }
481                  }
482                },
483                "loc": {
484                  "start": {
485                    "line": 20,
486                    "column": 14
487                  },
488                  "end": {
489                    "line": 22,
490                    "column": 2
491                  }
492                }
493              },
494              "loc": {
495                "start": {
496                  "line": 20,
497                  "column": 14
498                },
499                "end": {
500                  "line": 22,
501                  "column": 2
502                }
503              }
504            },
505            "overloads": [],
506            "decorators": [],
507            "loc": {
508              "start": {
509                "line": 20,
510                "column": 1
511              },
512              "end": {
513                "line": 22,
514                "column": 2
515              }
516            }
517          }
518        ],
519        "loc": {
520          "start": {
521            "line": 1,
522            "column": 1
523          },
524          "end": {
525            "line": 1,
526            "column": 1
527          }
528        }
529      },
530      "loc": {
531        "start": {
532          "line": 1,
533          "column": 1
534        },
535        "end": {
536          "line": 1,
537          "column": 1
538        }
539      }
540    }
541  ],
542  "loc": {
543    "start": {
544      "line": 1,
545      "column": 1
546    },
547    "end": {
548      "line": 23,
549      "column": 1
550    }
551  }
552}
553