License
When quoting this document, please refer to the following
DOI: 10.4230/DARTS.1.1.1
URN: urn:nbn:de:0030-drops-55105
URL: http://drops.dagstuhl.de/opus/volltexte/2015/5510/
Go back to Dagstuhl Artifacts Series


Keil, Matthias ; Thiemann, Peter

TreatJS: Higher-Order Contracts for JavaScript (Artifact)

pdf-format:
1.pdf (0.4 MB)
artifact-format:
darts-v001-i001-01-artifact-1bb0d8dd6efe40fbde8b1c182b50673e.tar.gz (5 MB)


Abstract

TreatJS is a language embedded, higher-order contract system 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 contributions are its guarantee of non-interfering contract execution, its systematic 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 generated 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 environment, 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.

BibTeX - Entry

@Article{keil_et_al:DARTS:2015:5510,
  author =	{Matthias Keil and Peter Thiemann},
  title =	{{TreatJS: Higher-Order Contracts for JavaScript (Artifact)}},
  pages =	{1--2},
  journal =	{Dagstuhl Artifacts Series},
  ISSN =	{2509-8195},
  year =	{2015},
  volume =	{1},
  number =	{1},
  editor =	{},
  publisher =	{Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{http://drops.dagstuhl.de/opus/volltexte/2015/5510},
  URN =		{urn:nbn:de:0030-drops-55105},
  doi =		{10.4230/DARTS.1.1.1},
  annote =	{Keywords: Higher-Order Contracts, JavaScript, Proxies}
}

Keywords: Higher-Order Contracts, JavaScript, Proxies
Seminar: DARTS, Volume 1, Issue 1
Related Scholarly Article: http://dx.doi.org/10.4230/LIPIcs.ECOOP.2015.28
Issue Date: 2015
Date of publication: 21.10.2015


DROPS-Home | Fulltext Search | Imprint Published by LZI