code: function( fn ) {
  			return function() {
  				var args = arguments,
  					self = this;
  				window.setTimeout( function() {
  					fn.apply( self, args );
  				}, 0 );
  			};
  		}
docs: Creates a "deferred" function which will not run immediately,
  but rather runs as soon as the interpreter’s call stack is empty.
  Behaves much like `window.setTimeout` with a delay.
  
  **Note:** The return value of the original function will be lost.
  
  @param {Function} fn The callee function.
  @returns {Function} The new deferred function.