whole_func_string: function jscoverage_initTabContents(queryString) {
    var showMissingColumn = false;
    var url = null;
    var windowURL = null;
    var parameters, parameter, i, index, name, value;
    if (queryString.length > 0) {
      // chop off the question mark
      queryString = queryString.substring(1);
      parameters = queryString.split(/&|;/);
      for (i = 0; i < parameters.length; i++) {
        parameter = parameters[i];
        index = parameter.indexOf('=');
        if (index === -1) {
          // still works with old syntax
          url = decodeURIComponent(parameter);
        }
        else {
          name = parameter.substr(0, index);
          value = decodeURIComponent(parameter.substr(index + 1));
          if (name === 'missing' || name === 'm') {
            showMissingColumn = jscoverage_getBooleanValue(value);
          }
          else if (name === 'url' || name === 'u' || name === 'frame' || name === 'f') {
            url = value;
          }
          else if (name === 'window' || name === 'w') {
            windowURL = value;
          }
        }
      }
    }
  
    var checkbox = document.getElementById('checkbox');
    checkbox.checked = showMissingColumn;
    if (showMissingColumn) {
      jscoverage_appendMissingColumn();
    }
  
    var isValidURL = function (url) {
      var result = jscoverage_isValidURL(url);
      if (! result) {
        alert('Invalid URL: ' + url);
      }
      return result;
    };
  
    if (url !== null && isValidURL(url)) {
      // this will automatically propagate to the input field
      frames[0].location = url;
    }
    else if (windowURL !== null && isValidURL(windowURL)) {
      window.open(windowURL);
    }
  
    // if the browser tab is absent, we have to initialize the summary tab
    if (! document.getElementById('browserTab')) {
      jscoverage_recalculateSummaryTab();
    }
  }
func_code_string: function jscoverage_initTabContents(queryString) {
    var showMissingColumn = false;
    var url = null;
    var windowURL = null;
    var parameters, parameter, i, index, name, value;
    if (queryString.length > 0) {
      // chop off the question mark
      queryString = queryString.substring(1);
      parameters = queryString.split(/&|;/);
      for (i = 0; i < parameters.length; i++) {
        parameter = parameters[i];
        index = parameter.indexOf('=');
        if (index === -1) {
          // still works with old syntax
          url = decodeURIComponent(parameter);
        }
        else {
          name = parameter.substr(0, index);
          value = decodeURIComponent(parameter.substr(index + 1));
          if (name === 'missing' || name === 'm') {
            showMissingColumn = jscoverage_getBooleanValue(value);
          }
          else if (name === 'url' || name === 'u' || name === 'frame' || name === 'f') {
            url = value;
          }
          else if (name === 'window' || name === 'w') {
            windowURL = value;
          }
        }
      }
    }
  
    var checkbox = document.getElementById('checkbox');
    checkbox.checked = showMissingColumn;
    if (showMissingColumn) {
      jscoverage_appendMissingColumn();
    }
  
    var isValidURL = function (url) {
      var result = jscoverage_isValidURL(url);
      if (! result) {
        alert('Invalid URL: ' + url);
      }
      return result;
    };
  
    if (url !== null && isValidURL(url)) {
      // this will automatically propagate to the input field
      frames[0].location = url;
    }
    else if (windowURL !== null && isValidURL(windowURL)) {
      window.open(windowURL);
    }
  
    // if the browser tab is absent, we have to initialize the summary tab
    if (! document.getElementById('browserTab')) {
      jscoverage_recalculateSummaryTab();
    }
  }
func_documentation_string: Initializes the contents of the tabs.  This sets the initial values of the
  input field and iframe in the "Browser" tab and the checkbox in the "Summary"
  tab.
  @param  queryString  this should always be location.search