You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.7 KiB
64 lines
1.7 KiB
var OverloadYield = require("./OverloadYield.js"); |
|
function AsyncGenerator(e) { |
|
var r, t; |
|
function resume(r, t) { |
|
try { |
|
var n = e[r](t), |
|
o = n.value, |
|
u = o instanceof OverloadYield; |
|
Promise.resolve(u ? o.v : o).then(function (t) { |
|
if (u) { |
|
var i = "return" === r ? "return" : "next"; |
|
if (!o.k || t.done) return resume(i, t); |
|
t = e[i](t).value; |
|
} |
|
settle(n.done ? "return" : "normal", t); |
|
}, function (e) { |
|
resume("throw", e); |
|
}); |
|
} catch (e) { |
|
settle("throw", e); |
|
} |
|
} |
|
function settle(e, n) { |
|
switch (e) { |
|
case "return": |
|
r.resolve({ |
|
value: n, |
|
done: !0 |
|
}); |
|
break; |
|
case "throw": |
|
r.reject(n); |
|
break; |
|
default: |
|
r.resolve({ |
|
value: n, |
|
done: !1 |
|
}); |
|
} |
|
(r = r.next) ? resume(r.key, r.arg) : t = null; |
|
} |
|
this._invoke = function (e, n) { |
|
return new Promise(function (o, u) { |
|
var i = { |
|
key: e, |
|
arg: n, |
|
resolve: o, |
|
reject: u, |
|
next: null |
|
}; |
|
t ? t = t.next = i : (r = t = i, resume(e, n)); |
|
}); |
|
}, "function" != typeof e["return"] && (this["return"] = void 0); |
|
} |
|
AsyncGenerator.prototype["function" == typeof Symbol && Symbol.asyncIterator || "@@asyncIterator"] = function () { |
|
return this; |
|
}, AsyncGenerator.prototype.next = function (e) { |
|
return this._invoke("next", e); |
|
}, AsyncGenerator.prototype["throw"] = function (e) { |
|
return this._invoke("throw", e); |
|
}, AsyncGenerator.prototype["return"] = function (e) { |
|
return this._invoke("return", e); |
|
}; |
|
module.exports = AsyncGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports; |