Index: src/heap/heap.cc |
diff --git a/src/heap/heap.cc b/src/heap/heap.cc |
index 36034200a6d74a434839362ceaa9cb57902e1e92..5e77e06b35f4cc49e66a8cfc80c7ca2c85d77119 100644 |
--- a/src/heap/heap.cc |
+++ b/src/heap/heap.cc |
@@ -2415,8 +2415,7 @@ bool Heap::CreateInitialMaps() { |
return true; |
} |
- |
-AllocationResult Heap::AllocateHeapNumber(double value, MutableMode mode, |
+AllocationResult Heap::AllocateHeapNumber(MutableMode mode, |
PretenureFlag pretenure) { |
// Statically ensure that it is safe to allocate heap numbers in paged |
// spaces. |
@@ -2433,7 +2432,6 @@ AllocationResult Heap::AllocateHeapNumber(double value, MutableMode mode, |
Map* map = mode == MUTABLE ? mutable_heap_number_map() : heap_number_map(); |
HeapObject::cast(result)->set_map_no_write_barrier(map); |
- HeapNumber::cast(result)->set_value(value); |
return result; |
} |
@@ -2600,8 +2598,11 @@ void Heap::CreateInitialObjects() { |
set_nan_value(*factory->NewHeapNumber( |
std::numeric_limits<double>::quiet_NaN(), IMMUTABLE, TENURED)); |
- set_hole_nan_value(*factory->NewHeapNumber(bit_cast<double>(kHoleNanInt64), |
- IMMUTABLE, TENURED)); |
+ { |
+ Handle<HeapNumber> value = factory->NewHeapNumber(0.0, IMMUTABLE, TENURED); |
+ value->set_value_as_bits(kHoleNanInt64); |
+ set_hole_nan_value(*value); |
+ } |
set_infinity_value(*factory->NewHeapNumber(V8_INFINITY, IMMUTABLE, TENURED)); |
set_minus_infinity_value( |
*factory->NewHeapNumber(-V8_INFINITY, IMMUTABLE, TENURED)); |