@@ -588,15 +588,26 @@ fn one_component_value_to_json(token: Token, input: &mut Parser) -> Json {
588
588
Token :: Delim ( '\\' ) => "\\ " . to_json ( ) ,
589
589
Token :: Delim ( value) => value. to_string ( ) . to_json ( ) ,
590
590
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 {
594
599
value : unit_value * 100. ,
595
600
int_value : int_value,
596
601
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
+ } ) ,
600
611
601
612
Token :: UnicodeRange ( start, end) => JArray ! [ "unicode-range" , start, end] ,
602
613
@@ -614,11 +625,26 @@ fn one_component_value_to_json(token: Token, input: &mut Parser) -> Json {
614
625
Token :: CDO => "<!--" . to_json ( ) ,
615
626
Token :: CDC => "-->" . to_json ( ) ,
616
627
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
+ } ) ,
622
648
Token :: BadUrl => JArray ! [ "error" , "bad-url" ] ,
623
649
Token :: BadString => JArray ! [ "error" , "bad-string" ] ,
624
650
Token :: CloseParenthesis => JArray ! [ "error" , ")" ] ,
0 commit comments