JavaScript has become a central concern for both performance and quality of Web applications, due to its vital role in the Web platform; this vital role means that a JavaScript program is now commonly tightly bound with the Web page that contains it and with rich browser APIs. And so, while, due to its importance, JavaScript is now a focus of many strands of research work—static and dynamic program analysis, refactoring, and security to name a few—it’s vital role means there are several significant challenges to overcome before the programs themselves can be tackled: How to delineate the program in a dynamic setting like a web page, how to handle non-determinism of concurrency and asynchronous events, what to do about the extraordinarily dynamic features like ‘eval’ or ‘new’, and finally how to incorporate variants of the language and libraries that implement a rather different programming paradigm. JSTools will bring together participants in this area to share research ideas, with a focus on presentations of sharable or potentially-sharable infrastructure created by the participants.

Call for Papers

JavaScript has become a central concern for both performance and quality of Web applications, due to its vital role in the Web platform; this vital role means that a JavaScript program is now commonly tightly bound with the Web page that contains it and with rich browser APIs. And so, while, due to its importance, JavaScript is now a focus of many strands of research work—static and dynamic program analysis, refactoring, and security to name a few—it's vital role means there are several significant challenges to overcome before the programs themselves can be tackled:
  • The program itself is an increasingly slippery concept. Even simple program tend to be composed of multiple script tags in a Web page, some of which refer to external source files and some of which contain inline code. Further code is commonly added with handlers attached to various Web page elements. Depending on the particular structure of these tags, the semantics of the induced program can differ. And further, code is often loaded dynamically into a Web, for instance by dynamically creating new script tags in the current page.
  • Web pages increasingly use concurrency. While JavaScript itself is single-threaded, execution in modern browsers sometimes is not entirely, and, even when it is, asynchronous styles such as AJAX can introduce non-determinism into when pieces of code execute. Even the initial parsing of the Web page is often not atomic from the point of view of the code.
  • JavaScript is an extraordinarily dynamic language, in which many features that more-commonly have a fixed meaning, such as the 'new' expression, are subject to very dynamic behaviors. Additionally, dynamic code creation with `eval' may invalidate static analysis results. This adds challenges to constructing a traditional internal form for analysis and optimization purposes, since even a simple statement have globally-dependent behavior.
  • JavaScript has given rise to variants, some of which, such as ActionScript used to program Flash, are also popular. And the JavaScript specification itself is evolving. More immediately, JavaScript on the Web makes heavy use of frameworks such as jQuery, which implement a rather different programming paradigm in JavaScript. All of these layer additional analysis complexity on top of JavaScript. Various research and project groups have addressed these challenges, and there is a growing body of infrastructure that can be used and extended to tack JavaScript. In this workshop, we hope to bring the builders and interested consumers of such tooling together. We plan to have a focus on tooling that, at least to some extent, addresses these challenges in practical way. We want a combined focus on the research challenges the tools address and a tutorial-like to using these tools as well.

Program

8:30-8:45

Opening Remarks

8:45-9:10

Peter Thiemann

You Can't Touch This

9:10-9:35

Phu H. Phung

A Two-Tier Sandbox Architecture for Untrusted JavaScript

9:35-10:00

Christian Hammer

Information flow analysis for JavaScript

10:30-10:55

Gregor Richards

Eval Begone!

10:55-11:20

Anders Møller

Eliminating the Eval of JavaScript using TAJS

11:20-11:45

Martin Burger

WebMate: A Tool for Testing Web 2.0 Applications

11:45-12:10

Shriram Krishnamurthi

The JSWebTools Suite

13:35-14:00

Julian Dolby

Using WALA for JavaScript

14:00-14:25

Bruno Dufour

An Open Research Platform for JavaScript

14:25-14:50

Sergio Maffeis

Towards a Program Logic for JavaScript

15:15-15:40

Ravi Chugh

Towards Dependent Types for JavaScript

15:40-16:05

Adam Welc

Adaptive Data Parallelism for Internet Clients on Heterogeneous Platforms

16:05-16:30

Mark Miller

Two Phase Commit Among Strangers

16:30-16:55

Shu-Yu Guo

What the Web Needs Now

16:55-17:00

Closing Remarks

Submissions

We welcome any submissions of work in this field: you may submit a paper, an abstract for a talk, or a talk abstract together with a supporting position paper. To submit, please e-mail submissions by 9th April to the organizers. Papers will be published in the ACM proceedings, so you will need to follow their style; if desired, slides from talks will be put online on the workshop Web site, but talks can also be kept unpublished if that is preferred so as not to preclude future publications in workshops and conferences. There will not be a separate program committee to review attendee submissions; the organizing committee will referee submissions for relevance, as we are looking for ongoing work more than finished research projects.

Speakers

Travel/Venue

Regarding travel and venue please follow the pages for visas and registration/hotel reservation.

Organization