Hi,

I started looking at
https://bugzilla.mozilla.org/show_bug.cgi?id=896759 which makes me
wonder "what exactly is a native object"?  Here's what I've gleaned...

- A native object is one that uses the default ObjectOps.

- Also, the marking of reserved slots appears to be different for
native vs. non-native objects.

- The only examples of non-native objects in SM are ObjectProxy,
OuterWindowProxy, FunctionProxy, ArrayBuffer, and the typed arrays
(Int8Array, etc).

- There is an API function JS_IsNative(), so it's a concept that's
queryable in the API.  (But Gecko doesn't use it.)

We call obj->isNative() in a *lot* of places, and the treatment of
native vs. non-native seems to be rather ad hoc -- few of the cases
make me think "oh yes, that's clearly the native behaviour on that
side and the non-native behaviour on that side"...

Bug 896579 is about splitting up the meaning of "native" and I wonder
if it could be simplified further or done away with altogether,
somehow.

Any clarifications are welcome.  Thanks.

Nick
_______________________________________________
dev-tech-js-engine-internals mailing list
dev-tech-js-engine-internals@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals

Reply via email to