Index: src/x64/full-codegen-x64.cc |
diff --git a/src/x64/full-codegen-x64.cc b/src/x64/full-codegen-x64.cc |
index 6e26e7670cfc357883b16fb55d0f6bf77b7f55db..9878deb43639b98551fa71f5bf205926bd4ffa4a 100644 |
--- a/src/x64/full-codegen-x64.cc |
+++ b/src/x64/full-codegen-x64.cc |
@@ -5295,6 +5295,8 @@ void FullCodeGenerator::EnterFinallyBlock() { |
ExternalReference::address_of_pending_message_obj(isolate()); |
__ Load(rdx, pending_message_obj); |
__ Push(rdx); |
+ |
+ ClearPendingMessage(); |
} |
@@ -5319,6 +5321,15 @@ void FullCodeGenerator::ExitFinallyBlock() { |
} |
+void FullCodeGenerator::ClearPendingMessage() { |
+ DCHECK(!result_register().is(rdx)); |
+ ExternalReference pending_message_obj = |
+ ExternalReference::address_of_pending_message_obj(isolate()); |
+ __ LoadRoot(rdx, Heap::kTheHoleValueRootIndex); |
+ __ Store(pending_message_obj, rdx); |
+} |
+ |
+ |
#undef __ |