• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "ImportDeclaration",
6      "source": {
7        "type": "StringLiteral",
8        "value": "std/concurrency",
9        "loc": {
10          "start": {
11            "line": 16,
12            "column": 22,
13            "program": "launch.ets"
14          },
15          "end": {
16            "line": 16,
17            "column": 39,
18            "program": "launch.ets"
19          }
20        }
21      },
22      "specifiers": [
23        {
24          "type": "ImportSpecifier",
25          "local": {
26            "type": "Identifier",
27            "name": "launch",
28            "decorators": [],
29            "loc": {
30              "start": {
31                "line": 16,
32                "column": 9,
33                "program": "launch.ets"
34              },
35              "end": {
36                "line": 16,
37                "column": 15,
38                "program": "launch.ets"
39              }
40            }
41          },
42          "imported": {
43            "type": "Identifier",
44            "name": "launch",
45            "decorators": [],
46            "loc": {
47              "start": {
48                "line": 16,
49                "column": 9,
50                "program": "launch.ets"
51              },
52              "end": {
53                "line": 16,
54                "column": 15,
55                "program": "launch.ets"
56              }
57            }
58          },
59          "loc": {
60            "start": {
61              "line": 16,
62              "column": 9,
63              "program": "launch.ets"
64            },
65            "end": {
66              "line": 16,
67              "column": 15,
68              "program": "launch.ets"
69            }
70          }
71        }
72      ],
73      "loc": {
74        "start": {
75          "line": 16,
76          "column": 1,
77          "program": "launch.ets"
78        },
79        "end": {
80          "line": 16,
81          "column": 39,
82          "program": "launch.ets"
83        }
84      }
85    },
86    {
87      "type": "ImportDeclaration",
88      "source": {
89        "type": "StringLiteral",
90        "value": "std/core",
91        "loc": {
92          "start": {
93            "line": 17,
94            "column": 19,
95            "program": "launch.ets"
96          },
97          "end": {
98            "line": 17,
99            "column": 29,
100            "program": "launch.ets"
101          }
102        }
103      },
104      "specifiers": [
105        {
106          "type": "ImportSpecifier",
107          "local": {
108            "type": "Identifier",
109            "name": "Job",
110            "decorators": [],
111            "loc": {
112              "start": {
113                "line": 17,
114                "column": 9,
115                "program": "launch.ets"
116              },
117              "end": {
118                "line": 17,
119                "column": 12,
120                "program": "launch.ets"
121              }
122            }
123          },
124          "imported": {
125            "type": "Identifier",
126            "name": "Job",
127            "decorators": [],
128            "loc": {
129              "start": {
130                "line": 17,
131                "column": 9,
132                "program": "launch.ets"
133              },
134              "end": {
135                "line": 17,
136                "column": 12,
137                "program": "launch.ets"
138              }
139            }
140          },
141          "loc": {
142            "start": {
143              "line": 17,
144              "column": 9,
145              "program": "launch.ets"
146            },
147            "end": {
148              "line": 17,
149              "column": 12,
150              "program": "launch.ets"
151            }
152          }
153        }
154      ],
155      "loc": {
156        "start": {
157          "line": 17,
158          "column": 1,
159          "program": "launch.ets"
160        },
161        "end": {
162          "line": 17,
163          "column": 29,
164          "program": "launch.ets"
165        }
166      }
167    },
168    {
169      "type": "ClassDeclaration",
170      "definition": {
171        "id": {
172          "type": "Identifier",
173          "name": "Example",
174          "decorators": [],
175          "loc": {
176            "start": {
177              "line": 19,
178              "column": 7,
179              "program": "launch.ets"
180            },
181            "end": {
182              "line": 19,
183              "column": 14,
184              "program": "launch.ets"
185            }
186          }
187        },
188        "superClass": null,
189        "implements": [],
190        "body": [
191          {
192            "type": "MethodDefinition",
193            "key": {
194              "type": "Identifier",
195              "name": "foobar",
196              "decorators": [],
197              "loc": {
198                "start": {
199                  "line": 20,
200                  "column": 19,
201                  "program": "launch.ets"
202                },
203                "end": {
204                  "line": 20,
205                  "column": 25,
206                  "program": "launch.ets"
207                }
208              }
209            },
210            "kind": "method",
211            "accessibility": "public",
212            "static": true,
213            "optional": false,
214            "computed": false,
215            "value": {
216              "type": "FunctionExpression",
217              "function": {
218                "type": "ScriptFunction",
219                "id": {
220                  "type": "Identifier",
221                  "name": "foobar",
222                  "decorators": [],
223                  "loc": {
224                    "start": {
225                      "line": 20,
226                      "column": 19,
227                      "program": "launch.ets"
228                    },
229                    "end": {
230                      "line": 20,
231                      "column": 25,
232                      "program": "launch.ets"
233                    }
234                  }
235                },
236                "generator": false,
237                "async": false,
238                "expression": false,
239                "params": [],
240                "returnType": {
241                  "type": "ETSTypeReference",
242                  "part": {
243                    "type": "ETSTypeReferencePart",
244                    "name": {
245                      "type": "Identifier",
246                      "name": "Object",
247                      "decorators": [],
248                      "loc": {
249                        "start": {
250                          "line": 20,
251                          "column": 29,
252                          "program": "launch.ets"
253                        },
254                        "end": {
255                          "line": 20,
256                          "column": 35,
257                          "program": "launch.ets"
258                        }
259                      }
260                    },
261                    "loc": {
262                      "start": {
263                        "line": 20,
264                        "column": 29,
265                        "program": "launch.ets"
266                      },
267                      "end": {
268                        "line": 20,
269                        "column": 37,
270                        "program": "launch.ets"
271                      }
272                    }
273                  },
274                  "loc": {
275                    "start": {
276                      "line": 20,
277                      "column": 29,
278                      "program": "launch.ets"
279                    },
280                    "end": {
281                      "line": 20,
282                      "column": 37,
283                      "program": "launch.ets"
284                    }
285                  }
286                },
287                "body": {
288                  "type": "BlockStatement",
289                  "statements": [
290                    {
291                      "type": "ReturnStatement",
292                      "argument": {
293                        "type": "ETSNewClassInstanceExpression",
294                        "typeReference": {
295                          "type": "ETSTypeReference",
296                          "part": {
297                            "type": "ETSTypeReferencePart",
298                            "name": {
299                              "type": "Identifier",
300                              "name": "Object",
301                              "decorators": [],
302                              "loc": {
303                                "start": {
304                                  "line": 21,
305                                  "column": 20,
306                                  "program": "launch.ets"
307                                },
308                                "end": {
309                                  "line": 21,
310                                  "column": 26,
311                                  "program": "launch.ets"
312                                }
313                              }
314                            },
315                            "loc": {
316                              "start": {
317                                "line": 21,
318                                "column": 20,
319                                "program": "launch.ets"
320                              },
321                              "end": {
322                                "line": 21,
323                                "column": 27,
324                                "program": "launch.ets"
325                              }
326                            }
327                          },
328                          "loc": {
329                            "start": {
330                              "line": 21,
331                              "column": 20,
332                              "program": "launch.ets"
333                            },
334                            "end": {
335                              "line": 21,
336                              "column": 27,
337                              "program": "launch.ets"
338                            }
339                          }
340                        },
341                        "arguments": [],
342                        "loc": {
343                          "start": {
344                            "line": 21,
345                            "column": 16,
346                            "program": "launch.ets"
347                          },
348                          "end": {
349                            "line": 21,
350                            "column": 29,
351                            "program": "launch.ets"
352                          }
353                        }
354                      },
355                      "loc": {
356                        "start": {
357                          "line": 21,
358                          "column": 9,
359                          "program": "launch.ets"
360                        },
361                        "end": {
362                          "line": 21,
363                          "column": 29,
364                          "program": "launch.ets"
365                        }
366                      }
367                    }
368                  ],
369                  "loc": {
370                    "start": {
371                      "line": 20,
372                      "column": 36,
373                      "program": "launch.ets"
374                    },
375                    "end": {
376                      "line": 22,
377                      "column": 6,
378                      "program": "launch.ets"
379                    }
380                  }
381                },
382                "loc": {
383                  "start": {
384                    "line": 20,
385                    "column": 25,
386                    "program": "launch.ets"
387                  },
388                  "end": {
389                    "line": 22,
390                    "column": 6,
391                    "program": "launch.ets"
392                  }
393                }
394              },
395              "loc": {
396                "start": {
397                  "line": 20,
398                  "column": 25,
399                  "program": "launch.ets"
400                },
401                "end": {
402                  "line": 22,
403                  "column": 6,
404                  "program": "launch.ets"
405                }
406              }
407            },
408            "overloads": [],
409            "decorators": [],
410            "loc": {
411              "start": {
412                "line": 20,
413                "column": 5,
414                "program": "launch.ets"
415              },
416              "end": {
417                "line": 22,
418                "column": 6,
419                "program": "launch.ets"
420              }
421            }
422          },
423          {
424            "type": "MethodDefinition",
425            "key": {
426              "type": "Identifier",
427              "name": "baz",
428              "decorators": [],
429              "loc": {
430                "start": {
431                  "line": 24,
432                  "column": 19,
433                  "program": "launch.ets"
434                },
435                "end": {
436                  "line": 24,
437                  "column": 22,
438                  "program": "launch.ets"
439                }
440              }
441            },
442            "kind": "method",
443            "accessibility": "public",
444            "static": true,
445            "optional": false,
446            "computed": false,
447            "value": {
448              "type": "FunctionExpression",
449              "function": {
450                "type": "ScriptFunction",
451                "id": {
452                  "type": "Identifier",
453                  "name": "baz",
454                  "decorators": [],
455                  "loc": {
456                    "start": {
457                      "line": 24,
458                      "column": 19,
459                      "program": "launch.ets"
460                    },
461                    "end": {
462                      "line": 24,
463                      "column": 22,
464                      "program": "launch.ets"
465                    }
466                  }
467                },
468                "generator": false,
469                "async": false,
470                "expression": false,
471                "params": [],
472                "returnType": {
473                  "type": "ETSTypeReference",
474                  "part": {
475                    "type": "ETSTypeReferencePart",
476                    "name": {
477                      "type": "Identifier",
478                      "name": "Object",
479                      "decorators": [],
480                      "loc": {
481                        "start": {
482                          "line": 24,
483                          "column": 26,
484                          "program": "launch.ets"
485                        },
486                        "end": {
487                          "line": 24,
488                          "column": 32,
489                          "program": "launch.ets"
490                        }
491                      }
492                    },
493                    "loc": {
494                      "start": {
495                        "line": 24,
496                        "column": 26,
497                        "program": "launch.ets"
498                      },
499                      "end": {
500                        "line": 24,
501                        "column": 34,
502                        "program": "launch.ets"
503                      }
504                    }
505                  },
506                  "loc": {
507                    "start": {
508                      "line": 24,
509                      "column": 26,
510                      "program": "launch.ets"
511                    },
512                    "end": {
513                      "line": 24,
514                      "column": 34,
515                      "program": "launch.ets"
516                    }
517                  }
518                },
519                "body": {
520                  "type": "BlockStatement",
521                  "statements": [
522                    {
523                      "type": "ReturnStatement",
524                      "argument": {
525                        "type": "ETSNewClassInstanceExpression",
526                        "typeReference": {
527                          "type": "ETSTypeReference",
528                          "part": {
529                            "type": "ETSTypeReferencePart",
530                            "name": {
531                              "type": "Identifier",
532                              "name": "Object",
533                              "decorators": [],
534                              "loc": {
535                                "start": {
536                                  "line": 25,
537                                  "column": 20,
538                                  "program": "launch.ets"
539                                },
540                                "end": {
541                                  "line": 25,
542                                  "column": 26,
543                                  "program": "launch.ets"
544                                }
545                              }
546                            },
547                            "loc": {
548                              "start": {
549                                "line": 25,
550                                "column": 20,
551                                "program": "launch.ets"
552                              },
553                              "end": {
554                                "line": 25,
555                                "column": 27,
556                                "program": "launch.ets"
557                              }
558                            }
559                          },
560                          "loc": {
561                            "start": {
562                              "line": 25,
563                              "column": 20,
564                              "program": "launch.ets"
565                            },
566                            "end": {
567                              "line": 25,
568                              "column": 27,
569                              "program": "launch.ets"
570                            }
571                          }
572                        },
573                        "arguments": [],
574                        "loc": {
575                          "start": {
576                            "line": 25,
577                            "column": 16,
578                            "program": "launch.ets"
579                          },
580                          "end": {
581                            "line": 25,
582                            "column": 29,
583                            "program": "launch.ets"
584                          }
585                        }
586                      },
587                      "loc": {
588                        "start": {
589                          "line": 25,
590                          "column": 9,
591                          "program": "launch.ets"
592                        },
593                        "end": {
594                          "line": 25,
595                          "column": 29,
596                          "program": "launch.ets"
597                        }
598                      }
599                    }
600                  ],
601                  "loc": {
602                    "start": {
603                      "line": 24,
604                      "column": 33,
605                      "program": "launch.ets"
606                    },
607                    "end": {
608                      "line": 26,
609                      "column": 6,
610                      "program": "launch.ets"
611                    }
612                  }
613                },
614                "loc": {
615                  "start": {
616                    "line": 24,
617                    "column": 22,
618                    "program": "launch.ets"
619                  },
620                  "end": {
621                    "line": 26,
622                    "column": 6,
623                    "program": "launch.ets"
624                  }
625                }
626              },
627              "loc": {
628                "start": {
629                  "line": 24,
630                  "column": 22,
631                  "program": "launch.ets"
632                },
633                "end": {
634                  "line": 26,
635                  "column": 6,
636                  "program": "launch.ets"
637                }
638              }
639            },
640            "overloads": [],
641            "decorators": [],
642            "loc": {
643              "start": {
644                "line": 24,
645                "column": 5,
646                "program": "launch.ets"
647              },
648              "end": {
649                "line": 26,
650                "column": 6,
651                "program": "launch.ets"
652              }
653            }
654          },
655          {
656            "type": "MethodDefinition",
657            "key": {
658              "type": "Identifier",
659              "name": "constructor",
660              "decorators": [],
661              "loc": {
662                "start": {
663                  "line": 19,
664                  "column": 16,
665                  "program": "launch.ets"
666                },
667                "end": {
668                  "line": 19,
669                  "column": 16,
670                  "program": "launch.ets"
671                }
672              }
673            },
674            "kind": "constructor",
675            "static": false,
676            "optional": false,
677            "computed": false,
678            "value": {
679              "type": "FunctionExpression",
680              "function": {
681                "type": "ScriptFunction",
682                "id": {
683                  "type": "Identifier",
684                  "name": "constructor",
685                  "decorators": [],
686                  "loc": {
687                    "start": {
688                      "line": 19,
689                      "column": 16,
690                      "program": "launch.ets"
691                    },
692                    "end": {
693                      "line": 19,
694                      "column": 16,
695                      "program": "launch.ets"
696                    }
697                  }
698                },
699                "generator": false,
700                "async": false,
701                "expression": false,
702                "params": [],
703                "body": {
704                  "type": "BlockStatement",
705                  "statements": [],
706                  "loc": {
707                    "start": {
708                      "line": 19,
709                      "column": 16,
710                      "program": "launch.ets"
711                    },
712                    "end": {
713                      "line": 19,
714                      "column": 16,
715                      "program": "launch.ets"
716                    }
717                  }
718                },
719                "loc": {
720                  "start": {
721                    "line": 19,
722                    "column": 16,
723                    "program": "launch.ets"
724                  },
725                  "end": {
726                    "line": 19,
727                    "column": 16,
728                    "program": "launch.ets"
729                  }
730                }
731              },
732              "loc": {
733                "start": {
734                  "line": 19,
735                  "column": 16,
736                  "program": "launch.ets"
737                },
738                "end": {
739                  "line": 19,
740                  "column": 16,
741                  "program": "launch.ets"
742                }
743              }
744            },
745            "overloads": [],
746            "decorators": [],
747            "loc": {
748              "start": {
749                "line": 1,
750                "column": 1,
751                "program": null
752              },
753              "end": {
754                "line": 1,
755                "column": 1,
756                "program": null
757              }
758            }
759          }
760        ],
761        "loc": {
762          "start": {
763            "line": 19,
764            "column": 15,
765            "program": "launch.ets"
766          },
767          "end": {
768            "line": 29,
769            "column": 9,
770            "program": "launch.ets"
771          }
772        }
773      },
774      "loc": {
775        "start": {
776          "line": 19,
777          "column": 1,
778          "program": "launch.ets"
779        },
780        "end": {
781          "line": 29,
782          "column": 9,
783          "program": "launch.ets"
784        }
785      }
786    },
787    {
788      "type": "ClassDeclaration",
789      "definition": {
790        "id": {
791          "type": "Identifier",
792          "name": "ETSGLOBAL",
793          "decorators": [],
794          "loc": {
795            "start": {
796              "line": 1,
797              "column": 1,
798              "program": "launch.ets"
799            },
800            "end": {
801              "line": 1,
802              "column": 1,
803              "program": "launch.ets"
804            }
805          }
806        },
807        "superClass": null,
808        "implements": [],
809        "body": [
810          {
811            "type": "MethodDefinition",
812            "key": {
813              "type": "Identifier",
814              "name": "_$init$_",
815              "decorators": [],
816              "loc": {
817                "start": {
818                  "line": 1,
819                  "column": 1,
820                  "program": null
821                },
822                "end": {
823                  "line": 1,
824                  "column": 1,
825                  "program": null
826                }
827              }
828            },
829            "kind": "method",
830            "accessibility": "public",
831            "static": true,
832            "optional": false,
833            "computed": false,
834            "value": {
835              "type": "FunctionExpression",
836              "function": {
837                "type": "ScriptFunction",
838                "id": {
839                  "type": "Identifier",
840                  "name": "_$init$_",
841                  "decorators": [],
842                  "loc": {
843                    "start": {
844                      "line": 1,
845                      "column": 1,
846                      "program": null
847                    },
848                    "end": {
849                      "line": 1,
850                      "column": 1,
851                      "program": null
852                    }
853                  }
854                },
855                "generator": false,
856                "async": false,
857                "expression": false,
858                "params": [],
859                "body": {
860                  "type": "BlockStatement",
861                  "statements": [],
862                  "loc": {
863                    "start": {
864                      "line": 1,
865                      "column": 1,
866                      "program": null
867                    },
868                    "end": {
869                      "line": 1,
870                      "column": 1,
871                      "program": null
872                    }
873                  }
874                },
875                "loc": {
876                  "start": {
877                    "line": 1,
878                    "column": 1,
879                    "program": null
880                  },
881                  "end": {
882                    "line": 1,
883                    "column": 1,
884                    "program": null
885                  }
886                }
887              },
888              "loc": {
889                "start": {
890                  "line": 1,
891                  "column": 1,
892                  "program": null
893                },
894                "end": {
895                  "line": 1,
896                  "column": 1,
897                  "program": null
898                }
899              }
900            },
901            "overloads": [],
902            "decorators": [],
903            "loc": {
904              "start": {
905                "line": 1,
906                "column": 1,
907                "program": "launch.ets"
908              },
909              "end": {
910                "line": 1,
911                "column": 1,
912                "program": "launch.ets"
913              }
914            }
915          },
916          {
917            "type": "MethodDefinition",
918            "key": {
919              "type": "Identifier",
920              "name": "bar",
921              "decorators": [],
922              "loc": {
923                "start": {
924                  "line": 29,
925                  "column": 10,
926                  "program": "launch.ets"
927                },
928                "end": {
929                  "line": 29,
930                  "column": 13,
931                  "program": "launch.ets"
932                }
933              }
934            },
935            "kind": "method",
936            "accessibility": "public",
937            "static": true,
938            "optional": false,
939            "computed": false,
940            "value": {
941              "type": "FunctionExpression",
942              "function": {
943                "type": "ScriptFunction",
944                "id": {
945                  "type": "Identifier",
946                  "name": "bar",
947                  "decorators": [],
948                  "loc": {
949                    "start": {
950                      "line": 29,
951                      "column": 10,
952                      "program": "launch.ets"
953                    },
954                    "end": {
955                      "line": 29,
956                      "column": 13,
957                      "program": "launch.ets"
958                    }
959                  }
960                },
961                "generator": false,
962                "async": false,
963                "expression": false,
964                "params": [
965                  {
966                    "type": "ETSParameterExpression",
967                    "name": {
968                      "type": "Identifier",
969                      "name": "x",
970                      "typeAnnotation": {
971                        "type": "ETSPrimitiveType",
972                        "loc": {
973                          "start": {
974                            "line": 29,
975                            "column": 17,
976                            "program": "launch.ets"
977                          },
978                          "end": {
979                            "line": 29,
980                            "column": 20,
981                            "program": "launch.ets"
982                          }
983                        }
984                      },
985                      "decorators": [],
986                      "loc": {
987                        "start": {
988                          "line": 29,
989                          "column": 14,
990                          "program": "launch.ets"
991                        },
992                        "end": {
993                          "line": 29,
994                          "column": 20,
995                          "program": "launch.ets"
996                        }
997                      }
998                    },
999                    "loc": {
1000                      "start": {
1001                        "line": 29,
1002                        "column": 14,
1003                        "program": "launch.ets"
1004                      },
1005                      "end": {
1006                        "line": 29,
1007                        "column": 20,
1008                        "program": "launch.ets"
1009                      }
1010                    }
1011                  },
1012                  {
1013                    "type": "ETSParameterExpression",
1014                    "name": {
1015                      "type": "Identifier",
1016                      "name": "y",
1017                      "typeAnnotation": {
1018                        "type": "ETSPrimitiveType",
1019                        "loc": {
1020                          "start": {
1021                            "line": 29,
1022                            "column": 25,
1023                            "program": "launch.ets"
1024                          },
1025                          "end": {
1026                            "line": 29,
1027                            "column": 30,
1028                            "program": "launch.ets"
1029                          }
1030                        }
1031                      },
1032                      "decorators": [],
1033                      "loc": {
1034                        "start": {
1035                          "line": 29,
1036                          "column": 22,
1037                          "program": "launch.ets"
1038                        },
1039                        "end": {
1040                          "line": 29,
1041                          "column": 30,
1042                          "program": "launch.ets"
1043                        }
1044                      }
1045                    },
1046                    "loc": {
1047                      "start": {
1048                        "line": 29,
1049                        "column": 22,
1050                        "program": "launch.ets"
1051                      },
1052                      "end": {
1053                        "line": 29,
1054                        "column": 30,
1055                        "program": "launch.ets"
1056                      }
1057                    }
1058                  }
1059                ],
1060                "returnType": {
1061                  "type": "ETSTypeReference",
1062                  "part": {
1063                    "type": "ETSTypeReferencePart",
1064                    "name": {
1065                      "type": "Identifier",
1066                      "name": "Object",
1067                      "decorators": [],
1068                      "loc": {
1069                        "start": {
1070                          "line": 29,
1071                          "column": 33,
1072                          "program": "launch.ets"
1073                        },
1074                        "end": {
1075                          "line": 29,
1076                          "column": 39,
1077                          "program": "launch.ets"
1078                        }
1079                      }
1080                    },
1081                    "loc": {
1082                      "start": {
1083                        "line": 29,
1084                        "column": 33,
1085                        "program": "launch.ets"
1086                      },
1087                      "end": {
1088                        "line": 29,
1089                        "column": 41,
1090                        "program": "launch.ets"
1091                      }
1092                    }
1093                  },
1094                  "loc": {
1095                    "start": {
1096                      "line": 29,
1097                      "column": 33,
1098                      "program": "launch.ets"
1099                    },
1100                    "end": {
1101                      "line": 29,
1102                      "column": 41,
1103                      "program": "launch.ets"
1104                    }
1105                  }
1106                },
1107                "body": {
1108                  "type": "BlockStatement",
1109                  "statements": [
1110                    {
1111                      "type": "ReturnStatement",
1112                      "argument": {
1113                        "type": "ETSNewClassInstanceExpression",
1114                        "typeReference": {
1115                          "type": "ETSTypeReference",
1116                          "part": {
1117                            "type": "ETSTypeReferencePart",
1118                            "name": {
1119                              "type": "Identifier",
1120                              "name": "Object",
1121                              "decorators": [],
1122                              "loc": {
1123                                "start": {
1124                                  "line": 30,
1125                                  "column": 14,
1126                                  "program": "launch.ets"
1127                                },
1128                                "end": {
1129                                  "line": 30,
1130                                  "column": 20,
1131                                  "program": "launch.ets"
1132                                }
1133                              }
1134                            },
1135                            "loc": {
1136                              "start": {
1137                                "line": 30,
1138                                "column": 14,
1139                                "program": "launch.ets"
1140                              },
1141                              "end": {
1142                                "line": 30,
1143                                "column": 21,
1144                                "program": "launch.ets"
1145                              }
1146                            }
1147                          },
1148                          "loc": {
1149                            "start": {
1150                              "line": 30,
1151                              "column": 14,
1152                              "program": "launch.ets"
1153                            },
1154                            "end": {
1155                              "line": 30,
1156                              "column": 21,
1157                              "program": "launch.ets"
1158                            }
1159                          }
1160                        },
1161                        "arguments": [],
1162                        "loc": {
1163                          "start": {
1164                            "line": 30,
1165                            "column": 10,
1166                            "program": "launch.ets"
1167                          },
1168                          "end": {
1169                            "line": 30,
1170                            "column": 23,
1171                            "program": "launch.ets"
1172                          }
1173                        }
1174                      },
1175                      "loc": {
1176                        "start": {
1177                          "line": 30,
1178                          "column": 3,
1179                          "program": "launch.ets"
1180                        },
1181                        "end": {
1182                          "line": 30,
1183                          "column": 23,
1184                          "program": "launch.ets"
1185                        }
1186                      }
1187                    }
1188                  ],
1189                  "loc": {
1190                    "start": {
1191                      "line": 29,
1192                      "column": 40,
1193                      "program": "launch.ets"
1194                    },
1195                    "end": {
1196                      "line": 31,
1197                      "column": 2,
1198                      "program": "launch.ets"
1199                    }
1200                  }
1201                },
1202                "loc": {
1203                  "start": {
1204                    "line": 29,
1205                    "column": 10,
1206                    "program": "launch.ets"
1207                  },
1208                  "end": {
1209                    "line": 31,
1210                    "column": 2,
1211                    "program": "launch.ets"
1212                  }
1213                }
1214              },
1215              "loc": {
1216                "start": {
1217                  "line": 29,
1218                  "column": 10,
1219                  "program": "launch.ets"
1220                },
1221                "end": {
1222                  "line": 31,
1223                  "column": 2,
1224                  "program": "launch.ets"
1225                }
1226              }
1227            },
1228            "overloads": [],
1229            "decorators": [],
1230            "loc": {
1231              "start": {
1232                "line": 29,
1233                "column": 1,
1234                "program": "launch.ets"
1235              },
1236              "end": {
1237                "line": 31,
1238                "column": 2,
1239                "program": "launch.ets"
1240              }
1241            }
1242          },
1243          {
1244            "type": "MethodDefinition",
1245            "key": {
1246              "type": "Identifier",
1247              "name": "foo",
1248              "decorators": [],
1249              "loc": {
1250                "start": {
1251                  "line": 33,
1252                  "column": 10,
1253                  "program": "launch.ets"
1254                },
1255                "end": {
1256                  "line": 33,
1257                  "column": 13,
1258                  "program": "launch.ets"
1259                }
1260              }
1261            },
1262            "kind": "method",
1263            "accessibility": "public",
1264            "static": true,
1265            "optional": false,
1266            "computed": false,
1267            "value": {
1268              "type": "FunctionExpression",
1269              "function": {
1270                "type": "ScriptFunction",
1271                "id": {
1272                  "type": "Identifier",
1273                  "name": "foo",
1274                  "decorators": [],
1275                  "loc": {
1276                    "start": {
1277                      "line": 33,
1278                      "column": 10,
1279                      "program": "launch.ets"
1280                    },
1281                    "end": {
1282                      "line": 33,
1283                      "column": 13,
1284                      "program": "launch.ets"
1285                    }
1286                  }
1287                },
1288                "generator": false,
1289                "async": false,
1290                "expression": false,
1291                "params": [
1292                  {
1293                    "type": "ETSParameterExpression",
1294                    "name": {
1295                      "type": "Identifier",
1296                      "name": "x",
1297                      "typeAnnotation": {
1298                        "type": "ETSPrimitiveType",
1299                        "loc": {
1300                          "start": {
1301                            "line": 33,
1302                            "column": 17,
1303                            "program": "launch.ets"
1304                          },
1305                          "end": {
1306                            "line": 33,
1307                            "column": 20,
1308                            "program": "launch.ets"
1309                          }
1310                        }
1311                      },
1312                      "decorators": [],
1313                      "loc": {
1314                        "start": {
1315                          "line": 33,
1316                          "column": 14,
1317                          "program": "launch.ets"
1318                        },
1319                        "end": {
1320                          "line": 33,
1321                          "column": 20,
1322                          "program": "launch.ets"
1323                        }
1324                      }
1325                    },
1326                    "loc": {
1327                      "start": {
1328                        "line": 33,
1329                        "column": 14,
1330                        "program": "launch.ets"
1331                      },
1332                      "end": {
1333                        "line": 33,
1334                        "column": 20,
1335                        "program": "launch.ets"
1336                      }
1337                    }
1338                  }
1339                ],
1340                "returnType": {
1341                  "type": "ETSTypeReference",
1342                  "part": {
1343                    "type": "ETSTypeReferencePart",
1344                    "name": {
1345                      "type": "Identifier",
1346                      "name": "Object",
1347                      "decorators": [],
1348                      "loc": {
1349                        "start": {
1350                          "line": 33,
1351                          "column": 23,
1352                          "program": "launch.ets"
1353                        },
1354                        "end": {
1355                          "line": 33,
1356                          "column": 29,
1357                          "program": "launch.ets"
1358                        }
1359                      }
1360                    },
1361                    "loc": {
1362                      "start": {
1363                        "line": 33,
1364                        "column": 23,
1365                        "program": "launch.ets"
1366                      },
1367                      "end": {
1368                        "line": 33,
1369                        "column": 31,
1370                        "program": "launch.ets"
1371                      }
1372                    }
1373                  },
1374                  "loc": {
1375                    "start": {
1376                      "line": 33,
1377                      "column": 23,
1378                      "program": "launch.ets"
1379                    },
1380                    "end": {
1381                      "line": 33,
1382                      "column": 31,
1383                      "program": "launch.ets"
1384                    }
1385                  }
1386                },
1387                "body": {
1388                  "type": "BlockStatement",
1389                  "statements": [
1390                    {
1391                      "type": "ExpressionStatement",
1392                      "expression": {
1393                        "type": "CallExpression",
1394                        "callee": {
1395                          "type": "Identifier",
1396                          "name": "launch",
1397                          "decorators": [],
1398                          "loc": {
1399                            "start": {
1400                              "line": 34,
1401                              "column": 3,
1402                              "program": "launch.ets"
1403                            },
1404                            "end": {
1405                              "line": 34,
1406                              "column": 9,
1407                              "program": "launch.ets"
1408                            }
1409                          }
1410                        },
1411                        "arguments": [
1412                          {
1413                            "type": "Identifier",
1414                            "name": "bar",
1415                            "decorators": [],
1416                            "loc": {
1417                              "start": {
1418                                "line": 34,
1419                                "column": 43,
1420                                "program": "launch.ets"
1421                              },
1422                              "end": {
1423                                "line": 34,
1424                                "column": 46,
1425                                "program": "launch.ets"
1426                              }
1427                            }
1428                          },
1429                          {
1430                            "type": "Identifier",
1431                            "name": "x",
1432                            "decorators": [],
1433                            "loc": {
1434                              "start": {
1435                                "line": 34,
1436                                "column": 47,
1437                                "program": "launch.ets"
1438                              },
1439                              "end": {
1440                                "line": 34,
1441                                "column": 48,
1442                                "program": "launch.ets"
1443                              }
1444                            }
1445                          },
1446                          {
1447                            "type": "NumberLiteral",
1448                            "value": 30,
1449                            "loc": {
1450                              "start": {
1451                                "line": 34,
1452                                "column": 50,
1453                                "program": "launch.ets"
1454                              },
1455                              "end": {
1456                                "line": 34,
1457                                "column": 52,
1458                                "program": "launch.ets"
1459                              }
1460                            }
1461                          }
1462                        ],
1463                        "optional": false,
1464                        "typeParameters": {
1465                          "type": "TSTypeParameterInstantiation",
1466                          "params": [
1467                            {
1468                              "type": "ETSTypeReference",
1469                              "part": {
1470                                "type": "ETSTypeReferencePart",
1471                                "name": {
1472                                  "type": "Identifier",
1473                                  "name": "Object",
1474                                  "decorators": [],
1475                                  "loc": {
1476                                    "start": {
1477                                      "line": 34,
1478                                      "column": 10,
1479                                      "program": "launch.ets"
1480                                    },
1481                                    "end": {
1482                                      "line": 34,
1483                                      "column": 16,
1484                                      "program": "launch.ets"
1485                                    }
1486                                  }
1487                                },
1488                                "loc": {
1489                                  "start": {
1490                                    "line": 34,
1491                                    "column": 10,
1492                                    "program": "launch.ets"
1493                                  },
1494                                  "end": {
1495                                    "line": 34,
1496                                    "column": 17,
1497                                    "program": "launch.ets"
1498                                  }
1499                                }
1500                              },
1501                              "loc": {
1502                                "start": {
1503                                  "line": 34,
1504                                  "column": 10,
1505                                  "program": "launch.ets"
1506                                },
1507                                "end": {
1508                                  "line": 34,
1509                                  "column": 17,
1510                                  "program": "launch.ets"
1511                                }
1512                              }
1513                            },
1514                            {
1515                              "type": "ETSFunctionType",
1516                              "params": [
1517                                {
1518                                  "type": "ETSParameterExpression",
1519                                  "name": {
1520                                    "type": "Identifier",
1521                                    "name": "i",
1522                                    "typeAnnotation": {
1523                                      "type": "ETSPrimitiveType",
1524                                      "loc": {
1525                                        "start": {
1526                                          "line": 34,
1527                                          "column": 21,
1528                                          "program": "launch.ets"
1529                                        },
1530                                        "end": {
1531                                          "line": 34,
1532                                          "column": 24,
1533                                          "program": "launch.ets"
1534                                        }
1535                                      }
1536                                    },
1537                                    "decorators": [],
1538                                    "loc": {
1539                                      "start": {
1540                                        "line": 34,
1541                                        "column": 19,
1542                                        "program": "launch.ets"
1543                                      },
1544                                      "end": {
1545                                        "line": 34,
1546                                        "column": 24,
1547                                        "program": "launch.ets"
1548                                      }
1549                                    }
1550                                  },
1551                                  "loc": {
1552                                    "start": {
1553                                      "line": 34,
1554                                      "column": 19,
1555                                      "program": "launch.ets"
1556                                    },
1557                                    "end": {
1558                                      "line": 34,
1559                                      "column": 24,
1560                                      "program": "launch.ets"
1561                                    }
1562                                  }
1563                                },
1564                                {
1565                                  "type": "ETSParameterExpression",
1566                                  "name": {
1567                                    "type": "Identifier",
1568                                    "name": "f",
1569                                    "typeAnnotation": {
1570                                      "type": "ETSPrimitiveType",
1571                                      "loc": {
1572                                        "start": {
1573                                          "line": 34,
1574                                          "column": 27,
1575                                          "program": "launch.ets"
1576                                        },
1577                                        "end": {
1578                                          "line": 34,
1579                                          "column": 32,
1580                                          "program": "launch.ets"
1581                                        }
1582                                      }
1583                                    },
1584                                    "decorators": [],
1585                                    "loc": {
1586                                      "start": {
1587                                        "line": 34,
1588                                        "column": 25,
1589                                        "program": "launch.ets"
1590                                      },
1591                                      "end": {
1592                                        "line": 34,
1593                                        "column": 32,
1594                                        "program": "launch.ets"
1595                                      }
1596                                    }
1597                                  },
1598                                  "loc": {
1599                                    "start": {
1600                                      "line": 34,
1601                                      "column": 25,
1602                                      "program": "launch.ets"
1603                                    },
1604                                    "end": {
1605                                      "line": 34,
1606                                      "column": 32,
1607                                      "program": "launch.ets"
1608                                    }
1609                                  }
1610                                }
1611                              ],
1612                              "returnType": {
1613                                "type": "ETSTypeReference",
1614                                "part": {
1615                                  "type": "ETSTypeReferencePart",
1616                                  "name": {
1617                                    "type": "Identifier",
1618                                    "name": "Object",
1619                                    "decorators": [],
1620                                    "loc": {
1621                                      "start": {
1622                                        "line": 34,
1623                                        "column": 35,
1624                                        "program": "launch.ets"
1625                                      },
1626                                      "end": {
1627                                        "line": 34,
1628                                        "column": 41,
1629                                        "program": "launch.ets"
1630                                      }
1631                                    }
1632                                  },
1633                                  "loc": {
1634                                    "start": {
1635                                      "line": 34,
1636                                      "column": 35,
1637                                      "program": "launch.ets"
1638                                    },
1639                                    "end": {
1640                                      "line": 34,
1641                                      "column": 42,
1642                                      "program": "launch.ets"
1643                                    }
1644                                  }
1645                                },
1646                                "loc": {
1647                                  "start": {
1648                                    "line": 34,
1649                                    "column": 35,
1650                                    "program": "launch.ets"
1651                                  },
1652                                  "end": {
1653                                    "line": 34,
1654                                    "column": 42,
1655                                    "program": "launch.ets"
1656                                  }
1657                                }
1658                              },
1659                              "loc": {
1660                                "start": {
1661                                  "line": 34,
1662                                  "column": 18,
1663                                  "program": "launch.ets"
1664                                },
1665                                "end": {
1666                                  "line": 34,
1667                                  "column": 42,
1668                                  "program": "launch.ets"
1669                                }
1670                              }
1671                            }
1672                          ],
1673                          "loc": {
1674                            "start": {
1675                              "line": 34,
1676                              "column": 9,
1677                              "program": "launch.ets"
1678                            },
1679                            "end": {
1680                              "line": 34,
1681                              "column": 42,
1682                              "program": "launch.ets"
1683                            }
1684                          }
1685                        },
1686                        "loc": {
1687                          "start": {
1688                            "line": 34,
1689                            "column": 3,
1690                            "program": "launch.ets"
1691                          },
1692                          "end": {
1693                            "line": 34,
1694                            "column": 53,
1695                            "program": "launch.ets"
1696                          }
1697                        }
1698                      },
1699                      "loc": {
1700                        "start": {
1701                          "line": 34,
1702                          "column": 3,
1703                          "program": "launch.ets"
1704                        },
1705                        "end": {
1706                          "line": 34,
1707                          "column": 54,
1708                          "program": "launch.ets"
1709                        }
1710                      }
1711                    },
1712                    {
1713                      "type": "ReturnStatement",
1714                      "argument": {
1715                        "type": "ETSNewClassInstanceExpression",
1716                        "typeReference": {
1717                          "type": "ETSTypeReference",
1718                          "part": {
1719                            "type": "ETSTypeReferencePart",
1720                            "name": {
1721                              "type": "Identifier",
1722                              "name": "Object",
1723                              "decorators": [],
1724                              "loc": {
1725                                "start": {
1726                                  "line": 35,
1727                                  "column": 14,
1728                                  "program": "launch.ets"
1729                                },
1730                                "end": {
1731                                  "line": 35,
1732                                  "column": 20,
1733                                  "program": "launch.ets"
1734                                }
1735                              }
1736                            },
1737                            "loc": {
1738                              "start": {
1739                                "line": 35,
1740                                "column": 14,
1741                                "program": "launch.ets"
1742                              },
1743                              "end": {
1744                                "line": 35,
1745                                "column": 21,
1746                                "program": "launch.ets"
1747                              }
1748                            }
1749                          },
1750                          "loc": {
1751                            "start": {
1752                              "line": 35,
1753                              "column": 14,
1754                              "program": "launch.ets"
1755                            },
1756                            "end": {
1757                              "line": 35,
1758                              "column": 21,
1759                              "program": "launch.ets"
1760                            }
1761                          }
1762                        },
1763                        "arguments": [],
1764                        "loc": {
1765                          "start": {
1766                            "line": 35,
1767                            "column": 10,
1768                            "program": "launch.ets"
1769                          },
1770                          "end": {
1771                            "line": 35,
1772                            "column": 23,
1773                            "program": "launch.ets"
1774                          }
1775                        }
1776                      },
1777                      "loc": {
1778                        "start": {
1779                          "line": 35,
1780                          "column": 3,
1781                          "program": "launch.ets"
1782                        },
1783                        "end": {
1784                          "line": 35,
1785                          "column": 23,
1786                          "program": "launch.ets"
1787                        }
1788                      }
1789                    }
1790                  ],
1791                  "loc": {
1792                    "start": {
1793                      "line": 33,
1794                      "column": 30,
1795                      "program": "launch.ets"
1796                    },
1797                    "end": {
1798                      "line": 36,
1799                      "column": 2,
1800                      "program": "launch.ets"
1801                    }
1802                  }
1803                },
1804                "loc": {
1805                  "start": {
1806                    "line": 33,
1807                    "column": 10,
1808                    "program": "launch.ets"
1809                  },
1810                  "end": {
1811                    "line": 36,
1812                    "column": 2,
1813                    "program": "launch.ets"
1814                  }
1815                }
1816              },
1817              "loc": {
1818                "start": {
1819                  "line": 33,
1820                  "column": 10,
1821                  "program": "launch.ets"
1822                },
1823                "end": {
1824                  "line": 36,
1825                  "column": 2,
1826                  "program": "launch.ets"
1827                }
1828              }
1829            },
1830            "overloads": [],
1831            "decorators": [],
1832            "loc": {
1833              "start": {
1834                "line": 33,
1835                "column": 1,
1836                "program": "launch.ets"
1837              },
1838              "end": {
1839                "line": 36,
1840                "column": 2,
1841                "program": "launch.ets"
1842              }
1843            }
1844          },
1845          {
1846            "type": "MethodDefinition",
1847            "key": {
1848              "type": "Identifier",
1849              "name": "main",
1850              "decorators": [],
1851              "loc": {
1852                "start": {
1853                  "line": 38,
1854                  "column": 10,
1855                  "program": "launch.ets"
1856                },
1857                "end": {
1858                  "line": 38,
1859                  "column": 14,
1860                  "program": "launch.ets"
1861                }
1862              }
1863            },
1864            "kind": "method",
1865            "accessibility": "public",
1866            "static": true,
1867            "optional": false,
1868            "computed": false,
1869            "value": {
1870              "type": "FunctionExpression",
1871              "function": {
1872                "type": "ScriptFunction",
1873                "id": {
1874                  "type": "Identifier",
1875                  "name": "main",
1876                  "decorators": [],
1877                  "loc": {
1878                    "start": {
1879                      "line": 38,
1880                      "column": 10,
1881                      "program": "launch.ets"
1882                    },
1883                    "end": {
1884                      "line": 38,
1885                      "column": 14,
1886                      "program": "launch.ets"
1887                    }
1888                  }
1889                },
1890                "generator": false,
1891                "async": false,
1892                "expression": false,
1893                "params": [],
1894                "returnType": {
1895                  "type": "ETSPrimitiveType",
1896                  "loc": {
1897                    "start": {
1898                      "line": 38,
1899                      "column": 18,
1900                      "program": "launch.ets"
1901                    },
1902                    "end": {
1903                      "line": 38,
1904                      "column": 22,
1905                      "program": "launch.ets"
1906                    }
1907                  }
1908                },
1909                "body": {
1910                  "type": "BlockStatement",
1911                  "statements": [
1912                    {
1913                      "type": "VariableDeclaration",
1914                      "declarations": [
1915                        {
1916                          "type": "VariableDeclarator",
1917                          "id": {
1918                            "type": "Identifier",
1919                            "name": "p",
1920                            "typeAnnotation": {
1921                              "type": "ETSTypeReference",
1922                              "part": {
1923                                "type": "ETSTypeReferencePart",
1924                                "name": {
1925                                  "type": "Identifier",
1926                                  "name": "Job",
1927                                  "decorators": [],
1928                                  "loc": {
1929                                    "start": {
1930                                      "line": 39,
1931                                      "column": 10,
1932                                      "program": "launch.ets"
1933                                    },
1934                                    "end": {
1935                                      "line": 39,
1936                                      "column": 13,
1937                                      "program": "launch.ets"
1938                                    }
1939                                  }
1940                                },
1941                                "typeParams": {
1942                                  "type": "TSTypeParameterInstantiation",
1943                                  "params": [
1944                                    {
1945                                      "type": "ETSTypeReference",
1946                                      "part": {
1947                                        "type": "ETSTypeReferencePart",
1948                                        "name": {
1949                                          "type": "Identifier",
1950                                          "name": "Object",
1951                                          "decorators": [],
1952                                          "loc": {
1953                                            "start": {
1954                                              "line": 39,
1955                                              "column": 14,
1956                                              "program": "launch.ets"
1957                                            },
1958                                            "end": {
1959                                              "line": 39,
1960                                              "column": 20,
1961                                              "program": "launch.ets"
1962                                            }
1963                                          }
1964                                        },
1965                                        "loc": {
1966                                          "start": {
1967                                            "line": 39,
1968                                            "column": 14,
1969                                            "program": "launch.ets"
1970                                          },
1971                                          "end": {
1972                                            "line": 39,
1973                                            "column": 21,
1974                                            "program": "launch.ets"
1975                                          }
1976                                        }
1977                                      },
1978                                      "loc": {
1979                                        "start": {
1980                                          "line": 39,
1981                                          "column": 14,
1982                                          "program": "launch.ets"
1983                                        },
1984                                        "end": {
1985                                          "line": 39,
1986                                          "column": 21,
1987                                          "program": "launch.ets"
1988                                        }
1989                                      }
1990                                    }
1991                                  ],
1992                                  "loc": {
1993                                    "start": {
1994                                      "line": 39,
1995                                      "column": 13,
1996                                      "program": "launch.ets"
1997                                    },
1998                                    "end": {
1999                                      "line": 39,
2000                                      "column": 21,
2001                                      "program": "launch.ets"
2002                                    }
2003                                  }
2004                                },
2005                                "loc": {
2006                                  "start": {
2007                                    "line": 39,
2008                                    "column": 10,
2009                                    "program": "launch.ets"
2010                                  },
2011                                  "end": {
2012                                    "line": 39,
2013                                    "column": 22,
2014                                    "program": "launch.ets"
2015                                  }
2016                                }
2017                              },
2018                              "loc": {
2019                                "start": {
2020                                  "line": 39,
2021                                  "column": 10,
2022                                  "program": "launch.ets"
2023                                },
2024                                "end": {
2025                                  "line": 39,
2026                                  "column": 22,
2027                                  "program": "launch.ets"
2028                                }
2029                              }
2030                            },
2031                            "decorators": [],
2032                            "loc": {
2033                              "start": {
2034                                "line": 39,
2035                                "column": 7,
2036                                "program": "launch.ets"
2037                              },
2038                              "end": {
2039                                "line": 39,
2040                                "column": 8,
2041                                "program": "launch.ets"
2042                              }
2043                            }
2044                          },
2045                          "init": null,
2046                          "loc": {
2047                            "start": {
2048                              "line": 39,
2049                              "column": 7,
2050                              "program": "launch.ets"
2051                            },
2052                            "end": {
2053                              "line": 39,
2054                              "column": 8,
2055                              "program": "launch.ets"
2056                            }
2057                          }
2058                        }
2059                      ],
2060                      "kind": "let",
2061                      "loc": {
2062                        "start": {
2063                          "line": 39,
2064                          "column": 3,
2065                          "program": "launch.ets"
2066                        },
2067                        "end": {
2068                          "line": 39,
2069                          "column": 22,
2070                          "program": "launch.ets"
2071                        }
2072                      }
2073                    },
2074                    {
2075                      "type": "ExpressionStatement",
2076                      "expression": {
2077                        "type": "AssignmentExpression",
2078                        "operator": "=",
2079                        "left": {
2080                          "type": "Identifier",
2081                          "name": "p",
2082                          "decorators": [],
2083                          "loc": {
2084                            "start": {
2085                              "line": 40,
2086                              "column": 3,
2087                              "program": "launch.ets"
2088                            },
2089                            "end": {
2090                              "line": 40,
2091                              "column": 4,
2092                              "program": "launch.ets"
2093                            }
2094                          }
2095                        },
2096                        "right": {
2097                          "type": "CallExpression",
2098                          "callee": {
2099                            "type": "Identifier",
2100                            "name": "launch",
2101                            "decorators": [],
2102                            "loc": {
2103                              "start": {
2104                                "line": 40,
2105                                "column": 7,
2106                                "program": "launch.ets"
2107                              },
2108                              "end": {
2109                                "line": 40,
2110                                "column": 13,
2111                                "program": "launch.ets"
2112                              }
2113                            }
2114                          },
2115                          "arguments": [
2116                            {
2117                              "type": "Identifier",
2118                              "name": "foo",
2119                              "decorators": [],
2120                              "loc": {
2121                                "start": {
2122                                  "line": 40,
2123                                  "column": 41,
2124                                  "program": "launch.ets"
2125                                },
2126                                "end": {
2127                                  "line": 40,
2128                                  "column": 44,
2129                                  "program": "launch.ets"
2130                                }
2131                              }
2132                            },
2133                            {
2134                              "type": "NumberLiteral",
2135                              "value": 11,
2136                              "loc": {
2137                                "start": {
2138                                  "line": 40,
2139                                  "column": 46,
2140                                  "program": "launch.ets"
2141                                },
2142                                "end": {
2143                                  "line": 40,
2144                                  "column": 48,
2145                                  "program": "launch.ets"
2146                                }
2147                              }
2148                            }
2149                          ],
2150                          "optional": false,
2151                          "typeParameters": {
2152                            "type": "TSTypeParameterInstantiation",
2153                            "params": [
2154                              {
2155                                "type": "ETSTypeReference",
2156                                "part": {
2157                                  "type": "ETSTypeReferencePart",
2158                                  "name": {
2159                                    "type": "Identifier",
2160                                    "name": "Object",
2161                                    "decorators": [],
2162                                    "loc": {
2163                                      "start": {
2164                                        "line": 40,
2165                                        "column": 14,
2166                                        "program": "launch.ets"
2167                                      },
2168                                      "end": {
2169                                        "line": 40,
2170                                        "column": 20,
2171                                        "program": "launch.ets"
2172                                      }
2173                                    }
2174                                  },
2175                                  "loc": {
2176                                    "start": {
2177                                      "line": 40,
2178                                      "column": 14,
2179                                      "program": "launch.ets"
2180                                    },
2181                                    "end": {
2182                                      "line": 40,
2183                                      "column": 21,
2184                                      "program": "launch.ets"
2185                                    }
2186                                  }
2187                                },
2188                                "loc": {
2189                                  "start": {
2190                                    "line": 40,
2191                                    "column": 14,
2192                                    "program": "launch.ets"
2193                                  },
2194                                  "end": {
2195                                    "line": 40,
2196                                    "column": 21,
2197                                    "program": "launch.ets"
2198                                  }
2199                                }
2200                              },
2201                              {
2202                                "type": "ETSFunctionType",
2203                                "params": [
2204                                  {
2205                                    "type": "ETSParameterExpression",
2206                                    "name": {
2207                                      "type": "Identifier",
2208                                      "name": "i",
2209                                      "typeAnnotation": {
2210                                        "type": "ETSPrimitiveType",
2211                                        "loc": {
2212                                          "start": {
2213                                            "line": 40,
2214                                            "column": 25,
2215                                            "program": "launch.ets"
2216                                          },
2217                                          "end": {
2218                                            "line": 40,
2219                                            "column": 28,
2220                                            "program": "launch.ets"
2221                                          }
2222                                        }
2223                                      },
2224                                      "decorators": [],
2225                                      "loc": {
2226                                        "start": {
2227                                          "line": 40,
2228                                          "column": 23,
2229                                          "program": "launch.ets"
2230                                        },
2231                                        "end": {
2232                                          "line": 40,
2233                                          "column": 28,
2234                                          "program": "launch.ets"
2235                                        }
2236                                      }
2237                                    },
2238                                    "loc": {
2239                                      "start": {
2240                                        "line": 40,
2241                                        "column": 23,
2242                                        "program": "launch.ets"
2243                                      },
2244                                      "end": {
2245                                        "line": 40,
2246                                        "column": 28,
2247                                        "program": "launch.ets"
2248                                      }
2249                                    }
2250                                  }
2251                                ],
2252                                "returnType": {
2253                                  "type": "ETSTypeReference",
2254                                  "part": {
2255                                    "type": "ETSTypeReferencePart",
2256                                    "name": {
2257                                      "type": "Identifier",
2258                                      "name": "Object",
2259                                      "decorators": [],
2260                                      "loc": {
2261                                        "start": {
2262                                          "line": 40,
2263                                          "column": 33,
2264                                          "program": "launch.ets"
2265                                        },
2266                                        "end": {
2267                                          "line": 40,
2268                                          "column": 39,
2269                                          "program": "launch.ets"
2270                                        }
2271                                      }
2272                                    },
2273                                    "loc": {
2274                                      "start": {
2275                                        "line": 40,
2276                                        "column": 33,
2277                                        "program": "launch.ets"
2278                                      },
2279                                      "end": {
2280                                        "line": 40,
2281                                        "column": 40,
2282                                        "program": "launch.ets"
2283                                      }
2284                                    }
2285                                  },
2286                                  "loc": {
2287                                    "start": {
2288                                      "line": 40,
2289                                      "column": 33,
2290                                      "program": "launch.ets"
2291                                    },
2292                                    "end": {
2293                                      "line": 40,
2294                                      "column": 40,
2295                                      "program": "launch.ets"
2296                                    }
2297                                  }
2298                                },
2299                                "loc": {
2300                                  "start": {
2301                                    "line": 40,
2302                                    "column": 22,
2303                                    "program": "launch.ets"
2304                                  },
2305                                  "end": {
2306                                    "line": 40,
2307                                    "column": 40,
2308                                    "program": "launch.ets"
2309                                  }
2310                                }
2311                              }
2312                            ],
2313                            "loc": {
2314                              "start": {
2315                                "line": 40,
2316                                "column": 13,
2317                                "program": "launch.ets"
2318                              },
2319                              "end": {
2320                                "line": 40,
2321                                "column": 40,
2322                                "program": "launch.ets"
2323                              }
2324                            }
2325                          },
2326                          "loc": {
2327                            "start": {
2328                              "line": 40,
2329                              "column": 7,
2330                              "program": "launch.ets"
2331                            },
2332                            "end": {
2333                              "line": 40,
2334                              "column": 49,
2335                              "program": "launch.ets"
2336                            }
2337                          }
2338                        },
2339                        "loc": {
2340                          "start": {
2341                            "line": 40,
2342                            "column": 3,
2343                            "program": "launch.ets"
2344                          },
2345                          "end": {
2346                            "line": 40,
2347                            "column": 49,
2348                            "program": "launch.ets"
2349                          }
2350                        }
2351                      },
2352                      "loc": {
2353                        "start": {
2354                          "line": 40,
2355                          "column": 3,
2356                          "program": "launch.ets"
2357                        },
2358                        "end": {
2359                          "line": 40,
2360                          "column": 50,
2361                          "program": "launch.ets"
2362                        }
2363                      }
2364                    },
2365                    {
2366                      "type": "ExpressionStatement",
2367                      "expression": {
2368                        "type": "AssignmentExpression",
2369                        "operator": "=",
2370                        "left": {
2371                          "type": "Identifier",
2372                          "name": "p",
2373                          "decorators": [],
2374                          "loc": {
2375                            "start": {
2376                              "line": 41,
2377                              "column": 3,
2378                              "program": "launch.ets"
2379                            },
2380                            "end": {
2381                              "line": 41,
2382                              "column": 4,
2383                              "program": "launch.ets"
2384                            }
2385                          }
2386                        },
2387                        "right": {
2388                          "type": "CallExpression",
2389                          "callee": {
2390                            "type": "Identifier",
2391                            "name": "launch",
2392                            "decorators": [],
2393                            "loc": {
2394                              "start": {
2395                                "line": 41,
2396                                "column": 7,
2397                                "program": "launch.ets"
2398                              },
2399                              "end": {
2400                                "line": 41,
2401                                "column": 13,
2402                                "program": "launch.ets"
2403                              }
2404                            }
2405                          },
2406                          "arguments": [
2407                            {
2408                              "type": "MemberExpression",
2409                              "object": {
2410                                "type": "Identifier",
2411                                "name": "Example",
2412                                "decorators": [],
2413                                "loc": {
2414                                  "start": {
2415                                    "line": 41,
2416                                    "column": 36,
2417                                    "program": "launch.ets"
2418                                  },
2419                                  "end": {
2420                                    "line": 41,
2421                                    "column": 43,
2422                                    "program": "launch.ets"
2423                                  }
2424                                }
2425                              },
2426                              "property": {
2427                                "type": "Identifier",
2428                                "name": "foobar",
2429                                "decorators": [],
2430                                "loc": {
2431                                  "start": {
2432                                    "line": 41,
2433                                    "column": 44,
2434                                    "program": "launch.ets"
2435                                  },
2436                                  "end": {
2437                                    "line": 41,
2438                                    "column": 50,
2439                                    "program": "launch.ets"
2440                                  }
2441                                }
2442                              },
2443                              "computed": false,
2444                              "optional": false,
2445                              "loc": {
2446                                "start": {
2447                                  "line": 41,
2448                                  "column": 36,
2449                                  "program": "launch.ets"
2450                                },
2451                                "end": {
2452                                  "line": 41,
2453                                  "column": 50,
2454                                  "program": "launch.ets"
2455                                }
2456                              }
2457                            }
2458                          ],
2459                          "optional": false,
2460                          "typeParameters": {
2461                            "type": "TSTypeParameterInstantiation",
2462                            "params": [
2463                              {
2464                                "type": "ETSTypeReference",
2465                                "part": {
2466                                  "type": "ETSTypeReferencePart",
2467                                  "name": {
2468                                    "type": "Identifier",
2469                                    "name": "Object",
2470                                    "decorators": [],
2471                                    "loc": {
2472                                      "start": {
2473                                        "line": 41,
2474                                        "column": 14,
2475                                        "program": "launch.ets"
2476                                      },
2477                                      "end": {
2478                                        "line": 41,
2479                                        "column": 20,
2480                                        "program": "launch.ets"
2481                                      }
2482                                    }
2483                                  },
2484                                  "loc": {
2485                                    "start": {
2486                                      "line": 41,
2487                                      "column": 14,
2488                                      "program": "launch.ets"
2489                                    },
2490                                    "end": {
2491                                      "line": 41,
2492                                      "column": 21,
2493                                      "program": "launch.ets"
2494                                    }
2495                                  }
2496                                },
2497                                "loc": {
2498                                  "start": {
2499                                    "line": 41,
2500                                    "column": 14,
2501                                    "program": "launch.ets"
2502                                  },
2503                                  "end": {
2504                                    "line": 41,
2505                                    "column": 21,
2506                                    "program": "launch.ets"
2507                                  }
2508                                }
2509                              },
2510                              {
2511                                "type": "ETSFunctionType",
2512                                "params": [],
2513                                "returnType": {
2514                                  "type": "ETSTypeReference",
2515                                  "part": {
2516                                    "type": "ETSTypeReferencePart",
2517                                    "name": {
2518                                      "type": "Identifier",
2519                                      "name": "Object",
2520                                      "decorators": [],
2521                                      "loc": {
2522                                        "start": {
2523                                          "line": 41,
2524                                          "column": 28,
2525                                          "program": "launch.ets"
2526                                        },
2527                                        "end": {
2528                                          "line": 41,
2529                                          "column": 34,
2530                                          "program": "launch.ets"
2531                                        }
2532                                      }
2533                                    },
2534                                    "loc": {
2535                                      "start": {
2536                                        "line": 41,
2537                                        "column": 28,
2538                                        "program": "launch.ets"
2539                                      },
2540                                      "end": {
2541                                        "line": 41,
2542                                        "column": 35,
2543                                        "program": "launch.ets"
2544                                      }
2545                                    }
2546                                  },
2547                                  "loc": {
2548                                    "start": {
2549                                      "line": 41,
2550                                      "column": 28,
2551                                      "program": "launch.ets"
2552                                    },
2553                                    "end": {
2554                                      "line": 41,
2555                                      "column": 35,
2556                                      "program": "launch.ets"
2557                                    }
2558                                  }
2559                                },
2560                                "loc": {
2561                                  "start": {
2562                                    "line": 41,
2563                                    "column": 22,
2564                                    "program": "launch.ets"
2565                                  },
2566                                  "end": {
2567                                    "line": 41,
2568                                    "column": 35,
2569                                    "program": "launch.ets"
2570                                  }
2571                                }
2572                              }
2573                            ],
2574                            "loc": {
2575                              "start": {
2576                                "line": 41,
2577                                "column": 13,
2578                                "program": "launch.ets"
2579                              },
2580                              "end": {
2581                                "line": 41,
2582                                "column": 35,
2583                                "program": "launch.ets"
2584                              }
2585                            }
2586                          },
2587                          "loc": {
2588                            "start": {
2589                              "line": 41,
2590                              "column": 7,
2591                              "program": "launch.ets"
2592                            },
2593                            "end": {
2594                              "line": 41,
2595                              "column": 51,
2596                              "program": "launch.ets"
2597                            }
2598                          }
2599                        },
2600                        "loc": {
2601                          "start": {
2602                            "line": 41,
2603                            "column": 3,
2604                            "program": "launch.ets"
2605                          },
2606                          "end": {
2607                            "line": 41,
2608                            "column": 51,
2609                            "program": "launch.ets"
2610                          }
2611                        }
2612                      },
2613                      "loc": {
2614                        "start": {
2615                          "line": 41,
2616                          "column": 3,
2617                          "program": "launch.ets"
2618                        },
2619                        "end": {
2620                          "line": 41,
2621                          "column": 52,
2622                          "program": "launch.ets"
2623                        }
2624                      }
2625                    },
2626                    {
2627                      "type": "ExpressionStatement",
2628                      "expression": {
2629                        "type": "AssignmentExpression",
2630                        "operator": "=",
2631                        "left": {
2632                          "type": "Identifier",
2633                          "name": "p",
2634                          "decorators": [],
2635                          "loc": {
2636                            "start": {
2637                              "line": 42,
2638                              "column": 3,
2639                              "program": "launch.ets"
2640                            },
2641                            "end": {
2642                              "line": 42,
2643                              "column": 4,
2644                              "program": "launch.ets"
2645                            }
2646                          }
2647                        },
2648                        "right": {
2649                          "type": "CallExpression",
2650                          "callee": {
2651                            "type": "Identifier",
2652                            "name": "launch",
2653                            "decorators": [],
2654                            "loc": {
2655                              "start": {
2656                                "line": 42,
2657                                "column": 7,
2658                                "program": "launch.ets"
2659                              },
2660                              "end": {
2661                                "line": 42,
2662                                "column": 13,
2663                                "program": "launch.ets"
2664                              }
2665                            }
2666                          },
2667                          "arguments": [
2668                            {
2669                              "type": "MemberExpression",
2670                              "object": {
2671                                "type": "Identifier",
2672                                "name": "Example",
2673                                "decorators": [],
2674                                "loc": {
2675                                  "start": {
2676                                    "line": 42,
2677                                    "column": 36,
2678                                    "program": "launch.ets"
2679                                  },
2680                                  "end": {
2681                                    "line": 42,
2682                                    "column": 43,
2683                                    "program": "launch.ets"
2684                                  }
2685                                }
2686                              },
2687                              "property": {
2688                                "type": "Identifier",
2689                                "name": "baz",
2690                                "decorators": [],
2691                                "loc": {
2692                                  "start": {
2693                                    "line": 42,
2694                                    "column": 44,
2695                                    "program": "launch.ets"
2696                                  },
2697                                  "end": {
2698                                    "line": 42,
2699                                    "column": 47,
2700                                    "program": "launch.ets"
2701                                  }
2702                                }
2703                              },
2704                              "computed": false,
2705                              "optional": false,
2706                              "loc": {
2707                                "start": {
2708                                  "line": 42,
2709                                  "column": 36,
2710                                  "program": "launch.ets"
2711                                },
2712                                "end": {
2713                                  "line": 42,
2714                                  "column": 47,
2715                                  "program": "launch.ets"
2716                                }
2717                              }
2718                            }
2719                          ],
2720                          "optional": false,
2721                          "typeParameters": {
2722                            "type": "TSTypeParameterInstantiation",
2723                            "params": [
2724                              {
2725                                "type": "ETSTypeReference",
2726                                "part": {
2727                                  "type": "ETSTypeReferencePart",
2728                                  "name": {
2729                                    "type": "Identifier",
2730                                    "name": "Object",
2731                                    "decorators": [],
2732                                    "loc": {
2733                                      "start": {
2734                                        "line": 42,
2735                                        "column": 14,
2736                                        "program": "launch.ets"
2737                                      },
2738                                      "end": {
2739                                        "line": 42,
2740                                        "column": 20,
2741                                        "program": "launch.ets"
2742                                      }
2743                                    }
2744                                  },
2745                                  "loc": {
2746                                    "start": {
2747                                      "line": 42,
2748                                      "column": 14,
2749                                      "program": "launch.ets"
2750                                    },
2751                                    "end": {
2752                                      "line": 42,
2753                                      "column": 21,
2754                                      "program": "launch.ets"
2755                                    }
2756                                  }
2757                                },
2758                                "loc": {
2759                                  "start": {
2760                                    "line": 42,
2761                                    "column": 14,
2762                                    "program": "launch.ets"
2763                                  },
2764                                  "end": {
2765                                    "line": 42,
2766                                    "column": 21,
2767                                    "program": "launch.ets"
2768                                  }
2769                                }
2770                              },
2771                              {
2772                                "type": "ETSFunctionType",
2773                                "params": [],
2774                                "returnType": {
2775                                  "type": "ETSTypeReference",
2776                                  "part": {
2777                                    "type": "ETSTypeReferencePart",
2778                                    "name": {
2779                                      "type": "Identifier",
2780                                      "name": "Object",
2781                                      "decorators": [],
2782                                      "loc": {
2783                                        "start": {
2784                                          "line": 42,
2785                                          "column": 28,
2786                                          "program": "launch.ets"
2787                                        },
2788                                        "end": {
2789                                          "line": 42,
2790                                          "column": 34,
2791                                          "program": "launch.ets"
2792                                        }
2793                                      }
2794                                    },
2795                                    "loc": {
2796                                      "start": {
2797                                        "line": 42,
2798                                        "column": 28,
2799                                        "program": "launch.ets"
2800                                      },
2801                                      "end": {
2802                                        "line": 42,
2803                                        "column": 35,
2804                                        "program": "launch.ets"
2805                                      }
2806                                    }
2807                                  },
2808                                  "loc": {
2809                                    "start": {
2810                                      "line": 42,
2811                                      "column": 28,
2812                                      "program": "launch.ets"
2813                                    },
2814                                    "end": {
2815                                      "line": 42,
2816                                      "column": 35,
2817                                      "program": "launch.ets"
2818                                    }
2819                                  }
2820                                },
2821                                "loc": {
2822                                  "start": {
2823                                    "line": 42,
2824                                    "column": 22,
2825                                    "program": "launch.ets"
2826                                  },
2827                                  "end": {
2828                                    "line": 42,
2829                                    "column": 35,
2830                                    "program": "launch.ets"
2831                                  }
2832                                }
2833                              }
2834                            ],
2835                            "loc": {
2836                              "start": {
2837                                "line": 42,
2838                                "column": 13,
2839                                "program": "launch.ets"
2840                              },
2841                              "end": {
2842                                "line": 42,
2843                                "column": 35,
2844                                "program": "launch.ets"
2845                              }
2846                            }
2847                          },
2848                          "loc": {
2849                            "start": {
2850                              "line": 42,
2851                              "column": 7,
2852                              "program": "launch.ets"
2853                            },
2854                            "end": {
2855                              "line": 42,
2856                              "column": 48,
2857                              "program": "launch.ets"
2858                            }
2859                          }
2860                        },
2861                        "loc": {
2862                          "start": {
2863                            "line": 42,
2864                            "column": 3,
2865                            "program": "launch.ets"
2866                          },
2867                          "end": {
2868                            "line": 42,
2869                            "column": 48,
2870                            "program": "launch.ets"
2871                          }
2872                        }
2873                      },
2874                      "loc": {
2875                        "start": {
2876                          "line": 42,
2877                          "column": 3,
2878                          "program": "launch.ets"
2879                        },
2880                        "end": {
2881                          "line": 42,
2882                          "column": 49,
2883                          "program": "launch.ets"
2884                        }
2885                      }
2886                    },
2887                    {
2888                      "type": "ExpressionStatement",
2889                      "expression": {
2890                        "type": "AssignmentExpression",
2891                        "operator": "=",
2892                        "left": {
2893                          "type": "Identifier",
2894                          "name": "p",
2895                          "decorators": [],
2896                          "loc": {
2897                            "start": {
2898                              "line": 43,
2899                              "column": 3,
2900                              "program": "launch.ets"
2901                            },
2902                            "end": {
2903                              "line": 43,
2904                              "column": 4,
2905                              "program": "launch.ets"
2906                            }
2907                          }
2908                        },
2909                        "right": {
2910                          "type": "CallExpression",
2911                          "callee": {
2912                            "type": "Identifier",
2913                            "name": "launch",
2914                            "decorators": [],
2915                            "loc": {
2916                              "start": {
2917                                "line": 43,
2918                                "column": 7,
2919                                "program": "launch.ets"
2920                              },
2921                              "end": {
2922                                "line": 43,
2923                                "column": 13,
2924                                "program": "launch.ets"
2925                              }
2926                            }
2927                          },
2928                          "arguments": [
2929                            {
2930                              "type": "MemberExpression",
2931                              "object": {
2932                                "type": "Identifier",
2933                                "name": "Example",
2934                                "decorators": [],
2935                                "loc": {
2936                                  "start": {
2937                                    "line": 43,
2938                                    "column": 36,
2939                                    "program": "launch.ets"
2940                                  },
2941                                  "end": {
2942                                    "line": 43,
2943                                    "column": 43,
2944                                    "program": "launch.ets"
2945                                  }
2946                                }
2947                              },
2948                              "property": {
2949                                "type": "Identifier",
2950                                "name": "baz",
2951                                "decorators": [],
2952                                "loc": {
2953                                  "start": {
2954                                    "line": 43,
2955                                    "column": 44,
2956                                    "program": "launch.ets"
2957                                  },
2958                                  "end": {
2959                                    "line": 43,
2960                                    "column": 47,
2961                                    "program": "launch.ets"
2962                                  }
2963                                }
2964                              },
2965                              "computed": false,
2966                              "optional": false,
2967                              "loc": {
2968                                "start": {
2969                                  "line": 43,
2970                                  "column": 36,
2971                                  "program": "launch.ets"
2972                                },
2973                                "end": {
2974                                  "line": 43,
2975                                  "column": 47,
2976                                  "program": "launch.ets"
2977                                }
2978                              }
2979                            }
2980                          ],
2981                          "optional": false,
2982                          "typeParameters": {
2983                            "type": "TSTypeParameterInstantiation",
2984                            "params": [
2985                              {
2986                                "type": "ETSTypeReference",
2987                                "part": {
2988                                  "type": "ETSTypeReferencePart",
2989                                  "name": {
2990                                    "type": "Identifier",
2991                                    "name": "Object",
2992                                    "decorators": [],
2993                                    "loc": {
2994                                      "start": {
2995                                        "line": 43,
2996                                        "column": 14,
2997                                        "program": "launch.ets"
2998                                      },
2999                                      "end": {
3000                                        "line": 43,
3001                                        "column": 20,
3002                                        "program": "launch.ets"
3003                                      }
3004                                    }
3005                                  },
3006                                  "loc": {
3007                                    "start": {
3008                                      "line": 43,
3009                                      "column": 14,
3010                                      "program": "launch.ets"
3011                                    },
3012                                    "end": {
3013                                      "line": 43,
3014                                      "column": 21,
3015                                      "program": "launch.ets"
3016                                    }
3017                                  }
3018                                },
3019                                "loc": {
3020                                  "start": {
3021                                    "line": 43,
3022                                    "column": 14,
3023                                    "program": "launch.ets"
3024                                  },
3025                                  "end": {
3026                                    "line": 43,
3027                                    "column": 21,
3028                                    "program": "launch.ets"
3029                                  }
3030                                }
3031                              },
3032                              {
3033                                "type": "ETSFunctionType",
3034                                "params": [],
3035                                "returnType": {
3036                                  "type": "ETSTypeReference",
3037                                  "part": {
3038                                    "type": "ETSTypeReferencePart",
3039                                    "name": {
3040                                      "type": "Identifier",
3041                                      "name": "Object",
3042                                      "decorators": [],
3043                                      "loc": {
3044                                        "start": {
3045                                          "line": 43,
3046                                          "column": 28,
3047                                          "program": "launch.ets"
3048                                        },
3049                                        "end": {
3050                                          "line": 43,
3051                                          "column": 34,
3052                                          "program": "launch.ets"
3053                                        }
3054                                      }
3055                                    },
3056                                    "loc": {
3057                                      "start": {
3058                                        "line": 43,
3059                                        "column": 28,
3060                                        "program": "launch.ets"
3061                                      },
3062                                      "end": {
3063                                        "line": 43,
3064                                        "column": 35,
3065                                        "program": "launch.ets"
3066                                      }
3067                                    }
3068                                  },
3069                                  "loc": {
3070                                    "start": {
3071                                      "line": 43,
3072                                      "column": 28,
3073                                      "program": "launch.ets"
3074                                    },
3075                                    "end": {
3076                                      "line": 43,
3077                                      "column": 35,
3078                                      "program": "launch.ets"
3079                                    }
3080                                  }
3081                                },
3082                                "loc": {
3083                                  "start": {
3084                                    "line": 43,
3085                                    "column": 22,
3086                                    "program": "launch.ets"
3087                                  },
3088                                  "end": {
3089                                    "line": 43,
3090                                    "column": 35,
3091                                    "program": "launch.ets"
3092                                  }
3093                                }
3094                              }
3095                            ],
3096                            "loc": {
3097                              "start": {
3098                                "line": 43,
3099                                "column": 13,
3100                                "program": "launch.ets"
3101                              },
3102                              "end": {
3103                                "line": 43,
3104                                "column": 35,
3105                                "program": "launch.ets"
3106                              }
3107                            }
3108                          },
3109                          "loc": {
3110                            "start": {
3111                              "line": 43,
3112                              "column": 7,
3113                              "program": "launch.ets"
3114                            },
3115                            "end": {
3116                              "line": 43,
3117                              "column": 48,
3118                              "program": "launch.ets"
3119                            }
3120                          }
3121                        },
3122                        "loc": {
3123                          "start": {
3124                            "line": 43,
3125                            "column": 3,
3126                            "program": "launch.ets"
3127                          },
3128                          "end": {
3129                            "line": 43,
3130                            "column": 48,
3131                            "program": "launch.ets"
3132                          }
3133                        }
3134                      },
3135                      "loc": {
3136                        "start": {
3137                          "line": 43,
3138                          "column": 3,
3139                          "program": "launch.ets"
3140                        },
3141                        "end": {
3142                          "line": 43,
3143                          "column": 49,
3144                          "program": "launch.ets"
3145                        }
3146                      }
3147                    },
3148                    {
3149                      "type": "VariableDeclaration",
3150                      "declarations": [
3151                        {
3152                          "type": "VariableDeclarator",
3153                          "id": {
3154                            "type": "Identifier",
3155                            "name": "foo_ref",
3156                            "typeAnnotation": {
3157                              "type": "ETSFunctionType",
3158                              "params": [
3159                                {
3160                                  "type": "ETSParameterExpression",
3161                                  "name": {
3162                                    "type": "Identifier",
3163                                    "name": "x",
3164                                    "typeAnnotation": {
3165                                      "type": "ETSPrimitiveType",
3166                                      "loc": {
3167                                        "start": {
3168                                          "line": 44,
3169                                          "column": 20,
3170                                          "program": "launch.ets"
3171                                        },
3172                                        "end": {
3173                                          "line": 44,
3174                                          "column": 23,
3175                                          "program": "launch.ets"
3176                                        }
3177                                      }
3178                                    },
3179                                    "decorators": [],
3180                                    "loc": {
3181                                      "start": {
3182                                        "line": 44,
3183                                        "column": 17,
3184                                        "program": "launch.ets"
3185                                      },
3186                                      "end": {
3187                                        "line": 44,
3188                                        "column": 23,
3189                                        "program": "launch.ets"
3190                                      }
3191                                    }
3192                                  },
3193                                  "loc": {
3194                                    "start": {
3195                                      "line": 44,
3196                                      "column": 17,
3197                                      "program": "launch.ets"
3198                                    },
3199                                    "end": {
3200                                      "line": 44,
3201                                      "column": 23,
3202                                      "program": "launch.ets"
3203                                    }
3204                                  }
3205                                }
3206                              ],
3207                              "returnType": {
3208                                "type": "ETSTypeReference",
3209                                "part": {
3210                                  "type": "ETSTypeReferencePart",
3211                                  "name": {
3212                                    "type": "Identifier",
3213                                    "name": "Object",
3214                                    "decorators": [],
3215                                    "loc": {
3216                                      "start": {
3217                                        "line": 44,
3218                                        "column": 28,
3219                                        "program": "launch.ets"
3220                                      },
3221                                      "end": {
3222                                        "line": 44,
3223                                        "column": 34,
3224                                        "program": "launch.ets"
3225                                      }
3226                                    }
3227                                  },
3228                                  "loc": {
3229                                    "start": {
3230                                      "line": 44,
3231                                      "column": 28,
3232                                      "program": "launch.ets"
3233                                    },
3234                                    "end": {
3235                                      "line": 44,
3236                                      "column": 36,
3237                                      "program": "launch.ets"
3238                                    }
3239                                  }
3240                                },
3241                                "loc": {
3242                                  "start": {
3243                                    "line": 44,
3244                                    "column": 28,
3245                                    "program": "launch.ets"
3246                                  },
3247                                  "end": {
3248                                    "line": 44,
3249                                    "column": 36,
3250                                    "program": "launch.ets"
3251                                  }
3252                                }
3253                              },
3254                              "loc": {
3255                                "start": {
3256                                  "line": 44,
3257                                  "column": 16,
3258                                  "program": "launch.ets"
3259                                },
3260                                "end": {
3261                                  "line": 44,
3262                                  "column": 36,
3263                                  "program": "launch.ets"
3264                                }
3265                              }
3266                            },
3267                            "decorators": [],
3268                            "loc": {
3269                              "start": {
3270                                "line": 44,
3271                                "column": 7,
3272                                "program": "launch.ets"
3273                              },
3274                              "end": {
3275                                "line": 44,
3276                                "column": 14,
3277                                "program": "launch.ets"
3278                              }
3279                            }
3280                          },
3281                          "init": {
3282                            "type": "Identifier",
3283                            "name": "foo",
3284                            "decorators": [],
3285                            "loc": {
3286                              "start": {
3287                                "line": 44,
3288                                "column": 37,
3289                                "program": "launch.ets"
3290                              },
3291                              "end": {
3292                                "line": 44,
3293                                "column": 40,
3294                                "program": "launch.ets"
3295                              }
3296                            }
3297                          },
3298                          "loc": {
3299                            "start": {
3300                              "line": 44,
3301                              "column": 7,
3302                              "program": "launch.ets"
3303                            },
3304                            "end": {
3305                              "line": 44,
3306                              "column": 40,
3307                              "program": "launch.ets"
3308                            }
3309                          }
3310                        }
3311                      ],
3312                      "kind": "let",
3313                      "loc": {
3314                        "start": {
3315                          "line": 44,
3316                          "column": 3,
3317                          "program": "launch.ets"
3318                        },
3319                        "end": {
3320                          "line": 44,
3321                          "column": 41,
3322                          "program": "launch.ets"
3323                        }
3324                      }
3325                    },
3326                    {
3327                      "type": "ExpressionStatement",
3328                      "expression": {
3329                        "type": "AssignmentExpression",
3330                        "operator": "=",
3331                        "left": {
3332                          "type": "Identifier",
3333                          "name": "p",
3334                          "decorators": [],
3335                          "loc": {
3336                            "start": {
3337                              "line": 45,
3338                              "column": 3,
3339                              "program": "launch.ets"
3340                            },
3341                            "end": {
3342                              "line": 45,
3343                              "column": 4,
3344                              "program": "launch.ets"
3345                            }
3346                          }
3347                        },
3348                        "right": {
3349                          "type": "CallExpression",
3350                          "callee": {
3351                            "type": "Identifier",
3352                            "name": "launch",
3353                            "decorators": [],
3354                            "loc": {
3355                              "start": {
3356                                "line": 45,
3357                                "column": 7,
3358                                "program": "launch.ets"
3359                              },
3360                              "end": {
3361                                "line": 45,
3362                                "column": 13,
3363                                "program": "launch.ets"
3364                              }
3365                            }
3366                          },
3367                          "arguments": [
3368                            {
3369                              "type": "Identifier",
3370                              "name": "foo_ref",
3371                              "decorators": [],
3372                              "loc": {
3373                                "start": {
3374                                  "line": 45,
3375                                  "column": 41,
3376                                  "program": "launch.ets"
3377                                },
3378                                "end": {
3379                                  "line": 45,
3380                                  "column": 48,
3381                                  "program": "launch.ets"
3382                                }
3383                              }
3384                            },
3385                            {
3386                              "type": "NumberLiteral",
3387                              "value": 5,
3388                              "loc": {
3389                                "start": {
3390                                  "line": 45,
3391                                  "column": 50,
3392                                  "program": "launch.ets"
3393                                },
3394                                "end": {
3395                                  "line": 45,
3396                                  "column": 51,
3397                                  "program": "launch.ets"
3398                                }
3399                              }
3400                            }
3401                          ],
3402                          "optional": false,
3403                          "typeParameters": {
3404                            "type": "TSTypeParameterInstantiation",
3405                            "params": [
3406                              {
3407                                "type": "ETSTypeReference",
3408                                "part": {
3409                                  "type": "ETSTypeReferencePart",
3410                                  "name": {
3411                                    "type": "Identifier",
3412                                    "name": "Object",
3413                                    "decorators": [],
3414                                    "loc": {
3415                                      "start": {
3416                                        "line": 45,
3417                                        "column": 14,
3418                                        "program": "launch.ets"
3419                                      },
3420                                      "end": {
3421                                        "line": 45,
3422                                        "column": 20,
3423                                        "program": "launch.ets"
3424                                      }
3425                                    }
3426                                  },
3427                                  "loc": {
3428                                    "start": {
3429                                      "line": 45,
3430                                      "column": 14,
3431                                      "program": "launch.ets"
3432                                    },
3433                                    "end": {
3434                                      "line": 45,
3435                                      "column": 21,
3436                                      "program": "launch.ets"
3437                                    }
3438                                  }
3439                                },
3440                                "loc": {
3441                                  "start": {
3442                                    "line": 45,
3443                                    "column": 14,
3444                                    "program": "launch.ets"
3445                                  },
3446                                  "end": {
3447                                    "line": 45,
3448                                    "column": 21,
3449                                    "program": "launch.ets"
3450                                  }
3451                                }
3452                              },
3453                              {
3454                                "type": "ETSFunctionType",
3455                                "params": [
3456                                  {
3457                                    "type": "ETSParameterExpression",
3458                                    "name": {
3459                                      "type": "Identifier",
3460                                      "name": "i",
3461                                      "typeAnnotation": {
3462                                        "type": "ETSPrimitiveType",
3463                                        "loc": {
3464                                          "start": {
3465                                            "line": 45,
3466                                            "column": 25,
3467                                            "program": "launch.ets"
3468                                          },
3469                                          "end": {
3470                                            "line": 45,
3471                                            "column": 28,
3472                                            "program": "launch.ets"
3473                                          }
3474                                        }
3475                                      },
3476                                      "decorators": [],
3477                                      "loc": {
3478                                        "start": {
3479                                          "line": 45,
3480                                          "column": 23,
3481                                          "program": "launch.ets"
3482                                        },
3483                                        "end": {
3484                                          "line": 45,
3485                                          "column": 28,
3486                                          "program": "launch.ets"
3487                                        }
3488                                      }
3489                                    },
3490                                    "loc": {
3491                                      "start": {
3492                                        "line": 45,
3493                                        "column": 23,
3494                                        "program": "launch.ets"
3495                                      },
3496                                      "end": {
3497                                        "line": 45,
3498                                        "column": 28,
3499                                        "program": "launch.ets"
3500                                      }
3501                                    }
3502                                  }
3503                                ],
3504                                "returnType": {
3505                                  "type": "ETSTypeReference",
3506                                  "part": {
3507                                    "type": "ETSTypeReferencePart",
3508                                    "name": {
3509                                      "type": "Identifier",
3510                                      "name": "Object",
3511                                      "decorators": [],
3512                                      "loc": {
3513                                        "start": {
3514                                          "line": 45,
3515                                          "column": 33,
3516                                          "program": "launch.ets"
3517                                        },
3518                                        "end": {
3519                                          "line": 45,
3520                                          "column": 39,
3521                                          "program": "launch.ets"
3522                                        }
3523                                      }
3524                                    },
3525                                    "loc": {
3526                                      "start": {
3527                                        "line": 45,
3528                                        "column": 33,
3529                                        "program": "launch.ets"
3530                                      },
3531                                      "end": {
3532                                        "line": 45,
3533                                        "column": 40,
3534                                        "program": "launch.ets"
3535                                      }
3536                                    }
3537                                  },
3538                                  "loc": {
3539                                    "start": {
3540                                      "line": 45,
3541                                      "column": 33,
3542                                      "program": "launch.ets"
3543                                    },
3544                                    "end": {
3545                                      "line": 45,
3546                                      "column": 40,
3547                                      "program": "launch.ets"
3548                                    }
3549                                  }
3550                                },
3551                                "loc": {
3552                                  "start": {
3553                                    "line": 45,
3554                                    "column": 22,
3555                                    "program": "launch.ets"
3556                                  },
3557                                  "end": {
3558                                    "line": 45,
3559                                    "column": 40,
3560                                    "program": "launch.ets"
3561                                  }
3562                                }
3563                              }
3564                            ],
3565                            "loc": {
3566                              "start": {
3567                                "line": 45,
3568                                "column": 13,
3569                                "program": "launch.ets"
3570                              },
3571                              "end": {
3572                                "line": 45,
3573                                "column": 40,
3574                                "program": "launch.ets"
3575                              }
3576                            }
3577                          },
3578                          "loc": {
3579                            "start": {
3580                              "line": 45,
3581                              "column": 7,
3582                              "program": "launch.ets"
3583                            },
3584                            "end": {
3585                              "line": 45,
3586                              "column": 52,
3587                              "program": "launch.ets"
3588                            }
3589                          }
3590                        },
3591                        "loc": {
3592                          "start": {
3593                            "line": 45,
3594                            "column": 3,
3595                            "program": "launch.ets"
3596                          },
3597                          "end": {
3598                            "line": 45,
3599                            "column": 52,
3600                            "program": "launch.ets"
3601                          }
3602                        }
3603                      },
3604                      "loc": {
3605                        "start": {
3606                          "line": 45,
3607                          "column": 3,
3608                          "program": "launch.ets"
3609                        },
3610                        "end": {
3611                          "line": 45,
3612                          "column": 53,
3613                          "program": "launch.ets"
3614                        }
3615                      }
3616                    },
3617                    {
3618                      "type": "VariableDeclaration",
3619                      "declarations": [
3620                        {
3621                          "type": "VariableDeclarator",
3622                          "id": {
3623                            "type": "Identifier",
3624                            "name": "lambda",
3625                            "typeAnnotation": {
3626                              "type": "ETSFunctionType",
3627                              "params": [],
3628                              "returnType": {
3629                                "type": "ETSPrimitiveType",
3630                                "loc": {
3631                                  "start": {
3632                                    "line": 46,
3633                                    "column": 21,
3634                                    "program": "launch.ets"
3635                                  },
3636                                  "end": {
3637                                    "line": 46,
3638                                    "column": 25,
3639                                    "program": "launch.ets"
3640                                  }
3641                                }
3642                              },
3643                              "loc": {
3644                                "start": {
3645                                  "line": 46,
3646                                  "column": 15,
3647                                  "program": "launch.ets"
3648                                },
3649                                "end": {
3650                                  "line": 46,
3651                                  "column": 25,
3652                                  "program": "launch.ets"
3653                                }
3654                              }
3655                            },
3656                            "decorators": [],
3657                            "loc": {
3658                              "start": {
3659                                "line": 46,
3660                                "column": 7,
3661                                "program": "launch.ets"
3662                              },
3663                              "end": {
3664                                "line": 46,
3665                                "column": 13,
3666                                "program": "launch.ets"
3667                              }
3668                            }
3669                          },
3670                          "init": {
3671                            "type": "ArrowFunctionExpression",
3672                            "function": {
3673                              "type": "ScriptFunction",
3674                              "id": null,
3675                              "generator": false,
3676                              "async": false,
3677                              "expression": false,
3678                              "params": [],
3679                              "returnType": {
3680                                "type": "ETSPrimitiveType",
3681                                "loc": {
3682                                  "start": {
3683                                    "line": 46,
3684                                    "column": 32,
3685                                    "program": "launch.ets"
3686                                  },
3687                                  "end": {
3688                                    "line": 46,
3689                                    "column": 36,
3690                                    "program": "launch.ets"
3691                                  }
3692                                }
3693                              },
3694                              "body": {
3695                                "type": "BlockStatement",
3696                                "statements": [
3697                                  {
3698                                    "type": "ReturnStatement",
3699                                    "argument": null,
3700                                    "loc": {
3701                                      "start": {
3702                                        "line": 46,
3703                                        "column": 42,
3704                                        "program": "launch.ets"
3705                                      },
3706                                      "end": {
3707                                        "line": 46,
3708                                        "column": 49,
3709                                        "program": "launch.ets"
3710                                      }
3711                                    }
3712                                  }
3713                                ],
3714                                "loc": {
3715                                  "start": {
3716                                    "line": 46,
3717                                    "column": 40,
3718                                    "program": "launch.ets"
3719                                  },
3720                                  "end": {
3721                                    "line": 46,
3722                                    "column": 51,
3723                                    "program": "launch.ets"
3724                                  }
3725                                }
3726                              },
3727                              "loc": {
3728                                "start": {
3729                                  "line": 46,
3730                                  "column": 28,
3731                                  "program": "launch.ets"
3732                                },
3733                                "end": {
3734                                  "line": 46,
3735                                  "column": 51,
3736                                  "program": "launch.ets"
3737                                }
3738                              }
3739                            },
3740                            "loc": {
3741                              "start": {
3742                                "line": 46,
3743                                "column": 28,
3744                                "program": "launch.ets"
3745                              },
3746                              "end": {
3747                                "line": 46,
3748                                "column": 51,
3749                                "program": "launch.ets"
3750                              }
3751                            }
3752                          },
3753                          "loc": {
3754                            "start": {
3755                              "line": 46,
3756                              "column": 7,
3757                              "program": "launch.ets"
3758                            },
3759                            "end": {
3760                              "line": 46,
3761                              "column": 51,
3762                              "program": "launch.ets"
3763                            }
3764                          }
3765                        }
3766                      ],
3767                      "kind": "let",
3768                      "loc": {
3769                        "start": {
3770                          "line": 46,
3771                          "column": 3,
3772                          "program": "launch.ets"
3773                        },
3774                        "end": {
3775                          "line": 46,
3776                          "column": 51,
3777                          "program": "launch.ets"
3778                        }
3779                      }
3780                    },
3781                    {
3782                      "type": "ExpressionStatement",
3783                      "expression": {
3784                        "type": "CallExpression",
3785                        "callee": {
3786                          "type": "Identifier",
3787                          "name": "launch",
3788                          "decorators": [],
3789                          "loc": {
3790                            "start": {
3791                              "line": 47,
3792                              "column": 3,
3793                              "program": "launch.ets"
3794                            },
3795                            "end": {
3796                              "line": 47,
3797                              "column": 9,
3798                              "program": "launch.ets"
3799                            }
3800                          }
3801                        },
3802                        "arguments": [
3803                          {
3804                            "type": "Identifier",
3805                            "name": "lambda",
3806                            "decorators": [],
3807                            "loc": {
3808                              "start": {
3809                                "line": 47,
3810                                "column": 26,
3811                                "program": "launch.ets"
3812                              },
3813                              "end": {
3814                                "line": 47,
3815                                "column": 32,
3816                                "program": "launch.ets"
3817                              }
3818                            }
3819                          }
3820                        ],
3821                        "optional": false,
3822                        "typeParameters": {
3823                          "type": "TSTypeParameterInstantiation",
3824                          "params": [
3825                            {
3826                              "type": "ETSPrimitiveType",
3827                              "loc": {
3828                                "start": {
3829                                  "line": 47,
3830                                  "column": 10,
3831                                  "program": "launch.ets"
3832                                },
3833                                "end": {
3834                                  "line": 47,
3835                                  "column": 14,
3836                                  "program": "launch.ets"
3837                                }
3838                              }
3839                            },
3840                            {
3841                              "type": "ETSFunctionType",
3842                              "params": [],
3843                              "returnType": {
3844                                "type": "ETSPrimitiveType",
3845                                "loc": {
3846                                  "start": {
3847                                    "line": 47,
3848                                    "column": 20,
3849                                    "program": "launch.ets"
3850                                  },
3851                                  "end": {
3852                                    "line": 47,
3853                                    "column": 24,
3854                                    "program": "launch.ets"
3855                                  }
3856                                }
3857                              },
3858                              "loc": {
3859                                "start": {
3860                                  "line": 47,
3861                                  "column": 16,
3862                                  "program": "launch.ets"
3863                                },
3864                                "end": {
3865                                  "line": 47,
3866                                  "column": 24,
3867                                  "program": "launch.ets"
3868                                }
3869                              }
3870                            }
3871                          ],
3872                          "loc": {
3873                            "start": {
3874                              "line": 47,
3875                              "column": 9,
3876                              "program": "launch.ets"
3877                            },
3878                            "end": {
3879                              "line": 47,
3880                              "column": 25,
3881                              "program": "launch.ets"
3882                            }
3883                          }
3884                        },
3885                        "loc": {
3886                          "start": {
3887                            "line": 47,
3888                            "column": 3,
3889                            "program": "launch.ets"
3890                          },
3891                          "end": {
3892                            "line": 47,
3893                            "column": 33,
3894                            "program": "launch.ets"
3895                          }
3896                        }
3897                      },
3898                      "loc": {
3899                        "start": {
3900                          "line": 47,
3901                          "column": 3,
3902                          "program": "launch.ets"
3903                        },
3904                        "end": {
3905                          "line": 47,
3906                          "column": 34,
3907                          "program": "launch.ets"
3908                        }
3909                      }
3910                    }
3911                  ],
3912                  "loc": {
3913                    "start": {
3914                      "line": 38,
3915                      "column": 23,
3916                      "program": "launch.ets"
3917                    },
3918                    "end": {
3919                      "line": 48,
3920                      "column": 2,
3921                      "program": "launch.ets"
3922                    }
3923                  }
3924                },
3925                "loc": {
3926                  "start": {
3927                    "line": 38,
3928                    "column": 10,
3929                    "program": "launch.ets"
3930                  },
3931                  "end": {
3932                    "line": 48,
3933                    "column": 2,
3934                    "program": "launch.ets"
3935                  }
3936                }
3937              },
3938              "loc": {
3939                "start": {
3940                  "line": 38,
3941                  "column": 10,
3942                  "program": "launch.ets"
3943                },
3944                "end": {
3945                  "line": 48,
3946                  "column": 2,
3947                  "program": "launch.ets"
3948                }
3949              }
3950            },
3951            "overloads": [],
3952            "decorators": [],
3953            "loc": {
3954              "start": {
3955                "line": 38,
3956                "column": 1,
3957                "program": "launch.ets"
3958              },
3959              "end": {
3960                "line": 48,
3961                "column": 2,
3962                "program": "launch.ets"
3963              }
3964            }
3965          }
3966        ],
3967        "loc": {
3968          "start": {
3969            "line": 1,
3970            "column": 1,
3971            "program": "launch.ets"
3972          },
3973          "end": {
3974            "line": 1,
3975            "column": 1,
3976            "program": "launch.ets"
3977          }
3978        }
3979      },
3980      "loc": {
3981        "start": {
3982          "line": 1,
3983          "column": 1,
3984          "program": "launch.ets"
3985        },
3986        "end": {
3987          "line": 1,
3988          "column": 1,
3989          "program": "launch.ets"
3990        }
3991      }
3992    }
3993  ],
3994  "loc": {
3995    "start": {
3996      "line": 1,
3997      "column": 1,
3998      "program": "launch.ets"
3999    },
4000    "end": {
4001      "line": 49,
4002      "column": 1,
4003      "program": "launch.ets"
4004    }
4005  }
4006}
4007