This also makes CompilerPool more general, so it can be used by both the node and the browser platforms.