Browse Source

LibWeb: Implement some missing tokenizer cases for EOF handling

Andreas Kling 5 năm trước cách đây
mục cha
commit
8e6522d034

+ 8 - 4
Libraries/LibWeb/Parser/HTMLTokenizer.cpp

@@ -294,7 +294,9 @@ _StartOfFunction:
                 }
                 }
                 ON_EOF
                 ON_EOF
                 {
                 {
-                    TODO();
+                    PARSE_ERROR();
+                    m_queued_tokens.enqueue(HTMLToken::make_character('<'));
+                    EMIT_EOF;
                 }
                 }
                 ANYTHING_ELSE
                 ANYTHING_ELSE
                 {
                 {
@@ -357,8 +359,9 @@ _StartOfFunction:
                 ON_EOF
                 ON_EOF
                 {
                 {
                     PARSE_ERROR();
                     PARSE_ERROR();
-                    // FIXME: Emit a U+003C LESS-THAN SIGN character token, a U+002F SOLIDUS character token and an end-of-file token.
-                    continue;
+                    m_queued_tokens.enqueue(HTMLToken::make_character('<'));
+                    m_queued_tokens.enqueue(HTMLToken::make_character('/'));
+                    EMIT_EOF;
                 }
                 }
                 ANYTHING_ELSE
                 ANYTHING_ELSE
                 {
                 {
@@ -1063,7 +1066,8 @@ _StartOfFunction:
                 }
                 }
                 ON_EOF
                 ON_EOF
                 {
                 {
-                    TODO();
+                    PARSE_ERROR();
+                    EMIT_EOF;
                 }
                 }
                 ANYTHING_ELSE
                 ANYTHING_ELSE
                 {
                 {