MuscalietJS: rethinking layered dynamic web runtimes

  • Authors:
  • Behnam Robatmili;Calin Cascaval;Mehrdad Reshadi;Madhukar N. Kedlaya;Seth Fowler;Vrajesh Bhavsar;Michael Weber;Ben Hardekopf

  • Affiliations:
  • Qualcomm Research Silicon Valley, Santa Clara, CA, USA;Qualcomm Research Silicon Valley, Santa Clara, CA, USA;Instart Logic, Mountain View, CA, USA;University of California, Santa Barbara, Santa Barbara, CA, USA;Mozilla, San Francisco, CA, USA;Qualcomm Research Silicon Valley, Santa Clara, CA, USA;Qualcomm Research Silicon Valley, Santa Clara, CA, USA;University of California, Santa Barbara, Santa Barbara, CA, USA

  • Venue:
  • Proceedings of the 10th ACM SIGPLAN/SIGOPS international conference on Virtual execution environments
  • Year:
  • 2014

Quantified Score

Hi-index 0.00

Visualization

Abstract

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 MuscalietJS2, 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 loss 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.