promise.js
function IteratorNext ( iterator, value ) {
    var result = iterator.next(value);
    if ( Type(result) !== 'object' ) {
      throw TypeError();
    }
    return result;
  }
function IteratorNext ( iterator, value ) {
    var result = iterator.next(value);
    if ( Type(result) !== 'object' ) {
      throw TypeError();
    }
    return result;
  }
7.4.2 IteratorNext ( iterator, value )