| Index: third_party/WebKit/Source/wtf/dtoa.cpp
|
| diff --git a/third_party/WebKit/Source/wtf/dtoa.cpp b/third_party/WebKit/Source/wtf/dtoa.cpp
|
| deleted file mode 100644
|
| index a0f46f83069bf67d3c1d667db17405a135ff16e7..0000000000000000000000000000000000000000
|
| --- a/third_party/WebKit/Source/wtf/dtoa.cpp
|
| +++ /dev/null
|
| @@ -1,147 +0,0 @@
|
| -/****************************************************************
|
| - *
|
| - * The author of this software is David M. Gay.
|
| - *
|
| - * Copyright (c) 1991, 2000, 2001 by Lucent Technologies.
|
| - * Copyright (C) 2002, 2005, 2006, 2007, 2008, 2010, 2012 Apple Inc.
|
| - * All rights reserved.
|
| - *
|
| - * Permission to use, copy, modify, and distribute this software for any
|
| - * purpose without fee is hereby granted, provided that this entire notice
|
| - * is included in all copies of any software which is or includes a copy
|
| - * or modification of this software and in all copies of the supporting
|
| - * documentation for such software.
|
| - *
|
| - * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
|
| - * WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR LUCENT MAKES ANY
|
| - * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
|
| - * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
|
| - *
|
| - ***************************************************************/
|
| -
|
| -/* Please send bug reports to David M. Gay (dmg at acm dot org,
|
| - * with " at " changed at "@" and " dot " changed to "."). */
|
| -
|
| -/* On a machine with IEEE extended-precision registers, it is
|
| - * necessary to specify double-precision (53-bit) rounding precision
|
| - * before invoking strtod or dtoa. If the machine uses (the equivalent
|
| - * of) Intel 80x87 arithmetic, the call
|
| - * _control87(PC_53, MCW_PC);
|
| - * does this with many compilers. Whether this or another call is
|
| - * appropriate depends on the compiler; for this to work, it may be
|
| - * necessary to #include "float.h" or another system-dependent header
|
| - * file.
|
| - */
|
| -
|
| -#include "wtf/dtoa.h"
|
| -
|
| -#include "wtf/Vector.h"
|
| -#include <string.h>
|
| -
|
| -namespace WTF {
|
| -
|
| -const char* numberToString(double d, NumberToStringBuffer buffer) {
|
| - double_conversion::StringBuilder builder(buffer, NumberToStringBufferLength);
|
| - const double_conversion::DoubleToStringConverter& converter =
|
| - double_conversion::DoubleToStringConverter::EcmaScriptConverter();
|
| - converter.ToShortest(d, &builder);
|
| - return builder.Finalize();
|
| -}
|
| -
|
| -static inline const char* formatStringTruncatingTrailingZerosIfNeeded(
|
| - NumberToStringBuffer buffer,
|
| - double_conversion::StringBuilder& builder) {
|
| - size_t length = builder.position();
|
| -
|
| - // If there is an exponent, stripping trailing zeros would be incorrect.
|
| - // FIXME: Zeros should be stripped before the 'e'.
|
| - if (memchr(buffer, 'e', length))
|
| - return builder.Finalize();
|
| -
|
| - size_t decimalPointPosition = 0;
|
| - for (; decimalPointPosition < length; ++decimalPointPosition) {
|
| - if (buffer[decimalPointPosition] == '.')
|
| - break;
|
| - }
|
| -
|
| - // No decimal seperator found, early exit.
|
| - if (decimalPointPosition == length)
|
| - return builder.Finalize();
|
| -
|
| - size_t truncatedLength = length - 1;
|
| - for (; truncatedLength > decimalPointPosition; --truncatedLength) {
|
| - if (buffer[truncatedLength] != '0')
|
| - break;
|
| - }
|
| -
|
| - // No trailing zeros found to strip.
|
| - if (truncatedLength == length - 1)
|
| - return builder.Finalize();
|
| -
|
| - // If we removed all trailing zeros, remove the decimal point as well.
|
| - if (truncatedLength == decimalPointPosition) {
|
| - DCHECK_GT(truncatedLength, 0u);
|
| - --truncatedLength;
|
| - }
|
| -
|
| - // Truncate the StringBuilder, and return the final result.
|
| - builder.SetPosition(truncatedLength + 1);
|
| - return builder.Finalize();
|
| -}
|
| -
|
| -const char* numberToFixedPrecisionString(double d,
|
| - unsigned significantFigures,
|
| - NumberToStringBuffer buffer) {
|
| - // Mimic String::format("%.[precision]g", ...), but use dtoas rounding
|
| - // facilities.
|
| - // "g": Signed value printed in f or e format, whichever is more compact for
|
| - // the given value and precision.
|
| - // The e format is used only when the exponent of the value is less than -4 or
|
| - // greater than or equal to the precision argument. Trailing zeros are
|
| - // truncated, and the decimal point appears only if one or more digits follow
|
| - // it.
|
| - // "precision": The precision specifies the maximum number of significant
|
| - // digits printed.
|
| - double_conversion::StringBuilder builder(buffer, NumberToStringBufferLength);
|
| - const double_conversion::DoubleToStringConverter& converter =
|
| - double_conversion::DoubleToStringConverter::EcmaScriptConverter();
|
| - converter.ToPrecision(d, significantFigures, &builder);
|
| - // FIXME: Trailing zeros should never be added in the first place. The
|
| - // current implementation does not strip when there is an exponent, eg.
|
| - // 1.50000e+10.
|
| - return formatStringTruncatingTrailingZerosIfNeeded(buffer, builder);
|
| -}
|
| -
|
| -const char* numberToFixedWidthString(double d,
|
| - unsigned decimalPlaces,
|
| - NumberToStringBuffer buffer) {
|
| - // Mimic String::format("%.[precision]f", ...), but use dtoas rounding
|
| - // facilities.
|
| - // "f": Signed value having the form [ - ]dddd.dddd, where dddd is one or more
|
| - // decimal digits. The number of digits before the decimal point depends on
|
| - // the magnitude of the number, and the number of digits after the decimal
|
| - // point depends on the requested precision.
|
| - // "precision": The precision value specifies the number of digits after the
|
| - // decimal point. If a decimal point appears, at least one digit appears
|
| - // before it. The value is rounded to the appropriate number of digits.
|
| - double_conversion::StringBuilder builder(buffer, NumberToStringBufferLength);
|
| - const double_conversion::DoubleToStringConverter& converter =
|
| - double_conversion::DoubleToStringConverter::EcmaScriptConverter();
|
| - converter.ToFixed(d, decimalPlaces, &builder);
|
| - return builder.Finalize();
|
| -}
|
| -
|
| -namespace Internal {
|
| -
|
| -double parseDoubleFromLongString(const UChar* string,
|
| - size_t length,
|
| - size_t& parsedLength) {
|
| - Vector<LChar> conversionBuffer(length);
|
| - for (size_t i = 0; i < length; ++i)
|
| - conversionBuffer[i] = isASCII(string[i]) ? string[i] : 0;
|
| - return parseDouble(conversionBuffer.data(), length, parsedLength);
|
| -}
|
| -
|
| -} // namespace Internal
|
| -
|
| -} // namespace WTF
|
|
|