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

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

15:30 - 17:00
ObjectsResearch Track at Bohemia
Chair(s): Kim Bruce Pomona College
15:30
30m
Talk
A Theory of Tagged Objects
Research Track
Joseph Lee Carnegie Mellon University, Jonathan Aldrich Carnegie Mellon University, Troy Shaw Victoria University of Wellington, Alex Potanin Victoria University of Wellington
16:00
30m
Talk
Brand Objects for Nominal Typing
Research Track
Timothy Jones Victoria University of Wellington, Michael Homer Victoria University of Wellington, James Noble Victoria University of Wellington
16:30
30m
Talk
Transparent Object Proxies in JavaScript
Research Track
Matthias Keil University of Freiburg, Peter Thiemann University of Freiburg