| 721 | return value |
| 722 | } |
| 723 | static async *asGenerator({ callback, generator, signal, timeout = -1 } = {}) { |
| 724 | let value = undefined |
| 725 | let done = undefined |
| 726 | if (timeout < 0) { |
| 727 | timeout = Number.MAX_SAFE_INTEGER |
| 728 | } |
| 729 | timeout = Date.now() + timeout |
| 730 | do { |
| 731 | ; ({ value, done } = await Promise.resolve(generator.next(value))) |
| 732 | if (value instanceof Promise) { |
| 733 | value = await value |
| 734 | } |
| 735 | if (callback) { |
| 736 | ; ({ value, done } = await Promise.resolve(callback.call(generator, { value, done }))) |
| 737 | if (value instanceof Promise) { |
| 738 | value = await value |
| 739 | } |
| 740 | } |
| 741 | value = yield value |
| 742 | } while (!done && !signal?.aborted && timeout > Date.now()) |
| 743 | return value |
| 744 | } |
| 745 | } |
| 746 | |
| 747 | const TASK_REQUIRED = { |