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