Consider serializing shorthands based on previously-serialized longhands.

This commit is contained in:
Josh Matthews 2017-09-01 15:06:08 -07:00
parent 191201de6c
commit 5b83beaceb
2 changed files with 54 additions and 8 deletions

View file

@ -657,10 +657,6 @@ impl ToCss for PropertyDeclarationBlock {
if is_system_font {
for (longhand, importance) in self.declaration_importance_iter() {
if already_serialized.contains(longhand.id()) {
continue;
}
if longhand.get_system().is_some() || longhand.is_default_line_height() {
current_longhands.push(longhand);
if found_system.is_none() {
@ -673,10 +669,6 @@ impl ToCss for PropertyDeclarationBlock {
}
} else {
for (longhand, importance) in self.declaration_importance_iter() {
if already_serialized.contains(longhand.id()) {
continue;
}
if longhand.id().is_longhand_of(shorthand) {
current_longhands.push(longhand);
if importance.important() {
@ -771,6 +763,13 @@ impl ToCss for PropertyDeclarationBlock {
// Substep 9
already_serialized.insert(current_longhand.id());
}
// FIXME(https://github.com/w3c/csswg-drafts/issues/1774)
// The specification does not include an instruction to abort
// the shorthand loop at this point, but doing so both matches
// Gecko and makes sense since shorthands are checked in
// preferred order.
break;
}
}