<div dir="ltr">It feels to me also a vector that will happily pass all linters and code analyzers giving users a door to reach native context and start playing in there with everything else. I'm pretty sure you would agree on this too :)<div><br></div><div>Please let us know if there's any follow up, it's probably easier/faster if some googler mention this issue to other googlers that are collaborating with WHATWG or W3C or both (or none)</div><div><br></div><div>Thanks</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Sep 7, 2014 at 7:11 PM, Mark Miller <span dir="ltr"><<a href="mailto:erights@gmail.com" target="_blank">erights@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span class="">On Sun, Sep 7, 2014 at 11:07 AM, Andrea Giammarchi <span dir="ltr"><<a href="mailto:andrea.giammarchi@gmail.com" target="_blank">andrea.giammarchi@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Yes Axel, that's how it works, this will show undefined indeed all over<div><br></div><div>```js</div><div><div>(function () {</div><div>  'use strict';</div><div>  function g() {</div><div>    console.log(this);</div><div>  }</div><div>  g(); // undefined</div><div>  setTimeout(function () {</div><div>    g(); // undefined</div><div>  }, 0);</div><div>}());</div></div><div>```</div><div><br></div><div>or testing other use strict restrictions:</div><div><br></div><div>```js</div><div><span><div>(function () {</div><div>  'use strict';</div><div>  setTimeout(function () {</div></span><div>    argument.callee</div><div>  }, 0);</div><div>}());</div></div><div>```</div><div><br></div><div>The strict behavior is preserved, it's not an opt-out, but the invoked function within setTimeout has the global context regardless it has been defined under the strict directive + regardless it defines itself as strict.</div><div><br></div><div>Basically if you feel secure about "use strict" here you have a case that shows you shouldn't ... making one point of strict directive kinda broken/pointless.</div></div></blockquote><div><br></div></span><div>Agreed. I would remove only "kinda" from that statement ;).</div><span class=""><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><br></div><div>Regards</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div>On Sun, Sep 7, 2014 at 7:02 PM, Axel Rauschmayer <span dir="ltr"><<a href="mailto:axel@rauschma.de" target="_blank">axel@rauschma.de</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div style="word-wrap:break-word"><span>On Sep 7, 2014, at 19:47 , Mark S. Miller <<a href="mailto:erights@google.com" target="_blank">erights@google.com</a>> wrote:<br></span><div><span><br><blockquote type="cite"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sun, Sep 7, 2014 at 10:36 AM, Mathias Bynens <span dir="ltr"><<a href="mailto:mathiasb@opera.com" target="_blank">mathiasb@opera.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>On Sun, Sep 7, 2014 at 7:29 PM, Andrea Giammarchi<br>
<<a href="mailto:andrea.giammarchi@gmail.com" target="_blank">andrea.giammarchi@gmail.com</a>> wrote:<br>
> This looks like a potential problem when possible passed methods are not<br>
> bound + it looks inconsistent with *"use strict"* expectations.<br></span></blockquote><div><br></div><div>Yes. This looks like a typical screwup. Thanks for pointing it out.</div></div></div></div></blockquote><div><br></div></span><div>Interesting. Follow-up question: isn’t strictness propagated lexically? That is, shouldn’t the parameter of `setTimeout()` be strict even without being explicitly declared as such?</div></div></div></div></div></blockquote></div></div></blockquote></span></div><span class="HOEnZb"><font color="#888888"><br clear="all"><div><br></div>-- <br><br>  Cheers,<br>  --MarkM
</font></span></div></div>
</blockquote></div><br></div>