|
@@ -1029,11 +1029,13 @@ _StartOfFunction:
|
|
|
}
|
|
|
ON_EOF
|
|
|
{
|
|
|
- TODO();
|
|
|
+ PARSE_ERROR();
|
|
|
+ EMIT_EOF;
|
|
|
}
|
|
|
ANYTHING_ELSE
|
|
|
{
|
|
|
- TODO();
|
|
|
+ PARSE_ERROR();
|
|
|
+ RECONSUME_IN(BeforeAttributeName);
|
|
|
}
|
|
|
}
|
|
|
END_STATE
|
|
@@ -1521,7 +1523,9 @@ _StartOfFunction:
|
|
|
ANYTHING_ELSE
|
|
|
{
|
|
|
// FIXME: Emit a U+003C LESS-THAN SIGN character token and a U+002F SOLIDUS character token. Reconsume in the RCDATA state.
|
|
|
- TODO();
|
|
|
+ m_queued_tokens.enqueue(HTMLToken::make_character('<'));
|
|
|
+ m_queued_tokens.enqueue(HTMLToken::make_character('/'));
|
|
|
+ RECONSUME_IN(RCDATA);
|
|
|
}
|
|
|
}
|
|
|
END_STATE
|
|
@@ -1531,24 +1535,33 @@ _StartOfFunction:
|
|
|
ON_WHITESPACE
|
|
|
{
|
|
|
if (!current_end_tag_token_is_appropriate()) {
|
|
|
- // 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(RCDATA);
|
|
|
}
|
|
|
SWITCH_TO(BeforeAttributeName);
|
|
|
}
|
|
|
ON('/')
|
|
|
{
|
|
|
if (!current_end_tag_token_is_appropriate()) {
|
|
|
- // 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(RCDATA);
|
|
|
}
|
|
|
SWITCH_TO(SelfClosingStartTag);
|
|
|
}
|
|
|
ON('>')
|
|
|
{
|
|
|
if (!current_end_tag_token_is_appropriate()) {
|
|
|
- // 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(RCDATA);
|
|
|
}
|
|
|
SWITCH_TO_AND_EMIT_CURRENT_TOKEN(Data);
|
|
|
}
|
|
@@ -1566,7 +1579,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(RCDATA);
|
|
|
}
|
|
|
}
|
|
|
END_STATE
|