Bladeren bron

LibWeb: Fix greedy CSS Tokenizer whitespace parsing

Whitespace parsing was too greedy, consuming the first non-
whitespace character after it.
Sam Atkins 4 jaren geleden
bovenliggende
commit
9115c23bd5
1 gewijzigde bestanden met toevoegingen van 4 en 1 verwijderingen
  1. 4 1
      Userland/Libraries/LibWeb/CSS/Parser/Tokenizer.cpp

+ 4 - 1
Userland/Libraries/LibWeb/CSS/Parser/Tokenizer.cpp

@@ -725,8 +725,11 @@ Token Tokenizer::consume_a_token()
     if (is_whitespace(input)) {
     if (is_whitespace(input)) {
         dbgln_if(CSS_TOKENIZER_TRACE, "is whitespace");
         dbgln_if(CSS_TOKENIZER_TRACE, "is whitespace");
 
 
-        while (is_whitespace(peek_code_point().value()))
+        auto next = peek_code_point();
+        while (next.has_value() && is_whitespace(next.value())) {
             (void)next_code_point();
             (void)next_code_point();
+            next = peek_code_point();
+        }
 
 
         return create_new_token(Token::TokenType::Whitespace);
         return create_new_token(Token::TokenType::Whitespace);
     }
     }