summaryrefslogtreecommitdiff
path: root/deps/v8/src/builtins/builtins-async-generator-gen.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/builtins/builtins-async-generator-gen.cc')
-rw-r--r--deps/v8/src/builtins/builtins-async-generator-gen.cc13
1 files changed, 10 insertions, 3 deletions
diff --git a/deps/v8/src/builtins/builtins-async-generator-gen.cc b/deps/v8/src/builtins/builtins-async-generator-gen.cc
index 230da6bbe7..70726a5f9d 100644
--- a/deps/v8/src/builtins/builtins-async-generator-gen.cc
+++ b/deps/v8/src/builtins/builtins-async-generator-gen.cc
@@ -237,8 +237,12 @@ void AsyncGeneratorBuiltinsAssembler::AsyncGeneratorAwaitResumeClosure(
CSA_SLOW_ASSERT(this, IsGeneratorSuspended(generator));
- CallStub(CodeFactory::ResumeGenerator(isolate()), context, value, generator,
- SmiConstant(resume_mode));
+ // Remember the {resume_mode} for the {generator}.
+ StoreObjectFieldNoWriteBarrier(generator,
+ JSGeneratorObject::kResumeModeOffset,
+ SmiConstant(resume_mode));
+
+ CallStub(CodeFactory::ResumeGenerator(isolate()), context, value, generator);
TailCallBuiltin(Builtins::kAsyncGeneratorResumeNext, context, generator);
}
@@ -489,8 +493,11 @@ TF_BUILTIN(AsyncGeneratorResumeNext, AsyncGeneratorBuiltinsAssembler) {
BIND(&resume_generator);
{
+ // Remember the {resume_type} for the {generator}.
+ StoreObjectFieldNoWriteBarrier(
+ generator, JSGeneratorObject::kResumeModeOffset, resume_type);
CallStub(CodeFactory::ResumeGenerator(isolate()), context,
- LoadValueFromAsyncGeneratorRequest(next), generator, resume_type);
+ LoadValueFromAsyncGeneratorRequest(next), generator);
var_state.Bind(LoadGeneratorState(generator));
var_next.Bind(LoadFirstAsyncGeneratorRequestFromQueue(generator));
Goto(&start);