@@ -588,15 +588,26 @@ fn one_component_value_to_json(token: Token, input: &mut Parser) -> Json {
588588 Token :: Delim ( '\\' ) => "\\ " . to_json ( ) ,
589589 Token :: Delim ( value) => value. to_string ( ) . to_json ( ) ,
590590
591- Token :: Number ( value) => Json :: Array ( vec ! [ "number" . to_json( ) ] + & * numeric ( value) ) ,
592- Token :: Percentage ( PercentageValue { unit_value, int_value, has_sign } ) => Json :: Array (
593- vec ! [ "percentage" . to_json( ) ] + & * numeric ( NumericValue {
591+ Token :: Number ( value) => Json :: Array ( {
592+ let mut v = vec ! [ "number" . to_json( ) ] ;
593+ v. extend ( numeric ( value) ) ;
594+ v
595+ } ) ,
596+ Token :: Percentage ( PercentageValue { unit_value, int_value, has_sign } ) => Json :: Array ( {
597+ let mut v = vec ! [ "percentage" . to_json( ) ] ;
598+ v. extend ( numeric ( NumericValue {
594599 value : unit_value * 100. ,
595600 int_value : int_value,
596601 has_sign : has_sign,
597- } ) ) ,
598- Token :: Dimension ( value, unit) => Json :: Array (
599- vec ! [ "dimension" . to_json( ) ] + & * numeric ( value) + & [ unit. to_json ( ) ] [ ..] ) ,
602+ } ) ) ;
603+ v
604+ } ) ,
605+ Token :: Dimension ( value, unit) => Json :: Array ( {
606+ let mut v = vec ! [ "dimension" . to_json( ) ] ;
607+ v. extend ( numeric ( value) ) ;
608+ v. push ( unit. to_json ( ) ) ;
609+ v
610+ } ) ,
600611
601612 Token :: UnicodeRange ( start, end) => JArray ! [ "unicode-range" , start, end] ,
602613
@@ -614,11 +625,26 @@ fn one_component_value_to_json(token: Token, input: &mut Parser) -> Json {
614625 Token :: CDO => "<!--" . to_json ( ) ,
615626 Token :: CDC => "-->" . to_json ( ) ,
616627
617- Token :: Function ( name) => Json :: Array ( vec ! [ "function" . to_json( ) , name. to_json( ) ] +
618- & * nested ( input) ) ,
619- Token :: ParenthesisBlock => Json :: Array ( vec ! [ "()" . to_json( ) ] + & * nested ( input) ) ,
620- Token :: SquareBracketBlock => Json :: Array ( vec ! [ "[]" . to_json( ) ] + & * nested ( input) ) ,
621- Token :: CurlyBracketBlock => Json :: Array ( vec ! [ "{}" . to_json( ) ] + & nested ( input) ) ,
628+ Token :: Function ( name) => Json :: Array ( {
629+ let mut v = vec ! [ "function" . to_json( ) , name. to_json( ) ] ;
630+ v. extend ( nested ( input) ) ;
631+ v
632+ } ) ,
633+ Token :: ParenthesisBlock => Json :: Array ( {
634+ let mut v = vec ! [ "()" . to_json( ) ] ;
635+ v. extend ( nested ( input) ) ;
636+ v
637+ } ) ,
638+ Token :: SquareBracketBlock => Json :: Array ( {
639+ let mut v = vec ! [ "[]" . to_json( ) ] ;
640+ v. extend ( nested ( input) ) ;
641+ v
642+ } ) ,
643+ Token :: CurlyBracketBlock => Json :: Array ( {
644+ let mut v = vec ! [ "{}" . to_json( ) ] ;
645+ v. extend ( nested ( input) ) ;
646+ v
647+ } ) ,
622648 Token :: BadUrl => JArray ! [ "error" , "bad-url" ] ,
623649 Token :: BadString => JArray ! [ "error" , "bad-string" ] ,
624650 Token :: CloseParenthesis => JArray ! [ "error" , ")" ] ,
0 commit comments