Class: Peruby::Op::Return
Overview
Non-local subroutine return.
Instance Method Summary collapse
-
#initialize(expression) ⇒ Return
constructor
A new instance of Return.
- #return_callable ⇒ Object
- #return_value(env, context) ⇒ Object
- #run(env, _context) ⇒ Object
Methods inherited from Base
#argument_cells, #local_slot, #lvalue, #run_subroutine, #to_callable, #warning_directive?
Constructor Details
#initialize(expression) ⇒ Return
Returns a new instance of Return.
135 136 137 |
# File 'lib/peruby/op/call.rb', line 135 def initialize(expression) @expression = expression end |
Instance Method Details
#return_callable ⇒ Object
147 148 149 150 |
# File 'lib/peruby/op/call.rb', line 147 def return_callable expression = @expression&.to_callable ->(env, context) { expression&.call(env, context) } end |
#return_value(env, context) ⇒ Object
143 144 145 |
# File 'lib/peruby/op/call.rb', line 143 def return_value(env, context) @expression&.run(env, context) end |
#run(env, _context) ⇒ Object
139 140 141 |
# File 'lib/peruby/op/call.rb', line 139 def run(env, _context) throw :peruby_return, @expression&.run(env, env.want) end |