Index: src/full-codegen/ia32/full-codegen-ia32.cc |
diff --git a/src/full-codegen/ia32/full-codegen-ia32.cc b/src/full-codegen/ia32/full-codegen-ia32.cc |
index fadcd7cb5dc91939afaf1cc45332aaeb9c1dc9bb..d974d418838780d0a7236a35d0314c6b6a134082 100644 |
--- a/src/full-codegen/ia32/full-codegen-ia32.cc |
+++ b/src/full-codegen/ia32/full-codegen-ia32.cc |
@@ -934,14 +934,14 @@ void FullCodeGenerator::VisitForInStatement(ForInStatement* stmt) { |
FeedbackVectorSlot slot = stmt->ForInFeedbackSlot(); |
- Label loop, exit; |
- ForIn loop_statement(this, stmt); |
- increment_loop_depth(); |
- |
// Get the object to enumerate over. |
SetExpressionAsStatementPosition(stmt->enumerable()); |
VisitForAccumulatorValue(stmt->enumerable()); |
- OperandStackDepthIncrement(ForIn::kElementCount); |
+ OperandStackDepthIncrement(5); |
+ |
+ Label loop, exit; |
+ Iteration loop_statement(this, stmt); |
+ increment_loop_depth(); |
// If the object is null or undefined, skip over the loop, otherwise convert |
// it to a JS receiver. See ECMA-262 version 5, section 12.6.4. |
@@ -1089,8 +1089,7 @@ void FullCodeGenerator::VisitForInStatement(ForInStatement* stmt) { |
// Remove the pointers stored on the stack. |
__ bind(loop_statement.break_label()); |
- __ add(esp, Immediate(5 * kPointerSize)); |
- OperandStackDepthDecrement(ForIn::kElementCount); |
+ DropOperands(5); |
// Exit and decrement the loop depth. |
PrepareForBailoutForId(stmt->ExitId(), NO_REGISTERS); |