diff options
| author | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-05-22 17:16:39 +0000 |
|---|---|---|
| committer | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-05-22 17:16:39 +0000 |
| commit | ccefbed28957d15b656849055721616d12e2587d (patch) | |
| tree | 83e4145b63f37532249b75580519da68616bd091 /eval.c | |
| parent | 566f1b4ef430cf551a9751ed5233f6e83f039080 (diff) | |
| download | ruby-ccefbed28957d15b656849055721616d12e2587d.tar.gz ruby-ccefbed28957d15b656849055721616d12e2587d.tar.xz ruby-ccefbed28957d15b656849055721616d12e2587d.zip | |
merge -c 12187
git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8_6@12319 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
| -rw-r--r-- | eval.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -5005,8 +5005,10 @@ rb_yield_0(val, self, klass, flags, avalue) CHECK_INTS; goto redo; case TAG_NEXT: - state = 0; - result = prot_tag->retval; + if (!lambda) { + state = 0; + result = prot_tag->retval; + } break; case TAG_BREAK: if (TAG_DST()) { @@ -8605,6 +8607,7 @@ proc_invoke(proc, args, self, klass) proc_jump_error(TAG_RETRY, Qnil); /* xxx */ JUMP_TAG(state); break; + case TAG_NEXT: case TAG_BREAK: if (!pcall && result != Qundef) { proc_jump_error(state, result); |
