A loop starts i at 0, increments by 1, and uses i <= items.length while intending to process only valid array indexes. What is the bug?
Explanation
The less-than-or-equal condition admits i when it is exactly equal to the array length, causing one extra iteration beyond the final valid index. Replacing it with the half-open test i < items.length excludes that out-of-range pass.