class Opal::Nodes::XStringNode

def compile_single_line(children)

def compile_single_line(children)
  has_embeded_return = false
  first_child  = children.shift
  single_child = children.empty?
  first_child ||= s(:nil)
  if first_child.type == :str
    first_value = first_child.loc.expression.source.strip
    has_embeded_return = first_value =~ /^return\b/
  end
  push('return ') if @returning && !has_embeded_return
  last_child = children.pop || first_child
  last_value = extract_last_value(last_child) if last_child.type == :str
  unless single_child
    # assuming there's an interpolation somewhere (type != :str)
    @should_add_semicolon = false
    compile_child(first_child)
    children.each { |c| compile_child(c) }
  end
  if last_child.type == :str
    push Fragment.new(last_value, scope, last_child)
  else
    compile_child(last_child)
  end
end