lib/abaaso.js
function ( fn, ms, id, repeat ) {
		var op;

		ms     = ms || 0;
		repeat = ( repeat === true );

		if ( id !== undefined ) {
			utility.clearTimers( id );
		}
		else {
			id = utility.uuid( true );
		}

		op = function () {
			utility.clearTimers( id );
			fn();
		};

		utility[repeat ? "repeating" : "timer"][id] = setTimeout( op, ms );

		return id;
	}
function ( fn, ms, id, repeat ) {
		var op;

		ms     = ms || 0;
		repeat = ( repeat === true );

		if ( id !== undefined ) {
			utility.clearTimers( id );
		}
		else {
			id = utility.uuid( true );
		}

		op = function () {
			utility.clearTimers( id );
			fn();
		};

		utility[repeat ? "repeating" : "timer"][id] = setTimeout( op, ms );

		return id;
	}
function ( fn , ms , id , repeat ) { var op ; ms = ms || 0 ; repeat = ( repeat === true ) ; if ( id !== undefined ) { utility . clearTimers ( id ) ; } else { id = utility . uuid ( true ) ; } op = function ( ) { utility . clearTimers ( id ) ; fn ( ) ; } ; utility [ repeat ? "repeating" : "timer" ] [ id ] = setTimeout ( op , ms ) ; return id ; }
Defers the execution of Function by at least the supplied milliseconds
Timing may vary under "heavy load" relative to the CPU & client JavaScript engine

@method defer
@param  {Function} fn     Function to defer execution of
@param  {Number}   ms     Milliseconds to defer execution
@param  {Number}   id     [Optional] ID of the deferred function
@param  {Boolean}  repeat [Optional] Describes the execution, default is `false`
@return {String}          ID of the timer
Defers the execution of Function by at least the supplied milliseconds Timing may vary under heavy load relative to the CPU & client JavaScript engine