>> Ok, is there any observable difference between what you would have future 
>> browsers do, vs the equivalent mechanisms except that program #2 is 
>> categorized as an ES6 program and processed as such?
>> 
>> If there is no observable difference, good. Then it's only a matter of how 
>> we describe an agreed semantics. If there is an observable difference, how 
>> is this not three modes?
> 
> There should be no observable difference.  But the issue isn't how we 
> described the (program) semantics.  It is how we decide which semantics to 
> apply.
> 
> The tricky cases are thing like:
> 
> function f(a) {
>     arguments[0]=2;
>     return a
> }
> print(f(1));  //2 if ES5, 1 if ES6
> 
> There is nothing in the source file that implies which specification to apply 
> so for backwards computability a browser must default to interpreting such 
> program as a ES5 program. Anything syntactically unique to ES5 (eg, use of a 
> with statment) or ES6 (eg, use rest or spread) would force one interpretation 
> or another

But what you are saying is that ES6 is not a superset of ES5.strict, right?

I thought that there were only 2 semantics:
  1.  ES5.non-strict (which is a superset of all previous versions) [a.k.a. 
"non-strict"]
  2.  ES6 (which is a superset of ES5.strict) [a.k.a. "strict"]

My understanding is that #1 would be the default and when one encounters 
anything ES6-specific (an “ES6 trigger”) or "use strict" then the semantics 
switches to #2.
=> encountering a with statement would be fine, because #1 is the default, 
anyway.
=> encountering a with statement and either an ES6 trigger or a "use strict" 
would be an error.

As a human, I would want an ES6 trigger to appear as early as possible. I 
wouldn’t want to read through a file, encounter an ES6 trigger at the end and 
then have to revise the understanding of the code that I had so far. I like the 
whole-file-or-nothing approach for switching semantics that you proposed.

-- 
Dr. Axel Rauschmayer
[email protected]

home: rauschma.de
twitter: twitter.com/rauschma
blog: 2ality.com

_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to