1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "ClassDeclaration",
6      "definition": {
7        "id": {
8          "type": "Identifier",
9          "name": "CIterator",
10          "decorators": [],
11          "loc": {
12            "start": {
13              "line": 16,
14              "column": 15
15            },
16            "end": {
17              "line": 16,
18              "column": 24
19            }
20          }
21        },
22        "superClass": null,
23        "implements": [
24          {
25            "type": "TSClassImplements",
26            "expression": {
27              "type": "ETSTypeReference",
28              "part": {
29                "type": "ETSTypeReferencePart",
30                "name": {
31                  "type": "Identifier",
32                  "name": "Iterator",
33                  "decorators": [],
34                  "loc": {
35                    "start": {
36                      "line": 16,
37                      "column": 36
38                    },
39                    "end": {
40                      "line": 16,
41                      "column": 44
42                    }
43                  }
44                },
45                "typeParams": {
46                  "type": "TSTypeParameterInstantiation",
47                  "params": [
48                    {
49                      "type": "ETSTypeReference",
50                      "part": {
51                        "type": "ETSTypeReferencePart",
52                        "name": {
53                          "type": "Identifier",
54                          "name": "string",
55                          "decorators": [],
56                          "loc": {
57                            "start": {
58                              "line": 16,
59                              "column": 45
60                            },
61                            "end": {
62                              "line": 16,
63                              "column": 51
64                            }
65                          }
66                        },
67                        "loc": {
68                          "start": {
69                            "line": 16,
70                            "column": 45
71                          },
72                          "end": {
73                            "line": 16,
74                            "column": 52
75                          }
76                        }
77                      },
78                      "loc": {
79                        "start": {
80                          "line": 16,
81                          "column": 45
82                        },
83                        "end": {
84                          "line": 16,
85                          "column": 52
86                        }
87                      }
88                    }
89                  ],
90                  "loc": {
91                    "start": {
92                      "line": 16,
93                      "column": 44
94                    },
95                    "end": {
96                      "line": 16,
97                      "column": 52
98                    }
99                  }
100                },
101                "loc": {
102                  "start": {
103                    "line": 16,
104                    "column": 36
105                  },
106                  "end": {
107                    "line": 16,
108                    "column": 54
109                  }
110                }
111              },
112              "loc": {
113                "start": {
114                  "line": 16,
115                  "column": 36
116                },
117                "end": {
118                  "line": 16,
119                  "column": 54
120                }
121              }
122            },
123            "loc": {
124              "start": {
125                "line": 16,
126                "column": 36
127              },
128              "end": {
129                "line": 16,
130                "column": 54
131              }
132            }
133          }
134        ],
135        "body": [
136          {
137            "type": "ClassProperty",
138            "key": {
139              "type": "Identifier",
140              "name": "ind_",
141              "decorators": [],
142              "loc": {
143                "start": {
144                  "line": 18,
145                  "column": 11
146                },
147                "end": {
148                  "line": 18,
149                  "column": 15
150                }
151              }
152            },
153            "accessibility": "private",
154            "static": false,
155            "readonly": false,
156            "declare": true,
157            "optional": false,
158            "computed": false,
159            "typeAnnotation": {
160              "type": "ETSPrimitiveType",
161              "loc": {
162                "start": {
163                  "line": 18,
164                  "column": 17
165                },
166                "end": {
167                  "line": 18,
168                  "column": 20
169                }
170              }
171            },
172            "definite": false,
173            "decorators": [],
174            "loc": {
175              "start": {
176                "line": 18,
177                "column": 11
178              },
179              "end": {
180                "line": 18,
181                "column": 20
182              }
183            }
184          },
185          {
186            "type": "ClassProperty",
187            "key": {
188              "type": "Identifier",
189              "name": "base_",
190              "decorators": [],
191              "loc": {
192                "start": {
193                  "line": 19,
194                  "column": 11
195                },
196                "end": {
197                  "line": 19,
198                  "column": 16
199                }
200              }
201            },
202            "accessibility": "private",
203            "static": false,
204            "readonly": false,
205            "declare": true,
206            "optional": false,
207            "computed": false,
208            "typeAnnotation": {
209              "type": "ETSTypeReference",
210              "part": {
211                "type": "ETSTypeReferencePart",
212                "name": {
213                  "type": "Identifier",
214                  "name": "C",
215                  "decorators": [],
216                  "loc": {
217                    "start": {
218                      "line": 19,
219                      "column": 18
220                    },
221                    "end": {
222                      "line": 19,
223                      "column": 19
224                    }
225                  }
226                },
227                "loc": {
228                  "start": {
229                    "line": 19,
230                    "column": 18
231                  },
232                  "end": {
233                    "line": 19,
234                    "column": 20
235                  }
236                }
237              },
238              "loc": {
239                "start": {
240                  "line": 19,
241                  "column": 18
242                },
243                "end": {
244                  "line": 19,
245                  "column": 20
246                }
247              }
248            },
249            "definite": false,
250            "decorators": [],
251            "loc": {
252              "start": {
253                "line": 19,
254                "column": 11
255              },
256              "end": {
257                "line": 19,
258                "column": 20
259              }
260            }
261          },
262          {
263            "type": "MethodDefinition",
264            "key": {
265              "type": "Identifier",
266              "name": "constructor",
267              "decorators": [],
268              "loc": {
269                "start": {
270                  "line": 1,
271                  "column": 1
272                },
273                "end": {
274                  "line": 1,
275                  "column": 1
276                }
277              }
278            },
279            "kind": "constructor",
280            "accessibility": "public",
281            "static": false,
282            "optional": false,
283            "computed": false,
284            "value": {
285              "type": "FunctionExpression",
286              "function": {
287                "type": "ScriptFunction",
288                "id": {
289                  "type": "Identifier",
290                  "name": "constructor",
291                  "decorators": [],
292                  "loc": {
293                    "start": {
294                      "line": 1,
295                      "column": 1
296                    },
297                    "end": {
298                      "line": 1,
299                      "column": 1
300                    }
301                  }
302                },
303                "generator": false,
304                "async": false,
305                "expression": false,
306                "params": [
307                  {
308                    "type": "ETSParameterExpression",
309                    "name": {
310                      "type": "Identifier",
311                      "name": "base",
312                      "typeAnnotation": {
313                        "type": "ETSTypeReference",
314                        "part": {
315                          "type": "ETSTypeReferencePart",
316                          "name": {
317                            "type": "Identifier",
318                            "name": "C",
319                            "decorators": [],
320                            "loc": {
321                              "start": {
322                                "line": 21,
323                                "column": 22
324                              },
325                              "end": {
326                                "line": 21,
327                                "column": 23
328                              }
329                            }
330                          },
331                          "loc": {
332                            "start": {
333                              "line": 21,
334                              "column": 22
335                            },
336                            "end": {
337                              "line": 21,
338                              "column": 24
339                            }
340                          }
341                        },
342                        "loc": {
343                          "start": {
344                            "line": 21,
345                            "column": 22
346                          },
347                          "end": {
348                            "line": 21,
349                            "column": 24
350                          }
351                        }
352                      },
353                      "decorators": [],
354                      "loc": {
355                        "start": {
356                          "line": 21,
357                          "column": 16
358                        },
359                        "end": {
360                          "line": 21,
361                          "column": 24
362                        }
363                      }
364                    },
365                    "loc": {
366                      "start": {
367                        "line": 21,
368                        "column": 16
369                      },
370                      "end": {
371                        "line": 21,
372                        "column": 24
373                      }
374                    }
375                  }
376                ],
377                "declare": true,
378                "loc": {
379                  "start": {
380                    "line": 21,
381                    "column": 15
382                  },
383                  "end": {
384                    "line": 21,
385                    "column": 15
386                  }
387                }
388              },
389              "loc": {
390                "start": {
391                  "line": 21,
392                  "column": 15
393                },
394                "end": {
395                  "line": 21,
396                  "column": 15
397                }
398              }
399            },
400            "overloads": [],
401            "decorators": [],
402            "loc": {
403              "start": {
404                "line": 21,
405                "column": 3
406              },
407              "end": {
408                "line": 21,
409                "column": 15
410              }
411            }
412          },
413          {
414            "type": "MethodDefinition",
415            "key": {
416              "type": "Identifier",
417              "name": "next",
418              "decorators": [],
419              "loc": {
420                "start": {
421                  "line": 23,
422                  "column": 12
423                },
424                "end": {
425                  "line": 23,
426                  "column": 16
427                }
428              }
429            },
430            "kind": "method",
431            "accessibility": "public",
432            "static": false,
433            "optional": false,
434            "computed": false,
435            "value": {
436              "type": "FunctionExpression",
437              "function": {
438                "type": "ScriptFunction",
439                "id": {
440                  "type": "Identifier",
441                  "name": "next",
442                  "decorators": [],
443                  "loc": {
444                    "start": {
445                      "line": 23,
446                      "column": 12
447                    },
448                    "end": {
449                      "line": 23,
450                      "column": 16
451                    }
452                  }
453                },
454                "generator": false,
455                "async": false,
456                "expression": false,
457                "params": [],
458                "returnType": {
459                  "type": "ETSTypeReference",
460                  "part": {
461                    "type": "ETSTypeReferencePart",
462                    "name": {
463                      "type": "Identifier",
464                      "name": "IteratorResult",
465                      "decorators": [],
466                      "loc": {
467                        "start": {
468                          "line": 23,
469                          "column": 20
470                        },
471                        "end": {
472                          "line": 23,
473                          "column": 34
474                        }
475                      }
476                    },
477                    "typeParams": {
478                      "type": "TSTypeParameterInstantiation",
479                      "params": [
480                        {
481                          "type": "ETSTypeReference",
482                          "part": {
483                            "type": "ETSTypeReferencePart",
484                            "name": {
485                              "type": "Identifier",
486                              "name": "string",
487                              "decorators": [],
488                              "loc": {
489                                "start": {
490                                  "line": 23,
491                                  "column": 35
492                                },
493                                "end": {
494                                  "line": 23,
495                                  "column": 41
496                                }
497                              }
498                            },
499                            "loc": {
500                              "start": {
501                                "line": 23,
502                                "column": 35
503                              },
504                              "end": {
505                                "line": 23,
506                                "column": 42
507                              }
508                            }
509                          },
510                          "loc": {
511                            "start": {
512                              "line": 23,
513                              "column": 35
514                            },
515                            "end": {
516                              "line": 23,
517                              "column": 42
518                            }
519                          }
520                        }
521                      ],
522                      "loc": {
523                        "start": {
524                          "line": 23,
525                          "column": 34
526                        },
527                        "end": {
528                          "line": 23,
529                          "column": 42
530                        }
531                      }
532                    },
533                    "loc": {
534                      "start": {
535                        "line": 23,
536                        "column": 20
537                      },
538                      "end": {
539                        "line": 24,
540                        "column": 2
541                      }
542                    }
543                  },
544                  "loc": {
545                    "start": {
546                      "line": 23,
547                      "column": 20
548                    },
549                    "end": {
550                      "line": 24,
551                      "column": 2
552                    }
553                  }
554                },
555                "declare": true,
556                "loc": {
557                  "start": {
558                    "line": 23,
559                    "column": 16
560                  },
561                  "end": {
562                    "line": 23,
563                    "column": 16
564                  }
565                }
566              },
567              "loc": {
568                "start": {
569                  "line": 23,
570                  "column": 16
571                },
572                "end": {
573                  "line": 23,
574                  "column": 16
575                }
576              }
577            },
578            "overloads": [],
579            "decorators": [],
580            "loc": {
581              "start": {
582                "line": 23,
583                "column": 3
584              },
585              "end": {
586                "line": 23,
587                "column": 16
588              }
589            }
590          }
591        ],
592        "loc": {
593          "start": {
594            "line": 16,
595            "column": 53
596          },
597          "end": {
598            "line": 24,
599            "column": 2
600          }
601        }
602      },
603      "loc": {
604        "start": {
605          "line": 16,
606          "column": 9
607        },
608        "end": {
609          "line": 24,
610          "column": 2
611        }
612      }
613    },
614    {
615      "type": "ClassDeclaration",
616      "definition": {
617        "id": {
618          "type": "Identifier",
619          "name": "C",
620          "decorators": [],
621          "loc": {
622            "start": {
623              "line": 26,
624              "column": 15
625            },
626            "end": {
627              "line": 26,
628              "column": 16
629            }
630          }
631        },
632        "superClass": null,
633        "implements": [],
634        "body": [
635          {
636            "type": "ClassProperty",
637            "key": {
638              "type": "Identifier",
639              "name": "y",
640              "decorators": [],
641              "loc": {
642                "start": {
643                  "line": 27,
644                  "column": 11
645                },
646                "end": {
647                  "line": 27,
648                  "column": 12
649                }
650              }
651            },
652            "accessibility": "private",
653            "static": false,
654            "readonly": false,
655            "declare": true,
656            "optional": false,
657            "computed": false,
658            "typeAnnotation": {
659              "type": "TSArrayType",
660              "elementType": {
661                "type": "ETSTypeReference",
662                "part": {
663                  "type": "ETSTypeReferencePart",
664                  "name": {
665                    "type": "Identifier",
666                    "name": "string",
667                    "decorators": [],
668                    "loc": {
669                      "start": {
670                        "line": 27,
671                        "column": 14
672                      },
673                      "end": {
674                        "line": 27,
675                        "column": 20
676                      }
677                    }
678                  },
679                  "loc": {
680                    "start": {
681                      "line": 27,
682                      "column": 14
683                    },
684                    "end": {
685                      "line": 27,
686                      "column": 21
687                    }
688                  }
689                },
690                "loc": {
691                  "start": {
692                    "line": 27,
693                    "column": 14
694                  },
695                  "end": {
696                    "line": 27,
697                    "column": 21
698                  }
699                }
700              },
701              "loc": {
702                "start": {
703                  "line": 27,
704                  "column": 22
705                },
706                "end": {
707                  "line": 27,
708                  "column": 23
709                }
710              }
711            },
712            "definite": false,
713            "decorators": [],
714            "loc": {
715              "start": {
716                "line": 27,
717                "column": 11
718              },
719              "end": {
720                "line": 27,
721                "column": 23
722              }
723            }
724          },
725          {
726            "type": "MethodDefinition",
727            "key": {
728              "type": "Identifier",
729              "name": "$_iterator",
730              "decorators": [],
731              "loc": {
732                "start": {
733                  "line": 29,
734                  "column": 19
735                },
736                "end": {
737                  "line": 29,
738                  "column": 20
739                }
740              }
741            },
742            "kind": "method",
743            "accessibility": "public",
744            "static": false,
745            "optional": false,
746            "computed": false,
747            "value": {
748              "type": "FunctionExpression",
749              "function": {
750                "type": "ScriptFunction",
751                "id": {
752                  "type": "Identifier",
753                  "name": "$_iterator",
754                  "decorators": [],
755                  "loc": {
756                    "start": {
757                      "line": 29,
758                      "column": 19
759                    },
760                    "end": {
761                      "line": 29,
762                      "column": 20
763                    }
764                  }
765                },
766                "generator": false,
767                "async": false,
768                "expression": false,
769                "params": [],
770                "returnType": {
771                  "type": "ETSTypeReference",
772                  "part": {
773                    "type": "ETSTypeReferencePart",
774                    "name": {
775                      "type": "Identifier",
776                      "name": "CIterator",
777                      "decorators": [],
778                      "loc": {
779                        "start": {
780                          "line": 29,
781                          "column": 24
782                        },
783                        "end": {
784                          "line": 29,
785                          "column": 33
786                        }
787                      }
788                    },
789                    "loc": {
790                      "start": {
791                        "line": 29,
792                        "column": 24
793                      },
794                      "end": {
795                        "line": 30,
796                        "column": 2
797                      }
798                    }
799                  },
800                  "loc": {
801                    "start": {
802                      "line": 29,
803                      "column": 24
804                    },
805                    "end": {
806                      "line": 30,
807                      "column": 2
808                    }
809                  }
810                },
811                "declare": true,
812                "loc": {
813                  "start": {
814                    "line": 29,
815                    "column": 20
816                  },
817                  "end": {
818                    "line": 29,
819                    "column": 20
820                  }
821                }
822              },
823              "loc": {
824                "start": {
825                  "line": 29,
826                  "column": 20
827                },
828                "end": {
829                  "line": 29,
830                  "column": 20
831                }
832              }
833            },
834            "overloads": [],
835            "decorators": [],
836            "loc": {
837              "start": {
838                "line": 29,
839                "column": 3
840              },
841              "end": {
842                "line": 29,
843                "column": 20
844              }
845            }
846          },
847          {
848            "type": "MethodDefinition",
849            "key": {
850              "type": "Identifier",
851              "name": "constructor",
852              "decorators": [],
853              "loc": {
854                "start": {
855                  "line": 1,
856                  "column": 1
857                },
858                "end": {
859                  "line": 1,
860                  "column": 1
861                }
862              }
863            },
864            "kind": "constructor",
865            "static": false,
866            "optional": false,
867            "computed": false,
868            "value": {
869              "type": "FunctionExpression",
870              "function": {
871                "type": "ScriptFunction",
872                "id": {
873                  "type": "Identifier",
874                  "name": "constructor",
875                  "decorators": [],
876                  "loc": {
877                    "start": {
878                      "line": 1,
879                      "column": 1
880                    },
881                    "end": {
882                      "line": 1,
883                      "column": 1
884                    }
885                  }
886                },
887                "generator": false,
888                "async": false,
889                "expression": false,
890                "params": [],
891                "body": {
892                  "type": "BlockStatement",
893                  "statements": [],
894                  "loc": {
895                    "start": {
896                      "line": 1,
897                      "column": 1
898                    },
899                    "end": {
900                      "line": 1,
901                      "column": 1
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            "overloads": [],
928            "decorators": [],
929            "loc": {
930              "start": {
931                "line": 30,
932                "column": 2
933              },
934              "end": {
935                "line": 30,
936                "column": 2
937              }
938            }
939          }
940        ],
941        "loc": {
942          "start": {
943            "line": 26,
944            "column": 17
945          },
946          "end": {
947            "line": 30,
948            "column": 2
949          }
950        }
951      },
952      "loc": {
953        "start": {
954          "line": 26,
955          "column": 9
956        },
957        "end": {
958          "line": 30,
959          "column": 2
960        }
961      }
962    },
963    {
964      "type": "ClassDeclaration",
965      "definition": {
966        "id": {
967          "type": "Identifier",
968          "name": "ETSGLOBAL",
969          "decorators": [],
970          "loc": {
971            "start": {
972              "line": 1,
973              "column": 1
974            },
975            "end": {
976              "line": 1,
977              "column": 1
978            }
979          }
980        },
981        "superClass": null,
982        "implements": [],
983        "body": [
984          {
985            "type": "MethodDefinition",
986            "key": {
987              "type": "Identifier",
988              "name": "_$init$_",
989              "decorators": [],
990              "loc": {
991                "start": {
992                  "line": 1,
993                  "column": 1
994                },
995                "end": {
996                  "line": 1,
997                  "column": 1
998                }
999              }
1000            },
1001            "kind": "method",
1002            "accessibility": "public",
1003            "static": true,
1004            "optional": false,
1005            "computed": false,
1006            "value": {
1007              "type": "FunctionExpression",
1008              "function": {
1009                "type": "ScriptFunction",
1010                "id": {
1011                  "type": "Identifier",
1012                  "name": "_$init$_",
1013                  "decorators": [],
1014                  "loc": {
1015                    "start": {
1016                      "line": 1,
1017                      "column": 1
1018                    },
1019                    "end": {
1020                      "line": 1,
1021                      "column": 1
1022                    }
1023                  }
1024                },
1025                "generator": false,
1026                "async": false,
1027                "expression": false,
1028                "params": [],
1029                "body": {
1030                  "type": "BlockStatement",
1031                  "statements": [],
1032                  "loc": {
1033                    "start": {
1034                      "line": 1,
1035                      "column": 1
1036                    },
1037                    "end": {
1038                      "line": 1,
1039                      "column": 1
1040                    }
1041                  }
1042                },
1043                "loc": {
1044                  "start": {
1045                    "line": 1,
1046                    "column": 1
1047                  },
1048                  "end": {
1049                    "line": 1,
1050                    "column": 1
1051                  }
1052                }
1053              },
1054              "loc": {
1055                "start": {
1056                  "line": 1,
1057                  "column": 1
1058                },
1059                "end": {
1060                  "line": 1,
1061                  "column": 1
1062                }
1063              }
1064            },
1065            "overloads": [],
1066            "decorators": [],
1067            "loc": {
1068              "start": {
1069                "line": 1,
1070                "column": 1
1071              },
1072              "end": {
1073                "line": 1,
1074                "column": 1
1075              }
1076            }
1077          },
1078          {
1079            "type": "MethodDefinition",
1080            "key": {
1081              "type": "Identifier",
1082              "name": "main",
1083              "decorators": [],
1084              "loc": {
1085                "start": {
1086                  "line": 32,
1087                  "column": 10
1088                },
1089                "end": {
1090                  "line": 32,
1091                  "column": 14
1092                }
1093              }
1094            },
1095            "kind": "method",
1096            "accessibility": "public",
1097            "static": true,
1098            "optional": false,
1099            "computed": false,
1100            "value": {
1101              "type": "FunctionExpression",
1102              "function": {
1103                "type": "ScriptFunction",
1104                "id": {
1105                  "type": "Identifier",
1106                  "name": "main",
1107                  "decorators": [],
1108                  "loc": {
1109                    "start": {
1110                      "line": 32,
1111                      "column": 10
1112                    },
1113                    "end": {
1114                      "line": 32,
1115                      "column": 14
1116                    }
1117                  }
1118                },
1119                "generator": false,
1120                "async": false,
1121                "expression": false,
1122                "params": [],
1123                "returnType": {
1124                  "type": "ETSPrimitiveType",
1125                  "loc": {
1126                    "start": {
1127                      "line": 32,
1128                      "column": 18
1129                    },
1130                    "end": {
1131                      "line": 32,
1132                      "column": 22
1133                    }
1134                  }
1135                },
1136                "body": {
1137                  "type": "BlockStatement",
1138                  "statements": [
1139                    {
1140                      "type": "VariableDeclaration",
1141                      "declarations": [
1142                        {
1143                          "type": "VariableDeclarator",
1144                          "id": {
1145                            "type": "Identifier",
1146                            "name": "c",
1147                            "decorators": [],
1148                            "loc": {
1149                              "start": {
1150                                "line": 34,
1151                                "column": 7
1152                              },
1153                              "end": {
1154                                "line": 34,
1155                                "column": 8
1156                              }
1157                            }
1158                          },
1159                          "init": {
1160                            "type": "ETSNewClassInstanceExpression",
1161                            "typeReference": {
1162                              "type": "ETSTypeReference",
1163                              "part": {
1164                                "type": "ETSTypeReferencePart",
1165                                "name": {
1166                                  "type": "Identifier",
1167                                  "name": "C",
1168                                  "decorators": [],
1169                                  "loc": {
1170                                    "start": {
1171                                      "line": 34,
1172                                      "column": 15
1173                                    },
1174                                    "end": {
1175                                      "line": 34,
1176                                      "column": 16
1177                                    }
1178                                  }
1179                                },
1180                                "loc": {
1181                                  "start": {
1182                                    "line": 34,
1183                                    "column": 15
1184                                  },
1185                                  "end": {
1186                                    "line": 34,
1187                                    "column": 17
1188                                  }
1189                                }
1190                              },
1191                              "loc": {
1192                                "start": {
1193                                  "line": 34,
1194                                  "column": 15
1195                                },
1196                                "end": {
1197                                  "line": 34,
1198                                  "column": 17
1199                                }
1200                              }
1201                            },
1202                            "arguments": [],
1203                            "loc": {
1204                              "start": {
1205                                "line": 34,
1206                                "column": 11
1207                              },
1208                              "end": {
1209                                "line": 34,
1210                                "column": 19
1211                              }
1212                            }
1213                          },
1214                          "loc": {
1215                            "start": {
1216                              "line": 34,
1217                              "column": 7
1218                            },
1219                            "end": {
1220                              "line": 34,
1221                              "column": 19
1222                            }
1223                          }
1224                        }
1225                      ],
1226                      "kind": "let",
1227                      "loc": {
1228                        "start": {
1229                          "line": 34,
1230                          "column": 3
1231                        },
1232                        "end": {
1233                          "line": 34,
1234                          "column": 19
1235                        }
1236                      }
1237                    },
1238                    {
1239                      "type": "VariableDeclaration",
1240                      "declarations": [
1241                        {
1242                          "type": "VariableDeclarator",
1243                          "id": {
1244                            "type": "Identifier",
1245                            "name": "i",
1246                            "typeAnnotation": {
1247                              "type": "ETSPrimitiveType",
1248                              "loc": {
1249                                "start": {
1250                                  "line": 35,
1251                                  "column": 10
1252                                },
1253                                "end": {
1254                                  "line": 35,
1255                                  "column": 13
1256                                }
1257                              }
1258                            },
1259                            "decorators": [],
1260                            "loc": {
1261                              "start": {
1262                                "line": 35,
1263                                "column": 7
1264                              },
1265                              "end": {
1266                                "line": 35,
1267                                "column": 8
1268                              }
1269                            }
1270                          },
1271                          "init": {
1272                            "type": "NumberLiteral",
1273                            "value": 0,
1274                            "loc": {
1275                              "start": {
1276                                "line": 35,
1277                                "column": 16
1278                              },
1279                              "end": {
1280                                "line": 35,
1281                                "column": 17
1282                              }
1283                            }
1284                          },
1285                          "loc": {
1286                            "start": {
1287                              "line": 35,
1288                              "column": 7
1289                            },
1290                            "end": {
1291                              "line": 35,
1292                              "column": 17
1293                            }
1294                          }
1295                        }
1296                      ],
1297                      "kind": "let",
1298                      "loc": {
1299                        "start": {
1300                          "line": 35,
1301                          "column": 3
1302                        },
1303                        "end": {
1304                          "line": 35,
1305                          "column": 18
1306                        }
1307                      }
1308                    },
1309                    {
1310                      "type": "ForOfStatement",
1311                      "await": false,
1312                      "left": {
1313                        "type": "VariableDeclaration",
1314                        "declarations": [
1315                          {
1316                            "type": "VariableDeclarator",
1317                            "id": {
1318                              "type": "Identifier",
1319                              "name": "it",
1320                              "decorators": [],
1321                              "loc": {
1322                                "start": {
1323                                  "line": 37,
1324                                  "column": 12
1325                                },
1326                                "end": {
1327                                  "line": 37,
1328                                  "column": 14
1329                                }
1330                              }
1331                            },
1332                            "init": null,
1333                            "loc": {
1334                              "start": {
1335                                "line": 37,
1336                                "column": 12
1337                              },
1338                              "end": {
1339                                "line": 37,
1340                                "column": 14
1341                              }
1342                            }
1343                          }
1344                        ],
1345                        "kind": "let",
1346                        "loc": {
1347                          "start": {
1348                            "line": 37,
1349                            "column": 8
1350                          },
1351                          "end": {
1352                            "line": 37,
1353                            "column": 14
1354                          }
1355                        }
1356                      },
1357                      "right": {
1358                        "type": "Identifier",
1359                        "name": "c",
1360                        "decorators": [],
1361                        "loc": {
1362                          "start": {
1363                            "line": 37,
1364                            "column": 18
1365                          },
1366                          "end": {
1367                            "line": 37,
1368                            "column": 19
1369                          }
1370                        }
1371                      },
1372                      "body": {
1373                        "type": "BlockStatement",
1374                        "statements": [
1375                          {
1376                            "type": "ExpressionStatement",
1377                            "expression": {
1378                              "type": "AssignmentExpression",
1379                              "operator": "+=",
1380                              "left": {
1381                                "type": "Identifier",
1382                                "name": "it",
1383                                "decorators": [],
1384                                "loc": {
1385                                  "start": {
1386                                    "line": 38,
1387                                    "column": 5
1388                                  },
1389                                  "end": {
1390                                    "line": 38,
1391                                    "column": 7
1392                                  }
1393                                }
1394                              },
1395                              "right": {
1396                                "type": "StringLiteral",
1397                                "value": ": in for",
1398                                "loc": {
1399                                  "start": {
1400                                    "line": 38,
1401                                    "column": 11
1402                                  },
1403                                  "end": {
1404                                    "line": 38,
1405                                    "column": 21
1406                                  }
1407                                }
1408                              },
1409                              "loc": {
1410                                "start": {
1411                                  "line": 38,
1412                                  "column": 5
1413                                },
1414                                "end": {
1415                                  "line": 38,
1416                                  "column": 21
1417                                }
1418                              }
1419                            },
1420                            "loc": {
1421                              "start": {
1422                                "line": 38,
1423                                "column": 5
1424                              },
1425                              "end": {
1426                                "line": 38,
1427                                "column": 22
1428                              }
1429                            }
1430                          },
1431                          {
1432                            "type": "IfStatement",
1433                            "test": {
1434                              "type": "BinaryExpression",
1435                              "operator": "==",
1436                              "left": {
1437                                "type": "Identifier",
1438                                "name": "i",
1439                                "decorators": [],
1440                                "loc": {
1441                                  "start": {
1442                                    "line": 40,
1443                                    "column": 9
1444                                  },
1445                                  "end": {
1446                                    "line": 40,
1447                                    "column": 10
1448                                  }
1449                                }
1450                              },
1451                              "right": {
1452                                "type": "NumberLiteral",
1453                                "value": 0,
1454                                "loc": {
1455                                  "start": {
1456                                    "line": 40,
1457                                    "column": 14
1458                                  },
1459                                  "end": {
1460                                    "line": 40,
1461                                    "column": 15
1462                                  }
1463                                }
1464                              },
1465                              "loc": {
1466                                "start": {
1467                                  "line": 40,
1468                                  "column": 9
1469                                },
1470                                "end": {
1471                                  "line": 40,
1472                                  "column": 15
1473                                }
1474                              }
1475                            },
1476                            "consequent": {
1477                              "type": "BlockStatement",
1478                              "statements": [
1479                                {
1480                                  "type": "AssertStatement",
1481                                  "test": {
1482                                    "type": "BinaryExpression",
1483                                    "operator": "==",
1484                                    "left": {
1485                                      "type": "Identifier",
1486                                      "name": "it",
1487                                      "decorators": [],
1488                                      "loc": {
1489                                        "start": {
1490                                          "line": 41,
1491                                          "column": 15
1492                                        },
1493                                        "end": {
1494                                          "line": 41,
1495                                          "column": 17
1496                                        }
1497                                      }
1498                                    },
1499                                    "right": {
1500                                      "type": "StringLiteral",
1501                                      "value": "one: in for",
1502                                      "loc": {
1503                                        "start": {
1504                                          "line": 41,
1505                                          "column": 21
1506                                        },
1507                                        "end": {
1508                                          "line": 41,
1509                                          "column": 34
1510                                        }
1511                                      }
1512                                    },
1513                                    "loc": {
1514                                      "start": {
1515                                        "line": 41,
1516                                        "column": 14
1517                                      },
1518                                      "end": {
1519                                        "line": 41,
1520                                        "column": 35
1521                                      }
1522                                    }
1523                                  },
1524                                  "second": null,
1525                                  "loc": {
1526                                    "start": {
1527                                      "line": 41,
1528                                      "column": 8
1529                                    },
1530                                    "end": {
1531                                      "line": 41,
1532                                      "column": 36
1533                                    }
1534                                  }
1535                                }
1536                              ],
1537                              "loc": {
1538                                "start": {
1539                                  "line": 40,
1540                                  "column": 17
1541                                },
1542                                "end": {
1543                                  "line": 42,
1544                                  "column": 6
1545                                }
1546                              }
1547                            },
1548                            "alternate": {
1549                              "type": "IfStatement",
1550                              "test": {
1551                                "type": "BinaryExpression",
1552                                "operator": "==",
1553                                "left": {
1554                                  "type": "Identifier",
1555                                  "name": "i",
1556                                  "decorators": [],
1557                                  "loc": {
1558                                    "start": {
1559                                      "line": 42,
1560                                      "column": 16
1561                                    },
1562                                    "end": {
1563                                      "line": 42,
1564                                      "column": 17
1565                                    }
1566                                  }
1567                                },
1568                                "right": {
1569                                  "type": "NumberLiteral",
1570                                  "value": 1,
1571                                  "loc": {
1572                                    "start": {
1573                                      "line": 42,
1574                                      "column": 21
1575                                    },
1576                                    "end": {
1577                                      "line": 42,
1578                                      "column": 22
1579                                    }
1580                                  }
1581                                },
1582                                "loc": {
1583                                  "start": {
1584                                    "line": 42,
1585                                    "column": 16
1586                                  },
1587                                  "end": {
1588                                    "line": 42,
1589                                    "column": 22
1590                                  }
1591                                }
1592                              },
1593                              "consequent": {
1594                                "type": "BlockStatement",
1595                                "statements": [
1596                                  {
1597                                    "type": "AssertStatement",
1598                                    "test": {
1599                                      "type": "BinaryExpression",
1600                                      "operator": "==",
1601                                      "left": {
1602                                        "type": "Identifier",
1603                                        "name": "it",
1604                                        "decorators": [],
1605                                        "loc": {
1606                                          "start": {
1607                                            "line": 43,
1608                                            "column": 15
1609                                          },
1610                                          "end": {
1611                                            "line": 43,
1612                                            "column": 17
1613                                          }
1614                                        }
1615                                      },
1616                                      "right": {
1617                                        "type": "StringLiteral",
1618                                        "value": "two: in for",
1619                                        "loc": {
1620                                          "start": {
1621                                            "line": 43,
1622                                            "column": 21
1623                                          },
1624                                          "end": {
1625                                            "line": 43,
1626                                            "column": 34
1627                                          }
1628                                        }
1629                                      },
1630                                      "loc": {
1631                                        "start": {
1632                                          "line": 43,
1633                                          "column": 14
1634                                        },
1635                                        "end": {
1636                                          "line": 43,
1637                                          "column": 35
1638                                        }
1639                                      }
1640                                    },
1641                                    "second": null,
1642                                    "loc": {
1643                                      "start": {
1644                                        "line": 43,
1645                                        "column": 8
1646                                      },
1647                                      "end": {
1648                                        "line": 43,
1649                                        "column": 35
1650                                      }
1651                                    }
1652                                  }
1653                                ],
1654                                "loc": {
1655                                  "start": {
1656                                    "line": 42,
1657                                    "column": 24
1658                                  },
1659                                  "end": {
1660                                    "line": 44,
1661                                    "column": 6
1662                                  }
1663                                }
1664                              },
1665                              "alternate": {
1666                                "type": "IfStatement",
1667                                "test": {
1668                                  "type": "BinaryExpression",
1669                                  "operator": "==",
1670                                  "left": {
1671                                    "type": "Identifier",
1672                                    "name": "i",
1673                                    "decorators": [],
1674                                    "loc": {
1675                                      "start": {
1676                                        "line": 44,
1677                                        "column": 16
1678                                      },
1679                                      "end": {
1680                                        "line": 44,
1681                                        "column": 17
1682                                      }
1683                                    }
1684                                  },
1685                                  "right": {
1686                                    "type": "NumberLiteral",
1687                                    "value": 2,
1688                                    "loc": {
1689                                      "start": {
1690                                        "line": 44,
1691                                        "column": 21
1692                                      },
1693                                      "end": {
1694                                        "line": 44,
1695                                        "column": 22
1696                                      }
1697                                    }
1698                                  },
1699                                  "loc": {
1700                                    "start": {
1701                                      "line": 44,
1702                                      "column": 16
1703                                    },
1704                                    "end": {
1705                                      "line": 44,
1706                                      "column": 22
1707                                    }
1708                                  }
1709                                },
1710                                "consequent": {
1711                                  "type": "BlockStatement",
1712                                  "statements": [
1713                                    {
1714                                      "type": "AssertStatement",
1715                                      "test": {
1716                                        "type": "BinaryExpression",
1717                                        "operator": "==",
1718                                        "left": {
1719                                          "type": "Identifier",
1720                                          "name": "it",
1721                                          "decorators": [],
1722                                          "loc": {
1723                                            "start": {
1724                                              "line": 45,
1725                                              "column": 15
1726                                            },
1727                                            "end": {
1728                                              "line": 45,
1729                                              "column": 17
1730                                            }
1731                                          }
1732                                        },
1733                                        "right": {
1734                                          "type": "StringLiteral",
1735                                          "value": "three: in for",
1736                                          "loc": {
1737                                            "start": {
1738                                              "line": 45,
1739                                              "column": 21
1740                                            },
1741                                            "end": {
1742                                              "line": 45,
1743                                              "column": 36
1744                                            }
1745                                          }
1746                                        },
1747                                        "loc": {
1748                                          "start": {
1749                                            "line": 45,
1750                                            "column": 14
1751                                          },
1752                                          "end": {
1753                                            "line": 45,
1754                                            "column": 37
1755                                          }
1756                                        }
1757                                      },
1758                                      "second": null,
1759                                      "loc": {
1760                                        "start": {
1761                                          "line": 45,
1762                                          "column": 8
1763                                        },
1764                                        "end": {
1765                                          "line": 45,
1766                                          "column": 37
1767                                        }
1768                                      }
1769                                    }
1770                                  ],
1771                                  "loc": {
1772                                    "start": {
1773                                      "line": 44,
1774                                      "column": 24
1775                                    },
1776                                    "end": {
1777                                      "line": 46,
1778                                      "column": 6
1779                                    }
1780                                  }
1781                                },
1782                                "alternate": {
1783                                  "type": "BlockStatement",
1784                                  "statements": [
1785                                    {
1786                                      "type": "AssertStatement",
1787                                      "test": {
1788                                        "type": "BooleanLiteral",
1789                                        "value": false,
1790                                        "loc": {
1791                                          "start": {
1792                                            "line": 47,
1793                                            "column": 14
1794                                          },
1795                                          "end": {
1796                                            "line": 47,
1797                                            "column": 21
1798                                          }
1799                                        }
1800                                      },
1801                                      "second": null,
1802                                      "loc": {
1803                                        "start": {
1804                                          "line": 47,
1805                                          "column": 8
1806                                        },
1807                                        "end": {
1808                                          "line": 47,
1809                                          "column": 22
1810                                        }
1811                                      }
1812                                    }
1813                                  ],
1814                                  "loc": {
1815                                    "start": {
1816                                      "line": 46,
1817                                      "column": 12
1818                                    },
1819                                    "end": {
1820                                      "line": 48,
1821                                      "column": 6
1822                                    }
1823                                  }
1824                                },
1825                                "loc": {
1826                                  "start": {
1827                                    "line": 44,
1828                                    "column": 12
1829                                  },
1830                                  "end": {
1831                                    "line": 48,
1832                                    "column": 6
1833                                  }
1834                                }
1835                              },
1836                              "loc": {
1837                                "start": {
1838                                  "line": 42,
1839                                  "column": 12
1840                                },
1841                                "end": {
1842                                  "line": 48,
1843                                  "column": 6
1844                                }
1845                              }
1846                            },
1847                            "loc": {
1848                              "start": {
1849                                "line": 40,
1850                                "column": 5
1851                              },
1852                              "end": {
1853                                "line": 48,
1854                                "column": 6
1855                              }
1856                            }
1857                          },
1858                          {
1859                            "type": "ExpressionStatement",
1860                            "expression": {
1861                              "type": "UpdateExpression",
1862                              "operator": "++",
1863                              "prefix": true,
1864                              "argument": {
1865                                "type": "Identifier",
1866                                "name": "i",
1867                                "decorators": [],
1868                                "loc": {
1869                                  "start": {
1870                                    "line": 50,
1871                                    "column": 7
1872                                  },
1873                                  "end": {
1874                                    "line": 50,
1875                                    "column": 8
1876                                  }
1877                                }
1878                              },
1879                              "loc": {
1880                                "start": {
1881                                  "line": 50,
1882                                  "column": 5
1883                                },
1884                                "end": {
1885                                  "line": 50,
1886                                  "column": 8
1887                                }
1888                              }
1889                            },
1890                            "loc": {
1891                              "start": {
1892                                "line": 50,
1893                                "column": 5
1894                              },
1895                              "end": {
1896                                "line": 50,
1897                                "column": 9
1898                              }
1899                            }
1900                          }
1901                        ],
1902                        "loc": {
1903                          "start": {
1904                            "line": 37,
1905                            "column": 21
1906                          },
1907                          "end": {
1908                            "line": 51,
1909                            "column": 4
1910                          }
1911                        }
1912                      },
1913                      "loc": {
1914                        "start": {
1915                          "line": 37,
1916                          "column": 3
1917                        },
1918                        "end": {
1919                          "line": 51,
1920                          "column": 4
1921                        }
1922                      }
1923                    }
1924                  ],
1925                  "loc": {
1926                    "start": {
1927                      "line": 32,
1928                      "column": 23
1929                    },
1930                    "end": {
1931                      "line": 52,
1932                      "column": 2
1933                    }
1934                  }
1935                },
1936                "loc": {
1937                  "start": {
1938                    "line": 32,
1939                    "column": 14
1940                  },
1941                  "end": {
1942                    "line": 52,
1943                    "column": 2
1944                  }
1945                }
1946              },
1947              "loc": {
1948                "start": {
1949                  "line": 32,
1950                  "column": 14
1951                },
1952                "end": {
1953                  "line": 52,
1954                  "column": 2
1955                }
1956              }
1957            },
1958            "overloads": [],
1959            "decorators": [],
1960            "loc": {
1961              "start": {
1962                "line": 32,
1963                "column": 1
1964              },
1965              "end": {
1966                "line": 52,
1967                "column": 2
1968              }
1969            }
1970          }
1971        ],
1972        "loc": {
1973          "start": {
1974            "line": 1,
1975            "column": 1
1976          },
1977          "end": {
1978            "line": 1,
1979            "column": 1
1980          }
1981        }
1982      },
1983      "loc": {
1984        "start": {
1985          "line": 1,
1986          "column": 1
1987        },
1988        "end": {
1989          "line": 1,
1990          "column": 1
1991        }
1992      }
1993    }
1994  ],
1995  "loc": {
1996    "start": {
1997      "line": 1,
1998      "column": 1
1999    },
2000    "end": {
2001      "line": 52,
2002      "column": 2
2003    }
2004  }
2005}
2006