FlashFreeze: low-overhead JavaScript instrumentation for function serialization

Jonathan Van der Cruysse,Lode Hoste,Wolfgang Van Raemdonck

Proceedings of the 4th ACM SIGPLAN International Workshop on Meta-Programming Techniques and Reflection(2019)

引用 3|浏览7
暂无评分
摘要
Object serialization is important to a variety of applications, including session migration and distributed computing. A general JavaScript object serializer must support function serialization as functions are first-class objects. However, JavaScript offers no built-in function serialization and limits custom serializers by exposing no meta operator to query a function’s captured variables. Code instrumentation can expose captured variables but state-of-the-art instrumentation techniques introduce high overheads, vary in supported syntax and/or use complex (de)serialization algorithms. We introduce FlashFreeze, an instrumentation technique based on capture lists. FlashFreeze achieves a tiny run time overhead: an Octane score reduction of 3% compared to 76% for the state-of-the-art ThingsMigrate tool and 1% for the work-in-progress FSM tool. FlashFreeze supports all self-contained ECMAScript 5 programs except for specific uses of eval, with, and source code inspection. FlashFreeze’s construction gives rise to simple (de)serialization algorithms.
更多
查看译文
关键词
Closures, Compilers, Instrumentation, JavaScript, Serialization, TypeScript
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要