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

JavaScript performance comparison

Revision 20 of this test case created by Eser Ozvataf

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(obj) {
            var items = new Array(obj.length);
            for (var i = obj.length; i--; ) {
                items[i] = items[i];
            }

            return items;
}
</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