Call Me Maybe: Enhancing JavaScript Call Graph Construction using Graph Neural Networks
Masudul Hasan Masud Bhuiyan, Gianluca De Stefano, Giancarlo Pellegrino, Cristian-Alexandru Staicu

TL;DR
This paper introduces GRAPHIA, a graph neural network-based approach that significantly improves the accuracy of JavaScript call graph construction by predicting missed call edges, aiding static analysis and bug detection.
Contribution
It presents the first application of GNN-based link prediction to full multi-file JavaScript program graphs, enhancing call graph completeness.
Findings
Ranks correct call targets in over 42% of unresolved cases
Within top 5 candidates in 72% of cases
Builds large-scale program graphs with millions of edges
Abstract
Static analysis plays a key role in finding bugs, including security issues. A critical step in static analysis is building accurate call graphs that model function calls in a program. However, due to hard-to-analyze language features, existing call graph construction algorithms for JavaScript are neither sound nor complete. Prior work shows that even advanced solutions produce false edges and miss valid ones. In this work, we assist these tools by identifying missed call edges. Our main idea is to frame the problem as link prediction on full program graphs, using a rich representation with multiple edge types. Our approach, GRAPHIA, leverages recent advances in graph neural networks to model non-local relationships between code elements. Concretely, we propose representing JavaScript programs using a combination of syntactic- and semantic-based edges. GRAPHIA can learn from imperfect…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
