On Jan 5, 2012, at 8:30 AM, Axel Rauschmayer wrote: > On Jan 5, 2012, at 1:56 , Brendan Eich wrote: > >> Better to dispense with modes or ordered versions altogether, which is the >> key idea of the proposal. > > > So, simplified, the story is: > > - ES6 is a superset of ES5.strict.
That's always been promised. > - ES{3,5}.non-strict is neither a subset nor a superset of ES6, it has to be > handled differently. > > If these modes (strict versus non-strict) exist, then I would want a per-file > marker for strict code: > - "use strict"; This doesn't mean Harmony, though. Not now, in ES5 implementations -- it means only ES5-strict. And not in dowrev impls, where it means nothing (and semantics differ at runtime). > - use strict; This is a good idea but it was not proposed by Dave to mean Harmony opt-in. Rather, |use module;| was, as a way to avoid bracing and indenting a top level hunk of code in an anonymous module {...} declaration. > - module { > > > Compared to languages such as Java, JavaScript additionally faces the > challenge that a developer can’t control what language version is implemented > by the browser. How will that be handled? Sketching a solution would provide > a more complete picture of how to migrate to ES6. APIs can be object-detected. New syntax requires autoconf-style eval/Function tests. All doable, nothing mysterious, some try/catch pain required. I rather expect a boot-loader script will use more coarse-grained means of deciding what to fetch. We had proposed a way to reflect on the maximum supported version (__ECMASCRIPT_VERSION__, IIRC) but that was unsatisfying. More to do here. /be _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss