Run details:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0
Chrome 134
Mac OS X 10.15.7
Desktop
one month ago
Test name Executions per second
Object.assign two objects 184918.9 Ops/sec
Spread two objects 41400.0 Ops/sec
Object.assign three objects 88899.8 Ops/sec
Spread three objects 21847.7 Ops/sec
Object.assign four objects 56413.3 Ops/sec
Spread four objects 14498.5 Ops/sec
Object.assign five objects 39123.2 Ops/sec
Spread five objects 10828.7 Ops/sec
Object.assign six objects 34141.0 Ops/sec
Spread six objects 8738.2 Ops/sec
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 < 100; 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};