Index: src/arm64/lithium-arm64.cc |
diff --git a/src/arm64/lithium-arm64.cc b/src/arm64/lithium-arm64.cc |
index 5e0be05f76c79a07aca5371d3827b4d76d1d2986..3eb2778764796335a88dd7b28ddd998339006cde 100644 |
--- a/src/arm64/lithium-arm64.cc |
+++ b/src/arm64/lithium-arm64.cc |
@@ -2246,7 +2246,13 @@ LInstruction* LChunkBuilder::DoStoreNamedField(HStoreNamedField* instr) { |
temp0 = TempRegister(); |
} |
- return new(zone()) LStoreNamedField(object, value, temp0, temp1); |
+ LStoreNamedField* result = |
+ new(zone()) LStoreNamedField(object, value, temp0, temp1); |
+ if (instr->field_representation().IsHeapObject() && |
+ !instr->value()->type().IsHeapObject()) { |
+ return AssignEnvironment(result); |
+ } |
+ return result; |
} |