From: Armin Ronacher Date: Thu, 5 Jan 2017 23:02:56 +0000 (+0100) Subject: Optimize emitting of forced yields X-Git-Tag: 2.9~30^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a4dde4b0650e28bbdd7b212f4e03a991dbaff919;p=thirdparty%2Fjinja.git Optimize emitting of forced yields --- diff --git a/jinja2/compiler.py b/jinja2/compiler.py index 51116efe..f6c4638b 100644 --- a/jinja2/compiler.py +++ b/jinja2/compiler.py @@ -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