| Index: src/isolate.cc
|
| diff --git a/src/isolate.cc b/src/isolate.cc
|
| index 06df1f67c25bc380097c2cc8ca471105ec65b071..82eb6f3d99fae80ef68e951662466a97c5f85d58 100644
|
| --- a/src/isolate.cc
|
| +++ b/src/isolate.cc
|
| @@ -69,7 +69,7 @@ void ThreadLocalTop::InitializeInternal() {
|
| js_entry_sp_ = NULL;
|
| external_callback_scope_ = NULL;
|
| current_vm_state_ = EXTERNAL;
|
| - try_catch_handler_address_ = NULL;
|
| + try_catch_handler_ = NULL;
|
| context_ = NULL;
|
| thread_id_ = ThreadId::Invalid();
|
| external_caught_exception_ = false;
|
| @@ -98,11 +98,6 @@ void ThreadLocalTop::Initialize() {
|
| }
|
|
|
|
|
| -v8::TryCatch* ThreadLocalTop::TryCatchHandler() {
|
| - return TRY_CATCH_FROM_ADDRESS(try_catch_handler_address());
|
| -}
|
| -
|
| -
|
| Thread::LocalStorageKey Isolate::isolate_key_;
|
| Thread::LocalStorageKey Isolate::thread_id_key_;
|
| Thread::LocalStorageKey Isolate::per_isolate_thread_data_key_;
|
| @@ -209,9 +204,9 @@ void Isolate::Iterate(ObjectVisitor* v, ThreadLocalTop* thread) {
|
| v->VisitPointer(BitCast<Object**>(&(thread->context_)));
|
| v->VisitPointer(&thread->scheduled_exception_);
|
|
|
| - for (v8::TryCatch* block = thread->TryCatchHandler();
|
| + for (v8::TryCatch* block = thread->try_catch_handler();
|
| block != NULL;
|
| - block = TRY_CATCH_FROM_ADDRESS(block->next_)) {
|
| + block = block->next_) {
|
| v->VisitPointer(BitCast<Object**>(&(block->exception_)));
|
| v->VisitPointer(BitCast<Object**>(&(block->message_obj_)));
|
| v->VisitPointer(BitCast<Object**>(&(block->message_script_)));
|
| @@ -266,23 +261,14 @@ bool Isolate::IsDeferredHandle(Object** handle) {
|
|
|
|
|
| void Isolate::RegisterTryCatchHandler(v8::TryCatch* that) {
|
| - // The ARM simulator has a separate JS stack. We therefore register
|
| - // the C++ try catch handler with the simulator and get back an
|
| - // address that can be used for comparisons with addresses into the
|
| - // JS stack. When running without the simulator, the address
|
| - // returned will be the address of the C++ try catch handler itself.
|
| - Address address = reinterpret_cast<Address>(
|
| - SimulatorStack::RegisterCTryCatch(reinterpret_cast<uintptr_t>(that)));
|
| - thread_local_top()->set_try_catch_handler_address(address);
|
| + thread_local_top()->set_try_catch_handler(that);
|
| }
|
|
|
|
|
| void Isolate::UnregisterTryCatchHandler(v8::TryCatch* that) {
|
| - ASSERT(thread_local_top()->TryCatchHandler() == that);
|
| - thread_local_top()->set_try_catch_handler_address(
|
| - reinterpret_cast<Address>(that->next_));
|
| + ASSERT(thread_local_top()->try_catch_handler() == that);
|
| + thread_local_top()->set_try_catch_handler(that->next_);
|
| thread_local_top()->catcher_ = NULL;
|
| - SimulatorStack::UnregisterCTryCatch();
|
| }
|
|
|
|
|
|
|