| Index: src/crankshaft/hydrogen.cc
|
| diff --git a/src/crankshaft/hydrogen.cc b/src/crankshaft/hydrogen.cc
|
| index 974621aa31e88ae7f0e2d3e2a00bb1ba7dcab912..214b65c676c61715545130222d7290e8a0d64c11 100644
|
| --- a/src/crankshaft/hydrogen.cc
|
| +++ b/src/crankshaft/hydrogen.cc
|
| @@ -6595,7 +6595,8 @@ HValue* HOptimizedGraphBuilder::BuildMonomorphicAccess(
|
| HValue* function = Add<HConstant>(info->accessor());
|
| PushArgumentsFromEnvironment(argument_count);
|
| return New<HCallFunction>(function, argument_count,
|
| - ConvertReceiverMode::kNotNullOrUndefined);
|
| + ConvertReceiverMode::kNotNullOrUndefined,
|
| + TailCallMode::kDisallow);
|
| } else if (FLAG_inline_accessors && can_inline_accessor) {
|
| bool success = info->IsLoad()
|
| ? TryInlineGetter(info->accessor(), info->map(), ast_id, return_id)
|
| @@ -8170,7 +8171,8 @@ void HOptimizedGraphBuilder::HandlePolymorphicCallNamed(Call* expr,
|
| HInstruction* call =
|
| needs_wrapping ? NewUncasted<HCallFunction>(
|
| function, argument_count,
|
| - ConvertReceiverMode::kNotNullOrUndefined)
|
| + ConvertReceiverMode::kNotNullOrUndefined,
|
| + expr->tail_call_mode())
|
| : BuildCallConstantFunction(target, argument_count);
|
| PushArgumentsFromEnvironment(argument_count);
|
| AddInstruction(call);
|
| @@ -8201,7 +8203,8 @@ void HOptimizedGraphBuilder::HandlePolymorphicCallNamed(Call* expr,
|
| CHECK_ALIVE(VisitExpressions(expr->arguments()));
|
|
|
| HInstruction* call = New<HCallFunction>(
|
| - function, argument_count, ConvertReceiverMode::kNotNullOrUndefined);
|
| + function, argument_count, ConvertReceiverMode::kNotNullOrUndefined,
|
| + expr->tail_call_mode());
|
|
|
| PushArgumentsFromEnvironment(argument_count);
|
|
|
| @@ -9728,7 +9731,8 @@ void HOptimizedGraphBuilder::VisitCall(Call* expr) {
|
| // TODO(verwaest): Support creation of value wrappers directly in
|
| // HWrapReceiver.
|
| call = New<HCallFunction>(function, argument_count,
|
| - ConvertReceiverMode::kNotNullOrUndefined);
|
| + ConvertReceiverMode::kNotNullOrUndefined,
|
| + expr->tail_call_mode());
|
| } else if (TryInlineCall(expr)) {
|
| return;
|
| } else {
|
| @@ -9752,7 +9756,8 @@ void HOptimizedGraphBuilder::VisitCall(Call* expr) {
|
|
|
| CHECK_ALIVE(VisitExpressions(expr->arguments(), arguments_flag));
|
| call = New<HCallFunction>(function, argument_count,
|
| - ConvertReceiverMode::kNotNullOrUndefined);
|
| + ConvertReceiverMode::kNotNullOrUndefined,
|
| + expr->tail_call_mode());
|
| }
|
| PushArgumentsFromEnvironment(argument_count);
|
|
|
| @@ -9803,7 +9808,8 @@ void HOptimizedGraphBuilder::VisitCall(Call* expr) {
|
| } else {
|
| PushArgumentsFromEnvironment(argument_count);
|
| HCallFunction* call_function = New<HCallFunction>(
|
| - function, argument_count, ConvertReceiverMode::kNullOrUndefined);
|
| + function, argument_count, ConvertReceiverMode::kNullOrUndefined,
|
| + expr->tail_call_mode());
|
| call = call_function;
|
| if (expr->is_uninitialized() &&
|
| expr->IsUsingCallFeedbackICSlot(isolate())) {
|
|
|