Created
April 19, 2013 14:51
-
-
Save dmitris/5420842 to your computer and use it in GitHub Desktop.
v8 patch for std::isnan
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc | |
index acc47b9..9d05c0f 100644 | |
--- a/test/cctest/test-api.cc | |
+++ b/test/cctest/test-api.cc | |
@@ -3344,7 +3344,7 @@ THREADED_TEST(ConversionException) { | |
CheckUncle(&try_catch); | |
double number_value = obj->NumberValue(); | |
- CHECK_NE(0, isnan(number_value)); | |
+ CHECK_NE(0, std::isnan(number_value)); | |
CheckUncle(&try_catch); | |
int64_t integer_value = obj->IntegerValue(); | |
@@ -15445,7 +15445,7 @@ static uint64_t DoubleToBits(double value) { | |
static double DoubleToDateTime(double input) { | |
double date_limit = 864e13; | |
- if (isnan(input) || input < -date_limit || input > date_limit) { | |
+ if (std::isnan(input) || input < -date_limit || input > date_limit) { | |
return i::OS::nan_value(); | |
} | |
return (input < 0) ? -(floor(-input)) : floor(input); | |
@@ -15506,7 +15506,7 @@ THREADED_TEST(QuietSignalingNaNs) { | |
// Check that Number::New preserves non-NaNs and quiets SNaNs. | |
v8::Handle<v8::Value> number = v8::Number::New(test_value); | |
double stored_number = number->NumberValue(); | |
- if (!isnan(test_value)) { | |
+ if (!std::isnan(test_value)) { | |
CHECK_EQ(test_value, stored_number); | |
} else { | |
uint64_t stored_bits = DoubleToBits(stored_number); | |
@@ -15525,7 +15525,7 @@ THREADED_TEST(QuietSignalingNaNs) { | |
v8::Handle<v8::Value> date = v8::Date::New(test_value); | |
double expected_stored_date = DoubleToDateTime(test_value); | |
double stored_date = date->NumberValue(); | |
- if (!isnan(expected_stored_date)) { | |
+ if (!std::isnan(expected_stored_date)) { | |
CHECK_EQ(expected_stored_date, stored_date); | |
} else { | |
uint64_t stored_bits = DoubleToBits(stored_date); | |
diff --git a/test/cctest/test-conversions.cc b/test/cctest/test-conversions.cc | |
index 4815b1b..651dc59 100644 | |
--- a/test/cctest/test-conversions.cc | |
+++ b/test/cctest/test-conversions.cc | |
@@ -81,10 +81,10 @@ TEST(MalformedOctal) { | |
CHECK_EQ(81.0, StringToDouble(&uc, "081", ALLOW_HEX | ALLOW_OCTALS)); | |
CHECK_EQ(78.0, StringToDouble(&uc, "078", ALLOW_HEX | ALLOW_OCTALS)); | |
- CHECK(isnan(StringToDouble(&uc, "07.7", ALLOW_HEX | ALLOW_OCTALS))); | |
- CHECK(isnan(StringToDouble(&uc, "07.8", ALLOW_HEX | ALLOW_OCTALS))); | |
- CHECK(isnan(StringToDouble(&uc, "07e8", ALLOW_HEX | ALLOW_OCTALS))); | |
- CHECK(isnan(StringToDouble(&uc, "07e7", ALLOW_HEX | ALLOW_OCTALS))); | |
+ CHECK(std::isnan(StringToDouble(&uc, "07.7", ALLOW_HEX | ALLOW_OCTALS))); | |
+ CHECK(std::isnan(StringToDouble(&uc, "07.8", ALLOW_HEX | ALLOW_OCTALS))); | |
+ CHECK(std::isnan(StringToDouble(&uc, "07e8", ALLOW_HEX | ALLOW_OCTALS))); | |
+ CHECK(std::isnan(StringToDouble(&uc, "07e7", ALLOW_HEX | ALLOW_OCTALS))); | |
CHECK_EQ(8.7, StringToDouble(&uc, "08.7", ALLOW_HEX | ALLOW_OCTALS)); | |
CHECK_EQ(8e7, StringToDouble(&uc, "08e7", ALLOW_HEX | ALLOW_OCTALS)); | |
@@ -123,9 +123,9 @@ TEST(TrailingJunk) { | |
TEST(NonStrDecimalLiteral) { | |
UnicodeCache uc; | |
- CHECK(isnan(StringToDouble(&uc, " ", NO_FLAGS, OS::nan_value()))); | |
- CHECK(isnan(StringToDouble(&uc, "", NO_FLAGS, OS::nan_value()))); | |
- CHECK(isnan(StringToDouble(&uc, " ", NO_FLAGS, OS::nan_value()))); | |
+ CHECK(std::isnan(StringToDouble(&uc, " ", NO_FLAGS, OS::nan_value()))); | |
+ CHECK(std::isnan(StringToDouble(&uc, "", NO_FLAGS, OS::nan_value()))); | |
+ CHECK(std::isnan(StringToDouble(&uc, " ", NO_FLAGS, OS::nan_value()))); | |
CHECK_EQ(0.0, StringToDouble(&uc, "", NO_FLAGS)); | |
CHECK_EQ(0.0, StringToDouble(&uc, " ", NO_FLAGS)); | |
} | |
@@ -140,8 +140,8 @@ TEST(IntegerStrLiteral) { | |
CHECK_EQ(-1.0, StringToDouble(&uc, "-1", NO_FLAGS)); | |
CHECK_EQ(-1.0, StringToDouble(&uc, " -1 ", NO_FLAGS)); | |
CHECK_EQ(1.0, StringToDouble(&uc, " +1 ", NO_FLAGS)); | |
- CHECK(isnan(StringToDouble(&uc, " - 1 ", NO_FLAGS))); | |
- CHECK(isnan(StringToDouble(&uc, " + 1 ", NO_FLAGS))); | |
+ CHECK(std::isnan(StringToDouble(&uc, " - 1 ", NO_FLAGS))); | |
+ CHECK(std::isnan(StringToDouble(&uc, " + 1 ", NO_FLAGS))); | |
CHECK_EQ(0.0, StringToDouble(&uc, "0e0", ALLOW_HEX | ALLOW_OCTALS)); | |
CHECK_EQ(0.0, StringToDouble(&uc, "0e1", ALLOW_HEX | ALLOW_OCTALS)); | |
diff --git a/test/cctest/test-heap.cc b/test/cctest/test-heap.cc | |
index 9aa839b..c0bd08a 100644 | |
--- a/test/cctest/test-heap.cc | |
+++ b/test/cctest/test-heap.cc | |
@@ -199,7 +199,7 @@ TEST(HeapObjects) { | |
// nan oddball checks | |
CHECK(heap->nan_value()->IsNumber()); | |
- CHECK(isnan(heap->nan_value()->Number())); | |
+ CHECK(std::isnan(heap->nan_value()->Number())); | |
Handle<String> s = FACTORY->NewStringFromAscii(CStrVector("fisk hest ")); | |
CHECK(s->IsString()); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment