function method() {
			var args;
			var out;
			var i;

			if ( !(this instanceof FluentIterator) ) {
				throw new TypeError( 'invalid invocation. `this` is not a fluent interface iterator.' );
			}
			args = [ this._source ];
			for ( i = 0; i < arguments.length; i++ ) {
				args.push( arguments[ i ] );
			}
			out = iterFcn.apply( null, args );

			// If the iterator function returns an iterator, in order to support subsequent chaining, we need to create a new fluent interface instance...
			if ( isIteratorLike( out ) ) {
				return new FluentIterator( out );
			}
			return out;
		}
Iterator function wrapper.

@private
@param {...*} [args] - method arguments
@throws {TypeError} `this` must be a fluent interface iterator
@returns {Iterator} iterator