An Asynchronous Call Graph for JavaScript

Dominik Seifert, Michael Wan, Jane Hsu, Benson Yeh

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

4 Scopus citations

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.

Original languageEnglish
Title of host publicationProceedings - 2022 ACM/IEEE 44th International Conference on Software Engineering
Subtitle of host publicationSoftware Engineering in Practice, ICSE-SEIP 2022
PublisherIEEE Computer Society
Pages29-30
Number of pages2
ISBN (Electronic)9781665495905
DOIs
StatePublished - 2022
Externally publishedYes
Event44th ACM/IEEE International Conference on Software Engineering: Software Engineering in Practice, ICSE-SEIP 2022 - Pittsburgh, United States
Duration: 22 05 202227 05 2022

Publication series

NameProceedings - International Conference on Software Engineering
ISSN (Print)0270-5257

Conference

Conference44th ACM/IEEE International Conference on Software Engineering: Software Engineering in Practice, ICSE-SEIP 2022
Country/TerritoryUnited States
CityPittsburgh
Period22/05/2227/05/22

Bibliographical note

Publisher Copyright:
© 2022 IEEE.

Keywords

  • asynchrony
  • call graph
  • debugging
  • dynamic analysis
  • JavaScript

Fingerprint

Dive into the research topics of 'An Asynchronous Call Graph for JavaScript'. Together they form a unique fingerprint.

Cite this