mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 05:28:11 +00:00
LibWeb: Correct behavior of Comment* states in HTMLTokenizer
Previously, this would lead to assertion failures when parsing HTML comments. This fixes #8757.
This commit is contained in:
parent
af0b483123
commit
bb2aed7d76
1 changed files with 15 additions and 11 deletions
|
@ -1351,18 +1351,17 @@ _StartOfFunction:
|
||||||
{
|
{
|
||||||
ON('-')
|
ON('-')
|
||||||
{
|
{
|
||||||
SWITCH_TO_WITH_UNCLEAN_BUILDER(CommentEnd);
|
SWITCH_TO(CommentEnd);
|
||||||
}
|
}
|
||||||
ON('>')
|
ON('>')
|
||||||
{
|
{
|
||||||
log_parse_error();
|
log_parse_error();
|
||||||
consume_current_builder();
|
|
||||||
SWITCH_TO_AND_EMIT_CURRENT_TOKEN(Data);
|
SWITCH_TO_AND_EMIT_CURRENT_TOKEN(Data);
|
||||||
}
|
}
|
||||||
ON_EOF
|
ON_EOF
|
||||||
{
|
{
|
||||||
log_parse_error();
|
log_parse_error();
|
||||||
m_queued_tokens.enqueue(move(m_current_token));
|
EMIT_CURRENT_TOKEN;
|
||||||
EMIT_EOF;
|
EMIT_EOF;
|
||||||
}
|
}
|
||||||
ANYTHING_ELSE
|
ANYTHING_ELSE
|
||||||
|
@ -1393,7 +1392,8 @@ _StartOfFunction:
|
||||||
ON_EOF
|
ON_EOF
|
||||||
{
|
{
|
||||||
log_parse_error();
|
log_parse_error();
|
||||||
m_queued_tokens.enqueue(move(m_current_token));
|
m_current_token.m_comment_or_character.data = consume_current_builder();
|
||||||
|
EMIT_CURRENT_TOKEN;
|
||||||
EMIT_EOF;
|
EMIT_EOF;
|
||||||
}
|
}
|
||||||
ANYTHING_ELSE
|
ANYTHING_ELSE
|
||||||
|
@ -1413,7 +1413,7 @@ _StartOfFunction:
|
||||||
}
|
}
|
||||||
ON('!')
|
ON('!')
|
||||||
{
|
{
|
||||||
SWITCH_TO(CommentEndBang);
|
SWITCH_TO_WITH_UNCLEAN_BUILDER(CommentEndBang);
|
||||||
}
|
}
|
||||||
ON('-')
|
ON('-')
|
||||||
{
|
{
|
||||||
|
@ -1423,7 +1423,8 @@ _StartOfFunction:
|
||||||
ON_EOF
|
ON_EOF
|
||||||
{
|
{
|
||||||
log_parse_error();
|
log_parse_error();
|
||||||
m_queued_tokens.enqueue(move(m_current_token));
|
m_current_token.m_comment_or_character.data = consume_current_builder();
|
||||||
|
EMIT_CURRENT_TOKEN;
|
||||||
EMIT_EOF;
|
EMIT_EOF;
|
||||||
}
|
}
|
||||||
ANYTHING_ELSE
|
ANYTHING_ELSE
|
||||||
|
@ -1439,17 +1440,19 @@ _StartOfFunction:
|
||||||
ON('-')
|
ON('-')
|
||||||
{
|
{
|
||||||
m_current_builder.append("--!");
|
m_current_builder.append("--!");
|
||||||
SWITCH_TO(CommentEndDash);
|
SWITCH_TO_WITH_UNCLEAN_BUILDER(CommentEndDash);
|
||||||
}
|
}
|
||||||
ON('>')
|
ON('>')
|
||||||
{
|
{
|
||||||
log_parse_error();
|
log_parse_error();
|
||||||
|
m_current_token.m_comment_or_character.data = consume_current_builder();
|
||||||
SWITCH_TO_AND_EMIT_CURRENT_TOKEN(Data);
|
SWITCH_TO_AND_EMIT_CURRENT_TOKEN(Data);
|
||||||
}
|
}
|
||||||
ON_EOF
|
ON_EOF
|
||||||
{
|
{
|
||||||
log_parse_error();
|
log_parse_error();
|
||||||
m_queued_tokens.enqueue(move(m_current_token));
|
m_current_token.m_comment_or_character.data = consume_current_builder();
|
||||||
|
EMIT_CURRENT_TOKEN;
|
||||||
EMIT_EOF;
|
EMIT_EOF;
|
||||||
}
|
}
|
||||||
ANYTHING_ELSE
|
ANYTHING_ELSE
|
||||||
|
@ -1469,7 +1472,8 @@ _StartOfFunction:
|
||||||
ON_EOF
|
ON_EOF
|
||||||
{
|
{
|
||||||
log_parse_error();
|
log_parse_error();
|
||||||
m_queued_tokens.enqueue(move(m_current_token));
|
m_current_token.m_comment_or_character.data = consume_current_builder();
|
||||||
|
EMIT_CURRENT_TOKEN;
|
||||||
EMIT_EOF;
|
EMIT_EOF;
|
||||||
}
|
}
|
||||||
ANYTHING_ELSE
|
ANYTHING_ELSE
|
||||||
|
@ -1503,7 +1507,7 @@ _StartOfFunction:
|
||||||
{
|
{
|
||||||
ON('-')
|
ON('-')
|
||||||
{
|
{
|
||||||
SWITCH_TO(CommentLessThanSignBangDash);
|
SWITCH_TO_WITH_UNCLEAN_BUILDER(CommentLessThanSignBangDash);
|
||||||
}
|
}
|
||||||
ANYTHING_ELSE
|
ANYTHING_ELSE
|
||||||
{
|
{
|
||||||
|
@ -1516,7 +1520,7 @@ _StartOfFunction:
|
||||||
{
|
{
|
||||||
ON('-')
|
ON('-')
|
||||||
{
|
{
|
||||||
SWITCH_TO(CommentLessThanSignBangDashDash);
|
SWITCH_TO_WITH_UNCLEAN_BUILDER(CommentLessThanSignBangDashDash);
|
||||||
}
|
}
|
||||||
ANYTHING_ELSE
|
ANYTHING_ELSE
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue