For the IE9 attr node implementation (delegating to gecko attr nodes), this uses the existing infrastructure to keep track of the attributes in a collection (and so, associate DISPIDs for them, etc), since it also matches native (same DISPID broken behavior when removing attrs) and we already have the code for it. The current code is split into helpers called from many places already related to it, so instead I just extended the helpers with new code paths for IE9+ attrs.
There's also appropriate FIXMEs for things that aren't properly handled by simple delegation to gecko (from my older patchset), so at least if we find something that needs it, it will be way easier to debug.
The last patch is a bit big since it had to enable the new attr nodes everywhere in IE9+ modes, else either tests would fail or we wouldn't test anything, as I'm using existing tests (just in IE9 mode).