Only allow color value at the last element.

This commit is contained in:
Xidorn Quan 2017-05-24 21:53:52 +10:00
parent 766feec4c0
commit 7d48c9fa90

View file

@ -39,17 +39,20 @@
let mut background_${name} = background_${name}::SpecifiedValue(Vec::new());
% endfor
try!(input.parse_comma_separated(|input| {
// background-color can only be in the last element, so if it
// is parsed anywhere before, the value is invalid.
if background_color.is_some() {
return Err(());
}
% for name in "image position repeat size attachment origin clip".split():
let mut ${name} = None;
% endfor
loop {
if let Ok(value) = input.try(|i| CSSColor::parse(context, i)) {
if background_color.is_none() {
if background_color.is_none() {
if let Ok(value) = input.try(|i| CSSColor::parse(context, i)) {
background_color = Some(value);
continue
} else {
// color can only be the last element
return Err(())
}
}
if position.is_none() {