"Subclassing" basic types in DOM - best method?

Tab Atkins Jr. jackalmage at gmail.com
Tue Nov 20 11:45:58 PST 2012


On Mon, Nov 19, 2012 at 9:46 PM, Brendan Eich <brendan at mozilla.com> wrote:
> Tab Atkins Jr. wrote:
>> If we did this, the only reason to continue subclassing Map is to get
>> instanceof checks to work.  Is this acceptable?
>
> I think it's either irrelevant (no one tests 'aUrlQuery instanceof Map') or else a potential problem (cross-frame instanceof).

People *do* perform those checks, though.  For example, in a method
that accepts either an array or other things, a quick "foo instanceof
Array" check is a clear, easy way to check what you've got. It suffers
from cross-frame issues, but shrug.  Similar checks will proliferate
as people write methods that take generic Maps.

(On the other hand, they might instead just feature-test for the
existence of items(), and then use it as an iterable, in which case
this would be a non-issue.  Depends on the use-case, I suppose.)


> Where I would like to go, if you force me to pick a promising path:
>
> http://disnetdev.com/contracts.coffee/#duck
> http://disnetdev.com/blog/2011/09/05/Duck-Typing-Invariants-In-contracts.coffee/

That's my preferred direction, too, but I suspect that's far off.  It
doesn't even have a strawman yet, does it?

~TJ


More information about the es-discuss mailing list