mirror of
https://github.com/zebrajr/ladybird.git
synced 2025-12-06 00:19:53 +01:00
LibWeb/CSS: Simplify parse_hue_none_value()
The motivation was to remove the parse_dimension() call, but this got a lot smaller.
This commit is contained in:
parent
563f8572d5
commit
f3a3344b9b
|
|
@ -3069,25 +3069,13 @@ RefPtr<CSSStyleValue> Parser::parse_hue_none_value(TokenStream<ComponentValue>&
|
||||||
// Parses [<hue> | none]
|
// Parses [<hue> | none]
|
||||||
// <hue> = <number> | <angle>
|
// <hue> = <number> | <angle>
|
||||||
|
|
||||||
auto peek_token = tokens.next_token();
|
if (auto angle = parse_angle_value(tokens))
|
||||||
if (peek_token.is(Token::Type::Number)) {
|
return angle;
|
||||||
tokens.discard_a_token(); // number
|
if (auto number = parse_number_value(tokens))
|
||||||
return NumberStyleValue::create(peek_token.token().number().value());
|
return number;
|
||||||
}
|
if (tokens.next_token().is_ident("none"sv)) {
|
||||||
if (auto calc = parse_calculated_value(peek_token); calc && (calc->resolves_to_number() || calc->resolves_to_angle())) {
|
tokens.discard_a_token(); // keyword none
|
||||||
tokens.discard_a_token(); // calc number/angle
|
return CSSKeywordValue::create(Keyword::None);
|
||||||
return calc;
|
|
||||||
}
|
|
||||||
if (auto dimension = parse_dimension(peek_token); dimension.has_value() && dimension->is_angle()) {
|
|
||||||
tokens.discard_a_token(); // angle
|
|
||||||
return AngleStyleValue::create(dimension->angle());
|
|
||||||
}
|
|
||||||
if (peek_token.is(Token::Type::Ident)) {
|
|
||||||
auto keyword = keyword_from_string(peek_token.token().ident());
|
|
||||||
if (keyword.has_value() && keyword.value() == Keyword::None) {
|
|
||||||
tokens.discard_a_token(); // keyword none
|
|
||||||
return CSSKeywordValue::create(keyword.value());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user