Index: src/isolate.cc |
diff --git a/src/isolate.cc b/src/isolate.cc |
index 7a761b68a5e1a86c618ed02bbc6bde1ac674922f..57809ce4f9b598116641fabb1947a685956458f7 100644 |
--- a/src/isolate.cc |
+++ b/src/isolate.cc |
@@ -1062,9 +1062,12 @@ void Isolate::ScheduleThrow(Object* exception) { |
// When scheduling a throw we first throw the exception to get the |
// error reporting if it is uncaught before rescheduling it. |
Throw(exception); |
- thread_local_top()->scheduled_exception_ = pending_exception(); |
- thread_local_top()->external_caught_exception_ = false; |
- clear_pending_exception(); |
+ PropagatePendingExceptionToExternalTryCatch(); |
+ if (has_pending_exception()) { |
+ thread_local_top()->scheduled_exception_ = pending_exception(); |
+ thread_local_top()->external_caught_exception_ = false; |
+ clear_pending_exception(); |
+ } |
} |