Details
-
Bug
-
Status: In Progress
-
Major
-
Resolution: Unresolved
-
2.9.1
-
None
-
None
Description
If an element node is renamed resulting in a node replace, certain internal data structures are not updated.
While userdata and event listeners are transfered from the previous to the new node, the following are not:
1. Ranges containg the element as a start or endContainer do update as if the node has been removed.
2. NodeIterators containing the element as a iteration point do update as if the node has been removed.
I think in both cases the range/node iterator should be treated such that the new element replaces the old element without range update.
3. the identifier map containing all nodes associated with an identifier attribute is partially updated: entries for the old node are removed but no mapping to the new node is inserted.
Attached please find a patch.