On Mon, Dec 31, 2012 at 9:12 PM, Brendan Eich <[email protected]<https://mail.google.com/mail/?view=cm&fs=1&tf=1&[email protected]> > wrote:
> Mark S. Miller wrote: > >> Thanks for clarifying the primacy of "the rule". It was not clear, and it >>> > does not match what Dave proposed that Mark reconfirmed as "1JS". >>> Although >>> > Dave left some wiggle room in his first post, I want to say that my >>> attempts >>> > to make all new body-forms strict don't fit under the consensus "1JS" >>> name >>> > and I'm not trying to usurp it. Your proposal should be called "2JS" >>> since >>> > to get the new stuff, you have to "use strict". >>> >> >> In that case, I did not understand Dave's clarification. I thought >> Dave clarified this to mean only no new additional modes or opt-ins >> beyond those we already have, i.e., no mime types, additional pragmas, >> etc. >> > > Yes, that much -- but more. > > As I understood Dave's clarification, 1JS is orthogonal to our >> decisions about how many of the new features to make available in >> sloppy mode. >> > > No, Dave explicitly proposed that module be available in sloppy mode: > > https://mail.mozilla.org/**pipermail/es-discuss/2011-** > December/019112.html<https://mail.mozilla.org/pipermail/es-discuss/2011-December/019112.html> > > "We can do better, and the way we can do it is with modules. We can > introduce module syntax in a backwards-compatible way, and use them as the > implicit opt-in for any new semantics [2]." > Sorry, I have only been skimming this thread and didn't realize that Kevin had dropped "module". Yes, without even "module" being an implicit strict opt-in, we have a different beast, and one that I don't like. > > Andreas' position (and Kevin's pre-compromise position) >> is then consistent with 1JS. >> > > It may be that we can relax "1JS" to mean less than Dave proposed, but I > don't agree if it means "use strict" must be written to use any new syntax. > Not that I'm playing brinksmanship games, just saying. Dave proposed it, > the "1JS" name was coined soon after, and module in sloppy mode was always > part of it. > > Kevin separated module back out in his pre-compromise position but did not > try to use or abuse "1JS" for that position. > > I'm pretty happy with Kevin's compromise. Here it is again: > > (1) No opt-in required for new syntax, except: > (2) No breaking changes to sloppy mode, and > (3) No grammar contortions (e.g. let) to support sloppy mode. And > (4) All new syntax forms with code bodies are implicit strict. > > What do you say? > My preference order: 1) 1.a) To the extent clean and practical, new features are available only in strict mode, 1.b) Lexical f-i-b is available in sloppy mode as it is in ES6 strict, since no browser will prohibit f-i-b syntax in sloppy mode. Better to have the f-i-b sloppy semantics be aligned with the ES6 f-i-b strict semantics. 1.c) modules (both inline and out) implicitly opt-in to strict mode. 1.d) classes implicitly opt-in to strict mode. 1.e) nothing else causes an implicit strict mode opt-in. 2) Like #1 but without #1.d (which I think of as Andreas' position) 3) Like #1, but #1.e is replaced with 3.e) All code bodies within new function syntax is implicitly strict. 4) Like #3, but #1.a is replaced with 4.a) To the extent clean and practical, new features are available in sloppy mode. I take it this is essentially your position and Kevin's compromise position? 5) Where things stood at the end of the last TC39 meeting, where we were violating the "clean" of #4.a to kludge things like "let", non-duplicated-formals-sometimes, no-arguments-sometimes, weird scoping for default argument expressions, etc, into sloppy mode. 6) Like #2 but without #1.c. Is this essentially Kevin's pre-compromise position? > > Instead, what you say above seems to agree with what I thought 1JS >> meant when I posted my inflammatory message. >> > > I don't know what you thought, but Dave always included module. You seemed > to be reacting to 'let' contortions followed by function-in-block having > two semantics, one de-facto and a browser-specific mess, the other > block-scoped (hoisted binding and initialization of binding). The two are > not the same! > > If you stick with what Dave proposed, do you really object once again? > > If this is what 1JS >> means, then, again, I do not subscribe to 1JS. >> > > I don't know what "this" you mean. Can you be specific? > No longer relevant. > > If we cannot come to a common understanding of what 1JS means, we >> should find other terminology. >> > > We have an archive, I keep posting links. True, not every message is > unambiguous, correct, and otherwise complete. But "1JS" as > module-in-sloppy-mode-opts-**into-ES6(-and-into-strict) was the original > post (plus some followup on the -and-into-strict bit). > > Again I explicitly *do not* call my "new bodies are strict by fiat" / "new > syntax is its own opt-in (where we can get away with it without breaking > the web)" combo "1JS". I'd like it to be ES6, though :-P. Perhaps we should > focus on the substantial points and not worry about the "1JS" brand just > yet. yes. Good new year's resolution! > > > /be > > ______________________________**_________________ > es-discuss mailing list > [email protected]<https://mail.google.com/mail/?view=cm&fs=1&tf=1&[email protected]> > https://mail.mozilla.org/**listinfo/es-discuss<https://mail.mozilla.org/listinfo/es-discuss> > -- Text by me above is hereby placed in the public domain Cheers, --MarkM
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

