fail

fun fail(t: Throwable)

The step threw and no inner guard owned it — in practice EvalRender.stack itself failing, since every script throw is answered before this. Completing the future is the whole job; the alternative is a caller blocked on it forever. So NOTHING here may throw: the render is deferred onto that caller, which unlike a tick thread has somewhere to put a second failure. Here rather than in the driver because out is private, and no ending may drop it.