The Android platform scripts use shelljs.exec's synchronous mode. This is a terrible hack that leaks filehandles by the hundred, wastes lots of CPU cycles, and can cause EMFILE on OSX because it runs out of filehandles.
I wanted to rewrite the scripts to be async and use child_process.exec or .spawn. I started to, but rapidly found that the tangle of callbacks that resulted was terrible and confusing. I propose using Q.js here as well (and dropping shelljs as a dependency, if it was only ever used for .exec). Any objections? Braden