On Jan 8, 2012, at 9:26 PM, Brendan Eich wrote:

> On Jan 8, 2012, at 4:53 PM, Mark S. Miller wrote:
> 
>> On Sun, Jan 8, 2012 at 10:32 AM, Brendan Eich <bren...@mozilla.com> wrote:
>> [...]
>> 
>> All cool with the above. Thanks.
>> 
>> I wrote in a previous reply that we aren't preserving ES5 as a spec 
>> referenced from ES6. ES6 will be self-contained. So I still don't grok your 
>> concern here.
>> 
>> Sorry, I missed that. In that case, I still don't understand what your plan 
>> for ES6 is. Does the ES6 spec include the state machine and an updated form 
>> of the ES5-non-strict portions of the ES5 spec, as referenced by that state 
>> machine?
> 
> I defer to Allen, but one approach is to leave ES5-nonstrict as is, and 
> combine strict and extended modes for the "6" in 5&6 and ES56. As you 
> proposed!
> 
> HTH,
> 
> /be
> 

I've been thinking about this, but I'm not yet certain about a preferred 
approach.

One alternative is to keep the current ES5 specification( both non-strict and 
strict) as a normative part of ECMA-262 and add a new part which is the 
complete specification for "ES6".  Essentially Ecma-262-6 part 1 would be the 
same as Ecma-262-5 (plus any errata level corrections) but excluding most of 
clause 15 (the builty-in library) and Ecma-262-9 part 2 would be a 
comprehensive specification for a language that starts with implicit ES5 strict 
mode (modulo completion reform and any other semantic changes) add new ES6 
features and excludes ES5 "non-strict" features and semantics.  Because of the 
shared heap, the new clause 15 would have to apply to both the part 1 and part 
2 languages.  The specification would have to include something like my state 
machine which determines whether the part 1 or part 2 language is to be used to 
process a Program.

This approach has the advantage that it simplifies the specification of the new 
ES6 features and minimizes the risk of unintentionally changing the 
specification of ES-5 non-strict features that must exist somewhere in the 
specification. I'm finding various places where significant changes in 
specification technique is required to support new feature semantics and making 
sure that  the rewritten specification also works for legacy (non-strict ES5).  
 However, this approach has the disadvantage that implementors who what to 
share as much logic as possible between "ES5 mode" and "ES6 mode" many have to 
do their own analysis of the differences and commonalities.

Allen



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

Reply via email to