The correction, @@ unscopables never rolled back from V8 - the second change you are referring to was just prepared for an emergency, but, fortunately, we did not need it, it never happened. So, @@ unscopables sends to Chrome 38, and accordingly, also Array.prototype.values.
It is impossible to disable ES6 functions, because it will not be very promising, and the code that relies on it will be doomed to loosen after a few months or in other browsers anyway.
The ES committee is usually very careful not to "break the web." In practice, this means that no actual use cases should be interrupted, i.e. Things that are already found on the Internet. Strictly speaking, any change violates some hypothetical code, because even completely new functions will noticeably change the behavior of "eval". If we avoided even a strict criterion, then language could never have developed.
Your specific example is not found in the wild, as far as I can tell. As others answered, in this case there is no reason to use arrays, [] -syntax works just as well with regular objects. You only need arrays when your indices are integers.
The only web development issues that have previously appeared with the new Array.prototype.values ββmethod are related to the "with" construct (which you should not use, ever). Then @@ unscopables was introduced to get around this.
Edit: .values had to be removed again from V8 due to a bug in Microsoft OWA 2013. But think that this is a temporary measure. Microsoft is aware of the problem and .values will be back as soon as possible.
source share