excluding features from sloppy mode

Brendan Eich brendan at mozilla.com
Fri Dec 28 17:02:52 PST 2012

Kevin Smith wrote:
>     There's no invisible switch. You are assuming something not
>     axiomatic: that new syntax head-forms other than module must
>     inherit sloppy from outer code. That does not follow without more
>     argumentation.
> I guess I'm saying that anything other than inheritance, without the 
> pragma, is an invisible switch.

1. Except for module.

2. Non-locality of "use strict" in the medium-to-large makes for an 
effectively invisible, or at least hard to see as in effect, switch.

>     I'm not sure what "pragma-haunts" means. Adding "use strict"; to
>     ClassElement sounds more like that, and I'm clearly arguing against!
> OK - good!

So are you in favor of class body as strict by default?

>     Who actually uses this or an equivalent? I see lots of code
>     choosing one or another module/package system but few attempts at
>     dual interop. I haven't see this in the field, but I'm not looking
>     hard.
> Esprima: https://github.com/ariya/esprima/blob/master/esprima.js
> Q: https://github.com/kriskowal/q/blob/master/q.js#L29
> If you want your code to work in Node+AMD+Whatever that's what you're 
> stuck with.

There must be a lot of Node-only modules that I tend to look at.

>     This is all fun, but "ultimately" is a giveaway. Years from now,
>     modules uber alles, you bet. I'm arguing against coupled
>     (multiplied) risk in the near term.
> I'm glad to be entertaining : )
> And see your point about multiplied risk - I just don't think there's 
> much risk of non-adoption of modules in the near term (year and a half?).

I hope you're right, but is after a year and a half really what you 
meant by "ultimately"? I see a fight, not taking sides or blaming 
anyone. JS is big enough and multi-paradigm enough that multiple schools 
of thought already hold sway over large factions of developers. The 
amount of legacy code is quite large, too.

This all adds up in my view to an unclear setting in which to place all 
bets only on module as implicitly strict.


More information about the es-discuss mailing list