for..in
прямо пишут, что порядок детерминирован и одинаков во всех браузерах/движках:The traversal order, as of modern ECMAScript specification, is well-defined and consistent across implementations.
Within each component of the prototype chain, all non-negative integer keys (those that can be array indices) will be traversed first in ascending order by value, then other string keys in ascending chronological order of property creation.
learn.javascript.ru