Script Preparation code:
x
 
var nullProto = Object.create( null );
nullProto.value = 0;
var frozen = Object.freeze( {
    _value: 0,
    get value() {
        return this._value;
    },
    set value(x) {
        this._value = x
    },
    getValue() {
        return this._value
    },
    setValue(x) {
        this._value = x
    }
} );
class Private {
    #value = 0;
    constructor() {
        this.#value = 1
    }
    get value() {
        return this.#value
    }
    set value(x) {
        this.#value = x
    }
    getValue() {
        return this.#value
    }
    setValue(x) {
        this.#value = x
    }
}
class Public {
    value = 0;
    constructor() {
        this.value = 1
    }
    get value() {
        return this.value
    }
    set value(x) {
        this.value = x
    }
    getValue() {
        return this.value
    }
    setValue(x) {
        this.value = x
    }
}
var private = new Private();
var public = new Public();
var val = 0;
Tests:
  • Public ES6 property (get)

     
    val = public.value;
  • Public Getter function

     
    val = public.getValue();
  • Public ES6 property (set)

     
    public.value = 1;
  • Public Setter function

     
    public.setValue(1);
  • Private ES6 property (get)

     
    val = private.value;
  • Private Getter function

     
    val = private.getValue();
  • Private ES6 property (set)

     
    private.value = 2;
  • Private Setter function

     
    private.setValue(2);
  • Null Prototype Directly Set

     
    nullProto.value = 3;
  • Null Prototype Directly Get

     
    val = nullProto.value;
  • Frozen Object Literal (Get)

     
    val = frozen.value;
  • Frozen Object Literal (Set)

     
    frozen.value = 4;
  • Frozen Object Literal Getter Function

     
    val = frozen.getValue();
  • Frozen Object Literal Setter Function;

     
    val = frozen.setValue( 4 );
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Public ES6 property (get)
    Public Getter function
    Public ES6 property (set)
    Public Setter function
    Private ES6 property (get)
    Private Getter function
    Private ES6 property (set)
    Private Setter function
    Null Prototype Directly Set
    Null Prototype Directly Get
    Frozen Object Literal (Get)
    Frozen Object Literal (Set)
    Frozen Object Literal Getter Function
    Frozen Object Literal Setter Function;

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: one year ago)
Mozilla/5.0 (Android 13; Mobile; rv:125.0) Gecko/125.0 Firefox/125.0
Firefox Mobile 125 on Android
View result in a separate tab
Test name Executions per second
Public ES6 property (get) 287119840.0 Ops/sec
Public Getter function 225521968.0 Ops/sec
Public ES6 property (set) 381688032.0 Ops/sec
Public Setter function 421710496.0 Ops/sec
Private ES6 property (get) 284741632.0 Ops/sec
Private Getter function 187699088.0 Ops/sec
Private ES6 property (set) 379605824.0 Ops/sec
Private Setter function 379377376.0 Ops/sec
Null Prototype Directly Set 419596448.0 Ops/sec
Null Prototype Directly Get 291660736.0 Ops/sec
Frozen Object Literal (Get) 287468992.0 Ops/sec
Frozen Object Literal (Set) 15857800.0 Ops/sec
Frozen Object Literal Getter Function 179343952.0 Ops/sec
Frozen Object Literal Setter Function; 14836120.0 Ops/sec