diff --git a/Libraries/LibWeb/Parser/HTMLTokenizer.cpp b/Libraries/LibWeb/Parser/HTMLTokenizer.cpp
index 7c20d5d535..7941bc6918 100644
--- a/Libraries/LibWeb/Parser/HTMLTokenizer.cpp
+++ b/Libraries/LibWeb/Parser/HTMLTokenizer.cpp
@@ -1978,22 +1978,31 @@ _StartOfFunction:
{
if (current_end_tag_token_is_appropriate())
SWITCH_TO(BeforeAttributeName);
- // FIXME: Otherwise, treat it as per the "anything else" entry below.
- TODO();
+ m_queued_tokens.enqueue(HTMLToken::make_character('<'));
+ m_queued_tokens.enqueue(HTMLToken::make_character('/'));
+ for (auto codepoint : m_temporary_buffer)
+ m_queued_tokens.enqueue(HTMLToken::make_character(codepoint));
+ RECONSUME_IN(ScriptData);
}
ON('/')
{
if (current_end_tag_token_is_appropriate())
SWITCH_TO(SelfClosingStartTag);
- // FIXME: Otherwise, treat it as per the "anything else" entry below.
- TODO();
+ m_queued_tokens.enqueue(HTMLToken::make_character('<'));
+ m_queued_tokens.enqueue(HTMLToken::make_character('/'));
+ for (auto codepoint : m_temporary_buffer)
+ m_queued_tokens.enqueue(HTMLToken::make_character(codepoint));
+ RECONSUME_IN(ScriptData);
}
ON('>')
{
if (current_end_tag_token_is_appropriate())
SWITCH_TO_AND_EMIT_CURRENT_TOKEN(Data);
- // FIXME: Otherwise, treat it as per the "anything else" entry below.
- TODO();
+ m_queued_tokens.enqueue(HTMLToken::make_character('<'));
+ m_queued_tokens.enqueue(HTMLToken::make_character('/'));
+ for (auto codepoint : m_temporary_buffer)
+ m_queued_tokens.enqueue(HTMLToken::make_character(codepoint));
+ RECONSUME_IN(ScriptData);
}
ON_ASCII_UPPER_ALPHA
{
@@ -2009,7 +2018,11 @@ _StartOfFunction:
}
ANYTHING_ELSE
{
- TODO();
+ m_queued_tokens.enqueue(HTMLToken::make_character('<'));
+ m_queued_tokens.enqueue(HTMLToken::make_character('/'));
+ for (auto codepoint : m_temporary_buffer)
+ m_queued_tokens.enqueue(HTMLToken::make_character(codepoint));
+ RECONSUME_IN(ScriptData);
}
}
END_STATE