def getCompressed(self, profile): field = "script:compressed[%s]-%s" % (self.id, profile.getId()) compressed = self.project.getCache().read(field, self.mtime) if compressed is None: permutation = self.filterPermutation( profile.getCurrentPermutation()) tree = self.__getOptimizedTree(permutation) translation = profile.getCurrentTranslation() optimization = profile.getCurrentOptimization() formatting = profile.getCurrentFormatting() if translation or optimization: tree = copy.deepcopy(tree) if translation: jasy.script.optimize.Translation.optimize( tree, translation) if optimization: try: optimization.apply(tree) except jasy.script.output.Optimization.Error as error: raise ScriptError( self, "Could not compress class! %s" % error) compressed = Compressor.Compressor(formatting).compress(tree) self.project.getCache().store(field, compressed, self.mtime) return compressed
def process(self, code, contextId=""): node = Parser.parse(code) permutation = Permutation.Permutation({ 'debug': False, 'legacy': True, 'engine': 'webkit', 'version': 3, 'fullversion': 3.11 }) Permutate.patch(node, permutation) return Compressor.Compressor().compress(node)
def process(self, code): node = Parser.parse(code) translation = Translation.TranslationItem(None, id="de_DE", table={ "Hello World": "Hallo Welt", "Short": "Kurz", "Thank you for the flowers": "Danke für die Blumen", "Hello %1!": "Hallo: %1!", "Hello %1! %1!": "Hallo: %1! %1!", "Chat[C:Chat (noum)]": "Unterhaltung", "Chat %1[C:Chat (noum) %1]": "Unterhaltung %1", "You have got a new mail[N:You have got new mails]": {0: "Du hast eine neue E-Mail", 1: "Du hast neue E-Mails"}, "You have got a new mail[N:You have got %1 new mails]": {0: "Du hast eine neue E-Mail", 1: "Du hast %1 neue E-Mail erhalten"} }) TranslationOptimizer.optimize(node, translation) return Compressor.Compressor().compress(node)
def process(self, code): node = Parser.parse(code) ScopeScanner.scan(node) LocalVariables.optimize(node) return Compressor.Compressor().compress(node)
def process(self, code): node = Parser.parse(code) BlockReducer.optimize(node) return Compressor.Compressor().compress(node)
def process(self, code): return Compressor.Compressor().compress(Parser.parse(code))
def process(self, code): node = Parser.parse(code) DeadCode.cleanup(node) return Compressor.Compressor().compress(node)
def process(self, code, contextId=""): node = Parser.parse(code) CryptPrivates.optimize(node, contextId) return Compressor.Compressor().compress(node)
def process(self, code): node = Parser.parse(code) ScopeScanner.scan(node) CombineDeclarations.optimize(node) return Compressor.Compressor().compress(node)
def optimize(node): Console.debug("Reducing block complexity...") Console.indent() result = __optimize(node, Compressor.Compressor()) Console.outdent() return result