From 3799d4c488d7e30f267435178bcba48df0a2dcba Mon Sep 17 00:00:00 2001 From: Tobi Lutke Date: Wed, 11 Mar 2026 09:02:42 -0400 Subject: [PATCH] avoid allocating seen={} hash in Utils.to_s/inspect when not needed --- lib/liquid/utils.rb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/liquid/utils.rb b/lib/liquid/utils.rb index a00cb48e..6a952ee6 100644 --- a/lib/liquid/utils.rb +++ b/lib/liquid/utils.rb @@ -96,7 +96,7 @@ module Liquid obj end - def self.to_s(obj, seen = {}) + def self.to_s(obj, seen = nil) case obj when BigDecimal obj.to_s("F") @@ -105,30 +105,30 @@ module Liquid # custom implementation. Otherwise we use Liquid's default # implementation. if obj.class.instance_method(:to_s) == HASH_TO_S_METHOD - hash_inspect(obj, seen) + hash_inspect(obj, seen || {}) else obj.to_s end when Array - array_inspect(obj, seen) + array_inspect(obj, seen || {}) else obj.to_s end end - def self.inspect(obj, seen = {}) + def self.inspect(obj, seen = nil) case obj when Hash # If the custom hash implementation overrides `#inspect`, use their # custom implementation. Otherwise we use Liquid's default # implementation. if obj.class.instance_method(:inspect) == HASH_INSPECT_METHOD - hash_inspect(obj, seen) + hash_inspect(obj, seen || {}) else obj.inspect end when Array - array_inspect(obj, seen) + array_inspect(obj, seen || {}) else obj.inspect end