1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "ClassDeclaration",
6      "definition": {
7        "id": {
8          "type": "Identifier",
9          "name": "ETSGLOBAL",
10          "decorators": [],
11          "loc": {
12            "start": {
13              "line": 1,
14              "column": 1
15            },
16            "end": {
17              "line": 1,
18              "column": 1
19            }
20          }
21        },
22        "superClass": null,
23        "implements": [],
24        "body": [
25          {
26            "type": "MethodDefinition",
27            "key": {
28              "type": "Identifier",
29              "name": "_$init$_",
30              "decorators": [],
31              "loc": {
32                "start": {
33                  "line": 1,
34                  "column": 1
35                },
36                "end": {
37                  "line": 1,
38                  "column": 1
39                }
40              }
41            },
42            "kind": "method",
43            "accessibility": "public",
44            "static": true,
45            "optional": false,
46            "computed": false,
47            "value": {
48              "type": "FunctionExpression",
49              "function": {
50                "type": "ScriptFunction",
51                "id": {
52                  "type": "Identifier",
53                  "name": "_$init$_",
54                  "decorators": [],
55                  "loc": {
56                    "start": {
57                      "line": 1,
58                      "column": 1
59                    },
60                    "end": {
61                      "line": 1,
62                      "column": 1
63                    }
64                  }
65                },
66                "generator": false,
67                "async": false,
68                "expression": false,
69                "params": [],
70                "body": {
71                  "type": "BlockStatement",
72                  "statements": [],
73                  "loc": {
74                    "start": {
75                      "line": 1,
76                      "column": 1
77                    },
78                    "end": {
79                      "line": 1,
80                      "column": 1
81                    }
82                  }
83                },
84                "loc": {
85                  "start": {
86                    "line": 1,
87                    "column": 1
88                  },
89                  "end": {
90                    "line": 1,
91                    "column": 1
92                  }
93                }
94              },
95              "loc": {
96                "start": {
97                  "line": 1,
98                  "column": 1
99                },
100                "end": {
101                  "line": 1,
102                  "column": 1
103                }
104              }
105            },
106            "overloads": [],
107            "decorators": [],
108            "loc": {
109              "start": {
110                "line": 1,
111                "column": 1
112              },
113              "end": {
114                "line": 1,
115                "column": 1
116              }
117            }
118          },
119          {
120            "type": "MethodDefinition",
121            "key": {
122              "type": "Identifier",
123              "name": "goo",
124              "decorators": [],
125              "loc": {
126                "start": {
127                  "line": 16,
128                  "column": 10
129                },
130                "end": {
131                  "line": 16,
132                  "column": 13
133                }
134              }
135            },
136            "kind": "method",
137            "accessibility": "public",
138            "static": true,
139            "optional": false,
140            "computed": false,
141            "value": {
142              "type": "FunctionExpression",
143              "function": {
144                "type": "ScriptFunction",
145                "id": {
146                  "type": "Identifier",
147                  "name": "goo",
148                  "decorators": [],
149                  "loc": {
150                    "start": {
151                      "line": 16,
152                      "column": 10
153                    },
154                    "end": {
155                      "line": 16,
156                      "column": 13
157                    }
158                  }
159                },
160                "generator": false,
161                "async": false,
162                "expression": false,
163                "params": [],
164                "body": {
165                  "type": "BlockStatement",
166                  "statements": [
167                    {
168                      "type": "ReturnStatement",
169                      "argument": {
170                        "type": "ETSNewClassInstanceExpression",
171                        "typeReference": {
172                          "type": "ETSTypeReference",
173                          "part": {
174                            "type": "ETSTypeReferencePart",
175                            "name": {
176                              "type": "Identifier",
177                              "name": "Int",
178                              "decorators": [],
179                              "loc": {
180                                "start": {
181                                  "line": 18,
182                                  "column": 15
183                                },
184                                "end": {
185                                  "line": 18,
186                                  "column": 18
187                                }
188                              }
189                            },
190                            "loc": {
191                              "start": {
192                                "line": 18,
193                                "column": 15
194                              },
195                              "end": {
196                                "line": 18,
197                                "column": 19
198                              }
199                            }
200                          },
201                          "loc": {
202                            "start": {
203                              "line": 18,
204                              "column": 15
205                            },
206                            "end": {
207                              "line": 18,
208                              "column": 19
209                            }
210                          }
211                        },
212                        "arguments": [
213                          {
214                            "type": "NumberLiteral",
215                            "value": 3,
216                            "loc": {
217                              "start": {
218                                "line": 18,
219                                "column": 19
220                              },
221                              "end": {
222                                "line": 18,
223                                "column": 20
224                              }
225                            }
226                          }
227                        ],
228                        "loc": {
229                          "start": {
230                            "line": 18,
231                            "column": 11
232                          },
233                          "end": {
234                            "line": 18,
235                            "column": 22
236                          }
237                        }
238                      },
239                      "loc": {
240                        "start": {
241                          "line": 18,
242                          "column": 4
243                        },
244                        "end": {
245                          "line": 18,
246                          "column": 22
247                        }
248                      }
249                    }
250                  ],
251                  "loc": {
252                    "start": {
253                      "line": 17,
254                      "column": 1
255                    },
256                    "end": {
257                      "line": 19,
258                      "column": 2
259                    }
260                  }
261                },
262                "loc": {
263                  "start": {
264                    "line": 16,
265                    "column": 13
266                  },
267                  "end": {
268                    "line": 19,
269                    "column": 2
270                  }
271                }
272              },
273              "loc": {
274                "start": {
275                  "line": 16,
276                  "column": 13
277                },
278                "end": {
279                  "line": 19,
280                  "column": 2
281                }
282              }
283            },
284            "overloads": [],
285            "decorators": [],
286            "loc": {
287              "start": {
288                "line": 16,
289                "column": 1
290              },
291              "end": {
292                "line": 19,
293                "column": 2
294              }
295            }
296          },
297          {
298            "type": "MethodDefinition",
299            "key": {
300              "type": "Identifier",
301              "name": "foo",
302              "decorators": [],
303              "loc": {
304                "start": {
305                  "line": 21,
306                  "column": 10
307                },
308                "end": {
309                  "line": 21,
310                  "column": 13
311                }
312              }
313            },
314            "kind": "method",
315            "accessibility": "public",
316            "static": true,
317            "optional": false,
318            "computed": false,
319            "value": {
320              "type": "FunctionExpression",
321              "function": {
322                "type": "ScriptFunction",
323                "id": {
324                  "type": "Identifier",
325                  "name": "foo",
326                  "decorators": [],
327                  "loc": {
328                    "start": {
329                      "line": 21,
330                      "column": 10
331                    },
332                    "end": {
333                      "line": 21,
334                      "column": 13
335                    }
336                  }
337                },
338                "generator": false,
339                "async": false,
340                "expression": false,
341                "params": [
342                  {
343                    "type": "ETSParameterExpression",
344                    "name": {
345                      "type": "Identifier",
346                      "name": "param",
347                      "typeAnnotation": {
348                        "type": "ETSUnionType",
349                        "types": [
350                          {
351                            "type": "ETSTypeReference",
352                            "part": {
353                              "type": "ETSTypeReferencePart",
354                              "name": {
355                                "type": "Identifier",
356                                "name": "Object",
357                                "decorators": [],
358                                "loc": {
359                                  "start": {
360                                    "line": 21,
361                                    "column": 23
362                                  },
363                                  "end": {
364                                    "line": 21,
365                                    "column": 29
366                                  }
367                                }
368                              },
369                              "loc": {
370                                "start": {
371                                  "line": 21,
372                                  "column": 23
373                                },
374                                "end": {
375                                  "line": 21,
376                                  "column": 30
377                                }
378                              }
379                            },
380                            "loc": {
381                              "start": {
382                                "line": 21,
383                                "column": 23
384                              },
385                              "end": {
386                                "line": 21,
387                                "column": 30
388                              }
389                            }
390                          },
391                          {
392                            "type": "ETSUndefinedType",
393                            "loc": {
394                              "start": {
395                                "line": 21,
396                                "column": 19
397                              },
398                              "end": {
399                                "line": 21,
400                                "column": 20
401                              }
402                            }
403                          }
404                        ],
405                        "loc": {
406                          "start": {
407                            "line": 21,
408                            "column": 23
409                          },
410                          "end": {
411                            "line": 21,
412                            "column": 30
413                          }
414                        }
415                      },
416                      "decorators": [],
417                      "loc": {
418                        "start": {
419                          "line": 21,
420                          "column": 14
421                        },
422                        "end": {
423                          "line": 21,
424                          "column": 30
425                        }
426                      }
427                    },
428                    "loc": {
429                      "start": {
430                        "line": 21,
431                        "column": 14
432                      },
433                      "end": {
434                        "line": 21,
435                        "column": 30
436                      }
437                    }
438                  }
439                ],
440                "body": {
441                  "type": "BlockStatement",
442                  "statements": [
443                    {
444                      "type": "VariableDeclaration",
445                      "declarations": [
446                        {
447                          "type": "VariableDeclarator",
448                          "id": {
449                            "type": "Identifier",
450                            "name": "var1",
451                            "typeAnnotation": {
452                              "type": "ETSTypeReference",
453                              "part": {
454                                "type": "ETSTypeReferencePart",
455                                "name": {
456                                  "type": "Identifier",
457                                  "name": "Object",
458                                  "decorators": [],
459                                  "loc": {
460                                    "start": {
461                                      "line": 23,
462                                      "column": 16
463                                    },
464                                    "end": {
465                                      "line": 23,
466                                      "column": 22
467                                    }
468                                  }
469                                },
470                                "loc": {
471                                  "start": {
472                                    "line": 23,
473                                    "column": 16
474                                  },
475                                  "end": {
476                                    "line": 23,
477                                    "column": 23
478                                  }
479                                }
480                              },
481                              "loc": {
482                                "start": {
483                                  "line": 23,
484                                  "column": 16
485                                },
486                                "end": {
487                                  "line": 23,
488                                  "column": 23
489                                }
490                              }
491                            },
492                            "decorators": [],
493                            "loc": {
494                              "start": {
495                                "line": 23,
496                                "column": 8
497                              },
498                              "end": {
499                                "line": 23,
500                                "column": 12
501                              }
502                            }
503                          },
504                          "init": null,
505                          "loc": {
506                            "start": {
507                              "line": 23,
508                              "column": 8
509                            },
510                            "end": {
511                              "line": 23,
512                              "column": 12
513                            }
514                          }
515                        }
516                      ],
517                      "kind": "let",
518                      "loc": {
519                        "start": {
520                          "line": 23,
521                          "column": 4
522                        },
523                        "end": {
524                          "line": 23,
525                          "column": 23
526                        }
527                      }
528                    },
529                    {
530                      "type": "VariableDeclaration",
531                      "declarations": [
532                        {
533                          "type": "VariableDeclarator",
534                          "id": {
535                            "type": "Identifier",
536                            "name": "var2",
537                            "decorators": [],
538                            "loc": {
539                              "start": {
540                                "line": 24,
541                                "column": 8
542                              },
543                              "end": {
544                                "line": 24,
545                                "column": 12
546                              }
547                            }
548                          },
549                          "init": {
550                            "type": "ETSNewClassInstanceExpression",
551                            "typeReference": {
552                              "type": "ETSTypeReference",
553                              "part": {
554                                "type": "ETSTypeReferencePart",
555                                "name": {
556                                  "type": "Identifier",
557                                  "name": "Object",
558                                  "decorators": [],
559                                  "loc": {
560                                    "start": {
561                                      "line": 24,
562                                      "column": 20
563                                    },
564                                    "end": {
565                                      "line": 24,
566                                      "column": 26
567                                    }
568                                  }
569                                },
570                                "loc": {
571                                  "start": {
572                                    "line": 24,
573                                    "column": 20
574                                  },
575                                  "end": {
576                                    "line": 24,
577                                    "column": 27
578                                  }
579                                }
580                              },
581                              "loc": {
582                                "start": {
583                                  "line": 24,
584                                  "column": 20
585                                },
586                                "end": {
587                                  "line": 24,
588                                  "column": 27
589                                }
590                              }
591                            },
592                            "arguments": [],
593                            "loc": {
594                              "start": {
595                                "line": 24,
596                                "column": 16
597                              },
598                              "end": {
599                                "line": 24,
600                                "column": 29
601                              }
602                            }
603                          },
604                          "loc": {
605                            "start": {
606                              "line": 24,
607                              "column": 8
608                            },
609                            "end": {
610                              "line": 24,
611                              "column": 29
612                            }
613                          }
614                        }
615                      ],
616                      "kind": "let",
617                      "loc": {
618                        "start": {
619                          "line": 24,
620                          "column": 4
621                        },
622                        "end": {
623                          "line": 24,
624                          "column": 29
625                        }
626                      }
627                    },
628                    {
629                      "type": "VariableDeclaration",
630                      "declarations": [
631                        {
632                          "type": "VariableDeclarator",
633                          "id": {
634                            "type": "Identifier",
635                            "name": "var3",
636                            "decorators": [],
637                            "loc": {
638                              "start": {
639                                "line": 25,
640                                "column": 8
641                              },
642                              "end": {
643                                "line": 25,
644                                "column": 12
645                              }
646                            }
647                          },
648                          "init": {
649                            "type": "CallExpression",
650                            "callee": {
651                              "type": "Identifier",
652                              "name": "goo",
653                              "decorators": [],
654                              "loc": {
655                                "start": {
656                                  "line": 25,
657                                  "column": 16
658                                },
659                                "end": {
660                                  "line": 25,
661                                  "column": 19
662                                }
663                              }
664                            },
665                            "arguments": [],
666                            "optional": false,
667                            "loc": {
668                              "start": {
669                                "line": 25,
670                                "column": 16
671                              },
672                              "end": {
673                                "line": 25,
674                                "column": 21
675                              }
676                            }
677                          },
678                          "loc": {
679                            "start": {
680                              "line": 25,
681                              "column": 8
682                            },
683                            "end": {
684                              "line": 25,
685                              "column": 21
686                            }
687                          }
688                        }
689                      ],
690                      "kind": "let",
691                      "loc": {
692                        "start": {
693                          "line": 25,
694                          "column": 4
695                        },
696                        "end": {
697                          "line": 25,
698                          "column": 22
699                        }
700                      }
701                    },
702                    {
703                      "type": "ForUpdateStatement",
704                      "init": {
705                        "type": "VariableDeclaration",
706                        "declarations": [
707                          {
708                            "type": "VariableDeclarator",
709                            "id": {
710                              "type": "Identifier",
711                              "name": "i",
712                              "typeAnnotation": {
713                                "type": "ETSTypeReference",
714                                "part": {
715                                  "type": "ETSTypeReferencePart",
716                                  "name": {
717                                    "type": "Identifier",
718                                    "name": "Number",
719                                    "decorators": [],
720                                    "loc": {
721                                      "start": {
722                                        "line": 26,
723                                        "column": 18
724                                      },
725                                      "end": {
726                                        "line": 26,
727                                        "column": 24
728                                      }
729                                    }
730                                  },
731                                  "loc": {
732                                    "start": {
733                                      "line": 26,
734                                      "column": 18
735                                    },
736                                    "end": {
737                                      "line": 26,
738                                      "column": 26
739                                    }
740                                  }
741                                },
742                                "loc": {
743                                  "start": {
744                                    "line": 26,
745                                    "column": 18
746                                  },
747                                  "end": {
748                                    "line": 26,
749                                    "column": 26
750                                  }
751                                }
752                              },
753                              "decorators": [],
754                              "loc": {
755                                "start": {
756                                  "line": 26,
757                                  "column": 13
758                                },
759                                "end": {
760                                  "line": 26,
761                                  "column": 14
762                                }
763                              }
764                            },
765                            "init": {
766                              "type": "NumberLiteral",
767                              "value": 1,
768                              "loc": {
769                                "start": {
770                                  "line": 26,
771                                  "column": 27
772                                },
773                                "end": {
774                                  "line": 26,
775                                  "column": 28
776                                }
777                              }
778                            },
779                            "loc": {
780                              "start": {
781                                "line": 26,
782                                "column": 13
783                              },
784                              "end": {
785                                "line": 26,
786                                "column": 28
787                              }
788                            }
789                          }
790                        ],
791                        "kind": "let",
792                        "loc": {
793                          "start": {
794                            "line": 26,
795                            "column": 9
796                          },
797                          "end": {
798                            "line": 26,
799                            "column": 28
800                          }
801                        }
802                      },
803                      "test": null,
804                      "update": null,
805                      "body": {
806                        "type": "BlockStatement",
807                        "statements": [
808                          {
809                            "type": "BreakStatement",
810                            "label": null,
811                            "loc": {
812                              "start": {
813                                "line": 26,
814                                "column": 35
815                              },
816                              "end": {
817                                "line": 26,
818                                "column": 41
819                              }
820                            }
821                          }
822                        ],
823                        "loc": {
824                          "start": {
825                            "line": 26,
826                            "column": 33
827                          },
828                          "end": {
829                            "line": 26,
830                            "column": 43
831                          }
832                        }
833                      },
834                      "loc": {
835                        "start": {
836                          "line": 26,
837                          "column": 4
838                        },
839                        "end": {
840                          "line": 26,
841                          "column": 43
842                        }
843                      }
844                    }
845                  ],
846                  "loc": {
847                    "start": {
848                      "line": 22,
849                      "column": 1
850                    },
851                    "end": {
852                      "line": 27,
853                      "column": 2
854                    }
855                  }
856                },
857                "loc": {
858                  "start": {
859                    "line": 21,
860                    "column": 13
861                  },
862                  "end": {
863                    "line": 27,
864                    "column": 2
865                  }
866                }
867              },
868              "loc": {
869                "start": {
870                  "line": 21,
871                  "column": 13
872                },
873                "end": {
874                  "line": 27,
875                  "column": 2
876                }
877              }
878            },
879            "overloads": [
880              {
881                "type": "MethodDefinition",
882                "key": {
883                  "type": "Identifier",
884                  "name": "foo",
885                  "decorators": [],
886                  "loc": {
887                    "start": {
888                      "line": 21,
889                      "column": 10
890                    },
891                    "end": {
892                      "line": 21,
893                      "column": 13
894                    }
895                  }
896                },
897                "kind": "method",
898                "accessibility": "public",
899                "static": true,
900                "optional": false,
901                "computed": false,
902                "value": {
903                  "type": "FunctionExpression",
904                  "function": {
905                    "type": "ScriptFunction",
906                    "id": {
907                      "type": "Identifier",
908                      "name": "foo",
909                      "decorators": [],
910                      "loc": {
911                        "start": {
912                          "line": 21,
913                          "column": 10
914                        },
915                        "end": {
916                          "line": 21,
917                          "column": 13
918                        }
919                      }
920                    },
921                    "generator": false,
922                    "async": false,
923                    "expression": false,
924                    "params": [],
925                    "body": {
926                      "type": "BlockStatement",
927                      "statements": [
928                        {
929                          "type": "ExpressionStatement",
930                          "expression": {
931                            "type": "CallExpression",
932                            "callee": {
933                              "type": "Identifier",
934                              "name": "foo",
935                              "decorators": [],
936                              "loc": {
937                                "start": {
938                                  "line": 1,
939                                  "column": 1
940                                },
941                                "end": {
942                                  "line": 1,
943                                  "column": 1
944                                }
945                              }
946                            },
947                            "arguments": [
948                              {
949                                "type": "UndefinedLiteral",
950                                "value": undefined,
951                                "loc": {
952                                  "start": {
953                                    "line": 1,
954                                    "column": 1
955                                  },
956                                  "end": {
957                                    "line": 1,
958                                    "column": 1
959                                  }
960                                }
961                              }
962                            ],
963                            "optional": false,
964                            "loc": {
965                              "start": {
966                                "line": 21,
967                                "column": 1
968                              },
969                              "end": {
970                                "line": 27,
971                                "column": 2
972                              }
973                            }
974                          },
975                          "loc": {
976                            "start": {
977                              "line": 1,
978                              "column": 1
979                            },
980                            "end": {
981                              "line": 1,
982                              "column": 1
983                            }
984                          }
985                        }
986                      ],
987                      "loc": {
988                        "start": {
989                          "line": 1,
990                          "column": 1
991                        },
992                        "end": {
993                          "line": 1,
994                          "column": 1
995                        }
996                      }
997                    },
998                    "loc": {
999                      "start": {
1000                        "line": 648,
1001                        "column": 1
1002                      },
1003                      "end": {
1004                        "line": 648,
1005                        "column": 1
1006                      }
1007                    }
1008                  },
1009                  "loc": {
1010                    "start": {
1011                      "line": 1,
1012                      "column": 1
1013                    },
1014                    "end": {
1015                      "line": 1,
1016                      "column": 1
1017                    }
1018                  }
1019                },
1020                "overloads": [],
1021                "decorators": [],
1022                "loc": {
1023                  "start": {
1024                    "line": 21,
1025                    "column": 1
1026                  },
1027                  "end": {
1028                    "line": 1,
1029                    "column": 1
1030                  }
1031                }
1032              }
1033            ],
1034            "decorators": [],
1035            "loc": {
1036              "start": {
1037                "line": 21,
1038                "column": 1
1039              },
1040              "end": {
1041                "line": 27,
1042                "column": 2
1043              }
1044            }
1045          }
1046        ],
1047        "loc": {
1048          "start": {
1049            "line": 1,
1050            "column": 1
1051          },
1052          "end": {
1053            "line": 1,
1054            "column": 1
1055          }
1056        }
1057      },
1058      "loc": {
1059        "start": {
1060          "line": 1,
1061          "column": 1
1062        },
1063        "end": {
1064          "line": 1,
1065          "column": 1
1066        }
1067      }
1068    }
1069  ],
1070  "loc": {
1071    "start": {
1072      "line": 1,
1073      "column": 1
1074    },
1075    "end": {
1076      "line": 28,
1077      "column": 1
1078    }
1079  }
1080}
1081