| 12345678910111213141516171819202122232425262728293031323334 | 
							- var defer = require('./defer.js');
 
- // API
 
- module.exports = async;
 
- /**
 
-  * Runs provided callback asynchronously
 
-  * even if callback itself is not
 
-  *
 
-  * @param   {function} callback - callback to invoke
 
-  * @returns {function} - augmented callback
 
-  */
 
- function async(callback)
 
- {
 
-   var isAsync = false;
 
-   // check if async happened
 
-   defer(function() { isAsync = true; });
 
-   return function async_callback(err, result)
 
-   {
 
-     if (isAsync)
 
-     {
 
-       callback(err, result);
 
-     }
 
-     else
 
-     {
 
-       defer(function nextTick_callback()
 
-       {
 
-         callback(err, result);
 
-       });
 
-     }
 
-   };
 
- }
 
 
  |