diff options
Diffstat (limited to 'chromium/v8/src/conversions-inl.h')
-rw-r--r-- | chromium/v8/src/conversions-inl.h | 51 |
1 files changed, 16 insertions, 35 deletions
diff --git a/chromium/v8/src/conversions-inl.h b/chromium/v8/src/conversions-inl.h index 7ba19ba0f1d..27fed95eb59 100644 --- a/chromium/v8/src/conversions-inl.h +++ b/chromium/v8/src/conversions-inl.h @@ -1,29 +1,6 @@ // Copyright 2011 the V8 project authors. All rights reserved. -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. #ifndef V8_CONVERSIONS_INL_H_ #define V8_CONVERSIONS_INL_H_ @@ -32,16 +9,16 @@ #include <float.h> // Required for DBL_MAX and on Win32 for finite() #include <stdarg.h> #include <cmath> -#include "globals.h" // Required for V8_INFINITY +#include "src/globals.h" // Required for V8_INFINITY // ---------------------------------------------------------------------------- // Extra POSIX/ANSI functions for Win32/MSVC. -#include "conversions.h" -#include "double.h" -#include "platform.h" -#include "scanner.h" -#include "strtod.h" +#include "src/conversions.h" +#include "src/double.h" +#include "src/platform.h" +#include "src/scanner.h" +#include "src/strtod.h" namespace v8 { namespace internal { @@ -75,9 +52,13 @@ inline unsigned int FastD2UI(double x) { if (x < k2Pow52) { x += k2Pow52; uint32_t result; +#ifndef V8_TARGET_BIG_ENDIAN Address mantissa_ptr = reinterpret_cast<Address>(&x); +#else + Address mantissa_ptr = reinterpret_cast<Address>(&x) + kIntSize; +#endif // Copy least significant 32 bits of mantissa. - OS::MemCopy(&result, mantissa_ptr, sizeof(result)); + memcpy(&result, mantissa_ptr, sizeof(result)); return negative ? ~result + 1 : result; } // Large number (outside uint32 range), Infinity or NaN. @@ -88,7 +69,7 @@ inline unsigned int FastD2UI(double x) { inline double DoubleToInteger(double x) { if (std::isnan(x)) return 0; if (!std::isfinite(x) || x == 0) return x; - return (x >= 0) ? floor(x) : ceil(x); + return (x >= 0) ? std::floor(x) : std::ceil(x); } @@ -128,7 +109,7 @@ inline bool AdvanceToNonspace(UnicodeCache* unicode_cache, Iterator* current, EndMark end) { while (*current != end) { - if (!unicode_cache->IsWhiteSpace(**current)) return true; + if (!unicode_cache->IsWhiteSpaceOrLineTerminator(**current)) return true; ++*current; } return false; @@ -233,7 +214,7 @@ double InternalStringToIntDouble(UnicodeCache* unicode_cache, } ASSERT(number != 0); - return ldexp(static_cast<double>(negative ? -number : number), exponent); + return std::ldexp(static_cast<double>(negative ? -number : number), exponent); } |