diff --git a/lib/liquid/template.rb b/lib/liquid/template.rb
index 10a7804..a4895d8 100644
--- a/lib/liquid/template.rb
+++ b/lib/liquid/template.rb
@@ -50,6 +50,7 @@ module Liquid
# creates a new Template from an array of tokens. Use Template.parse instead
def initialize
+ @resource_limits = {}
end
# Parse source code.
@@ -88,7 +89,7 @@ module Liquid
#
def render(*args)
return '' if @root.nil?
-
+
context = case args.first
when Liquid::Context
args.shift
diff --git a/test/liquid/template_test.rb b/test/liquid/template_test.rb
index 9a04e88..6fb68e8 100644
--- a/test/liquid/template_test.rb
+++ b/test/liquid/template_test.rb
@@ -112,4 +112,12 @@ class TemplateTest < Test::Unit::TestCase
assert_equal "Liquid error: Memory limits exceeded", t.render()
assert t.resource_limits[:reached]
end
+
+ def test_resource_limits_hash_in_template_gets_updated_even_if_no_limits_are_set
+ t = Template.parse("{% for a in (1..100) %} {% assign foo = 1 %} {% endfor %}")
+ t.render()
+ assert t.resource_limits[:assign_score_current] > 0
+ assert t.resource_limits[:render_score_current] > 0
+ assert t.resource_limits[:render_length_current] > 0
+ end
end # TemplateTest