@@ -244,6 +244,15 @@ impl<'a> Tokenizer<'a> {
244
244
seen
245
245
}
246
246
247
+ #[ inline]
248
+ pub fn see_function ( & mut self , name : & str ) {
249
+ if self . var_functions == SeenStatus :: LookingForThem {
250
+ if name. eq_ignore_ascii_case ( "var" ) {
251
+ self . var_functions = SeenStatus :: SeenAtLeastOne ;
252
+ }
253
+ }
254
+ }
255
+
247
256
#[ inline]
248
257
pub fn look_for_viewport_percentages ( & mut self ) {
249
258
self . viewport_percentages = SeenStatus :: LookingForThem ;
@@ -256,6 +265,18 @@ impl<'a> Tokenizer<'a> {
256
265
seen
257
266
}
258
267
268
+ #[ inline]
269
+ pub fn see_dimension ( & mut self , unit : & str ) {
270
+ if self . viewport_percentages == SeenStatus :: LookingForThem {
271
+ if unit. eq_ignore_ascii_case ( "vh" ) ||
272
+ unit. eq_ignore_ascii_case ( "vw" ) ||
273
+ unit. eq_ignore_ascii_case ( "vmin" ) ||
274
+ unit. eq_ignore_ascii_case ( "vmax" ) {
275
+ self . viewport_percentages = SeenStatus :: SeenAtLeastOne ;
276
+ }
277
+ }
278
+ }
279
+
259
280
#[ inline]
260
281
pub fn next ( & mut self ) -> Result < Token < ' a > , ( ) > {
261
282
next_token ( self )
@@ -699,10 +720,7 @@ fn consume_ident_like<'a>(tokenizer: &mut Tokenizer<'a>) -> Token<'a> {
699
720
if value. eq_ignore_ascii_case ( "url" ) {
700
721
consume_unquoted_url ( tokenizer) . unwrap_or ( Function ( value) )
701
722
} else {
702
- if tokenizer. var_functions == SeenStatus :: LookingForThem &&
703
- value. eq_ignore_ascii_case ( "var" ) {
704
- tokenizer. var_functions = SeenStatus :: SeenAtLeastOne ;
705
- }
723
+ tokenizer. see_function ( & value) ;
706
724
Function ( value)
707
725
}
708
726
} else {
@@ -887,14 +905,7 @@ fn consume_numeric<'a>(tokenizer: &mut Tokenizer<'a>) -> Token<'a> {
887
905
let value = value as f32 ;
888
906
if is_ident_start ( tokenizer) {
889
907
let unit = consume_name ( tokenizer) ;
890
- if tokenizer. viewport_percentages == SeenStatus :: LookingForThem {
891
- if unit. eq_ignore_ascii_case ( "vh" ) ||
892
- unit. eq_ignore_ascii_case ( "vw" ) ||
893
- unit. eq_ignore_ascii_case ( "vmin" ) ||
894
- unit. eq_ignore_ascii_case ( "vmax" ) {
895
- tokenizer. viewport_percentages = SeenStatus :: SeenAtLeastOne ;
896
- }
897
- }
908
+ tokenizer. see_dimension ( & unit) ;
898
909
Dimension {
899
910
value : value,
900
911
int_value : int_value,
0 commit comments