Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1071)

Unified Diff: Source/core/html/parser/HTMLParserIdioms.cpp

Issue 172223003: Input type Number maximum value increase (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Reverted back StepRange changes Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/html/forms/NumberInputType.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/html/parser/HTMLParserIdioms.cpp
diff --git a/Source/core/html/parser/HTMLParserIdioms.cpp b/Source/core/html/parser/HTMLParserIdioms.cpp
index e3b143aaf2181cc7646c1968f6c36a489a533fee..c6fd8dc95c6f44abaefbea327ae141f14bc5fbd7 100644
--- a/Source/core/html/parser/HTMLParserIdioms.cpp
+++ b/Source/core/html/parser/HTMLParserIdioms.cpp
@@ -95,8 +95,7 @@ String serializeForNumberType(double number)
Decimal parseToDecimalForNumberType(const String& string, const Decimal& fallbackValue)
{
- // See HTML5 2.5.4.3 `Real numbers.' and parseToDoubleForNumberType
-
+ // http://www.whatwg.org/specs/web-apps/current-work/#floating-point-numbers and parseToDoubleForNumberType
// String::toDouble() accepts leading + and whitespace characters, which are not valid here.
const UChar firstCharacter = string[0];
if (firstCharacter != '-' && firstCharacter != '.' && !isASCIIDigit(firstCharacter))
@@ -106,11 +105,9 @@ Decimal parseToDecimalForNumberType(const String& string, const Decimal& fallbac
if (!value.isFinite())
return fallbackValue;
- // Numbers are considered finite IEEE 754 single-precision floating point values.
- // See HTML5 2.5.4.3 `Real numbers.'
- // FIXME: We should use numeric_limits<double>::max for number input type.
- const Decimal floatMax = Decimal::fromDouble(std::numeric_limits<float>::max());
- if (value < -floatMax || value > floatMax)
+ // Numbers are considered finite IEEE 754 Double-precision floating point values.
+ const Decimal doubleMax = Decimal::fromDouble(std::numeric_limits<double>::max());
+ if (value < -doubleMax || value > doubleMax)
return fallbackValue;
// We return +0 for -0 case.
@@ -119,8 +116,7 @@ Decimal parseToDecimalForNumberType(const String& string, const Decimal& fallbac
double parseToDoubleForNumberType(const String& string, double fallbackValue)
{
- // See HTML5 2.5.4.3 `Real numbers.'
-
+ // http://www.whatwg.org/specs/web-apps/current-work/#floating-point-numbers
// String::toDouble() accepts leading + and whitespace characters, which are not valid here.
UChar firstCharacter = string[0];
if (firstCharacter != '-' && firstCharacter != '.' && !isASCIIDigit(firstCharacter))
@@ -135,9 +131,8 @@ double parseToDoubleForNumberType(const String& string, double fallbackValue)
if (!std::isfinite(value))
return fallbackValue;
- // Numbers are considered finite IEEE 754 single-precision floating point values.
- // See HTML5 2.5.4.3 `Real numbers.'
- if (-std::numeric_limits<float>::max() > value || value > std::numeric_limits<float>::max())
+ // Numbers are considered finite IEEE 754 Double-precision floating point values.
+ if (-std::numeric_limits<double>::max() > value || value > std::numeric_limits<double>::max())
return fallbackValue;
// The following expression converts -0 to +0.
« no previous file with comments | « Source/core/html/forms/NumberInputType.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698