Aran Groups audience: CAMP [1]Logo Image: Promoted to Artifact Page: YesKeywords: JavaScriptInstrumentationDynamic Program AnalysisDescriptionDescription: Aran [2] is a npm module for instrumenting JavaScript code which enables amongst other things: profiling, tracing, sandboxing, information-flow analysis, and symbolic execution. Aran performs a source-to-source code transformation largely compatible with ECMAScript2018 [3] and fully compatible with ECMAScript5 [4]. As for any other npm module, Aran can be installed by running: npm install aran. The capabilities of Aran can be extended with the below modules: Otiluke [5]: Support for modular JavaScript programs. NodeJS programs are instrumented by modifying how module imports other modules. Web pages are supported by deploying a man-in-the-middle proxy. Linvail [6]: Track primitive values through the store by deploying a transitive membranes based on ECMAScript Proxies. AranRemote [7]: Deploy single-process analysis in a distributed context "for-free". Download: https://github.com/lachrist/aran [2] https://github.com/lachrist/otiluke [5] https://github.com/lachrist/linvail [6] https://github.com/lachrist/aran-remote [7] Publications: Christophe, L., Boix, E. G., De Meuter, W., & De Roover, C. (2016, March). Linvail: A general-purpose platform for shadow execution of JavaScript. In 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER) (Vol. 1, pp. 260-270). IEEE Christophe, L., De Roover, C., Boix, E. G., & De Meuter, W. (2018, November). Orchestrating dynamic analyses of distributed processes for full-stack JavaScript programs. In Proceedings of the 17th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences (pp. 107-118). ACM.