class Sass::Tree::Visitors::Perform

def perform_splat(splat, performed_keywords, kwarg_splat, environment)

Returns:
  • (Sass::Script::Value::ArgList) -

Other tags:
    Api: - private
def perform_splat(splat, performed_keywords, kwarg_splat, environment)
  args, kwargs, separator = [], nil, :comma
  if splat
    splat = splat.perform(environment)
    separator = splat.separator || separator
    if splat.is_a?(Sass::Script::Value::ArgList)
      args = splat.to_a
      kwargs = splat.keywords
    elsif splat.is_a?(Sass::Script::Value::Map)
      kwargs = arg_hash(splat)
    else
      args = splat.to_a
    end
  end
  kwargs ||= Sass::Util::NormalizedMap.new
  kwargs.update(performed_keywords)
  if kwarg_splat
    kwarg_splat = kwarg_splat.perform(environment)
    unless kwarg_splat.is_a?(Sass::Script::Value::Map)
      raise Sass::SyntaxError.new("Variable keyword arguments must be a map " +
                                  "(was #{kwarg_splat.inspect}).")
    end
    kwargs.update(arg_hash(kwarg_splat))
  end
  Sass::Script::Value::ArgList.new(args, kwargs, separator)
end