diff --git a/src/components/script/dom/document.rs b/src/components/script/dom/document.rs index 9854bb7e386..6135b86e06c 100644 --- a/src/components/script/dom/document.rs +++ b/src/components/script/dom/document.rs @@ -288,8 +288,10 @@ impl Document { .find(|node| node.type_id() == ElementNodeTypeId(HTMLTitleElementTypeId)) .map(|title_elem| { for child in title_elem.children() { - let text: JS = TextCast::to(&child); - title.push_str(text.get().characterdata.data.as_slice()); + if child.is_text() { + let text: JS = TextCast::to(&child); + title.push_str(text.get().characterdata.data.as_slice()); + } } }); }); diff --git a/src/test/html/content/test_document_title_nontextchildren.html b/src/test/html/content/test_document_title_nontextchildren.html new file mode 100644 index 00000000000..9875a149be7 --- /dev/null +++ b/src/test/html/content/test_document_title_nontextchildren.html @@ -0,0 +1,9 @@ + +x + + +