Script Preparation code:
x
 
var a = "Here's a string value";
var b = 5; // and a number
var c = false;
var object = {
  a, b, c
}
var array = [
  a, b, c
];
var passObject = (obj) => {
  return obj.a.length + obj.b * obj.c ? 2 : 1;
}
var passRawValues = (val_a, val_b, val_c) => {
  return val_a.length + val_b * val_c ? 2 : 1;
}
var passArray = (arr) => {
  return arr[0].length + arr[1] * arr[2] ? 2 : 1;
}
var passNothingUseGlobalVars = () => {
  return a + b * c ? 2 : 1;
}
var passNothingUseGlobalObject = () => {
  return object.a.length + object.b * object.c ? 2 : 1;
}
var passNothingUseGlobalArray = () => {
  return array[0].length + array[1] * array[2] ? 2 : 1;
}
var x = 0;
Tests:
  • Pass raw values

     
    x << 1;
    x ^= passRawValues(a, b, c);
  • Pass object

     
    x << 1;
    x ^= passObject(object);
  • Pass array

     
    x << 1;
    x ^= passArray(array);
  • Pass new object

     
    x << 1;
    x ^= passObject({a, b, c});
  • Pass new array

     
    x << 1;
    x ^= passArray([a,b,c]);
  • Pass modified object

     
    object.a = a;
    object.b = b;
    object.c = c;
    x << 1;
    x ^= passObject(object);
  • Pass modified array

     
    array.a=a;
    array.b=b;
    array.c=c;
    x << 1;
    x ^= passArray(array);
  • Global vars

     
    x << 1;
    x ^= passNothingUseGlobalVars();
  • Global object

     
    x << 1;
    x ^= passNothingUseGlobalObject();
  • Global array

     
    x << 1;
    x ^= passNothingUseGlobalArray();
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Pass raw values
    Pass object
    Pass array
    Pass new object
    Pass new array
    Pass modified object
    Pass modified array
    Global vars
    Global object
    Global array

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 2 years ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36
Chrome 109 on Windows
View result in a separate tab
Test name Executions per second
Pass raw values 2689004.5 Ops/sec
Pass object 3896395.8 Ops/sec
Pass array 3869444.2 Ops/sec
Pass new object 2684526.8 Ops/sec
Pass new array 2673640.5 Ops/sec
Pass modified object 1756238.2 Ops/sec
Pass modified array 1758767.8 Ops/sec
Global vars 2622284.2 Ops/sec
Global object 2706401.8 Ops/sec
Global array 2821887.8 Ops/sec