JavaScript has become one of the most prevalent programming languages. It is not only used for the front-end and back-end (via node.js) of web applications, but also increasingly for mobile applications. Unlike for C, C++ and Java, there are few tools for dynamic analysis and testing of JavaScript applications. Jalangi is a simple yet powerful framework for writing portable heavy-weight JavaScript dynamic analyses running on modern browsers and node.js. The framework is open-sourced on https://github.com/Samsung/jalangi2.

This tutorial will be a mix of a presentation of material and hands-on development of a Jalangi analysis. Specifically, we will present a detailed guide to writing Jalangi analyses by introducing the framework’s functionality, good patterns to follow, pitfalls to avoid, and debugging strategies, and by walking attendees through implementing and running a simple Jalangi analysis during the tutorial. We will also present three higher-level analysis frameworks built using Jalangi: DLint, JITProf, and MemInsight. DLint is a framework for checking lightweight linting rules at runtime, enabling checking of properties that are difficult to handle using static linting alone. JITProf is a framework to dynamically identify code locations that prohibit profitable JIT optimizations. MemInsight is a framework for discovering memory issues, and it provides a convenient, high-level trace abstraction for implementing new issue detectors. We will describe how one can easily extend these frameworks to implement new rules or analyses.

Anyone interested in dynamic analysis of JavaScript code would benefit from attending the tutorial. Learning to use Jalangi does not require a deep background in program analysis. We will provide instructions for installing Jalangi before the tutorial.

Tue 14 Jun

Tutorials
13:30 - 15:00: Tutorials - Dynamic analysis of JavaScript with Jalangi at Santa Cruz East
Tutorials13:30 - 15:00
Talk
Manu SridharanSamsung Research America, Koushik SenUniversity of California, Berkeley, Liang GongUniversity of California, Berkeley
Tutorials
15:30 - 17:00: Tutorials - Dynamic analysis of JavaScript with Jalangi at Santa Cruz East
Tutorials15:30 - 17:00
Talk
Manu SridharanSamsung Research America, Koushik SenUniversity of California, Berkeley, Liang GongUniversity of California, Berkeley