Towards an amortized type system for JavaScript

Daniel Franzen, David Aspinall

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

JavaScript programs have access to a wide range of resources and many of those have security implications. Tight bounds on the consumption of those resources can give indication of the functionality provided by the program and minimize the security risks of mobile applications. Resource consumption is typically dependent on the input of the user. In this paper we introduce an amortized type system for a core of JavaScript. The resulting types certify bounds for the resource usage dependent on the input parameters. We define the amortized types and the corresponding typing rules. Furthermore we discuss how to fully automatically infer those resource bounds for arbitrary applications. In addition to the usual example of amortized resource, heap-space, our type system can be applied to many phone specific resources, which we demonstrate using the example of the GPS sensor and others. The main result of this paper is the soundness of the core type system, proving that a valid type for a program corresponds to a bound on the units used of the specified resource.
Original languageEnglish
Title of host publication6th International Symposium on Symbolic Computation in Software Science, SCSS 2014, Gammarth, La Marsa, Tunisia, December 7-8, 2014
Pages12-26
Number of pages15
Publication statusPublished - 2014

Fingerprint Dive into the research topics of 'Towards an amortized type system for JavaScript'. Together they form a unique fingerprint.

Cite this