Index: src/hydrogen.cc |
diff --git a/src/hydrogen.cc b/src/hydrogen.cc |
index 617a96fba6f144cc39b6f9e2e8ca0c8dc74b035a..1cc03d653723a6504595c5b60984fb024c767d71 100644 |
--- a/src/hydrogen.cc |
+++ b/src/hydrogen.cc |
@@ -10763,9 +10763,11 @@ void HOptimizedGraphBuilder::BuildEmitDeepCopy( |
AddInstruction(new(zone) HConstant(i, Representation::Integer32())); |
HInstruction* value_instruction = |
AddInstruction(new(zone) HLoadKeyed( |
- boilerplate_elements, key_constant, NULL, kind)); |
- AddInstruction(new(zone) HStoreKeyed( |
+ boilerplate_elements, key_constant, NULL, kind, |
+ ALLOW_RETURN_HOLE)); |
+ HInstruction* store = AddInstruction(new(zone) HStoreKeyed( |
object_elements, key_constant, value_instruction, kind)); |
+ store->ClearFlag(HValue::kDeoptimizeOnUndefined); |
} |
} else if (elements->IsFixedArray()) { |
Handle<FixedArray> fast_elements = Handle<FixedArray>::cast(elements); |
@@ -10788,7 +10790,8 @@ void HOptimizedGraphBuilder::BuildEmitDeepCopy( |
} else { |
HInstruction* value_instruction = |
AddInstruction(new(zone) HLoadKeyed( |
- boilerplate_elements, key_constant, NULL, kind)); |
+ boilerplate_elements, key_constant, NULL, kind, |
+ ALLOW_RETURN_HOLE)); |
AddInstruction(new(zone) HStoreKeyed( |
object_elements, key_constant, value_instruction, kind)); |
} |