Tab Atkins Jr. wrote:
On Tue, May 21, 2013 at 4:19 AM, Brendan Eich<[email protected]> wrote:
So Tab: why do you want to abuse Map instead of make a custom class?
Restating from my earlier post:
1. when someone asks "is this Map-like?" in an appropriately idiomatic
JS way, they get a "yes" answer.
2. when someone adds a new function to Maps in an appropriately
idiomatic JS way, the method also applies to this object
3. when JS expands the set of built-in methods for Map, it also gets
applied to this object without me having to update my spec
4. for all the existing Map methods, I get identical/equivalent methods
without having to manually redefine every single one of them
There aren't many Map methods. Write your own workalikes if you need
'em. Done.
All of these follow from the basic statement that *this is a map*,
because it clearly is.
Circular arguments won't help here. A Map doesn't have
throw-on-certain-key behavior; a Map doesn't act at a distance on other
data without metaprogramming.
You've falling into a nominal typing trap. JS doesn't have a Map that
everyone must bend or break to suit quasi-Map-like use-cases, any more
than Array must be directly bent (or hooked with @@coerceKey trash) to
be a NodeList.
Make a different data structure (it can subclass if you insist; it could
instead use Map internally).
/be
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss