class ExecJS::MiniRacerRuntime::Context

def translate

def translate
  begin
    strip_functions! yield
  rescue MiniRacer::RuntimeError => e
    ex = ProgramError.new e.message
    if backtrace = e.backtrace
      backtrace = backtrace.map { |line|
        if line =~ /JavaScript at/
          line.sub("JavaScript at ", "")
              .sub("<anonymous>", "(execjs)")
              .strip
        else
          line
        end
      }
      ex.set_backtrace backtrace
    end
    raise ex
  rescue MiniRacer::ParseError => e
    ex = RuntimeError.new e.message
    ex.set_backtrace(["(execjs):1"] + e.backtrace)
    raise ex
  end
end