various_array_addAlls (v7)

Revision 7 of this benchmark created on


Preparation HTML

<script>
  var ns = [1, 2, 3, 4];
  
  function addAll(dest, src) {
   for (var i = 0; i < src.length; i++) {
    dest.push(src[i]);
   }
  
   return dest;
  }
  
  function addAllJ(dest, src) {
       for (var i = 0, length = src.length; i < length; i++) {
     dest.push(src[i]);
       }
       return dest;
  }
  
  function addAllSet(dest, src) {
   for (var i = 0, length = src.length; i < length; i++) {
    dest[dest.length] = src[i];
   }
  
   return dest;
  }
  
  function addAllShift(dest, src) {
   var i = src.length;
   while (i--) {
    dest.push(src.shift);
   }
  
   return dest;
  }
  
  function addAllWhile(dest, src) {
   var i = 0,
       s = src.length;
   while (s--) {
    dest.push(src[i++]);
   }
  
   return dest;
  }
  
  function addAllOnePush(dest, src) {
    Array.prototype.push.apply(dest, src);
    return dest;
  }
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
mine
var ns2 = addAll([], ns);
ready
caching length
var ns2 = addAllJ([], ns);
ready
dest[i] =
var ns2 = addAllSet([], ns);
ready
shift
var ns2 = addAllShift([], ns);
ready
while
var ns2 = addAllWhile([], ns);
ready
Array.prototype.push
var ns2 = addAllOnePush([], ns);
ready

Revisions

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