| Index: src/api.cc
|
| diff --git a/src/api.cc b/src/api.cc
|
| index c7bc0741a8b93c59e194360c31945a17fa50c2f1..fb367de4914ca5321613f17cc3319dfaef1d0fb1 100644
|
| --- a/src/api.cc
|
| +++ b/src/api.cc
|
| @@ -1851,6 +1851,12 @@ v8::TryCatch::~TryCatch() {
|
| reinterpret_cast<Isolate*>(isolate_)->ThrowException(exc);
|
| ASSERT(!isolate_->thread_local_top()->rethrowing_message_);
|
| } else {
|
| + if (HasCaught() && isolate_->has_scheduled_exception()) {
|
| + // If an exception was caught but is still scheduled because no API call
|
| + // promoted it, then it is canceled to prevent it from being propagated.
|
| + // Note that this will not cancel termination exceptions.
|
| + isolate_->CancelScheduledExceptionFromTryCatch(this);
|
| + }
|
| isolate_->UnregisterTryCatchHandler(this);
|
| v8::internal::SimulatorStack::UnregisterCTryCatch();
|
| }
|
|
|