Script Preparation code:
x
 
window.object1 = {};
window.object2 = {};
window.object3 = {};
window.object4 = {};
window.object5 = {};
window.object6 = {};
function makeid() {
  var text = "";
  var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
  for (var i = 0; i < 5; i++)
    text += possible.charAt(Math.floor(Math.random() * possible.length));
  return text;
};
function populate(object) {
  for (let i = 0; i < 10; i++) {
    object[makeid()] = makeid();
  }
};
populate(object1);
populate(object2);
populate(object3);
populate(object4);
populate(object5);
populate(object6);
Tests:
  • Object.assign two objects

     
    const object7 = Object.assign({}, object1, object2);
  • Spread two objects

     
    const object7 = {...object1, ...object2};
  • Object.assign three objects

     
    const object7 = Object.assign({}, object1, object2, object3);
  • Spread three objects

     
    const object7 = {...object1, ...object2, ...object3};
  • Object.assign four objects

     
    const object7 = Object.assign({}, object1, object2, object3, object4);
  • Spread four objects

     
    const object7 = {...object1, ...object2, ...object3, ...object4};
  • Object.assign five objects

     
    const object7 = Object.assign({}, object1, object2, object3, object4, object5);
  • Spread five objects

     
    const object7 = {...object1, ...object2, ...object3, ...object4, ...object5};
  • Object.assign six objects

     
    const object7 = Object.assign({}, object1, object2, object3, object4, object5, object6);
  • Spread six objects

     
    const object7 = {...object1, ...object2, ...object3, ...object4, ...object5, ...object6};
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Object.assign two objects
    Spread two objects
    Object.assign three objects
    Spread three objects
    Object.assign four objects
    Spread four objects
    Object.assign five objects
    Spread five objects
    Object.assign six objects
    Spread six objects

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 2025 years ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.167 Safari/537.36
Chrome 64 on Mac OS X 10.12.6
View result in a separate tab
Test name Executions per second
Object.assign two objects 262009.9 Ops/sec
Spread two objects 260144.5 Ops/sec
Object.assign three objects 179373.6 Ops/sec
Spread three objects 180740.7 Ops/sec
Object.assign four objects 134389.0 Ops/sec
Spread four objects 133780.3 Ops/sec
Object.assign five objects 105595.2 Ops/sec
Spread five objects 104432.9 Ops/sec
Object.assign six objects 85612.9 Ops/sec
Spread six objects 85289.5 Ops/sec