diff options
author | jam <jam@chromium.org> | 2015-12-14 21:23:19 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-12-15 05:24:17 +0000 |
commit | 6c123eebf04d2aa9de44e87f4b8e3ee30285113e (patch) | |
tree | e29a2d9f2a15b070c7f74b13bc8387ba6bb3195c /mojo/public/third_party/jinja2/optimizer.py | |
parent | ffff2962f67fa072643ff5f69a74165718aa274e (diff) | |
download | chromium_src-6c123eebf04d2aa9de44e87f4b8e3ee30285113e.zip chromium_src-6c123eebf04d2aa9de44e87f4b8e3ee30285113e.tar.gz chromium_src-6c123eebf04d2aa9de44e87f4b8e3ee30285113e.tar.bz2 |
Remove directories in mojo/public/third_party that just mirrored third_party.
This isn't needed now that the SDK is in the chrome repo.
Review URL: https://codereview.chromium.org/1530433002
Cr-Commit-Position: refs/heads/master@{#365158}
Diffstat (limited to 'mojo/public/third_party/jinja2/optimizer.py')
-rw-r--r-- | mojo/public/third_party/jinja2/optimizer.py | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/mojo/public/third_party/jinja2/optimizer.py b/mojo/public/third_party/jinja2/optimizer.py deleted file mode 100644 index 00eab11..0000000 --- a/mojo/public/third_party/jinja2/optimizer.py +++ /dev/null @@ -1,68 +0,0 @@ -# -*- coding: utf-8 -*- -""" - jinja2.optimizer - ~~~~~~~~~~~~~~~~ - - The jinja optimizer is currently trying to constant fold a few expressions - and modify the AST in place so that it should be easier to evaluate it. - - Because the AST does not contain all the scoping information and the - compiler has to find that out, we cannot do all the optimizations we - want. For example loop unrolling doesn't work because unrolled loops would - have a different scoping. - - The solution would be a second syntax tree that has the scoping rules stored. - - :copyright: (c) 2010 by the Jinja Team. - :license: BSD. -""" -from jinja2 import nodes -from jinja2.visitor import NodeTransformer - - -def optimize(node, environment): - """The context hint can be used to perform an static optimization - based on the context given.""" - optimizer = Optimizer(environment) - return optimizer.visit(node) - - -class Optimizer(NodeTransformer): - - def __init__(self, environment): - self.environment = environment - - def visit_If(self, node): - """Eliminate dead code.""" - # do not optimize ifs that have a block inside so that it doesn't - # break super(). - if node.find(nodes.Block) is not None: - return self.generic_visit(node) - try: - val = self.visit(node.test).as_const() - except nodes.Impossible: - return self.generic_visit(node) - if val: - body = node.body - else: - body = node.else_ - result = [] - for node in body: - result.extend(self.visit_list(node)) - return result - - def fold(self, node): - """Do constant folding.""" - node = self.generic_visit(node) - try: - return nodes.Const.from_untrusted(node.as_const(), - lineno=node.lineno, - environment=self.environment) - except nodes.Impossible: - return node - - visit_Add = visit_Sub = visit_Mul = visit_Div = visit_FloorDiv = \ - visit_Pow = visit_Mod = visit_And = visit_Or = visit_Pos = visit_Neg = \ - visit_Not = visit_Compare = visit_Getitem = visit_Getattr = visit_Call = \ - visit_Filter = visit_Test = visit_CondExpr = fold - del fold |