Index: src/arm64/full-codegen-arm64.cc |
diff --git a/src/arm64/full-codegen-arm64.cc b/src/arm64/full-codegen-arm64.cc |
index 632ec5f44ed7236216dc699f340cfebc67bcd97d..171765dd02f9c9f3b2657070c1fe7ae38c29c11a 100644 |
--- a/src/arm64/full-codegen-arm64.cc |
+++ b/src/arm64/full-codegen-arm64.cc |
@@ -5363,6 +5363,8 @@ void FullCodeGenerator::EnterFinallyBlock() { |
__ Mov(x10, pending_message_obj); |
__ Ldr(x10, MemOperand(x10)); |
__ Push(x10); |
+ |
+ ClearPendingMessage(); |
} |
@@ -5387,6 +5389,16 @@ void FullCodeGenerator::ExitFinallyBlock() { |
} |
+void FullCodeGenerator::ClearPendingMessage() { |
+ DCHECK(!result_register().is(x10)); |
+ ExternalReference pending_message_obj = |
+ ExternalReference::address_of_pending_message_obj(isolate()); |
+ __ LoadRoot(x10, Heap::kTheHoleValueRootIndex); |
+ __ Mov(x13, pending_message_obj); |
+ __ Str(x10, MemOperand(x13)); |
+} |
+ |
+ |
#undef __ |