| 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));
|
|
|