Author

Prayuj Pillai

Publication Date

Spring 2024

Degree Type

Master's Project

Degree Name

Master of Science in Computer Science (MSCS)

Department

Computer Science

First Advisor

Thomas Austin

Second Advisor

Christopher J Pollett

Third Advisor

Fabio Di Troia

Keywords

Narcissus, Echo, JavaScript, Taint Tracking, Information Flow Analysis

Abstract

Narcissus is a JavaScript interpreter written in JavaScript. While it is a good engine for experimenting with JavaScript’s design, it does not integrate easily into the browser. This project introduces ‘‘Echo’’, a browser add-on designed to execute Narcissus JavaScript files and scripts within web browsers. The project explores the performance of the Narcissus interpreter against native browser JavaScript engines and benchmarks the results, showcasing the trade-offs in running an experimental engine—the Narcissus interpreter—on the browser versus native JavaScript. Additionally, as a proof of concept, we implement taint tracking, a capability meant to boost security by preventing sensitive data from being corrupted. This builds on prior uses of Narcissus for security and language feature prototyping.

Available for download on Thursday, May 22, 2025

Share

COinS