Tests:
  • Get/Set

    x
     
    const obj = {
      __value: 0,
      get value() {
        return this.__value;
      },
      set value(v) {
        this.__value = v;
      }
    };
    function increase() {
      obj.value = obj.value + 1;
    }
    while (obj.value < 1000) {
      increase();
    }
  • Function

     
    const obj = {
      __value: 0,
      getValue() {
        return this.__value;
      },
      setValue(v) {
        this.__value = v;
      }
    };
    function increase() {
      obj.setValue(obj.getValue() + 1);
    }
    while (obj.getValue() < 1000) {
      increase();
    }
  • Proxy

     
    const obj = new Proxy(
      { value: 0 },
      {
        get(obj, key) { return obj[key] },
        set(obj, key, value) { obj[key] = value },
      }
    );
    function increase() {
      obj.value = obj.value + 1;
    }
    while (obj.value < 1000) {
      increase();
    }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Get/Set
    Function
    Proxy

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 2 months ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36
Chrome 132 on Mac OS X 10.15.7
View result in a separate tab
Test name Executions per second
Get/Set 18360.9 Ops/sec
Function 1048986.8 Ops/sec
Proxy 6100.0 Ops/sec