mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-06 17:11:51 +00:00
LibWeb: Allow calc()
values in steps()
easing functions
This commit is contained in:
parent
21b531598d
commit
c5a3eaaf45
Notes:
github-actions[bot]
2025-06-18 06:58:22 +00:00
Author: https://github.com/tcl3
Commit: c5a3eaaf45
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/5123
Reviewed-by: https://github.com/gmta ✅
8 changed files with 177 additions and 27 deletions
|
@ -2651,11 +2651,10 @@ RefPtr<CSSStyleValue const> Parser::parse_easing_value(TokenStream<ComponentValu
|
|||
EasingStyleValue::Steps steps;
|
||||
|
||||
auto const& intervals_argument = comma_separated_arguments[0][0];
|
||||
if (!intervals_argument.is(Token::Type::Number))
|
||||
auto intervals_token = TokenStream<ComponentValue>::of_single_token(intervals_argument);
|
||||
auto intervals = parse_integer(intervals_token);
|
||||
if (!intervals.has_value())
|
||||
return nullptr;
|
||||
if (!intervals_argument.token().number().is_integer())
|
||||
return nullptr;
|
||||
auto intervals = intervals_argument.token().to_integer();
|
||||
|
||||
if (comma_separated_arguments.size() == 2) {
|
||||
TokenStream identifier_stream { comma_separated_arguments[1] };
|
||||
|
@ -2690,14 +2689,16 @@ RefPtr<CSSStyleValue const> Parser::parse_easing_value(TokenStream<ComponentValu
|
|||
// https://drafts.csswg.org/css-easing/#step-easing-functions
|
||||
// If the <step-position> is jump-none, the <integer> must be at least 2, or the function is invalid.
|
||||
// Otherwise, the <integer> must be at least 1, or the function is invalid.
|
||||
if (steps.position == EasingStyleValue::Steps::Position::JumpNone) {
|
||||
if (intervals <= 1)
|
||||
if (!intervals->is_calculated()) {
|
||||
if (steps.position == EasingStyleValue::Steps::Position::JumpNone) {
|
||||
if (intervals->value() <= 1)
|
||||
return nullptr;
|
||||
} else if (intervals->value() <= 0) {
|
||||
return nullptr;
|
||||
} else if (intervals <= 0) {
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
steps.number_of_intervals = intervals;
|
||||
steps.number_of_intervals = *intervals;
|
||||
transaction.commit();
|
||||
return EasingStyleValue::create(steps);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue