зеркало из https://github.com/mozilla/gecko-dev.git
adfb1a6344
The main use of this method appears to be when parsing attributes with floating point values in HTML. By changing from PR_strtod, this change does have some semantic differences around edge-cases, though I've tried to keep it compliant with the wording in the standard. Here are some of the edge-cases I investigated: 1. We appear to build nspr with INFNAN_CHECK undefined, meaning that we did not parse strings like "inf", "infinity" and "nan" both before and after this change. 2. PR_strtod already ignored locale (built with USE_LOCALE undefined), so locale behaviour shouldn't have changed. 3. Neither PR_strtod nor the spec support hex floats, so I didn't enable them in double-conversion. 4. Leading whitespace is skipped by both PR_strtod and in the spec, so is skipped after this change. 5. Numbers too large to fit in a double (e.g. 2E308) were previously returned as inf or -inf by PR_strtod. The spec specifies that these values should return an error instead, so they have been changed to produce an error with this change. This is a web-visible change (<progress value=2E308 max=10> is indeterminate in Chromium and complete in Firefox before this change, it will be indeterminate for both after the change). 6. Parsing for floats & doubles are now handled seperately due to differences in the maximum and minimum representable values. Differential Revision: https://phabricator.services.mozilla.com/D148305 |
||
---|---|---|
.. | ||
crashtests | ||
README.html | ||
RustRegex.h | ||
RustStringAPI.cpp | ||
moz.build | ||
nsASCIIMask.cpp | ||
nsASCIIMask.h | ||
nsAString.h | ||
nsCharTraits.h | ||
nsDependentString.h | ||
nsDependentSubstring.h | ||
nsLiteralString.h | ||
nsPrintfCString.h | ||
nsPromiseFlatString.h | ||
nsReadableUtils.cpp | ||
nsReadableUtils.h | ||
nsString.h | ||
nsStringBuffer.cpp | ||
nsStringBuffer.h | ||
nsStringFlags.h | ||
nsStringFwd.h | ||
nsStringIterator.h | ||
nsStringStats.cpp | ||
nsStringStats.h | ||
nsTDependentString.cpp | ||
nsTDependentString.h | ||
nsTDependentSubstring.cpp | ||
nsTDependentSubstring.h | ||
nsTLiteralString.cpp | ||
nsTLiteralString.h | ||
nsTPromiseFlatString.cpp | ||
nsTPromiseFlatString.h | ||
nsTString.cpp | ||
nsTString.h | ||
nsTStringComparator.cpp | ||
nsTStringHasher.h | ||
nsTStringRepr.cpp | ||
nsTStringRepr.h | ||
nsTSubstring.cpp | ||
nsTSubstring.h | ||
nsTSubstringTuple.cpp | ||
nsTSubstringTuple.h | ||
nsTextFormatter.cpp | ||
nsTextFormatter.h | ||
nsUTF8Utils.h |
README.html
<html> <!-- This Source Code Form is subject to the terms of the Mozilla Public - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> <body> <h1><span class="LXRSHORTDESC">managing sequences of characters</span></h1> <p> <span class="LXRLONGDESC"></span> </p> </body> </html>