WPT
wpt / css / css-fonts / test_font_feature_values_parsing.html
Spec: CSS Fonts ↗
Runs: Chrome 155.0.8041.0 (wpt@2c385f65e, 2026-09-04) | Firefox 157.0a1 (wpt@2c385f65e, 2026-09-04) | Safari 251 preview (wpt@5ce815a83, 2026-08-27) | Ladybird 1.0-a7825 (wpt@2c385f65e, 2026-09-04) | Servo Servo 0.6 (wpt@7e3d005d7, 2026-09-03) | Blitz a50cb8971 (wpt@a95401e4e, 2026-09-03)
View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi
| Chrome | Firefox | Safari | Ladybird | Servo | Blitz | |
|---|---|---|---|---|---|---|
| Total | 265/302 | 299/302 | 299/302 | 299/302 | 299/302 | 0/302 |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| basic parse tests - @font-feature-values; | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo; | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-value {;} | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-features-values {;} | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { ; } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { ; } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { ,; } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { ,; } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { ;, } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { ;, } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { ,;, } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { ,;, } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset; } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset; } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset,; } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset,; } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset abc; } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset abc; } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { abc } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { abc } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { ;;abc } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { ;;abc } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { abc;; } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { abc;; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { abc: } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { abc: } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { abc,: } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { abc,: } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { abc:, } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { abc:, } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { abc:,; } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { abc:,; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { a,b } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { a,b } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { a;b } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { a;b } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { a:;b: } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { a:;b: } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { a:,;b: } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { a:,;b: } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { a:1,;b: } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { a:1,;b: } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { abc 1 2 3 } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { abc 1 2 3 } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { abc:, 1 2 3 } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { abc:, 1 2 3 } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { abc:; 1 2 3 } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { abc:; 1 2 3 } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { abc: 1 2 3a } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { abc: 1 2 3a } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { abc: 1 2 3, def: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { abc: 1 2 3, def: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @blah @styleset { abc: 1 2 3; } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @blah @styleset { abc: 1 2 3; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @blah } @styleset { abc: 1 2 3; } } | FAIL | FAIL | FAIL | FAIL | FAIL | — |
| basic parse tests - @font-feature-values bongo { @blah , @styleset { abc: 1 2 3; } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @blah , @styleset { abc: 1 2 3; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { abc: 1 2 3; } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @styleset { abc: 1 2 3; } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @styleset { abc: 1 2 3; } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { abc: 1 2 3 } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @styleset { abc: 1 2 3 } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @styleset { abc: 1 2 3 } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { abc: 1 2 3; | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @styleset { abc: 1 2 3; | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @styleset { abc: 1 2 3; | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { abc: 1 2 3 | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @styleset { abc: 1 2 3 | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @styleset { abc: 1 2 3 | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { ok-1: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @styleset { ok-1: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @styleset { ok-1: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @annotation { ok-1: 3; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @annotation { ok-1: 3; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @annotation { ok-1: 3; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @stylistic { blah: 3; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @stylistic { blah: 3; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @stylistic { blah: 3; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @stylistic { blah: sibling-index(); } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @stylistic { blah: sibling-index(); } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { blah: 3; super-blah: 4 5; more-blah: 5 6 7; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @styleset { blah: 3; super-blah: 4 5; more-blah: 5 6 7; } } | FAIL | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @styleset { blah: 3; super-blah: 4 5; more-blah: 5 6 7; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { blah: 3 ; super-blah: 4 5 ; more-blah: 5 6 7; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @styleset { blah: 3 ; super-blah: 4 5 ; more-blah: 5 6 7; } } | FAIL | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @styleset { blah: 3 ; super-blah: 4 5 ; more-blah: 5 6 7; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @stylistic { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @stylistic { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @stylistic { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { blah: 1 2 3 4; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @styleset { blah: 1 2 3 4; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @styleset { blah: 1 2 3 4; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @character-variant { blah: 1 2; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @character-variant { blah: 1 2; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @character-variant { blah: 1 2; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @swash { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @swash { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @swash { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @ornaments { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @ornaments { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @ornaments { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @annotation { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @annotation { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @annotation { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { blah: 0; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @styleset { blah: 0; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @styleset { blah: 0; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { blah: 120 124; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @styleset { blah: 120 124; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @styleset { blah: 120 124; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @character-variant { blah: 0; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @character-variant { blah: 0; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @character-variant { blah: 0; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @character-variant { blah: 111; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @character-variant { blah: 111; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @character-variant { blah: 111; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @character-variant { blah: 111 13; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @character-variant { blah: 111 13; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @character-variant { blah: 111 13; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { styleset { blah: 1 } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { styleset { blah: 1 } } | PASS | PASS | PASS | PASS | PASS | — |
| invalid declarations don't affect valid ones - @font-feature-values bongo { styleset { blah: 1 } } | FAIL | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { stylistic { blah: 1 } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { stylistic { blah: 1 } } | PASS | PASS | PASS | PASS | PASS | — |
| invalid declarations don't affect valid ones - @font-feature-values bongo { stylistic { blah: 1 } } | FAIL | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { character-variant { blah: 1 } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { character-variant { blah: 1 } } | PASS | PASS | PASS | PASS | PASS | — |
| invalid declarations don't affect valid ones - @font-feature-values bongo { character-variant { blah: 1 } } | FAIL | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { swash { blah: 1 } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { swash { blah: 1 } } | PASS | PASS | PASS | PASS | PASS | — |
| invalid declarations don't affect valid ones - @font-feature-values bongo { swash { blah: 1 } } | FAIL | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { ornaments { blah: 1 } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { ornaments { blah: 1 } } | PASS | PASS | PASS | PASS | PASS | — |
| invalid declarations don't affect valid ones - @font-feature-values bongo { ornaments { blah: 1 } } | FAIL | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { annotation { blah: 1 } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { annotation { blah: 1 } } | PASS | PASS | PASS | PASS | PASS | — |
| invalid declarations don't affect valid ones - @font-feature-values bongo { annotation { blah: 1 } } | FAIL | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @bongo { blah: 1 } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @bongo { blah: 1 } } | PASS | PASS | PASS | PASS | PASS | — |
| invalid declarations don't affect valid ones - @font-feature-values bongo { @bongo { blah: 1 } } | FAIL | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @bongo { blah: 1 2 3 } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @bongo { blah: 1 2 3 } } | PASS | PASS | PASS | PASS | PASS | — |
| invalid declarations don't affect valid ones - @font-feature-values bongo { @bongo { blah: 1 2 3 } } | FAIL | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @bongo { blah: 1 2 3; burp: 1;;; } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @bongo { blah: 1 2 3; burp: 1;;; } } | PASS | PASS | PASS | PASS | PASS | — |
| invalid declarations don't affect valid ones - @font-feature-values bongo { @bongo { blah: 1 2 3; burp: 1;;; } } | FAIL | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { blah: -1 } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { blah: -1 } } | PASS | PASS | PASS | PASS | PASS | — |
| invalid declarations don't affect valid ones - @font-feature-values bongo { @styleset { blah: -1 } } | FAIL | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { blah: 1 -1 } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { blah: 1 -1 } } | PASS | PASS | PASS | PASS | PASS | — |
| invalid declarations don't affect valid ones - @font-feature-values bongo { @styleset { blah: 1 -1 } } | FAIL | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { blah: 1.5 } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { blah: 1.5 } } | PASS | PASS | PASS | PASS | PASS | — |
| invalid declarations don't affect valid ones - @font-feature-values bongo { @styleset { blah: 1.5 } } | FAIL | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { blah: 15px } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { blah: 15px } } | PASS | PASS | PASS | PASS | PASS | — |
| invalid declarations don't affect valid ones - @font-feature-values bongo { @styleset { blah: 15px } } | FAIL | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { blah: red } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { blah: red } } | PASS | PASS | PASS | PASS | PASS | — |
| invalid declarations don't affect valid ones - @font-feature-values bongo { @styleset { blah: red } } | FAIL | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { blah: (1) } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { blah: (1) } } | PASS | PASS | PASS | PASS | PASS | — |
| invalid declarations don't affect valid ones - @font-feature-values bongo { @styleset { blah: (1) } } | FAIL | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { blah:(1) } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { blah:(1) } } | PASS | PASS | PASS | PASS | PASS | — |
| invalid declarations don't affect valid ones - @font-feature-values bongo { @styleset { blah:(1) } } | FAIL | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { blah:, 1 } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { blah:, 1 } } | PASS | PASS | PASS | PASS | PASS | — |
| invalid declarations don't affect valid ones - @font-feature-values bongo { @styleset { blah:, 1 } } | FAIL | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { blah: <1> } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { blah: <1> } } | PASS | PASS | PASS | PASS | PASS | — |
| invalid declarations don't affect valid ones - @font-feature-values bongo { @styleset { blah: <1> } } | FAIL | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { blah: 1! } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { blah: 1! } } | PASS | PASS | PASS | PASS | PASS | — |
| invalid declarations don't affect valid ones - @font-feature-values bongo { @styleset { blah: 1! } } | FAIL | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { blah: 1,, } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { blah: 1,, } } | PASS | PASS | PASS | PASS | PASS | — |
| invalid declarations don't affect valid ones - @font-feature-values bongo { @styleset { blah: 1,, } } | FAIL | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { blah: 1 1 1 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @styleset { blah: 1 1 1 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @styleset { blah: 1 1 1 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @stylistic { blah: 1 2 } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @stylistic { blah: 1 2 } } | PASS | PASS | PASS | PASS | PASS | — |
| invalid declarations don't affect valid ones - @font-feature-values bongo { @stylistic { blah: 1 2 } } | FAIL | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @character-variant { blah: 1 2 3 } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @character-variant { blah: 1 2 3 } } | PASS | PASS | PASS | PASS | PASS | — |
| invalid declarations don't affect valid ones - @font-feature-values bongo { @character-variant { blah: 1 2 3 } } | FAIL | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @swash { blah: 1 2 } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @swash { blah: 1 2 } } | PASS | PASS | PASS | PASS | PASS | — |
| invalid declarations don't affect valid ones - @font-feature-values bongo { @swash { blah: 1 2 } } | FAIL | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @ornaments { blah: 1 2 } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @ornaments { blah: 1 2 } } | PASS | PASS | PASS | PASS | PASS | — |
| invalid declarations don't affect valid ones - @font-feature-values bongo { @ornaments { blah: 1 2 } } | FAIL | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @annotation { blah: 1 2 } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @annotation { blah: 1 2 } } | PASS | PASS | PASS | PASS | PASS | — |
| invalid declarations don't affect valid ones - @font-feature-values bongo { @annotation { blah: 1 2 } } | FAIL | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { blah: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @styleset { blah: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @styleset { blah: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values "bongo" { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values "bongo" { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values "bongo" { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values 'bongo' { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values 'bongo' { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values 'bongo' { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values \62 ongo { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values \62 ongo { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values \62 ongo { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo, super bongo, bongo the supreme { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo, super bongo, bongo the supreme { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo, super bongo, bongo the supreme { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo,, super bongo { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo,* { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo, sans-serif { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values serif, sans-serif { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values 'serif', 'sans-serif' { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values 'serif', 'sans-serif' { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values 'serif', 'sans-serif' { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo, "super bongo", 'bongo the supreme' { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo, "super bongo", 'bongo the supreme' { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo, "super bongo", 'bongo the supreme' { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values 毎日カレーを食べたい! { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values 毎日カレーを食べたい! { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values 毎日カレーを食べたい! { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values 毎日カレーを食べたい!, 納豆嫌い { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values 毎日カレーを食べたい!, 納豆嫌い { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values 毎日カレーを食べたい!, 納豆嫌い { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo, "super" bongo, bongo the supreme { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values --bongo { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values --bongo { @styleset { blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { blah: 1; blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @styleset { blah: 1; blah: 1; } } | FAIL | FAIL | FAIL | FAIL | FAIL | — |
| serialization round-trip - @font-feature-values bongo { @styleset { blah: 1; blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { blah: 1; de-blah: 1; blah: 2; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @styleset { blah: 1; de-blah: 1; blah: 2; } } | FAIL | FAIL | FAIL | FAIL | FAIL | — |
| serialization round-trip - @font-feature-values bongo { @styleset { blah: 1; de-blah: 1; blah: 2; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { \tra-la: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @styleset { \tra-la: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @styleset { \tra-la: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { b\lah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @styleset { b\lah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @styleset { b\lah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { \62 lah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @styleset { \62 lah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @styleset { \62 lah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { \:blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @styleset { \:blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @styleset { \:blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { \;blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @styleset { \;blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @styleset { \;blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { complex\20 blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @styleset { complex\20 blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @styleset { complex\20 blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { complex\ blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @styleset { complex\ blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @styleset { complex\ blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { Håkon: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @styleset { Håkon: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @styleset { Håkon: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { Åквариум: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @styleset { Åквариум: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @styleset { Åквариум: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { \1f449\1f4a9\1f448: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @styleset { \1f449\1f4a9\1f448: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @styleset { \1f449\1f4a9\1f448: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { 魅力: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @styleset { 魅力: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @styleset { 魅力: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { 毎日カレーを食べたい!: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @styleset { 毎日カレーを食べたい!: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @styleset { 毎日カレーを食べたい!: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { TECHNICIÄNS\ ÖF\ SPÅCE\ SHIP\ EÅRTH\ THIS\ IS\ YÖÜR\ CÄPTÅIN\ SPEÄKING\ YÖÜR\ ØÅPTÅIN\ IS\ DEA̋D: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization check - @font-feature-values bongo { @styleset { TECHNICIÄNS\ ÖF\ SPÅCE\ SHIP\ EÅRTH\ THIS\ IS\ YÖÜR\ CÄPTÅIN\ SPEÄKING\ YÖÜR\ ØÅPTÅIN\ IS\ DEA̋D: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| serialization round-trip - @font-feature-values bongo { @styleset { TECHNICIÄNS\ ÖF\ SPÅCE\ SHIP\ EÅRTH\ THIS\ IS\ YÖÜR\ CÄPTÅIN\ SPEÄKING\ YÖÜR\ ØÅPTÅIN\ IS\ DEA̋D: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { 123blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { 123blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| invalid declarations don't affect valid ones - @font-feature-values bongo { @styleset { 123blah: 1; } } | FAIL | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { :123blah 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { :123blah 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| invalid declarations don't affect valid ones - @font-feature-values bongo { @styleset { :123blah 1; } } | FAIL | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { :123blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { :123blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| invalid declarations don't affect valid ones - @font-feature-values bongo { @styleset { :123blah: 1; } } | FAIL | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { ?123blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { ?123blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| invalid declarations don't affect valid ones - @font-feature-values bongo { @styleset { ?123blah: 1; } } | FAIL | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { "blah": 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { "blah": 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| invalid declarations don't affect valid ones - @font-feature-values bongo { @styleset { "blah": 1; } } | FAIL | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { complex blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { complex blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| invalid declarations don't affect valid ones - @font-feature-values bongo { @styleset { complex blah: 1; } } | FAIL | PASS | PASS | PASS | PASS | — |
| basic parse tests - @font-feature-values bongo { @styleset { complex\ blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| no value definitions in serialization - @font-feature-values bongo { @styleset { complex\ blah: 1; } } | PASS | PASS | PASS | PASS | PASS | — |
| invalid declarations don't affect valid ones - @font-feature-values bongo { @styleset { complex\ blah: 1; } } | FAIL | PASS | PASS | PASS | PASS | — |
| Uncaught JS error | — | — | — | — | — | FAIL |