There is no 5.5 -- new features can be used from unversioned script, but those 
that break backward compatibility (old code running in new browser) must be 
inside a new special form that expresses explicit opt-in. This means

  yield reserved in function*
  let reserved in module body (however declared)
  free variable error checking in module body
  completion reform in module body
  typeof null reform in module body (debatable)

Global code still can use new features such as module declarations. That means 
your "global = ES5" does not work. Do not linearize onto a version number line.

/be

----- Original Message -----
From: "Axel Rauschmayer" <a...@rauschma.de>
To: "David Herman" <dher...@mozilla.com>
Cc: "es-discuss Steen" <es-discuss@mozilla.org>
Sent: Saturday, December 31, 2011 7:16:06 PM
Subject: Re: ES6 doesn't need opt-in






Each new feature can be considered independently. Anything that is only allowed 
within modules becomes a carrot to lead programmers to the improved semantics, 
but whenever we can compatibly make something available to global code, we 
should do so. No point needlessly depriving programmers of ES6 goodies such as 
destructuring or spread/rest. 



I’m not entirely sure, but introducing two new dialects (ES5.5 and ES6, if you 
will) at the same time seems problematic. It might be easier to stick to the 
simpler rule of “global = ES5”. 


Apart from that: sold. 

















-- 
Dr. Axel Rauschmayer 
a...@rauschma.de 



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




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

Reply via email to