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