Script Preparation code:
Tests:

Historical Performance Data aggregated from 10 community runs

Desktop Results:
Chrome 10 runs
Direct Object Property
109K/s
Object.defineProperty
35K/s
Object.assign (mutable)
34K/s
Object.defineProperty with getter and setter
29K/s
Object.defineProperty on Proxy
26K/s
Property direct on Proxy
23K/s
Object.defineProperty on Proxy with getter and setter
20K/s
Object.defineProperties (plural) with getter and setter
13K/s
Object.assign (immutable)
749/s

Fastest: Direct Object Property (145.3x faster)

View exact numbers
  • Direct Object Property: 108,814 ops/sec
  • Object.defineProperty: 35,456 ops/sec
  • Object.assign (mutable): 34,454 ops/sec
  • Object.defineProperty with getter and setter: 28,717 ops/sec
  • Object.defineProperty on Proxy: 25,809 ops/sec
  • Property direct on Proxy: 22,909 ops/sec
  • Object.defineProperty on Proxy with getter and setter: 19,634 ops/sec
  • Object.defineProperties (plural) with getter and setter: 13,121 ops/sec
  • Object.assign (immutable): 749 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
    Object.defineProperty
    Object.assign (immutable)
    Object.assign (mutable)
    Object.defineProperty on Proxy
    Property direct on Proxy
    Direct Object Property
    Object.defineProperty with getter and setter
    Object.defineProperties (plural) with getter and setter
    Object.defineProperty on Proxy with getter and setter
    Object.assign on Proxy (mutable)

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 4 months ago)
Mozilla/5.0 (X11; Linux x86_64; rv:147.0) Gecko/20100101 Firefox/147.0
Firefox 147 on Linux
View result in a separate tab
Direct Object Property
111K/s
Object.defineProperty
103K/s
Object.assign (mutable)
60K/s
Object.defineProperty with getter and setter
53K/s
Property direct on Proxy
42K/s
Object.defineProperty on Proxy
26K/s
Object.assign on Proxy (mutable)
25K/s
Object.defineProperty on Proxy with getter and setter
19K/s
Object.defineProperties (plural) with getter and setter
17K/s
Object.assign (immutable)
14K/s
View exact numbers
Test name Executions per second
Direct Object Property 111,448 Ops/sec
Object.defineProperty 102,652 Ops/sec
Object.assign (mutable) 60,209 Ops/sec
Object.defineProperty with getter and setter 52,807 Ops/sec
Property direct on Proxy 41,643 Ops/sec
Object.defineProperty on Proxy 25,596 Ops/sec
Object.assign on Proxy (mutable) 25,217 Ops/sec
Object.defineProperty on Proxy with getter and setter 18,720 Ops/sec
Object.defineProperties (plural) with getter and setter 16,651 Ops/sec
Object.assign (immutable) 14,023 Ops/sec