Script Preparation code:
x
 
var obj = { a:1 }
function setNumber(key, value) {
  obj[key] = value;
}
function setCall(key, getValue) {
  obj[key] = getValue(obj);
}
function setTypecheck(key, value) {
  obj[key] = typeof value === "number" ? value : value(obj);
}
function getValue() {
  return 100;
}
Tests:
  • setNumber

     
    setNumber("a", 100);
  • setCall

     
    setCall("a", getValue);
  • setTypecheck(num)

     
    setTypecheck("a", 100);
  • setTypecheck(call)

     
    setTypecheck("a", getValue);
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    setNumber
    setCall
    setTypecheck(num)
    setTypecheck(call)

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 2 years ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36
Chrome 102 on Mac OS X 10.15.7
View result in a separate tab
Test name Executions per second
setNumber 13312209.0 Ops/sec
setCall 6746080.5 Ops/sec
setTypecheck(num) 13313842.0 Ops/sec
setTypecheck(call) 6710818.5 Ops/sec