On 10/28/2014 09:10 AM, Andreas Rossberg wrote: > If so, how do we fix this? Allowing shadowing after the fact is pretty > bad, since it will probably make all accesses to builtin globals > slower in ES6. But it is particularly bad for 'undefined', where the > ability to rebind would break various assumptions and optimisations > based on its immutability.
This seems avoidable to me, even with the current spec language. Implementations would simply need to track syntactically-global accesses (accesses that are global only at runtime, due to dynamic scoping via with, eval, and similar are already slow, so effects on their perf seem ignorable). Then, if a new script's compilation would introduce a shadowing lexical declaration, invalidate the existing global-access code, such that when it next runs it takes account of the shadowing declaration. (Or appears to have that effect.) What am I missing? Jeff _______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

