diff options
-rw-r--r-- | src/components/script/dom/htmlserializer.rs | 2 | ||||
-rw-r--r-- | src/test/html/content/test_innerHTML.html | 11 |
2 files changed, 12 insertions, 1 deletions
diff --git a/src/components/script/dom/htmlserializer.rs b/src/components/script/dom/htmlserializer.rs index 482c724666b..e6822e79215 100644 --- a/src/components/script/dom/htmlserializer.rs +++ b/src/components/script/dom/htmlserializer.rs @@ -104,7 +104,7 @@ fn serialize_elem(elem: &JS<Element>, open_elements: &mut ~[~str]) -> ~str { match elem.get().node.first_child { Some(ref child) if child.is_text() => { let text: JS<CharacterData> = CharacterDataCast::to(child); - if text.get().data[0] == 0x0A as u8 { + if text.get().data.len() > 0 && text.get().data[0] == 0x0A as u8 { rv.push_str("\x0A"); } }, diff --git a/src/test/html/content/test_innerHTML.html b/src/test/html/content/test_innerHTML.html new file mode 100644 index 00000000000..1f0cf235526 --- /dev/null +++ b/src/test/html/content/test_innerHTML.html @@ -0,0 +1,11 @@ +<html> + <head> + <script src="harness.js"></script> + <script> + var a = document.createElement("div"); + a.appendChild(document.createElement("pre")).appendChild(new Text("")); + is(a.innerHTML, "<pre></pre>"); + finish(); + </script> + </head> +</html> |