mirror of
https://github.com/Shopify/liquid.git
synced 2026-09-12 23:40:45 -07:00
avoid empty array allocation in evaluate_filter_expressions for no-arg filters
This commit is contained in:
@@ -354,15 +354,19 @@ module Liquid
|
|||||||
end
|
end
|
||||||
|
|
||||||
def evaluate_filter_expressions(context, filter_args, filter_kwargs)
|
def evaluate_filter_expressions(context, filter_args, filter_kwargs)
|
||||||
parsed_args = filter_args.map { |expr| context.evaluate(expr) }
|
|
||||||
if filter_kwargs
|
if filter_kwargs
|
||||||
|
parsed_args = filter_args.map { |expr| context.evaluate(expr) }
|
||||||
parsed_kwargs = {}
|
parsed_kwargs = {}
|
||||||
filter_kwargs.each do |key, expr|
|
filter_kwargs.each do |key, expr|
|
||||||
parsed_kwargs[key] = context.evaluate(expr)
|
parsed_kwargs[key] = context.evaluate(expr)
|
||||||
end
|
end
|
||||||
parsed_args << parsed_kwargs
|
parsed_args << parsed_kwargs
|
||||||
|
parsed_args
|
||||||
|
elsif filter_args.empty?
|
||||||
|
Const::EMPTY_ARRAY
|
||||||
|
else
|
||||||
|
filter_args.map { |expr| context.evaluate(expr) }
|
||||||
end
|
end
|
||||||
parsed_args
|
|
||||||
end
|
end
|
||||||
|
|
||||||
class ParseTreeVisitor < Liquid::ParseTreeVisitor
|
class ParseTreeVisitor < Liquid::ParseTreeVisitor
|
||||||
|
|||||||
Reference in New Issue
Block a user