vm.c: pass through thrown objects

* vm.c (rb_vm_jump_tag_but_local_jump): pass through thrown objects.
  [ruby-dev:46234] [Bug #7185]
* vm_eval.c (rb_eval_cmd): if state is non-zero, val should be nil and
  rb_vm_jump_tag_but_local_jump() just jump tag.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37270 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2012-10-19 13:22:03 +00:00
parent b0e40509c3
commit 2fe13f62ef
4 changed files with 19 additions and 2 deletions

View file

@ -1335,7 +1335,7 @@ rb_eval_cmd(VALUE cmd, VALUE arg, int level)
POP_TAG();
rb_set_safe_level_force(safe);
if (state) rb_vm_jump_tag_but_local_jump(state, val);
if (state) JUMP_TAG(state);
return val;
}