An Asynchronous Call Graph for JavaScript
Journal
Proceedings - International Conference on Software Engineering
ISBN
9781665495905
Date Issued
2022-01-01
Author(s)
Abstract
Asynchronous JavaScript has become omnipresent, yet is inherently difficult to reason about. While many recent debugging tools are trying to address this issue with (semi-)automatic methods, interactive analysis tools are few and far between. To this date, developers are required to build mental models of complex concurrent control flows with little to no tool support. Thus, asynchrony is making life hard for novices and catches even seasoned developers off-guard, especially when dealing with unfamiliar code. That is why we propose the Asynchronous Call Graph. It is the first approach to capture and visualize concurrent control flow between call graph roots. It is also the first concurrency analysis tool for JavaScript that is fully interactive and integrated with an omniscient debugger in a popular IDE. First tests show that the ACG works successfully on real-world codebases. This approach has the potential to set a new standard for how developers can analyze asynchrony.
Subjects
asynchrony; call graph; debugging; dynamic analysis; JavaScript
Other Subjects
Concurrency control; Data flow analysis; Flow graphs; High level languages; Analysis tools; Asynchronous Javascript; Asynchrony; Call graphs; Concurrent control; Control-flow; Debugging; Debugging tools; Dynamics analysis; Javascript; Program debugging
Type
conference paper
