should handle break in rescue

This commit is contained in:
Yukihiro Matsumoto
2012-10-20 03:30:58 +09:00
parent b4f6f964b4
commit da637cac4a
2 changed files with 3 additions and 1 deletions
+3
View File
@@ -2146,6 +2146,9 @@ loop_break(codegen_scope *s, node *tree)
genop_peep(s, MKOP_A(OP_POPERR, 1), NOVAL);
loop = loop->prev;
}
while (loop->type == LOOP_RESCUE) {
loop = loop->prev;
}
if (loop->type == LOOP_NORMAL) {
int tmp;
-1
View File
@@ -1134,7 +1134,6 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self)
ci = mrb->ci;
break;
case OP_R_BREAK:
if (!proc->env) goto NORMAL_RETURN;
if (proc->env->cioff < 0) {
localjump_error(mrb, "break");
goto L_RAISE;