Index: src/interpreter/interpreter.cc |
diff --git a/src/interpreter/interpreter.cc b/src/interpreter/interpreter.cc |
index 81aecafecfdfbba9b465c7f54b6f1b685f6bf5e7..ba66044fd5cf825d6b0d8e8eaff088aad7e0a849 100644 |
--- a/src/interpreter/interpreter.cc |
+++ b/src/interpreter/interpreter.cc |
@@ -2371,6 +2371,22 @@ void Interpreter::DoStackCheck(InterpreterAssembler* assembler) { |
} |
} |
+// SetPendingMessage |
+// |
+// Sets the pending message to the value in the accumulator, and returns the |
+// previous pending message in the accumulator. |
+void Interpreter::DoSetPendingMessage(InterpreterAssembler* assembler) { |
+ Node* pending_message = __ ExternalConstant( |
+ ExternalReference::address_of_pending_message_obj(isolate_)); |
+ Node* previous_message = |
+ __ Load(MachineType::TaggedPointer(), pending_message); |
+ Node* new_message = __ GetAccumulator(); |
+ __ StoreNoWriteBarrier(MachineRepresentation::kTaggedPointer, pending_message, |
+ new_message); |
+ __ SetAccumulator(previous_message); |
+ __ Dispatch(); |
+} |
+ |
// Throw |
// |
// Throws the exception in the accumulator. |