Keil, MatthiasGuria, Sankha NarayanSchlegel, AndreasGeffken, ManuelThiemann, PeterKnoop, JensZdun, Uwe2017-06-212017-06-212016978-3-88579-646-6This 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:enTransparent object proxies for javascriptText/Conference Paper1617-5468