Lune

OOPSLA2020Top-tier venue

Detecting locations in JavaScript programs affected by breaking library changes

Anders Møller, Benjamin Barslev Nielsen, Martin Toldam Torp

2020Year
32Citations
12Top-tier citations

Abstract

JavaScript libraries are widely used and evolve rapidly. When adapting client code to non-backwards compatible changes in libraries, a major challenge is how to locate affected API uses in client code, which is currently a difficult manual task. In this paper we address this challenge by introducing a simple pattern language for expressing API access points and a pattern-matching tool based on lightweight static analysis. Experimental evaluation on 15 popular npm packages shows that typical breaking changes are easy to express as patterns. Running the static analysis on 265 clients of these packages shows that it is accurate and efficient: it reveals usages of breaking APIs with only 14% false positives and no false negatives, and takes less than a second per client on average. In addition, the analysis is able to report its confidence, which makes it easier to identify the false positives. These results suggest that the approach, despite its simplicity, can reduce the manual effort of the client developers.

Ask about this paper

Ask your agent about it.

Lune has read the top-tier papers around this one, so every answer names the papers it rests on.

Questions to start from

Your agent calls

Lunesearch_papers

Ask in Lune

Free to start. No credit card required.

lune papers get 6ab551d2-9171-49cb-b73b-d96ef3444ef1

Cited by top-tier papers12

Ask how each one uses it

Related papers

Dusk over the sea between two cliffs drawn in fine vertical lines