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