Proceedings of the 9th Symposium on Dynamic Languages 2013
DOI: 10.1145/2508168.2508175
|View full text |Cite
|
Sign up to set email alerts
|

Type refinement for static analysis of JavaScript

Abstract: Static analysis of JavaScript has proven useful for a variety of purposes, 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. Refinement 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 … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
4
0

Year Published

2014
2014
2019
2019

Publication Types

Select...
3
3

Relationship

1
5

Authors

Journals

citations
Cited by 15 publications
(4 citation statements)
references
References 30 publications
0
4
0
Order By: Relevance
“…TAJS [17,18], WALA [27], JSAI [15,19], and SAFE [1,21] are whole-program JavaScript analyses. Unlike the above systems, they require no annotations at all and are highly automated.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…TAJS [17,18], WALA [27], JSAI [15,19], and SAFE [1,21] are whole-program JavaScript analyses. Unlike the above systems, they require no annotations at all and are highly automated.…”
Section: Related Workmentioning
confidence: 99%
“…As a result, there is a proliferation of generic libraries and code reuse in the JavaScript community. Unfortunately, even though library authors would like to know that their libraries work correctly with any client, current verification techniques cannot verify this because they do not also follow the DRY mantra -they require reverifying libraries along with each and every client [15,[17][18][19]27]. This paper brings the DRY mantra to automatic dynamic language verification by modularly verifying libraries without the presence of client code.…”
Section: Introductionmentioning
confidence: 99%
“…As opposed to directly abstracting open objects, TAJS [21,22], WALA [31], and JSAI [19,24] extend standard field-sensitive analyses to JavaScript by adding a summary field for all unknown attributes. They employ clever interprocedural analysis tricks to propagate statically known object attributes through loops and across function call boundaries.…”
Section: Related Workmentioning
confidence: 99%
“…Further, it is possible to assign this variable to a different type by executing a different assignment statement within the same JavaScript code. The dynamic typed feature of JavaScript makes it difficult to analyze the variable types statically, as these types can be modified during program execution [15,23].…”
Section: Challengesmentioning
confidence: 99%