function wrap() {
		var args;
		var v;
		var i;

		args = [];
		for ( i = 0; i < arguments.length; i++ ) {
			v = arguments[ i ];
			if ( predicate( v, i ) ) {
				args.push( v );
			}
		}
		return fcn.apply( thisArg, args );
	}
Invokes a function according to a predicate function.

@private
@param {...*} args - arguments
@returns {*} return value