1 | "use strict";
|
2 |
|
3 | exports.__esModule = true;
|
4 |
|
5 | var _promise = require("../core-js/promise");
|
6 |
|
7 | var _promise2 = _interopRequireDefault(_promise);
|
8 |
|
9 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
10 |
|
11 | exports.default = function (fn) {
|
12 | return function () {
|
13 | var gen = fn.apply(this, arguments);
|
14 | return new _promise2.default(function (resolve, reject) {
|
15 | function step(key, arg) {
|
16 | try {
|
17 | var info = gen[key](arg);
|
18 | var value = info.value;
|
19 | } catch (error) {
|
20 | reject(error);
|
21 | return;
|
22 | }
|
23 |
|
24 | if (info.done) {
|
25 | resolve(value);
|
26 | } else {
|
27 | return _promise2.default.resolve(value).then(function (value) {
|
28 | step("next", value);
|
29 | }, function (err) {
|
30 | step("throw", err);
|
31 | });
|
32 | }
|
33 | }
|
34 |
|
35 | return step("next");
|
36 | });
|
37 | };
|
38 | }; |
\ | No newline at end of file |