Index: src/builtins.cc |
diff --git a/src/builtins.cc b/src/builtins.cc |
index 02a700574578e08a0deca80bdbddc6ea544be78e..a117e8af0b5a72bfd600d44c2d934305cc8c5ffe 100644 |
--- a/src/builtins.cc |
+++ b/src/builtins.cc |
@@ -5871,12 +5871,21 @@ Handle<Code> Builtins::CallBoundFunction(TailCallMode tail_call_mode) { |
return Handle<Code>::null(); |
} |
-Handle<Code> Builtins::InterpreterPushArgsAndCall(TailCallMode tail_call_mode) { |
+Handle<Code> Builtins::InterpreterPushArgsAndCall(TailCallMode tail_call_mode, |
+ bool is_js_function) { |
switch (tail_call_mode) { |
case TailCallMode::kDisallow: |
- return InterpreterPushArgsAndCall(); |
+ if (is_js_function) { |
+ return InterpreterPushArgsAndCallFunction(); |
+ } else { |
+ return InterpreterPushArgsAndCall(); |
+ } |
case TailCallMode::kAllow: |
- return InterpreterPushArgsAndTailCall(); |
+ if (is_js_function) { |
+ return InterpreterPushArgsAndTailCallFunction(); |
+ } else { |
+ return InterpreterPushArgsAndTailCall(); |
+ } |
} |
UNREACHABLE(); |
return Handle<Code>::null(); |