d at domenic.me (2015-01-05T20:39:00.418Z)
On Dec 18, 2014, at 10:54 AM, Mark S. Miller <erights at google.com> wrote:
> When is this needed?
It would be nice for testing (engines and applications), at any rate.
If you have similar behaviour for strict and non-strict modes:
```
[true, false].forEach(function someUnitTest(scopeMode) {
Reflect.setStrictMode(scopeMode);
assertEquals(“quantum puppies”, doTheThing());
});
```
vs
```
(function someUnitTestStrictMode() {
“use strict”;
assertEquals(“quantum puppies”, doTheThing());
})();
(function someUnitTestSlappyMode() {
assertEquals(“quantum puppies”, doTheThing());
})();
```
> So another directive like "use nostrict" would be welcome imho. Especially in modules when "strict" is on by default.
>
>
> //... strict context
> (1,eval)("...sloppy code...");
> //... strict context
eval has other implications, so it doesn’t always accomplish what you want :( Plus, the contents are a lot harder to read in most text editors ;)
> Feel free to consider sloppy mode deprecated. I do.
Well sure, but unfortunately it’s not going to just disappear :(
> On Dec 18, 2014, at 10:54 AM, Mark S. Miller <erights at google.com> wrote: > > > > On Thu, Dec 18, 2014 at 4:46 AM, Alex Kocharin <alex at kocharin.ru <mailto:alex at kocharin.ru>> wrote: > > > 16.12.2014, 17:04, "Andrea Giammarchi" <andrea.giammarchi at gmail.com <mailto:andrea.giammarchi at gmail.com>>: >> >> >> On Tue, Dec 16, 2014 at 1:50 PM, Felipe Nascimento de Moura <felipenmoura at gmail.com <mailto:felipenmoura at gmail.com>> wrote: >> >> function () { >> use strict, safe; >> } >> >> This could allow us to even add some extra scoped-options, such as a safe mode.. >> >> >> I'm quite sure we've discussed already other directives and the unanimous answer here was "NO, 'use strict' is already problematic" >> > > It's problematic mostly because it can't be turned off when it's needed. > > When is this needed? > It would be nice for testing (engines and applications), at any rate. If you have similar behaviour for strict and non-strict modes: ``` [true, false].forEach(function someUnitTest(scopeMode) { Reflect.setStrictMode(scopeMode); assertEquals(“quantum puppies”, doTheThing()); }); ``` vs ``` (function someUnitTestStrictMode() { “use strict”; assertEquals(“quantum puppies”, doTheThing()); })(); (function someUnitTestSlappyMode() { assertEquals(“quantum puppies”, doTheThing()); })(); ``` > > So another directive like "use nostrict" would be welcome imho. Especially in modules when "strict" is on by default. > > > //... strict context > (1,eval)("...sloppy code..."); > //... strict context eval has other implications, so it doesn’t always accomplish what you want :( Plus, the contents are a lot harder to read in most text editors ;) > > > I think we should either deprecate one of the modes, or officially support multiple modes and provide a method to switch between them. > > Feel free to consider sloppy mode deprecated. I do. Well sure, but unfortunately it’s not going to just disappear :( > > > > _______________________________________________ > es-discuss mailing list > es-discuss at mozilla.org <mailto:es-discuss at mozilla.org> > https://mail.mozilla.org/listinfo/es-discuss <https://mail.mozilla.org/listinfo/es-discuss> > > > > -- > Cheers, > --MarkM > _______________________________________________ > es-discuss mailing list > es-discuss at mozilla.org > https://mail.mozilla.org/listinfo/es-discuss -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20141218/d8d9c999/attachment-0001.html>