Index: src/arm/ic-arm.cc |
diff --git a/src/arm/ic-arm.cc b/src/arm/ic-arm.cc |
index aded4c1dd8b7f8d0beedafd5cc16919834b3fba6..92cdf1e76a804e593461096d8e2da7851c89833e 100644 |
--- a/src/arm/ic-arm.cc |
+++ b/src/arm/ic-arm.cc |
@@ -1408,6 +1408,11 @@ void KeyedStoreIC::GenerateGeneric(MacroAssembler* masm, |
__ ldrb(ip, FieldMemOperand(receiver_map, Map::kBitFieldOffset)); |
__ tst(ip, Operand(1 << Map::kIsAccessCheckNeeded)); |
__ b(ne, &slow); |
+ // Check that the receiver is not observed. Observed objects are always |
+ // handled by the runtime. |
+ __ ldrb(ip, FieldMemOperand(receiver_map, Map::kBitFieldOffset)); |
+ __ tst(ip, Operand(1 << Map::kIsObserved)); |
danno
2013/11/06 15:25:11
Here and other platforms, just or this into the co
rafaelw
2013/11/07 15:45:07
Done.
|
+ __ b(ne, &slow); |
// Check if the object is a JS array or not. |
__ ldrb(r4, FieldMemOperand(receiver_map, Map::kInstanceTypeOffset)); |
__ cmp(r4, Operand(JS_ARRAY_TYPE)); |