| Index: src/isolate.cc
|
| diff --git a/src/isolate.cc b/src/isolate.cc
|
| index 3b1db444aaac972bb57c29a9db792d6330be158f..cc8c8b6739f2fd6b9739dbc98e699e693d5bcc62 100644
|
| --- a/src/isolate.cc
|
| +++ b/src/isolate.cc
|
| @@ -3169,6 +3169,24 @@
|
| 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) {}
|
|
|