| Index: src/arm/full-codegen-arm.cc
 | 
| ===================================================================
 | 
| --- src/arm/full-codegen-arm.cc	(revision 7211)
 | 
| +++ 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());
 | 
| @@ -3805,7 +3804,11 @@
 | 
|  
 | 
|    // We need a second deoptimization point after loading the value
 | 
|    // in case evaluating the property load my have a side effect.
 | 
| -  PrepareForBailout(expr->increment(), TOS_REG);
 | 
| +  if (assign_type == VARIABLE) {
 | 
| +    PrepareForBailout(expr->expression(), TOS_REG);
 | 
| +  } else {
 | 
| +    PrepareForBailout(expr->increment(), TOS_REG);
 | 
| +  }
 | 
|  
 | 
|    // Call ToNumber only if operand is not a smi.
 | 
|    Label no_conversion;
 | 
| 
 |