Index: src/ic.cc |
diff --git a/src/ic.cc b/src/ic.cc |
index f01c3d120af1fe6bd00647712ab0e4622b4bb761..2edcb373fe0d04b1a972d7e1d73e91150d7b6f34 100644 |
--- a/src/ic.cc |
+++ b/src/ic.cc |
@@ -1864,15 +1864,12 @@ RUNTIME_FUNCTION(MaybeObject*, SharedStoreIC_ExtendStorage) { |
FixedArray* new_storage = FixedArray::cast(result); |
- Object* to_store = value; |
- |
DescriptorArray* descriptors = transition->instance_descriptors(); |
PropertyDetails details = descriptors->GetDetails(transition->LastAdded()); |
- if (details.representation().IsDouble()) { |
- MaybeObject* maybe_storage = |
- isolate->heap()->AllocateHeapNumber(value->Number()); |
- if (!maybe_storage->To(&to_store)) return maybe_storage; |
- } |
+ Object* to_store; |
+ MaybeObject* maybe_storage = value->AllocateNewStorageFor( |
+ isolate->heap(), details.representation()); |
+ if (!maybe_storage->To(&to_store)) return maybe_storage; |
new_storage->set(old_storage->length(), to_store); |