]> git.ipfire.org Git - thirdparty/jinja.git/commitdiff
Optimize emitting of forced yields
authorArmin Ronacher <armin.ronacher@active-4.com>
Thu, 5 Jan 2017 23:02:56 +0000 (00:02 +0100)
committerArmin Ronacher <armin.ronacher@active-4.com>
Thu, 5 Jan 2017 23:02:56 +0000 (00:02 +0100)
jinja2/compiler.py

index 51116efe5f2503fa99f4a79d18626467d727a4ae..f6c4638b2e0258dad59081c3c9eb49c0e0212a47 100644 (file)
@@ -345,11 +345,9 @@ class CodeGenerator(NodeVisitor):
         """Visit a list of nodes as block in a frame.  If the current frame
         is no buffer a dummy ``if 0: yield None`` is written automatically.
         """
-        if frame.buffer is None:
-            self.writeline('if 0: yield None')
-        else:
-            self.writeline('pass')
         try:
+            if not nodes:
+                self.writeline('pass')
             for node in nodes:
                 self.visit(node, frame)
         except CompilerExit:
@@ -555,6 +553,7 @@ class CodeGenerator(NodeVisitor):
     def write_commons(self):
         self.writeline('resolve = context.resolve_or_missing')
         self.writeline('undefined = environment.undefined')
+        self.writeline('if 0: yield None')
 
     # -- Statement Visitors