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": "main",
124              "decorators": [],
125              "loc": {
126                "start": {
127                  "line": 15,
128                  "column": 10
129                },
130                "end": {
131                  "line": 15,
132                  "column": 14
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": "main",
148                  "decorators": [],
149                  "loc": {
150                    "start": {
151                      "line": 15,
152                      "column": 10
153                    },
154                    "end": {
155                      "line": 15,
156                      "column": 14
157                    }
158                  }
159                },
160                "generator": false,
161                "async": false,
162                "expression": false,
163                "params": [],
164                "body": {
165                  "type": "BlockStatement",
166                  "statements": [
167                    {
168                      "type": "VariableDeclaration",
169                      "declarations": [
170                        {
171                          "type": "VariableDeclarator",
172                          "id": {
173                            "type": "Identifier",
174                            "name": "v",
175                            "decorators": [],
176                            "loc": {
177                              "start": {
178                                "line": 16,
179                                "column": 9
180                              },
181                              "end": {
182                                "line": 16,
183                                "column": 10
184                              }
185                            }
186                          },
187                          "init": {
188                            "type": "NumberLiteral",
189                            "value": 0,
190                            "loc": {
191                              "start": {
192                                "line": 16,
193                                "column": 13
194                              },
195                              "end": {
196                                "line": 16,
197                                "column": 14
198                              }
199                            }
200                          },
201                          "loc": {
202                            "start": {
203                              "line": 16,
204                              "column": 9
205                            },
206                            "end": {
207                              "line": 16,
208                              "column": 14
209                            }
210                          }
211                        }
212                      ],
213                      "kind": "let",
214                      "loc": {
215                        "start": {
216                          "line": 16,
217                          "column": 5
218                        },
219                        "end": {
220                          "line": 16,
221                          "column": 14
222                        }
223                      }
224                    },
225                    {
226                      "type": "VariableDeclaration",
227                      "declarations": [
228                        {
229                          "type": "VariableDeclarator",
230                          "id": {
231                            "type": "Identifier",
232                            "name": "f",
233                            "typeAnnotation": {
234                              "type": "ETSFunctionType",
235                              "params": [],
236                              "returnType": {
237                                "type": "ETSPrimitiveType",
238                                "loc": {
239                                  "start": {
240                                    "line": 17,
241                                    "column": 18
242                                  },
243                                  "end": {
244                                    "line": 17,
245                                    "column": 22
246                                  }
247                                }
248                              },
249                              "loc": {
250                                "start": {
251                                  "line": 17,
252                                  "column": 12
253                                },
254                                "end": {
255                                  "line": 17,
256                                  "column": 22
257                                }
258                              }
259                            },
260                            "decorators": [],
261                            "loc": {
262                              "start": {
263                                "line": 17,
264                                "column": 9
265                              },
266                              "end": {
267                                "line": 17,
268                                "column": 10
269                              }
270                            }
271                          },
272                          "init": {
273                            "type": "ArrowFunctionExpression",
274                            "function": {
275                              "type": "ScriptFunction",
276                              "id": null,
277                              "generator": false,
278                              "async": false,
279                              "expression": false,
280                              "params": [],
281                              "body": {
282                                "type": "BlockStatement",
283                                "statements": [
284                                  {
285                                    "type": "ExpressionStatement",
286                                    "expression": {
287                                      "type": "AssignmentExpression",
288                                      "operator": "=",
289                                      "left": {
290                                        "type": "Identifier",
291                                        "name": "v",
292                                        "decorators": [],
293                                        "loc": {
294                                          "start": {
295                                            "line": 18,
296                                            "column": 9
297                                          },
298                                          "end": {
299                                            "line": 18,
300                                            "column": 10
301                                          }
302                                        }
303                                      },
304                                      "right": {
305                                        "type": "NumberLiteral",
306                                        "value": 1,
307                                        "loc": {
308                                          "start": {
309                                            "line": 18,
310                                            "column": 13
311                                          },
312                                          "end": {
313                                            "line": 18,
314                                            "column": 14
315                                          }
316                                        }
317                                      },
318                                      "loc": {
319                                        "start": {
320                                          "line": 18,
321                                          "column": 9
322                                        },
323                                        "end": {
324                                          "line": 18,
325                                          "column": 14
326                                        }
327                                      }
328                                    },
329                                    "loc": {
330                                      "start": {
331                                        "line": 18,
332                                        "column": 9
333                                      },
334                                      "end": {
335                                        "line": 18,
336                                        "column": 14
337                                      }
338                                    }
339                                  },
340                                  {
341                                    "type": "BlockStatement",
342                                    "statements": [
343                                      {
344                                        "type": "ExpressionStatement",
345                                        "expression": {
346                                          "type": "AssignmentExpression",
347                                          "operator": "=",
348                                          "left": {
349                                            "type": "Identifier",
350                                            "name": "v",
351                                            "decorators": [],
352                                            "loc": {
353                                              "start": {
354                                                "line": 20,
355                                                "column": 5
356                                              },
357                                              "end": {
358                                                "line": 20,
359                                                "column": 6
360                                              }
361                                            }
362                                          },
363                                          "right": {
364                                            "type": "NumberLiteral",
365                                            "value": 2,
366                                            "loc": {
367                                              "start": {
368                                                "line": 20,
369                                                "column": 9
370                                              },
371                                              "end": {
372                                                "line": 20,
373                                                "column": 10
374                                              }
375                                            }
376                                          },
377                                          "loc": {
378                                            "start": {
379                                              "line": 20,
380                                              "column": 5
381                                            },
382                                            "end": {
383                                              "line": 20,
384                                              "column": 10
385                                            }
386                                          }
387                                        },
388                                        "loc": {
389                                          "start": {
390                                            "line": 20,
391                                            "column": 5
392                                          },
393                                          "end": {
394                                            "line": 20,
395                                            "column": 10
396                                          }
397                                        }
398                                      }
399                                    ],
400                                    "loc": {
401                                      "start": {
402                                        "line": 19,
403                                        "column": 9
404                                      },
405                                      "end": {
406                                        "line": 21,
407                                        "column": 10
408                                      }
409                                    }
410                                  },
411                                  {
412                                    "type": "IfStatement",
413                                    "test": {
414                                      "type": "BooleanLiteral",
415                                      "value": true,
416                                      "loc": {
417                                        "start": {
418                                          "line": 22,
419                                          "column": 13
420                                        },
421                                        "end": {
422                                          "line": 22,
423                                          "column": 17
424                                        }
425                                      }
426                                    },
427                                    "consequent": {
428                                      "type": "BlockStatement",
429                                      "statements": [
430                                        {
431                                          "type": "ExpressionStatement",
432                                          "expression": {
433                                            "type": "AssignmentExpression",
434                                            "operator": "=",
435                                            "left": {
436                                              "type": "Identifier",
437                                              "name": "v",
438                                              "decorators": [],
439                                              "loc": {
440                                                "start": {
441                                                  "line": 23,
442                                                  "column": 13
443                                                },
444                                                "end": {
445                                                  "line": 23,
446                                                  "column": 14
447                                                }
448                                              }
449                                            },
450                                            "right": {
451                                              "type": "NumberLiteral",
452                                              "value": 3,
453                                              "loc": {
454                                                "start": {
455                                                  "line": 23,
456                                                  "column": 17
457                                                },
458                                                "end": {
459                                                  "line": 23,
460                                                  "column": 18
461                                                }
462                                              }
463                                            },
464                                            "loc": {
465                                              "start": {
466                                                "line": 23,
467                                                "column": 13
468                                              },
469                                              "end": {
470                                                "line": 23,
471                                                "column": 18
472                                              }
473                                            }
474                                          },
475                                          "loc": {
476                                            "start": {
477                                              "line": 23,
478                                              "column": 13
479                                            },
480                                            "end": {
481                                              "line": 23,
482                                              "column": 18
483                                            }
484                                          }
485                                        }
486                                      ],
487                                      "loc": {
488                                        "start": {
489                                          "line": 22,
490                                          "column": 19
491                                        },
492                                        "end": {
493                                          "line": 24,
494                                          "column": 10
495                                        }
496                                      }
497                                    },
498                                    "alternate": null,
499                                    "loc": {
500                                      "start": {
501                                        "line": 22,
502                                        "column": 9
503                                      },
504                                      "end": {
505                                        "line": 24,
506                                        "column": 10
507                                      }
508                                    }
509                                  },
510                                  {
511                                    "type": "ForOfStatement",
512                                    "await": false,
513                                    "left": {
514                                      "type": "VariableDeclaration",
515                                      "declarations": [
516                                        {
517                                          "type": "VariableDeclarator",
518                                          "id": {
519                                            "type": "Identifier",
520                                            "name": "x",
521                                            "typeAnnotation": {
522                                              "type": "ETSPrimitiveType",
523                                              "loc": {
524                                                "start": {
525                                                  "line": 25,
526                                                  "column": 21
527                                                },
528                                                "end": {
529                                                  "line": 25,
530                                                  "column": 24
531                                                }
532                                              }
533                                            },
534                                            "decorators": [],
535                                            "loc": {
536                                              "start": {
537                                                "line": 25,
538                                                "column": 18
539                                              },
540                                              "end": {
541                                                "line": 25,
542                                                "column": 19
543                                              }
544                                            }
545                                          },
546                                          "init": null,
547                                          "loc": {
548                                            "start": {
549                                              "line": 25,
550                                              "column": 18
551                                            },
552                                            "end": {
553                                              "line": 25,
554                                              "column": 19
555                                            }
556                                          }
557                                        }
558                                      ],
559                                      "kind": "let",
560                                      "loc": {
561                                        "start": {
562                                          "line": 25,
563                                          "column": 14
564                                        },
565                                        "end": {
566                                          "line": 25,
567                                          "column": 19
568                                        }
569                                      }
570                                    },
571                                    "right": {
572                                      "type": "ArrayExpression",
573                                      "elements": [
574                                        {
575                                          "type": "NumberLiteral",
576                                          "value": 0,
577                                          "loc": {
578                                            "start": {
579                                              "line": 25,
580                                              "column": 29
581                                            },
582                                            "end": {
583                                              "line": 25,
584                                              "column": 30
585                                            }
586                                          }
587                                        }
588                                      ],
589                                      "loc": {
590                                        "start": {
591                                          "line": 25,
592                                          "column": 28
593                                        },
594                                        "end": {
595                                          "line": 25,
596                                          "column": 31
597                                        }
598                                      }
599                                    },
600                                    "body": {
601                                      "type": "ExpressionStatement",
602                                      "expression": {
603                                        "type": "AssignmentExpression",
604                                        "operator": "=",
605                                        "left": {
606                                          "type": "Identifier",
607                                          "name": "v",
608                                          "decorators": [],
609                                          "loc": {
610                                            "start": {
611                                              "line": 26,
612                                              "column": 13
613                                            },
614                                            "end": {
615                                              "line": 26,
616                                              "column": 14
617                                            }
618                                          }
619                                        },
620                                        "right": {
621                                          "type": "NumberLiteral",
622                                          "value": 4,
623                                          "loc": {
624                                            "start": {
625                                              "line": 26,
626                                              "column": 17
627                                            },
628                                            "end": {
629                                              "line": 26,
630                                              "column": 18
631                                            }
632                                          }
633                                        },
634                                        "loc": {
635                                          "start": {
636                                            "line": 26,
637                                            "column": 13
638                                          },
639                                          "end": {
640                                            "line": 26,
641                                            "column": 18
642                                          }
643                                        }
644                                      },
645                                      "loc": {
646                                        "start": {
647                                          "line": 26,
648                                          "column": 13
649                                        },
650                                        "end": {
651                                          "line": 26,
652                                          "column": 18
653                                        }
654                                      }
655                                    },
656                                    "loc": {
657                                      "start": {
658                                        "line": 25,
659                                        "column": 9
660                                      },
661                                      "end": {
662                                        "line": 26,
663                                        "column": 18
664                                      }
665                                    }
666                                  }
667                                ],
668                                "loc": {
669                                  "start": {
670                                    "line": 17,
671                                    "column": 31
672                                  },
673                                  "end": {
674                                    "line": 34,
675                                    "column": 6
676                                  }
677                                }
678                              },
679                              "loc": {
680                                "start": {
681                                  "line": 17,
682                                  "column": 25
683                                },
684                                "end": {
685                                  "line": 34,
686                                  "column": 6
687                                }
688                              }
689                            },
690                            "loc": {
691                              "start": {
692                                "line": 17,
693                                "column": 25
694                              },
695                              "end": {
696                                "line": 34,
697                                "column": 6
698                              }
699                            }
700                          },
701                          "loc": {
702                            "start": {
703                              "line": 17,
704                              "column": 9
705                            },
706                            "end": {
707                              "line": 34,
708                              "column": 6
709                            }
710                          }
711                        }
712                      ],
713                      "kind": "let",
714                      "loc": {
715                        "start": {
716                          "line": 17,
717                          "column": 5
718                        },
719                        "end": {
720                          "line": 34,
721                          "column": 6
722                        }
723                      }
724                    },
725                    {
726                      "type": "ExpressionStatement",
727                      "expression": {
728                        "type": "CallExpression",
729                        "callee": {
730                          "type": "Identifier",
731                          "name": "f",
732                          "decorators": [],
733                          "loc": {
734                            "start": {
735                              "line": 35,
736                              "column": 5
737                            },
738                            "end": {
739                              "line": 35,
740                              "column": 6
741                            }
742                          }
743                        },
744                        "arguments": [],
745                        "optional": false,
746                        "loc": {
747                          "start": {
748                            "line": 35,
749                            "column": 5
750                          },
751                          "end": {
752                            "line": 35,
753                            "column": 8
754                          }
755                        }
756                      },
757                      "loc": {
758                        "start": {
759                          "line": 35,
760                          "column": 5
761                        },
762                        "end": {
763                          "line": 35,
764                          "column": 8
765                        }
766                      }
767                    },
768                    {
769                      "type": "ExpressionStatement",
770                      "expression": {
771                        "type": "CallExpression",
772                        "callee": {
773                          "type": "MemberExpression",
774                          "object": {
775                            "type": "Identifier",
776                            "name": "console",
777                            "decorators": [],
778                            "loc": {
779                              "start": {
780                                "line": 36,
781                                "column": 5
782                              },
783                              "end": {
784                                "line": 36,
785                                "column": 12
786                              }
787                            }
788                          },
789                          "property": {
790                            "type": "Identifier",
791                            "name": "log",
792                            "decorators": [],
793                            "loc": {
794                              "start": {
795                                "line": 36,
796                                "column": 13
797                              },
798                              "end": {
799                                "line": 36,
800                                "column": 16
801                              }
802                            }
803                          },
804                          "computed": false,
805                          "optional": false,
806                          "loc": {
807                            "start": {
808                              "line": 36,
809                              "column": 5
810                            },
811                            "end": {
812                              "line": 36,
813                              "column": 16
814                            }
815                          }
816                        },
817                        "arguments": [
818                          {
819                            "type": "Identifier",
820                            "name": "v",
821                            "decorators": [],
822                            "loc": {
823                              "start": {
824                                "line": 36,
825                                "column": 17
826                              },
827                              "end": {
828                                "line": 36,
829                                "column": 18
830                              }
831                            }
832                          }
833                        ],
834                        "optional": false,
835                        "loc": {
836                          "start": {
837                            "line": 36,
838                            "column": 5
839                          },
840                          "end": {
841                            "line": 36,
842                            "column": 19
843                          }
844                        }
845                      },
846                      "loc": {
847                        "start": {
848                          "line": 36,
849                          "column": 5
850                        },
851                        "end": {
852                          "line": 36,
853                          "column": 19
854                        }
855                      }
856                    }
857                  ],
858                  "loc": {
859                    "start": {
860                      "line": 15,
861                      "column": 17
862                    },
863                    "end": {
864                      "line": 37,
865                      "column": 2
866                    }
867                  }
868                },
869                "loc": {
870                  "start": {
871                    "line": 15,
872                    "column": 14
873                  },
874                  "end": {
875                    "line": 37,
876                    "column": 2
877                  }
878                }
879              },
880              "loc": {
881                "start": {
882                  "line": 15,
883                  "column": 14
884                },
885                "end": {
886                  "line": 37,
887                  "column": 2
888                }
889              }
890            },
891            "overloads": [],
892            "decorators": [],
893            "loc": {
894              "start": {
895                "line": 15,
896                "column": 1
897              },
898              "end": {
899                "line": 37,
900                "column": 2
901              }
902            }
903          }
904        ],
905        "loc": {
906          "start": {
907            "line": 1,
908            "column": 1
909          },
910          "end": {
911            "line": 1,
912            "column": 1
913          }
914        }
915      },
916      "loc": {
917        "start": {
918          "line": 1,
919          "column": 1
920        },
921        "end": {
922          "line": 1,
923          "column": 1
924        }
925      }
926    }
927  ],
928  "loc": {
929    "start": {
930      "line": 1,
931      "column": 1
932    },
933    "end": {
934      "line": 38,
935      "column": 1
936    }
937  }
938}
939