@@ -224,6 +224,8 @@ Optional<Parser::PropertyAndValue> Parser::parse_css_value_for_properties(Readon
224224 return parsed.release_value ();
225225 if (auto parsed = parse_for_type (ValueType::Counter); parsed.has_value ())
226226 return parsed.release_value ();
227+ if (auto parsed = parse_for_type (ValueType::DashedIdent); parsed.has_value ())
228+ return parsed.release_value ();
227229 if (auto parsed = parse_for_type (ValueType::EasingFunction); parsed.has_value ())
228230 return parsed.release_value ();
229231 if (auto parsed = parse_for_type (ValueType::Image); parsed.has_value ())
@@ -1269,10 +1271,7 @@ RefPtr<StyleValue const> Parser::parse_anchor_name_value(TokenStream<ComponentVa
12691271 return none;
12701272
12711273 return parse_comma_separated_value_list (tokens, [this ](TokenStream<ComponentValue>& inner_tokens) -> RefPtr<StyleValue const > {
1272- auto dashed_ident = parse_dashed_ident (inner_tokens);
1273- if (!dashed_ident.has_value ())
1274- return nullptr ;
1275- return CustomIdentStyleValue::create (*dashed_ident);
1274+ return parse_dashed_ident_value (inner_tokens);
12761275 });
12771276}
12781277
@@ -1287,10 +1286,7 @@ RefPtr<StyleValue const> Parser::parse_anchor_scope_value(TokenStream<ComponentV
12871286 return all;
12881287
12891288 return parse_comma_separated_value_list (tokens, [this ](TokenStream<ComponentValue>& inner_tokens) -> RefPtr<StyleValue const > {
1290- auto dashed_ident = parse_dashed_ident (inner_tokens);
1291- if (!dashed_ident.has_value ())
1292- return {};
1293- return CustomIdentStyleValue::create (*dashed_ident);
1289+ return parse_dashed_ident_value (inner_tokens);
12941290 });
12951291}
12961292
@@ -4236,10 +4232,7 @@ RefPtr<StyleValue const> Parser::parse_position_anchor_value(TokenStream<Compone
42364232 return auto_keyword;
42374233
42384234 // <anchor-name> = <dashed-ident>
4239- auto dashed_ident = parse_dashed_ident (tokens);
4240- if (!dashed_ident.has_value ())
4241- return nullptr ;
4242- return CustomIdentStyleValue::create (*dashed_ident);
4235+ return parse_dashed_ident_value (tokens);
42434236}
42444237
42454238// https://drafts.csswg.org/css-anchor-position/#position-try-fallbacks
@@ -4266,26 +4259,26 @@ RefPtr<StyleValue const> Parser::parse_single_position_try_fallbacks_value(Token
42664259 return position_area;
42674260 }
42684261
4269- Optional<FlyString > dashed_ident;
4262+ RefPtr<StyleValue const > dashed_ident;
42704263 RefPtr<StyleValue const > try_tactic;
42714264 while (tokens.has_next_token ()) {
42724265 if (auto try_tactic_value = parse_try_tactic_value (tokens)) {
42734266 if (try_tactic)
42744267 return {};
42754268 try_tactic = try_tactic_value.release_nonnull ();
4276- } else if (auto maybe_dashed_ident = parse_dashed_ident (tokens); maybe_dashed_ident. has_value ( )) {
4277- if (dashed_ident. has_value () )
4269+ } else if (auto maybe_dashed_ident = parse_dashed_ident_value (tokens)) {
4270+ if (dashed_ident)
42784271 return {};
4279- dashed_ident = maybe_dashed_ident.release_value ();
4272+ dashed_ident = maybe_dashed_ident.release_nonnull ();
42804273 } else {
42814274 break ;
42824275 }
42834276 tokens.discard_whitespace ();
42844277 }
42854278
42864279 StyleValueVector values;
4287- if (dashed_ident. has_value () )
4288- values.append (CustomIdentStyleValue::create ( dashed_ident.release_value () ));
4280+ if (dashed_ident)
4281+ values.append (dashed_ident.release_nonnull ( ));
42894282 if (try_tactic)
42904283 values.append (try_tactic.release_nonnull ());
42914284
0 commit comments