| Index: src/hydrogen.cc
|
| diff --git a/src/hydrogen.cc b/src/hydrogen.cc
|
| index 66b040743746e500ef935bc00f12153124578945..93d77d1327ba84cf9a4af645c5ed26c5477123dc 100644
|
| --- a/src/hydrogen.cc
|
| +++ b/src/hydrogen.cc
|
| @@ -6084,6 +6084,11 @@ void HOptimizedGraphBuilder::VisitArrayLiteral(ArrayLiteral* expr) {
|
| isolate()->factory()->empty_string(),
|
| Runtime::FunctionForId(function_id),
|
| 3));
|
| +
|
| + // De-opt if elements kind changed from boilerplate_elements_kind.
|
| + Handle<Map> map = Handle<Map>(original_boilerplate_object->map(),
|
| + isolate());
|
| + AddInstruction(HCheckMaps::New(literal, map, zone()));
|
| }
|
|
|
| // The array is expected in the bailout environment during computation
|
| @@ -6423,7 +6428,8 @@ bool HOptimizedGraphBuilder::TryStorePolymorphicAsMonomorphic(
|
| AddInstruction(HCheckMaps::New(object, types, zone()));
|
| HInstruction* store;
|
| CHECK_ALIVE_OR_RETURN(
|
| - store = BuildStoreNamedField(object, name, value, types->at(0), &lookup),
|
| + store = BuildStoreNamedField(
|
| + object, name, value, types->at(count - 1), &lookup),
|
| true);
|
| Push(value);
|
| store->set_position(expr->position());
|
|
|