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                  {
165                    "type": "ETSParameterExpression",
166                    "name": {
167                      "type": "Identifier",
168                      "name": "callback",
169                      "typeAnnotation": {
170                        "type": "ETSFunctionType",
171                        "params": [
172                          {
173                            "type": "ETSParameterExpression",
174                            "name": {
175                              "type": "Identifier",
176                              "name": "resolve",
177                              "typeAnnotation": {
178                                "type": "ETSFunctionType",
179                                "params": [
180                                  {
181                                    "type": "ETSParameterExpression",
182                                    "name": {
183                                      "type": "Identifier",
184                                      "name": "val",
185                                      "typeAnnotation": {
186                                        "type": "ETSPrimitiveType",
187                                        "loc": {
188                                          "start": {
189                                            "line": 16,
190                                            "column": 40
191                                          },
192                                          "end": {
193                                            "line": 16,
194                                            "column": 43
195                                          }
196                                        }
197                                      },
198                                      "decorators": [],
199                                      "loc": {
200                                        "start": {
201                                          "line": 16,
202                                          "column": 35
203                                        },
204                                        "end": {
205                                          "line": 16,
206                                          "column": 43
207                                        }
208                                      }
209                                    },
210                                    "loc": {
211                                      "start": {
212                                        "line": 16,
213                                        "column": 35
214                                      },
215                                      "end": {
216                                        "line": 16,
217                                        "column": 43
218                                      }
219                                    }
220                                  }
221                                ],
222                                "returnType": {
223                                  "type": "ETSPrimitiveType",
224                                  "loc": {
225                                    "start": {
226                                      "line": 16,
227                                      "column": 48
228                                    },
229                                    "end": {
230                                      "line": 16,
231                                      "column": 52
232                                    }
233                                  }
234                                },
235                                "loc": {
236                                  "start": {
237                                    "line": 16,
238                                    "column": 34
239                                  },
240                                  "end": {
241                                    "line": 16,
242                                    "column": 52
243                                  }
244                                }
245                              },
246                              "decorators": [],
247                              "loc": {
248                                "start": {
249                                  "line": 16,
250                                  "column": 25
251                                },
252                                "end": {
253                                  "line": 16,
254                                  "column": 52
255                                }
256                              }
257                            },
258                            "loc": {
259                              "start": {
260                                "line": 16,
261                                "column": 25
262                              },
263                              "end": {
264                                "line": 16,
265                                "column": 52
266                              }
267                            }
268                          }
269                        ],
270                        "returnType": {
271                          "type": "ETSPrimitiveType",
272                          "loc": {
273                            "start": {
274                              "line": 16,
275                              "column": 57
276                            },
277                            "end": {
278                              "line": 16,
279                              "column": 61
280                            }
281                          }
282                        },
283                        "loc": {
284                          "start": {
285                            "line": 16,
286                            "column": 24
287                          },
288                          "end": {
289                            "line": 16,
290                            "column": 61
291                          }
292                        }
293                      },
294                      "decorators": [],
295                      "loc": {
296                        "start": {
297                          "line": 16,
298                          "column": 14
299                        },
300                        "end": {
301                          "line": 16,
302                          "column": 61
303                        }
304                      }
305                    },
306                    "loc": {
307                      "start": {
308                        "line": 16,
309                        "column": 14
310                      },
311                      "end": {
312                        "line": 16,
313                        "column": 61
314                      }
315                    }
316                  }
317                ],
318                "returnType": {
319                  "type": "ETSPrimitiveType",
320                  "loc": {
321                    "start": {
322                      "line": 16,
323                      "column": 64
324                    },
325                    "end": {
326                      "line": 16,
327                      "column": 68
328                    }
329                  }
330                },
331                "body": {
332                  "type": "BlockStatement",
333                  "statements": [],
334                  "loc": {
335                    "start": {
336                      "line": 16,
337                      "column": 69
338                    },
339                    "end": {
340                      "line": 17,
341                      "column": 2
342                    }
343                  }
344                },
345                "loc": {
346                  "start": {
347                    "line": 16,
348                    "column": 13
349                  },
350                  "end": {
351                    "line": 17,
352                    "column": 2
353                  }
354                }
355              },
356              "loc": {
357                "start": {
358                  "line": 16,
359                  "column": 13
360                },
361                "end": {
362                  "line": 17,
363                  "column": 2
364                }
365              }
366            },
367            "overloads": [],
368            "decorators": [],
369            "loc": {
370              "start": {
371                "line": 16,
372                "column": 1
373              },
374              "end": {
375                "line": 17,
376                "column": 2
377              }
378            }
379          },
380          {
381            "type": "MethodDefinition",
382            "key": {
383              "type": "Identifier",
384              "name": "main",
385              "decorators": [],
386              "loc": {
387                "start": {
388                  "line": 19,
389                  "column": 10
390                },
391                "end": {
392                  "line": 19,
393                  "column": 14
394                }
395              }
396            },
397            "kind": "method",
398            "accessibility": "public",
399            "static": true,
400            "optional": false,
401            "computed": false,
402            "value": {
403              "type": "FunctionExpression",
404              "function": {
405                "type": "ScriptFunction",
406                "id": {
407                  "type": "Identifier",
408                  "name": "main",
409                  "decorators": [],
410                  "loc": {
411                    "start": {
412                      "line": 19,
413                      "column": 10
414                    },
415                    "end": {
416                      "line": 19,
417                      "column": 14
418                    }
419                  }
420                },
421                "generator": false,
422                "async": false,
423                "expression": false,
424                "params": [],
425                "returnType": {
426                  "type": "ETSPrimitiveType",
427                  "loc": {
428                    "start": {
429                      "line": 19,
430                      "column": 18
431                    },
432                    "end": {
433                      "line": 19,
434                      "column": 22
435                    }
436                  }
437                },
438                "body": {
439                  "type": "BlockStatement",
440                  "statements": [
441                    {
442                      "type": "ExpressionStatement",
443                      "expression": {
444                        "type": "CallExpression",
445                        "callee": {
446                          "type": "Identifier",
447                          "name": "foo",
448                          "decorators": [],
449                          "loc": {
450                            "start": {
451                              "line": 20,
452                              "column": 5
453                            },
454                            "end": {
455                              "line": 20,
456                              "column": 8
457                            }
458                          }
459                        },
460                        "arguments": [
461                          {
462                            "type": "ArrowFunctionExpression",
463                            "function": {
464                              "type": "ScriptFunction",
465                              "id": null,
466                              "generator": false,
467                              "async": false,
468                              "expression": false,
469                              "params": [
470                                {
471                                  "type": "ETSParameterExpression",
472                                  "name": {
473                                    "type": "Identifier",
474                                    "name": "resolve",
475                                    "typeAnnotation": {
476                                      "type": "ETSFunctionType",
477                                      "params": [
478                                        {
479                                          "type": "ETSParameterExpression",
480                                          "name": {
481                                            "type": "Identifier",
482                                            "name": "val",
483                                            "typeAnnotation": {
484                                              "type": "ETSPrimitiveType",
485                                              "loc": {
486                                                "start": {
487                                                  "line": 20,
488                                                  "column": 25
489                                                },
490                                                "end": {
491                                                  "line": 20,
492                                                  "column": 28
493                                                }
494                                              }
495                                            },
496                                            "decorators": [],
497                                            "loc": {
498                                              "start": {
499                                                "line": 20,
500                                                "column": 20
501                                              },
502                                              "end": {
503                                                "line": 20,
504                                                "column": 28
505                                              }
506                                            }
507                                          },
508                                          "loc": {
509                                            "start": {
510                                              "line": 20,
511                                              "column": 20
512                                            },
513                                            "end": {
514                                              "line": 20,
515                                              "column": 28
516                                            }
517                                          }
518                                        }
519                                      ],
520                                      "returnType": {
521                                        "type": "ETSPrimitiveType",
522                                        "loc": {
523                                          "start": {
524                                            "line": 20,
525                                            "column": 33
526                                          },
527                                          "end": {
528                                            "line": 20,
529                                            "column": 37
530                                          }
531                                        }
532                                      },
533                                      "loc": {
534                                        "start": {
535                                          "line": 20,
536                                          "column": 19
537                                        },
538                                        "end": {
539                                          "line": 20,
540                                          "column": 37
541                                        }
542                                      }
543                                    },
544                                    "decorators": [],
545                                    "loc": {
546                                      "start": {
547                                        "line": 20,
548                                        "column": 10
549                                      },
550                                      "end": {
551                                        "line": 20,
552                                        "column": 37
553                                      }
554                                    }
555                                  },
556                                  "loc": {
557                                    "start": {
558                                      "line": 20,
559                                      "column": 10
560                                    },
561                                    "end": {
562                                      "line": 20,
563                                      "column": 37
564                                    }
565                                  }
566                                }
567                              ],
568                              "returnType": {
569                                "type": "ETSPrimitiveType",
570                                "loc": {
571                                  "start": {
572                                    "line": 20,
573                                    "column": 40
574                                  },
575                                  "end": {
576                                    "line": 20,
577                                    "column": 44
578                                  }
579                                }
580                              },
581                              "body": {
582                                "type": "BlockStatement",
583                                "statements": [],
584                                "loc": {
585                                  "start": {
586                                    "line": 20,
587                                    "column": 48
588                                  },
589                                  "end": {
590                                    "line": 21,
591                                    "column": 6
592                                  }
593                                }
594                              },
595                              "loc": {
596                                "start": {
597                                  "line": 20,
598                                  "column": 9
599                                },
600                                "end": {
601                                  "line": 21,
602                                  "column": 6
603                                }
604                              }
605                            },
606                            "loc": {
607                              "start": {
608                                "line": 20,
609                                "column": 9
610                              },
611                              "end": {
612                                "line": 21,
613                                "column": 6
614                              }
615                            }
616                          }
617                        ],
618                        "optional": false,
619                        "loc": {
620                          "start": {
621                            "line": 20,
622                            "column": 5
623                          },
624                          "end": {
625                            "line": 21,
626                            "column": 7
627                          }
628                        }
629                      },
630                      "loc": {
631                        "start": {
632                          "line": 20,
633                          "column": 5
634                        },
635                        "end": {
636                          "line": 21,
637                          "column": 8
638                        }
639                      }
640                    }
641                  ],
642                  "loc": {
643                    "start": {
644                      "line": 19,
645                      "column": 23
646                    },
647                    "end": {
648                      "line": 22,
649                      "column": 2
650                    }
651                  }
652                },
653                "loc": {
654                  "start": {
655                    "line": 19,
656                    "column": 14
657                  },
658                  "end": {
659                    "line": 22,
660                    "column": 2
661                  }
662                }
663              },
664              "loc": {
665                "start": {
666                  "line": 19,
667                  "column": 14
668                },
669                "end": {
670                  "line": 22,
671                  "column": 2
672                }
673              }
674            },
675            "overloads": [],
676            "decorators": [],
677            "loc": {
678              "start": {
679                "line": 19,
680                "column": 1
681              },
682              "end": {
683                "line": 22,
684                "column": 2
685              }
686            }
687          }
688        ],
689        "loc": {
690          "start": {
691            "line": 1,
692            "column": 1
693          },
694          "end": {
695            "line": 1,
696            "column": 1
697          }
698        }
699      },
700      "loc": {
701        "start": {
702          "line": 1,
703          "column": 1
704        },
705        "end": {
706          "line": 1,
707          "column": 1
708        }
709      }
710    }
711  ],
712  "loc": {
713    "start": {
714      "line": 1,
715      "column": 1
716    },
717    "end": {
718      "line": 24,
719      "column": 1
720    }
721  }
722}
723