DrAsync: Identifying and Visualizing Anti-Patterns in Asynchronous JavaScriptBest Artifact Award
Thu 12 May 2022 21:05 - 21:10 at ICSE room 1-odd hours - Evolution and Maintenance 3 Chair(s): Mohamed Wiem Mkaouer
Fri 27 May 2022 11:25 - 11:30 at Room 306+307 - Papers 21: Programming Languages and Refactoring Chair(s): Julian Dolby
Promises and async/await have become popular mechanisms for implementing asynchronous computations in JavaScript, but despite their popularity, programmers have difficulty using them. This paper identifies 8 anti-patterns in promise-based JavaScript code that are prevalent across popular JavaScript repositories. We present a light-weight static analysis for automatically detecting these anti-patterns. This analysis is embedded in an interactive visualization tool that additionally relies on dynamic analysis to visualize promise lifetimes and instances of anti-patterns executed at run time. By enabling the user to navigate between promises in the visualization and the source code fragments that they originate from, problems and optimization opportunities can be identified.
We implement this approach in a tool called DrAsync, and found 2.5k static instances of anti-patterns in 20 popular JavaScript repositories. Upon examination of a subset of these, we found that the majority of problematic code reported by DrAsync could be eliminated through refactoring. Further investigation revealed that, in a few cases, the elimination of anti-patterns reduced the time needed to execute the refactored code fragments. Moreover, DrAsync’s visualization of promise lifetimes and relationships provided additional insight into the execution behavior of asynchronous programs and helped identify further optimization opportunities.
Thu 12 MayDisplayed time zone: Eastern Time (US & Canada) change
12:00 - 13:00 | Refactoring 2Technical Track / SEIP - Software Engineering in Practice / Journal-First Papers at ICSE room 4-even hours Chair(s): Julian Dolby IBM Research, USA | ||
12:00 5mTalk | How Do I Refactor This? An Empirical Study on Refactoring Trends and Topics in Stack Overflow Journal-First Papers Anthony Peruma Rochester Institute of Technology, Steven Simmons Rochester Institute of Technology, Eman Abdullah AlOmar Stevens Institute of Technology, Christian D. Newman Rochester Institute of Technology, Mohamed Wiem Mkaouer Rochester Institute of Technology, Ali Ouni ETS Montreal, University of Quebec Link to publication DOI Pre-print Media Attached | ||
12:05 5mTalk | Industry’s Cry for Tools that Support Large-Scale Refactoring SEIP - Software Engineering in Practice James Ivers Carnegie Mellon University, USA, Robert Nord Software Engineering Institute, Ipek Ozkaya Carnegie Mellon Software Engineering Institute, Chris Seifried Carnegie Mellon University, USA, Christopher Steven Timperley Carnegie Mellon University, Marouane Kessentini Oakland University, USA Pre-print Media Attached | ||
12:10 5mTalk | DrAsync: Identifying and Visualizing Anti-Patterns in Asynchronous JavaScriptBest Artifact Award Technical Track Alexi Turcotte Northeastern University, Michael D. Shah Northeastern University, USA, Mark W. Aldrich Tufts University, Frank Tip Northeastern University Pre-print Media Attached | ||
12:15 5mTalk | Inferring And Applying Type Changes Technical Track Ameya Ketkar Oregon State University, USA, Oleg Smirnov JetBrains Research, Saint Petersburg State University, Nikolaos Tsantalis Concordia University, Danny Dig University of Colorado Boulder, USA, Timofey Bryksin JetBrains Research; HSE University Pre-print Media Attached |
21:00 - 22:00 | Evolution and Maintenance 3Technical Track / SEIS - Software Engineering in Society at ICSE room 1-odd hours Chair(s): Mohamed Wiem Mkaouer Rochester Institute of Technology | ||
21:00 5mTalk | Why Do Projects Join the Apache Software Foundation? SEIS - Software Engineering in Society Nan Yang Eindhoven University of Technology, The Netherlands, Isabella Ferreira Polytechnique Montréal, Alexander Serebrenik Eindhoven University of Technology, Bram Adams Queen's University, Kingston, Ontario Pre-print Media Attached | ||
21:05 5mTalk | DrAsync: Identifying and Visualizing Anti-Patterns in Asynchronous JavaScriptBest Artifact Award Technical Track Alexi Turcotte Northeastern University, Michael D. Shah Northeastern University, USA, Mark W. Aldrich Tufts University, Frank Tip Northeastern University Pre-print Media Attached | ||
21:10 5mTalk | Knowledge-Based Environment Dependency Inference for Python Programs Technical Track Hongjie Ye Institute of Software, Chinese Academy of Sciences, Wei Chen Institute of Software at Chinese Academy of Sciences, China, Wensheng Dou Institute of Software at Chinese Academy of Sciences; University of Chinese Academy of Sciences, Guoquan Wu Institute of Software at Chinese Academy of Sciences, China, Jun Wei Institute of Software at Chinese Academy of Sciences; University of Chinese Academy of Sciences Pre-print Media Attached | ||
21:15 5mTalk | Online Summarizing Alerts through Semantic and Behavior Information Technical Track DOI Pre-print Media Attached |
Fri 27 MayDisplayed time zone: Eastern Time (US & Canada) change
11:00 - 12:30 | Papers 21: Programming Languages and RefactoringTechnical Track / SEIP - Software Engineering in Practice / Journal-First Papers / NIER - New Ideas and Emerging Results at Room 306+307 Chair(s): Julian Dolby IBM Research, USA | ||
11:00 5mTalk | Grammars for Free: Toward Grammar Inference for Ad Hoc Parsers NIER - New Ideas and Emerging Results Pre-print Media Attached | ||
11:05 5mTalk | Learning and Programming Challenges of Rust: A Mixed-Methods Study Technical Track Shuofei Zhu The Pennsylvania State University, Ziyi Zhang University of Wisconsin–Madison, Boqin Qin China Telecom Cloud Computing Corporation, Aiping Xiong The Pennsylvania State University, Linhai Song Pennsylvania State University, USA DOI Pre-print Media Attached | ||
11:10 5mTalk | Garbage Collection Makes Rust Easier to Use: A Randomized Controlled Trial of the Bronze Garbage CollectorNominated for Distinguished Paper Technical Track Michael Coblenz University of Maryland at College Park, Michelle Mazurek University of Maryland, Michael Hicks University of Maryland at College Park DOI Pre-print Media Attached | ||
11:15 5mTalk | How Do I Refactor This? An Empirical Study on Refactoring Trends and Topics in Stack Overflow Journal-First Papers Anthony Peruma Rochester Institute of Technology, Steven Simmons Rochester Institute of Technology, Eman Abdullah AlOmar Stevens Institute of Technology, Christian D. Newman Rochester Institute of Technology, Mohamed Wiem Mkaouer Rochester Institute of Technology, Ali Ouni ETS Montreal, University of Quebec Link to publication DOI Pre-print Media Attached | ||
11:20 5mTalk | Industry’s Cry for Tools that Support Large-Scale Refactoring SEIP - Software Engineering in Practice James Ivers Carnegie Mellon University, USA, Robert Nord Software Engineering Institute, Ipek Ozkaya Carnegie Mellon Software Engineering Institute, Chris Seifried Carnegie Mellon University, USA, Christopher Steven Timperley Carnegie Mellon University, Marouane Kessentini Oakland University, USA Pre-print Media Attached | ||
11:25 5mTalk | DrAsync: Identifying and Visualizing Anti-Patterns in Asynchronous JavaScriptBest Artifact Award Technical Track Alexi Turcotte Northeastern University, Michael D. Shah Northeastern University, USA, Mark W. Aldrich Tufts University, Frank Tip Northeastern University Pre-print Media Attached | ||
11:30 5mTalk | Inferring And Applying Type Changes Technical Track Ameya Ketkar Oregon State University, USA, Oleg Smirnov JetBrains Research, Saint Petersburg State University, Nikolaos Tsantalis Concordia University, Danny Dig University of Colorado Boulder, USA, Timofey Bryksin JetBrains Research; HSE University Pre-print Media Attached |