diff --git a/Libraries/LibWeb/Parser/HTMLDocumentParser.cpp b/Libraries/LibWeb/Parser/HTMLDocumentParser.cpp index 8c37753d67..9a85af72a4 100644 --- a/Libraries/LibWeb/Parser/HTMLDocumentParser.cpp +++ b/Libraries/LibWeb/Parser/HTMLDocumentParser.cpp @@ -482,6 +482,25 @@ void HTMLDocumentParser::handle_after_body(HTMLToken& token) return; } + if (token.is_comment()) { + TODO(); + } + + if (token.is_doctype()) { + PARSE_ERROR(); + return; + } + + if (token.is_start_tag() && token.tag_name() == "html") { + process_using_the_rules_for(InsertionMode::InBody, token); + return; + } + + if (token.is_end_of_file()) { + // FIXME: Stop parsing! + TODO(); + } + if (token.is_end_tag() && token.tag_name() == "html") { if (m_parsing_fragment) { ASSERT_NOT_REACHED(); @@ -489,7 +508,10 @@ void HTMLDocumentParser::handle_after_body(HTMLToken& token) m_insertion_mode = InsertionMode::AfterAfterBody; return; } - ASSERT_NOT_REACHED(); + + PARSE_ERROR(); + m_insertion_mode = InsertionMode::InBody; + process_using_the_rules_for(InsertionMode::InBody, token); } void HTMLDocumentParser::handle_after_after_body(HTMLToken& token)