| Index: src/arm/lithium-codegen-arm.cc | 
| diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc | 
| index f510c85c2c39bd52dad1d0d7f2d558c3ab9b6337..623a9dca452d8195ab26de7d5060f1a905978282 100644 | 
| --- a/src/arm/lithium-codegen-arm.cc | 
| +++ b/src/arm/lithium-codegen-arm.cc | 
| @@ -4097,12 +4097,32 @@ void LCodeGen::DoStoreNamedField(LStoreNamedField* instr) { | 
| } | 
| } else if (representation.IsDouble()) { | 
| ASSERT(access.IsInobject()); | 
| +    ASSERT(!instr->hydrogen()->has_transition()); | 
| ASSERT(!instr->hydrogen()->NeedsWriteBarrier()); | 
| DwVfpRegister value = ToDoubleRegister(instr->value()); | 
| __ vstr(value, FieldMemOperand(object, offset)); | 
| return; | 
| } | 
|  | 
| +  if (instr->hydrogen()->has_transition()) { | 
| +    Handle<Map> transition = instr->hydrogen()->transition_map(); | 
| +    AddDeprecationDependency(transition); | 
| +    __ mov(scratch, Operand(transition)); | 
| +    __ str(scratch, FieldMemOperand(object, HeapObject::kMapOffset)); | 
| +    if (instr->hydrogen()->NeedsWriteBarrierForMap()) { | 
| +      Register temp = ToRegister(instr->temp()); | 
| +      // Update the write barrier for the map field. | 
| +      __ RecordWriteField(object, | 
| +                          HeapObject::kMapOffset, | 
| +                          scratch, | 
| +                          temp, | 
| +                          GetLinkRegisterState(), | 
| +                          kSaveFPRegs, | 
| +                          OMIT_REMEMBERED_SET, | 
| +                          OMIT_SMI_CHECK); | 
| +    } | 
| +  } | 
| + | 
| // Do the store. | 
| Register value = ToRegister(instr->value()); | 
| if (access.IsInobject()) { | 
|  |