istry of Human Capacities, Hungary grant 20391-
3/2018/FEKUSTRAT.
REFERENCES
Bielova, N. (2013). Survey on JavaScript security policies
and their enforcement mechanisms in a web browser.
The Journal of Logic and Algebraic Programming,
82(8):243 – 262.
Ecma International (2011). Ecmascript language
specification 5.1 edition. http://www.ecma-
international.org/ecma-262/5.1.
Elhadi, A., Maarof, M., and Hamza Osman, A. (2012). Mal-
ware detection based on hybrid signature behaviour
application programming interface call graph. Ameri-
can Journal of Applied Sciences, 9:283–288.
Feldthaus, A., Sch
¨
afer, M., Sridharan, M., Dolby, J., and
Tip, F. (2013). Efficient Construction of Approximate
Call Graphs for JavaScript IDE Services. In Proceed-
ings of the 2013 International Conference on Software
Engineering, ICSE ’13, pages 752–761. IEEE Press.
Fink, S. and Dolby, J. (2012). WALA-The TJ Watson Li-
braries for Analysis. http://wala.sourceforge.net.
Gascon, H., Yamaguchi, F., Arp, D., and Rieck, K. (2013).
Structural detection of Android malware using em-
bedded call graphs. In Proceedings of the 2013
ACM Workshop on Artificial Intelligence and Security,
AISec ’13, pages 45–54. ACM.
Guarnieri, S. and Livshits, V. B. (2009). Gatekeeper:
Mostly static enforcement of security and reliability
policies for JavaScript code. In USENIX Security Sym-
posium, volume 10, pages 78–85.
Gyimesi, P., Vancsics, B., Stocco, A., Mazinanian, D.,
Besz
´
edes,
´
A., Ferenc, R., and Mesbah, A. (2019).
BugsJS: a benchmark of JavaScript bugs. 12th IEEE
International Conference on Software Testing, Verifi-
cation and Validation. https://github.com/bugsjs.
Jensen, S. H., Møller, A., and Thiemann, P. (2009). Type
Analysis for JavaScript. In International Static Anal-
ysis Symposium, pages 238–255. Springer.
L
´
oki, G. and Herczeg, Z. (2019). Dynamic call graph gener-
ators for JavaScript. https://github.com/szeged/js-call-
graphs/tree/call-graphs.
Madsen, M., Livshits, B., and Fanning, M. (2013). Prac-
tical Static Analysis of JavaScript Applications in the
Presence of Frameworks and Libraries. In Proceed-
ings of the 2013 9th Joint Meeting on Foundations of
Software Engineering, pages 499–509. ACM.
Madsen, M., Tip, F., and Lhot
´
ak, O. (2015). Static analysis
of event-driven node.js JavaScript applications. SIG-
PLAN Not., 50(10):505–519.
Nguyen, H. V., K
¨
astner, C., and Nguyen, T. N. (2014).
Building call graphs for embedded client-side code
in dynamic web applications. In Proceedings of
the 22Nd ACM SIGSOFT International Symposium
on Foundations of Software Engineering, FSE 2014,
pages 518–529. ACM.
Ryder, B. (1979). Constructing the call graph of a program.
IEEE Transactions on Software Engineering, 5:216–
226.
Sen, K., Kalasapur, S., Brutch, T., and Gibbs, S. (2013).
Jalangi: A selective record-replay and dynamic anal-
ysis framework for JavaScript. In Proceedings of the
2013 9th Joint Meeting on Foundations of Software
Engineering, ESEC/FSE 2013, pages 488–498. ACM.
Sen, K., Sridharan, M., and Adamsen, C. Q. (2015).
Jalangi2 dynamic analyses framework for JavaScript.
https://github.com/Samsung/jalangi2.
StackOverflow (2018). Stack Over-
flow annual developer survey.
https://insights.stackoverflow.com/survey/2018.
Sun, H., Bonetta, D., Humer, C., and Binder, W. (2018). Ef-
ficient dynamic analysis for node.js. In Proceedings of
the 27th International Conference on Compiler Con-
struction, CC 2018, pages 196–206. ACM.
Toma, T. R. and Islam, M. S. (2014). An efficient mecha-
nism of generating call graph for JavaScript using dy-
namic analysis in web application. In 2014 Interna-
tional Conference on Informatics, Electronics Vision,
pages 1–6.
Yu, D., Chander, A., Islam, N., and Serikov, I. (2007).
JavaScript instrumentation for browser security. SIG-
PLAN Not., 42(1):237–249.
Evaluation and Comparison of Dynamic Call Graph Generators for JavaScript
479