diff --git a/Userland/Libraries/LibWeb/CSS/Parser/Tokenizer.cpp b/Userland/Libraries/LibWeb/CSS/Parser/Tokenizer.cpp index 09ae068554..ad6a52bc29 100644 --- a/Userland/Libraries/LibWeb/CSS/Parser/Tokenizer.cpp +++ b/Userland/Libraries/LibWeb/CSS/Parser/Tokenizer.cpp @@ -490,13 +490,7 @@ String Tokenizer::consume_a_name() Token Tokenizer::consume_a_url_token() { auto token = create_new_token(Token::Type::Url); - for (;;) { - if (!is_whitespace(peek_code_point())) { - break; - } - - (void)next_code_point(); - } + consume_as_much_whitespace_as_possible(); for (;;) { @@ -512,13 +506,8 @@ Token Tokenizer::consume_a_url_token() } if (is_whitespace(input)) { - for (;;) { - if (!is_whitespace(peek_code_point())) { - break; - } - - input = next_code_point(); - } + consume_as_much_whitespace_as_possible(); + input = peek_code_point(); if (is_eof(input)) { log_parse_error(); @@ -580,6 +569,13 @@ void Tokenizer::consume_the_remnants_of_a_bad_url() } } +void Tokenizer::consume_as_much_whitespace_as_possible() +{ + while (is_whitespace(peek_code_point())) { + (void)next_code_point(); + } +} + void Tokenizer::reconsume_current_input_code_point() { m_utf8_iterator = m_prev_utf8_iterator; @@ -763,13 +759,7 @@ Token Tokenizer::consume_a_token() if (is_whitespace(input)) { dbgln_if(CSS_TOKENIZER_DEBUG, "is whitespace"); - - auto next = peek_code_point(); - while (is_whitespace(next)) { - (void)next_code_point(); - next = peek_code_point(); - } - + consume_as_much_whitespace_as_possible(); return create_new_token(Token::Type::Whitespace); } diff --git a/Userland/Libraries/LibWeb/CSS/Parser/Tokenizer.h b/Userland/Libraries/LibWeb/CSS/Parser/Tokenizer.h index b5f38e5fe8..a5198bbd4f 100644 --- a/Userland/Libraries/LibWeb/CSS/Parser/Tokenizer.h +++ b/Userland/Libraries/LibWeb/CSS/Parser/Tokenizer.h @@ -91,6 +91,7 @@ private: [[nodiscard]] Token consume_a_url_token(); void consume_the_remnants_of_a_bad_url(); void consume_comments(); + void consume_as_much_whitespace_as_possible(); void reconsume_current_input_code_point(); [[nodiscard]] static bool is_valid_escape_sequence(U32Twin); [[nodiscard]] bool would_start_an_identifier();