On Jan 6, 2012, at 1:35 PM, Axel Rauschmayer wrote:

>> The issue is *how* the spec and implementations decide what is supported, 
>> and when to raise an error on new syntax mixed (after) old non-strict code 
>> (e.g., 'with').
> 
> 
> Ah, OK. I thought that one would be able to lump together ES5.non-strict and 
> all prior ES versions on one hand and ES6 and ES5.strict on the other hand.

Notice that two of the four states contain possible outcome

terminate with Error: invalid combination of ES5 and ES6 features

These are the states labeled ES5 and ES6.

It should be clear that you need more than two states to judge whether a given 
hunk of code is ES5 non-strict (or lower) -- the default unversioned <script> 
JS we know today -- or ES5-strict or higher. To have only two states in the 
machine, you would need version-based opt-in.

But don't worry about counting states. Count minimal or even non-minimal 
"modes" if you like ;-).


> But it makes sense that even if developers (engine users) are presented with 
> something simple, implementors have to take care of many more details.

A point that I flog often. The few and skilled implementors should take some 
complexity on behalf of the whole user base, provided that complexity in 
implementation and specification saves the bulk of users enough by simplifying 
migration and adoption.

IMHO we are onto something good here. The complexity for the implementors does 
not too bad (I'm looking at it right now for SpiderMonkey), and the user-facing 
wins are huge.

/be
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to