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.
		
		
		
		
		
			
		
			
				
					
					
						
							69 lines
						
					
					
						
							1.4 KiB
						
					
					
				
			
		
		
	
	
							69 lines
						
					
					
						
							1.4 KiB
						
					
					
				"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; | 
						|
}; |