ECOOP 2015
Sun 5 - Fri 10 July 2015 Prague, Czech Republic
Wed 8 Jul 2015 16:30 - 17:00 at Bohemia - Objects Chair(s): Kim Bruce

Proxies are the swiss army knifes of object adaptation. They introduce a level of indirection to intercept select operations on a target object and divert them as method calls to a handler. Proxies are often used as wrappers to implement access control via membranes or to enforce adherence to a contract.

One important question in the design of a proxy API is whether a proxy object has its own identity. For some applications, in particular those related to security, this choice is advantageous whereas other applications, in particular contract systems, require transparency, that is, proxies that compare equal to their target objects.

We examine the issue with transparency in detail, consider various use cases for proxies, discuss different approaches to obtain transparency, and propose two designs that cannot be bypassed by the programmer but that require modest modifications in the JavaScript engine.

Our evaluation shows that these modifications of the JavaScript interpreter and bytecode compiler have no statistically significant impact on the benchmark performance of the JavaScript engine. Furthermore, it demonstrates that contract systems implemented with non-transparent proxies can interfere with program execution in realistic setting.

Wed 8 Jul

15:30 - 17:00: Research Track - Objects at Bohemia
Chair(s): Kim BrucePomona College
research-track143636220000015:30 - 16:00
Joseph LeeCarnegie Mellon University, Jonathan AldrichCarnegie Mellon University, Troy ShawVictoria University of Wellington, Alex PotaninVictoria University of Wellington
research-track143636400000016:00 - 16:30
Timothy JonesVictoria University of Wellington, Michael HomerVictoria University of Wellington, James NobleVictoria University of Wellington
research-track143636580000016:30 - 17:00
Matthias KeilUniversity of Freiburg, Peter ThiemannUniversity of Freiburg