diff --git a/Tests/LibWeb/Text/expected/MutationObserver/removing-a-node.txt b/Tests/LibWeb/Text/expected/MutationObserver/removing-a-node.txt new file mode 100644 index 0000000000..be36d109cd --- /dev/null +++ b/Tests/LibWeb/Text/expected/MutationObserver/removing-a-node.txt @@ -0,0 +1 @@ + PASS! (Didn't crash) diff --git a/Tests/LibWeb/Text/input/MutationObserver/removing-a-node.html b/Tests/LibWeb/Text/input/MutationObserver/removing-a-node.html new file mode 100644 index 0000000000..6a8324c04f --- /dev/null +++ b/Tests/LibWeb/Text/input/MutationObserver/removing-a-node.html @@ -0,0 +1,13 @@ +
+ + diff --git a/Userland/Libraries/LibWeb/DOM/Node.cpp b/Userland/Libraries/LibWeb/DOM/Node.cpp index c1c901a561..6166a28929 100644 --- a/Userland/Libraries/LibWeb/DOM/Node.cpp +++ b/Userland/Libraries/LibWeb/DOM/Node.cpp @@ -693,7 +693,7 @@ void Node::remove(bool suppress_observers) for (auto& registered : *inclusive_ancestor->m_registered_observer_list) { if (registered->options().subtree) { auto transient_observer = TransientRegisteredObserver::create(registered->observer(), registered->options(), registered); - m_registered_observer_list->append(move(transient_observer)); + add_registered_observer(move(transient_observer)); } } }