Skip to content

Commit

Permalink
style: Make structs uncacheable if logical float/clear property value…
Browse files Browse the repository at this point in the history
…s are used.
  • Loading branch information
heycam committed Sep 14, 2017
1 parent 5f17e2d commit b3ee1c7
Showing 1 changed file with 36 additions and 8 deletions.
44 changes: 36 additions & 8 deletions components/style/properties/longhand/box.mako.rs
Expand Up @@ -225,10 +225,24 @@ ${helpers.single_keyword("position", "static absolute relative fixed sticky",
let ltr = context.style().writing_mode.is_bidi_ltr();
// https://drafts.csswg.org/css-logical-props/#float-clear
match *self {
SpecifiedValue::inline_start if ltr => computed_value::T::left,
SpecifiedValue::inline_start => computed_value::T::right,
SpecifiedValue::inline_end if ltr => computed_value::T::right,
SpecifiedValue::inline_end => computed_value::T::left,
SpecifiedValue::inline_start => {
context.rule_cache_conditions.borrow_mut()
.set_writing_mode_dependency(context.builder.writing_mode);
if ltr {
computed_value::T::left
} else {
computed_value::T::right
}
}
SpecifiedValue::inline_end => {
context.rule_cache_conditions.borrow_mut()
.set_writing_mode_dependency(context.builder.writing_mode);
if ltr {
computed_value::T::right
} else {
computed_value::T::left
}
}
% for value in "none left right".split():
SpecifiedValue::${value} => computed_value::T::${value},
% endfor
Expand Down Expand Up @@ -263,10 +277,24 @@ ${helpers.single_keyword("position", "static absolute relative fixed sticky",
let ltr = context.style().writing_mode.is_bidi_ltr();
// https://drafts.csswg.org/css-logical-props/#float-clear
match *self {
SpecifiedValue::inline_start if ltr => computed_value::T::left,
SpecifiedValue::inline_start => computed_value::T::right,
SpecifiedValue::inline_end if ltr => computed_value::T::right,
SpecifiedValue::inline_end => computed_value::T::left,
SpecifiedValue::inline_start => {
context.rule_cache_conditions.borrow_mut()
.set_writing_mode_dependency(context.builder.writing_mode);
if ltr {
computed_value::T::left
} else {
computed_value::T::right
}
}
SpecifiedValue::inline_end => {
context.rule_cache_conditions.borrow_mut()
.set_writing_mode_dependency(context.builder.writing_mode);
if ltr {
computed_value::T::right
} else {
computed_value::T::left
}
}
% for value in "none left right both".split():
SpecifiedValue::${value} => computed_value::T::${value},
% endfor
Expand Down

0 comments on commit b3ee1c7

Please sign in to comment.