Reviewers: Michael Starzinger, Yang,

Message:
PTAL

The change in https://codereview.chromium.org/576323004/ caused a Blink layout test to start failing due to an exception message being reported as having been thrown on a different (more correct) line. This patch causes the same change in
behavior as that Blink patch.

Description:
Preserve message when rethrowing exception

A new message was always generated if there is a the top-most verbose
TryCatch, even when rethrowing an exception from a TryCatch that is going
out of scope, and we already have a message.

BUG=v8:3583

Please review this at https://codereview.chromium.org/587703002/

SVN Base: https://chromium.googlesource.com/external/v8.git@master

Affected files (+3, -3 lines):
  M src/isolate.cc


Index: src/isolate.cc
diff --git a/src/isolate.cc b/src/isolate.cc
index 66733cb67514c5012a79c022875145f86e3f261b..a31a87740da43222a2cb32518865be875b24d799 100644
--- a/src/isolate.cc
+++ b/src/isolate.cc
@@ -1023,9 +1023,9 @@ void Isolate::DoThrow(Object* exception, MessageLocation* location) { ShouldReportException(&can_be_caught_externally, catchable_by_javascript); bool report_exception = catchable_by_javascript && should_report_exception;
   bool try_catch_needs_message =
-      can_be_caught_externally && try_catch_handler()->capture_message_ &&
-      !thread_local_top()->rethrowing_message_;
+      can_be_caught_externally && try_catch_handler()->capture_message_;
   bool bootstrapping = bootstrapper()->IsActive();
+  bool rethrowing_message = thread_local_top()->rethrowing_message_;

   thread_local_top()->rethrowing_message_ = false;

@@ -1035,7 +1035,7 @@ void Isolate::DoThrow(Object* exception, MessageLocation* location) {
   }

   // Generate the message if required.
-  if (report_exception || try_catch_needs_message) {
+ if (!rethrowing_message && (report_exception || try_catch_needs_message)) {
     MessageLocation potential_computed_location;
     if (location == NULL) {
       // If no location was specified we use a computed one instead.


--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to