diff options
Diffstat (limited to 'deps/v8/src/builtins/builtins-async-generator-gen.cc')
-rw-r--r-- | deps/v8/src/builtins/builtins-async-generator-gen.cc | 13 |
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); |