def apply(self, tree): """ Applies the configured optimizations to the given node tree. Modifies the tree in-place to be sure to have a deep copy if you need the original one. It raises an error instance whenever any optimization could not be applied to the given tree. """ enabled = self.__optimizations if "wrap" in enabled: try: ClosureWrapper.optimize(tree) except CryptPrivates.Error as err: raise Error(err) if "declarations" in enabled: try: CombineDeclarations.optimize(tree) except CombineDeclarations.Error as err: raise Error(err) if "blocks" in enabled: try: BlockReducer.optimize(tree) except BlockReducer.Error as err: raise Error(err) if "variables" in enabled: try: LocalVariables.optimize(tree) except LocalVariables.Error as err: raise Error(err) if "privates" in enabled: try: CryptPrivates.optimize(tree) except CryptPrivates.Error as err: raise Error(err)
def apply(self, tree): """ Applies the configured optimizations to the given node tree. Modifies the tree in-place to be sure to have a deep copy if you need the original one. It raises an error instance whenever any optimization could not be applied to the given tree. """ enabled = self.__optimizations if "wrap" in enabled: try: ClosureWrapper.optimize(tree) except CryptPrivates.Error as err: raise Error(err) if "declarations" in enabled: try: CombineDeclarations.optimize(tree) except CombineDeclarations.Error as err: raise Error(err) if "blocks" in enabled: try: BlockReducer.optimize(tree) except BlockReducer.Error as err: raise Error(err) if "variables" in enabled: try: LocalVariables.optimize(tree) except LocalVariables.Error as err: raise Error(err) if "privates" in enabled: try: CryptPrivates.optimize(tree, tree.fileId) except CryptPrivates.Error as err: raise Error(err)
def process(self, code): node = Parser.parse(code) BlockReducer.optimize(node) return Compressor.Compressor().compress(node)