From: Armin Ronacher Date: Fri, 6 Jan 2017 15:40:41 +0000 (+0100) Subject: Write loads in order they were defined X-Git-Tag: 2.9~21 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=960228892b5262ded73e72152d4cd53da78508af;p=thirdparty%2Fjinja.git Write loads in order they were defined --- diff --git a/jinja2/compiler.py b/jinja2/compiler.py index 65ac13e5..5cb70b8d 100644 --- a/jinja2/compiler.py +++ b/jinja2/compiler.py @@ -1264,7 +1264,7 @@ class CodeGenerator(NodeVisitor): def visit_Name(self, node, frame): if node.ctx == 'store' and frame.toplevel: - if self._assign_stack and node.name[:1] != '_': + if self._assign_stack: self._assign_stack[-1].add(node.name) ref = frame.symbols.ref(node.name) diff --git a/jinja2/idtracking.py b/jinja2/idtracking.py index f99c568d..8824dfef 100644 --- a/jinja2/idtracking.py +++ b/jinja2/idtracking.py @@ -1,3 +1,4 @@ +from collections import OrderedDict from jinja2.visitor import NodeVisitor from jinja2._compat import iteritems @@ -31,7 +32,7 @@ class Symbols(object): self.level = parent.level + 1 self.parent = parent self.refs = {} - self.loads = {} + self.loads = OrderedDict() self.stores = set() def analyze_node(self, node, **kwargs):