diff --git a/components/script/dom/servoparser/html.rs b/components/script/dom/servoparser/html.rs index 07848c87678..7fd0429612a 100644 --- a/components/script/dom/servoparser/html.rs +++ b/components/script/dom/servoparser/html.rs @@ -302,11 +302,10 @@ pub(crate) fn serialize_html_fragment( serializer.write_processing_instruction(pi.target(), &data)?; }, - NodeTypeId::DocumentFragment(_) => {}, + NodeTypeId::DocumentFragment(_) | NodeTypeId::Attr => {}, NodeTypeId::Document(_) => panic!("Can't serialize Document node itself"), NodeTypeId::Element(_) => panic!("Element shouldn't appear here"), - NodeTypeId::Attr => panic!("Attr shouldn't appear here"), }, SerializationCommand::SerializeShadowRoot(shadow_root) => { // Shadow roots are serialized as template elements with a fixed set of diff --git a/tests/wpt/meta/MANIFEST.json b/tests/wpt/meta/MANIFEST.json index 1469a123dd5..df2beac06bd 100644 --- a/tests/wpt/meta/MANIFEST.json +++ b/tests/wpt/meta/MANIFEST.json @@ -627813,7 +627813,7 @@ ] ], "XMLSerializer-serializeToString.html": [ - "6c294e464a5dc787abd4d10281ab2fe0555a0a3c", + "352a62c7d5db0710da6819bbc094ebfae46f4099", [ null, {} diff --git a/tests/wpt/tests/domparsing/XMLSerializer-serializeToString.html b/tests/wpt/tests/domparsing/XMLSerializer-serializeToString.html index 6c294e464a5..352a62c7d5d 100644 --- a/tests/wpt/tests/domparsing/XMLSerializer-serializeToString.html +++ b/tests/wpt/tests/domparsing/XMLSerializer-serializeToString.html @@ -256,6 +256,10 @@ test(function () { root.setAttributeNS(XMLNS_URI, 'xmlns:foo', ''); assert_equals(serialize(root), ''); }, 'Check if a prefix bound to an empty namespace URI ("no namespace") serialize'); + +test(function() { + assert_equals(serialize(document.createAttribute("foobar")), "") +}, 'Attribute nodes are serialized as the empty string')