assert = require 'assert' fs = require 'fs' describe 'contexts', -> describe 'setTimeout in fs callback', -> it 'does not crash', (done) -> fs.readFile __filename, -> setTimeout done, 0 describe 'throw error in node context', -> it 'get caught', (done) -> error = new Error('boo!') lsts = process.listeners 'uncaughtException' process.removeAllListeners 'uncaughtException' process.on 'uncaughtException', (err) -> process.removeAllListeners 'uncaughtException' for lst in lsts process.on 'uncaughtException', lst done() fs.readFile __filename, -> throw error