Index: src/ia32/ic-ia32.cc |
diff --git a/src/ia32/ic-ia32.cc b/src/ia32/ic-ia32.cc |
index 0b7c4a828bce881c03ed05d44cfbf3943e103164..4539332a19c50c56de1417ca2f5114a2ab48e842 100644 |
--- a/src/ia32/ic-ia32.cc |
+++ b/src/ia32/ic-ia32.cc |
@@ -874,11 +874,12 @@ void KeyedStoreIC::GenerateGeneric(MacroAssembler* masm, |
__ JumpIfSmi(edx, &slow); |
// Get the map from the receiver. |
__ mov(edi, FieldOperand(edx, 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. |
__ test_b(FieldOperand(edi, Map::kBitFieldOffset), |
- 1 << Map::kIsAccessCheckNeeded); |
+ 1 << Map::kIsAccessCheckNeeded | 1 << Map::kIsObserved); |
__ j(not_zero, &slow); |
+ |
danno
2013/11/08 14:43:43
nit: remove this whitespace change, it seems to on
rafaelw
2013/11/08 14:53:48
Done.
rafaelw
2013/11/08 14:53:48
Done.
|
// Check that the key is a smi. |
__ JumpIfNotSmi(ecx, &slow); |
__ CmpInstanceType(edi, JS_ARRAY_TYPE); |