Performance switch / if

Test different ways to do 30 different tasks.

CSS

body{font-family:monospace;}
.fail {background:#faa; color:#000;}
.pass {background:#afa; color:#000;}

JavaScript

"use strict";

var ROUNDS = 100; // How many rounds the test should be run.
var uiBrowser= typeof navigator !== 'undefined';

function detectTimeResolution() {
  var ta = [+new Date()], tn, td=[];
  while (ta.length < 10) {
    do {
      tn = + new Date();
    } while(tn === ta[ta.length-1]);
    ta.push(tn);
  }

  var sum =0;

  for (var idx = 1; idx< ta.length; ++idx) {
    sum += ta[idx]- ta[idx-1];
  }
  return sum / (ta.length-1);
}

var resolution = detectTimeResolution();
console.log('Time resolution: ', resolution);

//Make data
var data=(function () {
  var data=[], idx;
  for (idx=0; idx < 10000; ++idx) {
    data.push(Math.random() * 30000 | 0);
  }
  return data; 
})();

// Array of tests
// ["nameOfTest",function test(){}]
var tests=[
  [
    "if-immediate",
    function() {
      var idx=ROUNDS, val, temp, didx, dlen;
      while(idx--) {
        temp = 0;
        for (didx=0, dlen = data.length; didx < dlen; ++didx) {
          val = data[didx];
          if (val < 1000) { temp+= 0 + val; } else
          if (val < 2000) { temp+= 1 + val; } else
          if (val < 3000) { temp+= 2 + val; } else
          if (val < 4000) { temp+= 3 + val; } else
          if (val < 5000) { temp+= 4 + val; } else
          if (val < 6000) { temp+= 5 + val; } else
          if (val < 7000) { temp+= 6 + val; } else
          if (val < 8000) { temp+= 7 + val; } else
          if (val < 9000) { temp+= 8 + val; } else
          if (val < 10000) { temp+= 9 + val; } else
          if (val < 11000) { temp+= 10 + val; } else
          if (val < 12000) { temp+= 11 + val; } else
          if (val < 13000) { temp+= 12 + val; } else
          if (val < 14000) { temp+= 13 + val; } else
          if (val < 15000) { temp+= 14 + val; } else
          if (val < 16000) { temp+= 15 + val; } else
          if (val < 17000) { temp+= 16 + val; } else
          if (val < 18000) { temp+= 17 + val; } else
          if (val < 19000) { temp+= 18 + val; } else
          if (val < 20000) {...