Script Preparation code:
Tests:
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: one year 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
Variable binding to literal
62.9M/s
Constant binding to literal
57.7M/s
Do nothing (leave at the end, hardware is warmed up)
57.7M/s
Do nothing (leave at the beginning, hardware warm up)
57.5M/s
Object-destructuring variable binding with numbers
49.8M/s
Object-destructuring reverse constant binding with strings
49.8M/s
Object-destructuring constant binding with strings
49.7M/s
Object-destructuring reverse variable binding with strings
49.1M/s
Object-destructuring reverse variable binding with numbers
48.9M/s
Object-destructuring variable binding with strings
45.7M/s
Constant binding to variable
44.9M/s
Variable binding to constant
44.7M/s
Variable binding to variable
44.5M/s
Object-destructuring reverse constant binding with numbers
44.1M/s
Array-destructuring constant binding
43.4M/s
Array-destructuring variable binding
42.3M/s
Object-destructuring constant binding with numbers
39.5M/s
Variable binding to array
38.9M/s
Constant binding to array
38.8M/s
Constant binding to constant
38.4M/s
Constant reverse binding to array
38.0M/s
Variable reverse binding to array
37.5M/s
Conditional array assignment to literal !==
33.3M/s
Conditional variable assignment to literal !==
33.2M/s
Conditional array reverse assignment to literal !==
30.8M/s
Array assignment to literal
29.4M/s
Conditional array assignment to variable !==
28.5M/s
Conditional variable assignment to variable !==
28.4M/s
Conditional variable assignment to array !==
28.1M/s
Conditional variable assignment to constant !==
28.1M/s
Conditional variable reverse assignment to array !==
28.0M/s
Array reverse assignment to literal
28.0M/s
Array assignment to constant
24.6M/s
Conditional array reverse assignment to variable !==
24.1M/s
Array reverse assignment to constant
24.0M/s
Object-destructuring reverse element assignment with numbers
23.3M/s
Conditional array reverse assignment to constant !==
23.3M/s
Object-destructuring element assignment with numbers
22.8M/s
Object-destructuring reverse element assignment with strings
22.8M/s
Object-destructuring element assignment with strings
22.8M/s
Conditional array assignment to array !==
22.6M/s
Conditional array assignment to literal Object.is()
22.2M/s
Array reverse assignment to variable
22.0M/s
Array assignment to variable
21.8M/s
Conditional array reverse assignment to literal Object.is()
21.6M/s
Loop of second
21.6M/s
Conditional array reverse assignment to array !==
21.4M/s
Conditional array reverse assignment to variable Object.is()
21.4M/s
Conditional variable assignment to literal Object.is()
21.2M/s
Conditional array reverse assignment to constant Object.is()
21.2M/s
Conditional variable assignment to variable Object.is()
21.1M/s
Conditional array assignment to variable Object.is()
21.1M/s
Conditional array assignment to constant Object.is()
21.0M/s
Conditional array assignment to constant !==
21.0M/s
Conditional variable assignment to constant Object.is()
20.5M/s
Conditional variable assignment to array Object.is()
20.1M/s
Loop from end with constant length
19.7M/s
Loop from start with literal length
19.6M/s
Array reverse assignment to array
19.4M/s
Loop from start with constant length
19.4M/s
Conditional array reverse assignment to array Object.is()
19.3M/s
Conditional array assignment to array Object.is()
18.9M/s
Conditional variable reverse assignment to array Object.is()
18.8M/s
Array assignment to array
18.8M/s
Loop from end with literal length
18.5M/s
Loop of first
18.0M/s
Array-destructuring element assignment
17.1M/s
Loop from end with constant first length
17.1M/s
Loop from end evaluating second length
17.0M/s
Loop from end evaluating first length
16.5M/s
Loop from end with variable first length
16.4M/s
Loop from start with constant first length
16.1M/s
Loop from end with variable second length
16.0M/s
Loop from start with variable second length
15.9M/s
Loop from end with constant second length
15.8M/s
Loop from start with variable first length
15.6M/s
.forEach() on first closure
15.4M/s
Loop from start with constant second length
15.2M/s
.forEach() on second closure
14.7M/s
Loop from start re-evaluating first length
14.7M/s
Loop from start re-evaluating second length
13.9M/s
.forEach() on second
7.5M/s
.forEach() on first
6.5M/s
Array-destructuring rest assignment
2.7M/s
Loop in first
2.0M/s
Loop in second
1.9M/s
Object-destructuring reverse variable assignment with strings
1.4M/s
Object-destructuring reverse variable assignment with numbers
1.4M/s
Object-destructuring variable assignment with strings
1.4M/s
Object-destructuring variable assignment with numbers
1.4M/s
Variable assignment to variable
1.3M/s
Variable assignment to array
1.3M/s
Variable reverse assignment to array
1.2M/s
Variable assignment to constant
1.2M/s
Variable assignment to literal
1.2M/s
Array-destructuring variable assignment
1.1M/s
Object-destructuring rest assignment
350K/s
View exact numbers
Test name Executions per second
Variable binding to literal 62,922,236 Ops/sec
Constant binding to literal 57,676,348 Ops/sec
Do nothing (leave at the end, hardware is warmed up) 57,665,884 Ops/sec
Do nothing (leave at the beginning, hardware warm up) 57,478,832 Ops/sec
Object-destructuring variable binding with numbers 49,794,924 Ops/sec
Object-destructuring reverse constant binding with strings 49,764,324 Ops/sec
Object-destructuring constant binding with strings 49,664,060 Ops/sec
Object-destructuring reverse variable binding with strings 49,085,320 Ops/sec
Object-destructuring reverse variable binding with numbers 48,931,360 Ops/sec
Object-destructuring variable binding with strings 45,665,976 Ops/sec
Constant binding to variable 44,917,524 Ops/sec
Variable binding to constant 44,701,200 Ops/sec
Variable binding to variable 44,472,068 Ops/sec
Object-destructuring reverse constant binding with numbers 44,117,768 Ops/sec
Array-destructuring constant binding 43,363,372 Ops/sec
Array-destructuring variable binding 42,272,040 Ops/sec
Object-destructuring constant binding with numbers 39,534,520 Ops/sec
Variable binding to array 38,883,008 Ops/sec
Constant binding to array 38,813,616 Ops/sec
Constant binding to constant 38,365,084 Ops/sec
Constant reverse binding to array 37,950,436 Ops/sec
Variable reverse binding to array 37,504,864 Ops/sec
Conditional array assignment to literal !== 33,255,812 Ops/sec
Conditional variable assignment to literal !== 33,192,938 Ops/sec
Conditional array reverse assignment to literal !== 30,802,484 Ops/sec
Array assignment to literal 29,425,548 Ops/sec
Conditional array assignment to variable !== 28,490,798 Ops/sec
Conditional variable assignment to variable !== 28,372,002 Ops/sec
Conditional variable assignment to array !== 28,110,302 Ops/sec
Conditional variable assignment to constant !== 28,093,182 Ops/sec
Conditional variable reverse assignment to array !== 28,025,650 Ops/sec
Array reverse assignment to literal 27,969,364 Ops/sec
Array assignment to constant 24,637,108 Ops/sec
Conditional array reverse assignment to variable !== 24,140,354 Ops/sec
Array reverse assignment to constant 23,982,702 Ops/sec
Object-destructuring reverse element assignment with numbers 23,307,198 Ops/sec
Conditional array reverse assignment to constant !== 23,299,324 Ops/sec
Object-destructuring element assignment with numbers 22,839,016 Ops/sec
Object-destructuring reverse element assignment with strings 22,832,166 Ops/sec
Object-destructuring element assignment with strings 22,813,556 Ops/sec
Conditional array assignment to array !== 22,638,614 Ops/sec
Conditional array assignment to literal Object.is() 22,211,558 Ops/sec
Array reverse assignment to variable 21,984,274 Ops/sec
Array assignment to variable 21,835,088 Ops/sec
Conditional array reverse assignment to literal Object.is() 21,639,946 Ops/sec
Loop of second 21,630,276 Ops/sec
Conditional array reverse assignment to array !== 21,415,974 Ops/sec
Conditional array reverse assignment to variable Object.is() 21,350,422 Ops/sec
Conditional variable assignment to literal Object.is() 21,240,844 Ops/sec
Conditional array reverse assignment to constant Object.is() 21,210,166 Ops/sec
Conditional variable assignment to variable Object.is() 21,149,526 Ops/sec
Conditional array assignment to variable Object.is() 21,095,758 Ops/sec
Conditional array assignment to constant Object.is() 21,027,210 Ops/sec
Conditional array assignment to constant !== 21,015,598 Ops/sec
Conditional variable assignment to constant Object.is() 20,533,852 Ops/sec
Conditional variable assignment to array Object.is() 20,102,334 Ops/sec
Loop from end with constant length 19,740,880 Ops/sec
Loop from start with literal length 19,614,166 Ops/sec
Array reverse assignment to array 19,444,828 Ops/sec
Loop from start with constant length 19,443,376 Ops/sec
Conditional array reverse assignment to array Object.is() 19,282,466 Ops/sec
Conditional array assignment to array Object.is() 18,899,040 Ops/sec
Conditional variable reverse assignment to array Object.is() 18,845,834 Ops/sec
Array assignment to array 18,808,360 Ops/sec
Loop from end with literal length 18,465,244 Ops/sec
Loop of first 17,988,788 Ops/sec
Array-destructuring element assignment 17,102,096 Ops/sec
Loop from end with constant first length 17,078,096 Ops/sec
Loop from end evaluating second length 16,971,996 Ops/sec
Loop from end evaluating first length 16,547,016 Ops/sec
Loop from end with variable first length 16,379,137 Ops/sec
Loop from start with constant first length 16,050,165 Ops/sec
Loop from end with variable second length 15,960,315 Ops/sec
Loop from start with variable second length 15,854,480 Ops/sec
Loop from end with constant second length 15,773,020 Ops/sec
Loop from start with variable first length 15,583,005 Ops/sec
.forEach() on first closure 15,407,853 Ops/sec
Loop from start with constant second length 15,191,005 Ops/sec
.forEach() on second closure 14,721,358 Ops/sec
Loop from start re-evaluating first length 14,691,269 Ops/sec
Loop from start re-evaluating second length 13,889,201 Ops/sec
.forEach() on second 7,516,918 Ops/sec
.forEach() on first 6,480,734 Ops/sec
Array-destructuring rest assignment 2,698,267 Ops/sec
Loop in first 1,989,614 Ops/sec
Loop in second 1,932,138 Ops/sec
Object-destructuring reverse variable assignment with strings 1,414,204 Ops/sec
Object-destructuring reverse variable assignment with numbers 1,414,132 Ops/sec
Object-destructuring variable assignment with strings 1,387,436 Ops/sec
Object-destructuring variable assignment with numbers 1,385,889 Ops/sec
Variable assignment to variable 1,300,063 Ops/sec
Variable assignment to array 1,270,750 Ops/sec
Variable reverse assignment to array 1,244,739 Ops/sec
Variable assignment to constant 1,226,941 Ops/sec
Variable assignment to literal 1,200,615 Ops/sec
Array-destructuring variable assignment 1,078,004 Ops/sec
Object-destructuring rest assignment 350,345 Ops/sec