Theseus: understanding asynchronous code

  • Authors:
  • Tom Lieber

  • Affiliations:
  • Massachusetts Institute of Technology, Cambridge, USA

  • Venue:
  • CHI '13 Extended Abstracts on Human Factors in Computing Systems
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

The behavior of JavaScript is difficult to understand due to the language's asynchronous and dynamic nature. In particular, chains of event handlers pose difficulties because they cannot be stepped through with a debugger, and determining where a chain is broken requires instrumenting every link in the chain with a breakpoint or log statement. The aim of this work is to create a debugging interface that helps users understand complicated control flow in languages like JavaScript. Theseus uses program traces to provide real-time in-editor feedback so that programmers can answer questions quickly as they write new code and interact with their application. The call graph is augmented with semantic edges that allow users to make intuitive leaps through program traces, such as from the start of an AJAX request to its response.