1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 09:58:11 +00:00

LibWeb: User getter and setter for Comment type HTMLTokens

This commit is contained in:
Max Wipfli 2021-07-14 23:32:18 +02:00 committed by Ali Mohammad Pur
parent f886aa15b8
commit e8e9426b4f
3 changed files with 25 additions and 15 deletions

View file

@ -317,7 +317,7 @@ void HTMLDocumentParser::handle_initial(HTMLToken& token)
} }
if (token.is_comment()) { if (token.is_comment()) {
auto comment = adopt_ref(*new DOM::Comment(document(), token.m_comment_or_character.data)); auto comment = adopt_ref(*new DOM::Comment(document(), token.comment()));
document().append_child(move(comment)); document().append_child(move(comment));
return; return;
} }
@ -347,7 +347,7 @@ void HTMLDocumentParser::handle_before_html(HTMLToken& token)
} }
if (token.is_comment()) { if (token.is_comment()) {
auto comment = adopt_ref(*new DOM::Comment(document(), token.m_comment_or_character.data)); auto comment = adopt_ref(*new DOM::Comment(document(), token.comment()));
document().append_child(move(comment)); document().append_child(move(comment));
return; return;
} }
@ -520,9 +520,8 @@ AnythingElse:
void HTMLDocumentParser::insert_comment(HTMLToken& token) void HTMLDocumentParser::insert_comment(HTMLToken& token)
{ {
auto data = token.m_comment_or_character.data;
auto adjusted_insertion_location = find_appropriate_place_for_inserting_node(); auto adjusted_insertion_location = find_appropriate_place_for_inserting_node();
adjusted_insertion_location.parent->insert_before(adopt_ref(*new DOM::Comment(document(), data)), adjusted_insertion_location.insert_before_sibling); adjusted_insertion_location.parent->insert_before(adopt_ref(*new DOM::Comment(document(), token.comment())), adjusted_insertion_location.insert_before_sibling);
} }
void HTMLDocumentParser::handle_in_head(HTMLToken& token) void HTMLDocumentParser::handle_in_head(HTMLToken& token)
@ -832,9 +831,8 @@ void HTMLDocumentParser::handle_after_body(HTMLToken& token)
} }
if (token.is_comment()) { if (token.is_comment()) {
auto data = token.m_comment_or_character.data;
auto& insertion_location = m_stack_of_open_elements.first(); auto& insertion_location = m_stack_of_open_elements.first();
insertion_location.append_child(adopt_ref(*new DOM::Comment(document(), data))); insertion_location.append_child(adopt_ref(*new DOM::Comment(document(), token.comment())));
return; return;
} }
@ -870,7 +868,7 @@ void HTMLDocumentParser::handle_after_body(HTMLToken& token)
void HTMLDocumentParser::handle_after_after_body(HTMLToken& token) void HTMLDocumentParser::handle_after_after_body(HTMLToken& token)
{ {
if (token.is_comment()) { if (token.is_comment()) {
auto comment = adopt_ref(*new DOM::Comment(document(), token.m_comment_or_character.data)); auto comment = adopt_ref(*new DOM::Comment(document(), token.comment()));
document().append_child(move(comment)); document().append_child(move(comment));
return; return;
} }
@ -2751,7 +2749,7 @@ void HTMLDocumentParser::handle_after_frameset(HTMLToken& token)
void HTMLDocumentParser::handle_after_after_frameset(HTMLToken& token) void HTMLDocumentParser::handle_after_after_frameset(HTMLToken& token)
{ {
if (token.is_comment()) { if (token.is_comment()) {
auto comment = adopt_ref(*new DOM::Comment(document(), token.m_comment_or_character.data)); auto comment = adopt_ref(*new DOM::Comment(document(), token.comment()));
document().append_child(move(comment)); document().append_child(move(comment));
return; return;
} }

View file

@ -97,6 +97,18 @@ public:
} }
} }
String const& comment() const
{
VERIFY(is_comment());
return m_comment_or_character.data;
}
void set_comment(String comment)
{
VERIFY(is_comment());
m_comment_or_character.data = move(comment);
}
String tag_name() const String tag_name() const
{ {
VERIFY(is_start_tag() || is_end_tag()); VERIFY(is_start_tag() || is_end_tag());

View file

@ -406,7 +406,7 @@ _StartOfFunction:
{ {
ON('>') ON('>')
{ {
m_current_token.m_comment_or_character.data = consume_current_builder(); m_current_token.set_comment(consume_current_builder());
SWITCH_TO_AND_EMIT_CURRENT_TOKEN(Data); SWITCH_TO_AND_EMIT_CURRENT_TOKEN(Data);
} }
ON_EOF ON_EOF
@ -1392,7 +1392,7 @@ _StartOfFunction:
ON_EOF ON_EOF
{ {
log_parse_error(); log_parse_error();
m_current_token.m_comment_or_character.data = consume_current_builder(); m_current_token.set_comment(consume_current_builder());
EMIT_CURRENT_TOKEN; EMIT_CURRENT_TOKEN;
EMIT_EOF; EMIT_EOF;
} }
@ -1408,7 +1408,7 @@ _StartOfFunction:
{ {
ON('>') ON('>')
{ {
m_current_token.m_comment_or_character.data = consume_current_builder(); m_current_token.set_comment(consume_current_builder());
SWITCH_TO_AND_EMIT_CURRENT_TOKEN(Data); SWITCH_TO_AND_EMIT_CURRENT_TOKEN(Data);
} }
ON('!') ON('!')
@ -1423,7 +1423,7 @@ _StartOfFunction:
ON_EOF ON_EOF
{ {
log_parse_error(); log_parse_error();
m_current_token.m_comment_or_character.data = consume_current_builder(); m_current_token.set_comment(consume_current_builder());
EMIT_CURRENT_TOKEN; EMIT_CURRENT_TOKEN;
EMIT_EOF; EMIT_EOF;
} }
@ -1445,13 +1445,13 @@ _StartOfFunction:
ON('>') ON('>')
{ {
log_parse_error(); log_parse_error();
m_current_token.m_comment_or_character.data = consume_current_builder(); m_current_token.set_comment(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_current_token.m_comment_or_character.data = consume_current_builder(); m_current_token.set_comment(consume_current_builder());
EMIT_CURRENT_TOKEN; EMIT_CURRENT_TOKEN;
EMIT_EOF; EMIT_EOF;
} }
@ -1472,7 +1472,7 @@ _StartOfFunction:
ON_EOF ON_EOF
{ {
log_parse_error(); log_parse_error();
m_current_token.m_comment_or_character.data = consume_current_builder(); m_current_token.set_comment(consume_current_builder());
EMIT_CURRENT_TOKEN; EMIT_CURRENT_TOKEN;
EMIT_EOF; EMIT_EOF;
} }