| Index: src/compiler/bytecode-graph-builder.cc
|
| diff --git a/src/compiler/bytecode-graph-builder.cc b/src/compiler/bytecode-graph-builder.cc
|
| index 93a2971ed16837801609c32d5dbed6aee2bc28bd..865de43e4b214cd2223885937f02fe8556058f2d 100644
|
| --- a/src/compiler/bytecode-graph-builder.cc
|
| +++ b/src/compiler/bytecode-graph-builder.cc
|
| @@ -1252,9 +1252,10 @@ Node* BytecodeGraphBuilder::ProcessCallArguments(const Operator* call_op,
|
| return value;
|
| }
|
|
|
| -void BytecodeGraphBuilder::BuildCall(TailCallMode tail_call_mode) {
|
| +void BytecodeGraphBuilder::BuildCall(TailCallMode tail_call_mode,
|
| + ConvertReceiverMode receiver_hint) {
|
| PrepareEagerCheckpoint();
|
| - ConvertReceiverMode receiver_hint = ConvertReceiverMode::kAny;
|
| +
|
| Node* callee =
|
| environment()->LookupRegister(bytecode_iterator().GetRegisterOperand(0));
|
| interpreter::Register receiver = bytecode_iterator().GetRegisterOperand(1);
|
| @@ -1273,14 +1274,20 @@ void BytecodeGraphBuilder::BuildCall(TailCallMode tail_call_mode) {
|
| environment()->BindAccumulator(value, Environment::kAttachFrameState);
|
| }
|
|
|
| -void BytecodeGraphBuilder::VisitCall() { BuildCall(TailCallMode::kDisallow); }
|
| +void BytecodeGraphBuilder::VisitCall() {
|
| + BuildCall(TailCallMode::kDisallow, ConvertReceiverMode::kAny);
|
| +}
|
| +
|
| +void BytecodeGraphBuilder::VisitCallProperty() {
|
| + BuildCall(TailCallMode::kDisallow, ConvertReceiverMode::kNotNullOrUndefined);
|
| +}
|
|
|
| void BytecodeGraphBuilder::VisitTailCall() {
|
| TailCallMode tail_call_mode =
|
| bytecode_array_->GetIsolate()->is_tail_call_elimination_enabled()
|
| ? TailCallMode::kAllow
|
| : TailCallMode::kDisallow;
|
| - BuildCall(tail_call_mode);
|
| + BuildCall(tail_call_mode, ConvertReceiverMode::kAny);
|
| }
|
|
|
| void BytecodeGraphBuilder::VisitCallJSRuntime() {
|
|
|