Script Preparation code:
x
 
const foo = 5
var data = {
  property: foo
};
var method = {
  getProperty: function() {
    return foo;
  },
  setProperty: function(value) {
    property = value;
  }
};
var objectLiteralAccessor = {
  get property() {
    return foo;
  },
  set property(value) {
    property = value;
  }
};
function Class() {
}
Class.prototype = {
  get property() {
    return foo;
  },
  set property(value) {
    property = value;
  }
};
    
var prototypeAccessor = new Class();
Tests:
  • Read from data property

     
    var value = data.property;
  • Write to data property

     
    data.property = true;
  • Read from accessor method

     
    var value = method.getProperty();
  • Write to mutator method

     
    method.setProperty(true);
  • Read from object literal property

     
    var value = objectLiteralAccessor.property;
  • Write to object literal property

     
    objectLiteralAccessor.property = true;
  • Read from object literal property on prototype

     
    var value = prototypeAccessor.property;
  • Write to object literal property on prototype

     
    prototypeAccessor.property = true;
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Read from data property
    Write to data property
    Read from accessor method
    Write to mutator method
    Read from object literal property
    Write to object literal property
    Read from object literal property on prototype
    Write to object literal property on prototype

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 4 months ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Chrome 130 on Mac OS X 10.15.7
View result in a separate tab
Test name Executions per second
Read from data property 26632470.0 Ops/sec
Write to data property 26598838.0 Ops/sec
Read from accessor method 26519682.0 Ops/sec
Write to mutator method 8889552.0 Ops/sec
Read from object literal property 21108186.0 Ops/sec
Write to object literal property 6191070.5 Ops/sec
Read from object literal property on prototype 27012620.0 Ops/sec
Write to object literal property on prototype 8876211.0 Ops/sec