def __init__(<EOL>self,<EOL>obfuscate_globals=False,<EOL>shadow_funcname=False,<EOL>reserved_keywords=()):
<EOL>self.identifiers = {}<EOL>self.scopes = {}<EOL>self.stack = []<EOL>self.obfuscate_globals = obfuscate_globals<EOL>self.shadow_funcname = shadow_funcname<EOL>self.reserved_keywords = reserved_keywords<EOL>self.global_scope = Scope(None)<EOL>self.stack.append(self.global_scope)<EOL>
Arguments

obfuscate_globals
    Also obfuscate variables declared on the global scope.  Do
    not enable this option unless there is an explicit need to
    do so as this will likely result in code that no longer
    provide the global variable names at where they were
    expected.

    Defaults to False for the reason above.

shadow_funcname
    If True, obfuscated names within a function can shadow the
    function name that it was defined for.  In strict mode for
    Safari, names within a function cannot shadow over the name
    that the function was declared as.

    Defaults to False.

reserved_keywords
    A list of reserved keywords for the input AST that should
    not be used as an obfuscated identifier.  Defaults to an
    empty tuple.