LibWeb: Only match alternative syntax if entire stream consumed

Previously we would consider an alternative syntax child to be a match
as long as parsing produced a value, even if there were trailing tokens
(which would later invalidate it within `parse_with_a_syntax`). This
meant that we wouldn't consider later alternatives which may actually
produce a valid match.
This commit is contained in:
Callum Law
2026-03-08 17:28:28 +13:00
committed by Sam Atkins
parent 614a5cf33e
commit 283f8e46a4
Notes: github-actions[bot] 2026-03-26 01:13:15 +00:00
2 changed files with 15 additions and 11 deletions

View File

@@ -2,8 +2,8 @@ Harness status: OK
Found 239 tests
210 Pass
29 Fail
217 Pass
22 Fail
Pass syntax:'*', initialValue:'a' is valid
Pass syntax:' * ', initialValue:'b' is valid
Pass syntax:'<length>', initialValue:'2px' is valid
@@ -84,23 +84,23 @@ Pass syntax:'<url>', initialValue:'url(a)' is valid
Pass syntax:'<color>+', initialValue:'yellow blue' is valid
Pass syntax:'<color>+', initialValue:'yellow blue ' is valid
Pass syntax:'<color>+ | <color>', initialValue:'yellow blue' is valid
Fail syntax:'<color> | <color>+', initialValue:'yellow blue' is valid
Pass syntax:'<color> | <color>+', initialValue:'yellow blue' is valid
Pass syntax:'<color># | <color>', initialValue:'yellow, blue' is valid
Fail syntax:'<color> | <color>#', initialValue:'yellow, blue' is valid
Pass syntax:'<color> | <color>#', initialValue:'yellow, blue' is valid
Pass syntax:'<color># | <color>+', initialValue:'yellow blue' is valid
Fail syntax:'<color>+ | <color>#', initialValue:'yellow, blue' is valid
Pass syntax:'<color>+ | <color>#', initialValue:'yellow, blue' is valid
Pass syntax:'<color>+ | yellow', initialValue:'yellow blue' is valid
Pass syntax:'yellow', initialValue:'yellow' is valid
Fail syntax:'yellow | <color>+', initialValue:'yellow blue' is valid
Pass syntax:'yellow | <color>+', initialValue:'yellow blue' is valid
Pass syntax:'<color># | yellow', initialValue:'yellow, blue' is valid
Fail syntax:'yellow | <color>#', initialValue:'yellow, blue' is valid
Pass syntax:'yellow | <color>#', initialValue:'yellow, blue' is valid
Pass syntax:'<transform-list> | <transform-function> ', initialValue:'scale(2) rotate(90deg)' is valid
Fail syntax:'<transform-function> | <transform-list>', initialValue:'scale(2) rotate(90deg)' is valid
Pass syntax:'<transform-function> | <transform-list>', initialValue:'scale(2) rotate(90deg)' is valid
Pass syntax:'<transform-list> | <transform-function>+ ', initialValue:'scale(2) rotate(90deg)' is valid
Pass syntax:'<transform-function>+ | <transform-list>', initialValue:'scale(2) rotate(90deg)' is valid
Pass syntax:'<transform-list> | <transform-function># ', initialValue:'scale(2) rotate(90deg)' is valid
Pass syntax:'<transform-function># | <transform-list>', initialValue:'scale(2) rotate(90deg)' is valid
Fail syntax:'<transform-list> | <transform-function># ', initialValue:'scale(2), rotate(90deg)' is valid
Pass syntax:'<transform-list> | <transform-function># ', initialValue:'scale(2), rotate(90deg)' is valid
Pass syntax:'<transform-function># | <transform-list>', initialValue:'scale(2), rotate(90deg)' is valid
Pass syntax:'<transform-list>', initialValue:'scale(2) rotate(90deg) ' is valid
Pass syntax:'<integer>+ | <percentage>+ | <length>+ ', initialValue:'1' is valid