  This paper is about the interface between languages which use a garbage
collector and those which use fancy types for safe manual memory management.
Garbage collection is the traditional memory management scheme for functional
languages, whereas type systems are now used for memory safety in imperative
languages. We use existing techniques for linear capabilities to provide safe
access to copyable references, but the application to languages with a tracing
garbage collector, and to data with explicit lifetimes is new. This work is
related to mixed linear/non-linear programming, but the languages being mixed
are Rust and JavaScript.

Programming Languages