Abstract—Abstract—Because of the dynamic nature of JavaScript, an array access operation with a property (index) that is out of its range will not throw an arrayIndexoutOfBound exception, but will silently return the value undefined. This can cause programs to crash or malfunction. This work extends the JavaScript language with range assertions and allows developers to insert them at any program point. Range assertions could help detect such silent arrayIndexoutOfBound exceptions and can be useful for program understanding and debugging. We propose an assertion language that can be used in any JavaScript static analyzer. Assertions are statically checked and possible violations are reported. The experiments on a set of benchmark programs reported a violation that would have been previously unnoticed.
Index Terms—Index Terms—Abstract interpretation, interval domain, JavaScript, range assertions.
Lunjin Lu and Astrid Younang are with the Computer Science and Engineering department at Oakland University in Michigan, USA (e-mail: L2Lu@ oakland.edu, awaindja@oakland.edu).
[PDF]
Cite:Astrid Younang and Lunjin Lu, "Static Checking of Range Assertions in JavaScript Programs," International Journal of Computer Theory and Engineering vol. 9, no. 5, pp. 346-350, 2017.