diff --git a/src/vm.c b/src/vm.c index 3b8119c67..ee5a0fd9e 100644 --- a/src/vm.c +++ b/src/vm.c @@ -1322,10 +1322,13 @@ RETRY_TRY_BLOCK: mrb_callinfo *ci, *nci; mrb_value self = regs[0]; - /* temporary limitation */ - mrb_assert(a==1); - proc = mrb->c->ensure[--mrb->c->eidx]; + mrb_assert(a==1); /* temporary limitation */ ci = mrb->c->ci; + if (mrb->c->eidx == ci->epos) { + NEXT; + } + + proc = mrb->c->ensure[--mrb->c->eidx]; nci = cipush(mrb); nci->mid = ci->mid; nci->argc = 0;