| Index: src/runtime.cc
|
| diff --git a/src/runtime.cc b/src/runtime.cc
|
| index a2e569b31ece4a2cc41fe69e885154c6ad34bc49..3550d3bb0d72c3fe05f2c3c9504dc0da4174d885 100644
|
| --- a/src/runtime.cc
|
| +++ b/src/runtime.cc
|
| @@ -625,6 +625,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_CreateArrayLiteralShallow) {
|
| // Check if boilerplate exists. If not, create it first.
|
| Handle<Object> boilerplate(literals->get(literals_index), isolate);
|
| if (*boilerplate == isolate->heap()->undefined_value()) {
|
| + ASSERT(*elements != isolate->heap()->empty_fixed_array());
|
| boilerplate = CreateArrayLiteralBoilerplate(isolate, literals, elements);
|
| if (boilerplate.is_null()) return Failure::Exception();
|
| // Update the functions literal and return the boilerplate.
|
| @@ -4651,6 +4652,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_StoreArrayLiteralElement) {
|
| if (value->IsNumber()) {
|
| ASSERT(elements_kind == FAST_SMI_ONLY_ELEMENTS);
|
| TransitionElementsKind(object, FAST_DOUBLE_ELEMENTS);
|
| + TransitionElementsKind(boilerplate_object, FAST_DOUBLE_ELEMENTS);
|
| ASSERT(object->GetElementsKind() == FAST_DOUBLE_ELEMENTS);
|
| FixedDoubleArray* double_array =
|
| FixedDoubleArray::cast(object->elements());
|
| @@ -4660,6 +4662,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_StoreArrayLiteralElement) {
|
| ASSERT(elements_kind == FAST_SMI_ONLY_ELEMENTS ||
|
| elements_kind == FAST_DOUBLE_ELEMENTS);
|
| TransitionElementsKind(object, FAST_ELEMENTS);
|
| + TransitionElementsKind(boilerplate_object, FAST_ELEMENTS);
|
| FixedArray* object_array =
|
| FixedArray::cast(object->elements());
|
| object_array->set(store_index, *value);
|
|
|