aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/node.rs
diff options
context:
space:
mode:
authorMichael Wu <mwu@mozilla.com>2015-07-15 17:08:21 -0400
committerMichael Wu <mwu@mozilla.com>2015-07-15 17:09:26 -0400
commit2752d3398e3a22232ac4acc39f635012b7d581cd (patch)
tree6dbccd920d44f9565403a4ae0a513efbedc162dd /components/script/dom/node.rs
parentb6b95085fbb18496d8104e350f85b6617c19862e (diff)
downloadservo-2752d3398e3a22232ac4acc39f635012b7d581cd.tar.gz
servo-2752d3398e3a22232ac4acc39f635012b7d581cd.zip
Directly append children to output node in parse_html_fragment
Diffstat (limited to 'components/script/dom/node.rs')
-rw-r--r--components/script/dom/node.rs12
1 files changed, 3 insertions, 9 deletions
diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs
index 20fb38fa00a..caa2e86f674 100644
--- a/components/script/dom/node.rs
+++ b/components/script/dom/node.rs
@@ -1023,20 +1023,14 @@ impl<'a> NodeHelpers for &'a Node {
fn parse_fragment(self, markup: DOMString) -> Fallible<Root<DocumentFragment>> {
let context_node: &Node = NodeCast::from_ref(self);
let context_document = document_from_node(self);
- let mut new_children: RootedVec<JS<Node>> = RootedVec::new();
+ let fragment = DocumentFragment::new(context_document.r());
if context_document.r().is_html_document() {
- parse_html_fragment(context_node, markup, &mut new_children);
+ let fragment_node = NodeCast::from_ref(fragment.r());
+ parse_html_fragment(context_node, markup, fragment_node);
} else {
// FIXME: XML case
unimplemented!();
}
- let fragment = DocumentFragment::new(context_document.r());
- {
- let fragment_node = NodeCast::from_ref(fragment.r());
- for node in new_children.iter() {
- fragment_node.AppendChild(node.root().r()).unwrap();
- }
- }
Ok(fragment)
}
}