function iterAdvance( iterator, n ) {
	var N;
	var v;
	var i;
	if ( !isIteratorLike( iterator ) ) {
		throw new TypeError( format( 'invalid argument. First argument must be an iterator. Value: `%s`.', iterator ) );
	}
	if ( arguments.length > 1 ) {
		if ( !isNonNegativeInteger( n ) ) {
			throw new TypeError( format( 'invalid argument. Second argument must be a nonnegative integer. Value: `%s`.', n ) );
		}
		N = n;
	} else {
		N = 1e308;
	}
	i = 0;
	while ( i < N ) {
		v = iterator.next();
		if ( v.done ) {
			break;
		}
		i += 1;
	}
	return iterator;
}
Advances an iterator.

@param {Iterator} iterator - input iterator
@param {NonNegativeInteger} [n=1e308] - number of iterations
@throws {TypeError} first argument must be an iterator
@throws {TypeError} second argument must be a nonnegative integer
@returns {Iterator} input iterator

@example
var array2iterator = require( '@stdlib/array/to-iterator' );

var it1 = array2iterator( [ 0, 0, 0, 0, 1 ] );

var it2 = iterAdvance( it1, 4 );

var v = it2.next().value;
// returns 1

var bool = it2.next().done;
// returns true