Enhancing JavaScript with transactions

Mohan Dhawan, Chung Chieh Shan, Vinod Ganapathy

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

3 Scopus citations


Transcript is a system that enhances JavaScript with support for transactions. Hosting Web applications can use transactions to demarcate regions that contain untrusted guest code. Actions performed within a transaction are logged and considered speculative until they are examined by the host and committed. Uncommitted actions simply do not take and cannot affect the host in any way. Transcript therefore provides hosting Web applications with powerful mechanisms to understand the behavior of untrusted guests, mediate their actions and also cleanly recover from the effects of security-violating guest code. This paper describes the design of Transcript and its implementation in Firefox. Our exposition focuses on the novel features introduced by Transcript to support transactions, including a suspend/resume mechanism for JavaScript and support for speculative DOM updates. Our evaluation presents case studies showing that Transcript can be used to enforce powerful security policies on untrusted JavaScript code, and reports its performance on real-world applications and microbenchmarks.

Original languageEnglish (US)
Title of host publicationECOOP 2012 - Object-Oriented Programming
Subtitle of host publication26th European Conference, Proceedings
PublisherSpringer Verlag
Number of pages26
ISBN (Print)9783642310560
StatePublished - 2012
Event26th European Conference on Object-Oriented Programming, ECOOP 2012 - Beijing, China
Duration: Jun 11 2012Jun 16 2012

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume7313 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349


Other26th European Conference on Object-Oriented Programming, ECOOP 2012

All Science Journal Classification (ASJC) codes

  • Theoretical Computer Science
  • Computer Science(all)


Dive into the research topics of 'Enhancing JavaScript with transactions'. Together they form a unique fingerprint.

Cite this