ECOOP 2015
Sun 5 - Fri 10 July 2015 Prague, Czech Republic
Wed 8 Jul 2015 11:00 - 11:30 at Bohemia - Gradual Typing Chair(s): John Boyland

TreatJS is a language embedded, higher-order contract sys- tem for JavaScript which enforces contracts by run-time monitoring. Beyond providing the standard abstractions for building higher-order contracts (base, function, and object contracts), TreatJS’s novel contri- butions are its guarantee of non-interfering contract execution, its sys- tematic approach to blame assignment, its support for contracts in the style of union and intersection types, and its notion of a parameterized contract scope, which is the building block for composable run-time gen- erated contracts that generalize dependent function contracts.

TreatJS is implemented as a library so that all aspects of a contract can be specified using the full JavaScript language. The library relies on JavaScript proxies to guarantee full interposition for contracts. It further exploits JavaScript’s reflective features to run contracts in a sandbox en- vironment, which guarantees that the execution of contract code does not modify the application state. No source code transformation or change in the JavaScript run-time system is required.

TreatJS, including sandboxing, is implemented and the impact of con- tracts on execution speed is evaluated using the Google Octane bench- mark.

Wed 8 Jul
Times are displayed in time zone: (GMT+02:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

10:30 - 12:00: Research Track - Gradual Typing at Bohemia
Chair(s): John BoylandUniversity of Wisconsin, Milwaukee
research-track10:30 - 11:00
Asumu TakikawaNortheastern University, Daniel FelteyNortheastern University, Earl DeanIndiana University, Robby FindlerNorthwestern University, Matthew FlattUniversity of Utah, Sam Tobin-HochstadtIndiana University, Matthias FelleisenNortheastern University
research-track11:00 - 11:30
Matthias KeilUniversity of Freiburg, Peter ThiemannUniversity of Freiburg
Media Attached
research-track11:30 - 12:00
Panagiotis VekrisUniversity of California, San Diego, Benjamin CosmanUniversity of California, San Diego, Ranjit JhalaUniversity of California, San Diego