Javanni: a verifier for javascript

  • Authors:
  • Martin Nordio;Cristiano Calcagno;Carlo Alberto Furia

  • Affiliations:
  • Chair of Software Engineering, ETH Zurich, Switzerland;Imperial College London and Monoidics Ltd., ETH Zurich, Switzerland;Chair of Software Engineering, ETH Zurich, Switzerland

  • Venue:
  • FASE'13 Proceedings of the 16th international conference on Fundamental Approaches to Software Engineering
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

JavaScript ranks among the most popular programming languages for the web, yet its highly dynamic type system and occasionally unintuitive semantics make programming particularly error-prone. This paper presents Javanni, a verifier for JavaScript programs that can statically detect many common programming errors. Javanni checks the absence of standard type-related errors (such as accessing undefined fields) without requiring user-written annotations, and it can also verify full functional-correctness specifications. Several experiments with JavaScript applications reported in the paper demonstrate that Javanni is flexibly usable on programs with non-trivial specifications. Javanni is available online within the CloudStudio web integrated environment.