Verifying JavaScript and Creating Foundations for the Web
Presented as part of the 2013 HCSS conference.
ABSTRACT
The highly dynamic, overloaded, and unconventional nature of JavaScript makes it difficult to corral with sound static reasoning methods. We have tackled its complexity by creating a tractable core semantics that exhibits conformance with the actual language. Armed with this semantic foundation, we have built static reasoning systems to certify uses as diverse as in-page mashups, browser extensions, and clients of large frameworks. Our analyses have been successfully applied to real-world, third-party code, while our semantic framework is now used by groups worldwide. I will discuss our results and reflect on lessons learned from conducting this research.
Our materials can be found at http://www.jswebtools.org/.