skip to main content
10.1145/1529282.1529711acmconferencesArticle/Chapter ViewAbstractPublication PagessacConference Proceedingsconference-collections
research-article

Points-to analysis for JavaScript

Published: 08 March 2009 Publication History

Abstract

JavaScript is widely used by web developers and the complexity of JavaScript programs has increased over the last year. Therefore, the need for program analysis for JavaScript is evident. Points-to analysis for JavaScript is to determine the set of objects to which a reference variable or an object property may point. Points-to analysis for JavaScript is a basis for further program analyses for JavaScript. It has a wide range of applications in code optimization and software engineering tools. However, points-to analysis for JavaScript has not yet been developed.
JavaScript has dynamic features such as the runtime modification of objects through addition of properties or updating of methods. We propose a points-to analysis for JavaScript which precisely handles the dynamic features of JavaScript. Our work is the first attempt to analyze the points-to behavior of JavaScript. We evaluate the analysis on a set of JavaScript programs. We also apply the analysis to a code optimization technique to show that the analysis can be practically useful.

References

[1]
A. Aho, M. Lam, R. Sethi, and J. Ullman. Compilers: principles, techniques, and tools. Addison-Wesley Longman Publishing Co., Inc. Boston, MA, USA, 2006.
[2]
L. Andersen. Program analysis and specialization for the C programming language. PhD thesis, University of Cophenhagen, 1994.
[3]
C. Anderson, P. Giannini, and S. Drossopoulou. Towards type inference for JavaScript. 19th European Conference on Object-Oriented Programming, pages 428--453, 2005.
[4]
P. Cousot and R. Cousot. Compositional and inductive semantic definitions in fixpoint, equational, constraint, closure-condition, rule-based and game-theoretic form. Lecture Notes in Computer Science, 939:293--308, 1995.
[5]
M. Das. Unification-based pointer analysis with directional assignments. Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation, pages 35--46, 2000.
[6]
ECMA International. ECMAScript language specification. Stardard ECMA-262, 3rd Edition, Dec 1999. http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf.
[7]
J. Garrett. Ajax: A new approach to web applications, 2005.
[8]
N. Heintze. Set based program analysis. PhD thesis, Carnegie Mellon University, 1992.
[9]
N. Heintze. Set-based analysis of ML programs. ACM SIGPLAN Lisp Pointers, 7(3):306--317, 1994.
[10]
M. Hind and A. Pioli. Which pointer analysis should I use? ACM SIGSOFT Software Engineering Notes, 25(5):113--123, 2000.
[11]
A. Le Hors, P. Le Hégaret, L. Wood, G. Nicol, J. Robie, M. Champion, and S. Byrne. Document object model (DOM) level 3 core specification (W3C recommendation), 2004. http://www.w3.org/TR/DOM-Level-3-Core.
[12]
A. Rountev, A. Milanova, and B. Ryder. Points-to analysis for Java using annotated constraints. Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, pages 43--55, 2001.
[13]
B. Steensgaard. Points-to analysis in almost linear time. Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 32--41, 1996.
[14]
The Webkit Open Source Project. Sunspider JavaScript benchmark, 2007. http://webkit.org/perf/sunspider-0.9/sunspider.html/.
[15]
The Mozilla Organization. Rhino: JavaScript for Java, 2004. http://www.mozilla.org/rhino/.
[16]
P. Thiemann. Towards a type system for analyzing JavaScript programs. European Symposium On Programming, pages 408--422, 2005.

Cited By

View all
  • (2024)Efficient Static Vulnerability Analysis for JavaScript with Multiversion Dependency GraphsProceedings of the ACM on Programming Languages10.1145/36563948:PLDI(417-441)Online publication date: 20-Jun-2024
  • (2022)A lightweight approach for sound call graph approximationProceedings of the 37th ACM/SIGAPP Symposium on Applied Computing10.1145/3477314.3507126(1837-1844)Online publication date: 25-Apr-2022
  • (2021)The fine-grained and parallel complexity of andersen’s pointer analysisProceedings of the ACM on Programming Languages10.1145/34343155:POPL(1-29)Online publication date: 4-Jan-2021
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SAC '09: Proceedings of the 2009 ACM symposium on Applied Computing
March 2009
2347 pages
ISBN:9781605581668
DOI:10.1145/1529282
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 08 March 2009

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. JavaScript
  2. pointer analysis
  3. points-to analysis
  4. program analysis
  5. scripting language

Qualifiers

  • Research-article

Funding Sources

Conference

SAC09
Sponsor:
SAC09: The 2009 ACM Symposium on Applied Computing
March 8, 2009 - March 12, 2008
Hawaii, Honolulu

Acceptance Rates

Overall Acceptance Rate 1,650 of 6,669 submissions, 25%

Upcoming Conference

SAC '25
The 40th ACM/SIGAPP Symposium on Applied Computing
March 31 - April 4, 2025
Catania , Italy

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)7
  • Downloads (Last 6 weeks)1
Reflects downloads up to 05 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Efficient Static Vulnerability Analysis for JavaScript with Multiversion Dependency GraphsProceedings of the ACM on Programming Languages10.1145/36563948:PLDI(417-441)Online publication date: 20-Jun-2024
  • (2022)A lightweight approach for sound call graph approximationProceedings of the 37th ACM/SIGAPP Symposium on Applied Computing10.1145/3477314.3507126(1837-1844)Online publication date: 25-Apr-2022
  • (2021)The fine-grained and parallel complexity of andersen’s pointer analysisProceedings of the ACM on Programming Languages10.1145/34343155:POPL(1-29)Online publication date: 4-Jan-2021
  • (2018)Symbolic Execution for JavaScriptProceedings of the 20th International Symposium on Principles and Practice of Declarative Programming10.1145/3236950.3236956(1-14)Online publication date: 3-Sep-2018
  • (2018)Search-Based Test Data Generation for JavaScript Functions that Interact with the DOM2018 IEEE 29th International Symposium on Software Reliability Engineering (ISSRE)10.1109/ISSRE.2018.00020(88-99)Online publication date: Oct-2018
  • (2017)JaVerT: JavaScript verification toolchainProceedings of the ACM on Programming Languages10.1145/31581382:POPL(1-33)Online publication date: 27-Dec-2017
  • (2017)Analysis of JavaScript ProgramsACM Computing Surveys10.1145/310674150:4(1-34)Online publication date: 25-Aug-2017
  • (2017)Learning a Static Analyzer from DataComputer Aided Verification10.1007/978-3-319-63387-9_12(233-253)Online publication date: 13-Jul-2017
  • (2015)Detecting redundant CSS rules in HTML5 applications: a tree rewriting approachACM SIGPLAN Notices10.1145/2858965.281428850:10(1-19)Online publication date: 23-Oct-2015
  • (2015)Detecting redundant CSS rules in HTML5 applications: a tree rewriting approachProceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications10.1145/2814270.2814288(1-19)Online publication date: 23-Oct-2015
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media