Run details:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.79 Safari/537.36
Chrome 100
Windows
Desktop
3 years ago
Test name Executions per second
Object.assign 40.6 Ops/sec
spread operator 31.4 Ops/sec
Tests:
  • Object.assign

    x
     
    // Object.assign
    function createObject(fillValue) {
        return Object.fromEntries(new Array(1024*12).fill(fillValue).map((value, index) => {
            return [fillValue + index, fillValue + index];
        }));
    }
    const params = createObject('params');
    const other = Object.assign(createObject('assign'), params);
  • spread operator

     
    // spread operator
    function createObject(fillValue) {
        return Object.fromEntries(new Array(1024*12).fill(fillValue).map((value, index) => {
            return [fillValue + index, fillValue + index];
        }));
    }
    const params = createObject('params');
    const other = {...createObject('spread'), ...params};