summaryrefslogtreecommitdiff
path: root/jinja2
diff options
context:
space:
mode:
Diffstat (limited to 'jinja2')
-rw-r--r--jinja2/compiler.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/jinja2/compiler.py b/jinja2/compiler.py
index 00b29b8..50e00ab 100644
--- a/jinja2/compiler.py
+++ b/jinja2/compiler.py
@@ -1551,10 +1551,16 @@ class CodeGenerator(NodeVisitor):
@optimizeconst
def visit_Getattr(self, node, frame):
+ if self.environment.is_async:
+ self.write("await auto_await(")
+
self.write('environment.getattr(')
self.visit(node.node, frame)
self.write(', %r)' % node.attr)
+ if self.environment.is_async:
+ self.write(")")
+
@optimizeconst
def visit_Getitem(self, node, frame):
# slices bypass the environment getitem method.
@@ -1564,12 +1570,18 @@ class CodeGenerator(NodeVisitor):
self.visit(node.arg, frame)
self.write(']')
else:
+ if self.environment.is_async:
+ self.write("await auto_await(")
+
self.write('environment.getitem(')
self.visit(node.node, frame)
self.write(', ')
self.visit(node.arg, frame)
self.write(')')
+ if self.environment.is_async:
+ self.write(")")
+
def visit_Slice(self, node, frame):
if node.start is not None:
self.visit(node.start, frame)