| Index: src/arm/full-codegen-arm.cc
 | 
| ===================================================================
 | 
| --- src/arm/full-codegen-arm.cc	(revision 7187)
 | 
| +++ src/arm/full-codegen-arm.cc	(working copy)
 | 
| @@ -1604,27 +1604,26 @@
 | 
|        break;
 | 
|    }
 | 
|  
 | 
| +  // For compound assignments we need another deoptimization point after the
 | 
| +  // variable/property load.
 | 
|    if (expr->is_compound()) {
 | 
|      { AccumulatorValueContext context(this);
 | 
|        switch (assign_type) {
 | 
|          case VARIABLE:
 | 
|            EmitVariableLoad(expr->target()->AsVariableProxy()->var());
 | 
| +          PrepareForBailout(expr->target(), TOS_REG);
 | 
|            break;
 | 
|          case NAMED_PROPERTY:
 | 
|            EmitNamedPropertyLoad(property);
 | 
| +          PrepareForBailoutForId(expr->CompoundLoadId(), TOS_REG);
 | 
|            break;
 | 
|          case KEYED_PROPERTY:
 | 
|            EmitKeyedPropertyLoad(property);
 | 
| +          PrepareForBailoutForId(expr->CompoundLoadId(), TOS_REG);
 | 
|            break;
 | 
|        }
 | 
|      }
 | 
|  
 | 
| -    // For property compound assignments we need another deoptimization
 | 
| -    // point after the property load.
 | 
| -    if (property != NULL) {
 | 
| -      PrepareForBailoutForId(expr->CompoundLoadId(), TOS_REG);
 | 
| -    }
 | 
| -
 | 
|      Token::Value op = expr->binary_op();
 | 
|      __ push(r0);  // Left operand goes on the stack.
 | 
|      VisitForAccumulatorValue(expr->value());
 | 
| @@ -3776,6 +3775,7 @@
 | 
|      ASSERT(expr->expression()->AsVariableProxy()->var() != NULL);
 | 
|      AccumulatorValueContext context(this);
 | 
|      EmitVariableLoad(expr->expression()->AsVariableProxy()->var());
 | 
| +    PrepareForBailout(expr->expression(), TOS_REG);
 | 
|    } else {
 | 
|      // Reserve space for result of postfix operation.
 | 
|      if (expr->is_postfix() && !context()->IsEffect()) {
 | 
| 
 |