It bugs me that I can't just do
NodeList.prototype.map = Array.prototype.map;
Decisions like "
getElementsByFoo() returns an ordered
NodeList" or "
querySelectorAll() returns a
StaticNodeList" are very much intentional, so that implementations don't have to worry about aligning their returned data structure based on language-dependent implementations (like
The W3C aim low: they'll say a
NodeList should contain a readonly
.length property of type unsigned long because they believe every implementation can at least support that, but they won't say explicitly that the
 index operator should be overloaded to support getting positional elements, because they don't want to stymie some poor little language that comes along that wants to implement
getElementsByFoo() but cannot support operator overloading. It's a prevalent philosophy present throughout much of the spec.
My argument isn't so much that