class Opal::Nodes::ReturnNode
def compile
def compile if def_scope = scope_to_catch_return def_scope.catch_return = true push '$opal.$return(', return_val, ')' elsif stmt? push 'return ', return_val else raise SyntaxError, "void value expression: cannot return as an expression" end end
def return_expr_in_def?
def return_expr_in_def? return scope if expr? and scope.def? end
def return_in_iter?
def return_in_iter? if scope.iter? and parent_def = scope.find_parent_def parent_def end end
def return_val
def return_val expr_or_nil value end
def scope_to_catch_return
def scope_to_catch_return return_in_iter? or return_expr_in_def? end