Index: src/isolate.cc |
diff --git a/src/isolate.cc b/src/isolate.cc |
index 34e4d007f8ff73c771830b5375da56437e379790..23782cd1cfc1405557277a05976de7cf501d1a43 100644 |
--- a/src/isolate.cc |
+++ b/src/isolate.cc |
@@ -990,8 +990,6 @@ Object* Isolate::Throw(Object* exception, MessageLocation* location) { |
thread_local_top()->pending_message_obj_ = *message_obj; |
thread_local_top()->pending_message_script_ = *location->script(); |
- thread_local_top()->pending_message_start_pos_ = location->start_pos(); |
- thread_local_top()->pending_message_end_pos_ = location->end_pos(); |
// If the abort-on-uncaught-exception flag is specified, abort on any |
// exception not caught by JavaScript, even when an external handler is |
@@ -1168,8 +1166,6 @@ void Isolate::RestorePendingMessageFromTryCatch(v8::TryCatch* handler) { |
DCHECK(script->IsScript() || script->IsTheHole()); |
thread_local_top()->pending_message_obj_ = message; |
thread_local_top()->pending_message_script_ = script; |
- thread_local_top()->pending_message_start_pos_ = handler->message_start_pos_; |
- thread_local_top()->pending_message_end_pos_ = handler->message_end_pos_; |
} |
@@ -1448,13 +1444,13 @@ void Isolate::ReportPendingMessages() { |
thread_local_top_.has_pending_message_ = false; |
if (!thread_local_top_.pending_message_obj_->IsTheHole()) { |
HandleScope scope(this); |
- Handle<Object> message_obj(thread_local_top_.pending_message_obj_, |
- this); |
+ Handle<JSMessageObject> message_obj( |
+ JSMessageObject::cast(thread_local_top_.pending_message_obj_)); |
if (!thread_local_top_.pending_message_script_->IsTheHole()) { |
Handle<Script> script( |
Script::cast(thread_local_top_.pending_message_script_)); |
- int start_pos = thread_local_top_.pending_message_start_pos_; |
- int end_pos = thread_local_top_.pending_message_end_pos_; |
+ int start_pos = message_obj->start_position(); |
+ int end_pos = message_obj->end_position(); |
MessageLocation location(script, start_pos, end_pos); |
MessageHandler::ReportMessage(this, &location, message_obj); |
} else { |
@@ -1473,10 +1469,12 @@ MessageLocation Isolate::GetMessageLocation() { |
if (thread_local_top_.pending_exception_ != heap()->termination_exception() && |
thread_local_top_.has_pending_message_ && |
!thread_local_top_.pending_message_obj_->IsTheHole()) { |
+ Handle<JSMessageObject> message_obj( |
+ JSMessageObject::cast(thread_local_top_.pending_message_obj_)); |
Handle<Script> script( |
Script::cast(thread_local_top_.pending_message_script_)); |
- int start_pos = thread_local_top_.pending_message_start_pos_; |
- int end_pos = thread_local_top_.pending_message_end_pos_; |
+ int start_pos = message_obj->start_position(); |
+ int end_pos = message_obj->end_position(); |
return MessageLocation(script, start_pos, end_pos); |
} |
@@ -2000,8 +1998,6 @@ bool Isolate::PropagatePendingExceptionToExternalTryCatch() { |
handler->message_obj_ = thread_local_top_.pending_message_obj_; |
handler->message_script_ = thread_local_top_.pending_message_script_; |
- handler->message_start_pos_ = thread_local_top_.pending_message_start_pos_; |
- handler->message_end_pos_ = thread_local_top_.pending_message_end_pos_; |
} |
return true; |
} |