[[OwnPropertyKeys]] is not invoked by a for-in loop.  [[Enumerate]] is instead, and while it defines that the set of iterated names is the same as that returned by [[OwnPropertyKeys]] it explicitly says that order is not defined.