UNPKG

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