@inproceedings{fournet2013fully, author = {Fournet, Cédric and Swamy, Nikhil and Chen, Juan and Dagand, Pierre-Evariste and Strub, Pierre-Yves and Livshits, Ben}, title = {Fully Abstract Compilation to JavaScript}, booktitle = {ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL) 2013}, year = {2013}, month = {January}, abstract = {Many tools allow programmers to develop applications in highlevel languages and deploy them in web browsers via compilation to JavaScript. While practical and widely used, these compilers are ad hoc: no guarantee is provided on their correctness for whole programs, nor their security for programs executed within arbitrary JavaScript contexts. This paper presents a compiler with such guarantees. We compile an ML-like language with higher-order functions and references to JavaScript, while preserving all source program properties. Relying on type-based invariants and applicative bisimilarity, we show full abstraction: two programs are equivalent in all source contexts if and only if their wrapped translations are equivalent in all JavaScript contexts. We evaluate our compiler on sample programs, including a series of secure libraries.}, publisher = {ACM}, url = {http://approjects.co.za/?big=en-us/research/publication/fully-abstract-compilation-to-javascript/}, edition = {ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL) 2013}, }