Static analysis of JavaScript has proven useful for a variety of pur-poses, including optimization, error checking, security auditing, program refactoring, and more. We propose a technique called type refinement that can improve the precision of such static analyses for JavaScript without any discernible performance impact. Refine-ment is a known technique that uses the conditions in branch guards to refine the analysis information propagated along each branch path. The key insight of this paper is to recognize that JavaScript semantics include many implicit conditional checks on types, and that performing type refinement on these implicit checks provides significant benefit for analysis precision. To demonstrate the effectiveness of type r...
Identifying dependencies between classes is an essen-tial activity when maintaining and evolving sof...
The effectiveness of the widely adopted static analysis tools is often limited by JavaScript’s dynam...
Dynamic typing is a barrier for JavaScript applications to achieve high performance. Compared with s...
This poster describes a paper for static analysis of JavaScript, which has proven useful for a varie...
JavaScript is widespread. Web developers use JavaScript to enrich user experience via dynamic conten...
Dynamic scripting languages have recently experienced a dramatic growth. JavaScript in particular is...
Static analysis techniques provide a means to detect software errors early in the development proces...
Dynamic languages, such as JavaScript, give programmers the freedom to ignore types, and enable them...
JavaScript is growing explosively and is now used in large mature projects even outside the web doma...
Decades of research on type systems have led to advances in the kinds of programming features that c...
AbstractJavaScript is a powerful imperative object based language made popular by its use in web pag...
Type feedback and type inference are two common methods used to optimize dynamic languages such as J...
Although the dynamicity of languages such as JavaScript threatens our ability to understand them, by...
JavaScript is used everywhere from the browser to the server, including desktops and mobile devices....
Traditional software testing is a labor-intensive and expensive manual process. To mitigate the high...
Identifying dependencies between classes is an essen-tial activity when maintaining and evolving sof...
The effectiveness of the widely adopted static analysis tools is often limited by JavaScript’s dynam...
Dynamic typing is a barrier for JavaScript applications to achieve high performance. Compared with s...
This poster describes a paper for static analysis of JavaScript, which has proven useful for a varie...
JavaScript is widespread. Web developers use JavaScript to enrich user experience via dynamic conten...
Dynamic scripting languages have recently experienced a dramatic growth. JavaScript in particular is...
Static analysis techniques provide a means to detect software errors early in the development proces...
Dynamic languages, such as JavaScript, give programmers the freedom to ignore types, and enable them...
JavaScript is growing explosively and is now used in large mature projects even outside the web doma...
Decades of research on type systems have led to advances in the kinds of programming features that c...
AbstractJavaScript is a powerful imperative object based language made popular by its use in web pag...
Type feedback and type inference are two common methods used to optimize dynamic languages such as J...
Although the dynamicity of languages such as JavaScript threatens our ability to understand them, by...
JavaScript is used everywhere from the browser to the server, including desktops and mobile devices....
Traditional software testing is a labor-intensive and expensive manual process. To mitigate the high...
Identifying dependencies between classes is an essen-tial activity when maintaining and evolving sof...
The effectiveness of the widely adopted static analysis tools is often limited by JavaScript’s dynam...
Dynamic typing is a barrier for JavaScript applications to achieve high performance. Compared with s...