ES6 doesn't need opt-in

Andreas Rossberg rossberg at google.com
Mon Jan 9 09:28:11 PST 2012


On 9 January 2012 16:54, Brendan Eich <brendan at mozilla.com> wrote:
> The question is how bad these will be for anyone writing JS naively, based on current and emerging (ES6) docs, without explicit opt-in.
>
> The answer entails at least:
>
> 1. ES5-strict semantic changes, e.g. arguments aliasing, without early errors.
>
> 2. Completion reform.
>
> 3. New early errors.
>
> I think 3 is a good thing and a non-problem. Some of us hope 2 is a matter of indifference to real-world code, but we don't know for sure. That leaves 1.

Yes, but (1) is not a trivial set -- e.g. receiver coercions, eval
semantics, delete type errors, arguments aliasing, poisoning of
caller/arguments, etc.

> No other semantic changes, right? The key idea of the state machine is not its exact spec (still being discussed) but that "one JS" should mean sane operation or early error, based on smooth upgrade to use non-conflicting new features (or conflicts, e.g. 'with' vs. 'module').
>
> Why work harder on implicit opt-in? Yes, savvy users will put a pragma on line 1. Not all JS users are savvy and requiring them to become so asks too much.

But it's especially the non-savvy ones that would be particularly
well-advised to put in that pragma, so that they avoid nasty surprises
beyond their grasp!

/Andreas


More information about the es-discuss mailing list