diff options
Diffstat (limited to 'mrbgems/mruby-eval/src/eval.c')
| -rw-r--r-- | mrbgems/mruby-eval/src/eval.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/mrbgems/mruby-eval/src/eval.c b/mrbgems/mruby-eval/src/eval.c index 81bc80280..8529229c1 100644 --- a/mrbgems/mruby-eval/src/eval.c +++ b/mrbgems/mruby-eval/src/eval.c @@ -131,6 +131,10 @@ patch_irep(mrb_state *mrb, mrb_irep *irep, int bnest) } } break; + + case OP_STOP: + irep->iseq[i] = MKOP_AB(OP_RETURN, irep->nlocals, OP_R_NORMAL); + break; } } } @@ -194,7 +198,8 @@ create_proc_from_string(mrb_state *mrb, char *s, int len, mrb_value binding, con e->cioff = c->ci - c->cibase - 1; e->stack = c->ci->stackent; MRB_SET_ENV_STACK_LEN(e, c->ci[-1].proc->body.irep->nlocals); - c->ci->env = e; + c->ci->target_class = mrb->object_class; + c->ci->env = 0; proc->env = e; patch_irep(mrb, proc->body.irep, 0); |
