From d250a7f50289ed46ca495ca6965d9ae8cdb5d602 Mon Sep 17 00:00:00 2001 From: Dylan Thacker-Smith Date: Tue, 6 Oct 2020 21:00:08 -0400 Subject: [PATCH] Set Context#initialize instance variables before squashing assigns (#1307) --- lib/liquid/context.rb | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/liquid/context.rb b/lib/liquid/context.rb index f91b5ff..9cd869d 100644 --- a/lib/liquid/context.rb +++ b/lib/liquid/context.rb @@ -34,17 +34,18 @@ module Liquid @strict_variables = false @resource_limits = resource_limits || ResourceLimits.new(Template.default_resource_limits) @base_scope_depth = 0 - squash_instance_assigns_with_environments + @interrupts = [] + @filters = [] + @global_filter = nil + @disabled_tags = {} self.exception_renderer = Template.default_exception_renderer if rethrow_errors self.exception_renderer = ->(_e) { raise } end - @interrupts = [] - @filters = [] - @global_filter = nil - @disabled_tags = {} + # Do this last, since it could result in this object being passed to a Proc in the environment + squash_instance_assigns_with_environments end # rubocop:enable Metrics/ParameterLists