Index: src/full-codegen/arm64/full-codegen-arm64.cc |
diff --git a/src/full-codegen/arm64/full-codegen-arm64.cc b/src/full-codegen/arm64/full-codegen-arm64.cc |
index 2603d981ab574b9596ccfd7ca1417f337ff90e38..b5b853d3660d6340bb8970d0665b65540da85af7 100644 |
--- a/src/full-codegen/arm64/full-codegen-arm64.cc |
+++ b/src/full-codegen/arm64/full-codegen-arm64.cc |
@@ -1454,12 +1454,16 @@ void FullCodeGenerator::VisitObjectLiteral(ObjectLiteral* expr) { |
break; |
case ObjectLiteral::Property::GETTER: |
if (property->emit_store()) { |
- accessor_table.lookup(key)->second->getter = property; |
+ AccessorTable::Iterator it = accessor_table.lookup(key); |
+ it->second->bailout_id = expr->GetIdForPropertySet(property_index); |
+ it->second->getter = property; |
} |
break; |
case ObjectLiteral::Property::SETTER: |
if (property->emit_store()) { |
- accessor_table.lookup(key)->second->setter = property; |
+ AccessorTable::Iterator it = accessor_table.lookup(key); |
+ it->second->bailout_id = expr->GetIdForPropertySet(property_index); |
+ it->second->setter = property; |
} |
break; |
} |
@@ -1470,14 +1474,15 @@ void FullCodeGenerator::VisitObjectLiteral(ObjectLiteral* expr) { |
for (AccessorTable::Iterator it = accessor_table.begin(); |
it != accessor_table.end(); |
++it) { |
- __ Peek(x10, 0); // Duplicate receiver. |
- PushOperand(x10); |
- VisitForStackValue(it->first); |
- EmitAccessor(it->second->getter); |
- EmitAccessor(it->second->setter); |
- __ Mov(x10, Smi::FromInt(NONE)); |
- PushOperand(x10); |
- CallRuntimeWithOperands(Runtime::kDefineAccessorPropertyUnchecked); |
+ __ Peek(x10, 0); // Duplicate receiver. |
+ PushOperand(x10); |
+ VisitForStackValue(it->first); |
+ EmitAccessor(it->second->getter); |
+ EmitAccessor(it->second->setter); |
+ __ Mov(x10, Smi::FromInt(NONE)); |
+ PushOperand(x10); |
+ CallRuntimeWithOperands(Runtime::kDefineAccessorPropertyUnchecked); |
+ PrepareForBailoutForId(it->second->bailout_id, BailoutState::NO_REGISTERS); |
} |
// Object literals have two parts. The "static" part on the left contains no |