* ICSE 2018 *
Sun 27 May - Sun 3 June 2018 Gothenburg, Sweden
Fri 1 Jun 2018 10:00 - 10:20 at G1 room - Program Analysis II Chair(s): Christine Julien

It is a common practice for client-side web applications to build on various third-party JavaScript libraries. Due to the lack of namespaces in JavaScript, these libraries all share the same global namespace. As a result, one library may inadvertently modify or even delete the APIs of another library, causing unexpected behavior of library clients. Given the quickly increasing number of libraries, manually keeping track of such conflicts is practically impossible both for library developers and users. This paper presents ConflictJS, an automated and scalable approach to analyze libraries for conflicts. The key idea is to tackle the huge search space of possible conflicts in two phases. At first, a dynamic analysis of individual libraries identifies pairs of potentially conflicting libraries. Then, targeted test synthesis validates potential conflicts by creating a client application that suffers from a conflict. The overall approach is free of false positives, in the sense that it reports a problem only when such a client exists. We use ConflictJS to analyze and study conflicts among 951 real-world libraries. The results show that one out of four libraries is potentially conflicting and that 166 libraries are involved in at least one certain conflict. The detected conflicts cause crashes and other kinds of unexpected behavior. Our work helps library developers to prevent conflicts, library users to avoid combining conflicting libraries, and provides evidence that designing a language without explicit namespaces has undesirable effects.

Slides (ConflictJS_slides.pdf)201KiB

Fri 1 Jun

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

09:00 - 10:30
Program Analysis IITechnical Papers / Journal first papers at G1 room
Chair(s): Christine Julien The University of Texas at Austin
09:00
20m
Talk
Multi-Granular Conflict and Dependency Analysis in Software Engineering based on Graph Transformation
Technical Papers
Leen Lambers , Daniel Strüber University of Koblenz-Landau, Germany, Gabriele Taentzer Universität Marburg, Kristopher Born , Jevgenij Huebert
DOI Pre-print File Attached
09:20
20m
Talk
Self-Hiding Behavior in Android Apps: Detection and Characterization
Technical Papers
Zhiyong Shan Wichita State University, Iulian Neamtiu New Jersey Institute of Technology, Raina Samuel New Jersey Institute of Technology
File Attached
09:40
20m
Talk
The Scent of a Smell: An Extensive Comparison between Textual and Structural Smells
Journal first papers
Fabio Palomba , Annibale Panichella Deflt University of Technology, Andy Zaidman TU Delft, Rocco Oliveto University of Molise, Andrea De Lucia University of Salerno
Pre-print
10:00
20m
Talk
ConflictJS: Finding and Understanding Conflicts Between JavaScript Libraries
Technical Papers
Jibesh Patra Technical University of Darmstadt, Pooja N. Dixit , Michael Pradel TU Darmstadt
Pre-print File Attached
10:20
10m
Talk
Q&A in groups
Technical Papers