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 language | English |
---|---|
Title of host publication | Proceedings - 2022 ACM/IEEE 44th International Conference on Software Engineering |
Subtitle of host publication | Software Engineering in Practice, ICSE-SEIP 2022 |
Publisher | IEEE Computer Society |
Pages | 29-30 |
Number of pages | 2 |
ISBN (Electronic) | 9781665495905 |
DOIs | |
State | Published - 2022 |
Externally published | Yes |
Event | 44th ACM/IEEE International Conference on Software Engineering: Software Engineering in Practice, ICSE-SEIP 2022 - Pittsburgh, United States Duration: 22 05 2022 → 27 05 2022 |
Publication series
Name | Proceedings - International Conference on Software Engineering |
---|---|
ISSN (Print) | 0270-5257 |
Conference
Conference | 44th ACM/IEEE International Conference on Software Engineering: Software Engineering in Practice, ICSE-SEIP 2022 |
---|---|
Country/Territory | United States |
City | Pittsburgh |
Period | 22/05/22 → 27/05/22 |
Bibliographical note
Publisher Copyright:© 2022 IEEE.
Keywords
- asynchrony
- call graph
- debugging
- dynamic analysis
- JavaScript