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