Cleanup Node::Normalize.

This commit is contained in:
Ms2ger 2014-12-05 15:09:13 +01:00
parent 19e44362e2
commit 327b5d0ce5

View file

@ -1972,25 +1972,27 @@ impl<'a> NodeMethods for JSRef<'a, Node> {
fn Normalize(self) { fn Normalize(self) {
let mut prev_text = None; let mut prev_text = None;
for child in self.children() { for child in self.children() {
if child.is_text() { match TextCast::to_ref(child) {
let characterdata: JSRef<CharacterData> = CharacterDataCast::to_ref(child).unwrap(); Some(text) => {
let characterdata: JSRef<CharacterData> = CharacterDataCast::from_ref(text);
if characterdata.Length() == 0 { if characterdata.Length() == 0 {
self.remove_child(child); self.remove_child(child);
} else { } else {
match prev_text { match prev_text {
Some(text_node) => { Some(text_node) => {
let prev_characterdata: JSRef<CharacterData> = CharacterDataCast::to_ref(text_node).unwrap(); let prev_characterdata: JSRef<CharacterData> = CharacterDataCast::from_ref(text_node);
let _ = prev_characterdata.AppendData(characterdata.Data()); let _ = prev_characterdata.AppendData(characterdata.Data());
self.remove_child(child); self.remove_child(child);
}, },
None => prev_text = Some(child) None => prev_text = Some(text)
} }
} }
} else { },
None => {
child.Normalize(); child.Normalize();
prev_text = None; prev_text = None;
} }
}
} }
} }