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

Reply via email to