Index: src/compiler/ast-graph-builder.cc |
diff --git a/src/compiler/ast-graph-builder.cc b/src/compiler/ast-graph-builder.cc |
index da395edba8f061125dd5cea814d8cc54f30015db..a3318c7a9b87ee8ce4f678b5c610297cccd779a1 100644 |
--- a/src/compiler/ast-graph-builder.cc |
+++ b/src/compiler/ast-graph-builder.cc |
@@ -1809,12 +1809,16 @@ void AstGraphBuilder::VisitObjectLiteral(ObjectLiteral* expr) { |
} |
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; |
} |
@@ -1835,8 +1839,7 @@ void AstGraphBuilder::VisitObjectLiteral(ObjectLiteral* expr) { |
const Operator* op = |
javascript()->CallRuntime(Runtime::kDefineAccessorPropertyUnchecked); |
Node* call = NewNode(op, literal, name, getter, setter, attr); |
- // This should not lazy deopt on a new literal. |
- PrepareFrameState(call, BailoutId::None()); |
+ PrepareFrameState(call, it->second->bailout_id); |
} |
// Object literals have two parts. The "static" part on the left contains no |