Index: src/heap.cc |
diff --git a/src/heap.cc b/src/heap.cc |
index 5e760c3e6bbc853c79fc4c76e1aaae5871547618..61d39f50b9aa4eb897d466afc7c75daf68d41b8d 100644 |
--- a/src/heap.cc |
+++ b/src/heap.cc |
@@ -4181,7 +4181,7 @@ MaybeObject* Heap::AllocateJSObjectFromMap(Map* map, PretenureFlag pretenure) { |
InitializeJSObjectFromMap(JSObject::cast(obj), |
FixedArray::cast(properties), |
map); |
- ASSERT(JSObject::cast(obj)->HasFastSmiOrObjectElements()); |
+ ASSERT(JSObject::cast(obj)->HasFastElements()); |
return obj; |
} |
@@ -4246,7 +4246,8 @@ MaybeObject* Heap::AllocateJSArrayAndStorage( |
FixedArrayBase* elms; |
MaybeObject* maybe_elms = NULL; |
- if (elements_kind == FAST_DOUBLE_ELEMENTS) { |
+ if (elements_kind == FAST_DOUBLE_ELEMENTS || |
+ elements_kind == FAST_HOLEY_DOUBLE_ELEMENTS) { |
danno
2012/11/15 10:34:28
IsFastDoubleElementsKind(elements_kind)
|
if (mode == DONT_INITIALIZE_ARRAY_ELEMENTS) { |
maybe_elms = AllocateUninitializedFixedDoubleArray(capacity); |
} else { |
@@ -4273,13 +4274,14 @@ MaybeObject* Heap::AllocateJSArrayAndStorage( |
MaybeObject* Heap::AllocateJSArrayWithElements( |
FixedArrayBase* elements, |
ElementsKind elements_kind, |
+ int length, |
PretenureFlag pretenure) { |
MaybeObject* maybe_array = AllocateJSArray(elements_kind, pretenure); |
JSArray* array; |
if (!maybe_array->To(&array)) return maybe_array; |
array->set_elements(elements); |
- array->set_length(Smi::FromInt(elements->length())); |
+ array->set_length(Smi::FromInt(length)); |
array->ValidateElements(); |
return array; |
} |