diff options
author | Patrick Walton <pcwalton@mimiga.net> | 2014-10-31 10:24:37 -0700 |
---|---|---|
committer | Patrick Walton <pcwalton@mimiga.net> | 2014-10-31 10:24:49 -0700 |
commit | b245a2475f89f01c0e52780213903904b4e8513f (patch) | |
tree | 78f6702d53df2f93b5578361f8f328d48452bf2c /components/script/dom/node.rs | |
parent | a94e13f8886211b2ead8d52b3cfe43cd0c8ff998 (diff) | |
download | servo-b245a2475f89f01c0e52780213903904b4e8513f.tar.gz servo-b245a2475f89f01c0e52780213903904b4e8513f.zip |
script: Fix busted document fragment appending code
Diffstat (limited to 'components/script/dom/node.rs')
-rw-r--r-- | components/script/dom/node.rs | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index ba423715def..d3dad1049c4 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -1381,18 +1381,20 @@ impl Node { // Step 4. // Step 5: DocumentFragment, mutation records. // Step 6: DocumentFragment. - for c in node.children() { - Node::remove(c, node, Suppressed); + let mut kids = Vec::new(); + for kid in node.children() { + kids.push(kid.clone()); + Node::remove(kid, node, Suppressed); } // Step 7: mutation records. // Step 8. - for node in node.children() { - do_insert(node, parent, child); + for kid in kids.iter() { + do_insert((*kid).clone(), parent, child); } - for node in node.children() { - fire_observer_if_necessary(node, suppress_observers); + for kid in kids.into_iter() { + fire_observer_if_necessary(kid, suppress_observers); } } _ => { |