2013/1/24 Cameron McCormack <c...@mcc.id.au> > On 18/01/13 9:09 AM, Travis Leithead wrote: > >> I think this sounds fine. Most web developers don't expect the >> current spec'd behavior, even though to me it seems more natural. >> >> IE has the current behavior and I expect we would migrate to the new >> behavior at some point once it was defined and agreed upon. >> > > At one point a long time ago, Web IDL did require [[HasInstance]] to be > overridden to return true even for objects from different windows. If > proxies now support trapping that, I'll just add it back. >
Just to clarify: we've previously talked about proxies trapping [[HasInstance]], but instead settled on an approach that does not require proxies (see below). > I guess this will change to the @hasInstance that Allen mentions, once ES6 > stabilises and I actually understand what "@hasInstance" means. :) @hasInstance denotes a unique symbol. If a JavaScript object (any object, doesn't have to be a proxy) defines a property with that symbol as a key, it will be able to intercept instanceof. My understanding of how this would work is roughly as follows: // get the hasInstance symbol from somewhere (e.g. import from a std module) var hasInstance = ...; function Foo() {...}; Foo[hasInstance] = function(subject) { return <boolean-expression>; } obj instanceof Foo // calls the above function, passing obj as the subject Cheers, Tom
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss