so instead of making a node and a browser one were checking for the presence of 'module' this means we can use it for other browser based commonjs situations. then a few lines down we check for setImmediate->process->setTimeout in that order, so we can have setTimeout and module.exports if we  need it, setImmediate in perfing i've done looks to be a lot faster then setTimeout while still being A+ compliant.