Index: src/heap.cc |
diff --git a/src/heap.cc b/src/heap.cc |
index 3fac6018b02a2f4db95a9aa1ba5a5025de275a37..b1ccc8db3acbe5985c99cbd6a7455baee620e74b 100644 |
--- a/src/heap.cc |
+++ b/src/heap.cc |
@@ -2854,9 +2854,9 @@ MaybeObject* Heap::AllocateCell(Object* value) { |
MaybeObject* Heap::AllocatePropertyCell(Object* value) { |
Object* result; |
- { MaybeObject* maybe_result = AllocateRawPropertyCell(); |
- if (!maybe_result->ToObject(&result)) return maybe_result; |
- } |
+ MaybeObject* maybe_result = AllocateRawPropertyCell(); |
+ if (!maybe_result->ToObject(&result)) return maybe_result; |
+ |
HeapObject::cast(result)->set_map_no_write_barrier( |
global_property_cell_map()); |
PropertyCell* cell = PropertyCell::cast(result); |
@@ -2864,6 +2864,8 @@ MaybeObject* Heap::AllocatePropertyCell(Object* value) { |
SKIP_WRITE_BARRIER); |
cell->set_value(value); |
cell->set_type(Type::None()); |
+ maybe_result = cell->SetValueInferType(value); |
+ if (maybe_result->IsFailure()) return maybe_result; |
return result; |
} |