Blame view

node_modules/babel-runtime/helpers/asyncGeneratorDelegate.js 1.36 KB
aaac7fed   liuqimichale   add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
  "use strict";
  
  exports.__esModule = true;
  
  var _iterator = require("../core-js/symbol/iterator");
  
  var _iterator2 = _interopRequireDefault(_iterator);
  
  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 (inner, awaitWrap) {
    var iter = {},
        waiting = false;
  
    function pump(key, value) {
      waiting = true;
      value = new _promise2.default(function (resolve) {
        resolve(inner[key](value));
      });
      return {
        done: false,
        value: awaitWrap(value)
      };
    }
  
    ;
  
    if (typeof _symbol2.default === "function" && _iterator2.default) {
      iter[_iterator2.default] = function () {
        return this;
      };
    }
  
    iter.next = function (value) {
      if (waiting) {
        waiting = false;
        return value;
      }
  
      return pump("next", value);
    };
  
    if (typeof inner.throw === "function") {
      iter.throw = function (value) {
        if (waiting) {
          waiting = false;
          throw value;
        }
  
        return pump("throw", value);
      };
    }
  
    if (typeof inner.return === "function") {
      iter.return = function (value) {
        return pump("return", value);
      };
    }
  
    return iter;
  };