Тут правда есть нюанс: в стандарте не регламентировано сохранение порядка ключей в Object, поэтому в каждом браузере оно может реализовано по своему, но вот в Map порядок по стандарту задан (в порядке добавления).
Недавно с удивлением узнал что в ES6 порядок таки регламентировали. Эх а ведь такая благодатная тема была.)
Кстати да, я тоже не понимаю, почему эта функция глобальная. Или тоже взять например btoa и atob - их же логично запихнуть в String. Они каждую спецификацию годами мучают, вроде должны всё обдумать, а всё равно странные вещи есть.
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.