excluding features from sloppy mode

Brendan Eich brendan at mozilla.com
Wed Dec 26 22:56:08 PST 2012

Kevin Smith wrote:
>     Indeed, it goes against Dave's original proposal that module opt
>     into strict mode, which avoids some problems with sloppy mode in
>     modules, e.g. implicitly created globals by assignment to free names.
> Does this mean any script loaded as a module?
>     import something from "x.js";
> So "x.js" would be strict mode code, even if it doesn't start with 
> "use strict;"?

I finally did what I have done before, and should have done again: 
re-read Dave's o.p. on what became known as "1JS":


It does not even contain the word "strict". IIRC (and I asked about this 
at the last TC39 meeting and got verbal confirmation), the idea of 
module {...} implying strict mode was latent, or intended. I'm not sure 
about out of line modules.

At this point, best thing is to summon Dave.

For myself, I'll note that like any good meme or brand, "1JS" has 
fluctuating meaning. It needs to be specified, for sure. It is somewhat 
protean but not (yet) full of contradictions or conflicts. This is a 
good thing (see my marketing joke). As we firm it up, we can afford to 
lose implicit assumptions (e.g., module implies strict) that make things 
simpler, as you propose. But we shouldn't throw out the name or the 
underlying fuzzy concept.


More information about the es-discuss mailing list