Robust Trait Composition for JavaScript
Venue
Science of Computer Programming: Special Issue on Advances in Dynamic Languages (2012)
Publication Year
2012
Authors
Tom Van Cutsem, Mark S. Miller
BibTeX
Abstract
We introduce traits.js, a small, portable trait composition library for Javascript.
Traits are a more robust alternative to multiple inheritance and enable object
composition and reuse. traits.js is motivated by two goals: first, it is an
experiment in using and extending Javascript's recently added meta-level object
description format. By reusing this standard description format, traits.js can be
made more interoperable with similar libraries, and even with built-in primitives.
Second, traits.js makes it convenient to create "high-integrity" objects whose
integrity cannot be violated by clients, an important property in the context of
mash-ups composed from mutually suspicious scripts. We describe the design of
traits.js and provide an operational semantics for TRAITS-JS, a minimal calculus
that models the core functionality of the library.
