On 2/22/15 4:55 PM, Domenic Denicola wrote:
[1] indicates a plan to make [Global]-annotated objects, like the Window object, apply 
"[ImplicitThis] behavior" to the object's methods and the methods of anything 
that shows up in its prototype chain.

More like a proposal than a plan, sadly.  One that got no response.

However, the plan at [1] seems to be only half-executed, in that Window defined 
at [3] does not have [ImplicitThis], but the definition of [PrimaryGlobal] and 
[Global] at [4] does not imply [ImplicitThis] behavior.

Right, so...

I think the [ImplicitThis] thing is silly, because it requires anyone creating any mixin that will got on the window to remember to use it. It also requires adding [ImpliciThis] to Window and EventTarget, but even this low bar hasn't been cleared, obviously.

If I am indeed reading the situation correctly, I think the spec-level fix is 
to either implement the plan in [1], or to put [ImplicitThis] (back?) on the 
globals *and* on EventTarget.

And on every single thing that gets mixed into Window, afaict, though maybe we could wordsmith the bits around what [ImplicitThis] does such that it automatically applies to things pulled in via "implements"...

We'd also need it on all the worker global interfaces, right? And any other kinds of globals with nontrivial proto chains that anyone creates. Or do we want different behavior in workers?

If we do want this behavior in all Web IDL globals, we could just declare that all Web IDL methods are automatically [ImplicitThis], like I said in https://lists.w3.org/Archives/Public/public-script-coord/2013JulSep/0657.html

I actually prefer the latter, since the way in which tagging [Window] as a 
[Global] implicitly makes EventTarget, defined in another spec, take on 
[ImplicitThis] behavior, seems hard to follow.

I agree that this is rather annoying.

-Boris
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to