| 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 be6cd690fb79a2f7ff6d83091c1dc21bca38f972..7848d0d3cb7b5378a91c71a1f39285daa23a1f4f 100644
|
| --- a/src/full-codegen/arm64/full-codegen-arm64.cc
|
| +++ b/src/full-codegen/arm64/full-codegen-arm64.cc
|
| @@ -1462,12 +1462,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;
|
| }
|
| @@ -1478,14 +1482,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
|
|
|