| Index: src/arm64/code-stubs-arm64.cc
|
| diff --git a/src/arm64/code-stubs-arm64.cc b/src/arm64/code-stubs-arm64.cc
|
| index b31726458b181886c8b1f46460bd37039dfe045b..2dbe4302e8bd1608e2b2cf89738502d299f4294d 100644
|
| --- a/src/arm64/code-stubs-arm64.cc
|
| +++ b/src/arm64/code-stubs-arm64.cc
|
| @@ -1550,6 +1550,17 @@
|
| __ Ldrb(scratch, FieldMemOperand(function_map, Map::kBitFieldOffset));
|
| __ Tbnz(scratch, Map::kHasNonInstancePrototype, &slow_case);
|
|
|
| + // Ensure that {function} is not bound.
|
| + Register const shared_info = scratch;
|
| + Register const scratch_w = scratch.W();
|
| + __ Ldr(shared_info,
|
| + FieldMemOperand(function, JSFunction::kSharedFunctionInfoOffset));
|
| + // On 64-bit platforms, compiler hints field is not a smi. See definition of
|
| + // kCompilerHintsOffset in src/objects.h.
|
| + __ Ldr(scratch_w, FieldMemOperand(shared_info,
|
| + SharedFunctionInfo::kCompilerHintsOffset));
|
| + __ Tbnz(scratch_w, SharedFunctionInfo::kBoundFunction, &slow_case);
|
| +
|
| // Get the "prototype" (or initial map) of the {function}.
|
| __ Ldr(function_prototype,
|
| FieldMemOperand(function, JSFunction::kPrototypeOrInitialMapOffset));
|
|
|