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