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.