From f3a99baeac2c70f77372fe60b050aa412c5037ca Mon Sep 17 00:00:00 2001 From: Boris Chiou Date: Tue, 21 Mar 2017 20:42:14 +0800 Subject: [PATCH] Make specified::parse_number() return finite f32. --- components/style/values/specified/mod.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/components/style/values/specified/mod.rs b/components/style/values/specified/mod.rs index f21a28a9f16b..9970be49ae4a 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)));