Повторы чисел в массиве

Немного игрался с заданием "Повторы слов 2/5.
И не могу понять одного. Вот масив чисел и функция
let arr = [2, 1, 4, 3, 5, 5, 4, 3, 5, 4, 74, 99, 32, 32, 5 ,32,2, 7, 99 , 1 , 1]

var getRepeats = (arr) => {
  var obj = {};
  for (var i = 0; i < arr.length; i++){
    (!obj[arr[i]]) ? obj[arr[i]] = 1 : obj[arr[i]]++;
    }
    return obj
  }
getRepeats(arr);

Почему в объект добавляются ключи в порядке возрастания чисел, а не по порядку , как они в массиве?

Вот результат
{1: 3, 2: 2, 3: 2, 4: 3, 5: 4, 7: 1, 32: 3, 74: 1, 99: 2} (Object)

Все современные браузеры сортируют числовые свойства объектов в целях внутренней оптимизации.

1 Симпатия