On Mon, Nov 12, 2012 at 2:12 PM, Irakli Gozalishvili <[email protected]>wrote:
> Lately I have being struggling with an implementation differences of host > (DOM) objects across the browsers. > So far only reliable way I could find to identify host objects is by a > following assertion: > > object.constructor.call === void(0) > > Behaviour seems to be consistent across FF, Opera, Safari, and Chrome > (Don't have windows to test on IE). > I think it would be great if there was some standardised way to identify > host objects. > > My personal use case is polymorphic method dispatch library > https://github.com/Gozala/method that has same semantics as > clojure protocols. Method implementations for host objects and built-ins > are stored in the separate dictionary to avoid memory leaks and to support > objects from diff JS contexts / frames / compartments. > > > If you know of a better of identifying host objects I would really love to > know that too. > In ES5, if Object.prototype.toString.call(obj) indicates any of the std [[Class]] values for so-called "native" objects, then obj must be a native object. Else, obj must be a so-called "host" object. (I will be so happy once we're past that terminology!) -- Cheers, --MarkM
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

