No special support for closures is required. The compiler generates an array to represent the closure. The first element of the array is the current object, the second is a method descriptor. Any values that are required by the closure code are copied into the array. To resume the closure, the selected method is sent to the object with the array as the first argument. Remaining args are the variable portions of the closure. In this way, the object regains the authority it had when the closure was created. Any variable references that occur within the closure will be translated by the compiler into array references within the selected method. If the semantics of the closure allow it, the compiler can generate references to the object's state variables as well. Issues: The object remains referenced by the closure, even if it's state is inaccessable. In that case, the method can be a class method, and the first element of the array points to the class.