| Index: src/mips/stub-cache-mips.cc | 
| diff --git a/src/mips/stub-cache-mips.cc b/src/mips/stub-cache-mips.cc | 
| index 97bd87202e456faf65aafb01f82efc1b5ef232fa..58452cad1b9902f24dcb5c104afa58da371094ee 100644 | 
| --- a/src/mips/stub-cache-mips.cc | 
| +++ b/src/mips/stub-cache-mips.cc | 
| @@ -374,26 +374,30 @@ void StubCompiler::GenerateLoadStringLength(MacroAssembler* masm, | 
| Register receiver, | 
| Register scratch1, | 
| Register scratch2, | 
| -                                            Label* miss) { | 
| +                                            Label* miss, | 
| +                                            bool support_wrappers) { | 
| Label check_wrapper; | 
|  | 
| // Check if the object is a string leaving the instance type in the | 
| // scratch1 register. | 
| -  GenerateStringCheck(masm, receiver, scratch1, scratch2, miss, &check_wrapper); | 
| +  GenerateStringCheck(masm, receiver, scratch1, scratch2, miss, | 
| +                      support_wrappers ? &check_wrapper : miss); | 
|  | 
| // Load length directly from the string. | 
| __ Ret(USE_DELAY_SLOT); | 
| __ lw(v0, FieldMemOperand(receiver, String::kLengthOffset)); | 
|  | 
| -  // Check if the object is a JSValue wrapper. | 
| -  __ bind(&check_wrapper); | 
| -  __ Branch(miss, ne, scratch1, Operand(JS_VALUE_TYPE)); | 
| +  if (support_wrappers) { | 
| +    // Check if the object is a JSValue wrapper. | 
| +    __ bind(&check_wrapper); | 
| +    __ Branch(miss, ne, scratch1, Operand(JS_VALUE_TYPE)); | 
|  | 
| -  // Unwrap the value and check if the wrapped value is a string. | 
| -  __ lw(scratch1, FieldMemOperand(receiver, JSValue::kValueOffset)); | 
| -  GenerateStringCheck(masm, scratch1, scratch2, scratch2, miss, miss); | 
| -  __ Ret(USE_DELAY_SLOT); | 
| -  __ lw(v0, FieldMemOperand(scratch1, String::kLengthOffset)); | 
| +    // Unwrap the value and check if the wrapped value is a string. | 
| +    __ lw(scratch1, FieldMemOperand(receiver, JSValue::kValueOffset)); | 
| +    GenerateStringCheck(masm, scratch1, scratch2, scratch2, miss, miss); | 
| +    __ Ret(USE_DELAY_SLOT); | 
| +    __ lw(v0, FieldMemOperand(scratch1, String::kLengthOffset)); | 
| +  } | 
| } | 
|  | 
|  | 
|  |