Description
In a Jan 17 comment, @jhnaldo writes:
We are currently developing JSAVER, a JavaScript static analyzer, based on the JavaScript syntax and semantics extracted from ECMAScript specification via JISET. While the current version of JSAVER is a prototype implementation, we checked that it can successfully analyze all applicable JavaScript programs in Test262: ECMAScript Test Suite (ECMA TR/104).
On the other hand, our team also has developed SAFE, a JavaScript static analyzer for ECMAScript 5.1, with abstract semantics designed by hand in several years.
I cannot find JSAVER. Is it shared publicly yet? So this SAFE tool seems to be the closest thing with an open issues list...
I have an idea for a static analysis tool to check for unexpected throws. Expected throws would be denoted as assert(cond)
or assert.typeof(x, 'string')
or assert.equal(a, b)
or the like. If any code path could lead to a throw other than an explicit assert
, the tool should report that as a problem. I expect this would be extremely valuable in establishing that input validation has been done thoroughly. For example, in issues such as:
I would appreciate any thoughts you would like to share on how to go about making such a tool.
Feel free to write to me at connolly@agoric.com if you prefer that over a github issue such as this.
cc @erights