56 citations · 64 across the 6 of their papers we have counts for
7 papers
A statistical approach for finding property-access errors
Ellen Arteca, Max Schäfer, Frank Tip
We study the problem of finding incorrect property accesses in JavaScript where objects do not have a fixed layout, and properties (including methods) can be added, overwritten, an…
An Empirical Evaluation of Using Large Language Models for Automated Unit Test Generation
Max Schäfer, Sarah Nadi, Aryaz Eghbali +1
Unit tests play a key role in ensuring the correctness of software. However, manually creating unit tests is a laborious task, motivating the need for automation. Large Language Mo…
Stubbifier: Debloating Dynamic Server-Side JavaScript Applications
Alexi Turcotte, Ellen Arteca, Ashish Mishra +2
JavaScript is an increasingly popular language for server-side development, thanks in part to the Node.js runtime environment and its vast ecosystem of modules. With the Node.js pa…
Learning how to listen: Automatically finding bug patterns in event-driven JavaScript APIs
Ellen Arteca, Max Schäfer, Frank Tip
Event-driven programming is widely practiced in the JavaScript community, both on the client side to handle UI events and AJAX requests, and on the server side to accommodate long-…
Precise Dataflow Analysis of Event-Driven Applications
Ming-Ho Yee, Ayaz Badouraly, Ondřej Lhoták +2
Event-driven programming is widely used for implementing user interfaces, web applications, and non-blocking I/O. An event-driven program is organized as a collection of event hand…
Type Inference for Static Compilation of JavaScript (Extended Version)
Satish Chandra, Colin S. Gordon, Jean-Baptiste Jeannin +4
We present a type system and inference algorithm for a rich subset of JavaScript equipped with objects, structural subtyping, prototype inheritance, and first-class methods. The ty…
Trace Typing: An Approach for Evaluating Retrofitted Type Systems (Extended Version)
Esben Andreasen, Colin S. Gordon, Satish Chandra +3
Recent years have seen growing interest in the retrofitting of type systems onto dynamically-typed programming languages, in order to improve type safety, programmer productivity,…