On Tue Jun 10 11:03:18 2025 +0000, Jacek Caban wrote:
I can't tell for sure without seeing the code, but I'm afraid that for IE9+ this can easily get messy. For example, we need Gecko node for our node implementation, unless we'd some ugly things like handling NULL `nsnode` in `HTMLDOMNode` or creating those nodes dynamically.
Is NULL nsnode really that ugly? The "mode" is tied to the attribute node (I've tested this and have tests for it), even if it's attached to an element / collection that's in another mode (e.g. across iframes). So it's initialized at creation as usual, or set to NULL (also at creation) for legacy nodes.
I mean it still won't be super straightforward of course, since the nodes can also be mixed in a collection, and I don't like the hack Proton uses which is simpler but very wrong. But due to this I'm using the existing list infrastructure for the collection's dispids instead of a completely different one for gecko nodes.
Anyway I still need to split that somehow (kinda hard) and now testing the other interfaces for this MR, maybe I'll resort to doing a blacklist instead, since it's safer wrt regressions (and maybe testing with collections is easier since it enumerates all attributes including "unspecified" ones).