Array.prototype.slice.call() vs [].slice.call() nested (v17)

Revision 17 of this benchmark created on


Description

caching the prototype lookup should be fastest... Would it be even faster if we cache the call too...

Preparation HTML

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>
  var items = [1, 2, 3, 4, 5],
      slice = Array.prototype.slice,
      _slice = [].slice,
  wslice = window.Array.prototype.slice;

function nonnative_slice(item, start){
  start = ~~start;
  var
    len = item.length, i, newArray;

  newArray = new Array(len - start);
  
  for (i = start; i < len; i++){
    newArray[i - start] = item[i];
  }
       
  return newArray;
}
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
Array.prototype.slice
Array.prototype.slice.call( items )
ready
[].slice
[].slice.call( items )
ready
cached prototype
slice.call(items);
ready
cached [].slice
_slice.call(items);
 
ready
Array().slice
Array().slice.call(items);
ready
window.Array
window.Array.prototype.slice.call(items);
ready
wslice cached
wslice.call( items );
ready
slice(0)
items.slice(0)
ready
non native slice
nonnative_slice(items);
ready

Revisions

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