On 4/13/11 5:43 AM, Lachlan Hunt wrote:
I didn't think so, but then perhaps I misunderstand what the spec means
by a native object. ECMAScript defines a native object as

"object in an ECMAScript implementation whose semantics are fully
defined by this specification rather than by the host environment."

So that would include things like Array, String, etc.

Ineed.

I don't think NodeList fits that definition, since it's provided by the host
environment, not ECMAScript.

That's correct.

I also thought something like this would not be a native object either:

function init() {
...
}
var x = new init();

That's a native object; the behavior of that set of operations is completely defined by the ES spec.

JQuery more or less does that to create an object with custom
properties, and then basically uses Array.prototype.push.apply(x, elms)
to add the collection to that object.

Right; jquery's got native objects there.

It's nice so that cases where authors try to pass in an array of things
that aren't nodes are handled well. The other alternative is just to
accept a collection of anything, and iterate through it to find all the
Element nodes, ignoring everything else. I don't see any reason to
prefer the latter approach.

I would really prefer we not do the latter.

-Boris


Reply via email to