Index: src/arm/ic-arm.cc |
diff --git a/src/arm/ic-arm.cc b/src/arm/ic-arm.cc |
index 025a590f0cba202b9636b88d03626deea2e371b6..a3b2a6e2a19842e2c59584a70029a29c675a1360 100644 |
--- a/src/arm/ic-arm.cc |
+++ b/src/arm/ic-arm.cc |
@@ -1432,10 +1432,10 @@ void KeyedStoreIC::GenerateGeneric(MacroAssembler* masm, |
__ JumpIfSmi(receiver, &slow); |
// Get the map of the object. |
__ ldr(receiver_map, FieldMemOperand(receiver, 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. |
__ ldrb(ip, FieldMemOperand(receiver_map, Map::kBitFieldOffset)); |
- __ tst(ip, Operand(1 << Map::kIsAccessCheckNeeded)); |
+ __ tst(ip, Operand(1 << Map::kIsAccessCheckNeeded | 1 << Map::kIsObserved)); |
__ b(ne, &slow); |
// Check if the object is a JS array or not. |
__ ldrb(r4, FieldMemOperand(receiver_map, Map::kInstanceTypeOffset)); |