Static Analysis of JavaScript/React Programs

Abstract

React is a JavaScript library that is widely used in web programs. JavaScript is a dynamically typed programming language that adheres to the ECMAScript specification. SAFE 2.0 is a static analysis tool used to analyze JavaScript programs written in the ECMAScript 5 specification. But JavaScript's syntax significantly changed during the switch from ECMAScript 5 to ECMAScript 6. Thus, SAFE cannot be used to analyze most React programs, as many developers have incorporated features from ECMAScript 6 into their code. Good static analysis of React programs is important for improving Internet security because of the prevalence of React and the dynamic nature of JavaScript which can lead to unpredictable outcomes. We will develop methods for statically analyzing new features of ECMAScript 6 which will be an important step towards understanding modern JavaScript programs, particularly React programs.