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

Reply via email to