aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/node.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/node.rs')
-rw-r--r--components/script/dom/node.rs27
1 files changed, 14 insertions, 13 deletions
diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs
index 767a3132eb3..8afe20f0aea 100644
--- a/components/script/dom/node.rs
+++ b/components/script/dom/node.rs
@@ -849,22 +849,23 @@ impl Node {
let tr = new_child();
- let after_node = if index == -1 {
- None
- } else {
- match get_items().elements_iter()
- .map(Root::upcast::<Node>)
- .map(Some)
- .chain(iter::once(None))
- .nth(index as usize) {
- None => return Err(Error::IndexSize),
- Some(node) => node,
- }
- };
{
let tr_node = tr.upcast::<Node>();
- try!(self.InsertBefore(tr_node, after_node.r()));
+ if index == -1 {
+ try!(self.InsertBefore(tr_node, None));
+ } else {
+ let items = get_items();
+ let node = match items.elements_iter()
+ .map(Root::upcast::<Node>)
+ .map(Some)
+ .chain(iter::once(None))
+ .nth(index as usize) {
+ None => return Err(Error::IndexSize),
+ Some(node) => node,
+ };
+ try!(self.InsertBefore(tr_node, node.r()));
+ }
}
Ok(Root::upcast::<HTMLElement>(tr))