Script Preparation code:
AخA
 
var c = 0;
object = {};
class p {
    set value(v){
         if (c++%7==0) v += c;
        this._value = v;
    }
}
proxy = new p();
proxyWithHandler = new Proxy(object, {
    set(target, prop, receiver) {
        if (c++%7==0) prop += c;
        return Reflect.set(target, prop, receiver);
    }
})
Tests:
  • Object setter

     
    object.value = 'data';
  • Proxy setter

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

     
    proxyWithHandler.value = 'data';
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Object setter
    Proxy setter
    Proxy with set handler

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 3 years ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36 Edg/94.0.992.38
Chrome 94 on Windows
View result in a separate tab
Test name Executions per second
Object setter 5262696.0 Ops/sec
Proxy setter 1703045.5 Ops/sec
Proxy with set handler 874933.1 Ops/sec