Efficient Access Analysis Using JavaScript Proxies
by Matthias Keil and Peter Thiemann
JSConTest introduced the notions of effect monitoring and dynamic effect inference for JavaScript. It enables the description of effects with path specifications resembling regular expressions. It is implemented by an offline source code transformation.
To overcome the limitations of the JSConTest implementation, we redesigned and reimplemented effect monitoring by taking advantange of JavaScript proxies. Our new design avoids all drawbacks of the prior implementation. It guarantees full interposition; it is not restricted to a subset of JavaScript; it is self-maintaining; and its scalability to large programs is significantly better than with JSConTest.
The improved scalability has two sources. First, the reimplementation is significantly faster than the original, transformation-based implementation. Second, the reimplementation relies on the fly-weight pattern and on trace reduction to conserve memory. Only the combination of these techniques enables monitoring and inference for large programs.
Software Download
- git clone https://github.com/keil/TreatJS.git
Publications
Research Paper
-
Matthias Keil, Peter Thiemann
Efficient Dynamic Access Analysis Using JavaScript Proxies
Dynamic Languages Symposium 2013, DLS'13
Indianapolis, Indiana, USA, October 28, 2013
-
Matthias Keil, Peter Thiemann
Efficient Dynamic Access Analysis Using JavaScript Proxies (Technical Report)
Institute for Computer Science, University of Freiburg
Talks
-
Matthias Keil
Efficient Dynamic Access Analysis Using JavaScript Proxies
Dynamic Languages Symposium 2013, DLS'13
Indianapolis, Indiana, USA, October 28, 2013
Related Work
-
Matthias Keil, Sankha Narayan Guria, Andreas Schlegel, Manuel Geffken, Peter Thiemann
Transparent Object Proxies for JavaScript
The European Conference on Object-Oriented Programming, ECOOP 2015
Prague, Czech Republic, July 5-10, 2015
-
Matthias Keil, Sankha Narayan Guria, Andreas Schlegel, Manuel Geffken, Peter Thiemann
Transparent Object Proxies in JavaScript (Technical Report)
Institute for Computer Science, University of Freiburg
-
Matthias Keil, Peter Thiemann
On the Proxy Identity Crisis (Position Paper)
Institute for Computer Science, University of Freiburg
-
Matthias Keil, Peter Thiemann
Symbolic Solving of Extended Regular Expression Inequalities
IARCS Annual Conference on Foundations of
Software Technology and Theoretical Computer Science, FSTTCS 2014
India International Centre, New Delhi, India, December 15-17, 2014
-
Matthias Keil, Peter Thiemann
Symbolic Solving of Extended Regular Expression Inequalities (Technical Report)
Institute for Computer Science, University of Freiburg