Accelerating Java']JavaScript Static Analysis via Dynamic Shortcuts

被引:7
|
作者
Park, Joonyoung [1 ]
Park, Jihyeok [1 ]
Youn, Dongjun [1 ]
Ryu, Sukyoung [1 ]
机构
[1] Korea Adv Inst Sci & Technol, Daejeon, South Korea
基金
新加坡国家研究基金会;
关键词
!text type='Java']Java[!/text]Script; static analysis; dynamic analysis; dynamic shortcut; sealed execution;
D O I
10.1145/3468264.3468556
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
JavaScript has become one of the most widely used programming languages for web development, server-side programming, and even micro-controllers for IoT. However, its extremely functional and dynamic features degrade the performance and precision of static analysis. Moreover, the variety of built-in functions and host environments requires excessive manual modeling of their behaviors. To alleviate these problems, researchers have proposed various ways to leverage dynamic analysis during JavaScript static analysis. However, they do not fully utilize the high performance of dynamic analysis and often sacrifice the soundness of static analysis. In this paper, we present dynamic shortcuts, a new technique to flexibly switch between abstract and concrete execution during JavaScript static analysis in a sound way. It can significantly improve the analysis performance and precision by using highly-optimized commercial JavaScript engines and lessen the modeling efforts for opaque code. We actualize the technique via SAFE(DS), an extended combination of SAFE and Jalangi, a static analyzer and a dynamic analyzer, respectively. We evaluated SAFE(DS) using 269 official tests of Lodash 4 library. Our experiment shows that SAFE(DS) is 7.81x faster than the baseline static analyzer, and it improves the precision to reduce failed assertions by 12.31% on average for 22 opaque functions.
引用
下载
收藏
页码:1129 / 1140
页数:12
相关论文
共 50 条
  • [1] Accelerating JavaScript static analysis via dynamic shortcuts
    Park, Joonyoung
    Park, Jihyeok
    Youn, Dongjun
    Ryu, Sukyoung
    ESEC/FSE 2021 - Proceedings of the 29th ACM Joint Meeting European Software Engineering Conference and Symposium on the Foundations of Software Engineering, 2021, : 1129 - 1140
  • [2] Accelerating JavaScript static analysis via dynamic shortcuts (extended version)
    Korea Advanced Institute of Science and Technology, Daejeon, Korea, Republic of
    arXiv, 1600,
  • [3] Type Refinement for Static Analysis of Java']JavaScript
    Kashyap, Vineeth
    Sarracino, John
    Wagner, John
    Wiedermann, Ben
    Hardekopf, Ben
    ACM SIGPLAN NOTICES, 2014, 49 (02) : 17 - 26
  • [4] JS']JSFox: Integrating Static and Dynamic Type Analysis of Java']JavaScript Programs
    Tan, Tian Huat
    Xue, Yinxing
    Chen, Manman
    Liu, Shuang
    Yu, Yi
    Sun, Jun
    PROCEEDINGS OF THE 2017 IEEE/ACM 39TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING COMPANION (ICSE-C 2017), 2017, : 256 - 258
  • [5] Dynamic Flow Analysis for Java']JavaScript
    Naus, Nico
    Thiemann, Peter
    TRENDS IN FUNCTIONAL PROGRAMMING (TFP 2016), 2019, 10447 : 75 - 93
  • [6] JS']JSAI: A Static Analysis Platform for Java']JavaScript
    Kashyap, Vineeth
    Dewey, Kyle
    Kuefner, Ethan A.
    Wagner, John
    Gibbons, Kevin
    Sarracino, John
    Wiedermann, Ben
    Hardekopf, Ben
    22ND ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (FSE 2014), 2014, : 121 - 132
  • [7] Revamping Java']JavaScript Static Analysis via Localization and Remediation of Root Causes of Imprecision
    Wei, Shiyi
    Tripp, Omer
    Ryder, Barbara G.
    Dolby, Julian
    FSE'16: PROCEEDINGS OF THE 2016 24TH ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON FOUNDATIONS OF SOFTWARE ENGINEERING, 2016, : 487 - 498
  • [8] Static Analysis of Java']JavaScript Web Applications in the Wild via Practical DOM Modeling
    Park, Changhee
    Won, Sooncheol
    Jin, Joonho
    Ryu, Sukyoung
    2015 30TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE), 2015, : 552 - 562
  • [9] Dynamic Analysis Using Java']JavaScript Proxies
    Christophe, Laurent
    De Roover, Coen
    De Meuter, Wolfgang
    2015 IEEE/ACM 37TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, VOL 2, 2015, : 813 - 814
  • [10] An Analysis of the Dynamic Behavior of Java']JavaScript Programs
    Richards, Gregor
    Lebresne, Sylvain
    Burg, Brian
    Vitek, Jan
    ACM SIGPLAN NOTICES, 2010, 45 (06) : 1 - 12