Behnam Robatmili, Calin Cascaval, Mehrdad Reshadi, Madhukar N. Kedlaya, Seth Fowler, Vrajesh Bhavsar, Michael Weber, Ben Hardekopf
2014 Proceedings of the 10th ACM SIGPLAN/SIGOPS international conference on Virtual execution environments - VEE '14  
Layered JavaScript engines, in which the JavaScript runtime is built on top another managed runtime, provide better extensibility and portability compared to traditional monolithic engines. In this paper, we revisit the design of layered JavaScript engines and propose a layered architecture, called MuscalietJS 2 , that splits the responsibilities of a JavaScript engine between a high-level, JavaScript-specific component and a low-level, language-agnostic .NET VM. To make up for the performance
more » ... oss due to layering, we propose a two pronged approach: high-level JavaScript optimizations and exploitation of low-level VM features that produce very efficient code for hot functions. We demonstrate the validity of the MuscalietJS design through a comprehensive evaluation using both the Sunspider benchmarks and a set of web workloads. We demonstrate that our approach outperforms other layered engines such as IronJS and Rhino engines while providing extensibility, adaptability and portability. • A new, layered JavaScript engine, MuscalietJS (or MCJS), for decent performance, rapid prototyping and exploration
doi:10.1145/2576195.2576211 dblp:conf/vee/RobatmiliCRKFB0H14 fatcat:h6daq56i4jhszhn5qb7cmd2mc4