From 50265858abfc562297c62645e1ca96f16c46aad1 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 25 May 2020 20:02:27 +0200 Subject: [PATCH] LibWeb: Add a PARSE_ERROR() macro to the new HTML parser Unless otherwise stated, we shouldn't stop parsing just because there's a parse error, so let's allow ourselves to continue. With this change, we can now tokenize and parse the ACID1 test. :^) --- Libraries/LibWeb/Parser/HTMLDocumentParser.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Libraries/LibWeb/Parser/HTMLDocumentParser.cpp b/Libraries/LibWeb/Parser/HTMLDocumentParser.cpp index ac66a6889c..91c2910db3 100644 --- a/Libraries/LibWeb/Parser/HTMLDocumentParser.cpp +++ b/Libraries/LibWeb/Parser/HTMLDocumentParser.cpp @@ -41,6 +41,11 @@ ASSERT_NOT_REACHED(); \ } while (0) +#define PARSE_ERROR() \ + do { \ + dbg() << "Parse error!"; \ + } while (0) + namespace Web { HTMLDocumentParser::HTMLDocumentParser(const StringView& input) @@ -353,8 +358,7 @@ void HTMLDocumentParser::close_a_p_element() { generate_implied_end_tags("p"); if (current_node().tag_name() != "p") { - // Parse error. - TODO(); + PARSE_ERROR(); } for (;;) { auto popped_element = m_stack_of_open_elements.pop();