Four static scoping violations in ES5 sloppy

Brendan Eich brendan at
Mon Mar 18 09:48:36 PDT 2013

Andreas Rossberg wrote:
> On 18 March 2013 17:32, Mark S. Miller<erights at>  wrote:
>> And why does ES5/strict impose these restrictions, when they are not
>> necessary for the formal criterion?
>> Because ES5 strict mode, being an opt-in, gave us a rare opportunity to
>> clean things up in preparation for yet better scoping in ES6. I'm pleased to
>> report that it mostly turned out that way. Because of #1 and #3, ES5 strict
>> code will be easier to refactor into ES6 modules, where the global object is
>> finally not on their scope chain. At the time we did this, we didn't
>> anticipate this specific aspect of ES6, but took the opportunity to clear
>> the ground.
> Maybe I misunderstand what you mean, but unfortunately, the global
> object will remain at the top of the scope chain in ES6, even with
> modules (though complemented with a lexical environment for new
> binding forms). We shied away from fixing that mistake.

Don't break the web.

Versioning is an anti-pattern.

I don't think "shied away" is accurate. We couldn't fix that mistake.


More information about the es-discuss mailing list