Automated Conformance Testing for JavaScript Engines via Deep Compiler Fuzzing
Not on the map. Why?
Abstract (arXiv)
JavaScript (JS) is a popular, platform-independent programming language. To ensure the interoperability of JS programs across different platforms, the implementation of a JS engine should conform to the ECMAScript standard. However, doing so is challenging as there are many subtle definitions of API behaviors, and the definitions keep evolving. We present COMFORT, a new compiler fuzzing framework for detecting JS engine bugs and behaviors that deviate from the ECMAScript standard. COMFORT leverages the recent advance in deep learning-based language models to automatically generate JS test code. As a departure from prior fuzzers, COMFORT utilizes the well-structured ECMAScript specifications to automatically generate test data along with the test programs to expose bugs that could be overlooked by the developers or manually written test cases. COMFORT then applies differential testing methodologies on the generated test cases to expose standard conformance bugs. We apply COMFORT to ten mainstream JS engines. In 200 hours of automated concurrent testing runs, we discover bugs in all tested JS engines. We had identified 158 unique JS engine bugs, of which 129 have been verified, and 115 have already been fixed by the developers. Furthermore, 21 of the Comfort-generated test cases have been added to Test262, the official ECMAScript conformance test suite.
Key facts. Cited by 12 papers in the map (data through 7 Oct 2026). First posted on arXiv 15 Apr 2021.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2022: 1; 2023: 3; 2024: 2; 2025: 3; 2026: 3.
12 papers.
- 2023Is Your Code Generated by ChatGPT Really Correct? Rigorous Evaluation of Large Language Models for Code Generationcited by 1,332
- 2023Large Language Models for Compiler Optimizationcited by 52
- 2022NNSmith: Generating Diverse and Valid Test Cases for Deep Learning Compilerscited by 29
- 2023CodeFuse-13B: A Pretrained Multi-lingual Code Large Language Modelcited by 14
- 2024Compiler generated feedback for Large Language Modelscited by 9
- 2024CovRL: Fuzzing JavaScript Engines with Coverage-Guided Reinforcement Learning for LLM-based Mutationcited by 3
- 2025An Empirical Study of Bugs in Data Visualization Librariescited by 1
- 2026Agentic Fuzzing: Opportunities and Challengescited by 1
- 2026Beyond Problem Solving: UOJ-Bench for Evaluating Code Generation, Hacking, and Repair in Competitive Programmingcited by 1
- 2025Once4All: Skeleton-Guided SMT Solver Fuzzing with LLM-Synthesized Generatorscited by 0
- 2025From Coverage to Causes: Data-Centric Fuzzing for JavaScript Enginescited by 0
- 2026SmartOracle -- An Agentic Approach to Mitigate Noise in Differential Oraclescited by 0
- 2026Beyond Problem Solving: UOJ-Bench for Evaluating Code Generation, Hacking, and Repair in Competitive Programming11 Jun 2026
- 2026Agentic Fuzzing: Opportunities and Challenges11 May 2026
- 2026SmartOracle -- An Agentic Approach to Mitigate Noise in Differential Oracles21 Jan 2026
- 2025From Coverage to Causes: Data-Centric Fuzzing for JavaScript Engines19 Dec 2025
- 2025Once4All: Skeleton-Guided SMT Solver Fuzzing with LLM-Synthesized Generators28 Aug 2025
- 2025An Empirical Study of Bugs in Data Visualization Libraries18 Jun 2025
- 2024Compiler generated feedback for Large Language Models18 Mar 2024
- 2024CovRL: Fuzzing JavaScript Engines with Coverage-Guided Reinforcement Learning for LLM-based Mutation19 Feb 2024
- 2023CodeFuse-13B: A Pretrained Multi-lingual Code Large Language Model10 Oct 2023
- 2023Large Language Models for Compiler Optimization11 Sep 2023
- 2023Is Your Code Generated by ChatGPT Really Correct? Rigorous Evaluation of Large Language Models for Code Generation2 May 2023
- 2022NNSmith: Generating Diverse and Valid Test Cases for Deep Learning Compilers26 Jul 2022