class Opal::Nodes::DynamicStringNode

def compile

def compile
  if children.length > 1 && children.first.type == :str
    skip_empty = true
  else
    push '""'
  end
  children.each do |part|
    if skip_empty
      skip_empty = false
    else
      push ' + '
    end
    if part.type == :str
      push expr(part)
    else
      push '(', expr(part), ')'
    end
    wrap '(', ')' if recv?
  end
end