Index: src/ia32/full-codegen-ia32.cc |
diff --git a/src/ia32/full-codegen-ia32.cc b/src/ia32/full-codegen-ia32.cc |
index 7d575d870ef9e4e2288d32b377a40594bec1d0ed..2e6c417787945dd9c578f9718be53e9b6d5b58ae 100644 |
--- a/src/ia32/full-codegen-ia32.cc |
+++ b/src/ia32/full-codegen-ia32.cc |
@@ -5279,6 +5279,8 @@ void FullCodeGenerator::EnterFinallyBlock() { |
ExternalReference::address_of_pending_message_obj(isolate()); |
__ mov(edx, Operand::StaticVariable(pending_message_obj)); |
__ push(edx); |
+ |
+ ClearPendingMessage(); |
} |
@@ -5301,6 +5303,15 @@ void FullCodeGenerator::ExitFinallyBlock() { |
} |
+void FullCodeGenerator::ClearPendingMessage() { |
+ DCHECK(!result_register().is(edx)); |
+ ExternalReference pending_message_obj = |
+ ExternalReference::address_of_pending_message_obj(isolate()); |
+ __ mov(edx, Immediate(isolate()->factory()->the_hole_value())); |
+ __ mov(Operand::StaticVariable(pending_message_obj), edx); |
+} |
+ |
+ |
#undef __ |