Script Preparation code:
AخA
 
var a;
var prependArray = function(value, oldArray) {
    var i, len = oldArray.length + 1,
        newArray = new Array(len);
    newArray[0] = value;
    for (i = 0; i < len; ++i) {
        newArray.push(oldArray[i]);
    }
    return newArray;
}
Tests:
  • Spread Operator

     
    a = new Array(10000).fill().map((_, i) => i)
    a = [0, ...a];
  • Unshift

     
    a = new Array(10000).fill().map((_, i) => i)
    a.unshift(0);
  • Unshift without mutation

     
    a = new Array(10000).fill().map((_, i) => i)
    a.slice(0).unshift(0);
  • Prepend function

     
    a = new Array(10000).fill().map((_, i) => i)
    prependArray(0, a);
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Spread Operator
    Unshift
    Unshift without mutation
    Prepend function

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: one month ago)
Mozilla/5.0 (iPhone; CPU iPhone OS 18_3_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.3.1 Mobile/15E148 Safari/604.1
Mobile Safari 18 on iOS 18.3.2
View result in a separate tab
Test name Executions per second
Spread Operator 28927.7 Ops/sec
Unshift 34056.5 Ops/sec
Unshift without mutation 27897.1 Ops/sec
Prepend function 11977.0 Ops/sec