…tion which would cause the compiler to silently fail with no resulting output file.
While recursively traversing a source directory, if a directory was encountered containing either no .coffee files (ex. an .svn metadata directory) or where the last file processed in that directory was not a .coffee file, compileJoin() might never be called.
This issue was originally introduced by a (well-needed) optimization in commit dc272a6.
In join mode, anytime the 'unprocessed' count is decremented, the remaining file count should be evaluated to determine if it is time to run compileJoin(). Previously, compileJoin() would only ever be called in one of the four possible terminating branches of this recursive asynchronous operation.

<spanclass="p">[</span><spanclass="s1">&#39;-c&#39;</span><spanclass="p">,</span> <spanclass="s1">&#39;--compile&#39;</span><spanclass="p">,</span> <spanclass="s1">&#39;compile to JavaScript and save as .js files&#39;</span><spanclass="p">]</span>

+ <spanclass="p">[</span><spanclass="s1">&#39;-e&#39;</span><spanclass="p">,</span> <spanclass="s1">&#39;--eval&#39;</span><spanclass="p">,</span> <spanclass="s1">&#39;pass a string from the command line as input&#39;</span><spanclass="p">]</span>

- <spanclass="p">[</span><spanclass="s1">&#39;-s&#39;</span><spanclass="p">,</span> <spanclass="s1">&#39;--stdio&#39;</span><spanclass="p">,</span> <spanclass="s1">&#39;listen for and compile scripts over stdio&#39;</span><spanclass="p">]</span>

- <spanclass="p">[</span><spanclass="s1">&#39;-e&#39;</span><spanclass="p">,</span> <spanclass="s1">&#39;--eval&#39;</span><spanclass="p">,</span> <spanclass="s1">&#39;compile a string from the command line&#39;</span><spanclass="p">]</span>

+ <spanclass="p">[</span><spanclass="s1">&#39;-n&#39;</span><spanclass="p">,</span> <spanclass="s1">&#39;--nodes&#39;</span><spanclass="p">,</span> <spanclass="s1">&#39;print out the parse tree that the parser produces&#39;</span><spanclass="p">]</span>

+ <spanclass="p">[</span><spanclass="s1">&#39;-s&#39;</span><spanclass="p">,</span> <spanclass="s1">&#39;--stdio&#39;</span><spanclass="p">,</span> <spanclass="s1">&#39;listen for and compile scripts over stdio&#39;</span><spanclass="p">]</span>

+ <spanclass="p">[</span><spanclass="s1">&#39;-t&#39;</span><spanclass="p">,</span> <spanclass="s1">&#39;--tokens&#39;</span><spanclass="p">,</span> <spanclass="s1">&#39;print out the tokens that the lexer/rewriter produce&#39;</span><spanclass="p">]</span>