| Index: src/isolate.cc
|
| diff --git a/src/isolate.cc b/src/isolate.cc
|
| index cbbfeb9d9e1fed44556ff2abd7b05deaf1bf7201..b2353aeffb84f8b781aa35360d0e3cca89702c35 100644
|
| --- a/src/isolate.cc
|
| +++ b/src/isolate.cc
|
| @@ -3255,6 +3255,21 @@ bool StackLimitCheck::JsHasOverflowed(uintptr_t gap) const {
|
| return GetCurrentStackPosition() - gap < stack_guard->real_climit();
|
| }
|
|
|
| +SaveContext::SaveContext(Isolate* isolate)
|
| + : isolate_(isolate), prev_(isolate->save_context()) {
|
| + if (isolate->context() != NULL) {
|
| + context_ = Handle<Context>(isolate->context());
|
| + }
|
| + isolate->set_save_context(this);
|
| +
|
| + c_entry_fp_ = isolate->c_entry_fp(isolate->thread_local_top());
|
| +}
|
| +
|
| +SaveContext::~SaveContext() {
|
| + isolate_->set_context(context_.is_null() ? NULL : *context_);
|
| + isolate_->set_save_context(prev_);
|
| +}
|
| +
|
| #ifdef DEBUG
|
| AssertNoContextChange::AssertNoContextChange(Isolate* isolate)
|
| : isolate_(isolate), context_(isolate->context(), isolate) {}
|
|
|