diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index a29003272eb..34a5cc26199 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -1972,25 +1972,27 @@ impl<'a> NodeMethods for JSRef<'a, Node> { fn Normalize(self) { let mut prev_text = None; for child in self.children() { - if child.is_text() { - let characterdata: JSRef = CharacterDataCast::to_ref(child).unwrap(); - if characterdata.Length() == 0 { - self.remove_child(child); - } else { - match prev_text { - Some(text_node) => { - let prev_characterdata: JSRef = CharacterDataCast::to_ref(text_node).unwrap(); - let _ = prev_characterdata.AppendData(characterdata.Data()); - self.remove_child(child); - }, - None => prev_text = Some(child) + match TextCast::to_ref(child) { + Some(text) => { + let characterdata: JSRef = CharacterDataCast::from_ref(text); + if characterdata.Length() == 0 { + self.remove_child(child); + } else { + match prev_text { + Some(text_node) => { + let prev_characterdata: JSRef = CharacterDataCast::from_ref(text_node); + let _ = prev_characterdata.AppendData(characterdata.Data()); + self.remove_child(child); + }, + None => prev_text = Some(text) + } } + }, + None => { + child.Normalize(); + prev_text = None; } - } else { - child.Normalize(); - prev_text = None; } - } }