Index: src/compiler/js-intrinsic-lowering.cc |
diff --git a/src/compiler/js-intrinsic-lowering.cc b/src/compiler/js-intrinsic-lowering.cc |
index e377ba2b122a3b88ae77f6fda13a79fb890549c7..0779dd780ba3b230a52cefa9d95cbe71ab7e720d 100644 |
--- a/src/compiler/js-intrinsic-lowering.cc |
+++ b/src/compiler/js-intrinsic-lowering.cc |
@@ -114,6 +114,8 @@ Reduction JSIntrinsicLowering::Reduce(Node* node) { |
return ReduceThrowNotDateError(node); |
case Runtime::kInlineCall: |
return ReduceCall(node); |
+ case Runtime::kInlineTailCall: |
+ return ReduceTailCall(node); |
default: |
break; |
} |
@@ -652,6 +654,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); |
} |