module Haml::Precompiler

def push_script(text, preserve_script, in_tag = false, preserve_tag = false,

the result before it is added to @buffer
If preserve_script is true, Haml::Helpers#find_and_flatten is run on

the scope object and the result to be added to @buffer.
Causes text to be evaluated in the context of
def push_script(text, preserve_script, in_tag = false, preserve_tag = false,
                escape_html = false, nuke_inner_whitespace = false)
  # Prerender tabulation unless we're in a tag
  push_merged_text '' unless in_tag
  flush_merged_text
  return if options[:suppress_eval]
  raise SyntaxError.new("There's no Ruby code for = to evaluate.") if text.empty?
  push_silent "haml_temp = #{text}"
  newline_now
  args = [preserve_script, in_tag, preserve_tag,
          escape_html, nuke_inner_whitespace].map { |a| a.inspect }.join(', ')
  out = "haml_temp = _hamlout.push_script(haml_temp, #{args});"
  if @block_opened
    push_and_tabulate([:loud, out])
  else
    @precompiled << out
  end
end