Gesellschaft für Informatik e.V.

Lecture Notes in Informatics

Software Engineering 2016 P-252, 23-24 (2016).

Gesellschaft für Informatik, Bonn

Copyright © Gesellschaft für Informatik, Bonn


Transparent object proxies for javascript

Matthias Keil , Sankha Narayan Guria , Andreas Schlegel , Manuel Geffken and Peter Thiemann


This work appeared in the conference proceedings of the European Conference on Object-Oriented Programming, ECOOP 2015. One important question in the design of a proxy API is whether a proxy object should inherit the identity of its target. Apparently proxies should have their own identity for security-related applications whereas other applications, in particular contract systems, require transparent proxies that compare equal to their target objects. In this work we examine the issue with transparency in various use cases for proxies, discuss different approaches to obtain transparency, and propose two designs that require modest modifications in the JavaScript engine and cannot be bypassed by the programmer. The JavaScript Proxy API embodies a design decision that reveals the presence of proxies in some important use cases. This decision concerns object equality. Proxies are opaque, which means that each proxy has its own identity, different from all other (proxy or nonproxy) objects. Given opaque proxies, an equality test can be used to distinguish a proxy from its target as demonstrated in the following example:

Full Text: PDF

Gesellschaft für Informatik, Bonn
ISBN 978-3-88579-646-6

Last changed 25.02.2016 18:38:59