Allen Wirfs-Brock (2014-02-14T21:41:17.000Z)
On Feb 14, 2014, at 11:38 AM, Jeremy Martin wrote:

> On further reflection, #3 does feel like trying to rewrite the past.  For better or worse, non-strict mode allows declarations to persist past the eval().  And while strict mode provides a license-to-kill on behavior like that, I don't really see strong justification for that kind of surprise factor for let in non-strict mode.
> 
> If you're not using strict mode AND you're using eval(), the damage is arguably already done (or at least the danger already exists).  Changing the behavior of let in this case feels like removing an arbitrary* foot-gun when we're already in the armory, so to speak.
> 
> * Granted it's not completely arbitrary, since `let` is new whereas `var` is not, but hopefully you get my point.

Another consideration in the back of my mind is that there may be useful to implementors to knowing that let/const/class declaration are never dynamically added to a non-global environment. 

Allen
domenic at domenicdenicola.com (2014-02-20T01:19:22.672Z)
Another consideration in the back of my mind is that there may be useful to implementors to knowing that let/const/class declaration are never dynamically added to a non-global environment.