| Index: src/arm64/lithium-codegen-arm64.cc
 | 
| diff --git a/src/arm64/lithium-codegen-arm64.cc b/src/arm64/lithium-codegen-arm64.cc
 | 
| index 36605514b7041813ee4de3d6e9796794bc731e3a..8ffbbc5636f989a2a17f0d64568a1641302ebeed 100644
 | 
| --- a/src/arm64/lithium-codegen-arm64.cc
 | 
| +++ b/src/arm64/lithium-codegen-arm64.cc
 | 
| @@ -5320,7 +5320,11 @@ void LCodeGen::DoStoreNamedField(LStoreNamedField* instr) {
 | 
|      Register value = ToRegister(instr->value());
 | 
|      __ Store(value, MemOperand(object, offset), representation);
 | 
|      return;
 | 
| -  } else if (representation.IsDouble()) {
 | 
| +  }
 | 
| +
 | 
| +  __ AssertNotSmi(object);
 | 
| +
 | 
| +  if (representation.IsDouble()) {
 | 
|      ASSERT(access.IsInobject());
 | 
|      ASSERT(!instr->hydrogen()->has_transition());
 | 
|      ASSERT(!instr->hydrogen()->NeedsWriteBarrier());
 | 
| @@ -5331,19 +5335,9 @@ void LCodeGen::DoStoreNamedField(LStoreNamedField* instr) {
 | 
|  
 | 
|    Register value = ToRegister(instr->value());
 | 
|  
 | 
| -  SmiCheck check_needed = instr->hydrogen()->value()->IsHeapObject()
 | 
| -      ? OMIT_SMI_CHECK : INLINE_SMI_CHECK;
 | 
| -
 | 
| -  ASSERT(!(representation.IsSmi() &&
 | 
| -           instr->value()->IsConstantOperand() &&
 | 
| -           !IsInteger32Constant(LConstantOperand::cast(instr->value()))));
 | 
| -  if (representation.IsHeapObject() &&
 | 
| -      !instr->hydrogen()->value()->type().IsHeapObject()) {
 | 
| -    DeoptimizeIfSmi(value, instr->environment());
 | 
| -
 | 
| -    // We know now that value is not a smi, so we can omit the check below.
 | 
| -    check_needed = OMIT_SMI_CHECK;
 | 
| -  }
 | 
| +  ASSERT(!representation.IsSmi() ||
 | 
| +         !instr->value()->IsConstantOperand() ||
 | 
| +         IsInteger32Constant(LConstantOperand::cast(instr->value())));
 | 
|  
 | 
|    if (instr->hydrogen()->has_transition()) {
 | 
|      Handle<Map> transition = instr->hydrogen()->transition_map();
 | 
| @@ -5403,7 +5397,7 @@ void LCodeGen::DoStoreNamedField(LStoreNamedField* instr) {
 | 
|                          GetLinkRegisterState(),
 | 
|                          kSaveFPRegs,
 | 
|                          EMIT_REMEMBERED_SET,
 | 
| -                        check_needed);
 | 
| +                        instr->hydrogen()->SmiCheckForWriteBarrier());
 | 
|    }
 | 
|  }
 | 
|  
 | 
| 
 |