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

JavaScript performance comparison

Revision 19 of this test case created by Victor

Preparation code

<script>
var slice = Array.prototype.slice,
    _slice = [].slice,
    wslice = window.Array.prototype.slice;

var items = new Array(100);
for (var i = 0; i < 100; i++) {
    items[i] = i;
}

function nonnative_slice(item, start) {
    start = ~~start;
    var len = item.length, newArray = new Array(len - start);
    for (var i = start; i < len; i++) {
        newArray[i - start] = item[i];
    }
    return newArray;
}
</script>
    

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in CCBot 2.0.0 / Other 0.0.0
Test Ops/sec
Array.prototype.slice
Array.prototype.slice.call(items)
pending…
[].slice
[].slice.call(items)
pending…
cached prototype
slice.call(items);
pending…
cached [].slice
_slice.call(items);
pending…
Array().slice
Array().slice.call(items);
pending…
window.Array
window.Array.prototype.slice.call(items);
pending…
wslice cached
wslice.call(items);
pending…
slice(0)
items.slice(0)
pending…
non native slice
nonnative_slice(items);
pending…

Compare results of other browsers

Revisions

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

0 Comments