diff --git a/components/style/values/specified/mod.rs b/components/style/values/specified/mod.rs index f21a28a9f16..9970be49ae4 100644 --- a/components/style/values/specified/mod.rs +++ b/components/style/values/specified/mod.rs @@ -195,7 +195,16 @@ pub fn parse_integer(input: &mut Parser) -> Result { #[allow(missing_docs)] pub fn parse_number(input: &mut Parser) -> Result { match try!(input.next()) { - Token::Number(ref value) => Ok(value.value), + Token::Number(ref value) => { + use std::f32; + if value.value.is_finite() { + Ok(value.value) + } else if value.value.is_sign_positive() { + Ok(f32::MAX) + } else { + Ok(f32::MIN) + } + }, Token::Function(ref name) if name.eq_ignore_ascii_case("calc") => { let ast = try!(input.parse_nested_block(|i| CalcLengthOrPercentage::parse_sum(i, CalcUnit::Number)));