diff --git a/Userland/Libraries/LibWeb/HTML/Parser/HTMLParser.cpp b/Userland/Libraries/LibWeb/HTML/Parser/HTMLParser.cpp index 74e1a60551c..71c8fbbb5b2 100644 --- a/Userland/Libraries/LibWeb/HTML/Parser/HTMLParser.cpp +++ b/Userland/Libraries/LibWeb/HTML/Parser/HTMLParser.cpp @@ -1778,10 +1778,11 @@ void HTMLParser::handle_in_body(HTMLToken& token) // Parse error. log_parse_error(); - // If the stack of open elements has only one node on it, or if the second element on the stack of open elements is not a body element, then ignore the token. (fragment case) + // If the stack of open elements has only one node on it, or if the second element on the stack of open elements is not a body element, then ignore the token. + // (fragment case or there is a template element on the stack) if (m_stack_of_open_elements.elements().size() == 1 || m_stack_of_open_elements.elements().at(1)->local_name() != HTML::TagNames::body) { - VERIFY(m_parsing_fragment); + VERIFY(m_parsing_fragment || m_stack_of_open_elements.contains(HTML::TagNames::template_)); return; }