mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Cleanup Node::Normalize.
This commit is contained in:
parent
19e44362e2
commit
327b5d0ce5
1 changed files with 18 additions and 16 deletions
|
@ -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<CharacterData> = CharacterDataCast::to_ref(child).unwrap();
|
||||
if characterdata.Length() == 0 {
|
||||
self.remove_child(child);
|
||||
} else {
|
||||
match prev_text {
|
||||
Some(text_node) => {
|
||||
let prev_characterdata: JSRef<CharacterData> = 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<CharacterData> = CharacterDataCast::from_ref(text);
|
||||
if characterdata.Length() == 0 {
|
||||
self.remove_child(child);
|
||||
} else {
|
||||
match prev_text {
|
||||
Some(text_node) => {
|
||||
let prev_characterdata: JSRef<CharacterData> = 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;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue