On 7/19/13 12:33 AM, Bill McCloskey wrote:
I don't understand. Why do you need nodes that are not proxies? What would they
be instead?
Normal objects.
Most nodes are normal objects, in fact. Two types of nodes have
proxy-like behavior: forms and documents. Those are proxies. We
_could_ make all nodes proxies, but that would significantly slow down
property access on them, so seems undesirable...
Right; the current servo DOM thinking seems to be that the members that
are in the superclasses and fit in slots go in slots, and the rest go in
a Rust-side heap allocation of some sort.
I'm not sure I understand this. Are 16 inline slots enough, or will you need to
use dynamic slots?
I think the idea is to allocate things that fit in 16 inline slots in
the JS heap and to do ... something else for anything that doesn't fit
there (not involving dynamic slots). What the something else will be is
unclear to me so far.
Sorry if this is a little disjointed. I still don't understand all the
requirements.
That's OK; neither do I. This is all pretty fuzzy so far...
Also, a lot of the problems you're bringing up now would still exist even if
each proxy handler had its own class.
The only thing having per-proxy-handler class buys us is the ability to
treat proxies and non-proxies identically, so that we only have one set
of problems to solve, yes.
-Boris
_______________________________________________
dev-tech-js-engine-internals mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals