JSTAR: JavaScript Specification Type Analyzer using Refinement
JavaScript is one of the mainstream programming languages for client-side programming, server-side programming, and even embedded systems. Various JavaScript engines developed and maintained in diverse fields must conform to the syntax and semantics described in ECMAScript, the standard specification of JavaScript. Since an incorrect description in ECMAScript can lead to wrong JavaScript engine implementations, checking the correctness of ECMAScript is critical and essential. However, all the specification updates are currently manually reviewed by the Ecma Technical Committee 39 (TC39) without any automated tools. Moreover, in late 2014, the committee announced the yearly release cadence and open development process of ECMAScript to quickly adapt to evolving development environments. Because of such frequent updates, checking the correctness of ECMAScript becomes more labor-intensive and error-prone.
To alleviate the problem, we propose JSTAR, a JavaScript Specification Type Analyzer using Refinement. It is the first tool that performs type analysis on JavaScript specifications and detects specification bugs using a bug detector. For a given specification, JSTAR first compiles each abstract algorithm written in a structured natural language to a corresponding function in IRES, an untyped intermediate representation for ECMAScript. Then, it performs type analysis for compiled functions with specification types defined in ECMAScript. Based on the result of type analysis, JSTAR detects specification bugs using a bug detector consisting of four checkers. To increase the precision of the type analysis, we present condition-based refinement for type analysis, which prunes out infeasible abstract states using conditions of assertions and branches. We evaluated JSTAR with all 864 versions in the official ECMAScript repository for the recent three years from 2018 to 2021. JSTAR took 137.3 seconds on average to perform type analysis for each version, and detected 157 type-related specification bugs with 59.2% precision; 93 out of 157 bugs are true bugs. Among them, 14 bugs are newly detected by JSTAR, and the committee confirmed them all.
Wed 17 NovDisplayed time zone: Hobart change
22:00 - 23:00 | |||
22:00 20mTalk | JSTAR: JavaScript Specification Type Analyzer using Refinement Research Papers | ||
22:20 20mTalk | Can neural clone detection generalize to unseen functionalities? Research Papers Chenyao Liu School of Software, Tsinghua University, Zeqi Lin Microsoft Research, China, Jian-Guang Lou Microsoft Research, Lijie Wen School of Software, Tsinghua University, Dongmei Zhang Microsoft Research | ||
22:40 20mTalk | Characterizing Transaction-Reverting Statements in Ethereum Smart Contracts Research Papers Lu Liu Southern University of Science and Technology; The Hong Kong University of Science and Technology, Lili Wei Hong Kong University of Science and Technology, Wuqi Zhang The Hong Kong University of Science and Technology, Ming Wen Huazhong University of Science and Technology, Yepang Liu Southern University of Science and Technology, Shing-Chi Cheung Hong Kong University of Science and Technology |