Write a Blog >>
ASE 2021
Sun 14 - Sat 20 November 2021 Australia
Wed 17 Nov 2021 22:00 - 22:20 at Kangaroo - Analysis II Chair(s): Annibale Panichella

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 Nov

Displayed time zone: Hobart change

22:00 - 23:00
Analysis IIResearch Papers at Kangaroo
Chair(s): Annibale Panichella Delft University of Technology
22:00
20m
Talk
JSTAR: JavaScript Specification Type Analyzer using Refinement
Research Papers
Jihyeok Park KAIST, Seungmin An KAIST, Shin Wonho KAIST, Yusung Sim KAIST, Sukyoung Ryu KAIST
22:20
20m
Talk
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
20m
Talk
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