Practical Static Analysis of JavaScript Applications in the Presence of Frameworks and Libraries
Saved in:
| Title: | Practical Static Analysis of JavaScript Applications in the Presence of Frameworks and Libraries |
|---|---|
| Authors: | Magnus Madsen, Benjamin Livshits, Michael Fanning |
| Contributors: | The Pennsylvania State University CiteSeerX Archives |
| Source: | http://research.microsoft.com/en-us/um/people/livshits/papers/pdf/fse13.pdf. |
| Publication Year: | 2013 |
| Collection: | CiteSeerX |
| Subject Terms: | Algorithms, Languages Keywords points-to analysis, use analysis, JavaScript, libraries |
| Description: | JavaScript is a language that is widely-used for both webbased and standalone applications such as those in the Windows 8 operating system. Analysis of JavaScript has long been known to be challenging due to the language’s dynamic nature. On top of that, most JavaScript applications rely on large and complex libraries and frameworks, often written in a combination of JavaScript and native code such as C and C++. Stubs have been commonly employed as a partial specification mechanism to address the library problem; alas, they are tedious and error-prone. However, the manner in which library code is used within applications often sheds light on what library APIs return or pass into callbacks declared within the application. In this paper, we propose a technique which combines pointer analysis with a novel use analysis to handle many challenges posed by large JavaScript libraries. Our techniques have been implemented and empirically validated on a set of 25 Windows 8 JavaScript applications, averaging 1,587 lines of code, together with about 30,000 lines of library code, demonstrating a combination of scalability and precision. |
| Document Type: | text |
| File Description: | application/pdf |
| Language: | English |
| Relation: | http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.310.1005 |
| Availability: | http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.310.1005 http://research.microsoft.com/en-us/um/people/livshits/papers/pdf/fse13.pdf |
| Rights: | Metadata may be used without restrictions as long as the oai identifier remains attached to it. |
| Accession Number: | edsbas.4F6A775B |
| Database: | BASE |
| Abstract: | JavaScript is a language that is widely-used for both webbased and standalone applications such as those in the Windows 8 operating system. Analysis of JavaScript has long been known to be challenging due to the language’s dynamic nature. On top of that, most JavaScript applications rely on large and complex libraries and frameworks, often written in a combination of JavaScript and native code such as C and C++. Stubs have been commonly employed as a partial specification mechanism to address the library problem; alas, they are tedious and error-prone. However, the manner in which library code is used within applications often sheds light on what library APIs return or pass into callbacks declared within the application. In this paper, we propose a technique which combines pointer analysis with a novel use analysis to handle many challenges posed by large JavaScript libraries. Our techniques have been implemented and empirically validated on a set of 25 Windows 8 JavaScript applications, averaging 1,587 lines of code, together with about 30,000 lines of library code, demonstrating a combination of scalability and precision. |
|---|
Nájsť tento článok vo Web of Science