I know of JSLint/JSHint, but are there JavaScript static analysis tools geared towards error checking rather the syntactical error?
For example:
new Date(2001, 12, 31)
This is generally an error, since month in Date constructor is designed to take 0 to 11
f.apply(arguments)
This is generally an error since the first argument of apply is this
context rather than arguments.
function One(x) { return 1; }
One(1, 2);
This is generally an error since you are calling a function with known signature of 1 argument with 2 arguments.
I know what I mentioned are not deterministic, but a lot of the more useful static analysis tools in other languages are not deterministic either. They give confidence rating on the potential error.