• 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": "NumberLiteral",
1567              "value": -4,
1568              "loc": {
1569                "start": {
1570                  "line": 38,
1571                  "column": 30
1572                },
1573                "end": {
1574                  "line": 38,
1575                  "column": 32
1576                }
1577              }
1578            },
1579            "accessibility": "public",
1580            "static": true,
1581            "readonly": true,
1582            "declare": false,
1583            "optional": false,
1584            "computed": false,
1585            "definite": false,
1586            "decorators": [],
1587            "loc": {
1588              "start": {
1589                "line": 38,
1590                "column": 19
1591              },
1592              "end": {
1593                "line": 38,
1594                "column": 32
1595              }
1596            }
1597          },
1598          {
1599            "type": "MethodDefinition",
1600            "key": {
1601              "type": "Identifier",
1602              "name": "bottomUpTree",
1603              "decorators": [],
1604              "loc": {
1605                "start": {
1606                  "line": 40,
1607                  "column": 10
1608                },
1609                "end": {
1610                  "line": 40,
1611                  "column": 22
1612                }
1613              }
1614            },
1615            "kind": "method",
1616            "accessibility": "public",
1617            "static": true,
1618            "optional": false,
1619            "computed": false,
1620            "value": {
1621              "type": "FunctionExpression",
1622              "function": {
1623                "type": "ScriptFunction",
1624                "id": {
1625                  "type": "Identifier",
1626                  "name": "bottomUpTree",
1627                  "decorators": [],
1628                  "loc": {
1629                    "start": {
1630                      "line": 40,
1631                      "column": 10
1632                    },
1633                    "end": {
1634                      "line": 40,
1635                      "column": 22
1636                    }
1637                  }
1638                },
1639                "generator": false,
1640                "async": false,
1641                "expression": false,
1642                "params": [
1643                  {
1644                    "type": "ETSParameterExpression",
1645                    "name": {
1646                      "type": "Identifier",
1647                      "name": "item",
1648                      "typeAnnotation": {
1649                        "type": "ETSPrimitiveType",
1650                        "loc": {
1651                          "start": {
1652                            "line": 40,
1653                            "column": 29
1654                          },
1655                          "end": {
1656                            "line": 40,
1657                            "column": 32
1658                          }
1659                        }
1660                      },
1661                      "decorators": [],
1662                      "loc": {
1663                        "start": {
1664                          "line": 40,
1665                          "column": 23
1666                        },
1667                        "end": {
1668                          "line": 40,
1669                          "column": 32
1670                        }
1671                      }
1672                    },
1673                    "loc": {
1674                      "start": {
1675                        "line": 40,
1676                        "column": 23
1677                      },
1678                      "end": {
1679                        "line": 40,
1680                        "column": 32
1681                      }
1682                    }
1683                  },
1684                  {
1685                    "type": "ETSParameterExpression",
1686                    "name": {
1687                      "type": "Identifier",
1688                      "name": "depth",
1689                      "typeAnnotation": {
1690                        "type": "ETSPrimitiveType",
1691                        "loc": {
1692                          "start": {
1693                            "line": 40,
1694                            "column": 41
1695                          },
1696                          "end": {
1697                            "line": 40,
1698                            "column": 44
1699                          }
1700                        }
1701                      },
1702                      "decorators": [],
1703                      "loc": {
1704                        "start": {
1705                          "line": 40,
1706                          "column": 34
1707                        },
1708                        "end": {
1709                          "line": 40,
1710                          "column": 44
1711                        }
1712                      }
1713                    },
1714                    "loc": {
1715                      "start": {
1716                        "line": 40,
1717                        "column": 34
1718                      },
1719                      "end": {
1720                        "line": 40,
1721                        "column": 44
1722                      }
1723                    }
1724                  }
1725                ],
1726                "returnType": {
1727                  "type": "ETSTypeReference",
1728                  "part": {
1729                    "type": "ETSTypeReferencePart",
1730                    "name": {
1731                      "type": "Identifier",
1732                      "name": "TreeNode",
1733                      "decorators": [],
1734                      "loc": {
1735                        "start": {
1736                          "line": 40,
1737                          "column": 47
1738                        },
1739                        "end": {
1740                          "line": 40,
1741                          "column": 55
1742                        }
1743                      }
1744                    },
1745                    "loc": {
1746                      "start": {
1747                        "line": 40,
1748                        "column": 47
1749                      },
1750                      "end": {
1751                        "line": 40,
1752                        "column": 57
1753                      }
1754                    }
1755                  },
1756                  "loc": {
1757                    "start": {
1758                      "line": 40,
1759                      "column": 47
1760                    },
1761                    "end": {
1762                      "line": 40,
1763                      "column": 57
1764                    }
1765                  }
1766                },
1767                "body": {
1768                  "type": "BlockStatement",
1769                  "statements": [
1770                    {
1771                      "type": "IfStatement",
1772                      "test": {
1773                        "type": "BinaryExpression",
1774                        "operator": ">",
1775                        "left": {
1776                          "type": "Identifier",
1777                          "name": "depth",
1778                          "decorators": [],
1779                          "loc": {
1780                            "start": {
1781                              "line": 41,
1782                              "column": 8
1783                            },
1784                            "end": {
1785                              "line": 41,
1786                              "column": 13
1787                            }
1788                          }
1789                        },
1790                        "right": {
1791                          "type": "NumberLiteral",
1792                          "value": 0,
1793                          "loc": {
1794                            "start": {
1795                              "line": 41,
1796                              "column": 16
1797                            },
1798                            "end": {
1799                              "line": 41,
1800                              "column": 17
1801                            }
1802                          }
1803                        },
1804                        "loc": {
1805                          "start": {
1806                            "line": 41,
1807                            "column": 8
1808                          },
1809                          "end": {
1810                            "line": 41,
1811                            "column": 17
1812                          }
1813                        }
1814                      },
1815                      "consequent": {
1816                        "type": "BlockStatement",
1817                        "statements": [
1818                          {
1819                            "type": "ReturnStatement",
1820                            "argument": {
1821                              "type": "ETSNewClassInstanceExpression",
1822                              "typeReference": {
1823                                "type": "ETSTypeReference",
1824                                "part": {
1825                                  "type": "ETSTypeReferencePart",
1826                                  "name": {
1827                                    "type": "Identifier",
1828                                    "name": "TreeNode",
1829                                    "decorators": [],
1830                                    "loc": {
1831                                      "start": {
1832                                        "line": 42,
1833                                        "column": 17
1834                                      },
1835                                      "end": {
1836                                        "line": 42,
1837                                        "column": 25
1838                                      }
1839                                    }
1840                                  },
1841                                  "loc": {
1842                                    "start": {
1843                                      "line": 42,
1844                                      "column": 17
1845                                    },
1846                                    "end": {
1847                                      "line": 42,
1848                                      "column": 26
1849                                    }
1850                                  }
1851                                },
1852                                "loc": {
1853                                  "start": {
1854                                    "line": 42,
1855                                    "column": 17
1856                                  },
1857                                  "end": {
1858                                    "line": 42,
1859                                    "column": 26
1860                                  }
1861                                }
1862                              },
1863                              "arguments": [
1864                                {
1865                                  "type": "CallExpression",
1866                                  "callee": {
1867                                    "type": "MemberExpression",
1868                                    "object": {
1869                                      "type": "Identifier",
1870                                      "name": "AccessBinaryTrees",
1871                                      "decorators": [],
1872                                      "loc": {
1873                                        "start": {
1874                                          "line": 43,
1875                                          "column": 8
1876                                        },
1877                                        "end": {
1878                                          "line": 43,
1879                                          "column": 25
1880                                        }
1881                                      }
1882                                    },
1883                                    "property": {
1884                                      "type": "Identifier",
1885                                      "name": "bottomUpTree",
1886                                      "decorators": [],
1887                                      "loc": {
1888                                        "start": {
1889                                          "line": 43,
1890                                          "column": 26
1891                                        },
1892                                        "end": {
1893                                          "line": 43,
1894                                          "column": 38
1895                                        }
1896                                      }
1897                                    },
1898                                    "computed": false,
1899                                    "optional": false,
1900                                    "loc": {
1901                                      "start": {
1902                                        "line": 43,
1903                                        "column": 8
1904                                      },
1905                                      "end": {
1906                                        "line": 43,
1907                                        "column": 38
1908                                      }
1909                                    }
1910                                  },
1911                                  "arguments": [
1912                                    {
1913                                      "type": "BinaryExpression",
1914                                      "operator": "-",
1915                                      "left": {
1916                                        "type": "BinaryExpression",
1917                                        "operator": "*",
1918                                        "left": {
1919                                          "type": "NumberLiteral",
1920                                          "value": 2,
1921                                          "loc": {
1922                                            "start": {
1923                                              "line": 43,
1924                                              "column": 39
1925                                            },
1926                                            "end": {
1927                                              "line": 43,
1928                                              "column": 40
1929                                            }
1930                                          }
1931                                        },
1932                                        "right": {
1933                                          "type": "Identifier",
1934                                          "name": "item",
1935                                          "decorators": [],
1936                                          "loc": {
1937                                            "start": {
1938                                              "line": 43,
1939                                              "column": 41
1940                                            },
1941                                            "end": {
1942                                              "line": 43,
1943                                              "column": 45
1944                                            }
1945                                          }
1946                                        },
1947                                        "loc": {
1948                                          "start": {
1949                                            "line": 43,
1950                                            "column": 39
1951                                          },
1952                                          "end": {
1953                                            "line": 43,
1954                                            "column": 45
1955                                          }
1956                                        }
1957                                      },
1958                                      "right": {
1959                                        "type": "NumberLiteral",
1960                                        "value": 1,
1961                                        "loc": {
1962                                          "start": {
1963                                            "line": 43,
1964                                            "column": 48
1965                                          },
1966                                          "end": {
1967                                            "line": 43,
1968                                            "column": 49
1969                                          }
1970                                        }
1971                                      },
1972                                      "loc": {
1973                                        "start": {
1974                                          "line": 43,
1975                                          "column": 39
1976                                        },
1977                                        "end": {
1978                                          "line": 43,
1979                                          "column": 49
1980                                        }
1981                                      }
1982                                    },
1983                                    {
1984                                      "type": "BinaryExpression",
1985                                      "operator": "-",
1986                                      "left": {
1987                                        "type": "Identifier",
1988                                        "name": "depth",
1989                                        "decorators": [],
1990                                        "loc": {
1991                                          "start": {
1992                                            "line": 43,
1993                                            "column": 51
1994                                          },
1995                                          "end": {
1996                                            "line": 43,
1997                                            "column": 56
1998                                          }
1999                                        }
2000                                      },
2001                                      "right": {
2002                                        "type": "NumberLiteral",
2003                                        "value": 1,
2004                                        "loc": {
2005                                          "start": {
2006                                            "line": 43,
2007                                            "column": 57
2008                                          },
2009                                          "end": {
2010                                            "line": 43,
2011                                            "column": 58
2012                                          }
2013                                        }
2014                                      },
2015                                      "loc": {
2016                                        "start": {
2017                                          "line": 43,
2018                                          "column": 51
2019                                        },
2020                                        "end": {
2021                                          "line": 43,
2022                                          "column": 58
2023                                        }
2024                                      }
2025                                    }
2026                                  ],
2027                                  "optional": false,
2028                                  "loc": {
2029                                    "start": {
2030                                      "line": 43,
2031                                      "column": 8
2032                                    },
2033                                    "end": {
2034                                      "line": 43,
2035                                      "column": 59
2036                                    }
2037                                  }
2038                                },
2039                                {
2040                                  "type": "CallExpression",
2041                                  "callee": {
2042                                    "type": "MemberExpression",
2043                                    "object": {
2044                                      "type": "Identifier",
2045                                      "name": "AccessBinaryTrees",
2046                                      "decorators": [],
2047                                      "loc": {
2048                                        "start": {
2049                                          "line": 44,
2050                                          "column": 8
2051                                        },
2052                                        "end": {
2053                                          "line": 44,
2054                                          "column": 25
2055                                        }
2056                                      }
2057                                    },
2058                                    "property": {
2059                                      "type": "Identifier",
2060                                      "name": "bottomUpTree",
2061                                      "decorators": [],
2062                                      "loc": {
2063                                        "start": {
2064                                          "line": 44,
2065                                          "column": 26
2066                                        },
2067                                        "end": {
2068                                          "line": 44,
2069                                          "column": 38
2070                                        }
2071                                      }
2072                                    },
2073                                    "computed": false,
2074                                    "optional": false,
2075                                    "loc": {
2076                                      "start": {
2077                                        "line": 44,
2078                                        "column": 8
2079                                      },
2080                                      "end": {
2081                                        "line": 44,
2082                                        "column": 38
2083                                      }
2084                                    }
2085                                  },
2086                                  "arguments": [
2087                                    {
2088                                      "type": "BinaryExpression",
2089                                      "operator": "*",
2090                                      "left": {
2091                                        "type": "NumberLiteral",
2092                                        "value": 2,
2093                                        "loc": {
2094                                          "start": {
2095                                            "line": 44,
2096                                            "column": 39
2097                                          },
2098                                          "end": {
2099                                            "line": 44,
2100                                            "column": 40
2101                                          }
2102                                        }
2103                                      },
2104                                      "right": {
2105                                        "type": "Identifier",
2106                                        "name": "item",
2107                                        "decorators": [],
2108                                        "loc": {
2109                                          "start": {
2110                                            "line": 44,
2111                                            "column": 41
2112                                          },
2113                                          "end": {
2114                                            "line": 44,
2115                                            "column": 45
2116                                          }
2117                                        }
2118                                      },
2119                                      "loc": {
2120                                        "start": {
2121                                          "line": 44,
2122                                          "column": 39
2123                                        },
2124                                        "end": {
2125                                          "line": 44,
2126                                          "column": 45
2127                                        }
2128                                      }
2129                                    },
2130                                    {
2131                                      "type": "BinaryExpression",
2132                                      "operator": "-",
2133                                      "left": {
2134                                        "type": "Identifier",
2135                                        "name": "depth",
2136                                        "decorators": [],
2137                                        "loc": {
2138                                          "start": {
2139                                            "line": 44,
2140                                            "column": 47
2141                                          },
2142                                          "end": {
2143                                            "line": 44,
2144                                            "column": 52
2145                                          }
2146                                        }
2147                                      },
2148                                      "right": {
2149                                        "type": "NumberLiteral",
2150                                        "value": 1,
2151                                        "loc": {
2152                                          "start": {
2153                                            "line": 44,
2154                                            "column": 53
2155                                          },
2156                                          "end": {
2157                                            "line": 44,
2158                                            "column": 54
2159                                          }
2160                                        }
2161                                      },
2162                                      "loc": {
2163                                        "start": {
2164                                          "line": 44,
2165                                          "column": 47
2166                                        },
2167                                        "end": {
2168                                          "line": 44,
2169                                          "column": 54
2170                                        }
2171                                      }
2172                                    }
2173                                  ],
2174                                  "optional": false,
2175                                  "loc": {
2176                                    "start": {
2177                                      "line": 44,
2178                                      "column": 8
2179                                    },
2180                                    "end": {
2181                                      "line": 44,
2182                                      "column": 55
2183                                    }
2184                                  }
2185                                },
2186                                {
2187                                  "type": "Identifier",
2188                                  "name": "item",
2189                                  "decorators": [],
2190                                  "loc": {
2191                                    "start": {
2192                                      "line": 45,
2193                                      "column": 8
2194                                    },
2195                                    "end": {
2196                                      "line": 45,
2197                                      "column": 12
2198                                    }
2199                                  }
2200                                }
2201                              ],
2202                              "loc": {
2203                                "start": {
2204                                  "line": 42,
2205                                  "column": 13
2206                                },
2207                                "end": {
2208                                  "line": 46,
2209                                  "column": 8
2210                                }
2211                              }
2212                            },
2213                            "loc": {
2214                              "start": {
2215                                "line": 42,
2216                                "column": 6
2217                              },
2218                              "end": {
2219                                "line": 46,
2220                                "column": 8
2221                              }
2222                            }
2223                          }
2224                        ],
2225                        "loc": {
2226                          "start": {
2227                            "line": 41,
2228                            "column": 19
2229                          },
2230                          "end": {
2231                            "line": 47,
2232                            "column": 5
2233                          }
2234                        }
2235                      },
2236                      "alternate": null,
2237                      "loc": {
2238                        "start": {
2239                          "line": 41,
2240                          "column": 4
2241                        },
2242                        "end": {
2243                          "line": 47,
2244                          "column": 5
2245                        }
2246                      }
2247                    },
2248                    {
2249                      "type": "ReturnStatement",
2250                      "argument": {
2251                        "type": "ETSNewClassInstanceExpression",
2252                        "typeReference": {
2253                          "type": "ETSTypeReference",
2254                          "part": {
2255                            "type": "ETSTypeReferencePart",
2256                            "name": {
2257                              "type": "Identifier",
2258                              "name": "TreeNode",
2259                              "decorators": [],
2260                              "loc": {
2261                                "start": {
2262                                  "line": 48,
2263                                  "column": 15
2264                                },
2265                                "end": {
2266                                  "line": 48,
2267                                  "column": 23
2268                                }
2269                              }
2270                            },
2271                            "loc": {
2272                              "start": {
2273                                "line": 48,
2274                                "column": 15
2275                              },
2276                              "end": {
2277                                "line": 48,
2278                                "column": 24
2279                              }
2280                            }
2281                          },
2282                          "loc": {
2283                            "start": {
2284                              "line": 48,
2285                              "column": 15
2286                            },
2287                            "end": {
2288                              "line": 48,
2289                              "column": 24
2290                            }
2291                          }
2292                        },
2293                        "arguments": [
2294                          {
2295                            "type": "NullLiteral",
2296                            "value": null,
2297                            "loc": {
2298                              "start": {
2299                                "line": 48,
2300                                "column": 24
2301                              },
2302                              "end": {
2303                                "line": 48,
2304                                "column": 28
2305                              }
2306                            }
2307                          },
2308                          {
2309                            "type": "NullLiteral",
2310                            "value": null,
2311                            "loc": {
2312                              "start": {
2313                                "line": 48,
2314                                "column": 30
2315                              },
2316                              "end": {
2317                                "line": 48,
2318                                "column": 34
2319                              }
2320                            }
2321                          },
2322                          {
2323                            "type": "Identifier",
2324                            "name": "item",
2325                            "decorators": [],
2326                            "loc": {
2327                              "start": {
2328                                "line": 48,
2329                                "column": 36
2330                              },
2331                              "end": {
2332                                "line": 48,
2333                                "column": 40
2334                              }
2335                            }
2336                          }
2337                        ],
2338                        "loc": {
2339                          "start": {
2340                            "line": 48,
2341                            "column": 11
2342                          },
2343                          "end": {
2344                            "line": 48,
2345                            "column": 42
2346                          }
2347                        }
2348                      },
2349                      "loc": {
2350                        "start": {
2351                          "line": 48,
2352                          "column": 4
2353                        },
2354                        "end": {
2355                          "line": 48,
2356                          "column": 42
2357                        }
2358                      }
2359                    }
2360                  ],
2361                  "loc": {
2362                    "start": {
2363                      "line": 40,
2364                      "column": 56
2365                    },
2366                    "end": {
2367                      "line": 49,
2368                      "column": 4
2369                    }
2370                  }
2371                },
2372                "loc": {
2373                  "start": {
2374                    "line": 40,
2375                    "column": 22
2376                  },
2377                  "end": {
2378                    "line": 49,
2379                    "column": 4
2380                  }
2381                }
2382              },
2383              "loc": {
2384                "start": {
2385                  "line": 40,
2386                  "column": 22
2387                },
2388                "end": {
2389                  "line": 49,
2390                  "column": 4
2391                }
2392              }
2393            },
2394            "overloads": [],
2395            "decorators": [],
2396            "loc": {
2397              "start": {
2398                "line": 40,
2399                "column": 3
2400              },
2401              "end": {
2402                "line": 49,
2403                "column": 4
2404              }
2405            }
2406          },
2407          {
2408            "type": "MethodDefinition",
2409            "key": {
2410              "type": "Identifier",
2411              "name": "run",
2412              "decorators": [],
2413              "loc": {
2414                "start": {
2415                  "line": 51,
2416                  "column": 10
2417                },
2418                "end": {
2419                  "line": 51,
2420                  "column": 13
2421                }
2422              }
2423            },
2424            "kind": "method",
2425            "accessibility": "public",
2426            "static": false,
2427            "optional": false,
2428            "computed": false,
2429            "value": {
2430              "type": "FunctionExpression",
2431              "function": {
2432                "type": "ScriptFunction",
2433                "id": {
2434                  "type": "Identifier",
2435                  "name": "run",
2436                  "decorators": [],
2437                  "loc": {
2438                    "start": {
2439                      "line": 51,
2440                      "column": 10
2441                    },
2442                    "end": {
2443                      "line": 51,
2444                      "column": 13
2445                    }
2446                  }
2447                },
2448                "generator": false,
2449                "async": false,
2450                "expression": false,
2451                "params": [],
2452                "returnType": {
2453                  "type": "ETSPrimitiveType",
2454                  "loc": {
2455                    "start": {
2456                      "line": 51,
2457                      "column": 17
2458                    },
2459                    "end": {
2460                      "line": 51,
2461                      "column": 21
2462                    }
2463                  }
2464                },
2465                "body": {
2466                  "type": "BlockStatement",
2467                  "statements": [
2468                    {
2469                      "type": "VariableDeclaration",
2470                      "declarations": [
2471                        {
2472                          "type": "VariableDeclarator",
2473                          "id": {
2474                            "type": "Identifier",
2475                            "name": "ret",
2476                            "typeAnnotation": {
2477                              "type": "ETSPrimitiveType",
2478                              "loc": {
2479                                "start": {
2480                                  "line": 52,
2481                                  "column": 14
2482                                },
2483                                "end": {
2484                                  "line": 52,
2485                                  "column": 17
2486                                }
2487                              }
2488                            },
2489                            "decorators": [],
2490                            "loc": {
2491                              "start": {
2492                                "line": 52,
2493                                "column": 9
2494                              },
2495                              "end": {
2496                                "line": 52,
2497                                "column": 12
2498                              }
2499                            }
2500                          },
2501                          "init": {
2502                            "type": "NumberLiteral",
2503                            "value": 0,
2504                            "loc": {
2505                              "start": {
2506                                "line": 52,
2507                                "column": 20
2508                              },
2509                              "end": {
2510                                "line": 52,
2511                                "column": 21
2512                              }
2513                            }
2514                          },
2515                          "loc": {
2516                            "start": {
2517                              "line": 52,
2518                              "column": 9
2519                            },
2520                            "end": {
2521                              "line": 52,
2522                              "column": 21
2523                            }
2524                          }
2525                        }
2526                      ],
2527                      "kind": "let",
2528                      "loc": {
2529                        "start": {
2530                          "line": 52,
2531                          "column": 5
2532                        },
2533                        "end": {
2534                          "line": 52,
2535                          "column": 22
2536                        }
2537                      }
2538                    },
2539                    {
2540                      "type": "ForUpdateStatement",
2541                      "init": {
2542                        "type": "VariableDeclaration",
2543                        "declarations": [
2544                          {
2545                            "type": "VariableDeclarator",
2546                            "id": {
2547                              "type": "Identifier",
2548                              "name": "n",
2549                              "typeAnnotation": {
2550                                "type": "ETSPrimitiveType",
2551                                "loc": {
2552                                  "start": {
2553                                    "line": 54,
2554                                    "column": 17
2555                                  },
2556                                  "end": {
2557                                    "line": 54,
2558                                    "column": 20
2559                                  }
2560                                }
2561                              },
2562                              "decorators": [],
2563                              "loc": {
2564                                "start": {
2565                                  "line": 54,
2566                                  "column": 14
2567                                },
2568                                "end": {
2569                                  "line": 54,
2570                                  "column": 15
2571                                }
2572                              }
2573                            },
2574                            "init": {
2575                              "type": "MemberExpression",
2576                              "object": {
2577                                "type": "Identifier",
2578                                "name": "AccessBinaryTrees",
2579                                "decorators": [],
2580                                "loc": {
2581                                  "start": {
2582                                    "line": 54,
2583                                    "column": 23
2584                                  },
2585                                  "end": {
2586                                    "line": 54,
2587                                    "column": 40
2588                                  }
2589                                }
2590                              },
2591                              "property": {
2592                                "type": "Identifier",
2593                                "name": "startDepth",
2594                                "decorators": [],
2595                                "loc": {
2596                                  "start": {
2597                                    "line": 54,
2598                                    "column": 41
2599                                  },
2600                                  "end": {
2601                                    "line": 54,
2602                                    "column": 51
2603                                  }
2604                                }
2605                              },
2606                              "computed": false,
2607                              "optional": false,
2608                              "loc": {
2609                                "start": {
2610                                  "line": 54,
2611                                  "column": 23
2612                                },
2613                                "end": {
2614                                  "line": 54,
2615                                  "column": 51
2616                                }
2617                              }
2618                            },
2619                            "loc": {
2620                              "start": {
2621                                "line": 54,
2622                                "column": 14
2623                              },
2624                              "end": {
2625                                "line": 54,
2626                                "column": 51
2627                              }
2628                            }
2629                          }
2630                        ],
2631                        "kind": "let",
2632                        "loc": {
2633                          "start": {
2634                            "line": 54,
2635                            "column": 10
2636                          },
2637                          "end": {
2638                            "line": 54,
2639                            "column": 51
2640                          }
2641                        }
2642                      },
2643                      "test": {
2644                        "type": "BinaryExpression",
2645                        "operator": "<=",
2646                        "left": {
2647                          "type": "Identifier",
2648                          "name": "n",
2649                          "decorators": [],
2650                          "loc": {
2651                            "start": {
2652                              "line": 54,
2653                              "column": 53
2654                            },
2655                            "end": {
2656                              "line": 54,
2657                              "column": 54
2658                            }
2659                          }
2660                        },
2661                        "right": {
2662                          "type": "MemberExpression",
2663                          "object": {
2664                            "type": "Identifier",
2665                            "name": "AccessBinaryTrees",
2666                            "decorators": [],
2667                            "loc": {
2668                              "start": {
2669                                "line": 54,
2670                                "column": 58
2671                              },
2672                              "end": {
2673                                "line": 54,
2674                                "column": 75
2675                              }
2676                            }
2677                          },
2678                          "property": {
2679                            "type": "Identifier",
2680                            "name": "endDepth",
2681                            "decorators": [],
2682                            "loc": {
2683                              "start": {
2684                                "line": 54,
2685                                "column": 76
2686                              },
2687                              "end": {
2688                                "line": 54,
2689                                "column": 84
2690                              }
2691                            }
2692                          },
2693                          "computed": false,
2694                          "optional": false,
2695                          "loc": {
2696                            "start": {
2697                              "line": 54,
2698                              "column": 58
2699                            },
2700                            "end": {
2701                              "line": 54,
2702                              "column": 84
2703                            }
2704                          }
2705                        },
2706                        "loc": {
2707                          "start": {
2708                            "line": 54,
2709                            "column": 53
2710                          },
2711                          "end": {
2712                            "line": 54,
2713                            "column": 84
2714                          }
2715                        }
2716                      },
2717                      "update": {
2718                        "type": "UpdateExpression",
2719                        "operator": "++",
2720                        "prefix": false,
2721                        "argument": {
2722                          "type": "Identifier",
2723                          "name": "n",
2724                          "decorators": [],
2725                          "loc": {
2726                            "start": {
2727                              "line": 54,
2728                              "column": 86
2729                            },
2730                            "end": {
2731                              "line": 54,
2732                              "column": 87
2733                            }
2734                          }
2735                        },
2736                        "loc": {
2737                          "start": {
2738                            "line": 54,
2739                            "column": 86
2740                          },
2741                          "end": {
2742                            "line": 54,
2743                            "column": 89
2744                          }
2745                        }
2746                      },
2747                      "body": {
2748                        "type": "BlockStatement",
2749                        "statements": [
2750                          {
2751                            "type": "VariableDeclaration",
2752                            "declarations": [
2753                              {
2754                                "type": "VariableDeclarator",
2755                                "id": {
2756                                  "type": "Identifier",
2757                                  "name": "minDepth",
2758                                  "typeAnnotation": {
2759                                    "type": "ETSPrimitiveType",
2760                                    "loc": {
2761                                      "start": {
2762                                        "line": 55,
2763                                        "column": 21
2764                                      },
2765                                      "end": {
2766                                        "line": 55,
2767                                        "column": 24
2768                                      }
2769                                    }
2770                                  },
2771                                  "decorators": [],
2772                                  "loc": {
2773                                    "start": {
2774                                      "line": 55,
2775                                      "column": 11
2776                                    },
2777                                    "end": {
2778                                      "line": 55,
2779                                      "column": 19
2780                                    }
2781                                  }
2782                                },
2783                                "init": {
2784                                  "type": "MemberExpression",
2785                                  "object": {
2786                                    "type": "Identifier",
2787                                    "name": "AccessBinaryTrees",
2788                                    "decorators": [],
2789                                    "loc": {
2790                                      "start": {
2791                                        "line": 55,
2792                                        "column": 27
2793                                      },
2794                                      "end": {
2795                                        "line": 55,
2796                                        "column": 44
2797                                      }
2798                                    }
2799                                  },
2800                                  "property": {
2801                                    "type": "Identifier",
2802                                    "name": "startDepth",
2803                                    "decorators": [],
2804                                    "loc": {
2805                                      "start": {
2806                                        "line": 55,
2807                                        "column": 45
2808                                      },
2809                                      "end": {
2810                                        "line": 55,
2811                                        "column": 55
2812                                      }
2813                                    }
2814                                  },
2815                                  "computed": false,
2816                                  "optional": false,
2817                                  "loc": {
2818                                    "start": {
2819                                      "line": 55,
2820                                      "column": 27
2821                                    },
2822                                    "end": {
2823                                      "line": 55,
2824                                      "column": 55
2825                                    }
2826                                  }
2827                                },
2828                                "loc": {
2829                                  "start": {
2830                                    "line": 55,
2831                                    "column": 11
2832                                  },
2833                                  "end": {
2834                                    "line": 55,
2835                                    "column": 55
2836                                  }
2837                                }
2838                              }
2839                            ],
2840                            "kind": "let",
2841                            "loc": {
2842                              "start": {
2843                                "line": 55,
2844                                "column": 7
2845                              },
2846                              "end": {
2847                                "line": 55,
2848                                "column": 56
2849                              }
2850                            }
2851                          },
2852                          {
2853                            "type": "VariableDeclaration",
2854                            "declarations": [
2855                              {
2856                                "type": "VariableDeclarator",
2857                                "id": {
2858                                  "type": "Identifier",
2859                                  "name": "maxDepth",
2860                                  "typeAnnotation": {
2861                                    "type": "ETSPrimitiveType",
2862                                    "loc": {
2863                                      "start": {
2864                                        "line": 56,
2865                                        "column": 21
2866                                      },
2867                                      "end": {
2868                                        "line": 56,
2869                                        "column": 24
2870                                      }
2871                                    }
2872                                  },
2873                                  "decorators": [],
2874                                  "loc": {
2875                                    "start": {
2876                                      "line": 56,
2877                                      "column": 11
2878                                    },
2879                                    "end": {
2880                                      "line": 56,
2881                                      "column": 19
2882                                    }
2883                                  }
2884                                },
2885                                "init": {
2886                                  "type": "CallExpression",
2887                                  "callee": {
2888                                    "type": "Identifier",
2889                                    "name": "max",
2890                                    "decorators": [],
2891                                    "loc": {
2892                                      "start": {
2893                                        "line": 56,
2894                                        "column": 27
2895                                      },
2896                                      "end": {
2897                                        "line": 56,
2898                                        "column": 30
2899                                      }
2900                                    }
2901                                  },
2902                                  "arguments": [
2903                                    {
2904                                      "type": "BinaryExpression",
2905                                      "operator": "+",
2906                                      "left": {
2907                                        "type": "Identifier",
2908                                        "name": "minDepth",
2909                                        "decorators": [],
2910                                        "loc": {
2911                                          "start": {
2912                                            "line": 56,
2913                                            "column": 31
2914                                          },
2915                                          "end": {
2916                                            "line": 56,
2917                                            "column": 39
2918                                          }
2919                                        }
2920                                      },
2921                                      "right": {
2922                                        "type": "NumberLiteral",
2923                                        "value": 2,
2924                                        "loc": {
2925                                          "start": {
2926                                            "line": 56,
2927                                            "column": 42
2928                                          },
2929                                          "end": {
2930                                            "line": 56,
2931                                            "column": 43
2932                                          }
2933                                        }
2934                                      },
2935                                      "loc": {
2936                                        "start": {
2937                                          "line": 56,
2938                                          "column": 31
2939                                        },
2940                                        "end": {
2941                                          "line": 56,
2942                                          "column": 43
2943                                        }
2944                                      }
2945                                    },
2946                                    {
2947                                      "type": "Identifier",
2948                                      "name": "n",
2949                                      "decorators": [],
2950                                      "loc": {
2951                                        "start": {
2952                                          "line": 56,
2953                                          "column": 45
2954                                        },
2955                                        "end": {
2956                                          "line": 56,
2957                                          "column": 46
2958                                        }
2959                                      }
2960                                    }
2961                                  ],
2962                                  "optional": false,
2963                                  "loc": {
2964                                    "start": {
2965                                      "line": 56,
2966                                      "column": 27
2967                                    },
2968                                    "end": {
2969                                      "line": 56,
2970                                      "column": 47
2971                                    }
2972                                  }
2973                                },
2974                                "loc": {
2975                                  "start": {
2976                                    "line": 56,
2977                                    "column": 11
2978                                  },
2979                                  "end": {
2980                                    "line": 56,
2981                                    "column": 47
2982                                  }
2983                                }
2984                              }
2985                            ],
2986                            "kind": "let",
2987                            "loc": {
2988                              "start": {
2989                                "line": 56,
2990                                "column": 7
2991                              },
2992                              "end": {
2993                                "line": 56,
2994                                "column": 48
2995                              }
2996                            }
2997                          },
2998                          {
2999                            "type": "VariableDeclaration",
3000                            "declarations": [
3001                              {
3002                                "type": "VariableDeclarator",
3003                                "id": {
3004                                  "type": "Identifier",
3005                                  "name": "stretchDepth",
3006                                  "typeAnnotation": {
3007                                    "type": "ETSPrimitiveType",
3008                                    "loc": {
3009                                      "start": {
3010                                        "line": 57,
3011                                        "column": 25
3012                                      },
3013                                      "end": {
3014                                        "line": 57,
3015                                        "column": 28
3016                                      }
3017                                    }
3018                                  },
3019                                  "decorators": [],
3020                                  "loc": {
3021                                    "start": {
3022                                      "line": 57,
3023                                      "column": 11
3024                                    },
3025                                    "end": {
3026                                      "line": 57,
3027                                      "column": 23
3028                                    }
3029                                  }
3030                                },
3031                                "init": {
3032                                  "type": "BinaryExpression",
3033                                  "operator": "+",
3034                                  "left": {
3035                                    "type": "Identifier",
3036                                    "name": "maxDepth",
3037                                    "decorators": [],
3038                                    "loc": {
3039                                      "start": {
3040                                        "line": 57,
3041                                        "column": 31
3042                                      },
3043                                      "end": {
3044                                        "line": 57,
3045                                        "column": 39
3046                                      }
3047                                    }
3048                                  },
3049                                  "right": {
3050                                    "type": "NumberLiteral",
3051                                    "value": 1,
3052                                    "loc": {
3053                                      "start": {
3054                                        "line": 57,
3055                                        "column": 42
3056                                      },
3057                                      "end": {
3058                                        "line": 57,
3059                                        "column": 43
3060                                      }
3061                                    }
3062                                  },
3063                                  "loc": {
3064                                    "start": {
3065                                      "line": 57,
3066                                      "column": 31
3067                                    },
3068                                    "end": {
3069                                      "line": 57,
3070                                      "column": 43
3071                                    }
3072                                  }
3073                                },
3074                                "loc": {
3075                                  "start": {
3076                                    "line": 57,
3077                                    "column": 11
3078                                  },
3079                                  "end": {
3080                                    "line": 57,
3081                                    "column": 43
3082                                  }
3083                                }
3084                              }
3085                            ],
3086                            "kind": "let",
3087                            "loc": {
3088                              "start": {
3089                                "line": 57,
3090                                "column": 7
3091                              },
3092                              "end": {
3093                                "line": 57,
3094                                "column": 44
3095                              }
3096                            }
3097                          },
3098                          {
3099                            "type": "VariableDeclaration",
3100                            "declarations": [
3101                              {
3102                                "type": "VariableDeclarator",
3103                                "id": {
3104                                  "type": "Identifier",
3105                                  "name": "check",
3106                                  "typeAnnotation": {
3107                                    "type": "ETSPrimitiveType",
3108                                    "loc": {
3109                                      "start": {
3110                                        "line": 58,
3111                                        "column": 18
3112                                      },
3113                                      "end": {
3114                                        "line": 58,
3115                                        "column": 21
3116                                      }
3117                                    }
3118                                  },
3119                                  "decorators": [],
3120                                  "loc": {
3121                                    "start": {
3122                                      "line": 58,
3123                                      "column": 11
3124                                    },
3125                                    "end": {
3126                                      "line": 58,
3127                                      "column": 16
3128                                    }
3129                                  }
3130                                },
3131                                "init": {
3132                                  "type": "CallExpression",
3133                                  "callee": {
3134                                    "type": "MemberExpression",
3135                                    "object": {
3136                                      "type": "CallExpression",
3137                                      "callee": {
3138                                        "type": "MemberExpression",
3139                                        "object": {
3140                                          "type": "Identifier",
3141                                          "name": "AccessBinaryTrees",
3142                                          "decorators": [],
3143                                          "loc": {
3144                                            "start": {
3145                                              "line": 58,
3146                                              "column": 24
3147                                            },
3148                                            "end": {
3149                                              "line": 58,
3150                                              "column": 41
3151                                            }
3152                                          }
3153                                        },
3154                                        "property": {
3155                                          "type": "Identifier",
3156                                          "name": "bottomUpTree",
3157                                          "decorators": [],
3158                                          "loc": {
3159                                            "start": {
3160                                              "line": 58,
3161                                              "column": 42
3162                                            },
3163                                            "end": {
3164                                              "line": 58,
3165                                              "column": 54
3166                                            }
3167                                          }
3168                                        },
3169                                        "computed": false,
3170                                        "optional": false,
3171                                        "loc": {
3172                                          "start": {
3173                                            "line": 58,
3174                                            "column": 24
3175                                          },
3176                                          "end": {
3177                                            "line": 58,
3178                                            "column": 54
3179                                          }
3180                                        }
3181                                      },
3182                                      "arguments": [
3183                                        {
3184                                          "type": "NumberLiteral",
3185                                          "value": 0,
3186                                          "loc": {
3187                                            "start": {
3188                                              "line": 58,
3189                                              "column": 55
3190                                            },
3191                                            "end": {
3192                                              "line": 58,
3193                                              "column": 56
3194                                            }
3195                                          }
3196                                        },
3197                                        {
3198                                          "type": "Identifier",
3199                                          "name": "stretchDepth",
3200                                          "decorators": [],
3201                                          "loc": {
3202                                            "start": {
3203                                              "line": 58,
3204                                              "column": 58
3205                                            },
3206                                            "end": {
3207                                              "line": 58,
3208                                              "column": 70
3209                                            }
3210                                          }
3211                                        }
3212                                      ],
3213                                      "optional": false,
3214                                      "loc": {
3215                                        "start": {
3216                                          "line": 58,
3217                                          "column": 24
3218                                        },
3219                                        "end": {
3220                                          "line": 58,
3221                                          "column": 71
3222                                        }
3223                                      }
3224                                    },
3225                                    "property": {
3226                                      "type": "Identifier",
3227                                      "name": "itemCheck",
3228                                      "decorators": [],
3229                                      "loc": {
3230                                        "start": {
3231                                          "line": 58,
3232                                          "column": 72
3233                                        },
3234                                        "end": {
3235                                          "line": 58,
3236                                          "column": 81
3237                                        }
3238                                      }
3239                                    },
3240                                    "computed": false,
3241                                    "optional": false,
3242                                    "loc": {
3243                                      "start": {
3244                                        "line": 58,
3245                                        "column": 24
3246                                      },
3247                                      "end": {
3248                                        "line": 58,
3249                                        "column": 81
3250                                      }
3251                                    }
3252                                  },
3253                                  "arguments": [],
3254                                  "optional": false,
3255                                  "loc": {
3256                                    "start": {
3257                                      "line": 58,
3258                                      "column": 24
3259                                    },
3260                                    "end": {
3261                                      "line": 58,
3262                                      "column": 83
3263                                    }
3264                                  }
3265                                },
3266                                "loc": {
3267                                  "start": {
3268                                    "line": 58,
3269                                    "column": 11
3270                                  },
3271                                  "end": {
3272                                    "line": 58,
3273                                    "column": 83
3274                                  }
3275                                }
3276                              }
3277                            ],
3278                            "kind": "let",
3279                            "loc": {
3280                              "start": {
3281                                "line": 58,
3282                                "column": 7
3283                              },
3284                              "end": {
3285                                "line": 58,
3286                                "column": 84
3287                              }
3288                            }
3289                          },
3290                          {
3291                            "type": "VariableDeclaration",
3292                            "declarations": [
3293                              {
3294                                "type": "VariableDeclarator",
3295                                "id": {
3296                                  "type": "Identifier",
3297                                  "name": "longLivedTree",
3298                                  "decorators": [],
3299                                  "loc": {
3300                                    "start": {
3301                                      "line": 60,
3302                                      "column": 11
3303                                    },
3304                                    "end": {
3305                                      "line": 60,
3306                                      "column": 24
3307                                    }
3308                                  }
3309                                },
3310                                "init": {
3311                                  "type": "CallExpression",
3312                                  "callee": {
3313                                    "type": "MemberExpression",
3314                                    "object": {
3315                                      "type": "Identifier",
3316                                      "name": "AccessBinaryTrees",
3317                                      "decorators": [],
3318                                      "loc": {
3319                                        "start": {
3320                                          "line": 60,
3321                                          "column": 27
3322                                        },
3323                                        "end": {
3324                                          "line": 60,
3325                                          "column": 44
3326                                        }
3327                                      }
3328                                    },
3329                                    "property": {
3330                                      "type": "Identifier",
3331                                      "name": "bottomUpTree",
3332                                      "decorators": [],
3333                                      "loc": {
3334                                        "start": {
3335                                          "line": 60,
3336                                          "column": 45
3337                                        },
3338                                        "end": {
3339                                          "line": 60,
3340                                          "column": 57
3341                                        }
3342                                      }
3343                                    },
3344                                    "computed": false,
3345                                    "optional": false,
3346                                    "loc": {
3347                                      "start": {
3348                                        "line": 60,
3349                                        "column": 27
3350                                      },
3351                                      "end": {
3352                                        "line": 60,
3353                                        "column": 57
3354                                      }
3355                                    }
3356                                  },
3357                                  "arguments": [
3358                                    {
3359                                      "type": "NumberLiteral",
3360                                      "value": 0,
3361                                      "loc": {
3362                                        "start": {
3363                                          "line": 60,
3364                                          "column": 58
3365                                        },
3366                                        "end": {
3367                                          "line": 60,
3368                                          "column": 59
3369                                        }
3370                                      }
3371                                    },
3372                                    {
3373                                      "type": "Identifier",
3374                                      "name": "maxDepth",
3375                                      "decorators": [],
3376                                      "loc": {
3377                                        "start": {
3378                                          "line": 60,
3379                                          "column": 61
3380                                        },
3381                                        "end": {
3382                                          "line": 60,
3383                                          "column": 69
3384                                        }
3385                                      }
3386                                    }
3387                                  ],
3388                                  "optional": false,
3389                                  "loc": {
3390                                    "start": {
3391                                      "line": 60,
3392                                      "column": 27
3393                                    },
3394                                    "end": {
3395                                      "line": 60,
3396                                      "column": 70
3397                                    }
3398                                  }
3399                                },
3400                                "loc": {
3401                                  "start": {
3402                                    "line": 60,
3403                                    "column": 11
3404                                  },
3405                                  "end": {
3406                                    "line": 60,
3407                                    "column": 70
3408                                  }
3409                                }
3410                              }
3411                            ],
3412                            "kind": "let",
3413                            "loc": {
3414                              "start": {
3415                                "line": 60,
3416                                "column": 7
3417                              },
3418                              "end": {
3419                                "line": 60,
3420                                "column": 71
3421                              }
3422                            }
3423                          },
3424                          {
3425                            "type": "ForUpdateStatement",
3426                            "init": {
3427                              "type": "VariableDeclaration",
3428                              "declarations": [
3429                                {
3430                                  "type": "VariableDeclarator",
3431                                  "id": {
3432                                    "type": "Identifier",
3433                                    "name": "depth",
3434                                    "decorators": [],
3435                                    "loc": {
3436                                      "start": {
3437                                        "line": 62,
3438                                        "column": 16
3439                                      },
3440                                      "end": {
3441                                        "line": 62,
3442                                        "column": 21
3443                                      }
3444                                    }
3445                                  },
3446                                  "init": {
3447                                    "type": "Identifier",
3448                                    "name": "minDepth",
3449                                    "decorators": [],
3450                                    "loc": {
3451                                      "start": {
3452                                        "line": 62,
3453                                        "column": 24
3454                                      },
3455                                      "end": {
3456                                        "line": 62,
3457                                        "column": 32
3458                                      }
3459                                    }
3460                                  },
3461                                  "loc": {
3462                                    "start": {
3463                                      "line": 62,
3464                                      "column": 16
3465                                    },
3466                                    "end": {
3467                                      "line": 62,
3468                                      "column": 32
3469                                    }
3470                                  }
3471                                }
3472                              ],
3473                              "kind": "let",
3474                              "loc": {
3475                                "start": {
3476                                  "line": 62,
3477                                  "column": 12
3478                                },
3479                                "end": {
3480                                  "line": 62,
3481                                  "column": 32
3482                                }
3483                              }
3484                            },
3485                            "test": {
3486                              "type": "BinaryExpression",
3487                              "operator": "<=",
3488                              "left": {
3489                                "type": "Identifier",
3490                                "name": "depth",
3491                                "decorators": [],
3492                                "loc": {
3493                                  "start": {
3494                                    "line": 62,
3495                                    "column": 34
3496                                  },
3497                                  "end": {
3498                                    "line": 62,
3499                                    "column": 39
3500                                  }
3501                                }
3502                              },
3503                              "right": {
3504                                "type": "Identifier",
3505                                "name": "maxDepth",
3506                                "decorators": [],
3507                                "loc": {
3508                                  "start": {
3509                                    "line": 62,
3510                                    "column": 43
3511                                  },
3512                                  "end": {
3513                                    "line": 62,
3514                                    "column": 51
3515                                  }
3516                                }
3517                              },
3518                              "loc": {
3519                                "start": {
3520                                  "line": 62,
3521                                  "column": 34
3522                                },
3523                                "end": {
3524                                  "line": 62,
3525                                  "column": 51
3526                                }
3527                              }
3528                            },
3529                            "update": {
3530                              "type": "AssignmentExpression",
3531                              "operator": "+=",
3532                              "left": {
3533                                "type": "Identifier",
3534                                "name": "depth",
3535                                "decorators": [],
3536                                "loc": {
3537                                  "start": {
3538                                    "line": 62,
3539                                    "column": 53
3540                                  },
3541                                  "end": {
3542                                    "line": 62,
3543                                    "column": 58
3544                                  }
3545                                }
3546                              },
3547                              "right": {
3548                                "type": "NumberLiteral",
3549                                "value": 2,
3550                                "loc": {
3551                                  "start": {
3552                                    "line": 62,
3553                                    "column": 62
3554                                  },
3555                                  "end": {
3556                                    "line": 62,
3557                                    "column": 63
3558                                  }
3559                                }
3560                              },
3561                              "loc": {
3562                                "start": {
3563                                  "line": 62,
3564                                  "column": 53
3565                                },
3566                                "end": {
3567                                  "line": 62,
3568                                  "column": 63
3569                                }
3570                              }
3571                            },
3572                            "body": {
3573                              "type": "BlockStatement",
3574                              "statements": [
3575                                {
3576                                  "type": "VariableDeclaration",
3577                                  "declarations": [
3578                                    {
3579                                      "type": "VariableDeclarator",
3580                                      "id": {
3581                                        "type": "Identifier",
3582                                        "name": "iterations",
3583                                        "typeAnnotation": {
3584                                          "type": "ETSPrimitiveType",
3585                                          "loc": {
3586                                            "start": {
3587                                              "line": 63,
3588                                              "column": 25
3589                                            },
3590                                            "end": {
3591                                              "line": 63,
3592                                              "column": 28
3593                                            }
3594                                          }
3595                                        },
3596                                        "decorators": [],
3597                                        "loc": {
3598                                          "start": {
3599                                            "line": 63,
3600                                            "column": 13
3601                                          },
3602                                          "end": {
3603                                            "line": 63,
3604                                            "column": 23
3605                                          }
3606                                        }
3607                                      },
3608                                      "init": {
3609                                        "type": "BinaryExpression",
3610                                        "operator": "<<",
3611                                        "left": {
3612                                          "type": "NumberLiteral",
3613                                          "value": 1,
3614                                          "loc": {
3615                                            "start": {
3616                                              "line": 63,
3617                                              "column": 31
3618                                            },
3619                                            "end": {
3620                                              "line": 63,
3621                                              "column": 32
3622                                            }
3623                                          }
3624                                        },
3625                                        "right": {
3626                                          "type": "BinaryExpression",
3627                                          "operator": "+",
3628                                          "left": {
3629                                            "type": "BinaryExpression",
3630                                            "operator": "-",
3631                                            "left": {
3632                                              "type": "Identifier",
3633                                              "name": "maxDepth",
3634                                              "decorators": [],
3635                                              "loc": {
3636                                                "start": {
3637                                                  "line": 63,
3638                                                  "column": 37
3639                                                },
3640                                                "end": {
3641                                                  "line": 63,
3642                                                  "column": 45
3643                                                }
3644                                              }
3645                                            },
3646                                            "right": {
3647                                              "type": "Identifier",
3648                                              "name": "depth",
3649                                              "decorators": [],
3650                                              "loc": {
3651                                                "start": {
3652                                                  "line": 63,
3653                                                  "column": 48
3654                                                },
3655                                                "end": {
3656                                                  "line": 63,
3657                                                  "column": 53
3658                                                }
3659                                              }
3660                                            },
3661                                            "loc": {
3662                                              "start": {
3663                                                "line": 63,
3664                                                "column": 37
3665                                              },
3666                                              "end": {
3667                                                "line": 63,
3668                                                "column": 53
3669                                              }
3670                                            }
3671                                          },
3672                                          "right": {
3673                                            "type": "Identifier",
3674                                            "name": "minDepth",
3675                                            "decorators": [],
3676                                            "loc": {
3677                                              "start": {
3678                                                "line": 63,
3679                                                "column": 56
3680                                              },
3681                                              "end": {
3682                                                "line": 63,
3683                                                "column": 64
3684                                              }
3685                                            }
3686                                          },
3687                                          "loc": {
3688                                            "start": {
3689                                              "line": 63,
3690                                              "column": 36
3691                                            },
3692                                            "end": {
3693                                              "line": 63,
3694                                              "column": 65
3695                                            }
3696                                          }
3697                                        },
3698                                        "loc": {
3699                                          "start": {
3700                                            "line": 63,
3701                                            "column": 31
3702                                          },
3703                                          "end": {
3704                                            "line": 63,
3705                                            "column": 65
3706                                          }
3707                                        }
3708                                      },
3709                                      "loc": {
3710                                        "start": {
3711                                          "line": 63,
3712                                          "column": 13
3713                                        },
3714                                        "end": {
3715                                          "line": 63,
3716                                          "column": 65
3717                                        }
3718                                      }
3719                                    }
3720                                  ],
3721                                  "kind": "let",
3722                                  "loc": {
3723                                    "start": {
3724                                      "line": 63,
3725                                      "column": 9
3726                                    },
3727                                    "end": {
3728                                      "line": 63,
3729                                      "column": 66
3730                                    }
3731                                  }
3732                                },
3733                                {
3734                                  "type": "ExpressionStatement",
3735                                  "expression": {
3736                                    "type": "AssignmentExpression",
3737                                    "operator": "=",
3738                                    "left": {
3739                                      "type": "Identifier",
3740                                      "name": "check",
3741                                      "decorators": [],
3742                                      "loc": {
3743                                        "start": {
3744                                          "line": 65,
3745                                          "column": 9
3746                                        },
3747                                        "end": {
3748                                          "line": 65,
3749                                          "column": 14
3750                                        }
3751                                      }
3752                                    },
3753                                    "right": {
3754                                      "type": "NumberLiteral",
3755                                      "value": 0,
3756                                      "loc": {
3757                                        "start": {
3758                                          "line": 65,
3759                                          "column": 17
3760                                        },
3761                                        "end": {
3762                                          "line": 65,
3763                                          "column": 18
3764                                        }
3765                                      }
3766                                    },
3767                                    "loc": {
3768                                      "start": {
3769                                        "line": 65,
3770                                        "column": 9
3771                                      },
3772                                      "end": {
3773                                        "line": 65,
3774                                        "column": 18
3775                                      }
3776                                    }
3777                                  },
3778                                  "loc": {
3779                                    "start": {
3780                                      "line": 65,
3781                                      "column": 9
3782                                    },
3783                                    "end": {
3784                                      "line": 65,
3785                                      "column": 19
3786                                    }
3787                                  }
3788                                },
3789                                {
3790                                  "type": "ForUpdateStatement",
3791                                  "init": {
3792                                    "type": "VariableDeclaration",
3793                                    "declarations": [
3794                                      {
3795                                        "type": "VariableDeclarator",
3796                                        "id": {
3797                                          "type": "Identifier",
3798                                          "name": "i",
3799                                          "typeAnnotation": {
3800                                            "type": "ETSPrimitiveType",
3801                                            "loc": {
3802                                              "start": {
3803                                                "line": 66,
3804                                                "column": 21
3805                                              },
3806                                              "end": {
3807                                                "line": 66,
3808                                                "column": 24
3809                                              }
3810                                            }
3811                                          },
3812                                          "decorators": [],
3813                                          "loc": {
3814                                            "start": {
3815                                              "line": 66,
3816                                              "column": 18
3817                                            },
3818                                            "end": {
3819                                              "line": 66,
3820                                              "column": 19
3821                                            }
3822                                          }
3823                                        },
3824                                        "init": {
3825                                          "type": "NumberLiteral",
3826                                          "value": 1,
3827                                          "loc": {
3828                                            "start": {
3829                                              "line": 66,
3830                                              "column": 27
3831                                            },
3832                                            "end": {
3833                                              "line": 66,
3834                                              "column": 28
3835                                            }
3836                                          }
3837                                        },
3838                                        "loc": {
3839                                          "start": {
3840                                            "line": 66,
3841                                            "column": 18
3842                                          },
3843                                          "end": {
3844                                            "line": 66,
3845                                            "column": 28
3846                                          }
3847                                        }
3848                                      }
3849                                    ],
3850                                    "kind": "let",
3851                                    "loc": {
3852                                      "start": {
3853                                        "line": 66,
3854                                        "column": 14
3855                                      },
3856                                      "end": {
3857                                        "line": 66,
3858                                        "column": 28
3859                                      }
3860                                    }
3861                                  },
3862                                  "test": {
3863                                    "type": "BinaryExpression",
3864                                    "operator": "<=",
3865                                    "left": {
3866                                      "type": "Identifier",
3867                                      "name": "i",
3868                                      "decorators": [],
3869                                      "loc": {
3870                                        "start": {
3871                                          "line": 66,
3872                                          "column": 30
3873                                        },
3874                                        "end": {
3875                                          "line": 66,
3876                                          "column": 31
3877                                        }
3878                                      }
3879                                    },
3880                                    "right": {
3881                                      "type": "Identifier",
3882                                      "name": "iterations",
3883                                      "decorators": [],
3884                                      "loc": {
3885                                        "start": {
3886                                          "line": 66,
3887                                          "column": 35
3888                                        },
3889                                        "end": {
3890                                          "line": 66,
3891                                          "column": 45
3892                                        }
3893                                      }
3894                                    },
3895                                    "loc": {
3896                                      "start": {
3897                                        "line": 66,
3898                                        "column": 30
3899                                      },
3900                                      "end": {
3901                                        "line": 66,
3902                                        "column": 45
3903                                      }
3904                                    }
3905                                  },
3906                                  "update": {
3907                                    "type": "UpdateExpression",
3908                                    "operator": "++",
3909                                    "prefix": false,
3910                                    "argument": {
3911                                      "type": "Identifier",
3912                                      "name": "i",
3913                                      "decorators": [],
3914                                      "loc": {
3915                                        "start": {
3916                                          "line": 66,
3917                                          "column": 47
3918                                        },
3919                                        "end": {
3920                                          "line": 66,
3921                                          "column": 48
3922                                        }
3923                                      }
3924                                    },
3925                                    "loc": {
3926                                      "start": {
3927                                        "line": 66,
3928                                        "column": 47
3929                                      },
3930                                      "end": {
3931                                        "line": 66,
3932                                        "column": 50
3933                                      }
3934                                    }
3935                                  },
3936                                  "body": {
3937                                    "type": "BlockStatement",
3938                                    "statements": [
3939                                      {
3940                                        "type": "ExpressionStatement",
3941                                        "expression": {
3942                                          "type": "AssignmentExpression",
3943                                          "operator": "+=",
3944                                          "left": {
3945                                            "type": "Identifier",
3946                                            "name": "check",
3947                                            "decorators": [],
3948                                            "loc": {
3949                                              "start": {
3950                                                "line": 67,
3951                                                "column": 11
3952                                              },
3953                                              "end": {
3954                                                "line": 67,
3955                                                "column": 16
3956                                              }
3957                                            }
3958                                          },
3959                                          "right": {
3960                                            "type": "CallExpression",
3961                                            "callee": {
3962                                              "type": "MemberExpression",
3963                                              "object": {
3964                                                "type": "CallExpression",
3965                                                "callee": {
3966                                                  "type": "MemberExpression",
3967                                                  "object": {
3968                                                    "type": "Identifier",
3969                                                    "name": "AccessBinaryTrees",
3970                                                    "decorators": [],
3971                                                    "loc": {
3972                                                      "start": {
3973                                                        "line": 67,
3974                                                        "column": 20
3975                                                      },
3976                                                      "end": {
3977                                                        "line": 67,
3978                                                        "column": 37
3979                                                      }
3980                                                    }
3981                                                  },
3982                                                  "property": {
3983                                                    "type": "Identifier",
3984                                                    "name": "bottomUpTree",
3985                                                    "decorators": [],
3986                                                    "loc": {
3987                                                      "start": {
3988                                                        "line": 67,
3989                                                        "column": 38
3990                                                      },
3991                                                      "end": {
3992                                                        "line": 67,
3993                                                        "column": 50
3994                                                      }
3995                                                    }
3996                                                  },
3997                                                  "computed": false,
3998                                                  "optional": false,
3999                                                  "loc": {
4000                                                    "start": {
4001                                                      "line": 67,
4002                                                      "column": 20
4003                                                    },
4004                                                    "end": {
4005                                                      "line": 67,
4006                                                      "column": 50
4007                                                    }
4008                                                  }
4009                                                },
4010                                                "arguments": [
4011                                                  {
4012                                                    "type": "Identifier",
4013                                                    "name": "i",
4014                                                    "decorators": [],
4015                                                    "loc": {
4016                                                      "start": {
4017                                                        "line": 67,
4018                                                        "column": 51
4019                                                      },
4020                                                      "end": {
4021                                                        "line": 67,
4022                                                        "column": 52
4023                                                      }
4024                                                    }
4025                                                  },
4026                                                  {
4027                                                    "type": "Identifier",
4028                                                    "name": "depth",
4029                                                    "decorators": [],
4030                                                    "loc": {
4031                                                      "start": {
4032                                                        "line": 67,
4033                                                        "column": 54
4034                                                      },
4035                                                      "end": {
4036                                                        "line": 67,
4037                                                        "column": 59
4038                                                      }
4039                                                    }
4040                                                  }
4041                                                ],
4042                                                "optional": false,
4043                                                "loc": {
4044                                                  "start": {
4045                                                    "line": 67,
4046                                                    "column": 20
4047                                                  },
4048                                                  "end": {
4049                                                    "line": 67,
4050                                                    "column": 60
4051                                                  }
4052                                                }
4053                                              },
4054                                              "property": {
4055                                                "type": "Identifier",
4056                                                "name": "itemCheck",
4057                                                "decorators": [],
4058                                                "loc": {
4059                                                  "start": {
4060                                                    "line": 67,
4061                                                    "column": 61
4062                                                  },
4063                                                  "end": {
4064                                                    "line": 67,
4065                                                    "column": 70
4066                                                  }
4067                                                }
4068                                              },
4069                                              "computed": false,
4070                                              "optional": false,
4071                                              "loc": {
4072                                                "start": {
4073                                                  "line": 67,
4074                                                  "column": 20
4075                                                },
4076                                                "end": {
4077                                                  "line": 67,
4078                                                  "column": 70
4079                                                }
4080                                              }
4081                                            },
4082                                            "arguments": [],
4083                                            "optional": false,
4084                                            "loc": {
4085                                              "start": {
4086                                                "line": 67,
4087                                                "column": 20
4088                                              },
4089                                              "end": {
4090                                                "line": 67,
4091                                                "column": 72
4092                                              }
4093                                            }
4094                                          },
4095                                          "loc": {
4096                                            "start": {
4097                                              "line": 67,
4098                                              "column": 11
4099                                            },
4100                                            "end": {
4101                                              "line": 67,
4102                                              "column": 72
4103                                            }
4104                                          }
4105                                        },
4106                                        "loc": {
4107                                          "start": {
4108                                            "line": 67,
4109                                            "column": 11
4110                                          },
4111                                          "end": {
4112                                            "line": 67,
4113                                            "column": 73
4114                                          }
4115                                        }
4116                                      },
4117                                      {
4118                                        "type": "ExpressionStatement",
4119                                        "expression": {
4120                                          "type": "AssignmentExpression",
4121                                          "operator": "+=",
4122                                          "left": {
4123                                            "type": "Identifier",
4124                                            "name": "check",
4125                                            "decorators": [],
4126                                            "loc": {
4127                                              "start": {
4128                                                "line": 68,
4129                                                "column": 11
4130                                              },
4131                                              "end": {
4132                                                "line": 68,
4133                                                "column": 16
4134                                              }
4135                                            }
4136                                          },
4137                                          "right": {
4138                                            "type": "CallExpression",
4139                                            "callee": {
4140                                              "type": "MemberExpression",
4141                                              "object": {
4142                                                "type": "CallExpression",
4143                                                "callee": {
4144                                                  "type": "MemberExpression",
4145                                                  "object": {
4146                                                    "type": "Identifier",
4147                                                    "name": "AccessBinaryTrees",
4148                                                    "decorators": [],
4149                                                    "loc": {
4150                                                      "start": {
4151                                                        "line": 68,
4152                                                        "column": 20
4153                                                      },
4154                                                      "end": {
4155                                                        "line": 68,
4156                                                        "column": 37
4157                                                      }
4158                                                    }
4159                                                  },
4160                                                  "property": {
4161                                                    "type": "Identifier",
4162                                                    "name": "bottomUpTree",
4163                                                    "decorators": [],
4164                                                    "loc": {
4165                                                      "start": {
4166                                                        "line": 68,
4167                                                        "column": 38
4168                                                      },
4169                                                      "end": {
4170                                                        "line": 68,
4171                                                        "column": 50
4172                                                      }
4173                                                    }
4174                                                  },
4175                                                  "computed": false,
4176                                                  "optional": false,
4177                                                  "loc": {
4178                                                    "start": {
4179                                                      "line": 68,
4180                                                      "column": 20
4181                                                    },
4182                                                    "end": {
4183                                                      "line": 68,
4184                                                      "column": 50
4185                                                    }
4186                                                  }
4187                                                },
4188                                                "arguments": [
4189                                                  {
4190                                                    "type": "UnaryExpression",
4191                                                    "operator": "-",
4192                                                    "prefix": true,
4193                                                    "argument": {
4194                                                      "type": "Identifier",
4195                                                      "name": "i",
4196                                                      "decorators": [],
4197                                                      "loc": {
4198                                                        "start": {
4199                                                          "line": 68,
4200                                                          "column": 52
4201                                                        },
4202                                                        "end": {
4203                                                          "line": 68,
4204                                                          "column": 53
4205                                                        }
4206                                                      }
4207                                                    },
4208                                                    "loc": {
4209                                                      "start": {
4210                                                        "line": 68,
4211                                                        "column": 51
4212                                                      },
4213                                                      "end": {
4214                                                        "line": 68,
4215                                                        "column": 53
4216                                                      }
4217                                                    }
4218                                                  },
4219                                                  {
4220                                                    "type": "Identifier",
4221                                                    "name": "depth",
4222                                                    "decorators": [],
4223                                                    "loc": {
4224                                                      "start": {
4225                                                        "line": 68,
4226                                                        "column": 55
4227                                                      },
4228                                                      "end": {
4229                                                        "line": 68,
4230                                                        "column": 60
4231                                                      }
4232                                                    }
4233                                                  }
4234                                                ],
4235                                                "optional": false,
4236                                                "loc": {
4237                                                  "start": {
4238                                                    "line": 68,
4239                                                    "column": 20
4240                                                  },
4241                                                  "end": {
4242                                                    "line": 68,
4243                                                    "column": 61
4244                                                  }
4245                                                }
4246                                              },
4247                                              "property": {
4248                                                "type": "Identifier",
4249                                                "name": "itemCheck",
4250                                                "decorators": [],
4251                                                "loc": {
4252                                                  "start": {
4253                                                    "line": 68,
4254                                                    "column": 62
4255                                                  },
4256                                                  "end": {
4257                                                    "line": 68,
4258                                                    "column": 71
4259                                                  }
4260                                                }
4261                                              },
4262                                              "computed": false,
4263                                              "optional": false,
4264                                              "loc": {
4265                                                "start": {
4266                                                  "line": 68,
4267                                                  "column": 20
4268                                                },
4269                                                "end": {
4270                                                  "line": 68,
4271                                                  "column": 71
4272                                                }
4273                                              }
4274                                            },
4275                                            "arguments": [],
4276                                            "optional": false,
4277                                            "loc": {
4278                                              "start": {
4279                                                "line": 68,
4280                                                "column": 20
4281                                              },
4282                                              "end": {
4283                                                "line": 68,
4284                                                "column": 73
4285                                              }
4286                                            }
4287                                          },
4288                                          "loc": {
4289                                            "start": {
4290                                              "line": 68,
4291                                              "column": 11
4292                                            },
4293                                            "end": {
4294                                              "line": 68,
4295                                              "column": 73
4296                                            }
4297                                          }
4298                                        },
4299                                        "loc": {
4300                                          "start": {
4301                                            "line": 68,
4302                                            "column": 11
4303                                          },
4304                                          "end": {
4305                                            "line": 68,
4306                                            "column": 74
4307                                          }
4308                                        }
4309                                      }
4310                                    ],
4311                                    "loc": {
4312                                      "start": {
4313                                        "line": 66,
4314                                        "column": 52
4315                                      },
4316                                      "end": {
4317                                        "line": 69,
4318                                        "column": 10
4319                                      }
4320                                    }
4321                                  },
4322                                  "loc": {
4323                                    "start": {
4324                                      "line": 66,
4325                                      "column": 9
4326                                    },
4327                                    "end": {
4328                                      "line": 69,
4329                                      "column": 10
4330                                    }
4331                                  }
4332                                }
4333                              ],
4334                              "loc": {
4335                                "start": {
4336                                  "line": 62,
4337                                  "column": 65
4338                                },
4339                                "end": {
4340                                  "line": 70,
4341                                  "column": 8
4342                                }
4343                              }
4344                            },
4345                            "loc": {
4346                              "start": {
4347                                "line": 62,
4348                                "column": 7
4349                              },
4350                              "end": {
4351                                "line": 70,
4352                                "column": 8
4353                              }
4354                            }
4355                          },
4356                          {
4357                            "type": "ExpressionStatement",
4358                            "expression": {
4359                              "type": "AssignmentExpression",
4360                              "operator": "+=",
4361                              "left": {
4362                                "type": "Identifier",
4363                                "name": "ret",
4364                                "decorators": [],
4365                                "loc": {
4366                                  "start": {
4367                                    "line": 72,
4368                                    "column": 7
4369                                  },
4370                                  "end": {
4371                                    "line": 72,
4372                                    "column": 10
4373                                  }
4374                                }
4375                              },
4376                              "right": {
4377                                "type": "CallExpression",
4378                                "callee": {
4379                                  "type": "MemberExpression",
4380                                  "object": {
4381                                    "type": "Identifier",
4382                                    "name": "longLivedTree",
4383                                    "decorators": [],
4384                                    "loc": {
4385                                      "start": {
4386                                        "line": 72,
4387                                        "column": 14
4388                                      },
4389                                      "end": {
4390                                        "line": 72,
4391                                        "column": 27
4392                                      }
4393                                    }
4394                                  },
4395                                  "property": {
4396                                    "type": "Identifier",
4397                                    "name": "itemCheck",
4398                                    "decorators": [],
4399                                    "loc": {
4400                                      "start": {
4401                                        "line": 72,
4402                                        "column": 28
4403                                      },
4404                                      "end": {
4405                                        "line": 72,
4406                                        "column": 37
4407                                      }
4408                                    }
4409                                  },
4410                                  "computed": false,
4411                                  "optional": false,
4412                                  "loc": {
4413                                    "start": {
4414                                      "line": 72,
4415                                      "column": 14
4416                                    },
4417                                    "end": {
4418                                      "line": 72,
4419                                      "column": 37
4420                                    }
4421                                  }
4422                                },
4423                                "arguments": [],
4424                                "optional": false,
4425                                "loc": {
4426                                  "start": {
4427                                    "line": 72,
4428                                    "column": 14
4429                                  },
4430                                  "end": {
4431                                    "line": 72,
4432                                    "column": 39
4433                                  }
4434                                }
4435                              },
4436                              "loc": {
4437                                "start": {
4438                                  "line": 72,
4439                                  "column": 7
4440                                },
4441                                "end": {
4442                                  "line": 72,
4443                                  "column": 39
4444                                }
4445                              }
4446                            },
4447                            "loc": {
4448                              "start": {
4449                                "line": 72,
4450                                "column": 7
4451                              },
4452                              "end": {
4453                                "line": 72,
4454                                "column": 40
4455                              }
4456                            }
4457                          }
4458                        ],
4459                        "loc": {
4460                          "start": {
4461                            "line": 54,
4462                            "column": 91
4463                          },
4464                          "end": {
4465                            "line": 73,
4466                            "column": 6
4467                          }
4468                        }
4469                      },
4470                      "loc": {
4471                        "start": {
4472                          "line": 54,
4473                          "column": 5
4474                        },
4475                        "end": {
4476                          "line": 73,
4477                          "column": 6
4478                        }
4479                      }
4480                    },
4481                    {
4482                      "type": "AssertStatement",
4483                      "test": {
4484                        "type": "BinaryExpression",
4485                        "operator": "==",
4486                        "left": {
4487                          "type": "Identifier",
4488                          "name": "ret",
4489                          "decorators": [],
4490                          "loc": {
4491                            "start": {
4492                              "line": 75,
4493                              "column": 12
4494                            },
4495                            "end": {
4496                              "line": 75,
4497                              "column": 15
4498                            }
4499                          }
4500                        },
4501                        "right": {
4502                          "type": "MemberExpression",
4503                          "object": {
4504                            "type": "Identifier",
4505                            "name": "AccessBinaryTrees",
4506                            "decorators": [],
4507                            "loc": {
4508                              "start": {
4509                                "line": 75,
4510                                "column": 19
4511                              },
4512                              "end": {
4513                                "line": 75,
4514                                "column": 36
4515                              }
4516                            }
4517                          },
4518                          "property": {
4519                            "type": "Identifier",
4520                            "name": "expected",
4521                            "decorators": [],
4522                            "loc": {
4523                              "start": {
4524                                "line": 75,
4525                                "column": 37
4526                              },
4527                              "end": {
4528                                "line": 75,
4529                                "column": 45
4530                              }
4531                            }
4532                          },
4533                          "computed": false,
4534                          "optional": false,
4535                          "loc": {
4536                            "start": {
4537                              "line": 75,
4538                              "column": 19
4539                            },
4540                            "end": {
4541                              "line": 75,
4542                              "column": 45
4543                            }
4544                          }
4545                        },
4546                        "loc": {
4547                          "start": {
4548                            "line": 75,
4549                            "column": 12
4550                          },
4551                          "end": {
4552                            "line": 75,
4553                            "column": 45
4554                          }
4555                        }
4556                      },
4557                      "second": {
4558                        "type": "StringLiteral",
4559                        "value": "Incorrect result",
4560                        "loc": {
4561                          "start": {
4562                            "line": 75,
4563                            "column": 47
4564                          },
4565                          "end": {
4566                            "line": 75,
4567                            "column": 65
4568                          }
4569                        }
4570                      },
4571                      "loc": {
4572                        "start": {
4573                          "line": 75,
4574                          "column": 5
4575                        },
4576                        "end": {
4577                          "line": 75,
4578                          "column": 65
4579                        }
4580                      }
4581                    }
4582                  ],
4583                  "loc": {
4584                    "start": {
4585                      "line": 51,
4586                      "column": 22
4587                    },
4588                    "end": {
4589                      "line": 76,
4590                      "column": 4
4591                    }
4592                  }
4593                },
4594                "loc": {
4595                  "start": {
4596                    "line": 51,
4597                    "column": 13
4598                  },
4599                  "end": {
4600                    "line": 76,
4601                    "column": 4
4602                  }
4603                }
4604              },
4605              "loc": {
4606                "start": {
4607                  "line": 51,
4608                  "column": 13
4609                },
4610                "end": {
4611                  "line": 76,
4612                  "column": 4
4613                }
4614              }
4615            },
4616            "overloads": [],
4617            "decorators": [],
4618            "loc": {
4619              "start": {
4620                "line": 51,
4621                "column": 3
4622              },
4623              "end": {
4624                "line": 76,
4625                "column": 4
4626              }
4627            }
4628          },
4629          {
4630            "type": "MethodDefinition",
4631            "key": {
4632              "type": "Identifier",
4633              "name": "constructor",
4634              "decorators": [],
4635              "loc": {
4636                "start": {
4637                  "line": 1,
4638                  "column": 1
4639                },
4640                "end": {
4641                  "line": 1,
4642                  "column": 1
4643                }
4644              }
4645            },
4646            "kind": "constructor",
4647            "static": false,
4648            "optional": false,
4649            "computed": false,
4650            "value": {
4651              "type": "FunctionExpression",
4652              "function": {
4653                "type": "ScriptFunction",
4654                "id": {
4655                  "type": "Identifier",
4656                  "name": "constructor",
4657                  "decorators": [],
4658                  "loc": {
4659                    "start": {
4660                      "line": 1,
4661                      "column": 1
4662                    },
4663                    "end": {
4664                      "line": 1,
4665                      "column": 1
4666                    }
4667                  }
4668                },
4669                "generator": false,
4670                "async": false,
4671                "expression": false,
4672                "params": [],
4673                "body": {
4674                  "type": "BlockStatement",
4675                  "statements": [],
4676                  "loc": {
4677                    "start": {
4678                      "line": 1,
4679                      "column": 1
4680                    },
4681                    "end": {
4682                      "line": 1,
4683                      "column": 1
4684                    }
4685                  }
4686                },
4687                "loc": {
4688                  "start": {
4689                    "line": 1,
4690                    "column": 1
4691                  },
4692                  "end": {
4693                    "line": 1,
4694                    "column": 1
4695                  }
4696                }
4697              },
4698              "loc": {
4699                "start": {
4700                  "line": 1,
4701                  "column": 1
4702                },
4703                "end": {
4704                  "line": 1,
4705                  "column": 1
4706                }
4707              }
4708            },
4709            "overloads": [],
4710            "decorators": [],
4711            "loc": {
4712              "start": {
4713                "line": 77,
4714                "column": 2
4715              },
4716              "end": {
4717                "line": 77,
4718                "column": 2
4719              }
4720            }
4721          }
4722        ],
4723        "loc": {
4724          "start": {
4725            "line": 35,
4726            "column": 32
4727          },
4728          "end": {
4729            "line": 77,
4730            "column": 2
4731          }
4732        }
4733      },
4734      "loc": {
4735        "start": {
4736          "line": 35,
4737          "column": 8
4738        },
4739        "end": {
4740          "line": 77,
4741          "column": 2
4742        }
4743      }
4744    },
4745    {
4746      "type": "ClassDeclaration",
4747      "definition": {
4748        "id": {
4749          "type": "Identifier",
4750          "name": "ETSGLOBAL",
4751          "decorators": [],
4752          "loc": {
4753            "start": {
4754              "line": 1,
4755              "column": 1
4756            },
4757            "end": {
4758              "line": 1,
4759              "column": 1
4760            }
4761          }
4762        },
4763        "superClass": null,
4764        "implements": [],
4765        "body": [
4766          {
4767            "type": "MethodDefinition",
4768            "key": {
4769              "type": "Identifier",
4770              "name": "_$init$_",
4771              "decorators": [],
4772              "loc": {
4773                "start": {
4774                  "line": 1,
4775                  "column": 1
4776                },
4777                "end": {
4778                  "line": 1,
4779                  "column": 1
4780                }
4781              }
4782            },
4783            "kind": "method",
4784            "accessibility": "public",
4785            "static": true,
4786            "optional": false,
4787            "computed": false,
4788            "value": {
4789              "type": "FunctionExpression",
4790              "function": {
4791                "type": "ScriptFunction",
4792                "id": {
4793                  "type": "Identifier",
4794                  "name": "_$init$_",
4795                  "decorators": [],
4796                  "loc": {
4797                    "start": {
4798                      "line": 1,
4799                      "column": 1
4800                    },
4801                    "end": {
4802                      "line": 1,
4803                      "column": 1
4804                    }
4805                  }
4806                },
4807                "generator": false,
4808                "async": false,
4809                "expression": false,
4810                "params": [],
4811                "body": {
4812                  "type": "BlockStatement",
4813                  "statements": [],
4814                  "loc": {
4815                    "start": {
4816                      "line": 1,
4817                      "column": 1
4818                    },
4819                    "end": {
4820                      "line": 1,
4821                      "column": 1
4822                    }
4823                  }
4824                },
4825                "loc": {
4826                  "start": {
4827                    "line": 1,
4828                    "column": 1
4829                  },
4830                  "end": {
4831                    "line": 1,
4832                    "column": 1
4833                  }
4834                }
4835              },
4836              "loc": {
4837                "start": {
4838                  "line": 1,
4839                  "column": 1
4840                },
4841                "end": {
4842                  "line": 1,
4843                  "column": 1
4844                }
4845              }
4846            },
4847            "overloads": [],
4848            "decorators": [],
4849            "loc": {
4850              "start": {
4851                "line": 1,
4852                "column": 1
4853              },
4854              "end": {
4855                "line": 1,
4856                "column": 1
4857              }
4858            }
4859          },
4860          {
4861            "type": "MethodDefinition",
4862            "key": {
4863              "type": "Identifier",
4864              "name": "main",
4865              "decorators": [],
4866              "loc": {
4867                "start": {
4868                  "line": 79,
4869                  "column": 10
4870                },
4871                "end": {
4872                  "line": 79,
4873                  "column": 14
4874                }
4875              }
4876            },
4877            "kind": "method",
4878            "accessibility": "public",
4879            "static": true,
4880            "optional": false,
4881            "computed": false,
4882            "value": {
4883              "type": "FunctionExpression",
4884              "function": {
4885                "type": "ScriptFunction",
4886                "id": {
4887                  "type": "Identifier",
4888                  "name": "main",
4889                  "decorators": [],
4890                  "loc": {
4891                    "start": {
4892                      "line": 79,
4893                      "column": 10
4894                    },
4895                    "end": {
4896                      "line": 79,
4897                      "column": 14
4898                    }
4899                  }
4900                },
4901                "generator": false,
4902                "async": false,
4903                "expression": false,
4904                "params": [],
4905                "returnType": {
4906                  "type": "ETSPrimitiveType",
4907                  "loc": {
4908                    "start": {
4909                      "line": 79,
4910                      "column": 18
4911                    },
4912                    "end": {
4913                      "line": 79,
4914                      "column": 22
4915                    }
4916                  }
4917                },
4918                "body": {
4919                  "type": "BlockStatement",
4920                  "statements": [
4921                    {
4922                      "type": "VariableDeclaration",
4923                      "declarations": [
4924                        {
4925                          "type": "VariableDeclarator",
4926                          "id": {
4927                            "type": "Identifier",
4928                            "name": "a",
4929                            "decorators": [],
4930                            "loc": {
4931                              "start": {
4932                                "line": 80,
4933                                "column": 7
4934                              },
4935                              "end": {
4936                                "line": 80,
4937                                "column": 8
4938                              }
4939                            }
4940                          },
4941                          "init": {
4942                            "type": "ETSNewClassInstanceExpression",
4943                            "typeReference": {
4944                              "type": "ETSTypeReference",
4945                              "part": {
4946                                "type": "ETSTypeReferencePart",
4947                                "name": {
4948                                  "type": "Identifier",
4949                                  "name": "AccessBinaryTrees",
4950                                  "decorators": [],
4951                                  "loc": {
4952                                    "start": {
4953                                      "line": 80,
4954                                      "column": 15
4955                                    },
4956                                    "end": {
4957                                      "line": 80,
4958                                      "column": 32
4959                                    }
4960                                  }
4961                                },
4962                                "loc": {
4963                                  "start": {
4964                                    "line": 80,
4965                                    "column": 15
4966                                  },
4967                                  "end": {
4968                                    "line": 80,
4969                                    "column": 33
4970                                  }
4971                                }
4972                              },
4973                              "loc": {
4974                                "start": {
4975                                  "line": 80,
4976                                  "column": 15
4977                                },
4978                                "end": {
4979                                  "line": 80,
4980                                  "column": 33
4981                                }
4982                              }
4983                            },
4984                            "arguments": [],
4985                            "loc": {
4986                              "start": {
4987                                "line": 80,
4988                                "column": 11
4989                              },
4990                              "end": {
4991                                "line": 80,
4992                                "column": 33
4993                              }
4994                            }
4995                          },
4996                          "loc": {
4997                            "start": {
4998                              "line": 80,
4999                              "column": 7
5000                            },
5001                            "end": {
5002                              "line": 80,
5003                              "column": 33
5004                            }
5005                          }
5006                        }
5007                      ],
5008                      "kind": "let",
5009                      "loc": {
5010                        "start": {
5011                          "line": 80,
5012                          "column": 3
5013                        },
5014                        "end": {
5015                          "line": 80,
5016                          "column": 33
5017                        }
5018                      }
5019                    },
5020                    {
5021                      "type": "ExpressionStatement",
5022                      "expression": {
5023                        "type": "CallExpression",
5024                        "callee": {
5025                          "type": "MemberExpression",
5026                          "object": {
5027                            "type": "Identifier",
5028                            "name": "a",
5029                            "decorators": [],
5030                            "loc": {
5031                              "start": {
5032                                "line": 81,
5033                                "column": 3
5034                              },
5035                              "end": {
5036                                "line": 81,
5037                                "column": 4
5038                              }
5039                            }
5040                          },
5041                          "property": {
5042                            "type": "Identifier",
5043                            "name": "run",
5044                            "decorators": [],
5045                            "loc": {
5046                              "start": {
5047                                "line": 81,
5048                                "column": 5
5049                              },
5050                              "end": {
5051                                "line": 81,
5052                                "column": 8
5053                              }
5054                            }
5055                          },
5056                          "computed": false,
5057                          "optional": false,
5058                          "loc": {
5059                            "start": {
5060                              "line": 81,
5061                              "column": 3
5062                            },
5063                            "end": {
5064                              "line": 81,
5065                              "column": 8
5066                            }
5067                          }
5068                        },
5069                        "arguments": [],
5070                        "optional": false,
5071                        "loc": {
5072                          "start": {
5073                            "line": 81,
5074                            "column": 3
5075                          },
5076                          "end": {
5077                            "line": 81,
5078                            "column": 10
5079                          }
5080                        }
5081                      },
5082                      "loc": {
5083                        "start": {
5084                          "line": 81,
5085                          "column": 3
5086                        },
5087                        "end": {
5088                          "line": 81,
5089                          "column": 11
5090                        }
5091                      }
5092                    }
5093                  ],
5094                  "loc": {
5095                    "start": {
5096                      "line": 79,
5097                      "column": 23
5098                    },
5099                    "end": {
5100                      "line": 82,
5101                      "column": 2
5102                    }
5103                  }
5104                },
5105                "loc": {
5106                  "start": {
5107                    "line": 79,
5108                    "column": 10
5109                  },
5110                  "end": {
5111                    "line": 82,
5112                    "column": 2
5113                  }
5114                }
5115              },
5116              "loc": {
5117                "start": {
5118                  "line": 79,
5119                  "column": 10
5120                },
5121                "end": {
5122                  "line": 82,
5123                  "column": 2
5124                }
5125              }
5126            },
5127            "overloads": [],
5128            "decorators": [],
5129            "loc": {
5130              "start": {
5131                "line": 79,
5132                "column": 1
5133              },
5134              "end": {
5135                "line": 82,
5136                "column": 2
5137              }
5138            }
5139          }
5140        ],
5141        "loc": {
5142          "start": {
5143            "line": 1,
5144            "column": 1
5145          },
5146          "end": {
5147            "line": 1,
5148            "column": 1
5149          }
5150        }
5151      },
5152      "loc": {
5153        "start": {
5154          "line": 1,
5155          "column": 1
5156        },
5157        "end": {
5158          "line": 1,
5159          "column": 1
5160        }
5161      }
5162    }
5163  ],
5164  "loc": {
5165    "start": {
5166      "line": 1,
5167      "column": 1
5168    },
5169    "end": {
5170      "line": 83,
5171      "column": 1
5172    }
5173  }
5174}
5175