mirror of
https://github.com/fergalmoran/ladybird.git
synced 2025-12-23 01:39:55 +00:00
LibWeb: Emit the current token before EOF on invalid comments
The spec for each of these state:
-> EOF:
This is an eof-in-comment parse error. Emit the current comment
token. Emit an end-of-file token.
We were neglecting to emit the current comment token before emitting an
EOF token. Note the existing EMIT_CURRENT_TOKEN macro was unused.
This commit is contained in:
committed by
Andreas Kling
parent
775282f9fc
commit
feddecde5b
@@ -137,11 +137,17 @@ namespace Web::HTML {
|
||||
return m_queued_tokens.dequeue(); \
|
||||
} while (0)
|
||||
|
||||
#define EMIT_CURRENT_TOKEN \
|
||||
#define EMIT_CURRENT_TOKEN_FOLLOWED_BY_EOF \
|
||||
do { \
|
||||
VERIFY(m_current_builder.is_empty()); \
|
||||
will_emit(m_current_token); \
|
||||
m_queued_tokens.enqueue(move(m_current_token)); \
|
||||
\
|
||||
m_has_emitted_eof = true; \
|
||||
create_new_token(HTMLToken::Type::EndOfFile); \
|
||||
will_emit(m_current_token); \
|
||||
m_queued_tokens.enqueue(move(m_current_token)); \
|
||||
\
|
||||
return m_queued_tokens.dequeue(); \
|
||||
} while (0)
|
||||
|
||||
@@ -1428,7 +1434,7 @@ _StartOfFunction:
|
||||
ON_EOF
|
||||
{
|
||||
log_parse_error();
|
||||
EMIT_EOF;
|
||||
EMIT_CURRENT_TOKEN_FOLLOWED_BY_EOF;
|
||||
}
|
||||
ANYTHING_ELSE
|
||||
{
|
||||
@@ -1460,7 +1466,7 @@ _StartOfFunction:
|
||||
{
|
||||
log_parse_error();
|
||||
m_current_token.set_comment(consume_current_builder());
|
||||
EMIT_EOF;
|
||||
EMIT_CURRENT_TOKEN_FOLLOWED_BY_EOF;
|
||||
}
|
||||
ANYTHING_ELSE
|
||||
{
|
||||
@@ -1491,7 +1497,7 @@ _StartOfFunction:
|
||||
{
|
||||
log_parse_error();
|
||||
m_current_token.set_comment(consume_current_builder());
|
||||
EMIT_EOF;
|
||||
EMIT_CURRENT_TOKEN_FOLLOWED_BY_EOF;
|
||||
}
|
||||
ANYTHING_ELSE
|
||||
{
|
||||
@@ -1519,7 +1525,7 @@ _StartOfFunction:
|
||||
{
|
||||
log_parse_error();
|
||||
m_current_token.set_comment(consume_current_builder());
|
||||
EMIT_EOF;
|
||||
EMIT_CURRENT_TOKEN_FOLLOWED_BY_EOF;
|
||||
}
|
||||
ANYTHING_ELSE
|
||||
{
|
||||
@@ -1540,7 +1546,7 @@ _StartOfFunction:
|
||||
{
|
||||
log_parse_error();
|
||||
m_current_token.set_comment(consume_current_builder());
|
||||
EMIT_EOF;
|
||||
EMIT_CURRENT_TOKEN_FOLLOWED_BY_EOF;
|
||||
}
|
||||
ANYTHING_ELSE
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user