Index: src/arm/full-codegen-arm.cc |
diff --git a/src/arm/full-codegen-arm.cc b/src/arm/full-codegen-arm.cc |
index 9d626a6a47d3d1258ccd6da4c28e3e952e5e49ff..d3eb1d111e989a1637b70dddc41f72eaabac7ab0 100644 |
--- a/src/arm/full-codegen-arm.cc |
+++ b/src/arm/full-codegen-arm.cc |
@@ -5352,6 +5352,8 @@ void FullCodeGenerator::EnterFinallyBlock() { |
__ mov(ip, Operand(pending_message_obj)); |
__ ldr(r1, MemOperand(ip)); |
__ push(r1); |
+ |
+ ClearPendingMessage(); |
} |
@@ -5374,6 +5376,16 @@ void FullCodeGenerator::ExitFinallyBlock() { |
} |
+void FullCodeGenerator::ClearPendingMessage() { |
+ DCHECK(!result_register().is(r1)); |
+ ExternalReference pending_message_obj = |
+ ExternalReference::address_of_pending_message_obj(isolate()); |
+ __ LoadRoot(r1, Heap::kTheHoleValueRootIndex); |
+ __ mov(ip, Operand(pending_message_obj)); |
+ __ str(r1, MemOperand(ip)); |
+} |
+ |
+ |
#undef __ |