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

Reply via email to