Script Preparation code:
Tests:

Historical Performance Data aggregated from 101 community runs

Desktop Results:
Chrome 87 runs
spread syntax
18.8M/s
Cursed Proxy
15.4M/s
Object.assign
3.5M/s
JSON
990K/s
Object.fromEntries
740K/s
structuredClone()
475K/s

Fastest: spread syntax (39.6x faster)

View exact numbers
  • spread syntax: 18,776,872 ops/sec
  • Cursed Proxy: 15,443,028 ops/sec
  • Object.assign: 3,525,583 ops/sec
  • JSON: 990,473 ops/sec
  • Object.fromEntries: 739,834 ops/sec
  • structuredClone(): 474,611 ops/sec
Firefox 14 runs
Object.assign
15.3M/s
Cursed Proxy
4.5M/s
spread syntax
4.4M/s
Object.fromEntries
937K/s
JSON
698K/s
structuredClone()
410K/s

Fastest: Object.assign (37.3x faster)

View exact numbers
  • Object.assign: 15,310,604 ops/sec
  • Cursed Proxy: 4,461,170 ops/sec
  • spread syntax: 4,413,742 ops/sec
  • Object.fromEntries: 937,202 ops/sec
  • JSON: 697,768 ops/sec
  • structuredClone(): 410,367 ops/sec

Results show median performance across all community submissions. Run this benchmark yourself to verify on your device.

Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results
  • Test case name Result
    structuredClone()
    spread syntax
    Object.assign
    Object.fromEntries
    JSON
    Cursed Proxy

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 8 months ago)
Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Mobile Safari/537.36
Chrome Mobile 142 on Android
View result in a separate tab
Cursed Proxy
30.8M/s
spread syntax
28.5M/s
Object.assign
3.6M/s
JSON
1.1M/s
Object.fromEntries
650K/s
structuredClone()
230K/s
View exact numbers
Test name Executions per second
Cursed Proxy 30,848,864 Ops/sec
spread syntax 28,524,344 Ops/sec
Object.assign 3,570,910 Ops/sec
JSON 1,073,940 Ops/sec
Object.fromEntries 649,583 Ops/sec
structuredClone() 229,965 Ops/sec