Bug #12170 ยป catch.diff
vm_eval.c | ||
---|---|---|
*
|
||
* catch(1) { 123 } # => 123
|
||
*
|
||
* If +throw(tag2, val)+ is called, Ruby searches up its stack for a +catch+
|
||
* block whose +tag+ has the same +object_id+ as _tag2_. When found, the block
|
||
* stops executing and returns _val_ (or +nil+ if no second argument was given
|
||
* to +throw+).
|
||
* If <code>throw(tag2, val)</code> is called, Ruby searches up its stack for
|
||
* a +catch+ block whose +tag+ has the same +object_id+ as _tag2_. When found,
|
||
* the block stops executing and returns _val_ (or +nil+ if no second argument
|
||
* was given to +throw+).
|
||
*
|
||
* catch(1) { throw(1, 456) } # => 456
|
||
* catch(1) { throw(1) } # => nil
|