Не указано. Спецификация гласит: :
- Выполнить зависящую от реализации последовательность вызовов абстрактной операции Get, Set, DeletePropertyOrThrow и HasOwnProperty с obj в качестве первого аргумента и SortCompare (описано ниже), такой что:
- ...
Поскольку этот порядок не указан, мы использовали , чтобы иметь возможность видеть поведение, подобное это , в котором несовместимый алгоритм сортировки приводит к различным результатам сортировки в разных средах, поскольку разные среды сравнивали элементы массива в разных порядках.
Если вы делаете имеет стабильный, согласованный алгоритм сортировки, тогда порядок сравнения элементов не должен иметь значения, особенно если учесть, что сортировка теперь должна быть стабильной по состоянию на ES2019 (", то есть элементы, сравниваемые равными должен оставаться в своем первоначальном порядке ").
Независимо от порядка, в котором движок сравнивает элементы, результирующий массив должно быть одинаковым в разных средах. Он может сначала сравнить элемент [0]
с элементом [1]
, либо сначала сравнить элемент [length - 1]
с элементом [length - 2]
.