Science of Computer Programming: Special Issue on Advances
in Dynamic Languages(2012)
Tom Van Cutsem, Mark S. Miller
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
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.