UNPKG

1.22 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 if (waiting) {
53 waiting = false;
54 return value;
55 }
56
57 return pump("return", value);
58 };
59 }
60
61 return iter;
62}
63
64module.exports = _asyncGeneratorDelegate;
\No newline at end of file