Почему некорректно сортируется массив чисел arr.sort?
isFromSmallerCode.value надо менять либо до, либо после сортировки, но не во время её.
Так вы на каждом сравнении зачем-то меняете направление сортировки. Вот sort и не может правильно выполниться.