On Jan 9, 2012, at 2:59 AM, Andreas Rossberg wrote: > I think the state machine is over-complicating things. What it boils > down to is that we are defining a new language, ES6-proper (or > informally ES6 for short). It overlaps with ES5 but does not include > it (e.g. throws out `with'). Then your "state machine" simply says, > declaratively: > > - If a program is ES5 but not ES6, treat as ES5. > - If a program is ES6 but not ES5, treat as ES6. > - If a program is both ES5 and ES6, with identical semantics, treat as > ES6 (although it doesn't matter). > - If a program is both ES5 and ES6, with different semantics, treat as > ES5 (for compatibility). > - If a program is neither ES5 nor ES6, it's an error (obviously).
If the a program is both ES5 and ES6 with identical semantics, then presumably we could equally treat it as ES5 with no behavior change? If so, couldn't this be stated in a much simpler fashion: - If a program is ES5, treat as ES5. - If a program is not ES5 but is ES6, treat as ES6. - If a program is neither ES5 nor ES6, it's an error (obviously). cheers, G.
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss