class Haml::Compiler

def compile_silent_script

def compile_silent_script
  return if @options.suppress_eval
  push_silent(@node.value[:text])
  keyword = @node.value[:keyword]
  if block_given?
    yield
    push_silent("end", :can_suppress) unless @node.value[:dont_push_end]
  elsif keyword == "end"
    if @node.parent.children.last.equal?(@node)
      # Since this "end" is ending the block,
      # we don't need to generate an additional one
      @node.parent.value[:dont_push_end] = true
    end
    # Don't restore dont_* for end because it isn't a conditional branch.
  end
end