diff --git a/Libraries/LibWeb/XML/XMLDocumentBuilder.cpp b/Libraries/LibWeb/XML/XMLDocumentBuilder.cpp index b8c05f5e625..e30fdc30f1f 100644 --- a/Libraries/LibWeb/XML/XMLDocumentBuilder.cpp +++ b/Libraries/LibWeb/XML/XMLDocumentBuilder.cpp @@ -99,7 +99,23 @@ void XMLDocumentBuilder::element_start(const XML::Name& name, HashMaprealm(), m_namespace, MUST(FlyString::from_deprecated_fly_string(name))); + + if (qualified_name_or_err.is_error()) { + m_has_error = true; + return; + } + + auto qualified_name = qualified_name_or_err.value(); + + auto node_or_err = DOM::create_element(m_document, qualified_name.local_name(), qualified_name.namespace_(), qualified_name.prefix()); + + if (node_or_err.is_error()) { + m_has_error = true; + return; + } + + auto node = node_or_err.value(); // When an XML parser with XML scripting support enabled creates a script element, // it must have its parser document set and its "force async" flag must be unset.