switch vs object literal vs module (v6)

Revision 6 of this benchmark created by LJHarb on


Preparation HTML

<script>
  // alternatives to switch
  var switchObj = {  
   alpha: function () {
    return true;
   }
  },
  switchModule = (function () {
    return {
     alpha: function () {
      return true;
     }
    };
   })();
  
  // called by switch 
  var alpha = function () {
   return true;
  };
  
  // test var
  var foo = "alpha";

  var defaultFunc = function defaultFunc() { };

  var args = [];
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
switch
switch (foo) {
  case "alpha":
    alpha.apply(null, args);
    break;
  default:
   defaultFunc.apply(null, args);
   break;
}
ready
object literal
var bar = switchObj[foo];
if (bar) { bar.apply(null, args) } else { defaultFunc.apply(null, args); }
ready
module
var bar = switchModule[foo];
if (bar) { bar.apply(null, args); } else { defaultFunc.apply(null, args); }
 
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.