def optimize(node, contextId=""):
    
    Console.debug("Crypting private fields...")
    Console.indent()
    
    coll = __search(node)

    repl = {}
    for name in coll:
        repl[name] = "__%s" % __encode("%s.%s" + (contextId, name[2:]))
        Console.debug("Replacing private field %s with %s (context: %s)", name, repl[name], contextId)
    
    Console.debug("Found %s private fields" % len(repl))
    modified, reduction = __replace(node, repl)
    
    Console.debug("Reduced size by %s bytes" % reduction)
    Console.outdent()
    
    return modified
    


#
# Internal API
#
dataset/ETHPy150Open zynga/jasy/jasy/js/optimize/CryptPrivates.py/optimize/operator `%` -> `+`