Run details:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
Chrome 114
Linux
Desktop
one year ago
Test name Executions per second
Reflect setPrototypeOf 3071970.2 Ops/sec
Object setPrototypeOf 3076529.0 Ops/sec
assign 72.5 Ops/sec
spread 70.7 Ops/sec
HTML Preparation code:
AخA
 
1
spred vs object assign vs object setPrototypeOf vs reflect setPrototypeOf
Script Preparation code:
 
window.data = Array.from({ length: 65535 }, (_, index) => index);
Tests:
  • Reflect setPrototypeOf

     
    var reflectSetPrototypeOf = Object.setPrototypeOf({}, window.data); 
  • Object setPrototypeOf

     
    var objectSetPrototypeOf = Object.setPrototypeOf({}, window.data);
  • assign

     
    var assign = Object.assign({}, window.data);
  • spread

     
    var spread = { ...window.data };