whole_func_string: function ResetIndexes(new_parent_index, old_parent_index) {
        var previous_sibling = -1;
        while (current_index < compile_info.length &&
            compile_info[current_index].outer_index == old_parent_index) {
          var saved_index = current_index;
          compile_info[saved_index].outer_index = new_parent_index;
          if (previous_sibling != -1) {
            compile_info[previous_sibling].next_sibling_index = saved_index;
          }
          previous_sibling = saved_index;
          current_index++;
          ResetIndexes(saved_index, old_index_map[saved_index]);
        }
        if (previous_sibling != -1) {
          compile_info[previous_sibling].next_sibling_index = -1;
        }
      }
func_code_string: function ResetIndexes(new_parent_index, old_parent_index) {
        var previous_sibling = -1;
        while (current_index < compile_info.length &&
            compile_info[current_index].outer_index == old_parent_index) {
          var saved_index = current_index;
          compile_info[saved_index].outer_index = new_parent_index;
          if (previous_sibling != -1) {
            compile_info[previous_sibling].next_sibling_index = saved_index;
          }
          previous_sibling = saved_index;
          current_index++;
          ResetIndexes(saved_index, old_index_map[saved_index]);
        }
        if (previous_sibling != -1) {
          compile_info[previous_sibling].next_sibling_index = -1;
        }
      }
func_documentation_string: The recursive function, that goes over all children of a particular node (i.e. function info).