mirror of
https://github.com/Shopify/liquid.git
synced 2026-09-12 23:40:45 -07:00
fast-path slice_collection: skip copy for full Array without offset/limit
This commit is contained in:
@@ -8,6 +8,9 @@ module Liquid
|
|||||||
def self.slice_collection(collection, from, to)
|
def self.slice_collection(collection, from, to)
|
||||||
if (from != 0 || !to.nil?) && collection.respond_to?(:load_slice)
|
if (from != 0 || !to.nil?) && collection.respond_to?(:load_slice)
|
||||||
collection.load_slice(from, to)
|
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
|
else
|
||||||
slice_collection_using_each(collection, from, to)
|
slice_collection_using_each(collection, from, to)
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user