Test name | Executions per second |
---|---|
Class: direct | 398258880.0 Ops/sec |
Class: apply | 279955200.0 Ops/sec |
Class: bind | 55733584.0 Ops/sec |
Object literal: direct | 282577888.0 Ops/sec |
Object literal: apply | 289969504.0 Ops/sec |
Object literal: bind | 55094104.0 Ops/sec |
Object with context: direct | 394821344.0 Ops/sec |
Object with context: variable | 277841920.0 Ops/sec |
class Foo1 {
property = 5;
method() {
this.property += 1;
}
}
function Bar1() {
return {
property: 5,
method() {
this.property += 1;
}
};
}
function Bar2() {
let property = 5;
return {
method: () => {
property += 1;
}
};
}
var foo1 = new Foo1();
var foo1Apply = foo1.method;
var foo1Bind = foo1.method.bind(foo1);
var bar1 = Bar1();
var bar1Apply = bar1.method;
var bar1Bind = bar1.method.bind(bar1);
var bar2 = Bar2();
var bar2Variable = bar2.method;
foo1.method();
foo1Apply.apply(foo1);
foo1Bind();
bar1.method();
bar1Apply.apply(bar1);
bar1Bind();
bar2.method();
bar2Variable();