1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "ClassDeclaration",
6      "definition": {
7        "id": {
8          "type": "Identifier",
9          "name": "Example",
10          "decorators": [],
11          "loc": {
12            "start": {
13              "line": 16,
14              "column": 7
15            },
16            "end": {
17              "line": 16,
18              "column": 14
19            }
20          }
21        },
22        "superClass": null,
23        "implements": [],
24        "body": [
25          {
26            "type": "MethodDefinition",
27            "key": {
28              "type": "Identifier",
29              "name": "foobar",
30              "decorators": [],
31              "loc": {
32                "start": {
33                  "line": 17,
34                  "column": 19
35                },
36                "end": {
37                  "line": 17,
38                  "column": 25
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": "foobar",
54                  "decorators": [],
55                  "loc": {
56                    "start": {
57                      "line": 17,
58                      "column": 19
59                    },
60                    "end": {
61                      "line": 17,
62                      "column": 25
63                    }
64                  }
65                },
66                "generator": false,
67                "async": false,
68                "expression": false,
69                "params": [],
70                "returnType": {
71                  "type": "ETSTypeReference",
72                  "part": {
73                    "type": "ETSTypeReferencePart",
74                    "name": {
75                      "type": "Identifier",
76                      "name": "Object",
77                      "decorators": [],
78                      "loc": {
79                        "start": {
80                          "line": 17,
81                          "column": 29
82                        },
83                        "end": {
84                          "line": 17,
85                          "column": 35
86                        }
87                      }
88                    },
89                    "loc": {
90                      "start": {
91                        "line": 17,
92                        "column": 29
93                      },
94                      "end": {
95                        "line": 17,
96                        "column": 37
97                      }
98                    }
99                  },
100                  "loc": {
101                    "start": {
102                      "line": 17,
103                      "column": 29
104                    },
105                    "end": {
106                      "line": 17,
107                      "column": 37
108                    }
109                  }
110                },
111                "body": {
112                  "type": "BlockStatement",
113                  "statements": [
114                    {
115                      "type": "ReturnStatement",
116                      "argument": {
117                        "type": "ETSNewClassInstanceExpression",
118                        "typeReference": {
119                          "type": "ETSTypeReference",
120                          "part": {
121                            "type": "ETSTypeReferencePart",
122                            "name": {
123                              "type": "Identifier",
124                              "name": "Object",
125                              "decorators": [],
126                              "loc": {
127                                "start": {
128                                  "line": 18,
129                                  "column": 20
130                                },
131                                "end": {
132                                  "line": 18,
133                                  "column": 26
134                                }
135                              }
136                            },
137                            "loc": {
138                              "start": {
139                                "line": 18,
140                                "column": 20
141                              },
142                              "end": {
143                                "line": 18,
144                                "column": 27
145                              }
146                            }
147                          },
148                          "loc": {
149                            "start": {
150                              "line": 18,
151                              "column": 20
152                            },
153                            "end": {
154                              "line": 18,
155                              "column": 27
156                            }
157                          }
158                        },
159                        "arguments": [],
160                        "loc": {
161                          "start": {
162                            "line": 18,
163                            "column": 16
164                          },
165                          "end": {
166                            "line": 18,
167                            "column": 29
168                          }
169                        }
170                      },
171                      "loc": {
172                        "start": {
173                          "line": 18,
174                          "column": 9
175                        },
176                        "end": {
177                          "line": 18,
178                          "column": 29
179                        }
180                      }
181                    }
182                  ],
183                  "loc": {
184                    "start": {
185                      "line": 17,
186                      "column": 36
187                    },
188                    "end": {
189                      "line": 19,
190                      "column": 6
191                    }
192                  }
193                },
194                "loc": {
195                  "start": {
196                    "line": 17,
197                    "column": 25
198                  },
199                  "end": {
200                    "line": 19,
201                    "column": 6
202                  }
203                }
204              },
205              "loc": {
206                "start": {
207                  "line": 17,
208                  "column": 25
209                },
210                "end": {
211                  "line": 19,
212                  "column": 6
213                }
214              }
215            },
216            "overloads": [],
217            "decorators": [],
218            "loc": {
219              "start": {
220                "line": 17,
221                "column": 5
222              },
223              "end": {
224                "line": 19,
225                "column": 6
226              }
227            }
228          },
229          {
230            "type": "MethodDefinition",
231            "key": {
232              "type": "Identifier",
233              "name": "baz",
234              "decorators": [],
235              "loc": {
236                "start": {
237                  "line": 21,
238                  "column": 12
239                },
240                "end": {
241                  "line": 21,
242                  "column": 15
243                }
244              }
245            },
246            "kind": "method",
247            "accessibility": "public",
248            "static": false,
249            "optional": false,
250            "computed": false,
251            "value": {
252              "type": "FunctionExpression",
253              "function": {
254                "type": "ScriptFunction",
255                "id": {
256                  "type": "Identifier",
257                  "name": "baz",
258                  "decorators": [],
259                  "loc": {
260                    "start": {
261                      "line": 21,
262                      "column": 12
263                    },
264                    "end": {
265                      "line": 21,
266                      "column": 15
267                    }
268                  }
269                },
270                "generator": false,
271                "async": false,
272                "expression": false,
273                "params": [],
274                "returnType": {
275                  "type": "ETSTypeReference",
276                  "part": {
277                    "type": "ETSTypeReferencePart",
278                    "name": {
279                      "type": "Identifier",
280                      "name": "Object",
281                      "decorators": [],
282                      "loc": {
283                        "start": {
284                          "line": 21,
285                          "column": 19
286                        },
287                        "end": {
288                          "line": 21,
289                          "column": 25
290                        }
291                      }
292                    },
293                    "loc": {
294                      "start": {
295                        "line": 21,
296                        "column": 19
297                      },
298                      "end": {
299                        "line": 21,
300                        "column": 27
301                      }
302                    }
303                  },
304                  "loc": {
305                    "start": {
306                      "line": 21,
307                      "column": 19
308                    },
309                    "end": {
310                      "line": 21,
311                      "column": 27
312                    }
313                  }
314                },
315                "body": {
316                  "type": "BlockStatement",
317                  "statements": [
318                    {
319                      "type": "ReturnStatement",
320                      "argument": {
321                        "type": "ETSNewClassInstanceExpression",
322                        "typeReference": {
323                          "type": "ETSTypeReference",
324                          "part": {
325                            "type": "ETSTypeReferencePart",
326                            "name": {
327                              "type": "Identifier",
328                              "name": "Object",
329                              "decorators": [],
330                              "loc": {
331                                "start": {
332                                  "line": 22,
333                                  "column": 20
334                                },
335                                "end": {
336                                  "line": 22,
337                                  "column": 26
338                                }
339                              }
340                            },
341                            "loc": {
342                              "start": {
343                                "line": 22,
344                                "column": 20
345                              },
346                              "end": {
347                                "line": 22,
348                                "column": 27
349                              }
350                            }
351                          },
352                          "loc": {
353                            "start": {
354                              "line": 22,
355                              "column": 20
356                            },
357                            "end": {
358                              "line": 22,
359                              "column": 27
360                            }
361                          }
362                        },
363                        "arguments": [],
364                        "loc": {
365                          "start": {
366                            "line": 22,
367                            "column": 16
368                          },
369                          "end": {
370                            "line": 22,
371                            "column": 29
372                          }
373                        }
374                      },
375                      "loc": {
376                        "start": {
377                          "line": 22,
378                          "column": 9
379                        },
380                        "end": {
381                          "line": 22,
382                          "column": 29
383                        }
384                      }
385                    }
386                  ],
387                  "loc": {
388                    "start": {
389                      "line": 21,
390                      "column": 26
391                    },
392                    "end": {
393                      "line": 23,
394                      "column": 6
395                    }
396                  }
397                },
398                "loc": {
399                  "start": {
400                    "line": 21,
401                    "column": 15
402                  },
403                  "end": {
404                    "line": 23,
405                    "column": 6
406                  }
407                }
408              },
409              "loc": {
410                "start": {
411                  "line": 21,
412                  "column": 15
413                },
414                "end": {
415                  "line": 23,
416                  "column": 6
417                }
418              }
419            },
420            "overloads": [],
421            "decorators": [],
422            "loc": {
423              "start": {
424                "line": 21,
425                "column": 5
426              },
427              "end": {
428                "line": 23,
429                "column": 6
430              }
431            }
432          },
433          {
434            "type": "MethodDefinition",
435            "key": {
436              "type": "Identifier",
437              "name": "constructor",
438              "decorators": [],
439              "loc": {
440                "start": {
441                  "line": 1,
442                  "column": 1
443                },
444                "end": {
445                  "line": 1,
446                  "column": 1
447                }
448              }
449            },
450            "kind": "constructor",
451            "static": false,
452            "optional": false,
453            "computed": false,
454            "value": {
455              "type": "FunctionExpression",
456              "function": {
457                "type": "ScriptFunction",
458                "id": {
459                  "type": "Identifier",
460                  "name": "constructor",
461                  "decorators": [],
462                  "loc": {
463                    "start": {
464                      "line": 1,
465                      "column": 1
466                    },
467                    "end": {
468                      "line": 1,
469                      "column": 1
470                    }
471                  }
472                },
473                "generator": false,
474                "async": false,
475                "expression": false,
476                "params": [],
477                "body": {
478                  "type": "BlockStatement",
479                  "statements": [],
480                  "loc": {
481                    "start": {
482                      "line": 1,
483                      "column": 1
484                    },
485                    "end": {
486                      "line": 1,
487                      "column": 1
488                    }
489                  }
490                },
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            "overloads": [],
514            "decorators": [],
515            "loc": {
516              "start": {
517                "line": 24,
518                "column": 2
519              },
520              "end": {
521                "line": 24,
522                "column": 2
523              }
524            }
525          }
526        ],
527        "loc": {
528          "start": {
529            "line": 16,
530            "column": 15
531          },
532          "end": {
533            "line": 24,
534            "column": 2
535          }
536        }
537      },
538      "loc": {
539        "start": {
540          "line": 16,
541          "column": 1
542        },
543        "end": {
544          "line": 24,
545          "column": 2
546        }
547      }
548    },
549    {
550      "type": "ClassDeclaration",
551      "definition": {
552        "id": {
553          "type": "Identifier",
554          "name": "ETSGLOBAL",
555          "decorators": [],
556          "loc": {
557            "start": {
558              "line": 1,
559              "column": 1
560            },
561            "end": {
562              "line": 1,
563              "column": 1
564            }
565          }
566        },
567        "superClass": null,
568        "implements": [],
569        "body": [
570          {
571            "type": "MethodDefinition",
572            "key": {
573              "type": "Identifier",
574              "name": "_$init$_",
575              "decorators": [],
576              "loc": {
577                "start": {
578                  "line": 1,
579                  "column": 1
580                },
581                "end": {
582                  "line": 1,
583                  "column": 1
584                }
585              }
586            },
587            "kind": "method",
588            "accessibility": "public",
589            "static": true,
590            "optional": false,
591            "computed": false,
592            "value": {
593              "type": "FunctionExpression",
594              "function": {
595                "type": "ScriptFunction",
596                "id": {
597                  "type": "Identifier",
598                  "name": "_$init$_",
599                  "decorators": [],
600                  "loc": {
601                    "start": {
602                      "line": 1,
603                      "column": 1
604                    },
605                    "end": {
606                      "line": 1,
607                      "column": 1
608                    }
609                  }
610                },
611                "generator": false,
612                "async": false,
613                "expression": false,
614                "params": [],
615                "body": {
616                  "type": "BlockStatement",
617                  "statements": [],
618                  "loc": {
619                    "start": {
620                      "line": 1,
621                      "column": 1
622                    },
623                    "end": {
624                      "line": 1,
625                      "column": 1
626                    }
627                  }
628                },
629                "loc": {
630                  "start": {
631                    "line": 1,
632                    "column": 1
633                  },
634                  "end": {
635                    "line": 1,
636                    "column": 1
637                  }
638                }
639              },
640              "loc": {
641                "start": {
642                  "line": 1,
643                  "column": 1
644                },
645                "end": {
646                  "line": 1,
647                  "column": 1
648                }
649              }
650            },
651            "overloads": [],
652            "decorators": [],
653            "loc": {
654              "start": {
655                "line": 1,
656                "column": 1
657              },
658              "end": {
659                "line": 1,
660                "column": 1
661              }
662            }
663          },
664          {
665            "type": "MethodDefinition",
666            "key": {
667              "type": "Identifier",
668              "name": "bar",
669              "decorators": [],
670              "loc": {
671                "start": {
672                  "line": 26,
673                  "column": 10
674                },
675                "end": {
676                  "line": 26,
677                  "column": 13
678                }
679              }
680            },
681            "kind": "method",
682            "accessibility": "public",
683            "static": true,
684            "optional": false,
685            "computed": false,
686            "value": {
687              "type": "FunctionExpression",
688              "function": {
689                "type": "ScriptFunction",
690                "id": {
691                  "type": "Identifier",
692                  "name": "bar",
693                  "decorators": [],
694                  "loc": {
695                    "start": {
696                      "line": 26,
697                      "column": 10
698                    },
699                    "end": {
700                      "line": 26,
701                      "column": 13
702                    }
703                  }
704                },
705                "generator": false,
706                "async": false,
707                "expression": false,
708                "params": [
709                  {
710                    "type": "ETSParameterExpression",
711                    "name": {
712                      "type": "Identifier",
713                      "name": "x",
714                      "typeAnnotation": {
715                        "type": "ETSPrimitiveType",
716                        "loc": {
717                          "start": {
718                            "line": 26,
719                            "column": 17
720                          },
721                          "end": {
722                            "line": 26,
723                            "column": 20
724                          }
725                        }
726                      },
727                      "decorators": [],
728                      "loc": {
729                        "start": {
730                          "line": 26,
731                          "column": 14
732                        },
733                        "end": {
734                          "line": 26,
735                          "column": 20
736                        }
737                      }
738                    },
739                    "loc": {
740                      "start": {
741                        "line": 26,
742                        "column": 14
743                      },
744                      "end": {
745                        "line": 26,
746                        "column": 20
747                      }
748                    }
749                  },
750                  {
751                    "type": "ETSParameterExpression",
752                    "name": {
753                      "type": "Identifier",
754                      "name": "y",
755                      "typeAnnotation": {
756                        "type": "ETSPrimitiveType",
757                        "loc": {
758                          "start": {
759                            "line": 26,
760                            "column": 25
761                          },
762                          "end": {
763                            "line": 26,
764                            "column": 30
765                          }
766                        }
767                      },
768                      "decorators": [],
769                      "loc": {
770                        "start": {
771                          "line": 26,
772                          "column": 22
773                        },
774                        "end": {
775                          "line": 26,
776                          "column": 30
777                        }
778                      }
779                    },
780                    "loc": {
781                      "start": {
782                        "line": 26,
783                        "column": 22
784                      },
785                      "end": {
786                        "line": 26,
787                        "column": 30
788                      }
789                    }
790                  }
791                ],
792                "returnType": {
793                  "type": "ETSTypeReference",
794                  "part": {
795                    "type": "ETSTypeReferencePart",
796                    "name": {
797                      "type": "Identifier",
798                      "name": "Object",
799                      "decorators": [],
800                      "loc": {
801                        "start": {
802                          "line": 26,
803                          "column": 33
804                        },
805                        "end": {
806                          "line": 26,
807                          "column": 39
808                        }
809                      }
810                    },
811                    "loc": {
812                      "start": {
813                        "line": 26,
814                        "column": 33
815                      },
816                      "end": {
817                        "line": 26,
818                        "column": 41
819                      }
820                    }
821                  },
822                  "loc": {
823                    "start": {
824                      "line": 26,
825                      "column": 33
826                    },
827                    "end": {
828                      "line": 26,
829                      "column": 41
830                    }
831                  }
832                },
833                "body": {
834                  "type": "BlockStatement",
835                  "statements": [
836                    {
837                      "type": "ReturnStatement",
838                      "argument": {
839                        "type": "ETSNewClassInstanceExpression",
840                        "typeReference": {
841                          "type": "ETSTypeReference",
842                          "part": {
843                            "type": "ETSTypeReferencePart",
844                            "name": {
845                              "type": "Identifier",
846                              "name": "Object",
847                              "decorators": [],
848                              "loc": {
849                                "start": {
850                                  "line": 27,
851                                  "column": 14
852                                },
853                                "end": {
854                                  "line": 27,
855                                  "column": 20
856                                }
857                              }
858                            },
859                            "loc": {
860                              "start": {
861                                "line": 27,
862                                "column": 14
863                              },
864                              "end": {
865                                "line": 27,
866                                "column": 21
867                              }
868                            }
869                          },
870                          "loc": {
871                            "start": {
872                              "line": 27,
873                              "column": 14
874                            },
875                            "end": {
876                              "line": 27,
877                              "column": 21
878                            }
879                          }
880                        },
881                        "arguments": [],
882                        "loc": {
883                          "start": {
884                            "line": 27,
885                            "column": 10
886                          },
887                          "end": {
888                            "line": 27,
889                            "column": 23
890                          }
891                        }
892                      },
893                      "loc": {
894                        "start": {
895                          "line": 27,
896                          "column": 3
897                        },
898                        "end": {
899                          "line": 27,
900                          "column": 23
901                        }
902                      }
903                    }
904                  ],
905                  "loc": {
906                    "start": {
907                      "line": 26,
908                      "column": 40
909                    },
910                    "end": {
911                      "line": 28,
912                      "column": 2
913                    }
914                  }
915                },
916                "loc": {
917                  "start": {
918                    "line": 26,
919                    "column": 13
920                  },
921                  "end": {
922                    "line": 28,
923                    "column": 2
924                  }
925                }
926              },
927              "loc": {
928                "start": {
929                  "line": 26,
930                  "column": 13
931                },
932                "end": {
933                  "line": 28,
934                  "column": 2
935                }
936              }
937            },
938            "overloads": [],
939            "decorators": [],
940            "loc": {
941              "start": {
942                "line": 26,
943                "column": 1
944              },
945              "end": {
946                "line": 28,
947                "column": 2
948              }
949            }
950          },
951          {
952            "type": "MethodDefinition",
953            "key": {
954              "type": "Identifier",
955              "name": "foo",
956              "decorators": [],
957              "loc": {
958                "start": {
959                  "line": 30,
960                  "column": 10
961                },
962                "end": {
963                  "line": 30,
964                  "column": 13
965                }
966              }
967            },
968            "kind": "method",
969            "accessibility": "public",
970            "static": true,
971            "optional": false,
972            "computed": false,
973            "value": {
974              "type": "FunctionExpression",
975              "function": {
976                "type": "ScriptFunction",
977                "id": {
978                  "type": "Identifier",
979                  "name": "foo",
980                  "decorators": [],
981                  "loc": {
982                    "start": {
983                      "line": 30,
984                      "column": 10
985                    },
986                    "end": {
987                      "line": 30,
988                      "column": 13
989                    }
990                  }
991                },
992                "generator": false,
993                "async": false,
994                "expression": false,
995                "params": [
996                  {
997                    "type": "ETSParameterExpression",
998                    "name": {
999                      "type": "Identifier",
1000                      "name": "x",
1001                      "typeAnnotation": {
1002                        "type": "ETSPrimitiveType",
1003                        "loc": {
1004                          "start": {
1005                            "line": 30,
1006                            "column": 17
1007                          },
1008                          "end": {
1009                            "line": 30,
1010                            "column": 20
1011                          }
1012                        }
1013                      },
1014                      "decorators": [],
1015                      "loc": {
1016                        "start": {
1017                          "line": 30,
1018                          "column": 14
1019                        },
1020                        "end": {
1021                          "line": 30,
1022                          "column": 20
1023                        }
1024                      }
1025                    },
1026                    "loc": {
1027                      "start": {
1028                        "line": 30,
1029                        "column": 14
1030                      },
1031                      "end": {
1032                        "line": 30,
1033                        "column": 20
1034                      }
1035                    }
1036                  }
1037                ],
1038                "returnType": {
1039                  "type": "ETSTypeReference",
1040                  "part": {
1041                    "type": "ETSTypeReferencePart",
1042                    "name": {
1043                      "type": "Identifier",
1044                      "name": "Object",
1045                      "decorators": [],
1046                      "loc": {
1047                        "start": {
1048                          "line": 30,
1049                          "column": 23
1050                        },
1051                        "end": {
1052                          "line": 30,
1053                          "column": 29
1054                        }
1055                      }
1056                    },
1057                    "loc": {
1058                      "start": {
1059                        "line": 30,
1060                        "column": 23
1061                      },
1062                      "end": {
1063                        "line": 30,
1064                        "column": 31
1065                      }
1066                    }
1067                  },
1068                  "loc": {
1069                    "start": {
1070                      "line": 30,
1071                      "column": 23
1072                    },
1073                    "end": {
1074                      "line": 30,
1075                      "column": 31
1076                    }
1077                  }
1078                },
1079                "body": {
1080                  "type": "BlockStatement",
1081                  "statements": [
1082                    {
1083                      "type": "ExpressionStatement",
1084                      "expression": {
1085                        "type": "ETSLaunchExpression",
1086                        "expr": {
1087                          "type": "CallExpression",
1088                          "callee": {
1089                            "type": "Identifier",
1090                            "name": "bar",
1091                            "decorators": [],
1092                            "loc": {
1093                              "start": {
1094                                "line": 31,
1095                                "column": 10
1096                              },
1097                              "end": {
1098                                "line": 31,
1099                                "column": 13
1100                              }
1101                            }
1102                          },
1103                          "arguments": [
1104                            {
1105                              "type": "Identifier",
1106                              "name": "x",
1107                              "decorators": [],
1108                              "loc": {
1109                                "start": {
1110                                  "line": 31,
1111                                  "column": 14
1112                                },
1113                                "end": {
1114                                  "line": 31,
1115                                  "column": 15
1116                                }
1117                              }
1118                            },
1119                            {
1120                              "type": "NumberLiteral",
1121                              "value": 30,
1122                              "loc": {
1123                                "start": {
1124                                  "line": 31,
1125                                  "column": 17
1126                                },
1127                                "end": {
1128                                  "line": 31,
1129                                  "column": 19
1130                                }
1131                              }
1132                            }
1133                          ],
1134                          "optional": false,
1135                          "loc": {
1136                            "start": {
1137                              "line": 31,
1138                              "column": 10
1139                            },
1140                            "end": {
1141                              "line": 31,
1142                              "column": 20
1143                            }
1144                          }
1145                        },
1146                        "loc": {
1147                          "start": {
1148                            "line": 31,
1149                            "column": 3
1150                          },
1151                          "end": {
1152                            "line": 31,
1153                            "column": 20
1154                          }
1155                        }
1156                      },
1157                      "loc": {
1158                        "start": {
1159                          "line": 31,
1160                          "column": 3
1161                        },
1162                        "end": {
1163                          "line": 31,
1164                          "column": 21
1165                        }
1166                      }
1167                    },
1168                    {
1169                      "type": "ReturnStatement",
1170                      "argument": {
1171                        "type": "ETSNewClassInstanceExpression",
1172                        "typeReference": {
1173                          "type": "ETSTypeReference",
1174                          "part": {
1175                            "type": "ETSTypeReferencePart",
1176                            "name": {
1177                              "type": "Identifier",
1178                              "name": "Object",
1179                              "decorators": [],
1180                              "loc": {
1181                                "start": {
1182                                  "line": 32,
1183                                  "column": 14
1184                                },
1185                                "end": {
1186                                  "line": 32,
1187                                  "column": 20
1188                                }
1189                              }
1190                            },
1191                            "loc": {
1192                              "start": {
1193                                "line": 32,
1194                                "column": 14
1195                              },
1196                              "end": {
1197                                "line": 32,
1198                                "column": 21
1199                              }
1200                            }
1201                          },
1202                          "loc": {
1203                            "start": {
1204                              "line": 32,
1205                              "column": 14
1206                            },
1207                            "end": {
1208                              "line": 32,
1209                              "column": 21
1210                            }
1211                          }
1212                        },
1213                        "arguments": [],
1214                        "loc": {
1215                          "start": {
1216                            "line": 32,
1217                            "column": 10
1218                          },
1219                          "end": {
1220                            "line": 32,
1221                            "column": 23
1222                          }
1223                        }
1224                      },
1225                      "loc": {
1226                        "start": {
1227                          "line": 32,
1228                          "column": 3
1229                        },
1230                        "end": {
1231                          "line": 32,
1232                          "column": 23
1233                        }
1234                      }
1235                    }
1236                  ],
1237                  "loc": {
1238                    "start": {
1239                      "line": 30,
1240                      "column": 30
1241                    },
1242                    "end": {
1243                      "line": 33,
1244                      "column": 2
1245                    }
1246                  }
1247                },
1248                "loc": {
1249                  "start": {
1250                    "line": 30,
1251                    "column": 13
1252                  },
1253                  "end": {
1254                    "line": 33,
1255                    "column": 2
1256                  }
1257                }
1258              },
1259              "loc": {
1260                "start": {
1261                  "line": 30,
1262                  "column": 13
1263                },
1264                "end": {
1265                  "line": 33,
1266                  "column": 2
1267                }
1268              }
1269            },
1270            "overloads": [],
1271            "decorators": [],
1272            "loc": {
1273              "start": {
1274                "line": 30,
1275                "column": 1
1276              },
1277              "end": {
1278                "line": 33,
1279                "column": 2
1280              }
1281            }
1282          },
1283          {
1284            "type": "MethodDefinition",
1285            "key": {
1286              "type": "Identifier",
1287              "name": "main",
1288              "decorators": [],
1289              "loc": {
1290                "start": {
1291                  "line": 35,
1292                  "column": 10
1293                },
1294                "end": {
1295                  "line": 35,
1296                  "column": 14
1297                }
1298              }
1299            },
1300            "kind": "method",
1301            "accessibility": "public",
1302            "static": true,
1303            "optional": false,
1304            "computed": false,
1305            "value": {
1306              "type": "FunctionExpression",
1307              "function": {
1308                "type": "ScriptFunction",
1309                "id": {
1310                  "type": "Identifier",
1311                  "name": "main",
1312                  "decorators": [],
1313                  "loc": {
1314                    "start": {
1315                      "line": 35,
1316                      "column": 10
1317                    },
1318                    "end": {
1319                      "line": 35,
1320                      "column": 14
1321                    }
1322                  }
1323                },
1324                "generator": false,
1325                "async": false,
1326                "expression": false,
1327                "params": [],
1328                "returnType": {
1329                  "type": "ETSPrimitiveType",
1330                  "loc": {
1331                    "start": {
1332                      "line": 35,
1333                      "column": 18
1334                    },
1335                    "end": {
1336                      "line": 35,
1337                      "column": 22
1338                    }
1339                  }
1340                },
1341                "body": {
1342                  "type": "BlockStatement",
1343                  "statements": [
1344                    {
1345                      "type": "VariableDeclaration",
1346                      "declarations": [
1347                        {
1348                          "type": "VariableDeclarator",
1349                          "id": {
1350                            "type": "Identifier",
1351                            "name": "p",
1352                            "typeAnnotation": {
1353                              "type": "ETSTypeReference",
1354                              "part": {
1355                                "type": "ETSTypeReferencePart",
1356                                "name": {
1357                                  "type": "Identifier",
1358                                  "name": "Promise",
1359                                  "decorators": [],
1360                                  "loc": {
1361                                    "start": {
1362                                      "line": 36,
1363                                      "column": 10
1364                                    },
1365                                    "end": {
1366                                      "line": 36,
1367                                      "column": 17
1368                                    }
1369                                  }
1370                                },
1371                                "typeParams": {
1372                                  "type": "TSTypeParameterInstantiation",
1373                                  "params": [
1374                                    {
1375                                      "type": "ETSTypeReference",
1376                                      "part": {
1377                                        "type": "ETSTypeReferencePart",
1378                                        "name": {
1379                                          "type": "Identifier",
1380                                          "name": "Object",
1381                                          "decorators": [],
1382                                          "loc": {
1383                                            "start": {
1384                                              "line": 36,
1385                                              "column": 18
1386                                            },
1387                                            "end": {
1388                                              "line": 36,
1389                                              "column": 24
1390                                            }
1391                                          }
1392                                        },
1393                                        "loc": {
1394                                          "start": {
1395                                            "line": 36,
1396                                            "column": 18
1397                                          },
1398                                          "end": {
1399                                            "line": 36,
1400                                            "column": 25
1401                                          }
1402                                        }
1403                                      },
1404                                      "loc": {
1405                                        "start": {
1406                                          "line": 36,
1407                                          "column": 18
1408                                        },
1409                                        "end": {
1410                                          "line": 36,
1411                                          "column": 25
1412                                        }
1413                                      }
1414                                    }
1415                                  ],
1416                                  "loc": {
1417                                    "start": {
1418                                      "line": 36,
1419                                      "column": 17
1420                                    },
1421                                    "end": {
1422                                      "line": 36,
1423                                      "column": 25
1424                                    }
1425                                  }
1426                                },
1427                                "loc": {
1428                                  "start": {
1429                                    "line": 36,
1430                                    "column": 10
1431                                  },
1432                                  "end": {
1433                                    "line": 36,
1434                                    "column": 26
1435                                  }
1436                                }
1437                              },
1438                              "loc": {
1439                                "start": {
1440                                  "line": 36,
1441                                  "column": 10
1442                                },
1443                                "end": {
1444                                  "line": 36,
1445                                  "column": 26
1446                                }
1447                              }
1448                            },
1449                            "decorators": [],
1450                            "loc": {
1451                              "start": {
1452                                "line": 36,
1453                                "column": 7
1454                              },
1455                              "end": {
1456                                "line": 36,
1457                                "column": 8
1458                              }
1459                            }
1460                          },
1461                          "init": null,
1462                          "loc": {
1463                            "start": {
1464                              "line": 36,
1465                              "column": 7
1466                            },
1467                            "end": {
1468                              "line": 36,
1469                              "column": 8
1470                            }
1471                          }
1472                        }
1473                      ],
1474                      "kind": "let",
1475                      "loc": {
1476                        "start": {
1477                          "line": 36,
1478                          "column": 3
1479                        },
1480                        "end": {
1481                          "line": 36,
1482                          "column": 26
1483                        }
1484                      }
1485                    },
1486                    {
1487                      "type": "ExpressionStatement",
1488                      "expression": {
1489                        "type": "AssignmentExpression",
1490                        "operator": "=",
1491                        "left": {
1492                          "type": "Identifier",
1493                          "name": "p",
1494                          "decorators": [],
1495                          "loc": {
1496                            "start": {
1497                              "line": 37,
1498                              "column": 3
1499                            },
1500                            "end": {
1501                              "line": 37,
1502                              "column": 4
1503                            }
1504                          }
1505                        },
1506                        "right": {
1507                          "type": "ETSLaunchExpression",
1508                          "expr": {
1509                            "type": "CallExpression",
1510                            "callee": {
1511                              "type": "Identifier",
1512                              "name": "foo",
1513                              "decorators": [],
1514                              "loc": {
1515                                "start": {
1516                                  "line": 37,
1517                                  "column": 14
1518                                },
1519                                "end": {
1520                                  "line": 37,
1521                                  "column": 17
1522                                }
1523                              }
1524                            },
1525                            "arguments": [
1526                              {
1527                                "type": "NumberLiteral",
1528                                "value": 11,
1529                                "loc": {
1530                                  "start": {
1531                                    "line": 37,
1532                                    "column": 18
1533                                  },
1534                                  "end": {
1535                                    "line": 37,
1536                                    "column": 20
1537                                  }
1538                                }
1539                              }
1540                            ],
1541                            "optional": false,
1542                            "loc": {
1543                              "start": {
1544                                "line": 37,
1545                                "column": 14
1546                              },
1547                              "end": {
1548                                "line": 37,
1549                                "column": 21
1550                              }
1551                            }
1552                          },
1553                          "loc": {
1554                            "start": {
1555                              "line": 37,
1556                              "column": 7
1557                            },
1558                            "end": {
1559                              "line": 37,
1560                              "column": 21
1561                            }
1562                          }
1563                        },
1564                        "loc": {
1565                          "start": {
1566                            "line": 37,
1567                            "column": 3
1568                          },
1569                          "end": {
1570                            "line": 37,
1571                            "column": 21
1572                          }
1573                        }
1574                      },
1575                      "loc": {
1576                        "start": {
1577                          "line": 37,
1578                          "column": 3
1579                        },
1580                        "end": {
1581                          "line": 37,
1582                          "column": 22
1583                        }
1584                      }
1585                    },
1586                    {
1587                      "type": "ExpressionStatement",
1588                      "expression": {
1589                        "type": "AssignmentExpression",
1590                        "operator": "=",
1591                        "left": {
1592                          "type": "Identifier",
1593                          "name": "p",
1594                          "decorators": [],
1595                          "loc": {
1596                            "start": {
1597                              "line": 38,
1598                              "column": 3
1599                            },
1600                            "end": {
1601                              "line": 38,
1602                              "column": 4
1603                            }
1604                          }
1605                        },
1606                        "right": {
1607                          "type": "ETSLaunchExpression",
1608                          "expr": {
1609                            "type": "CallExpression",
1610                            "callee": {
1611                              "type": "MemberExpression",
1612                              "object": {
1613                                "type": "Identifier",
1614                                "name": "Example",
1615                                "decorators": [],
1616                                "loc": {
1617                                  "start": {
1618                                    "line": 38,
1619                                    "column": 14
1620                                  },
1621                                  "end": {
1622                                    "line": 38,
1623                                    "column": 21
1624                                  }
1625                                }
1626                              },
1627                              "property": {
1628                                "type": "Identifier",
1629                                "name": "foobar",
1630                                "decorators": [],
1631                                "loc": {
1632                                  "start": {
1633                                    "line": 38,
1634                                    "column": 22
1635                                  },
1636                                  "end": {
1637                                    "line": 38,
1638                                    "column": 28
1639                                  }
1640                                }
1641                              },
1642                              "computed": false,
1643                              "optional": false,
1644                              "loc": {
1645                                "start": {
1646                                  "line": 38,
1647                                  "column": 14
1648                                },
1649                                "end": {
1650                                  "line": 38,
1651                                  "column": 28
1652                                }
1653                              }
1654                            },
1655                            "arguments": [],
1656                            "optional": false,
1657                            "loc": {
1658                              "start": {
1659                                "line": 38,
1660                                "column": 14
1661                              },
1662                              "end": {
1663                                "line": 38,
1664                                "column": 30
1665                              }
1666                            }
1667                          },
1668                          "loc": {
1669                            "start": {
1670                              "line": 38,
1671                              "column": 7
1672                            },
1673                            "end": {
1674                              "line": 38,
1675                              "column": 30
1676                            }
1677                          }
1678                        },
1679                        "loc": {
1680                          "start": {
1681                            "line": 38,
1682                            "column": 3
1683                          },
1684                          "end": {
1685                            "line": 38,
1686                            "column": 30
1687                          }
1688                        }
1689                      },
1690                      "loc": {
1691                        "start": {
1692                          "line": 38,
1693                          "column": 3
1694                        },
1695                        "end": {
1696                          "line": 38,
1697                          "column": 31
1698                        }
1699                      }
1700                    },
1701                    {
1702                      "type": "ExpressionStatement",
1703                      "expression": {
1704                        "type": "AssignmentExpression",
1705                        "operator": "=",
1706                        "left": {
1707                          "type": "Identifier",
1708                          "name": "p",
1709                          "decorators": [],
1710                          "loc": {
1711                            "start": {
1712                              "line": 39,
1713                              "column": 3
1714                            },
1715                            "end": {
1716                              "line": 39,
1717                              "column": 4
1718                            }
1719                          }
1720                        },
1721                        "right": {
1722                          "type": "ETSLaunchExpression",
1723                          "expr": {
1724                            "type": "CallExpression",
1725                            "callee": {
1726                              "type": "MemberExpression",
1727                              "object": {
1728                                "type": "ETSNewClassInstanceExpression",
1729                                "typeReference": {
1730                                  "type": "ETSTypeReference",
1731                                  "part": {
1732                                    "type": "ETSTypeReferencePart",
1733                                    "name": {
1734                                      "type": "Identifier",
1735                                      "name": "Example",
1736                                      "decorators": [],
1737                                      "loc": {
1738                                        "start": {
1739                                          "line": 39,
1740                                          "column": 18
1741                                        },
1742                                        "end": {
1743                                          "line": 39,
1744                                          "column": 25
1745                                        }
1746                                      }
1747                                    },
1748                                    "loc": {
1749                                      "start": {
1750                                        "line": 39,
1751                                        "column": 18
1752                                      },
1753                                      "end": {
1754                                        "line": 39,
1755                                        "column": 26
1756                                      }
1757                                    }
1758                                  },
1759                                  "loc": {
1760                                    "start": {
1761                                      "line": 39,
1762                                      "column": 18
1763                                    },
1764                                    "end": {
1765                                      "line": 39,
1766                                      "column": 26
1767                                    }
1768                                  }
1769                                },
1770                                "arguments": [],
1771                                "loc": {
1772                                  "start": {
1773                                    "line": 39,
1774                                    "column": 14
1775                                  },
1776                                  "end": {
1777                                    "line": 39,
1778                                    "column": 28
1779                                  }
1780                                }
1781                              },
1782                              "property": {
1783                                "type": "Identifier",
1784                                "name": "baz",
1785                                "decorators": [],
1786                                "loc": {
1787                                  "start": {
1788                                    "line": 39,
1789                                    "column": 28
1790                                  },
1791                                  "end": {
1792                                    "line": 39,
1793                                    "column": 31
1794                                  }
1795                                }
1796                              },
1797                              "computed": false,
1798                              "optional": false,
1799                              "loc": {
1800                                "start": {
1801                                  "line": 39,
1802                                  "column": 14
1803                                },
1804                                "end": {
1805                                  "line": 39,
1806                                  "column": 31
1807                                }
1808                              }
1809                            },
1810                            "arguments": [],
1811                            "optional": false,
1812                            "loc": {
1813                              "start": {
1814                                "line": 39,
1815                                "column": 14
1816                              },
1817                              "end": {
1818                                "line": 39,
1819                                "column": 33
1820                              }
1821                            }
1822                          },
1823                          "loc": {
1824                            "start": {
1825                              "line": 39,
1826                              "column": 7
1827                            },
1828                            "end": {
1829                              "line": 39,
1830                              "column": 33
1831                            }
1832                          }
1833                        },
1834                        "loc": {
1835                          "start": {
1836                            "line": 39,
1837                            "column": 3
1838                          },
1839                          "end": {
1840                            "line": 39,
1841                            "column": 33
1842                          }
1843                        }
1844                      },
1845                      "loc": {
1846                        "start": {
1847                          "line": 39,
1848                          "column": 3
1849                        },
1850                        "end": {
1851                          "line": 39,
1852                          "column": 34
1853                        }
1854                      }
1855                    },
1856                    {
1857                      "type": "VariableDeclaration",
1858                      "declarations": [
1859                        {
1860                          "type": "VariableDeclarator",
1861                          "id": {
1862                            "type": "Identifier",
1863                            "name": "example",
1864                            "decorators": [],
1865                            "loc": {
1866                              "start": {
1867                                "line": 40,
1868                                "column": 7
1869                              },
1870                              "end": {
1871                                "line": 40,
1872                                "column": 14
1873                              }
1874                            }
1875                          },
1876                          "init": {
1877                            "type": "ETSNewClassInstanceExpression",
1878                            "typeReference": {
1879                              "type": "ETSTypeReference",
1880                              "part": {
1881                                "type": "ETSTypeReferencePart",
1882                                "name": {
1883                                  "type": "Identifier",
1884                                  "name": "Example",
1885                                  "decorators": [],
1886                                  "loc": {
1887                                    "start": {
1888                                      "line": 40,
1889                                      "column": 21
1890                                    },
1891                                    "end": {
1892                                      "line": 40,
1893                                      "column": 28
1894                                    }
1895                                  }
1896                                },
1897                                "loc": {
1898                                  "start": {
1899                                    "line": 40,
1900                                    "column": 21
1901                                  },
1902                                  "end": {
1903                                    "line": 40,
1904                                    "column": 29
1905                                  }
1906                                }
1907                              },
1908                              "loc": {
1909                                "start": {
1910                                  "line": 40,
1911                                  "column": 21
1912                                },
1913                                "end": {
1914                                  "line": 40,
1915                                  "column": 29
1916                                }
1917                              }
1918                            },
1919                            "arguments": [],
1920                            "loc": {
1921                              "start": {
1922                                "line": 40,
1923                                "column": 17
1924                              },
1925                              "end": {
1926                                "line": 40,
1927                                "column": 31
1928                              }
1929                            }
1930                          },
1931                          "loc": {
1932                            "start": {
1933                              "line": 40,
1934                              "column": 7
1935                            },
1936                            "end": {
1937                              "line": 40,
1938                              "column": 31
1939                            }
1940                          }
1941                        }
1942                      ],
1943                      "kind": "let",
1944                      "loc": {
1945                        "start": {
1946                          "line": 40,
1947                          "column": 3
1948                        },
1949                        "end": {
1950                          "line": 40,
1951                          "column": 31
1952                        }
1953                      }
1954                    },
1955                    {
1956                      "type": "ExpressionStatement",
1957                      "expression": {
1958                        "type": "AssignmentExpression",
1959                        "operator": "=",
1960                        "left": {
1961                          "type": "Identifier",
1962                          "name": "p",
1963                          "decorators": [],
1964                          "loc": {
1965                            "start": {
1966                              "line": 41,
1967                              "column": 3
1968                            },
1969                            "end": {
1970                              "line": 41,
1971                              "column": 4
1972                            }
1973                          }
1974                        },
1975                        "right": {
1976                          "type": "ETSLaunchExpression",
1977                          "expr": {
1978                            "type": "CallExpression",
1979                            "callee": {
1980                              "type": "MemberExpression",
1981                              "object": {
1982                                "type": "Identifier",
1983                                "name": "example",
1984                                "decorators": [],
1985                                "loc": {
1986                                  "start": {
1987                                    "line": 41,
1988                                    "column": 14
1989                                  },
1990                                  "end": {
1991                                    "line": 41,
1992                                    "column": 21
1993                                  }
1994                                }
1995                              },
1996                              "property": {
1997                                "type": "Identifier",
1998                                "name": "baz",
1999                                "decorators": [],
2000                                "loc": {
2001                                  "start": {
2002                                    "line": 41,
2003                                    "column": 22
2004                                  },
2005                                  "end": {
2006                                    "line": 41,
2007                                    "column": 25
2008                                  }
2009                                }
2010                              },
2011                              "computed": false,
2012                              "optional": false,
2013                              "loc": {
2014                                "start": {
2015                                  "line": 41,
2016                                  "column": 14
2017                                },
2018                                "end": {
2019                                  "line": 41,
2020                                  "column": 25
2021                                }
2022                              }
2023                            },
2024                            "arguments": [],
2025                            "optional": false,
2026                            "loc": {
2027                              "start": {
2028                                "line": 41,
2029                                "column": 14
2030                              },
2031                              "end": {
2032                                "line": 41,
2033                                "column": 27
2034                              }
2035                            }
2036                          },
2037                          "loc": {
2038                            "start": {
2039                              "line": 41,
2040                              "column": 7
2041                            },
2042                            "end": {
2043                              "line": 41,
2044                              "column": 27
2045                            }
2046                          }
2047                        },
2048                        "loc": {
2049                          "start": {
2050                            "line": 41,
2051                            "column": 3
2052                          },
2053                          "end": {
2054                            "line": 41,
2055                            "column": 27
2056                          }
2057                        }
2058                      },
2059                      "loc": {
2060                        "start": {
2061                          "line": 41,
2062                          "column": 3
2063                        },
2064                        "end": {
2065                          "line": 41,
2066                          "column": 28
2067                        }
2068                      }
2069                    },
2070                    {
2071                      "type": "VariableDeclaration",
2072                      "declarations": [
2073                        {
2074                          "type": "VariableDeclarator",
2075                          "id": {
2076                            "type": "Identifier",
2077                            "name": "foo_ref",
2078                            "typeAnnotation": {
2079                              "type": "ETSFunctionType",
2080                              "params": [
2081                                {
2082                                  "type": "ETSParameterExpression",
2083                                  "name": {
2084                                    "type": "Identifier",
2085                                    "name": "x",
2086                                    "typeAnnotation": {
2087                                      "type": "ETSPrimitiveType",
2088                                      "loc": {
2089                                        "start": {
2090                                          "line": 42,
2091                                          "column": 20
2092                                        },
2093                                        "end": {
2094                                          "line": 42,
2095                                          "column": 23
2096                                        }
2097                                      }
2098                                    },
2099                                    "decorators": [],
2100                                    "loc": {
2101                                      "start": {
2102                                        "line": 42,
2103                                        "column": 17
2104                                      },
2105                                      "end": {
2106                                        "line": 42,
2107                                        "column": 23
2108                                      }
2109                                    }
2110                                  },
2111                                  "loc": {
2112                                    "start": {
2113                                      "line": 42,
2114                                      "column": 17
2115                                    },
2116                                    "end": {
2117                                      "line": 42,
2118                                      "column": 23
2119                                    }
2120                                  }
2121                                }
2122                              ],
2123                              "returnType": {
2124                                "type": "ETSTypeReference",
2125                                "part": {
2126                                  "type": "ETSTypeReferencePart",
2127                                  "name": {
2128                                    "type": "Identifier",
2129                                    "name": "Object",
2130                                    "decorators": [],
2131                                    "loc": {
2132                                      "start": {
2133                                        "line": 42,
2134                                        "column": 28
2135                                      },
2136                                      "end": {
2137                                        "line": 42,
2138                                        "column": 34
2139                                      }
2140                                    }
2141                                  },
2142                                  "loc": {
2143                                    "start": {
2144                                      "line": 42,
2145                                      "column": 28
2146                                    },
2147                                    "end": {
2148                                      "line": 42,
2149                                      "column": 36
2150                                    }
2151                                  }
2152                                },
2153                                "loc": {
2154                                  "start": {
2155                                    "line": 42,
2156                                    "column": 28
2157                                  },
2158                                  "end": {
2159                                    "line": 42,
2160                                    "column": 36
2161                                  }
2162                                }
2163                              },
2164                              "loc": {
2165                                "start": {
2166                                  "line": 42,
2167                                  "column": 16
2168                                },
2169                                "end": {
2170                                  "line": 42,
2171                                  "column": 36
2172                                }
2173                              }
2174                            },
2175                            "decorators": [],
2176                            "loc": {
2177                              "start": {
2178                                "line": 42,
2179                                "column": 7
2180                              },
2181                              "end": {
2182                                "line": 42,
2183                                "column": 14
2184                              }
2185                            }
2186                          },
2187                          "init": {
2188                            "type": "Identifier",
2189                            "name": "foo",
2190                            "decorators": [],
2191                            "loc": {
2192                              "start": {
2193                                "line": 42,
2194                                "column": 37
2195                              },
2196                              "end": {
2197                                "line": 42,
2198                                "column": 40
2199                              }
2200                            }
2201                          },
2202                          "loc": {
2203                            "start": {
2204                              "line": 42,
2205                              "column": 7
2206                            },
2207                            "end": {
2208                              "line": 42,
2209                              "column": 40
2210                            }
2211                          }
2212                        }
2213                      ],
2214                      "kind": "let",
2215                      "loc": {
2216                        "start": {
2217                          "line": 42,
2218                          "column": 3
2219                        },
2220                        "end": {
2221                          "line": 42,
2222                          "column": 41
2223                        }
2224                      }
2225                    },
2226                    {
2227                      "type": "ExpressionStatement",
2228                      "expression": {
2229                        "type": "AssignmentExpression",
2230                        "operator": "=",
2231                        "left": {
2232                          "type": "Identifier",
2233                          "name": "p",
2234                          "decorators": [],
2235                          "loc": {
2236                            "start": {
2237                              "line": 43,
2238                              "column": 3
2239                            },
2240                            "end": {
2241                              "line": 43,
2242                              "column": 4
2243                            }
2244                          }
2245                        },
2246                        "right": {
2247                          "type": "ETSLaunchExpression",
2248                          "expr": {
2249                            "type": "CallExpression",
2250                            "callee": {
2251                              "type": "Identifier",
2252                              "name": "foo_ref",
2253                              "decorators": [],
2254                              "loc": {
2255                                "start": {
2256                                  "line": 43,
2257                                  "column": 14
2258                                },
2259                                "end": {
2260                                  "line": 43,
2261                                  "column": 21
2262                                }
2263                              }
2264                            },
2265                            "arguments": [
2266                              {
2267                                "type": "NumberLiteral",
2268                                "value": 5,
2269                                "loc": {
2270                                  "start": {
2271                                    "line": 43,
2272                                    "column": 22
2273                                  },
2274                                  "end": {
2275                                    "line": 43,
2276                                    "column": 23
2277                                  }
2278                                }
2279                              }
2280                            ],
2281                            "optional": false,
2282                            "loc": {
2283                              "start": {
2284                                "line": 43,
2285                                "column": 14
2286                              },
2287                              "end": {
2288                                "line": 43,
2289                                "column": 24
2290                              }
2291                            }
2292                          },
2293                          "loc": {
2294                            "start": {
2295                              "line": 43,
2296                              "column": 7
2297                            },
2298                            "end": {
2299                              "line": 43,
2300                              "column": 24
2301                            }
2302                          }
2303                        },
2304                        "loc": {
2305                          "start": {
2306                            "line": 43,
2307                            "column": 3
2308                          },
2309                          "end": {
2310                            "line": 43,
2311                            "column": 24
2312                          }
2313                        }
2314                      },
2315                      "loc": {
2316                        "start": {
2317                          "line": 43,
2318                          "column": 3
2319                        },
2320                        "end": {
2321                          "line": 43,
2322                          "column": 25
2323                        }
2324                      }
2325                    },
2326                    {
2327                      "type": "VariableDeclaration",
2328                      "declarations": [
2329                        {
2330                          "type": "VariableDeclarator",
2331                          "id": {
2332                            "type": "Identifier",
2333                            "name": "lambda",
2334                            "typeAnnotation": {
2335                              "type": "ETSFunctionType",
2336                              "params": [],
2337                              "returnType": {
2338                                "type": "ETSPrimitiveType",
2339                                "loc": {
2340                                  "start": {
2341                                    "line": 44,
2342                                    "column": 21
2343                                  },
2344                                  "end": {
2345                                    "line": 44,
2346                                    "column": 25
2347                                  }
2348                                }
2349                              },
2350                              "loc": {
2351                                "start": {
2352                                  "line": 44,
2353                                  "column": 15
2354                                },
2355                                "end": {
2356                                  "line": 44,
2357                                  "column": 25
2358                                }
2359                              }
2360                            },
2361                            "decorators": [],
2362                            "loc": {
2363                              "start": {
2364                                "line": 44,
2365                                "column": 7
2366                              },
2367                              "end": {
2368                                "line": 44,
2369                                "column": 13
2370                              }
2371                            }
2372                          },
2373                          "init": {
2374                            "type": "ArrowFunctionExpression",
2375                            "function": {
2376                              "type": "ScriptFunction",
2377                              "id": null,
2378                              "generator": false,
2379                              "async": false,
2380                              "expression": false,
2381                              "params": [],
2382                              "returnType": {
2383                                "type": "ETSPrimitiveType",
2384                                "loc": {
2385                                  "start": {
2386                                    "line": 44,
2387                                    "column": 32
2388                                  },
2389                                  "end": {
2390                                    "line": 44,
2391                                    "column": 36
2392                                  }
2393                                }
2394                              },
2395                              "body": {
2396                                "type": "BlockStatement",
2397                                "statements": [
2398                                  {
2399                                    "type": "ReturnStatement",
2400                                    "argument": null,
2401                                    "loc": {
2402                                      "start": {
2403                                        "line": 44,
2404                                        "column": 42
2405                                      },
2406                                      "end": {
2407                                        "line": 44,
2408                                        "column": 49
2409                                      }
2410                                    }
2411                                  }
2412                                ],
2413                                "loc": {
2414                                  "start": {
2415                                    "line": 44,
2416                                    "column": 40
2417                                  },
2418                                  "end": {
2419                                    "line": 44,
2420                                    "column": 51
2421                                  }
2422                                }
2423                              },
2424                              "loc": {
2425                                "start": {
2426                                  "line": 44,
2427                                  "column": 28
2428                                },
2429                                "end": {
2430                                  "line": 44,
2431                                  "column": 51
2432                                }
2433                              }
2434                            },
2435                            "loc": {
2436                              "start": {
2437                                "line": 44,
2438                                "column": 28
2439                              },
2440                              "end": {
2441                                "line": 44,
2442                                "column": 51
2443                              }
2444                            }
2445                          },
2446                          "loc": {
2447                            "start": {
2448                              "line": 44,
2449                              "column": 7
2450                            },
2451                            "end": {
2452                              "line": 44,
2453                              "column": 51
2454                            }
2455                          }
2456                        }
2457                      ],
2458                      "kind": "let",
2459                      "loc": {
2460                        "start": {
2461                          "line": 44,
2462                          "column": 3
2463                        },
2464                        "end": {
2465                          "line": 44,
2466                          "column": 51
2467                        }
2468                      }
2469                    },
2470                    {
2471                      "type": "ExpressionStatement",
2472                      "expression": {
2473                        "type": "ETSLaunchExpression",
2474                        "expr": {
2475                          "type": "CallExpression",
2476                          "callee": {
2477                            "type": "Identifier",
2478                            "name": "lambda",
2479                            "decorators": [],
2480                            "loc": {
2481                              "start": {
2482                                "line": 45,
2483                                "column": 10
2484                              },
2485                              "end": {
2486                                "line": 45,
2487                                "column": 16
2488                              }
2489                            }
2490                          },
2491                          "arguments": [],
2492                          "optional": false,
2493                          "loc": {
2494                            "start": {
2495                              "line": 45,
2496                              "column": 10
2497                            },
2498                            "end": {
2499                              "line": 45,
2500                              "column": 18
2501                            }
2502                          }
2503                        },
2504                        "loc": {
2505                          "start": {
2506                            "line": 45,
2507                            "column": 3
2508                          },
2509                          "end": {
2510                            "line": 45,
2511                            "column": 18
2512                          }
2513                        }
2514                      },
2515                      "loc": {
2516                        "start": {
2517                          "line": 45,
2518                          "column": 3
2519                        },
2520                        "end": {
2521                          "line": 45,
2522                          "column": 19
2523                        }
2524                      }
2525                    }
2526                  ],
2527                  "loc": {
2528                    "start": {
2529                      "line": 35,
2530                      "column": 23
2531                    },
2532                    "end": {
2533                      "line": 46,
2534                      "column": 2
2535                    }
2536                  }
2537                },
2538                "loc": {
2539                  "start": {
2540                    "line": 35,
2541                    "column": 14
2542                  },
2543                  "end": {
2544                    "line": 46,
2545                    "column": 2
2546                  }
2547                }
2548              },
2549              "loc": {
2550                "start": {
2551                  "line": 35,
2552                  "column": 14
2553                },
2554                "end": {
2555                  "line": 46,
2556                  "column": 2
2557                }
2558              }
2559            },
2560            "overloads": [],
2561            "decorators": [],
2562            "loc": {
2563              "start": {
2564                "line": 35,
2565                "column": 1
2566              },
2567              "end": {
2568                "line": 46,
2569                "column": 2
2570              }
2571            }
2572          }
2573        ],
2574        "loc": {
2575          "start": {
2576            "line": 1,
2577            "column": 1
2578          },
2579          "end": {
2580            "line": 1,
2581            "column": 1
2582          }
2583        }
2584      },
2585      "loc": {
2586        "start": {
2587          "line": 1,
2588          "column": 1
2589        },
2590        "end": {
2591          "line": 1,
2592          "column": 1
2593        }
2594      }
2595    }
2596  ],
2597  "loc": {
2598    "start": {
2599      "line": 1,
2600      "column": 1
2601    },
2602    "end": {
2603      "line": 47,
2604      "column": 1
2605    }
2606  }
2607}
2608