after #332 we do not need `require('setimmediate')`