Index: src/runtime.cc |
diff --git a/src/runtime.cc b/src/runtime.cc |
index 80ea7f4b6f0f27dbad94b90799747017e69466b6..adf346cef7249c26df20136edeec166483cd4049 100644 |
--- a/src/runtime.cc |
+++ b/src/runtime.cc |
@@ -8711,8 +8711,14 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_CompileForOnStackReplacement) { |
function->PrintName(); |
PrintF("]\n"); |
} |
- StackCheckStub check_stub; |
- Handle<Code> check_code = check_stub.GetCode(); |
+ Handle<Code> check_code; |
+ if (FLAG_count_based_interrupts) { |
+ InterruptStub interrupt_stub; |
+ check_code = interrupt_stub.GetCode(); |
+ } else { |
+ StackCheckStub check_stub; |
+ check_code = check_stub.GetCode(); |
+ } |
Handle<Code> replacement_code = isolate->builtins()->OnStackReplacement(); |
Deoptimizer::RevertStackCheckCode(*unoptimized, |
*check_code, |
@@ -9266,6 +9272,12 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_StackGuard) { |
} |
+RUNTIME_FUNCTION(MaybeObject*, Runtime_Interrupt) { |
+ ASSERT(args.length() == 0); |
+ return Execution::HandleStackGuardInterrupt(); |
+} |
+ |
+ |
static int StackSize() { |
int n = 0; |
for (JavaScriptFrameIterator it; !it.done(); it.Advance()) n++; |