From 1032d57532d4a05f99c4ad2af8954a0bdec104ef Mon Sep 17 00:00:00 2001 From: Tobi Lutke Date: Wed, 11 Mar 2026 08:56:45 -0400 Subject: [PATCH] optimize Context init: avoid unnecessary array wrapping for environments --- lib/liquid/context.rb | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/liquid/context.rb b/lib/liquid/context.rb index dd615ff3..376d3ea1 100644 --- a/lib/liquid/context.rb +++ b/lib/liquid/context.rb @@ -24,10 +24,13 @@ module Liquid def initialize(environments = {}, outer_scope = {}, registers = {}, rethrow_errors = false, resource_limits = nil, static_environments = {}, environment = Environment.default) @environment = environment - @environments = [environments] - @environments.flatten! + @environments = environments.is_a?(Array) ? environments : [environments] - @static_environments = [static_environments].flatten(1).freeze + @static_environments = if static_environments.is_a?(Array) + static_environments.frozen? ? static_environments : static_environments.freeze + else + [static_environments].freeze + end @scopes = [outer_scope || {}] @registers = registers.is_a?(Registers) ? registers : Registers.new(registers) @errors = []