Index: src/arm/ic-arm.cc |
diff --git a/src/arm/ic-arm.cc b/src/arm/ic-arm.cc |
index d5a700cd9f91e83f9601dac1a5cd3ee395793da5..eab4c6e8ed82c5555cb3aaf690a49f91a92ebe21 100644 |
--- a/src/arm/ic-arm.cc |
+++ b/src/arm/ic-arm.cc |
@@ -1584,8 +1584,9 @@ void KeyedLoadIC::GenerateIndexedInterceptor(MacroAssembler* masm) { |
// Check that the receiver isn't a smi. |
__ BranchOnSmi(r1, &slow); |
- // Check that the key is a smi. |
- __ BranchOnNotSmi(r0, &slow); |
+ // Check that the key is an array index, that is Uint32. |
+ __ tst(r0, Operand(kSmiTagMask | kSmiSignMask)); |
+ __ b(ne, &slow); |
// Get the map of the receiver. |
__ ldr(r2, FieldMemOperand(r1, HeapObject::kMapOffset)); |