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