class Sass::Script::Funcall

def _perform(environment)

Raises:
  • (Sass::SyntaxError) - if the function call raises an ArgumentError

Returns:
  • (Literal) - The SassScript object that is the value of the function call

Parameters:
  • environment (Sass::Environment) -- The environment in which to evaluate the SassScript
def _perform(environment)
  args = self.args.map {|a| a.perform(environment)}
  ruby_name = name.gsub('-', '_')
  unless Haml::Util.has?(:public_instance_method, Functions, ruby_name) && ruby_name !~ /^__/
    return Script::String.new("#{name}(#{args.map {|a| a.perform(environment)}.join(', ')})")
  end
  result = Functions::EvaluationContext.new(environment.options).send(ruby_name, *args)
  result.options = environment.options
  return result
rescue ArgumentError => e
  raise e unless e.backtrace.any? {|t| t =~ /:in `(block in )?(#{name}|perform)'$/}
  raise Sass::SyntaxError.new("#{e.message} for `#{name}'")
end