apply alternatives (v2)

Revision 2 of this benchmark created on


Preparation HTML

<script>
  function foo(x, y, z) {
   return x + y * z;
  }
  
  function fooApply() {
   var args = [];
   for (var i = 2, len = arguments.length; i < len; i++) {
    args[args.length] = arguments[i];
   }
   foo.apply(null, args);
  }
  
  function barApply() {
   bar(arguments);
  }
  
  function bar(args) {
   var x = args[2];
   var y = args[3];
   var z = args[4];
   return x + y * z;
  }
  
  function barApply2(args) {
   bar2(args);
  }
  
  function bar2(args) {
   var x = args[2];
   var y = args[3];
   var z = args[4];
   return x + y * z;
  }
  
  function barApplyZ(args, z) {
   bar2(args, z);
  }
  
  function bar2(args, z) {
   var x = args[2];
   var y = args[3];
   return x + y * z;
  }
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
apply
var c = fooApply(1, 2, 3, 4, 5);
ready
pass in args via arguments
var c = barApply(1, 2, 3, 4, 5);
ready
pass in args via own array
var c = barApply2([1, 2, 3, 4, 5]);
ready
all but last in array
var c = barApplyZ([1, 2, 3, 4], 5);
ready

Revisions

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