JOURNAL ARTICLE

Extraction and Mutation at a High Level: Template-Based Fuzzing for JavaScript Engines

Wai Kin WongDongwei XiaoCheuk Tung LaiYiteng PengDaoyuan WuShuai Wang

Year: 2025 Journal:   Proceedings of the ACM on Programming Languages Vol: 9 (OOPSLA2)Pages: 2898-2926   Publisher: Association for Computing Machinery

Abstract

JavaScript (JS) engines implement complex language semantics and optimization strategies to support the dynamic nature of JS, making them difficult to test thoroughly and prone to subtle, security-critical bugs. Existing fuzzers often struggle to generate diverse and valid test cases. They either rely on syntax-level mutations that lack semantic awareness or perform limited, local mutations on concrete code, thus failing to explore deeper, more complex program behaviors. This paper presents TemuJs, a novel fuzzing framework that performs extraction and mutation at a high level, operating on abstract templates derived from real-world JS programs. These templates capture coarse-grained program structures with semantic placeholders, enabling semantics-aware mutations that preserve the high-level intent of the original code while diversifying its behavior. By decoupling mutation from concrete syntax and leveraging a structured intermediate representation for the templates, TemuJs explores a broader and more meaningful space of program behaviors. Evaluated on three major JS engines, namely, V8, SpiderMonkey, and JavaScriptCore, TemuJs discovers 44 bugs and achieves a 10.3% increase in edge coverage compared to state-of-the-art fuzzers on average. Our results demonstrate the efficacy of high-level, template-mutation fuzzing in testing JS engines.

Keywords:

Metrics

0
Cited By
0.00
FWCI (Field Weighted Citation Impact)
43
Refs
0.40
Citation Normalized Percentile
Is in top 1%
Is in top 10%

Topics

Software Testing and Debugging Techniques
Physical Sciences →  Computer Science →  Software
Software Engineering Research
Physical Sciences →  Computer Science →  Information Systems
Teaching and Learning Programming
Physical Sciences →  Computer Science →  Computer Science Applications
© 2026 ScienceGate Book Chapters — All rights reserved.