mirror of
https://github.com/servo/servo.git
synced 2025-08-04 05:00:08 +01:00
fixes #5963
This commit is contained in:
parent
387836c42e
commit
7239d67353
3 changed files with 26 additions and 8 deletions
|
@ -304,6 +304,7 @@ impl<'a> PrivateNodeHelpers for JSRef<'a, Node> {
|
||||||
assert!(self.parent_node.get().is_none());
|
assert!(self.parent_node.get().is_none());
|
||||||
for node in self.traverse_preorder() {
|
for node in self.traverse_preorder() {
|
||||||
let node = node.root();
|
let node = node.root();
|
||||||
|
node.r().set_flag(IS_IN_DOC, false);
|
||||||
vtable_for(&node.r()).unbind_from_tree(parent_in_doc);
|
vtable_for(&node.r()).unbind_from_tree(parent_in_doc);
|
||||||
}
|
}
|
||||||
self.layout_data.dispose();
|
self.layout_data.dispose();
|
||||||
|
@ -1658,7 +1659,7 @@ impl Node {
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://dom.spec.whatwg.org/#concept-node-remove
|
// https://dom.spec.whatwg.org/#concept-node-remove
|
||||||
fn remove(node: JSRef<Node>, parent: JSRef<Node>, suppress_observers: SuppressObserver) {
|
fn remove(node: JSRef<Node>, parent: JSRef<Node>, _suppress_observers: SuppressObserver) {
|
||||||
assert!(node.GetParentNode().map_or(false, |node_parent| node_parent == Temporary::from_rooted(parent)));
|
assert!(node.GetParentNode().map_or(false, |node_parent| node_parent == Temporary::from_rooted(parent)));
|
||||||
|
|
||||||
// Step 1-5: ranges.
|
// Step 1-5: ranges.
|
||||||
|
@ -1666,13 +1667,8 @@ impl Node {
|
||||||
// Step 8.
|
// Step 8.
|
||||||
parent.remove_child(node);
|
parent.remove_child(node);
|
||||||
|
|
||||||
node.set_flag(IS_IN_DOC, false);
|
|
||||||
|
|
||||||
// Step 9.
|
// Step 9.
|
||||||
match suppress_observers {
|
node.node_removed(parent.is_in_doc());
|
||||||
SuppressObserver::Suppressed => (),
|
|
||||||
SuppressObserver::Unsuppressed => node.node_removed(parent.is_in_doc()),
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://dom.spec.whatwg.org/#concept-node-clone
|
// https://dom.spec.whatwg.org/#concept-node-clone
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 10116eb3af332f9565e0fb803e600511bb585d6b
|
Subproject commit dc8aef3e1b8f1acd141986cfab492e3f57d2d5f6
|
|
@ -20,6 +20,13 @@
|
||||||
<input id="test5" type="submit" value="Submit" data-name="3rd">
|
<input id="test5" type="submit" value="Submit" data-name="3rd">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- test 15 -->
|
||||||
|
<div id="outer">
|
||||||
|
<div id="middle">
|
||||||
|
<div id="inner"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
var gBody = document.getElementsByTagName("body")[0];
|
var gBody = document.getElementsByTagName("body")[0];
|
||||||
|
|
||||||
|
@ -300,6 +307,21 @@
|
||||||
assert_equals(document.getElementById(TEST_ID), b);
|
assert_equals(document.getElementById(TEST_ID), b);
|
||||||
}, "Inserting an id by inserting its parent node");
|
}, "Inserting an id by inserting its parent node");
|
||||||
|
|
||||||
|
test(function () {
|
||||||
|
var TEST_ID = "test15"
|
||||||
|
var outer = document.getElementById("outer");
|
||||||
|
var middle = document.getElementById("middle");
|
||||||
|
var inner = document.getElementById("inner");
|
||||||
|
outer.removeChild(middle);
|
||||||
|
|
||||||
|
var new_el = document.createElement("h1");
|
||||||
|
new_el.id = "heading";
|
||||||
|
inner.appendChild(new_el);
|
||||||
|
// the new element is not part of the document since
|
||||||
|
// "middle" element was removed previously
|
||||||
|
assert_equals(document.getElementById("heading"), null);
|
||||||
|
}, "Document.getElementById must not return nodes not present in document");
|
||||||
|
|
||||||
// TODO:
|
// TODO:
|
||||||
// id attribute in a namespace
|
// id attribute in a namespace
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue