In ChangeLog there is
* vm_insnhelper.c (vm_throw): regard break as return in lambda.
[ruby-dev:34646]
but it still don't work like 1.8
vgs% /usr/bin/ruby -e 'def a() 1.times { lambda { break }.call; p :ok } end; a'
:ok
vgs%
vgs% ./ruby -ve 'def a() 1.times { lambda { break }.call; p :ok } end; a'
ruby 1.9.0 (2008-06-09 revision 17055) [i686-linux]
vgs%
Sorry.
More generally
vgs% /usr/bin/ruby -e 'def a() 1.times { lambda { return }.call; p :ok } end; a'
:ok
vgs%
vgs% ./ruby -ve 'def a() 1.times { lambda { return }.call; p :ok } end; a'
ruby 1.9.0 (2008-06-09 revision 17055) [i686-linux]
vgs%
who is right and please don't say 1.9 :-)
vgs% /usr/bin/ruby -e 'def a() lambda { return }.call; p :ok end; a'
:ok
vgs%
vgs% ./ruby -ve 'def a() lambda { return }.call; p :ok end; a'
ruby 1.9.0 (2008-06-09 revision 17055) [i686-linux]
:ok
vgs%
Guy Decoux