Script Preparation code:
AخA
 
var data = [
  1, 2, 3, 4,
  [1, 2, 3, 4],
  5, 6, 7, 8,
  [1, 2, 3, 4]
];
Tests:
  • Spread Push

     
    (function fn(items){
      var result = [];
      items.forEach(item => {
        if(item.pop) {
          result.push(...fn(item));
        } else {
          result.push(item);
        }
      });
      return result;
    })(data);
  • Concat Reassign

     
    (function fn(items){
      var result = [];
      items.forEach(item => {
        if(item.pop) {
          result = result.concat(fn(item));
        } else {
          result.push(item);
        }
      });
      return result;
    })(data);
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Spread Push
    Concat Reassign

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 8 years ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36
Chrome 55 on Mac OS X 10.11.6
View result in a separate tab
Test name Executions per second
Spread Push 190417.7 Ops/sec
Concat Reassign 310196.7 Ops/sec