Index: src/execution.h |
=================================================================== |
--- src/execution.h (revision 2758) |
+++ src/execution.h (working copy) |
@@ -175,6 +175,10 @@ |
#endif |
static void Continue(InterruptFlag after_what); |
+ static uintptr_t jslimit() { |
+ return thread_local_.jslimit_; |
+ } |
+ |
private: |
// You should hold the ExecutionAccess lock when calling this method. |
static bool IsSet(const ExecutionAccess& lock); |
@@ -188,6 +192,7 @@ |
// You should hold the ExecutionAccess lock when calling this method. |
static void set_limits(uintptr_t value, const ExecutionAccess& lock) { |
+ Heap::SetStackLimit(value); |
thread_local_.jslimit_ = value; |
thread_local_.climit_ = value; |
} |
@@ -200,6 +205,7 @@ |
set_limits(kIllegalLimit, lock); |
} else { |
thread_local_.jslimit_ = thread_local_.initial_jslimit_; |
+ Heap::SetStackLimit(thread_local_.jslimit_); |
thread_local_.climit_ = thread_local_.initial_climit_; |
} |
} |
@@ -226,7 +232,9 @@ |
climit_(kIllegalLimit), |
nesting_(0), |
postpone_interrupts_nesting_(0), |
- interrupt_flags_(0) {} |
+ interrupt_flags_(0) { |
+ Heap::SetStackLimit(kIllegalLimit); |
+ } |
uintptr_t initial_jslimit_; |
uintptr_t jslimit_; |
uintptr_t initial_climit_; |