X87: [test] disable number-tostring test case for x87.
The reason: The CL #41255 (https://codereview.chromium.org/2520363002 ) reimplemnt the Number.prototype.toString and the added number-tostring test cases failed at x87. Similar to many previos fixing CLs, i.e.: CL #37371 (https://codereview.chromium.org/2111493002 ), the root reason is: The Gcc compiler and it's dependent C++ libraris on linux platform use x87 in extended 80-bit double precision by default. So the reimplemented DoubleToRadixCString() will generate extended 80-bit double precision result which isn't the expected standard 64-bit double precision value. Although modifying DoubleToRadixCString() function to manually do the 80-bit <--> 64-bit conversion for each double/float computation step can fix this issue, but it wll drop the DoubleToRadixCString() function's performance of other architectures. This CL put the failed number-tostring test cases into number-tostring-big-integer.js and disables it for x87. BUG= Review-Url: https://codereview.chromium.org/2532073002 Cr-Commit-Position: refs/heads/master@{#41322}
This commit is contained in:
parent
08931d45ba
commit
0c6b6138bf
@ -495,6 +495,12 @@
|
||||
'math-floor-of-div-minus-zero': [SKIP],
|
||||
}], # 'arch == mips64el or arch == mips64'
|
||||
|
||||
['arch == x87', {
|
||||
# The result produced by Gcc on linux platform is extended 80-bit double
|
||||
# precision and not the expected standard 64-bit double precision.
|
||||
'number-tostring-big-integer': [SKIP],
|
||||
}], # 'arch == x87'
|
||||
|
||||
##############################################################################
|
||||
['system == windows', {
|
||||
# TODO(mstarzinger): Too slow with turbo fan.
|
||||
|
34
test/mjsunit/number-tostring-big-integer.js
Normal file
34
test/mjsunit/number-tostring-big-integer.js
Normal file
@ -0,0 +1,34 @@
|
||||
// Copyright 2008 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.
|
||||
|
||||
// This file is a subset of the number-tostring mjsunit tests which test
|
||||
// precision for base conversion for large integers.
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
// toString
|
||||
assertEquals("314404114120101444444424000000000000000",
|
||||
(1.2345e+27).toString(5));
|
@ -151,9 +151,6 @@ assertEquals("10000", (81).toString(3));
|
||||
assertEquals("10000.01", (81 + 1/9).toString(3));
|
||||
assertEquals("0.0212010212010212010212010212010212", (2/7).toString(3));
|
||||
|
||||
assertEquals("314404114120101444444424000000000000000",
|
||||
(1.2345e+27).toString(5));
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
// toFixed
|
||||
assertEquals("NaN", (NaN).toFixed(2));
|
||||
|
Loading…
Reference in New Issue
Block a user