Journal "Software Engineering"
a journal on theoretical and applied science and technology
ISSN 2220-3397

Issue N6 2025 year

DOI: 10.17587/prin.16.271-279
Investigation of the Implementation of Static Analysis for Evaluating the Interoperability of ECMAScript Code
A. S. Maltsev, Master's Student, i@asmalcev.ru, I. B. Gosudarev, Associate Professor, goss@itmo.ru, Federal State Autonomous Educational Institution of Higher Education "ITMO National Research University", St. Petersburg, 197101, Russian Federation
Corresponding author: Aleksandr S. Maltsev, Master's Student, Federal State Autonomous Educational Institution of Higher Education "ITMO National Research University", St. Petersburg, 197101, Russian Federation, E-mail: i@asmalcev.ru
Received on March 16, 2025
Accepted on March 31, 2025

The paper discusses the compatibility issues of JavaScript code with different platforms, such as browsers and server environments. It also provides a brief overview of some existing tools that can partially solve the problem. To address the issue, the paper proposes an innovative tool for analyzing ECMAScript code to evaluate its compatibility with different browser versions. The tool uses a pattern matching approach to describe the nodes in the code, which allows for a more declarative way of describing the different functional capabilities. The article focuses on the design of the analyzer's architecture, which allows for its future development in line with the release of new ECMAScript specifications. It's worth noting that the architecture allows for the easy integration of additional sources of ECMAScript compatibility information, significantly expanding its potential use cases. Babel is used to build an abstract syntax tree for analysis, while the MDN database provides compatibility information. The analyzer offers detailed information about a source code compatibility with target platforms, helping developers make informed decisions about technology choices and platform support planning.

Keywords: static analysis, ECMAScript, browsers, interoperability, pattern matching
pp. 271—279
For citation:
Maltsev A. S., Gosudarev I. B. Investigation of the Implementation of Static Analysis for Evaluating the Interoperability of ECMAScript Code, Programmnaya Ingeneria, 2025, vol. 16, no. 6, pp. 271—279. DOI: 10.17587/prin.16.271-279. (in Russian).
References:
  1. Simpson K. You don't know JS: ES6 and beyond, Sebastopol, CA, O'Reilly, 2016, 278 p.
  2. Hafiz M., Hasan S., King Z., Wirfs-Brock A. Growing a language: An empirical study on how (and why) developers use some recently-introduced and/or recently-evolving JavaScript fea­tures, Journal of Systems and Software, 2016, vol. 121, pp. 191—208. DOI: 10.1016/j.jss.2016.04.045.
  3. Park J., An S., Ryu S. Automatically deriving JavaScript static analyzers from specifications using Meta-level static analysis, Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering, 2022, pp. 1022—1034. DOI: 10.1145/3540250.3549097.
  4. Park J., Park J., Youn D., Ryu S. Accelerating javascript static analysis via dynamic shortcuts, Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, 2021, pp. 1129—1140.
  5. Nugroho P. A., Putra R. C., Maulana R. C., Tandra V. Usage of Unsupported Technologies in Websites Worldwide, Jurnal Ilmiah Teknik Elektro Komputer dan Informatika (JITEKI), 2024, vol. 10, no. 2, pp. 332—344. DOI: 10.26555/jiteki.v10i2.28692.
  6. Andres B. F., Perez M. Transpiler-based architecture for multi-platform web applications, Salinas, Ecuador, IEEE, 2017, 431 p. DOI: 10.1109/ETCM.2017.8247456.
  7. Kamkin A. S. Introduction to formal methods of program verification, 28 ed. Moscow, MAKS Press, 2018, 272 p. (in Russian).
  8. Admiraal C., Van den Brink W., Gerhold M. et al. Deriving modernity signatures of codebases with static analysis, Journal of Systems and Software, 2024, vol. 211, article 111973. DOI: 10.1016/j. jss.2024.111973.
  9. Bogner J., Merkel M. To type or not to type?: a systematic comparison of the software quality of JavaScript and typescript applications on GitHub, MSR'22: Proceedings of the 19th International Conference on Mining Software Repositories, 2022, pp. 658—669. DOI: 10.1145/3524842.3528454.
  10. Loring B., Mitchell D., Kinder J. ExpoSE: practical symbolic execution of standalone JavaScript, Proceedings of the 24th ACM SIGSOFT International SPIN Symposium on Model Checking of Software, 2017, pp. 196—199. DOI: 10.1145/3092282.3092295.