Script Preparation code:
AخA
 
var Closure = (function initClosure() {
    let value = 0;
    return {
        getValue: function getValue() {
            return value;
        },
        setValue: function setValue(x) {
            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 - Directly get

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

     
    public.value = 1;
  • Public - Setter function

     
    public.setValue( 1 );
  • Public - Directly set

     
    public.value = 1;
  • Private - ES6 property (get)

     
    val = private.value;
  • Private - Getter function

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

     
    private.value = 1;
  • Private - Setter function

     
    private.setValue( 1 );
  • Closure - Getter function

     
    Closure.getValue();
  • Closure - Setter function

     
    Closure.setValue( 1 );
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 - Directly get
    Public - ES6 property (set)
    Public - Setter function
    Public - Directly set
    Private - ES6 property (get)
    Private - Getter function
    Private - ES6 property (set)
    Private - Setter function
    Closure - Getter function
    Closure - Setter function

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 3 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
Public - ES6 property (get) 7462431.5 Ops/sec
Public - Getter function 6705466.0 Ops/sec
Public - Directly get 6156127.0 Ops/sec
Public - ES6 property (set) 65838800.0 Ops/sec
Public - Setter function 63478128.0 Ops/sec
Public - Directly set 64529084.0 Ops/sec
Private - ES6 property (get) 5265531.0 Ops/sec
Private - Getter function 5159066.5 Ops/sec
Private - ES6 property (set) 58952800.0 Ops/sec
Private - Setter function 58186636.0 Ops/sec
Closure - Getter function 54487944.0 Ops/sec
Closure - Setter function 50046764.0 Ops/sec