Index: src/hydrogen.cc |
diff --git a/src/hydrogen.cc b/src/hydrogen.cc |
index e5270575e99303bfe4cf64e0b529c2c15022218a..f4185b6439f680d5c231e25cdfb4a4557617f900 100644 |
--- a/src/hydrogen.cc |
+++ b/src/hydrogen.cc |
@@ -6990,14 +6990,15 @@ void HOptimizedGraphBuilder::HandlePropertyAssignment(Assignment* expr) { |
// Keyed store. |
CHECK_ALIVE(VisitForValue(prop->key())); |
CHECK_ALIVE(VisitForValue(expr->value())); |
- HValue* value = Pop(); |
- HValue* key = Pop(); |
- HValue* object = Pop(); |
+ HValue* value = environment()->ExpressionStackAt(0); |
+ HValue* key = environment()->ExpressionStackAt(1); |
+ HValue* object = environment()->ExpressionStackAt(2); |
bool has_side_effects = false; |
HandleKeyedElementAccess(object, key, value, expr, expr->AssignmentId(), |
expr->position(), |
true, // is_store |
&has_side_effects); |
+ Drop(3); |
Push(value); |
AddSimulate(expr->AssignmentId(), REMOVABLE_SIMULATE); |
return ast_context()->ReturnValue(Pop()); |