| Index: src/stub-cache-arm.cc
 | 
| ===================================================================
 | 
| --- src/stub-cache-arm.cc	(revision 502)
 | 
| +++ src/stub-cache-arm.cc	(working copy)
 | 
| @@ -209,10 +209,19 @@
 | 
|    Register reg =
 | 
|        __ CheckMaps(JSObject::cast(object), r1, holder, r3, r2, &miss);
 | 
|  
 | 
| -  // Get the properties array of the holder and get the function from the field.
 | 
| -  int offset = index * kPointerSize + Array::kHeaderSize;
 | 
| -  __ ldr(r1, FieldMemOperand(reg, JSObject::kPropertiesOffset));
 | 
| -  __ ldr(r1, FieldMemOperand(r1, offset));
 | 
| +  // Adjust for the number of properties stored in the holder.
 | 
| +  index -= holder->map()->inobject_properties();
 | 
| +  if (index < 0) {
 | 
| +    // Get the property straight out of the holder.
 | 
| +    int offset = holder->map()->instance_size() + (index * kPointerSize);
 | 
| +    __ ldr(r1, FieldMemOperand(reg, offset));
 | 
| +  } else {
 | 
| +    // Get the properties array of the holder and get the function from
 | 
| +    // the field.
 | 
| +    int offset = index * kPointerSize + Array::kHeaderSize;
 | 
| +    __ ldr(r1, FieldMemOperand(reg, JSObject::kPropertiesOffset));
 | 
| +    __ ldr(r1, FieldMemOperand(r1, offset));
 | 
| +  }
 | 
|  
 | 
|    // Check that the function really is a function.
 | 
|    __ tst(r1, Operand(kSmiTagMask));
 | 
| 
 |