Spaces:
Runtime error
Runtime error
| ; | |
| exports.__esModule = true; | |
| var _symbol = require("../core-js/symbol"); | |
| var _symbol2 = _interopRequireDefault(_symbol); | |
| var _promise = require("../core-js/promise"); | |
| var _promise2 = _interopRequireDefault(_promise); | |
| function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | |
| exports.default = function () { | |
| function AwaitValue(value) { | |
| this.value = value; | |
| } | |
| function AsyncGenerator(gen) { | |
| var front, back; | |
| function send(key, arg) { | |
| return new _promise2.default(function (resolve, reject) { | |
| var request = { | |
| key: key, | |
| arg: arg, | |
| resolve: resolve, | |
| reject: reject, | |
| next: null | |
| }; | |
| if (back) { | |
| back = back.next = request; | |
| } else { | |
| front = back = request; | |
| resume(key, arg); | |
| } | |
| }); | |
| } | |
| function resume(key, arg) { | |
| try { | |
| var result = gen[key](arg); | |
| var value = result.value; | |
| if (value instanceof AwaitValue) { | |
| _promise2.default.resolve(value.value).then(function (arg) { | |
| resume("next", arg); | |
| }, function (arg) { | |
| resume("throw", arg); | |
| }); | |
| } else { | |
| settle(result.done ? "return" : "normal", result.value); | |
| } | |
| } catch (err) { | |
| settle("throw", err); | |
| } | |
| } | |
| function settle(type, value) { | |
| switch (type) { | |
| case "return": | |
| front.resolve({ | |
| value: value, | |
| done: true | |
| }); | |
| break; | |
| case "throw": | |
| front.reject(value); | |
| break; | |
| default: | |
| front.resolve({ | |
| value: value, | |
| done: false | |
| }); | |
| break; | |
| } | |
| front = front.next; | |
| if (front) { | |
| resume(front.key, front.arg); | |
| } else { | |
| back = null; | |
| } | |
| } | |
| this._invoke = send; | |
| if (typeof gen.return !== "function") { | |
| this.return = undefined; | |
| } | |
| } | |
| if (typeof _symbol2.default === "function" && _symbol2.default.asyncIterator) { | |
| AsyncGenerator.prototype[_symbol2.default.asyncIterator] = function () { | |
| return this; | |
| }; | |
| } | |
| AsyncGenerator.prototype.next = function (arg) { | |
| return this._invoke("next", arg); | |
| }; | |
| AsyncGenerator.prototype.throw = function (arg) { | |
| return this._invoke("throw", arg); | |
| }; | |
| AsyncGenerator.prototype.return = function (arg) { | |
| return this._invoke("return", arg); | |
| }; | |
| return { | |
| wrap: function wrap(fn) { | |
| return function () { | |
| return new AsyncGenerator(fn.apply(this, arguments)); | |
| }; | |
| }, | |
| await: function _await(value) { | |
| return new AwaitValue(value); | |
| } | |
| }; | |
| }(); |