lib/index.js
function issorted( arr, clbk ) {
	if ( !Array.isArray( arr ) ) {
		throw new TypeError( 'issorted()::invalid input argument. Must provide an array.' );
	}
	if ( arguments.length > 1 ) {
		if ( typeof clbk !== 'function' ) {
			throw new TypeError( 'issorted()::invalid input argument. Comparator must be a function.' );
		}
	}
	var len = arr.length,
		i;
	if ( !clbk ) {
		// Default: ascending order...
		for ( i = 0; i < len-1; i++ ) {
			if ( arr[ i ] > arr[ i+1 ] ) {
				return false;
			}
		}
		return true;
	}
	// Impose arbitrary sort order...
	for ( i = 0; i < len-1; i++ ) {
		if ( clbk( arr[i], arr[i+1] ) > 0 ) {
			return false;
		}
	}
	return true;
}
function issorted( arr, clbk ) {
	if ( !Array.isArray( arr ) ) {
		throw new TypeError( 'issorted()::invalid input argument. Must provide an array.' );
	}
	if ( arguments.length > 1 ) {
		if ( typeof clbk !== 'function' ) {
			throw new TypeError( 'issorted()::invalid input argument. Comparator must be a function.' );
		}
	}
	var len = arr.length,
		i;
	if ( !clbk ) {
		// Default: ascending order...
		for ( i = 0; i < len-1; i++ ) {
			if ( arr[ i ] > arr[ i+1 ] ) {
				return false;
			}
		}
		return true;
	}
	// Impose arbitrary sort order...
	for ( i = 0; i < len-1; i++ ) {
		if ( clbk( arr[i], arr[i+1] ) > 0 ) {
			return false;
		}
	}
	return true;
}
ISSORTED // 
FUNCTION: issorted( arr[, comparator] )
Returns a boolean indicating if an input array is sorted.

@param {Array} arr - input array
@param {Function} [comparator] - comparator function invoked for each pair of consecutive elements which returns a numeric value indicating if elements are ordered
@returns {Boolean} boolean indicating if array is sorted