Static analysis for JavaScript can potentially help programmers find errors early during development. Although much progress has been made on analysis techniques, a major obstacle is the prevalence of libraries, in particular jQuery, which apply programming patterns that have detrimental consequences on the analysis precision and performance.
Previous work on dynamic determinacy analysis has demonstrated how information about program expressions that always resolve to a fixed value in some call context may lead to significant scalability improvements of static analysis for such code. We present a static dataflow analysis for JavaScript that infers and exploits determinacy information on-the-fly, to enable analysis of some of the most complex parts of jQuery. The analysis combines selective context and path sensitivity, constant propagation, and branch pruning, based on a systematic investigation of the main causes of analysis imprecision when using a more basic analysis.
The techniques are implemented in the TAJS analysis tool and evaluated on a collection of small programs that use jQuery. Our results show that the proposed analysis techniques boost both precision and performance, specifically for inferring type information and call graphs.
Wed 22 OctDisplayed time zone: Tijuana, Baja California change
10:30 - 12:00 | |||
10:30 22mTalk | Checking Correctness of TypeScript Interfaces for JavaScript Libraries OOPSLA Link to publication | ||
10:52 22mTalk | Determinacy in Static Analysis for jQuery OOPSLA Link to publication | ||
11:15 22mTalk | EventBreak: Analyzing the Responsiveness of User Interfaces through Performance-Guided Test Generation OOPSLA Michael Pradel University of California, Berkeley, USA, Parker Schuh University of California, Berkeley, George Necula University of California, Berkeley, Koushik Sen University of California, Berkeley Link to publication | ||
11:37 22mTalk | Using Web Corpus Statistics for Program Analysis OOPSLA Chun-Hung Hsiao University of Michigan, Michael Cafarella University of Michigan, Satish Narayanasamy University of Michigan Link to publication |