Index: src/arm/code-stubs-arm.cc |
diff --git a/src/arm/code-stubs-arm.cc b/src/arm/code-stubs-arm.cc |
index 18f249b200078f1ad69d099fd6026a8d17568eb4..381eb1471c136bcdf4db425f880373a818077c08 100644 |
--- a/src/arm/code-stubs-arm.cc |
+++ b/src/arm/code-stubs-arm.cc |
@@ -1346,6 +1346,16 @@ |
__ tst(scratch, Operand(1 << Map::kHasNonInstancePrototype)); |
__ b(ne, &slow_case); |
+ // Ensure that {function} is not bound. |
+ Register const shared_info = scratch; |
+ __ ldr(shared_info, |
+ FieldMemOperand(function, JSFunction::kSharedFunctionInfoOffset)); |
+ __ ldr(scratch, FieldMemOperand(shared_info, |
+ SharedFunctionInfo::kCompilerHintsOffset)); |
+ __ tst(scratch, |
+ Operand(Smi::FromInt(1 << SharedFunctionInfo::kBoundFunction))); |
+ __ b(ne, &slow_case); |
+ |
// Get the "prototype" (or initial map) of the {function}. |
__ ldr(function_prototype, |
FieldMemOperand(function, JSFunction::kPrototypeOrInitialMapOffset)); |