Index: src/compiler/js-intrinsic-lowering.cc |
diff --git a/src/compiler/js-intrinsic-lowering.cc b/src/compiler/js-intrinsic-lowering.cc |
index 379f8b7490263f3cd872a1c8ca3fc0e91850f28f..1a85ae36cdfeb59c5328e0b57d0222f31da64f8b 100644 |
--- a/src/compiler/js-intrinsic-lowering.cc |
+++ b/src/compiler/js-intrinsic-lowering.cc |
@@ -111,6 +111,8 @@ Reduction JSIntrinsicLowering::Reduce(Node* node) { |
return ReduceThrowNotDateError(node); |
case Runtime::kInlineCall: |
return ReduceCall(node); |
+ case Runtime::kInlineTailCall: |
+ return ReduceTailCall(node); |
default: |
break; |
} |
@@ -608,6 +610,16 @@ Reduction JSIntrinsicLowering::ReduceCall(Node* node) { |
NodeProperties::ChangeOp( |
node, javascript()->CallFunction(arity, STRICT, VectorSlotPair(), |
ConvertReceiverMode::kAny, |
+ TailCallMode::kDisallow)); |
+ return Changed(node); |
+} |
+ |
+ |
+Reduction JSIntrinsicLowering::ReduceTailCall(Node* node) { |
+ size_t const arity = CallRuntimeParametersOf(node->op()).arity(); |
+ NodeProperties::ChangeOp( |
+ node, javascript()->CallFunction(arity, STRICT, VectorSlotPair(), |
+ ConvertReceiverMode::kAny, |
TailCallMode::kAllow)); |
return Changed(node); |
} |