Index: src/x64/ic-x64.cc |
diff --git a/src/x64/ic-x64.cc b/src/x64/ic-x64.cc |
index 721ae1d982aa9279dff7845b326da554459de690..fe8734caf47988adfa4c2ddb1c10c4b44e1af6b9 100644 |
--- a/src/x64/ic-x64.cc |
+++ b/src/x64/ic-x64.cc |
@@ -749,10 +749,10 @@ void KeyedStoreIC::GenerateGeneric(MacroAssembler* masm, |
__ JumpIfSmi(rdx, &slow_with_tagged_index); |
// Get the map from the receiver. |
__ movq(r9, FieldOperand(rdx, HeapObject::kMapOffset)); |
- // Check that the receiver does not require access checks. We need |
- // to do this because this generic stub does not perform map checks. |
+ // Check that the receiver does not require access checks and is not observed. |
+ // The generic stub does not perform map checks or handle observed objects. |
__ testb(FieldOperand(r9, Map::kBitFieldOffset), |
- Immediate(1 << Map::kIsAccessCheckNeeded)); |
+ Immediate(1 << Map::kIsAccessCheckNeeded | 1 << Map::kIsObserved)); |
__ j(not_zero, &slow_with_tagged_index); |
// Check that the key is a smi. |
__ JumpIfNotSmi(rcx, &slow_with_tagged_index); |