diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2016-11-03 16:05:14 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-03 16:05:14 -0500 |
commit | 74a3ea9135b13683a9e223790fe573a46cc6a141 (patch) | |
tree | 32cda9fd7fdf158c5f95d73e4d292b741a31c451 /components/script/dom/node.rs | |
parent | 738f0eb97428f6b24c26df7e64a8328e0575b05c (diff) | |
parent | 927d44753b249a2716b721d7398f4dc4a208b82f (diff) | |
download | servo-74a3ea9135b13683a9e223790fe573a46cc6a141.tar.gz servo-74a3ea9135b13683a9e223790fe573a46cc6a141.zip |
Auto merge of #14027 - frewsxcv:htmlcollection-iter-refactor, r=emilio
Remove unnecessary `Box` around `HTMLCollectionElementsIter::node_iter`.
<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14027)
<!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom/node.rs')
-rw-r--r-- | components/script/dom/node.rs | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index 824cb671240..5fcfd74f1f6 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -853,22 +853,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)) |