  Just-in-time compilation provides significant performance improvements for
programs written in dynamic languages. These benefits come from the ability of
the compiler to speculate about likely cases and generate optimized code for
these. Unavoidably, speculations sometimes fail and the optimizations must be
reverted. In some pathological cases, this can leave the program stuck with
suboptimal code. In this paper we propose deoptless, a technique that replaces
deoptimization points with dispatched specialized continuations. The goal of
deoptless is to take a step towards providing users with a more transparent
performance model in which mysterious slowdowns are less frequent and grave.
