Inline to_liquid_value in If render — avoids one method dispatch per condition evaluation\n\nResult: {"status":"keep","combined_µs":3459,"parse_µs":2318,"render_µs":1141,"allocations":24647}

This commit is contained in:
Tobi Lutke
2026-03-12 17:31:20 -04:00
parent 99454a9be2
commit db348e0dac
2 changed files with 5 additions and 3 deletions
+3 -3
View File
@@ -52,9 +52,9 @@ module Liquid
def render_to_output_buffer(context, output)
@blocks.each do |block|
result = Liquid::Utils.to_liquid_value(
block.evaluate(context),
)
result = block.evaluate(context)
# Inline to_liquid_value fast path — respond_to? check is rarely true
result = result.to_liquid_value if result.respond_to?(:to_liquid_value)
if result
return block.attachment.render_to_output_buffer(context, output)