Run details:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.22 Safari/537.36
Chrome 86
Mac OS X 10.14.6
Desktop
4 years ago
Test name Executions per second
Object setter 5835338.0 Ops/sec
Proxy setter 1899049.1 Ops/sec
Proxy with set handler 2012063.1 Ops/sec
Script Preparation code:
AخA
 
object = {};
proxy = new Proxy(object, {})
proxyWithHandler = new Proxy(object, {
    set(target, prop, receiver) {
        return Reflect.set(target, prop, receiver)
    }
})
Tests:
  • Object setter

     
    object.value = 'data';
  • Proxy setter

     
    proxy.value = 'data';
  • Proxy with set handler

     
    proxyWithHandler.value = 'data';