Index: src/deoptimizer.cc |
diff --git a/src/deoptimizer.cc b/src/deoptimizer.cc |
index dc9ffc51186be1c5535297c6adf77f9efbf922b1..f104e87f56b3e142676be25c635971727e60c8df 100644 |
--- a/src/deoptimizer.cc |
+++ b/src/deoptimizer.cc |
@@ -1683,9 +1683,10 @@ Handle<Object> Deoptimizer::MaterializeNextHeapObject() { |
Handle<Map> map = Handle<Map>::cast(MaterializeNextValue()); |
switch (map->instance_type()) { |
case HEAP_NUMBER_TYPE: { |
- Handle<HeapNumber> number = |
- Handle<HeapNumber>::cast(MaterializeNextValue()); |
- materialized_objects_->Add(number); |
+ Handle<HeapNumber> object = isolate_->factory()->NewHeapNumber(0.0); |
+ materialized_objects_->Add(object); |
+ Handle<Object> number = MaterializeNextValue(); |
+ object->set_value(number->Number()); |
materialization_value_index_ += kDoubleSize / kPointerSize - 1; |
break; |
} |