Index: src/runtime/runtime-generator.cc |
diff --git a/src/runtime/runtime-generator.cc b/src/runtime/runtime-generator.cc |
index 81c66408d363955522d998639132ba848d52dcfe..fe452fed8e1a75f0e8b8e7c7c5c84cf3c2c323c3 100644 |
--- a/src/runtime/runtime-generator.cc |
+++ b/src/runtime/runtime-generator.cc |
@@ -69,6 +69,27 @@ RUNTIME_FUNCTION(Runtime_GeneratorGetInputOrDebugPos) { |
return generator->input_or_debug_pos(); |
} |
+RUNTIME_FUNCTION(Runtime_GeneratorGetAwaitInput) { |
+ HandleScope scope(isolate); |
+ DCHECK_EQ(1, args.length()); |
+ CONVERT_ARG_HANDLE_CHECKED(JSGeneratorObject, generator, 0); |
+ |
+ return generator->await_input(); |
+} |
+ |
+RUNTIME_FUNCTION(Runtime_GeneratorSaveInputForAwait) { |
+ HandleScope scope(isolate); |
+ DCHECK_EQ(1, args.length()); |
+ CONVERT_ARG_HANDLE_CHECKED(JSGeneratorObject, generator, 0); |
+ |
+ // Generator must be executing |
+ DCHECK_EQ(generator->continuation(), JSGeneratorObject::kGeneratorExecuting); |
+ |
+ generator->set_await_input(generator->input_or_debug_pos()); |
+ |
+ return isolate->heap()->undefined_value(); |
+} |
+ |
RUNTIME_FUNCTION(Runtime_GeneratorGetResumeMode) { |
HandleScope scope(isolate); |
DCHECK_EQ(1, args.length()); |