Skip to content

Commit bc81b71

Browse files
committed
Implement proper stringification of extension property defaults
1 parent 4f6a848 commit bc81b71

2 files changed

Lines changed: 8 additions & 6 deletions

File tree

META6.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"CSS::Grammar:ver<0.4.1+>",
1010
"CSS::Module::CSS3::Selectors:ver<0.0.5+>",
1111
"CSS::Specification:ver<0.5.3+>",
12-
"CSS::Writer:ver<0.2.11+>",
12+
"CSS::Writer:ver<0.2.14+>",
1313
"JSON::Fast",
1414
"Method::Also"
1515
],

lib/CSS/Module.rakumod

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ unit class CSS::Module:ver<0.7.6>;
33

44
use CSS::Grammar;
55
use CSS::Module::Property;
6+
use CSS::Writer;
67
has Str $.name;
78
has $.grammar is required #| grammar
89
handles <parse subparse parsefile>;
@@ -57,24 +58,25 @@ multi method extend(
5758
:&coerce,
5859
:$prop-num = %!prop-names{$name.lc} // self.index.elems,
5960
Bool :$inherit = False,
60-
Str() :$default is copy,
61+
:$default,
6162
|c,
6263
) {
6364
$name .= lc;
6465
%!prop-names{$name} = $prop-num;
6566

6667
my %metadata = %( :$inherit, );
6768
%metadata ,= c.hash;
69+
6870
if &coerce {
6971
%!coerce{$name} = &coerce;
70-
with $default {
71-
$default = .&coerce.value.Str;
72-
}
72+
%metadata<default> = CSS::Writer.write(.&coerce)
73+
with $default;
7374
}
7475
else {
7576
%!allow{$name}++;
77+
%metadata<default> = .Str with $default;
7678
}
77-
%metadata<default> = $_ with $default;
79+
7880
self!register-property: :$name, :%metadata;
7981
}
8082

0 commit comments

Comments
 (0)