Why is not "9007199254740991" treated as an integer index?
The specification of the [[OwnPropertyKeys]]
internal method in ECMAScript 2017 (and in 2018) did not match the real behavior of all major JavaScript engines, so in ECMAScript 2019, the specification has been fixed.
See the discussion on GitHub.