Merge pull request #860 from Shopify/handle-string-node-render-exc

Avoid calling line_number on String node when rescuing a render error.
This commit is contained in:
Dylan Thacker-Smith
2017-02-10 14:13:11 -05:00
committed by GitHub
2 changed files with 5 additions and 4 deletions
+4 -3
View File
@@ -93,10 +93,11 @@ module Liquid
rescue MemoryError => e
raise e
rescue UndefinedVariable, UndefinedDropMethod, UndefinedFilter => e
context.handle_error(e, token.line_number, token.raw)
context.handle_error(e, token.line_number)
output << nil
rescue ::StandardError => e
output << context.handle_error(e, token.line_number, token.raw)
line_number = token.is_a?(String) ? nil : token.line_number
output << context.handle_error(e, line_number)
end
end
@@ -106,7 +107,7 @@ module Liquid
private
def render_node(node, context)
node_output = (node.respond_to?(:render) ? node.render(context) : node)
node_output = node.is_a?(String) ? node : node.render(context)
node_output = node_output.is_a?(Array) ? node_output.join : node_output.to_s
context.resource_limits.render_length += node_output.length
+1 -1
View File
@@ -74,7 +74,7 @@ module Liquid
@interrupts.pop
end
def handle_error(e, line_number = nil, raw_token = nil)
def handle_error(e, line_number = nil)
e = internal_error unless e.is_a?(Liquid::Error)
e.template_name ||= template_name
e.line_number ||= line_number