"use strict"; const isGenerator = require("is-generator-function"); const yieldcore = require("./index"); function* A() { yield 1; yield 2; yield B; yield 3; return 9; } function* B() { yield 10; yield 11; yield C; yield D; return 19; } function* C() { yield 28; return 29; } function* D() { yield 37; yield 38; return 39; } let core = yieldcore.create(A, { onYieldInstruction: function* (value) { console.log(value); }, onYieldGenerator: function* (value) { // Waiting 2 seconds... console.log("Waiting..."); // setTimeout(() => core.resume(), 2000); // yield yieldcore.Pause; yield new Promise((resolve) => setTimeout(resolve, 2000)); }, onReturn: function* (value) { console.log(`r ${value}`); } }); core.resume(); // expected: 1, 2, 10, 11, 28, r 29, 37, 38, r 39, r 19, 3, r 9