Пример #1
0
    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
Пример #2
0
 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)
Пример #3
0
    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)
Пример #4
0
 def process(self, code):
     node = Parser.parse(code)
     ScopeScanner.scan(node)
     LocalVariables.optimize(node)
     return Compressor.Compressor().compress(node)
Пример #5
0
 def process(self, code):
     node = Parser.parse(code)
     BlockReducer.optimize(node)
     return Compressor.Compressor().compress(node)
Пример #6
0
 def process(self, code):
     return Compressor.Compressor().compress(Parser.parse(code))
Пример #7
0
 def process(self, code):
     node = Parser.parse(code)
     DeadCode.cleanup(node)
     return Compressor.Compressor().compress(node)
Пример #8
0
 def process(self, code, contextId=""):
     node = Parser.parse(code)
     CryptPrivates.optimize(node, contextId)
     return Compressor.Compressor().compress(node)
Пример #9
0
 def process(self, code):
     node = Parser.parse(code)
     ScopeScanner.scan(node)
     CombineDeclarations.optimize(node)
     return Compressor.Compressor().compress(node)
Пример #10
0
def optimize(node):
    Console.debug("Reducing block complexity...")
    Console.indent()
    result = __optimize(node, Compressor.Compressor())
    Console.outdent()
    return result