Index: src/full-codegen/x64/full-codegen-x64.cc |
diff --git a/src/full-codegen/x64/full-codegen-x64.cc b/src/full-codegen/x64/full-codegen-x64.cc |
index 615eb67ba6459542be354eda2ecab900a787d471..52e4eb277481d232e19483c40a4cc95d8b85861b 100644 |
--- a/src/full-codegen/x64/full-codegen-x64.cc |
+++ b/src/full-codegen/x64/full-codegen-x64.cc |
@@ -2035,6 +2035,13 @@ void FullCodeGenerator::EmitGeneratorResume(Expression *generator, |
VisitForAccumulatorValue(value); |
__ Pop(rbx); |
+ // Store input value into generator object. |
+ __ movp(FieldOperand(rbx, JSGeneratorObject::kInputOffset), |
+ result_register()); |
+ __ movp(rcx, result_register()); |
+ __ RecordWriteField(rbx, JSGeneratorObject::kInputOffset, rcx, rdx, |
+ kDontSaveFPRegs); |
+ |
// Load suspended function and context. |
__ movp(rsi, FieldOperand(rbx, JSGeneratorObject::kContextOffset)); |
__ movp(rdi, FieldOperand(rbx, JSGeneratorObject::kFunctionOffset)); |