Проблема вашего кода заключается в ошибке в условии проверки во втором условном операторе `if (arr.every((item, index) => { ... }))`.
В вашей текущей реализации, вы используете `index.length` вместо `arr.length` в условии, что приводит к некорректному сравнению. В результате, условие `index < index.length` всегда будет возвращать `true`, потому что `index` является числом (индексом), а у него нет свойства `length`.
Верное условие должно быть следующим: `return index < arr.length - 1 ? item <= arr[index + 1] : true`.
Таким образом, в вашем коде, измененное условие будет выглядеть следующим образом:
```javascript
if (
arr.every((item, index) => {
console.log(item); // 1, 2, 4, 5, 5, 21, 3, 21
console.log(arr[index + 1]); // 2, 4, 5, 5, 21, 3, 21, undefined
return index < arr.length - 1 ? item <= arr[index + 1] : true
})
) {
checker = false
}
```
После этого изменения, ваш алгоритм сортировки должен работать корректно.