From 66df0ad0a8c3aa3b225c4e60899c2c3329d929d8 Mon Sep 17 00:00:00 2001 From: Kazuki Tsujimoto Date: Sat, 12 May 2012 10:59:36 +0900 Subject: Raise LocalJumpError when returning from top-level --- src/vm.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src') diff --git a/src/vm.c b/src/vm.c index 88b64ac79..876f72965 100644 --- a/src/vm.c +++ b/src/vm.c @@ -1002,6 +1002,10 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self) switch (GETARG_B(i)) { case OP_R_NORMAL: + if (ci == mrb->cibase) { + localjump_error(mrb, "return"); + goto L_RAISE; + } ci = mrb->ci; break; case OP_R_BREAK: -- cgit v1.2.3