style: Make CascadeDataIter iterate from highest to lowest level.

This commit is contained in:
Cameron McCormack 2017-08-09 15:15:39 +08:00
parent 89971910cf
commit 6bdb0abebf

View file

@ -1635,6 +1635,11 @@ impl CascadeData {
} }
} }
/// Iterator over `PerOriginCascadeData`, from highest level (user) to lowest
/// (user agent).
///
/// We rely on this specific order for correctly looking up animations
/// (prioritizing rules at higher cascade levels), among other things.
struct CascadeDataIter<'a> { struct CascadeDataIter<'a> {
cascade_data: &'a CascadeData, cascade_data: &'a CascadeData,
cur: usize, cur: usize,
@ -1645,9 +1650,9 @@ impl<'a> Iterator for CascadeDataIter<'a> {
fn next(&mut self) -> Option<&'a PerOriginCascadeData> { fn next(&mut self) -> Option<&'a PerOriginCascadeData> {
let result = match self.cur { let result = match self.cur {
0 => &self.cascade_data.user_agent, 0 => &self.cascade_data.user,
1 => &self.cascade_data.author, 1 => &self.cascade_data.author,
2 => &self.cascade_data.user, 2 => &self.cascade_data.user_agent,
_ => return None, _ => return None,
}; };
self.cur += 1; self.cur += 1;