| Index: src/mips/macro-assembler-mips.cc
|
| diff --git a/src/mips/macro-assembler-mips.cc b/src/mips/macro-assembler-mips.cc
|
| index 2964fbc86c6effb1c67ebf500f1f37288ea07922..386e9a4a754c771028aa3d0424e0cfd62fca42d4 100644
|
| --- a/src/mips/macro-assembler-mips.cc
|
| +++ b/src/mips/macro-assembler-mips.cc
|
| @@ -3674,7 +3674,8 @@ void MacroAssembler::IsObjectJSStringType(Register object,
|
| void MacroAssembler::TryGetFunctionPrototype(Register function,
|
| Register result,
|
| Register scratch,
|
| - Label* miss) {
|
| + Label* miss,
|
| + bool miss_on_bound_function) {
|
| // Check that the receiver isn't a smi.
|
| JumpIfSmi(function, miss);
|
|
|
| @@ -3682,6 +3683,16 @@ void MacroAssembler::TryGetFunctionPrototype(Register function,
|
| GetObjectType(function, result, scratch);
|
| Branch(miss, ne, scratch, Operand(JS_FUNCTION_TYPE));
|
|
|
| + if (miss_on_bound_function) {
|
| + lw(scratch,
|
| + FieldMemOperand(function, JSFunction::kSharedFunctionInfoOffset));
|
| + lw(scratch,
|
| + FieldMemOperand(scratch, SharedFunctionInfo::kCompilerHintsOffset));
|
| + And(scratch, scratch,
|
| + Operand(Smi::FromInt(1 << SharedFunctionInfo::kBoundFunction)));
|
| + Branch(miss, ne, scratch, Operand(zero_reg));
|
| + }
|
| +
|
| // Make sure that the function has an instance prototype.
|
| Label non_instance;
|
| lbu(scratch, FieldMemOperand(result, Map::kBitFieldOffset));
|
|
|