From cf062e1da2bd6ad24e31be1892b38d48f3c45dcf Mon Sep 17 00:00:00 2001 From: Tobi Lutke Date: Wed, 11 Mar 2026 08:50:34 -0400 Subject: [PATCH] fast-path slice_collection: skip copy for full Array without offset/limit --- lib/liquid/utils.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/liquid/utils.rb b/lib/liquid/utils.rb index 084739a2..a00cb48e 100644 --- a/lib/liquid/utils.rb +++ b/lib/liquid/utils.rb @@ -8,6 +8,9 @@ module Liquid def self.slice_collection(collection, from, to) if (from != 0 || !to.nil?) && collection.respond_to?(:load_slice) collection.load_slice(from, to) + elsif from == 0 && to.nil? && collection.is_a?(Array) + # Fast path: no offset/limit on an Array — return as-is (avoid copy) + collection else slice_collection_using_each(collection, from, to) end