The relevant spec text is here, for the `grid-row` parts of this test: https://www.w3.org/TR/css-grid-1/#propdef-grid-row It effectively says the second value can be omitted if it's the same as the first value (which is what we're doing in our serialization). For grid-area, the spec text is: https://www.w3.org/TR/css-grid-1/#propdef-grid-area It says the 4-value-syntax encodes `row-start / col-start / row-end / col-end`. If there are fewer than four values, then the missing value(s) are assumed to be the last one(s) in this syntax, and are assumed to match their corresponding value from earlier in the syntax, if it's a <custom-ident>, and otherwise are assumed to be `auto`. So for example in this failing case... ``` Fail Property grid-area value 'auto / i / auto / i' assert_equals: expected "auto / i / auto / i" but got "auto / i" ``` ...our behavior is clearly valid -- we're fine to drop the trailing `auto / i` (which represents `row-end / col-end`), and that doesn't lose any meaning, since they are then implicitly the same as `row-start / col-start` which are specified as `auto / i` here.
Bug 1744847 Comment 1 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
The relevant spec text is here, for the `grid-row` parts of this test: https://www.w3.org/TR/css-grid-1/#propdef-grid-row It effectively says the second value can be omitted if it's the same as the first value (which is what we're doing in our serialization). For grid-area, the spec text is: https://www.w3.org/TR/css-grid-1/#propdef-grid-area It says the 4-value-syntax encodes `row-start / col-start / row-end / col-end`. If there are fewer than four values, then the missing value(s) are assumed to be the last one(s) in this syntax, and are assumed to match their corresponding value from earlier in the syntax, if it's a <custom-ident>, and otherwise are assumed to be `auto`. So for example in this failing case... ``` Fail Property grid-area value 'auto / i / auto / i' assert_equals: expected "auto / i / auto / i" but got "auto / i" ``` ...our behavior is clearly valid -- we're fine to drop the trailing `auto / i` (which represents `row-end / col-end`), and that doesn't lose any meaning, since they are then implicitly the same as `row-start / col-start` which are specified in our shorter serialization of `auto / i` here.