summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorYukihiro Matz Matsumoto <[email protected]>2012-12-21 23:52:40 +0900
committerYukihiro Matz Matsumoto <[email protected]>2012-12-21 23:52:40 +0900
commit40ea525d1e5a94771a5b1e57f001267dfe8da046 (patch)
tree52fdf41d0d86fb119ffcc17bd5bda0c6db7e8c1f /src
parente48ed9c9649340544156dba57e3a6f29f536066b (diff)
downloadmruby-40ea525d1e5a94771a5b1e57f001267dfe8da046.tar.gz
mruby-40ea525d1e5a94771a5b1e57f001267dfe8da046.zip
should raise error on return in block in top-level; close #664
Diffstat (limited to 'src')
-rw-r--r--src/vm.c4
1 files changed, 4 insertions, 0 deletions
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: