> >Once we did get to this proxy = non-native state, I think we could simplify > >the world a lot; e.g., removing ObjectOps and making js::Class store a > >BaseProxyHandler* directly (NULL for non-proxies). > > How would removing ObjectOps work? Plenty of native types have custom > versions of some of those ops.
Plenty of builtin objects set hooks in the JS_CLASS_MEMBERS/ClassExtension fields of js::Class; but afaics other than proxies and ArrayBufferObject, the only code setting ObjectOps hooks is WithObject::class_ (which I'm guessing we could turn into a proxy pretty easily) and a few Classes in XPCWrappedNativeJSOps.cpp which only use the 'enumerate' and 'thisObject' hooks (we should probably move those hooks from ObjectOps to ClassExtensions). _______________________________________________ dev-tech-js-engine-internals mailing list [email protected] https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals

