Benjamin S. Lerner, Herman Venter, and Dan Grossman
17 October 2010
Web sites and web browsers have recently evolved into platforms
on top of which entire applications are delivered dynamically,
mostly as JavaScript source code. This delivery format
has sparked extremely enthusiastic efforts to customize
both individual web sites and entire browsers in ways the
original authors never expected or accommodated. Such customizations
take the form of yet more script dynamically
injected into the application, and the current idioms to do so
exploit arcane JavaScript features and are extremely brittle.
In this work, we accept the popularity of extensions and seek
better linguistic mechanisms to support them.
We suggest adding to JavaScript aspect-oriented features
that allow straightforward and declarative ways for customization
code to modify the targeted application. Compared to
most prior aspect-related research, our work has a different
motivation and a different target programming environment,
both of which lead to novel design and implementation techniques.
Our aspect weaving is entirely integrated into a new
dynamic JIT compiler, which lets us properly handle advice
to first-class functions in the presence of arbitrary aliasing,
without resorting to whole-program code transformations.
Our prototype demonstrates that an aspect-oriented approach
to web-application customization is often more efficient than
current idioms while simplifying the entire process.
![]() PDF file |
In OOPSLA 2010
Publisher Association for Computing Machinery, Inc.
Copyright © 2007 by the Association for Computing Machinery, Inc. Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from Publications Dept, ACM Inc., fax +1 (212) 869-0481, or permissions@acm.org. The definitive version of this paper can be found at ACM’s Digital Library --http://www.acm.org/dl/.
| Type | Proceedings |