diff --git a/lib/liquid/context.rb b/lib/liquid/context.rb index dcdbf396..b0f625a2 100644 --- a/lib/liquid/context.rb +++ b/lib/liquid/context.rb @@ -21,9 +21,7 @@ module Liquid end def initialize(environments = {}, outer_scope = {}, registers = {}, rethrow_errors = false, resource_limits = nil, static_registers = {}, static_environments = {}) - @environments = [environments] - @environments.flatten! - + @environments = environments.is_a?(Array) ? environments : [environments] @static_environments = [static_environments].flat_map(&:freeze).freeze @scopes = [(outer_scope || {})] @registers = registers diff --git a/lib/liquid/template.rb b/lib/liquid/template.rb index 58fb94f8..32c4396a 100644 --- a/lib/liquid/template.rb +++ b/lib/liquid/template.rb @@ -183,11 +183,11 @@ module Liquid c when Liquid::Drop drop = args.shift - drop.context = Context.new([drop, assigns, instance_assigns], new_outer_scope, registers, @rethrow_errors, @resource_limits) + drop.context = Context.new([drop, assigns].concat(instance_assigns), new_outer_scope, registers, @rethrow_errors, @resource_limits) when Hash - Context.new([args.shift, assigns, instance_assigns], new_outer_scope, registers, @rethrow_errors, @resource_limits) + Context.new([args.shift, assigns].concat(instance_assigns), new_outer_scope, registers, @rethrow_errors, @resource_limits) when nil - Context.new([assigns, instance_assigns], new_outer_scope, registers, @rethrow_errors, @resource_limits) + Context.new([assigns].concat(instance_assigns), new_outer_scope, registers, @rethrow_errors, @resource_limits) else raise ArgumentError, "Expected Hash or Liquid::Context as parameter" end