lib-cov/jscoverage.js
function jscoverage_makeTable() {
  var coverage = _$jscoverage[jscoverage_currentFile];
  var lines = coverage.source;

  // this can happen if there is an error in the original JavaScript file
  if (! lines) {
    lines = [];
  }

  var rows = ['<table id="sourceTable">'];
  var i = 0;
  var progressBar = document.getElementById('progressBar');
  var tableHTML;
  var currentConditionalEnd = 0;

  function joinTableRows() {
    tableHTML = rows.join('');
    ProgressBar.setPercentage(progressBar, 60);
    /*
    This may be a long delay, so set a timeout of 100 ms to make sure the
    display is updated.
    */
    setTimeout(appendTable, 100);
  }

  function appendTable() {
    var sourceDiv = document.getElementById('sourceDiv');
    sourceDiv.innerHTML = tableHTML;
    ProgressBar.setPercentage(progressBar, 80);
    setTimeout(jscoverage_scrollToLine, 0);
  }

  while (i < lines.length) {
    var lineNumber = i + 1;

    if (lineNumber === currentConditionalEnd) {
      currentConditionalEnd = 0;
    }
    else if (currentConditionalEnd === 0 && coverage.conditionals && coverage.conditionals[lineNumber]) {
      currentConditionalEnd = coverage.conditionals[lineNumber];
    }

    var row = '<tr>';
    row += '<td class="numeric">' + lineNumber + '</td>';
    var timesExecuted = coverage[lineNumber];
    if (timesExecuted !== undefined && timesExecuted !== null) {
      if (currentConditionalEnd !== 0) {
        row += '<td class="y numeric">';
      }
      else if (timesExecuted === 0) {
        row += '<td class="r numeric" id="line-' + lineNumber + '">';
      }
      else {
        row += '<td class="g numeric">';
      }
      row += timesExecuted;
      row += '</td>';
    }
    else {
      row += '<td></td>';
    }
    row += '<td><pre>' + lines[i] + '</pre></td>';
    row += '</tr>';
    row += '\n';
    rows[lineNumber] = row;
    i++;
  }
  rows[i + 1] = '</table>';
  ProgressBar.setPercentage(progressBar, 40);
  setTimeout(joinTableRows, 0);
}
function jscoverage_makeTable() {
  var coverage = _$jscoverage[jscoverage_currentFile];
  var lines = coverage.source;

  // this can happen if there is an error in the original JavaScript file
  if (! lines) {
    lines = [];
  }

  var rows = ['<table id="sourceTable">'];
  var i = 0;
  var progressBar = document.getElementById('progressBar');
  var tableHTML;
  var currentConditionalEnd = 0;

  function joinTableRows() {
    tableHTML = rows.join('');
    ProgressBar.setPercentage(progressBar, 60);
    /*
    This may be a long delay, so set a timeout of 100 ms to make sure the
    display is updated.
    */
    setTimeout(appendTable, 100);
  }

  function appendTable() {
    var sourceDiv = document.getElementById('sourceDiv');
    sourceDiv.innerHTML = tableHTML;
    ProgressBar.setPercentage(progressBar, 80);
    setTimeout(jscoverage_scrollToLine, 0);
  }

  while (i < lines.length) {
    var lineNumber = i + 1;

    if (lineNumber === currentConditionalEnd) {
      currentConditionalEnd = 0;
    }
    else if (currentConditionalEnd === 0 && coverage.conditionals && coverage.conditionals[lineNumber]) {
      currentConditionalEnd = coverage.conditionals[lineNumber];
    }

    var row = '<tr>';
    row += '<td class="numeric">' + lineNumber + '</td>';
    var timesExecuted = coverage[lineNumber];
    if (timesExecuted !== undefined && timesExecuted !== null) {
      if (currentConditionalEnd !== 0) {
        row += '<td class="y numeric">';
      }
      else if (timesExecuted === 0) {
        row += '<td class="r numeric" id="line-' + lineNumber + '">';
      }
      else {
        row += '<td class="g numeric">';
      }
      row += timesExecuted;
      row += '</td>';
    }
    else {
      row += '<td></td>';
    }
    row += '<td><pre>' + lines[i] + '</pre></td>';
    row += '</tr>';
    row += '\n';
    rows[lineNumber] = row;
    i++;
  }
  rows[i + 1] = '</table>';
  ProgressBar.setPercentage(progressBar, 40);
  setTimeout(joinTableRows, 0);
}
function jscoverage_makeTable ( ) { var coverage = _$jscoverage [ jscoverage_currentFile ] ; var lines = coverage . source ; // this can happen if there is an error in the original JavaScript file
 if ( ! lines ) { lines = [ ] ; } var rows = [ '<table id="sourceTable">' ] ; var i = 0 ; var progressBar = document . getElementById ( 'progressBar' ) ; var tableHTML ; var currentConditionalEnd = 0 ; function joinTableRows ( ) { tableHTML = rows . join ( '' ) ; ProgressBar . setPercentage ( progressBar , 60 ) ; /*
    This may be a long delay, so set a timeout of 100 ms to make sure the
    display is updated.
    */ setTimeout ( appendTable , 100 ) ; } function appendTable ( ) { var sourceDiv = document . getElementById ( 'sourceDiv' ) ; sourceDiv . innerHTML = tableHTML ; ProgressBar . setPercentage ( progressBar , 80 ) ; setTimeout ( jscoverage_scrollToLine , 0 ) ; } while ( i < lines . length ) { var lineNumber = i + 1 ; if ( lineNumber === currentConditionalEnd ) { currentConditionalEnd = 0 ; } else if ( currentConditionalEnd === 0 && coverage . conditionals && coverage . conditionals [ lineNumber ] ) { currentConditionalEnd = coverage . conditionals [ lineNumber ] ; } var row = '<tr>' ; row += '<td class="numeric">' + lineNumber + '</td>' ; var timesExecuted = coverage [ lineNumber ] ; if ( timesExecuted !== undefined && timesExecuted !== null ) { if ( currentConditionalEnd !== 0 ) { row += '<td class="y numeric">' ; } else if ( timesExecuted === 0 ) { row += '<td class="r numeric" id="line-' + lineNumber + '">' ; } else { row += '<td class="g numeric">' ; } row += timesExecuted ; row += '</td>' ; } else { row += '<td></td>' ; } row += '<td><pre>' + lines [ i ] + '</pre></td>' ; row += '</tr>' ; row += '\n' ; rows [ lineNumber ] = row ; i ++ ; } rows [ i + 1 ] = '</table>' ; ProgressBar . setPercentage ( progressBar , 40 ) ; setTimeout ( joinTableRows , 0 ) ; }
----------------------------------------------------------------------------- tab 3
----------------------------------------------------------------------------- tab 3