src/eventloop.js
function done(error) {
      global.clearTimeout(timer);
      eventLoop.removeListener('tick', ontick);
      eventLoop.removeListener('idle', done);
      eventLoop.browser.removeListener('error', done);

      --eventLoop.waiting;
      try {
        callback(error);
      } catch (error) {
        // If callback makes an assertion that fails, we end here.
        // If we throw error synchronously, it gets swallowed.
        setImmediate(function() {
          throw error;
        });
      }
    }
function done(error) {
      global.clearTimeout(timer);
      eventLoop.removeListener('tick', ontick);
      eventLoop.removeListener('idle', done);
      eventLoop.browser.removeListener('error', done);

      --eventLoop.waiting;
      try {
        callback(error);
      } catch (error) {
        // If callback makes an assertion that fails, we end here.
        // If we throw error synchronously, it gets swallowed.
        setImmediate(function() {
          throw error;
        });
      }
    }
function done ( error ) { global . clearTimeout ( timer ) ; eventLoop . removeListener ( 'tick' , ontick ) ; eventLoop . removeListener ( 'idle' , done ) ; eventLoop . browser . removeListener ( 'error' , done ) ; -- eventLoop . waiting ; try { callback ( error ) ; } catch ( error ) { // If callback makes an assertion that fails, we end here. // If we throw error synchronously, it gets swallowed. setImmediate ( function ( ) { throw error ; } ) ; } }
The wait is over ...
The wait is over ...