Cameron and Chris have been discussing and experimenting with this, and now I have a specific proposal I want to try. We’ll move the NodeFlags and node reference count from Node to EventTarget, and also make many EventTarget functions handle things without a virtual function call, at least when the target is a node, most importantly ref and deref.
I had a patch that does pretty much that, but then it didn't help with the benchmark I was targeting (Speedometer).
I've just attached the most recent patch I tried to bug 238654. As I say, it didn't help when I tested it against Speedometer. Which surprised me, but maybe the compiler/linker is able to devirtualize, or the virtual calls are less expensive than I imagined.
<rdar://problem/94956595>
I probably should have used the bug you already had.
But I am still optimistic this will work!
*** This bug has been marked as a duplicate of bug 238654 ***