From b245a2475f89f01c0e52780213903904b4e8513f Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Fri, 31 Oct 2014 10:24:37 -0700 Subject: [PATCH] script: Fix busted document fragment appending code --- components/script/dom/node.rs | 14 ++++++++------ 1 file 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); } } _ => {