On 10/10/07, Brendan Eich <[EMAIL PROTECTED]> wrote:
> On Oct 10, 2007, at 3:53 PM, Garrett Smith wrote:

>
>    if (it is Callable) ...
>
>
> The |is| operator tests universal or Platonic type, which involves
> shared, immutable type descriptors that do not vary across windows or
> frames. So
>
>    if (a is Array) ...
>
> will work no matter where a was constructed.
>
I wonder how host objects will deal with this.

Will there be a transitive relationship of callable and ()?

If an object accepts arguments, it is callable, and if it is callable,
it supports ,call(), right?

typeof appendChild; // "object"
appendChild is Callable; // ???

In IE, appendChild.call is undefined, yet accepts arguments. It's like
a host function that's bound, internally, to its node. Its thisArg is
always the node; execution context is irrelevant. It's an odd duck.

document.all(), document.links(0) are also non-functional, but "do
something" when you use arguments ().  That something is not [[call]].
Opera mimicked this odd behavior with document.all and Mozilla did too
in BackCompat mode.

Hosts that create such objects create a deceptive and confusing
interface. It's like "what the heck is this thing?"

Garrett

> /be
>
>


-- 
Programming is a collaborative art.
_______________________________________________
Es4-discuss mailing list
Es4-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es4-discuss

Reply via email to