Script Preparation code:
Tests:
  • Do nothing at the beginning, cold hardware

  • Constant binding to literal

  • Constant binding to constant

  • Constant binding to variable

  • Constant binding to array

  • Constant reverse binding to array

  • Variable binding to literal

  • Variable binding to constant

  • Variable binding to variable

  • Variable binding to array

  • Variable reverse binding to array

  • Variable assignment to literal

  • Variable assignment to constant

  • Variable assignment to variable

  • Variable assignment to array

  • Variable reverse assignment to array

  • Array assignment to literal

  • Array reverse assignment to literal

  • Array assignment to constant

  • Array reverse assignment to constant

  • Array assignment to variable

  • Array reverse assignment to variable

  • Array assignment to array

  • Array reverse assignment to array

  • Conditional variable assignment to literal !==

  • Conditional variable assignment to constant !==

  • Conditional variable assignment to variable !==

  • Conditional variable assignment to array !==

  • Conditional variable reverse assignment to array !==

  • Conditional array assignment to literal !==

  • Conditional array reverse assignment to literal !==

  • Conditional array assignment to constant !==

  • Conditional array reverse assignment to constant !==

  • Conditional array assignment to variable !==

  • Conditional array reverse assignment to variable !==

  • Conditional array assignment to array !==

  • Conditional array reverse assignment to array !==

  • Conditional variable assignment to literal Object.is()

  • Conditional variable assignment to constant Object.is()

  • Conditional variable assignment to variable Object.is()

  • Conditional variable assignment to array Object.is()

  • Conditional variable reverse assignment to array Object.is()

  • Conditional array assignment to literal Object.is()

  • Conditional array reverse assignment to literal Object.is()

  • Conditional array assignment to constant Object.is()

  • Conditional array reverse assignment to constant Object.is()

  • Conditional array assignment to variable Object.is()

  • Conditional array reverse assignment to variable Object.is()

  • Conditional array assignment to array Object.is()

  • Conditional array reverse assignment to array Object.is()

  • Loop from start with literal length

  • Loop from end with literal length

  • Loop from start with constant length

  • Loop from end with constant length

  • Loop from start with constant first length

  • Loop from end with constant first length

  • Loop from start with constant second length

  • Loop from end with constant second length

  • Loop from start with variable first length

  • Loop from end with variable first length

  • Loop from start with variable second length

  • Loop from end with variable second length

  • Loop from start re-evaluating first length

  • Loop from end evaluating first length

  • Loop from start re-evaluating second length

  • Loop from end evaluating second length

  • Loop in first

  • Loop in second

  • Loop of first

  • Loop of second

  • .forEach() on first

  • .forEach() on first closure

  • .forEach() on second

  • .forEach() on second closure

  • Array-destructuring constant binding

  • Array-destructuring variable binding

  • Array-destructuring variable assignment

  • Array-destructuring element assignment

  • Array-destructuring rest assignment

  • Object-destructuring constant binding with numbers

  • Object-destructuring reverse constant binding with numbers

  • Object-destructuring variable binding with numbers

  • Object-destructuring reverse variable binding with numbers

  • Object-destructuring variable assignment with numbers

  • Object-destructuring reverse variable assignment with numbers

  • Object-destructuring element assignment with numbers

  • Object-destructuring reverse element assignment with numbers

  • Object-destructuring constant binding with strings

  • Object-destructuring reverse constant binding with strings

  • Object-destructuring variable binding with strings

  • Object-destructuring reverse variable binding with strings

  • Object-destructuring variable assignment with strings

  • Object-destructuring reverse variable assignment with strings

  • Object-destructuring element assignment with strings

  • Object-destructuring reverse element assignment with strings

  • Object-destructuring rest assignment

  • Object.assign()

  • Do nothing at the end, warm hardware

Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results
  • Test case name Result
    Do nothing at the beginning, cold hardware
    Constant binding to literal
    Constant binding to constant
    Constant binding to variable
    Constant binding to array
    Constant reverse binding to array
    Variable binding to literal
    Variable binding to constant
    Variable binding to variable
    Variable binding to array
    Variable reverse binding to array
    Variable assignment to literal
    Variable assignment to constant
    Variable assignment to variable
    Variable assignment to array
    Variable reverse assignment to array
    Array assignment to literal
    Array reverse assignment to literal
    Array assignment to constant
    Array reverse assignment to constant
    Array assignment to variable
    Array reverse assignment to variable
    Array assignment to array
    Array reverse assignment to array
    Conditional variable assignment to literal !==
    Conditional variable assignment to constant !==
    Conditional variable assignment to variable !==
    Conditional variable assignment to array !==
    Conditional variable reverse assignment to array !==
    Conditional array assignment to literal !==
    Conditional array reverse assignment to literal !==
    Conditional array assignment to constant !==
    Conditional array reverse assignment to constant !==
    Conditional array assignment to variable !==
    Conditional array reverse assignment to variable !==
    Conditional array assignment to array !==
    Conditional array reverse assignment to array !==
    Conditional variable assignment to literal Object.is()
    Conditional variable assignment to constant Object.is()
    Conditional variable assignment to variable Object.is()
    Conditional variable assignment to array Object.is()
    Conditional variable reverse assignment to array Object.is()
    Conditional array assignment to literal Object.is()
    Conditional array reverse assignment to literal Object.is()
    Conditional array assignment to constant Object.is()
    Conditional array reverse assignment to constant Object.is()
    Conditional array assignment to variable Object.is()
    Conditional array reverse assignment to variable Object.is()
    Conditional array assignment to array Object.is()
    Conditional array reverse assignment to array Object.is()
    Loop from start with literal length
    Loop from end with literal length
    Loop from start with constant length
    Loop from end with constant length
    Loop from start with constant first length
    Loop from end with constant first length
    Loop from start with constant second length
    Loop from end with constant second length
    Loop from start with variable first length
    Loop from end with variable first length
    Loop from start with variable second length
    Loop from end with variable second length
    Loop from start re-evaluating first length
    Loop from end evaluating first length
    Loop from start re-evaluating second length
    Loop from end evaluating second length
    Loop in first
    Loop in second
    Loop of first
    Loop of second
    .forEach() on first
    .forEach() on first closure
    .forEach() on second
    .forEach() on second closure
    Array-destructuring constant binding
    Array-destructuring variable binding
    Array-destructuring variable assignment
    Array-destructuring element assignment
    Array-destructuring rest assignment
    Object-destructuring constant binding with numbers
    Object-destructuring reverse constant binding with numbers
    Object-destructuring variable binding with numbers
    Object-destructuring reverse variable binding with numbers
    Object-destructuring variable assignment with numbers
    Object-destructuring reverse variable assignment with numbers
    Object-destructuring element assignment with numbers
    Object-destructuring reverse element assignment with numbers
    Object-destructuring constant binding with strings
    Object-destructuring reverse constant binding with strings
    Object-destructuring variable binding with strings
    Object-destructuring reverse variable binding with strings
    Object-destructuring variable assignment with strings
    Object-destructuring reverse variable assignment with strings
    Object-destructuring element assignment with strings
    Object-destructuring reverse element assignment with strings
    Object-destructuring rest assignment
    Object.assign()
    Do nothing at the end, warm hardware

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 11 days ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36
Chrome 131 on Windows
View result in a separate tab
Test name Executions per second
Do nothing (leave at the beginning, hardware warm up) 57478832.0 Ops/sec
Constant binding to literal 57676348.0 Ops/sec
Constant binding to constant 38365084.0 Ops/sec
Constant binding to variable 44917524.0 Ops/sec
Constant binding to array 38813616.0 Ops/sec
Constant reverse binding to array 37950436.0 Ops/sec
Variable binding to literal 62922236.0 Ops/sec
Variable binding to constant 44701200.0 Ops/sec
Variable binding to variable 44472068.0 Ops/sec
Variable binding to array 38883008.0 Ops/sec
Variable reverse binding to array 37504864.0 Ops/sec
Variable assignment to literal 1200615.4 Ops/sec
Variable assignment to constant 1226941.1 Ops/sec
Variable assignment to variable 1300063.2 Ops/sec
Variable assignment to array 1270750.2 Ops/sec
Variable reverse assignment to array 1244738.9 Ops/sec
Array assignment to literal 29425548.0 Ops/sec
Array reverse assignment to literal 27969364.0 Ops/sec
Array assignment to constant 24637108.0 Ops/sec
Array reverse assignment to constant 23982702.0 Ops/sec
Array assignment to variable 21835088.0 Ops/sec
Array reverse assignment to variable 21984274.0 Ops/sec
Array assignment to array 18808360.0 Ops/sec
Array reverse assignment to array 19444828.0 Ops/sec
Conditional variable assignment to literal !== 33192938.0 Ops/sec
Conditional variable assignment to constant !== 28093182.0 Ops/sec
Conditional variable assignment to variable !== 28372002.0 Ops/sec
Conditional variable assignment to array !== 28110302.0 Ops/sec
Conditional variable reverse assignment to array !== 28025650.0 Ops/sec
Conditional array assignment to literal !== 33255812.0 Ops/sec
Conditional array reverse assignment to literal !== 30802484.0 Ops/sec
Conditional array assignment to constant !== 21015598.0 Ops/sec
Conditional array reverse assignment to constant !== 23299324.0 Ops/sec
Conditional array assignment to variable !== 28490798.0 Ops/sec
Conditional array reverse assignment to variable !== 24140354.0 Ops/sec
Conditional array assignment to array !== 22638614.0 Ops/sec
Conditional array reverse assignment to array !== 21415974.0 Ops/sec
Conditional variable assignment to literal Object.is() 21240844.0 Ops/sec
Conditional variable assignment to constant Object.is() 20533852.0 Ops/sec
Conditional variable assignment to variable Object.is() 21149526.0 Ops/sec
Conditional variable assignment to array Object.is() 20102334.0 Ops/sec
Conditional variable reverse assignment to array Object.is() 18845834.0 Ops/sec
Conditional array assignment to literal Object.is() 22211558.0 Ops/sec
Conditional array reverse assignment to literal Object.is() 21639946.0 Ops/sec
Conditional array assignment to constant Object.is() 21027210.0 Ops/sec
Conditional array reverse assignment to constant Object.is() 21210166.0 Ops/sec
Conditional array assignment to variable Object.is() 21095758.0 Ops/sec
Conditional array reverse assignment to variable Object.is() 21350422.0 Ops/sec
Conditional array assignment to array Object.is() 18899040.0 Ops/sec
Conditional array reverse assignment to array Object.is() 19282466.0 Ops/sec
Loop from start with literal length 19614166.0 Ops/sec
Loop from end with literal length 18465244.0 Ops/sec
Loop from start with constant length 19443376.0 Ops/sec
Loop from end with constant length 19740880.0 Ops/sec
Loop from start with constant first length 16050165.0 Ops/sec
Loop from end with constant first length 17078096.0 Ops/sec
Loop from start with constant second length 15191005.0 Ops/sec
Loop from end with constant second length 15773020.0 Ops/sec
Loop from start with variable first length 15583005.0 Ops/sec
Loop from end with variable first length 16379137.0 Ops/sec
Loop from start with variable second length 15854480.0 Ops/sec
Loop from end with variable second length 15960315.0 Ops/sec
Loop from start re-evaluating first length 14691269.0 Ops/sec
Loop from end evaluating first length 16547016.0 Ops/sec
Loop from start re-evaluating second length 13889201.0 Ops/sec
Loop from end evaluating second length 16971996.0 Ops/sec
Loop in first 1989614.5 Ops/sec
Loop in second 1932137.9 Ops/sec
Loop of first 17988788.0 Ops/sec
Loop of second 21630276.0 Ops/sec
.forEach() on first 6480733.5 Ops/sec
.forEach() on first closure 15407853.0 Ops/sec
.forEach() on second 7516918.5 Ops/sec
.forEach() on second closure 14721358.0 Ops/sec
Array-destructuring constant binding 43363372.0 Ops/sec
Array-destructuring variable binding 42272040.0 Ops/sec
Array-destructuring variable assignment 1078004.5 Ops/sec
Array-destructuring element assignment 17102096.0 Ops/sec
Array-destructuring rest assignment 2698267.0 Ops/sec
Object-destructuring constant binding with numbers 39534520.0 Ops/sec
Object-destructuring reverse constant binding with numbers 44117768.0 Ops/sec
Object-destructuring variable binding with numbers 49794924.0 Ops/sec
Object-destructuring reverse variable binding with numbers 48931360.0 Ops/sec
Object-destructuring variable assignment with numbers 1385889.4 Ops/sec
Object-destructuring reverse variable assignment with numbers 1414131.5 Ops/sec
Object-destructuring element assignment with numbers 22839016.0 Ops/sec
Object-destructuring reverse element assignment with numbers 23307198.0 Ops/sec
Object-destructuring constant binding with strings 49664060.0 Ops/sec
Object-destructuring reverse constant binding with strings 49764324.0 Ops/sec
Object-destructuring variable binding with strings 45665976.0 Ops/sec
Object-destructuring reverse variable binding with strings 49085320.0 Ops/sec
Object-destructuring variable assignment with strings 1387436.0 Ops/sec
Object-destructuring reverse variable assignment with strings 1414204.4 Ops/sec
Object-destructuring element assignment with strings 22813556.0 Ops/sec
Object-destructuring reverse element assignment with strings 22832166.0 Ops/sec
Object-destructuring rest assignment 350344.6 Ops/sec
Do nothing (leave at the end, hardware is warmed up) 57665884.0 Ops/sec