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

Reply via email to