From 40ea525d1e5a94771a5b1e57f001267dfe8da046 Mon Sep 17 00:00:00 2001 From: Yukihiro Matz Matsumoto Date: Fri, 21 Dec 2012 23:52:40 +0900 Subject: should raise error on return in block in top-level; close #664 --- src/vm.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src') diff --git a/src/vm.c b/src/vm.c index da6700bdf..bce92c9d8 100644 --- a/src/vm.c +++ b/src/vm.c @@ -1199,6 +1199,10 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self) goto L_RAISE; } ci = mrb->ci = mrb->cibase + e->cioff; + if (ci == mrb->cibase) { + localjump_error(mrb, "return"); + goto L_RAISE; + } break; } case OP_R_NORMAL: -- cgit v1.2.3