Script Preparation code:
x
 
var data = {
  property: property
};
var property = undefined;
var method = {
  getProperty: function() {
    return property;
  },
  setProperty: function(value) {
    property = value;
  }
};
var objectLiteralAccessor = {
  get property() {
    return property;
  },
  set property(value) {
    property = value;
  }
};
function Class() {
}
Class.prototype = {
  getProperty() {
    return property;
  },
  setProperty(value) {
    property = value;
  },
  get property() {
    return property;
  },
  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;
  • Write to object

     
    var value = prototypeAccessor.getProperty();
  • Read to object

     
    prototypeAccessor.setProperty(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
    Write to object
    Read to object

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 11 days ago)
Mozilla/5.0 (Android 14; Mobile; rv:137.0) Gecko/137.0 Firefox/137.0
Firefox Mobile 137 on Android
View result in a separate tab
Test name Executions per second
Read from data property 1053559040.0 Ops/sec
Write to data property 667213888.0 Ops/sec
Read from accessor method 200637168.0 Ops/sec
Write to mutator method 663203136.0 Ops/sec
Read from object literal property 206934000.0 Ops/sec
Write to object literal property 668268608.0 Ops/sec
Read from object literal property on prototype 205789296.0 Ops/sec
Write to object literal property on prototype 656327104.0 Ops/sec
Write to object 205450240.0 Ops/sec
Read to object 669246784.0 Ops/sec