UNPKG

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