class Opal::Nodes::BaseYieldNode

def compile_call

def compile_call
  yielding_scope = find_yielding_scope
  yielding_scope.uses_block!
  yielding_scope.block_name ||= '$yield'
  block_name = yielding_scope.block_name
  if yields_single_arg?(children)
    push expr(children.first)
    wrap "Opal.yield1(#{block_name}, ", ')'
  else
    push expr(s(:arglist, *children))
    if uses_splat?(children)
      wrap "Opal.yieldX(#{block_name}, ", ')'
    else
      wrap "Opal.yieldX(#{block_name}, [", '])'
    end
  end
end