My same thoughts on "break the web" ... I think whoever put "use strict" in
there would eventually never expect the `this` to be the global context.

@Michał Wadas ... you haven't proved much in there ... you should look at
global methods more like this:

```js
// your global context to be executed
with({
  get window() {return this},
  setTimeout: function () { ... },
  alert: function () { ... },
  // all other window methods
}) {
  setTimeout('alert("hello world")');
}
```

The fact is a `window` method, whatever window it is and of course an
iframe will have its own, does not mean every method is automatically bound
+ even if that was the case, what you pass in there is a user defined
function, not a windows method.

I think this is an issue I am not sure how come it didn't bite already out
there ... but I also understand that putting together everyone to fix this
seems utopia so ... watch out your bounds or you might leak or change the
global context by accident where "use strict" will not save you.

Best Regards



On Sun, Sep 7, 2014 at 6:47 PM, Mark S. Miller <erig...@google.com> wrote:

> On Sun, Sep 7, 2014 at 10:36 AM, Mathias Bynens <mathi...@opera.com>
> wrote:
>
>> On Sun, Sep 7, 2014 at 7:29 PM, Andrea Giammarchi
>> <andrea.giammar...@gmail.com> wrote:
>> > This looks like a potential problem when possible passed methods are not
>> > bound + it looks inconsistent with *"use strict"* expectations.
>>
>
> Yes. This looks like a typical screwup. Thanks for pointing it out.
>
>
>
>
>> It’s not just `setTimeout` – other DOM timer methods have the same
>> behavior. The spec is here, FWIW:
>>
>> http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#dom-windowtimers-settimeout
>> Pretty sure this cannot be changed without breaking the Web.
>>
>
> Why? If "undefined" were passed instead, sloppy callback functions would
> still see the same behavior -- on entry they would coerce undefined to
> their global object. Do you think the web already depends on strict
> functions seeing the global object here, rather than undefined?
>
>
>
>
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss@mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>
>
>
> --
>     Cheers,
>     --MarkM
>
>
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to