UNPKG

1.1 kBJavaScriptView Raw
1import _Symbol$iterator from "../../core-js/symbol/iterator";
2import _Symbol from "../../core-js/symbol";
3import _Promise from "../../core-js/promise";
4export default function _asyncGeneratorDelegate(inner, awaitWrap) {
5 var iter = {},
6 waiting = false;
7
8 function pump(key, value) {
9 waiting = true;
10 value = new _Promise(function (resolve) {
11 resolve(inner[key](value));
12 });
13 return {
14 done: false,
15 value: awaitWrap(value)
16 };
17 }
18
19 ;
20
21 if (typeof _Symbol === "function" && _Symbol$iterator) {
22 iter[_Symbol$iterator] = function () {
23 return this;
24 };
25 }
26
27 iter.next = function (value) {
28 if (waiting) {
29 waiting = false;
30 return value;
31 }
32
33 return pump("next", value);
34 };
35
36 if (typeof inner.throw === "function") {
37 iter.throw = function (value) {
38 if (waiting) {
39 waiting = false;
40 throw value;
41 }
42
43 return pump("throw", value);
44 };
45 }
46
47 if (typeof inner.return === "function") {
48 iter.return = function (value) {
49 return pump("return", value);
50 };
51 }
52
53 return iter;
54}
\No newline at end of file