docs: function evaluate(event) {
        var critical,
            df,
            mean,
            moe,
            rme,
            sd,
            sem,
            variance,
            clone = event.target,
            done = bench.aborted,
            now = +new Date,
            size = sample.push(clone.times.period),
            maxedOut = size >= minSamples && (elapsed += now - clone.times.timeStamp) / 1e3 > bench.maxTime,
            times = bench.times,
            varOf = function(sum, x) { return sum + pow(x - mean, 2); };
  
        // exit early for aborted or unclockable tests
        if (done || clone.hz == Infinity) {
          maxedOut = !(size = sample.length = queue.length = 0);
        }
  
        if (!done) {
          // sample mean (estimate of the population mean)
          mean = getMean(sample);
          // sample variance (estimate of the population variance)
          variance = reduce(sample, varOf, 0) / (size - 1) || 0;
          // sample standard deviation (estimate of the population standard deviation)
          sd = sqrt(variance);
          // standard error of the mean (a.k.a. the standard deviation of the sampling distribution of the sample mean)
          sem = sd / sqrt(size);
          // degrees of freedom
          df = size - 1;
          // critical value
          critical = tTable[Math.round(df) || 1] || tTable.infinity;
          // margin of error
          moe = sem * critical;
          // relative margin of error
          rme = (moe / mean) * 100 || 0;
  
          extend(bench.stats, {
            'deviation': sd,
            'mean': mean,
            'moe': moe,
            'rme': rme,
            'sem': sem,
            'variance': variance
          });
  
          // Abort the cycle loop when the minimum sample size has been collected
          // and the elapsed time exceeds the maximum time allowed per benchmark.
          // We don't count cycle delays toward the max time because delays may be
          // increased by browsers that clamp timeouts for inactive tabs.
          // https://developer.mozilla.org/en/window.setTimeout#Inactive_tabs
          if (maxedOut) {
            // reset the `initCount` in case the benchmark is rerun
            bench.initCount = initCount;
            bench.running = false;
            done = true;
            times.elapsed = (now - times.timeStamp) / 1e3;
          }
          if (bench.hz != Infinity) {
            bench.hz = 1 / mean;
            times.cycle = mean * bench.count;
            times.period = mean;
          }
        }
        // if time permits, increase sample size to reduce the margin of error
        if (queue.length < 2 && !maxedOut) {
          enqueue(1);
        }
        // abort the invoke cycle when done
        event.aborted = done;
      }