Exposing Bugs in JavaScript Engines through Test Transplantation and Differential Testing
Igor Lima, Jefferson Silva, Breno Miranda, Gustavo Pinto and, Marcelo d'Amorim

TL;DR
This paper explores the use of test transplantation and differential testing techniques to effectively identify functional bugs in JavaScript engines from major vendors, demonstrating their practicality and success in bug discovery.
Contribution
It introduces and empirically evaluates test transplantation and differential testing as effective methods for uncovering bugs in JavaScript engines, with real-world bug reports and fixes.
Findings
Both techniques revealed numerous bugs confirmed by developers.
35 bugs reported with test transplantation, 24 with differential testing.
Most bugs affected Apple's JSC and Microsoft's ChakraCore engines.
Abstract
Context. JavaScript is a popular programming language today with several implementations competing for market dominance. Although a specification document and a conformance test suite exist to guide engine development, bugs occur and have important practical consequences. Implementing correct engines is challenging because the spec is intentionally incomplete and evolves frequently. Objective. This paper investigates the use of test transplantation and differential testing for revealing functional bugs in JavaScript engines. The former technique runs the regression test suite of a given engine on another engine. The latter technique fuzzes existing inputs and then compares the output produced by different engines with a differential oracle. Method. We conducted experiments with engines from five major players-Apple, Facebook, Google, Microsoft, and Mozilla-to assess the effectiveness of…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Testing and Debugging Techniques · Advanced Malware Detection Techniques · Software Engineering Research
