For finding those kinds of mistakes use jslint (http://jslint.com), though it doesnt catch calling a function with the wrong number of arguments (which may be what you intended anyways). If you download the source you can easily write a custom command in vim or emacs to run the current buffer through jslint.