whole_func_string: function BuildCodeInfoTree(code_info_array) {
      // Throughtout all function we iterate over input array.
      var index = 0;
  
      // Recursive function that builds a branch of tree.
      function BuildNode() {
        var my_index = index;
        index++;
        var child_array = new GlobalArray();
        while (index < code_info_array.length &&
            code_info_array[index].outer_index == my_index) {
          child_array.push(BuildNode());
        }
        var node = new CodeInfoTreeNode(code_info_array[my_index], child_array,
            my_index);
        for (var i = 0; i < child_array.length; i++) {
          child_array[i].parent = node;
        }
        return node;
      }
  
      var root = BuildNode();
      Assert(index == code_info_array.length);
      return root;
    }
func_code_string: function BuildCodeInfoTree(code_info_array) {
      // Throughtout all function we iterate over input array.
      var index = 0;
  
      // Recursive function that builds a branch of tree.
      function BuildNode() {
        var my_index = index;
        index++;
        var child_array = new GlobalArray();
        while (index < code_info_array.length &&
            code_info_array[index].outer_index == my_index) {
          child_array.push(BuildNode());
        }
        var node = new CodeInfoTreeNode(code_info_array[my_index], child_array,
            my_index);
        for (var i = 0; i < child_array.length; i++) {
          child_array[i].parent = node;
        }
        return node;
      }
  
      var root = BuildNode();
      Assert(index == code_info_array.length);
      return root;
    }
func_documentation_string: From array of function infos that is implicitly a tree creates an actual tree of functions in script.