arXiv · 1112.4106
Dependent Types for JavaScript
Abstract
We present Dependent JavaScript (DJS), a statically-typed dialect of the imperative, object-oriented, dynamic language. DJS supports the particularly challenging features such as run-time type-tests, higher-order functions, extensible objects, prototype inheritance, and arrays through a combination of nested refinement types, strong updates to the heap, and heap unrolling to precisely track prototype hierarchies. With our implementation of DJS, we demonstrate that the type system is expressive enough to reason about a variety of tricky idioms found in small examples drawn from several sources, including the popular book JavaScript: The Good Parts and the SunSpider benchmark suite.
Explore related subjects
Keep this discovery
Ravi Chugh, David Herman, Ranjit Jhala. 2012-08-01. Dependent Types for JavaScript. https://arxiv.org/abs/1112.4106
Cite the original work for its findings. Save a collection to share your selection of sources.