Касательно ordered/unordered для object vs Map. (ecma 24.1.1.1) Set map.[[MapData]] to a new empty List. Когда берём итератор у Map-a - он опирается на [[MapData]] - на List. Для List же в (6.2.2) описано "When an algorithm iterates over the elements of a List without specifying an order, the order used is the order of the elements in the List.". Есть смотреть глубже - [[ownPropertyKeys]] у Object-a - тоже List, но в Map добавление новой энтри явно говорит сделать "append to M.[[MapData]]". Для объектов, если я ничего не упускаю - описано лишь то, что [[Set]] новой проперти приведёт к созданию рекорда, и ничего явного про то, куда новый key засунуть.