On Fri, Jan 6, 2012 at 12:29 PM, Brendan Eich <bren...@mozilla.com> wrote:
> On Jan 6, 2012, at 12:09 PM, Axel Rauschmayer wrote: > > >> Rather, we should minimize the state machine and how we talk about it. > We could generalize it using Curr, Next, Curr&Next, and Curr-Next labels. > > > > I’m awfully sorry for belaboring this point. But the labels and the > quote below don’t go together. > > > > Quoting Brendan: > > > >>> - ES6 is a superset of ES5.strict. > >> > >> That's always been promised. > > > > > > Then I would only expect two labels: ES6 and non-strict > > You're counting different beans from Mark's "modes" and from Allen's > states. > Hi Brendan, as I read it, Axel captures exactly the two modes I have in mind. > > The reason the state machine matters is implementation (including the fine > spec, the normative implementation). Authors can think of writing > non-strict ES5 or lower, or ES5 strict -- or ES6 if they use a bit of > novelty. Different beans again. > > I'm not sure what informs your label count expectation. In writing JS for > the web over the next several years, you might have to worry quite a bit > about ES5 strict vs. ES6. You can't just assume ES6 works everywhere that > ES5 strict works. > The issue is: What does it mean for a browser to be standards compliant once it is fully conformant with ES6? Yes, of course there will be a long phase of partial ES6 compliance as features are incrementally rolled out. Just as there was with ES5. But during this period, no one claims full conformance with ES6, so standards compliance mean only compliance with ES5. To be standards compliant once one is ES6 compliant, the state machine + ES6 keeps some portion of the ES5 spec as a live normative spec because it is reachable from the state machine. The only question is: Which portion is reachable? With Allen's plan, all of it. With the one line revision Axel and I have in mind, the ES5-strict spec stops being reachable as normative for ES6 compliant browsers. It is dead code that can be considered garbage. In the ES6 era, I hope to be able to say "ES5-strict is dead. Long live ES6!". However, ES5-non-strict (or "non-strict", or "ES3") will continue to live for the foreseeable future. It will probably outlive most of us. > > /be > > > > > > ES6-only => (a subset of) ES6 > > ES5-only => only possible for non-strict constructs => non-strict > > ES5&ES6 => (a subset of) ES6 > > ES5~EAS6 => not possible (“The construct has identical syntax and > static semantics in both ES5 and ES6, but differing semantics.”) > > > > -- > > Dr. Axel Rauschmayer > > a...@rauschma.de > > > > home: rauschma.de > > twitter: twitter.com/rauschma > > blog: 2ality.com > > > > -- Cheers, --MarkM
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss