from js2py.pyjs import *
# setting scope
var = Scope( JS_BUILTINS )
set_global_object(var)

# Code follows:
var.registers(['esprima', 'getFromGlobals', '_typeof'])
@Js
def PyJsHoisted_getFromGlobals_(name, this, arguments, var=var):
    var = Scope({'name':name, 'this':this, 'arguments':arguments}, var)
    var.registers(['name'])
    if var.get('Object').get('prototype').callprop('hasOwnProperty', Js('_fake_exports')).neg():
        PyJsTempException = JsToPyException(var.get('Error')((Js('Could not find any value named ')+var.get('name'))))
        raise PyJsTempException
    if var.get('Object').get('prototype').get('_fake_exports').callprop('hasOwnProperty', var.get('name')):
        return var.get('Object').get('prototype').get('_fake_exports').get(var.get('name'))
    else:
        PyJsTempException = JsToPyException(var.get('Error')((Js('Could not find any value named ')+var.get('name'))))
        raise PyJsTempException
PyJsHoisted_getFromGlobals_.func_name = 'getFromGlobals'
var.put('getFromGlobals', PyJsHoisted_getFromGlobals_)
Js('use strict')
@Js
def PyJs_anonymous_0_(obj, this, arguments, var=var):
    var = Scope({'obj':obj, 'this':this, 'arguments':arguments}, var)
    var.registers(['obj'])
    return var.get('obj',throw=False).typeof()
PyJs_anonymous_0_._set_name('anonymous')
@Js
def PyJs_anonymous_1_(obj, this, arguments, var=var):
    var = Scope({'obj':obj, 'this':this, 'arguments':arguments}, var)
    var.registers(['obj'])
    return (Js('symbol') if (((var.get('obj') and PyJsStrictEq(var.get('Symbol',throw=False).typeof(),Js('function'))) and PyJsStrictEq(var.get('obj').get('constructor'),var.get('Symbol'))) and PyJsStrictNeq(var.get('obj'),var.get('Symbol').get('prototype'))) else var.get('obj',throw=False).typeof())
PyJs_anonymous_1_._set_name('anonymous')
var.put('_typeof', (PyJs_anonymous_0_ if (PyJsStrictEq(var.get('Symbol',throw=False).typeof(),Js('function')) and PyJsStrictEq(var.get('Symbol').get('iterator').typeof(),Js('symbol'))) else PyJs_anonymous_1_))
@Js
def PyJs_anonymous_3_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['require', 'module', 'exports'])
    @Js
    def PyJs_anonymous_4_(this, arguments, var=var):
        var = Scope({'this':this, 'arguments':arguments}, var)
        var.registers([])
        @Js
        def PyJs_anonymous_5_(module, exports, __webpack_require__, this, arguments, var=var):
            var = Scope({'module':module, 'exports':exports, '__webpack_require__':__webpack_require__, 'this':this, 'arguments':arguments}, var)
            var.registers(['parser_1', 'parseScript', 'tokenize', 'parseModule', 'comment_handler_1', 'jsx_parser_1', 'tokenizer_1', '__webpack_require__', 'module', 'parse', 'exports', 'syntax_1'])
            @Js
            def PyJsHoisted_parse_(code, options, delegate, this, arguments, var=var):
                var = Scope({'code':code, 'options':options, 'delegate':delegate, 'this':this, 'arguments':arguments}, var)
                var.registers(['parserDelegate', 'isModule', 'code', 'commentHandler', 'options', 'proxyDelegate', 'attachComment', 'program', 'ast', 'parser', 'collectComment', 'delegate'])
                var.put('commentHandler', var.get(u"null"))
                @Js
                def PyJs_proxyDelegate_7_(node, metadata, this, arguments, var=var):
                    var = Scope({'node':node, 'metadata':metadata, 'this':this, 'arguments':arguments, 'proxyDelegate':PyJs_proxyDelegate_7_}, var)
                    var.registers(['metadata', 'node'])
                    if var.get('delegate'):
                        var.get('delegate')(var.get('node'), var.get('metadata'))
                    if var.get('commentHandler'):
                        var.get('commentHandler').callprop('visit', var.get('node'), var.get('metadata'))
                PyJs_proxyDelegate_7_._set_name('proxyDelegate')
                var.put('proxyDelegate', PyJs_proxyDelegate_7_)
                var.put('parserDelegate', (var.get('proxyDelegate') if PyJsStrictEq(var.get('delegate',throw=False).typeof(),Js('function')) else var.get(u"null")))
                var.put('collectComment', Js(False))
                if var.get('options'):
                    var.put('collectComment', (PyJsStrictEq(var.get('options').get('comment').typeof(),Js('boolean')) and var.get('options').get('comment')))
                    var.put('attachComment', (PyJsStrictEq(var.get('options').get('attachComment').typeof(),Js('boolean')) and var.get('options').get('attachComment')))
                    if (var.get('collectComment') or var.get('attachComment')):
                        var.put('commentHandler', var.get('comment_handler_1').get('CommentHandler').create())
                        var.get('commentHandler').put('attach', var.get('attachComment'))
                        var.get('options').put('comment', Js(True))
                        var.put('parserDelegate', var.get('proxyDelegate'))
                var.put('isModule', Js(False))
                if (var.get('options') and PyJsStrictEq(var.get('options').get('sourceType').typeof(),Js('string'))):
                    var.put('isModule', PyJsStrictEq(var.get('options').get('sourceType'),Js('module')))
                pass
                if ((var.get('options') and PyJsStrictEq(var.get('options').get('jsx').typeof(),Js('boolean'))) and var.get('options').get('jsx')):
                    var.put('parser', var.get('jsx_parser_1').get('JSXParser').create(var.get('code'), var.get('options'), var.get('parserDelegate')))
                else:
                    var.put('parser', var.get('parser_1').get('Parser').create(var.get('code'), var.get('options'), var.get('parserDelegate')))
                var.put('program', (var.get('parser').callprop('parseModule') if var.get('isModule') else var.get('parser').callprop('parseScript')))
                var.put('ast', var.get('program'))
                if (var.get('collectComment') and var.get('commentHandler')):
                    var.get('ast').put('comments', var.get('commentHandler').get('comments'))
                if var.get('parser').get('config').get('tokens'):
                    var.get('ast').put('tokens', var.get('parser').get('tokens'))
                if var.get('parser').get('config').get('tolerant'):
                    var.get('ast').put('errors', var.get('parser').get('errorHandler').get('errors'))
                return var.get('ast')
            PyJsHoisted_parse_.func_name = 'parse'
            var.put('parse', PyJsHoisted_parse_)
            @Js
            def PyJsHoisted_parseModule_(code, options, delegate, this, arguments, var=var):
                var = Scope({'code':code, 'options':options, 'delegate':delegate, 'this':this, 'arguments':arguments}, var)
                var.registers(['code', 'options', 'parsingOptions', 'delegate'])
                PyJs_Object_8_ = Js({})
                var.put('parsingOptions', (var.get('options') or PyJs_Object_8_))
                var.get('parsingOptions').put('sourceType', Js('module'))
                return var.get('parse')(var.get('code'), var.get('parsingOptions'), var.get('delegate'))
            PyJsHoisted_parseModule_.func_name = 'parseModule'
            var.put('parseModule', PyJsHoisted_parseModule_)
            @Js
            def PyJsHoisted_parseScript_(code, options, delegate, this, arguments, var=var):
                var = Scope({'code':code, 'options':options, 'delegate':delegate, 'this':this, 'arguments':arguments}, var)
                var.registers(['code', 'options', 'parsingOptions', 'delegate'])
                PyJs_Object_9_ = Js({})
                var.put('parsingOptions', (var.get('options') or PyJs_Object_9_))
                var.get('parsingOptions').put('sourceType', Js('script'))
                return var.get('parse')(var.get('code'), var.get('parsingOptions'), var.get('delegate'))
            PyJsHoisted_parseScript_.func_name = 'parseScript'
            var.put('parseScript', PyJsHoisted_parseScript_)
            @Js
            def PyJsHoisted_tokenize_(code, options, delegate, this, arguments, var=var):
                var = Scope({'code':code, 'options':options, 'delegate':delegate, 'this':this, 'arguments':arguments}, var)
                var.registers(['code', 'options', 'token', 'tokens', 'tokenizer', 'delegate'])
                var.put('tokenizer', var.get('tokenizer_1').get('Tokenizer').create(var.get('code'), var.get('options')))
                pass
                var.put('tokens', Js([]))
                try:
                    while Js(True):
                        var.put('token', var.get('tokenizer').callprop('getNextToken'))
                        if var.get('token').neg():
                            break
                        if var.get('delegate'):
                            var.put('token', var.get('delegate')(var.get('token')))
                        var.get('tokens').callprop('push', var.get('token'))
                except PyJsException as PyJsTempException:
                    PyJsHolder_65_79211800 = var.own.get('e')
                    var.force_own_put('e', PyExceptionToJs(PyJsTempException))
                    try:
                        var.get('tokenizer').get('errorHandler').callprop('tolerate', var.get('e'))
                    finally:
                        if PyJsHolder_65_79211800 is not None:
                            var.own['e'] = PyJsHolder_65_79211800
                        else:
                            del var.own['e']
                        del PyJsHolder_65_79211800
                if var.get('tokenizer').get('errorHandler').get('tolerant'):
                    var.get('tokens').put('errors', var.get('tokenizer').callprop('errors'))
                return var.get('tokens')
            PyJsHoisted_tokenize_.func_name = 'tokenize'
            var.put('tokenize', PyJsHoisted_tokenize_)
            Js('use strict')
            PyJs_Object_6_ = Js({'value':Js(True)})
            var.get('Object').callprop('defineProperty', var.get('exports'), Js('__esModule'), PyJs_Object_6_)
            var.put('comment_handler_1', var.get('__webpack_require__')(Js(1.0)))
            var.put('jsx_parser_1', var.get('__webpack_require__')(Js(3.0)))
            var.put('parser_1', var.get('__webpack_require__')(Js(8.0)))
            var.put('tokenizer_1', var.get('__webpack_require__')(Js(15.0)))
            pass
            var.get('exports').put('parse', var.get('parse'))
            pass
            var.get('exports').put('parseModule', var.get('parseModule'))
            pass
            var.get('exports').put('parseScript', var.get('parseScript'))
            pass
            var.get('exports').put('tokenize', var.get('tokenize'))
            var.put('syntax_1', var.get('__webpack_require__')(Js(2.0)))
            var.get('exports').put('Syntax', var.get('syntax_1').get('Syntax'))
            var.get('exports').put('version', Js('4.0.1'))
        PyJs_anonymous_5_._set_name('anonymous')
        @Js
        def PyJs_anonymous_10_(module, exports, __webpack_require__, this, arguments, var=var):
            var = Scope({'module':module, 'exports':exports, '__webpack_require__':__webpack_require__, 'this':this, 'arguments':arguments}, var)
            var.registers(['CommentHandler', 'syntax_1', '__webpack_require__', 'module', 'exports'])
            Js('use strict')
            PyJs_Object_11_ = Js({'value':Js(True)})
            var.get('Object').callprop('defineProperty', var.get('exports'), Js('__esModule'), PyJs_Object_11_)
            var.put('syntax_1', var.get('__webpack_require__')(Js(2.0)))
            @Js
            def PyJs_anonymous_12_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['CommentHandler'])
                @Js
                def PyJsHoisted_CommentHandler_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers([])
                    var.get(u"this").put('attach', Js(False))
                    var.get(u"this").put('comments', Js([]))
                    var.get(u"this").put('stack', Js([]))
                    var.get(u"this").put('leading', Js([]))
                    var.get(u"this").put('trailing', Js([]))
                PyJsHoisted_CommentHandler_.func_name = 'CommentHandler'
                var.put('CommentHandler', PyJsHoisted_CommentHandler_)
                pass
                @Js
                def PyJs_anonymous_13_(node, metadata, this, arguments, var=var):
                    var = Scope({'node':node, 'metadata':metadata, 'this':this, 'arguments':arguments}, var)
                    var.registers(['innerComments', 'metadata', 'node', 'entry', 'i'])
                    if (PyJsStrictEq(var.get('node').get('type'),var.get('syntax_1').get('Syntax').get('BlockStatement')) and PyJsStrictEq(var.get('node').get('body').get('length'),Js(0.0))):
                        var.put('innerComments', Js([]))
                        #for JS loop
                        var.put('i', (var.get(u"this").get('leading').get('length')-Js(1.0)))
                        while (var.get('i')>=Js(0.0)):
                            try:
                                var.put('entry', var.get(u"this").get('leading').get(var.get('i')))
                                if (var.get('metadata').get('end').get('offset')>=var.get('entry').get('start')):
                                    var.get('innerComments').callprop('unshift', var.get('entry').get('comment'))
                                    var.get(u"this").get('leading').callprop('splice', var.get('i'), Js(1.0))
                                    var.get(u"this").get('trailing').callprop('splice', var.get('i'), Js(1.0))
                            finally:
                                    var.put('i',Js(var.get('i').to_number())-Js(1))
                        if var.get('innerComments').get('length'):
                            var.get('node').put('innerComments', var.get('innerComments'))
                PyJs_anonymous_13_._set_name('anonymous')
                var.get('CommentHandler').get('prototype').put('insertInnerComments', PyJs_anonymous_13_)
                @Js
                def PyJs_anonymous_14_(metadata, this, arguments, var=var):
                    var = Scope({'metadata':metadata, 'this':this, 'arguments':arguments}, var)
                    var.registers(['metadata', 'entry', 'trailingComments', 'entry_1', 'firstComment', 'i'])
                    var.put('trailingComments', Js([]))
                    if (var.get(u"this").get('trailing').get('length')>Js(0.0)):
                        #for JS loop
                        var.put('i', (var.get(u"this").get('trailing').get('length')-Js(1.0)))
                        while (var.get('i')>=Js(0.0)):
                            try:
                                var.put('entry_1', var.get(u"this").get('trailing').get(var.get('i')))
                                if (var.get('entry_1').get('start')>=var.get('metadata').get('end').get('offset')):
                                    var.get('trailingComments').callprop('unshift', var.get('entry_1').get('comment'))
                            finally:
                                    var.put('i',Js(var.get('i').to_number())-Js(1))
                        var.get(u"this").get('trailing').put('length', Js(0.0))
                        return var.get('trailingComments')
                    var.put('entry', var.get(u"this").get('stack').get((var.get(u"this").get('stack').get('length')-Js(1.0))))
                    if (var.get('entry') and var.get('entry').get('node').get('trailingComments')):
                        var.put('firstComment', var.get('entry').get('node').get('trailingComments').get('0'))
                        if (var.get('firstComment') and (var.get('firstComment').get('range').get('0')>=var.get('metadata').get('end').get('offset'))):
                            var.put('trailingComments', var.get('entry').get('node').get('trailingComments'))
                            var.get('entry').get('node').delete('trailingComments')
                    return var.get('trailingComments')
                PyJs_anonymous_14_._set_name('anonymous')
                var.get('CommentHandler').get('prototype').put('findTrailingComments', PyJs_anonymous_14_)
                @Js
                def PyJs_anonymous_15_(metadata, this, arguments, var=var):
                    var = Scope({'metadata':metadata, 'this':this, 'arguments':arguments}, var)
                    var.registers(['metadata', 'entry', 'target', 'count', 'comment', 'i', 'leadingComments'])
                    var.put('leadingComments', Js([]))
                    pass
                    while (var.get(u"this").get('stack').get('length')>Js(0.0)):
                        var.put('entry', var.get(u"this").get('stack').get((var.get(u"this").get('stack').get('length')-Js(1.0))))
                        if (var.get('entry') and (var.get('entry').get('start')>=var.get('metadata').get('start').get('offset'))):
                            var.put('target', var.get('entry').get('node'))
                            var.get(u"this").get('stack').callprop('pop')
                        else:
                            break
                    if var.get('target'):
                        var.put('count', (var.get('target').get('leadingComments').get('length') if var.get('target').get('leadingComments') else Js(0.0)))
                        #for JS loop
                        var.put('i', (var.get('count')-Js(1.0)))
                        while (var.get('i')>=Js(0.0)):
                            try:
                                var.put('comment', var.get('target').get('leadingComments').get(var.get('i')))
                                if (var.get('comment').get('range').get('1')<=var.get('metadata').get('start').get('offset')):
                                    var.get('leadingComments').callprop('unshift', var.get('comment'))
                                    var.get('target').get('leadingComments').callprop('splice', var.get('i'), Js(1.0))
                            finally:
                                    var.put('i',Js(var.get('i').to_number())-Js(1))
                        if (var.get('target').get('leadingComments') and PyJsStrictEq(var.get('target').get('leadingComments').get('length'),Js(0.0))):
                            var.get('target').delete('leadingComments')
                        return var.get('leadingComments')
                    #for JS loop
                    var.put('i', (var.get(u"this").get('leading').get('length')-Js(1.0)))
                    while (var.get('i')>=Js(0.0)):
                        try:
                            var.put('entry', var.get(u"this").get('leading').get(var.get('i')))
                            if (var.get('entry').get('start')<=var.get('metadata').get('start').get('offset')):
                                var.get('leadingComments').callprop('unshift', var.get('entry').get('comment'))
                                var.get(u"this").get('leading').callprop('splice', var.get('i'), Js(1.0))
                        finally:
                                var.put('i',Js(var.get('i').to_number())-Js(1))
                    return var.get('leadingComments')
                PyJs_anonymous_15_._set_name('anonymous')
                var.get('CommentHandler').get('prototype').put('findLeadingComments', PyJs_anonymous_15_)
                @Js
                def PyJs_anonymous_16_(node, metadata, this, arguments, var=var):
                    var = Scope({'node':node, 'metadata':metadata, 'this':this, 'arguments':arguments}, var)
                    var.registers(['trailingComments', 'metadata', 'node', 'leadingComments'])
                    if (PyJsStrictEq(var.get('node').get('type'),var.get('syntax_1').get('Syntax').get('Program')) and (var.get('node').get('body').get('length')>Js(0.0))):
                        return var.get('undefined')
                    var.get(u"this").callprop('insertInnerComments', var.get('node'), var.get('metadata'))
                    var.put('trailingComments', var.get(u"this").callprop('findTrailingComments', var.get('metadata')))
                    var.put('leadingComments', var.get(u"this").callprop('findLeadingComments', var.get('metadata')))
                    if (var.get('leadingComments').get('length')>Js(0.0)):
                        var.get('node').put('leadingComments', var.get('leadingComments'))
                    if (var.get('trailingComments').get('length')>Js(0.0)):
                        var.get('node').put('trailingComments', var.get('trailingComments'))
                    PyJs_Object_17_ = Js({'node':var.get('node'),'start':var.get('metadata').get('start').get('offset')})
                    var.get(u"this").get('stack').callprop('push', PyJs_Object_17_)
                PyJs_anonymous_16_._set_name('anonymous')
                var.get('CommentHandler').get('prototype').put('visitNode', PyJs_anonymous_16_)
                @Js
                def PyJs_anonymous_18_(node, metadata, this, arguments, var=var):
                    var = Scope({'node':node, 'metadata':metadata, 'this':this, 'arguments':arguments}, var)
                    var.registers(['metadata', 'node', 'entry', 'type', 'comment'])
                    var.put('type', (Js('Line') if PyJsStrictEq(var.get('node').get('type').get('0'),Js('L')) else Js('Block')))
                    PyJs_Object_19_ = Js({'type':var.get('type'),'value':var.get('node').get('value')})
                    var.put('comment', PyJs_Object_19_)
                    if var.get('node').get('range'):
                        var.get('comment').put('range', var.get('node').get('range'))
                    if var.get('node').get('loc'):
                        var.get('comment').put('loc', var.get('node').get('loc'))
                    var.get(u"this").get('comments').callprop('push', var.get('comment'))
                    if var.get(u"this").get('attach'):
                        PyJs_Object_21_ = Js({'type':var.get('type'),'value':var.get('node').get('value'),'range':Js([var.get('metadata').get('start').get('offset'), var.get('metadata').get('end').get('offset')])})
                        PyJs_Object_20_ = Js({'comment':PyJs_Object_21_,'start':var.get('metadata').get('start').get('offset')})
                        var.put('entry', PyJs_Object_20_)
                        if var.get('node').get('loc'):
                            var.get('entry').get('comment').put('loc', var.get('node').get('loc'))
                        var.get('node').put('type', var.get('type'))
                        var.get(u"this").get('leading').callprop('push', var.get('entry'))
                        var.get(u"this").get('trailing').callprop('push', var.get('entry'))
                PyJs_anonymous_18_._set_name('anonymous')
                var.get('CommentHandler').get('prototype').put('visitComment', PyJs_anonymous_18_)
                @Js
                def PyJs_anonymous_22_(node, metadata, this, arguments, var=var):
                    var = Scope({'node':node, 'metadata':metadata, 'this':this, 'arguments':arguments}, var)
                    var.registers(['metadata', 'node'])
                    if PyJsStrictEq(var.get('node').get('type'),Js('LineComment')):
                        var.get(u"this").callprop('visitComment', var.get('node'), var.get('metadata'))
                    else:
                        if PyJsStrictEq(var.get('node').get('type'),Js('BlockComment')):
                            var.get(u"this").callprop('visitComment', var.get('node'), var.get('metadata'))
                        else:
                            if var.get(u"this").get('attach'):
                                var.get(u"this").callprop('visitNode', var.get('node'), var.get('metadata'))
                PyJs_anonymous_22_._set_name('anonymous')
                var.get('CommentHandler').get('prototype').put('visit', PyJs_anonymous_22_)
                return var.get('CommentHandler')
            PyJs_anonymous_12_._set_name('anonymous')
            var.put('CommentHandler', PyJs_anonymous_12_())
            var.get('exports').put('CommentHandler', var.get('CommentHandler'))
        PyJs_anonymous_10_._set_name('anonymous')
        @Js
        def PyJs_anonymous_23_(module, exports, this, arguments, var=var):
            var = Scope({'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
            var.registers(['module', 'exports'])
            Js('use strict')
            PyJs_Object_24_ = Js({'value':Js(True)})
            var.get('Object').callprop('defineProperty', var.get('exports'), Js('__esModule'), PyJs_Object_24_)
            PyJs_Object_25_ = Js({'AssignmentExpression':Js('AssignmentExpression'),'AssignmentPattern':Js('AssignmentPattern'),'ArrayExpression':Js('ArrayExpression'),'ArrayPattern':Js('ArrayPattern'),'ArrowFunctionExpression':Js('ArrowFunctionExpression'),'AwaitExpression':Js('AwaitExpression'),'BlockStatement':Js('BlockStatement'),'BinaryExpression':Js('BinaryExpression'),'BreakStatement':Js('BreakStatement'),'CallExpression':Js('CallExpression'),'CatchClause':Js('CatchClause'),'ClassBody':Js('ClassBody'),'ClassDeclaration':Js('ClassDeclaration'),'ClassExpression':Js('ClassExpression'),'ConditionalExpression':Js('ConditionalExpression'),'ContinueStatement':Js('ContinueStatement'),'DoWhileStatement':Js('DoWhileStatement'),'DebuggerStatement':Js('DebuggerStatement'),'EmptyStatement':Js('EmptyStatement'),'ExportAllDeclaration':Js('ExportAllDeclaration'),'ExportDefaultDeclaration':Js('ExportDefaultDeclaration'),'ExportNamedDeclaration':Js('ExportNamedDeclaration'),'ExportSpecifier':Js('ExportSpecifier'),'ExpressionStatement':Js('ExpressionStatement'),'ForStatement':Js('ForStatement'),'ForOfStatement':Js('ForOfStatement'),'ForInStatement':Js('ForInStatement'),'FunctionDeclaration':Js('FunctionDeclaration'),'FunctionExpression':Js('FunctionExpression'),'Identifier':Js('Identifier'),'IfStatement':Js('IfStatement'),'ImportDeclaration':Js('ImportDeclaration'),'ImportDefaultSpecifier':Js('ImportDefaultSpecifier'),'ImportNamespaceSpecifier':Js('ImportNamespaceSpecifier'),'ImportSpecifier':Js('ImportSpecifier'),'Literal':Js('Literal'),'LabeledStatement':Js('LabeledStatement'),'LogicalExpression':Js('LogicalExpression'),'MemberExpression':Js('MemberExpression'),'MetaProperty':Js('MetaProperty'),'MethodDefinition':Js('MethodDefinition'),'NewExpression':Js('NewExpression'),'ObjectExpression':Js('ObjectExpression'),'ObjectPattern':Js('ObjectPattern'),'Program':Js('Program'),'Property':Js('Property'),'RestElement':Js('RestElement'),'ReturnStatement':Js('ReturnStatement'),'SequenceExpression':Js('SequenceExpression'),'SpreadElement':Js('SpreadElement'),'Super':Js('Super'),'SwitchCase':Js('SwitchCase'),'SwitchStatement':Js('SwitchStatement'),'TaggedTemplateExpression':Js('TaggedTemplateExpression'),'TemplateElement':Js('TemplateElement'),'TemplateLiteral':Js('TemplateLiteral'),'ThisExpression':Js('ThisExpression'),'ThrowStatement':Js('ThrowStatement'),'TryStatement':Js('TryStatement'),'UnaryExpression':Js('UnaryExpression'),'UpdateExpression':Js('UpdateExpression'),'VariableDeclaration':Js('VariableDeclaration'),'VariableDeclarator':Js('VariableDeclarator'),'WhileStatement':Js('WhileStatement'),'WithStatement':Js('WithStatement'),'YieldExpression':Js('YieldExpression')})
            var.get('exports').put('Syntax', PyJs_Object_25_)
        PyJs_anonymous_23_._set_name('anonymous')
        @Js
        def PyJs_anonymous_26_(module, exports, __webpack_require__, this, arguments, var=var):
            var = Scope({'module':module, 'exports':exports, '__webpack_require__':__webpack_require__, 'this':this, 'arguments':arguments}, var)
            var.registers(['parser_1', 'module', 'character_1', 'xhtml_entities_1', 'token_1', 'Node', 'JSXParser', 'exports', '__webpack_require__', 'jsx_syntax_1', '__extends', 'JSXNode', 'getQualifiedElementName'])
            @Js
            def PyJsHoisted_getQualifiedElementName_(elementName, this, arguments, var=var):
                var = Scope({'elementName':elementName, 'this':this, 'arguments':arguments}, var)
                var.registers(['elementName', 'expr', 'ns', 'qualifiedName', 'id'])
                pass
                while 1:
                    SWITCHED = False
                    CONDITION = (var.get('elementName').get('type'))
                    if SWITCHED or PyJsStrictEq(CONDITION, var.get('jsx_syntax_1').get('JSXSyntax').get('JSXIdentifier')):
                        SWITCHED = True
                        var.put('id', var.get('elementName'))
                        var.put('qualifiedName', var.get('id').get('name'))
                        break
                    if SWITCHED or PyJsStrictEq(CONDITION, var.get('jsx_syntax_1').get('JSXSyntax').get('JSXNamespacedName')):
                        SWITCHED = True
                        var.put('ns', var.get('elementName'))
                        var.put('qualifiedName', ((var.get('getQualifiedElementName')(var.get('ns').get('namespace'))+Js(':'))+var.get('getQualifiedElementName')(var.get('ns').get('name'))))
                        break
                    if SWITCHED or PyJsStrictEq(CONDITION, var.get('jsx_syntax_1').get('JSXSyntax').get('JSXMemberExpression')):
                        SWITCHED = True
                        var.put('expr', var.get('elementName'))
                        var.put('qualifiedName', ((var.get('getQualifiedElementName')(var.get('expr').get('object'))+Js('.'))+var.get('getQualifiedElementName')(var.get('expr').get('property'))))
                        break
                    if True:
                        SWITCHED = True
                        break
                    SWITCHED = True
                    break
                return var.get('qualifiedName')
            PyJsHoisted_getQualifiedElementName_.func_name = 'getQualifiedElementName'
            var.put('getQualifiedElementName', PyJsHoisted_getQualifiedElementName_)
            Js('use strict')
            @Js
            def PyJs_anonymous_27_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['extendStatics'])
                PyJs_Object_28_ = Js({'__proto__':Js([])})
                @Js
                def PyJs_anonymous_29_(d, b, this, arguments, var=var):
                    var = Scope({'d':d, 'b':b, 'this':this, 'arguments':arguments}, var)
                    var.registers(['d', 'b'])
                    var.get('d').put('__proto__', var.get('b'))
                PyJs_anonymous_29_._set_name('anonymous')
                @Js
                def PyJs_anonymous_30_(d, b, this, arguments, var=var):
                    var = Scope({'d':d, 'b':b, 'this':this, 'arguments':arguments}, var)
                    var.registers(['p', 'd', 'b'])
                    for PyJsTemp in var.get('b'):
                        var.put('p', PyJsTemp)
                        if var.get('b').callprop('hasOwnProperty', var.get('p')):
                            var.get('d').put(var.get('p'), var.get('b').get(var.get('p')))
                PyJs_anonymous_30_._set_name('anonymous')
                var.put('extendStatics', ((var.get('Object').get('setPrototypeOf') or (PyJs_Object_28_.instanceof(var.get('Array')) and PyJs_anonymous_29_)) or PyJs_anonymous_30_))
                @Js
                def PyJs_anonymous_31_(d, b, this, arguments, var=var):
                    var = Scope({'d':d, 'b':b, 'this':this, 'arguments':arguments}, var)
                    var.registers(['b', '__', 'd'])
                    @Js
                    def PyJsHoisted____(this, arguments, var=var):
                        var = Scope({'this':this, 'arguments':arguments}, var)
                        var.registers([])
                        var.get(u"this").put('constructor', var.get('d'))
                    PyJsHoisted____.func_name = '__'
                    var.put('__', PyJsHoisted____)
                    var.get('extendStatics')(var.get('d'), var.get('b'))
                    pass
                    var.get('d').put('prototype', (var.get('Object').callprop('create', var.get('b')) if PyJsStrictEq(var.get('b'),var.get(u"null")) else PyJsComma(var.get('__').put('prototype', var.get('b').get('prototype')),var.get('__').create())))
                PyJs_anonymous_31_._set_name('anonymous')
                return PyJs_anonymous_31_
            PyJs_anonymous_27_._set_name('anonymous')
            var.put('__extends', ((var.get(u"this") and var.get(u"this").get('__extends')) or PyJs_anonymous_27_()))
            PyJs_Object_32_ = Js({'value':Js(True)})
            var.get('Object').callprop('defineProperty', var.get('exports'), Js('__esModule'), PyJs_Object_32_)
            var.put('character_1', var.get('__webpack_require__')(Js(4.0)))
            var.put('JSXNode', var.get('__webpack_require__')(Js(5.0)))
            var.put('jsx_syntax_1', var.get('__webpack_require__')(Js(6.0)))
            var.put('Node', var.get('__webpack_require__')(Js(7.0)))
            var.put('parser_1', var.get('__webpack_require__')(Js(8.0)))
            var.put('token_1', var.get('__webpack_require__')(Js(13.0)))
            var.put('xhtml_entities_1', var.get('__webpack_require__')(Js(14.0)))
            var.get('token_1').get('TokenName').put('100', Js('JSXIdentifier'))
            var.get('token_1').get('TokenName').put('101', Js('JSXText'))
            pass
            @Js
            def PyJs_anonymous_33_(_super, this, arguments, var=var):
                var = Scope({'_super':_super, 'this':this, 'arguments':arguments}, var)
                var.registers(['_super', 'JSXParser'])
                @Js
                def PyJsHoisted_JSXParser_(code, options, delegate, this, arguments, var=var):
                    var = Scope({'code':code, 'options':options, 'delegate':delegate, 'this':this, 'arguments':arguments}, var)
                    var.registers(['code', 'options', 'delegate'])
                    return (var.get('_super').callprop('call', var.get(u"this"), var.get('code'), var.get('options'), var.get('delegate')) or var.get(u"this"))
                PyJsHoisted_JSXParser_.func_name = 'JSXParser'
                var.put('JSXParser', PyJsHoisted_JSXParser_)
                var.get('__extends')(var.get('JSXParser'), var.get('_super'))
                pass
                @Js
                def PyJs_anonymous_34_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers([])
                    return (var.get(u"this").callprop('parseJSXRoot') if var.get(u"this").callprop('match', Js('<')) else var.get('_super').get('prototype').get('parsePrimaryExpression').callprop('call', var.get(u"this")))
                PyJs_anonymous_34_._set_name('anonymous')
                var.get('JSXParser').get('prototype').put('parsePrimaryExpression', PyJs_anonymous_34_)
                @Js
                def PyJs_anonymous_35_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers([])
                    var.get(u"this").get('scanner').put('index', var.get(u"this").get('startMarker').get('index'))
                    var.get(u"this").get('scanner').put('lineNumber', var.get(u"this").get('startMarker').get('line'))
                    var.get(u"this").get('scanner').put('lineStart', (var.get(u"this").get('startMarker').get('index')-var.get(u"this").get('startMarker').get('column')))
                PyJs_anonymous_35_._set_name('anonymous')
                var.get('JSXParser').get('prototype').put('startJSX', PyJs_anonymous_35_)
                @Js
                def PyJs_anonymous_36_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers([])
                    var.get(u"this").callprop('nextToken')
                PyJs_anonymous_36_._set_name('anonymous')
                var.get('JSXParser').get('prototype').put('finishJSX', PyJs_anonymous_36_)
                @Js
                def PyJs_anonymous_37_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers([])
                    var.get(u"this").callprop('startJSX')
                    var.get(u"this").callprop('expectJSX', Js('}'))
                    if var.get(u"this").get('config').get('tokens'):
                        var.get(u"this").get('tokens').callprop('pop')
                PyJs_anonymous_37_._set_name('anonymous')
                var.get('JSXParser').get('prototype').put('reenterJSX', PyJs_anonymous_37_)
                @Js
                def PyJs_anonymous_38_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers([])
                    var.get(u"this").callprop('collectComments')
                    PyJs_Object_39_ = Js({'index':var.get(u"this").get('scanner').get('index'),'line':var.get(u"this").get('scanner').get('lineNumber'),'column':(var.get(u"this").get('scanner').get('index')-var.get(u"this").get('scanner').get('lineStart'))})
                    return PyJs_Object_39_
                PyJs_anonymous_38_._set_name('anonymous')
                var.get('JSXParser').get('prototype').put('createJSXNode', PyJs_anonymous_38_)
                @Js
                def PyJs_anonymous_40_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers([])
                    PyJs_Object_41_ = Js({'index':var.get(u"this").get('scanner').get('index'),'line':var.get(u"this").get('scanner').get('lineNumber'),'column':(var.get(u"this").get('scanner').get('index')-var.get(u"this").get('scanner').get('lineStart'))})
                    return PyJs_Object_41_
                PyJs_anonymous_40_._set_name('anonymous')
                var.get('JSXParser').get('prototype').put('createJSXChildNode', PyJs_anonymous_40_)
                @Js
                def PyJs_anonymous_42_(quote, this, arguments, var=var):
                    var = Scope({'quote':quote, 'this':this, 'arguments':arguments}, var)
                    var.registers(['ch', 'str', 'numeric', 'quote', 'terminated', 'valid', 'result', 'hex'])
                    var.put('result', Js('&'))
                    var.put('valid', Js(True))
                    var.put('terminated', Js(False))
                    var.put('numeric', Js(False))
                    var.put('hex', Js(False))
                    while ((var.get(u"this").get('scanner').callprop('eof').neg() and var.get('valid')) and var.get('terminated').neg()):
                        var.put('ch', var.get(u"this").get('scanner').get('source').get(var.get(u"this").get('scanner').get('index')))
                        if PyJsStrictEq(var.get('ch'),var.get('quote')):
                            break
                        var.put('terminated', PyJsStrictEq(var.get('ch'),Js(';')))
                        var.put('result', var.get('ch'), '+')
                        var.get(u"this").get('scanner').put('index',Js(var.get(u"this").get('scanner').get('index').to_number())+Js(1))
                        if var.get('terminated').neg():
                            while 1:
                                SWITCHED = False
                                CONDITION = (var.get('result').get('length'))
                                if SWITCHED or PyJsStrictEq(CONDITION, Js(2.0)):
                                    SWITCHED = True
                                    var.put('numeric', PyJsStrictEq(var.get('ch'),Js('#')))
                                    break
                                if SWITCHED or PyJsStrictEq(CONDITION, Js(3.0)):
                                    SWITCHED = True
                                    if var.get('numeric'):
                                        var.put('hex', PyJsStrictEq(var.get('ch'),Js('x')))
                                        var.put('valid', (var.get('hex') or var.get('character_1').get('Character').callprop('isDecimalDigit', var.get('ch').callprop('charCodeAt', Js(0.0)))))
                                        var.put('numeric', (var.get('numeric') and var.get('hex').neg()))
                                    break
                                if True:
                                    SWITCHED = True
                                    var.put('valid', (var.get('valid') and (var.get('numeric') and var.get('character_1').get('Character').callprop('isDecimalDigit', var.get('ch').callprop('charCodeAt', Js(0.0))).neg()).neg()))
                                    var.put('valid', (var.get('valid') and (var.get('hex') and var.get('character_1').get('Character').callprop('isHexDigit', var.get('ch').callprop('charCodeAt', Js(0.0))).neg()).neg()))
                                    break
                                SWITCHED = True
                                break
                    if ((var.get('valid') and var.get('terminated')) and (var.get('result').get('length')>Js(2.0))):
                        var.put('str', var.get('result').callprop('substr', Js(1.0), (var.get('result').get('length')-Js(2.0))))
                        if (var.get('numeric') and (var.get('str').get('length')>Js(1.0))):
                            var.put('result', var.get('String').callprop('fromCharCode', var.get('parseInt')(var.get('str').callprop('substr', Js(1.0)), Js(10.0))))
                        else:
                            if (var.get('hex') and (var.get('str').get('length')>Js(2.0))):
                                var.put('result', var.get('String').callprop('fromCharCode', var.get('parseInt')((Js('0')+var.get('str').callprop('substr', Js(1.0))), Js(16.0))))
                            else:
                                if ((var.get('numeric').neg() and var.get('hex').neg()) and var.get('xhtml_entities_1').get('XHTMLEntities').get(var.get('str'))):
                                    var.put('result', var.get('xhtml_entities_1').get('XHTMLEntities').get(var.get('str')))
                    return var.get('result')
                PyJs_anonymous_42_._set_name('anonymous')
                var.get('JSXParser').get('prototype').put('scanXHTMLEntity', PyJs_anonymous_42_)
                @Js
                def PyJs_anonymous_43_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['start', 'ch', 'str', 'quote', 'n2', 'cp', 'id', 'n1', 'value'])
                    var.put('cp', var.get(u"this").get('scanner').get('source').callprop('charCodeAt', var.get(u"this").get('scanner').get('index')))
                    if ((((((PyJsStrictEq(var.get('cp'),Js(60.0)) or PyJsStrictEq(var.get('cp'),Js(62.0))) or PyJsStrictEq(var.get('cp'),Js(47.0))) or PyJsStrictEq(var.get('cp'),Js(58.0))) or PyJsStrictEq(var.get('cp'),Js(61.0))) or PyJsStrictEq(var.get('cp'),Js(123.0))) or PyJsStrictEq(var.get('cp'),Js(125.0))):
                        var.put('value', var.get(u"this").get('scanner').get('source').get((var.get(u"this").get('scanner').put('index',Js(var.get(u"this").get('scanner').get('index').to_number())+Js(1))-Js(1))))
                        PyJs_Object_44_ = Js({'type':Js(7.0),'value':var.get('value'),'lineNumber':var.get(u"this").get('scanner').get('lineNumber'),'lineStart':var.get(u"this").get('scanner').get('lineStart'),'start':(var.get(u"this").get('scanner').get('index')-Js(1.0)),'end':var.get(u"this").get('scanner').get('index')})
                        return PyJs_Object_44_
                    if (PyJsStrictEq(var.get('cp'),Js(34.0)) or PyJsStrictEq(var.get('cp'),Js(39.0))):
                        var.put('start', var.get(u"this").get('scanner').get('index'))
                        var.put('quote', var.get(u"this").get('scanner').get('source').get((var.get(u"this").get('scanner').put('index',Js(var.get(u"this").get('scanner').get('index').to_number())+Js(1))-Js(1))))
                        var.put('str', Js(''))
                        while var.get(u"this").get('scanner').callprop('eof').neg():
                            var.put('ch', var.get(u"this").get('scanner').get('source').get((var.get(u"this").get('scanner').put('index',Js(var.get(u"this").get('scanner').get('index').to_number())+Js(1))-Js(1))))
                            if PyJsStrictEq(var.get('ch'),var.get('quote')):
                                break
                            else:
                                if PyJsStrictEq(var.get('ch'),Js('&')):
                                    var.put('str', var.get(u"this").callprop('scanXHTMLEntity', var.get('quote')), '+')
                                else:
                                    var.put('str', var.get('ch'), '+')
                        PyJs_Object_45_ = Js({'type':Js(8.0),'value':var.get('str'),'lineNumber':var.get(u"this").get('scanner').get('lineNumber'),'lineStart':var.get(u"this").get('scanner').get('lineStart'),'start':var.get('start'),'end':var.get(u"this").get('scanner').get('index')})
                        return PyJs_Object_45_
                    if PyJsStrictEq(var.get('cp'),Js(46.0)):
                        var.put('n1', var.get(u"this").get('scanner').get('source').callprop('charCodeAt', (var.get(u"this").get('scanner').get('index')+Js(1.0))))
                        var.put('n2', var.get(u"this").get('scanner').get('source').callprop('charCodeAt', (var.get(u"this").get('scanner').get('index')+Js(2.0))))
                        var.put('value', (Js('...') if (PyJsStrictEq(var.get('n1'),Js(46.0)) and PyJsStrictEq(var.get('n2'),Js(46.0))) else Js('.')))
                        var.put('start', var.get(u"this").get('scanner').get('index'))
                        var.get(u"this").get('scanner').put('index', var.get('value').get('length'), '+')
                        PyJs_Object_46_ = Js({'type':Js(7.0),'value':var.get('value'),'lineNumber':var.get(u"this").get('scanner').get('lineNumber'),'lineStart':var.get(u"this").get('scanner').get('lineStart'),'start':var.get('start'),'end':var.get(u"this").get('scanner').get('index')})
                        return PyJs_Object_46_
                    if PyJsStrictEq(var.get('cp'),Js(96.0)):
                        PyJs_Object_47_ = Js({'type':Js(10.0),'value':Js(''),'lineNumber':var.get(u"this").get('scanner').get('lineNumber'),'lineStart':var.get(u"this").get('scanner').get('lineStart'),'start':var.get(u"this").get('scanner').get('index'),'end':var.get(u"this").get('scanner').get('index')})
                        return PyJs_Object_47_
                    if (var.get('character_1').get('Character').callprop('isIdentifierStart', var.get('cp')) and PyJsStrictNeq(var.get('cp'),Js(92.0))):
                        var.put('start', var.get(u"this").get('scanner').get('index'))
                        var.get(u"this").get('scanner').put('index',Js(var.get(u"this").get('scanner').get('index').to_number())+Js(1))
                        while var.get(u"this").get('scanner').callprop('eof').neg():
                            var.put('ch', var.get(u"this").get('scanner').get('source').callprop('charCodeAt', var.get(u"this").get('scanner').get('index')))
                            if (var.get('character_1').get('Character').callprop('isIdentifierPart', var.get('ch')) and PyJsStrictNeq(var.get('ch'),Js(92.0))):
                                var.get(u"this").get('scanner').put('index',Js(var.get(u"this").get('scanner').get('index').to_number())+Js(1))
                            else:
                                if PyJsStrictEq(var.get('ch'),Js(45.0)):
                                    var.get(u"this").get('scanner').put('index',Js(var.get(u"this").get('scanner').get('index').to_number())+Js(1))
                                else:
                                    break
                        var.put('id', var.get(u"this").get('scanner').get('source').callprop('slice', var.get('start'), var.get(u"this").get('scanner').get('index')))
                        PyJs_Object_48_ = Js({'type':Js(100.0),'value':var.get('id'),'lineNumber':var.get(u"this").get('scanner').get('lineNumber'),'lineStart':var.get(u"this").get('scanner').get('lineStart'),'start':var.get('start'),'end':var.get(u"this").get('scanner').get('index')})
                        return PyJs_Object_48_
                    return var.get(u"this").get('scanner').callprop('lex')
                PyJs_anonymous_43_._set_name('anonymous')
                var.get('JSXParser').get('prototype').put('lexJSX', PyJs_anonymous_43_)
                @Js
                def PyJs_anonymous_49_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['token'])
                    var.get(u"this").callprop('collectComments')
                    var.get(u"this").get('startMarker').put('index', var.get(u"this").get('scanner').get('index'))
                    var.get(u"this").get('startMarker').put('line', var.get(u"this").get('scanner').get('lineNumber'))
                    var.get(u"this").get('startMarker').put('column', (var.get(u"this").get('scanner').get('index')-var.get(u"this").get('scanner').get('lineStart')))
                    var.put('token', var.get(u"this").callprop('lexJSX'))
                    var.get(u"this").get('lastMarker').put('index', var.get(u"this").get('scanner').get('index'))
                    var.get(u"this").get('lastMarker').put('line', var.get(u"this").get('scanner').get('lineNumber'))
                    var.get(u"this").get('lastMarker').put('column', (var.get(u"this").get('scanner').get('index')-var.get(u"this").get('scanner').get('lineStart')))
                    if var.get(u"this").get('config').get('tokens'):
                        var.get(u"this").get('tokens').callprop('push', var.get(u"this").callprop('convertToken', var.get('token')))
                    return var.get('token')
                PyJs_anonymous_49_._set_name('anonymous')
                var.get('JSXParser').get('prototype').put('nextJSXToken', PyJs_anonymous_49_)
                @Js
                def PyJs_anonymous_50_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['text', 'start', 'ch', 'token'])
                    var.get(u"this").get('startMarker').put('index', var.get(u"this").get('scanner').get('index'))
                    var.get(u"this").get('startMarker').put('line', var.get(u"this").get('scanner').get('lineNumber'))
                    var.get(u"this").get('startMarker').put('column', (var.get(u"this").get('scanner').get('index')-var.get(u"this").get('scanner').get('lineStart')))
                    var.put('start', var.get(u"this").get('scanner').get('index'))
                    var.put('text', Js(''))
                    while var.get(u"this").get('scanner').callprop('eof').neg():
                        var.put('ch', var.get(u"this").get('scanner').get('source').get(var.get(u"this").get('scanner').get('index')))
                        if (PyJsStrictEq(var.get('ch'),Js('{')) or PyJsStrictEq(var.get('ch'),Js('<'))):
                            break
                        var.get(u"this").get('scanner').put('index',Js(var.get(u"this").get('scanner').get('index').to_number())+Js(1))
                        var.put('text', var.get('ch'), '+')
                        if var.get('character_1').get('Character').callprop('isLineTerminator', var.get('ch').callprop('charCodeAt', Js(0.0))):
                            var.get(u"this").get('scanner').put('lineNumber',Js(var.get(u"this").get('scanner').get('lineNumber').to_number())+Js(1))
                            if (PyJsStrictEq(var.get('ch'),Js('\r')) and PyJsStrictEq(var.get(u"this").get('scanner').get('source').get(var.get(u"this").get('scanner').get('index')),Js('\n'))):
                                var.get(u"this").get('scanner').put('index',Js(var.get(u"this").get('scanner').get('index').to_number())+Js(1))
                            var.get(u"this").get('scanner').put('lineStart', var.get(u"this").get('scanner').get('index'))
                    var.get(u"this").get('lastMarker').put('index', var.get(u"this").get('scanner').get('index'))
                    var.get(u"this").get('lastMarker').put('line', var.get(u"this").get('scanner').get('lineNumber'))
                    var.get(u"this").get('lastMarker').put('column', (var.get(u"this").get('scanner').get('index')-var.get(u"this").get('scanner').get('lineStart')))
                    PyJs_Object_51_ = Js({'type':Js(101.0),'value':var.get('text'),'lineNumber':var.get(u"this").get('scanner').get('lineNumber'),'lineStart':var.get(u"this").get('scanner').get('lineStart'),'start':var.get('start'),'end':var.get(u"this").get('scanner').get('index')})
                    var.put('token', PyJs_Object_51_)
                    if ((var.get('text').get('length')>Js(0.0)) and var.get(u"this").get('config').get('tokens')):
                        var.get(u"this").get('tokens').callprop('push', var.get(u"this").callprop('convertToken', var.get('token')))
                    return var.get('token')
                PyJs_anonymous_50_._set_name('anonymous')
                var.get('JSXParser').get('prototype').put('nextJSXText', PyJs_anonymous_50_)
                @Js
                def PyJs_anonymous_52_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['state', 'next'])
                    var.put('state', var.get(u"this").get('scanner').callprop('saveState'))
                    var.get(u"this").get('scanner').callprop('scanComments')
                    var.put('next', var.get(u"this").callprop('lexJSX'))
                    var.get(u"this").get('scanner').callprop('restoreState', var.get('state'))
                    return var.get('next')
                PyJs_anonymous_52_._set_name('anonymous')
                var.get('JSXParser').get('prototype').put('peekJSXToken', PyJs_anonymous_52_)
                @Js
                def PyJs_anonymous_53_(value, this, arguments, var=var):
                    var = Scope({'value':value, 'this':this, 'arguments':arguments}, var)
                    var.registers(['value', 'token'])
                    var.put('token', var.get(u"this").callprop('nextJSXToken'))
                    if (PyJsStrictNeq(var.get('token').get('type'),Js(7.0)) or PyJsStrictNeq(var.get('token').get('value'),var.get('value'))):
                        var.get(u"this").callprop('throwUnexpectedToken', var.get('token'))
                PyJs_anonymous_53_._set_name('anonymous')
                var.get('JSXParser').get('prototype').put('expectJSX', PyJs_anonymous_53_)
                @Js
                def PyJs_anonymous_54_(value, this, arguments, var=var):
                    var = Scope({'value':value, 'this':this, 'arguments':arguments}, var)
                    var.registers(['next', 'value'])
                    var.put('next', var.get(u"this").callprop('peekJSXToken'))
                    return (PyJsStrictEq(var.get('next').get('type'),Js(7.0)) and PyJsStrictEq(var.get('next').get('value'),var.get('value')))
                PyJs_anonymous_54_._set_name('anonymous')
                var.get('JSXParser').get('prototype').put('matchJSX', PyJs_anonymous_54_)
                @Js
                def PyJs_anonymous_55_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['node', 'token'])
                    var.put('node', var.get(u"this").callprop('createJSXNode'))
                    var.put('token', var.get(u"this").callprop('nextJSXToken'))
                    if PyJsStrictNeq(var.get('token').get('type'),Js(100.0)):
                        var.get(u"this").callprop('throwUnexpectedToken', var.get('token'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('JSXNode').get('JSXIdentifier').create(var.get('token').get('value')))
                PyJs_anonymous_55_._set_name('anonymous')
                var.get('JSXParser').get('prototype').put('parseJSXIdentifier', PyJs_anonymous_55_)
                @Js
                def PyJs_anonymous_56_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['node', 'object', 'namespace', 'elementName', 'name_1', 'property'])
                    var.put('node', var.get(u"this").callprop('createJSXNode'))
                    var.put('elementName', var.get(u"this").callprop('parseJSXIdentifier'))
                    if var.get(u"this").callprop('matchJSX', Js(':')):
                        var.put('namespace', var.get('elementName'))
                        var.get(u"this").callprop('expectJSX', Js(':'))
                        var.put('name_1', var.get(u"this").callprop('parseJSXIdentifier'))
                        var.put('elementName', var.get(u"this").callprop('finalize', var.get('node'), var.get('JSXNode').get('JSXNamespacedName').create(var.get('namespace'), var.get('name_1'))))
                    else:
                        if var.get(u"this").callprop('matchJSX', Js('.')):
                            while var.get(u"this").callprop('matchJSX', Js('.')):
                                var.put('object', var.get('elementName'))
                                var.get(u"this").callprop('expectJSX', Js('.'))
                                var.put('property', var.get(u"this").callprop('parseJSXIdentifier'))
                                var.put('elementName', var.get(u"this").callprop('finalize', var.get('node'), var.get('JSXNode').get('JSXMemberExpression').create(var.get('object'), var.get('property'))))
                    return var.get('elementName')
                PyJs_anonymous_56_._set_name('anonymous')
                var.get('JSXParser').get('prototype').put('parseJSXElementName', PyJs_anonymous_56_)
                @Js
                def PyJs_anonymous_57_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['node', 'namespace', 'name_2', 'identifier', 'attributeName'])
                    var.put('node', var.get(u"this").callprop('createJSXNode'))
                    pass
                    var.put('identifier', var.get(u"this").callprop('parseJSXIdentifier'))
                    if var.get(u"this").callprop('matchJSX', Js(':')):
                        var.put('namespace', var.get('identifier'))
                        var.get(u"this").callprop('expectJSX', Js(':'))
                        var.put('name_2', var.get(u"this").callprop('parseJSXIdentifier'))
                        var.put('attributeName', var.get(u"this").callprop('finalize', var.get('node'), var.get('JSXNode').get('JSXNamespacedName').create(var.get('namespace'), var.get('name_2'))))
                    else:
                        var.put('attributeName', var.get('identifier'))
                    return var.get('attributeName')
                PyJs_anonymous_57_._set_name('anonymous')
                var.get('JSXParser').get('prototype').put('parseJSXAttributeName', PyJs_anonymous_57_)
                @Js
                def PyJs_anonymous_58_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['raw', 'node', 'token'])
                    var.put('node', var.get(u"this").callprop('createJSXNode'))
                    var.put('token', var.get(u"this").callprop('nextJSXToken'))
                    if PyJsStrictNeq(var.get('token').get('type'),Js(8.0)):
                        var.get(u"this").callprop('throwUnexpectedToken', var.get('token'))
                    var.put('raw', var.get(u"this").callprop('getTokenRaw', var.get('token')))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('Literal').create(var.get('token').get('value'), var.get('raw')))
                PyJs_anonymous_58_._set_name('anonymous')
                var.get('JSXParser').get('prototype').put('parseJSXStringLiteralAttribute', PyJs_anonymous_58_)
                @Js
                def PyJs_anonymous_59_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['expression', 'node'])
                    var.put('node', var.get(u"this").callprop('createJSXNode'))
                    var.get(u"this").callprop('expectJSX', Js('{'))
                    var.get(u"this").callprop('finishJSX')
                    if var.get(u"this").callprop('match', Js('}')):
                        var.get(u"this").callprop('tolerateError', Js('JSX attributes must only be assigned a non-empty expression'))
                    var.put('expression', var.get(u"this").callprop('parseAssignmentExpression'))
                    var.get(u"this").callprop('reenterJSX')
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('JSXNode').get('JSXExpressionContainer').create(var.get('expression')))
                PyJs_anonymous_59_._set_name('anonymous')
                var.get('JSXParser').get('prototype').put('parseJSXExpressionAttribute', PyJs_anonymous_59_)
                @Js
                def PyJs_anonymous_60_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers([])
                    return (var.get(u"this").callprop('parseJSXExpressionAttribute') if var.get(u"this").callprop('matchJSX', Js('{')) else (var.get(u"this").callprop('parseJSXElement') if var.get(u"this").callprop('matchJSX', Js('<')) else var.get(u"this").callprop('parseJSXStringLiteralAttribute')))
                PyJs_anonymous_60_._set_name('anonymous')
                var.get('JSXParser').get('prototype').put('parseJSXAttributeValue', PyJs_anonymous_60_)
                @Js
                def PyJs_anonymous_61_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['name', 'node', 'value'])
                    var.put('node', var.get(u"this").callprop('createJSXNode'))
                    var.put('name', var.get(u"this").callprop('parseJSXAttributeName'))
                    var.put('value', var.get(u"null"))
                    if var.get(u"this").callprop('matchJSX', Js('=')):
                        var.get(u"this").callprop('expectJSX', Js('='))
                        var.put('value', var.get(u"this").callprop('parseJSXAttributeValue'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('JSXNode').get('JSXAttribute').create(var.get('name'), var.get('value')))
                PyJs_anonymous_61_._set_name('anonymous')
                var.get('JSXParser').get('prototype').put('parseJSXNameValueAttribute', PyJs_anonymous_61_)
                @Js
                def PyJs_anonymous_62_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['node', 'argument'])
                    var.put('node', var.get(u"this").callprop('createJSXNode'))
                    var.get(u"this").callprop('expectJSX', Js('{'))
                    var.get(u"this").callprop('expectJSX', Js('...'))
                    var.get(u"this").callprop('finishJSX')
                    var.put('argument', var.get(u"this").callprop('parseAssignmentExpression'))
                    var.get(u"this").callprop('reenterJSX')
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('JSXNode').get('JSXSpreadAttribute').create(var.get('argument')))
                PyJs_anonymous_62_._set_name('anonymous')
                var.get('JSXParser').get('prototype').put('parseJSXSpreadAttribute', PyJs_anonymous_62_)
                @Js
                def PyJs_anonymous_63_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['attributes', 'attribute'])
                    var.put('attributes', Js([]))
                    while (var.get(u"this").callprop('matchJSX', Js('/')).neg() and var.get(u"this").callprop('matchJSX', Js('>')).neg()):
                        var.put('attribute', (var.get(u"this").callprop('parseJSXSpreadAttribute') if var.get(u"this").callprop('matchJSX', Js('{')) else var.get(u"this").callprop('parseJSXNameValueAttribute')))
                        var.get('attributes').callprop('push', var.get('attribute'))
                    return var.get('attributes')
                PyJs_anonymous_63_._set_name('anonymous')
                var.get('JSXParser').get('prototype').put('parseJSXAttributes', PyJs_anonymous_63_)
                @Js
                def PyJs_anonymous_64_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['name', 'attributes', 'node', 'selfClosing'])
                    var.put('node', var.get(u"this").callprop('createJSXNode'))
                    var.get(u"this").callprop('expectJSX', Js('<'))
                    var.put('name', var.get(u"this").callprop('parseJSXElementName'))
                    var.put('attributes', var.get(u"this").callprop('parseJSXAttributes'))
                    var.put('selfClosing', var.get(u"this").callprop('matchJSX', Js('/')))
                    if var.get('selfClosing'):
                        var.get(u"this").callprop('expectJSX', Js('/'))
                    var.get(u"this").callprop('expectJSX', Js('>'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('JSXNode').get('JSXOpeningElement').create(var.get('name'), var.get('selfClosing'), var.get('attributes')))
                PyJs_anonymous_64_._set_name('anonymous')
                var.get('JSXParser').get('prototype').put('parseJSXOpeningElement', PyJs_anonymous_64_)
                @Js
                def PyJs_anonymous_65_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['node', 'selfClosing', 'name', 'name_3', 'attributes'])
                    var.put('node', var.get(u"this").callprop('createJSXNode'))
                    var.get(u"this").callprop('expectJSX', Js('<'))
                    if var.get(u"this").callprop('matchJSX', Js('/')):
                        var.get(u"this").callprop('expectJSX', Js('/'))
                        var.put('name_3', var.get(u"this").callprop('parseJSXElementName'))
                        var.get(u"this").callprop('expectJSX', Js('>'))
                        return var.get(u"this").callprop('finalize', var.get('node'), var.get('JSXNode').get('JSXClosingElement').create(var.get('name_3')))
                    var.put('name', var.get(u"this").callprop('parseJSXElementName'))
                    var.put('attributes', var.get(u"this").callprop('parseJSXAttributes'))
                    var.put('selfClosing', var.get(u"this").callprop('matchJSX', Js('/')))
                    if var.get('selfClosing'):
                        var.get(u"this").callprop('expectJSX', Js('/'))
                    var.get(u"this").callprop('expectJSX', Js('>'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('JSXNode').get('JSXOpeningElement').create(var.get('name'), var.get('selfClosing'), var.get('attributes')))
                PyJs_anonymous_65_._set_name('anonymous')
                var.get('JSXParser').get('prototype').put('parseJSXBoundaryElement', PyJs_anonymous_65_)
                @Js
                def PyJs_anonymous_66_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['node'])
                    var.put('node', var.get(u"this").callprop('createJSXChildNode'))
                    var.get(u"this").callprop('collectComments')
                    var.get(u"this").get('lastMarker').put('index', var.get(u"this").get('scanner').get('index'))
                    var.get(u"this").get('lastMarker').put('line', var.get(u"this").get('scanner').get('lineNumber'))
                    var.get(u"this").get('lastMarker').put('column', (var.get(u"this").get('scanner').get('index')-var.get(u"this").get('scanner').get('lineStart')))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('JSXNode').get('JSXEmptyExpression').create())
                PyJs_anonymous_66_._set_name('anonymous')
                var.get('JSXParser').get('prototype').put('parseJSXEmptyExpression', PyJs_anonymous_66_)
                @Js
                def PyJs_anonymous_67_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['expression', 'node'])
                    var.put('node', var.get(u"this").callprop('createJSXNode'))
                    var.get(u"this").callprop('expectJSX', Js('{'))
                    pass
                    if var.get(u"this").callprop('matchJSX', Js('}')):
                        var.put('expression', var.get(u"this").callprop('parseJSXEmptyExpression'))
                        var.get(u"this").callprop('expectJSX', Js('}'))
                    else:
                        var.get(u"this").callprop('finishJSX')
                        var.put('expression', var.get(u"this").callprop('parseAssignmentExpression'))
                        var.get(u"this").callprop('reenterJSX')
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('JSXNode').get('JSXExpressionContainer').create(var.get('expression')))
                PyJs_anonymous_67_._set_name('anonymous')
                var.get('JSXParser').get('prototype').put('parseJSXExpressionContainer', PyJs_anonymous_67_)
                @Js
                def PyJs_anonymous_68_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['node', 'container', 'children', 'raw', 'token', 'child'])
                    var.put('children', Js([]))
                    while var.get(u"this").get('scanner').callprop('eof').neg():
                        var.put('node', var.get(u"this").callprop('createJSXChildNode'))
                        var.put('token', var.get(u"this").callprop('nextJSXText'))
                        if (var.get('token').get('start')<var.get('token').get('end')):
                            var.put('raw', var.get(u"this").callprop('getTokenRaw', var.get('token')))
                            var.put('child', var.get(u"this").callprop('finalize', var.get('node'), var.get('JSXNode').get('JSXText').create(var.get('token').get('value'), var.get('raw'))))
                            var.get('children').callprop('push', var.get('child'))
                        if PyJsStrictEq(var.get(u"this").get('scanner').get('source').get(var.get(u"this").get('scanner').get('index')),Js('{')):
                            var.put('container', var.get(u"this").callprop('parseJSXExpressionContainer'))
                            var.get('children').callprop('push', var.get('container'))
                        else:
                            break
                    return var.get('children')
                PyJs_anonymous_68_._set_name('anonymous')
                var.get('JSXParser').get('prototype').put('parseJSXChildren', PyJs_anonymous_68_)
                @Js
                def PyJs_anonymous_69_(el, this, arguments, var=var):
                    var = Scope({'el':el, 'this':this, 'arguments':arguments}, var)
                    var.registers(['node', 'close_1', 'el', 'stack', 'open_1', 'opening', 'element', 'child'])
                    var.put('stack', Js([]))
                    while var.get(u"this").get('scanner').callprop('eof').neg():
                        var.get('el').put('children', var.get('el').get('children').callprop('concat', var.get(u"this").callprop('parseJSXChildren')))
                        var.put('node', var.get(u"this").callprop('createJSXChildNode'))
                        var.put('element', var.get(u"this").callprop('parseJSXBoundaryElement'))
                        if PyJsStrictEq(var.get('element').get('type'),var.get('jsx_syntax_1').get('JSXSyntax').get('JSXOpeningElement')):
                            var.put('opening', var.get('element'))
                            if var.get('opening').get('selfClosing'):
                                var.put('child', var.get(u"this").callprop('finalize', var.get('node'), var.get('JSXNode').get('JSXElement').create(var.get('opening'), Js([]), var.get(u"null"))))
                                var.get('el').get('children').callprop('push', var.get('child'))
                            else:
                                var.get('stack').callprop('push', var.get('el'))
                                PyJs_Object_70_ = Js({'node':var.get('node'),'opening':var.get('opening'),'closing':var.get(u"null"),'children':Js([])})
                                var.put('el', PyJs_Object_70_)
                        if PyJsStrictEq(var.get('element').get('type'),var.get('jsx_syntax_1').get('JSXSyntax').get('JSXClosingElement')):
                            var.get('el').put('closing', var.get('element'))
                            var.put('open_1', var.get('getQualifiedElementName')(var.get('el').get('opening').get('name')))
                            var.put('close_1', var.get('getQualifiedElementName')(var.get('el').get('closing').get('name')))
                            if PyJsStrictNeq(var.get('open_1'),var.get('close_1')):
                                var.get(u"this").callprop('tolerateError', Js('Expected corresponding JSX closing tag for %0'), var.get('open_1'))
                            if (var.get('stack').get('length')>Js(0.0)):
                                var.put('child', var.get(u"this").callprop('finalize', var.get('el').get('node'), var.get('JSXNode').get('JSXElement').create(var.get('el').get('opening'), var.get('el').get('children'), var.get('el').get('closing'))))
                                var.put('el', var.get('stack').get((var.get('stack').get('length')-Js(1.0))))
                                var.get('el').get('children').callprop('push', var.get('child'))
                                var.get('stack').callprop('pop')
                            else:
                                break
                    return var.get('el')
                PyJs_anonymous_69_._set_name('anonymous')
                var.get('JSXParser').get('prototype').put('parseComplexJSXElement', PyJs_anonymous_69_)
                @Js
                def PyJs_anonymous_71_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['node', 'children', 'el', 'opening', 'closing'])
                    var.put('node', var.get(u"this").callprop('createJSXNode'))
                    var.put('opening', var.get(u"this").callprop('parseJSXOpeningElement'))
                    var.put('children', Js([]))
                    var.put('closing', var.get(u"null"))
                    if var.get('opening').get('selfClosing').neg():
                        PyJs_Object_72_ = Js({'node':var.get('node'),'opening':var.get('opening'),'closing':var.get('closing'),'children':var.get('children')})
                        var.put('el', var.get(u"this").callprop('parseComplexJSXElement', PyJs_Object_72_))
                        var.put('children', var.get('el').get('children'))
                        var.put('closing', var.get('el').get('closing'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('JSXNode').get('JSXElement').create(var.get('opening'), var.get('children'), var.get('closing')))
                PyJs_anonymous_71_._set_name('anonymous')
                var.get('JSXParser').get('prototype').put('parseJSXElement', PyJs_anonymous_71_)
                @Js
                def PyJs_anonymous_73_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['element'])
                    if var.get(u"this").get('config').get('tokens'):
                        var.get(u"this").get('tokens').callprop('pop')
                    var.get(u"this").callprop('startJSX')
                    var.put('element', var.get(u"this").callprop('parseJSXElement'))
                    var.get(u"this").callprop('finishJSX')
                    return var.get('element')
                PyJs_anonymous_73_._set_name('anonymous')
                var.get('JSXParser').get('prototype').put('parseJSXRoot', PyJs_anonymous_73_)
                @Js
                def PyJs_anonymous_74_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers([])
                    return (var.get('_super').get('prototype').get('isStartOfExpression').callprop('call', var.get(u"this")) or var.get(u"this").callprop('match', Js('<')))
                PyJs_anonymous_74_._set_name('anonymous')
                var.get('JSXParser').get('prototype').put('isStartOfExpression', PyJs_anonymous_74_)
                return var.get('JSXParser')
            PyJs_anonymous_33_._set_name('anonymous')
            var.put('JSXParser', PyJs_anonymous_33_(var.get('parser_1').get('Parser')))
            var.get('exports').put('JSXParser', var.get('JSXParser'))
        PyJs_anonymous_26_._set_name('anonymous')
        @Js
        def PyJs_anonymous_75_(module, exports, this, arguments, var=var):
            var = Scope({'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
            var.registers(['Regex', 'module', 'exports'])
            Js('use strict')
            PyJs_Object_76_ = Js({'value':Js(True)})
            var.get('Object').callprop('defineProperty', var.get('exports'), Js('__esModule'), PyJs_Object_76_)
            PyJs_Object_77_ = Js({'NonAsciiIdentifierStart':JsRegExp('/[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309B-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF19]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDEC0-\\uDEF8]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]/'),'NonAsciiIdentifierPart':JsRegExp('/[\\xAA\\xB5\\xB7\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B4\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1369-\\u1371\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDCBA\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDCA-\\uDDCC\\uDDD0-\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3C-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF50\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDDD8-\\uDDDD\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB7\\uDEC0-\\uDEC9\\uDF00-\\uDF19\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDCA0-\\uDCE9\\uDCFF\\uDEC0-\\uDEF8]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50-\\uDF7E\\uDF8F-\\uDF9F]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]|\\uDB40[\\uDD00-\\uDDEF]/')})
            var.put('Regex', PyJs_Object_77_)
            @Js
            def PyJs_fromCodePoint_79_(cp, this, arguments, var=var):
                var = Scope({'cp':cp, 'this':this, 'arguments':arguments, 'fromCodePoint':PyJs_fromCodePoint_79_}, var)
                var.registers(['cp'])
                return (var.get('String').callprop('fromCharCode', var.get('cp')) if (var.get('cp')<Js(65536)) else (var.get('String').callprop('fromCharCode', (Js(55296)+((var.get('cp')-Js(65536))>>Js(10.0))))+var.get('String').callprop('fromCharCode', (Js(56320)+((var.get('cp')-Js(65536))&Js(1023.0))))))
            PyJs_fromCodePoint_79_._set_name('fromCodePoint')
            @Js
            def PyJs_isWhiteSpace_80_(cp, this, arguments, var=var):
                var = Scope({'cp':cp, 'this':this, 'arguments':arguments, 'isWhiteSpace':PyJs_isWhiteSpace_80_}, var)
                var.registers(['cp'])
                def PyJs_LONG_81_(var=var):
                    return (((((PyJsStrictEq(var.get('cp'),Js(32)) or PyJsStrictEq(var.get('cp'),Js(9))) or PyJsStrictEq(var.get('cp'),Js(11))) or PyJsStrictEq(var.get('cp'),Js(12))) or PyJsStrictEq(var.get('cp'),Js(160))) or ((var.get('cp')>=Js(5760)) and (Js([Js(5760), Js(8192), Js(8193), Js(8194), Js(8195), Js(8196), Js(8197), Js(8198), Js(8199), Js(8200), Js(8201), Js(8202), Js(8239), Js(8287), Js(12288), Js(65279)]).callprop('indexOf', var.get('cp'))>=Js(0.0))))
                return PyJs_LONG_81_()
            PyJs_isWhiteSpace_80_._set_name('isWhiteSpace')
            @Js
            def PyJs_isLineTerminator_82_(cp, this, arguments, var=var):
                var = Scope({'cp':cp, 'this':this, 'arguments':arguments, 'isLineTerminator':PyJs_isLineTerminator_82_}, var)
                var.registers(['cp'])
                return (((PyJsStrictEq(var.get('cp'),Js(10)) or PyJsStrictEq(var.get('cp'),Js(13))) or PyJsStrictEq(var.get('cp'),Js(8232))) or PyJsStrictEq(var.get('cp'),Js(8233)))
            PyJs_isLineTerminator_82_._set_name('isLineTerminator')
            @Js
            def PyJs_isIdentifierStart_83_(cp, this, arguments, var=var):
                var = Scope({'cp':cp, 'this':this, 'arguments':arguments, 'isIdentifierStart':PyJs_isIdentifierStart_83_}, var)
                var.registers(['cp'])
                def PyJs_LONG_84_(var=var):
                    return (((((PyJsStrictEq(var.get('cp'),Js(36)) or PyJsStrictEq(var.get('cp'),Js(95))) or ((var.get('cp')>=Js(65)) and (var.get('cp')<=Js(90)))) or ((var.get('cp')>=Js(97)) and (var.get('cp')<=Js(122)))) or PyJsStrictEq(var.get('cp'),Js(92))) or ((var.get('cp')>=Js(128)) and var.get('Regex').get('NonAsciiIdentifierStart').callprop('test', var.get('exports').get('Character').callprop('fromCodePoint', var.get('cp')))))
                return PyJs_LONG_84_()
            PyJs_isIdentifierStart_83_._set_name('isIdentifierStart')
            @Js
            def PyJs_isIdentifierPart_85_(cp, this, arguments, var=var):
                var = Scope({'cp':cp, 'this':this, 'arguments':arguments, 'isIdentifierPart':PyJs_isIdentifierPart_85_}, var)
                var.registers(['cp'])
                def PyJs_LONG_86_(var=var):
                    return ((((((PyJsStrictEq(var.get('cp'),Js(36)) or PyJsStrictEq(var.get('cp'),Js(95))) or ((var.get('cp')>=Js(65)) and (var.get('cp')<=Js(90)))) or ((var.get('cp')>=Js(97)) and (var.get('cp')<=Js(122)))) or ((var.get('cp')>=Js(48)) and (var.get('cp')<=Js(57)))) or PyJsStrictEq(var.get('cp'),Js(92))) or ((var.get('cp')>=Js(128)) and var.get('Regex').get('NonAsciiIdentifierPart').callprop('test', var.get('exports').get('Character').callprop('fromCodePoint', var.get('cp')))))
                return PyJs_LONG_86_()
            PyJs_isIdentifierPart_85_._set_name('isIdentifierPart')
            @Js
            def PyJs_isDecimalDigit_87_(cp, this, arguments, var=var):
                var = Scope({'cp':cp, 'this':this, 'arguments':arguments, 'isDecimalDigit':PyJs_isDecimalDigit_87_}, var)
                var.registers(['cp'])
                return ((var.get('cp')>=Js(48)) and (var.get('cp')<=Js(57)))
            PyJs_isDecimalDigit_87_._set_name('isDecimalDigit')
            @Js
            def PyJs_isHexDigit_88_(cp, this, arguments, var=var):
                var = Scope({'cp':cp, 'this':this, 'arguments':arguments, 'isHexDigit':PyJs_isHexDigit_88_}, var)
                var.registers(['cp'])
                return ((((var.get('cp')>=Js(48)) and (var.get('cp')<=Js(57))) or ((var.get('cp')>=Js(65)) and (var.get('cp')<=Js(70)))) or ((var.get('cp')>=Js(97)) and (var.get('cp')<=Js(102))))
            PyJs_isHexDigit_88_._set_name('isHexDigit')
            @Js
            def PyJs_isOctalDigit_89_(cp, this, arguments, var=var):
                var = Scope({'cp':cp, 'this':this, 'arguments':arguments, 'isOctalDigit':PyJs_isOctalDigit_89_}, var)
                var.registers(['cp'])
                return ((var.get('cp')>=Js(48)) and (var.get('cp')<=Js(55)))
            PyJs_isOctalDigit_89_._set_name('isOctalDigit')
            PyJs_Object_78_ = Js({'fromCodePoint':PyJs_fromCodePoint_79_,'isWhiteSpace':PyJs_isWhiteSpace_80_,'isLineTerminator':PyJs_isLineTerminator_82_,'isIdentifierStart':PyJs_isIdentifierStart_83_,'isIdentifierPart':PyJs_isIdentifierPart_85_,'isDecimalDigit':PyJs_isDecimalDigit_87_,'isHexDigit':PyJs_isHexDigit_88_,'isOctalDigit':PyJs_isOctalDigit_89_})
            var.get('exports').put('Character', PyJs_Object_78_)
        PyJs_anonymous_75_._set_name('anonymous')
        @Js
        def PyJs_anonymous_90_(module, exports, __webpack_require__, this, arguments, var=var):
            var = Scope({'module':module, 'exports':exports, '__webpack_require__':__webpack_require__, 'this':this, 'arguments':arguments}, var)
            var.registers(['JSXSpreadAttribute', 'JSXAttribute', 'JSXClosingElement', 'JSXElement', 'JSXText', 'JSXOpeningElement', 'JSXEmptyExpression', 'jsx_syntax_1', 'exports', '__webpack_require__', 'JSXIdentifier', 'JSXExpressionContainer', 'module', 'JSXNamespacedName', 'JSXMemberExpression'])
            Js('use strict')
            PyJs_Object_91_ = Js({'value':Js(True)})
            var.get('Object').callprop('defineProperty', var.get('exports'), Js('__esModule'), PyJs_Object_91_)
            var.put('jsx_syntax_1', var.get('__webpack_require__')(Js(6.0)))
            @Js
            def PyJs_anonymous_92_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['JSXClosingElement'])
                @Js
                def PyJsHoisted_JSXClosingElement_(name, this, arguments, var=var):
                    var = Scope({'name':name, 'this':this, 'arguments':arguments}, var)
                    var.registers(['name'])
                    var.get(u"this").put('type', var.get('jsx_syntax_1').get('JSXSyntax').get('JSXClosingElement'))
                    var.get(u"this").put('name', var.get('name'))
                PyJsHoisted_JSXClosingElement_.func_name = 'JSXClosingElement'
                var.put('JSXClosingElement', PyJsHoisted_JSXClosingElement_)
                pass
                return var.get('JSXClosingElement')
            PyJs_anonymous_92_._set_name('anonymous')
            var.put('JSXClosingElement', PyJs_anonymous_92_())
            var.get('exports').put('JSXClosingElement', var.get('JSXClosingElement'))
            @Js
            def PyJs_anonymous_93_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['JSXElement'])
                @Js
                def PyJsHoisted_JSXElement_(openingElement, children, closingElement, this, arguments, var=var):
                    var = Scope({'openingElement':openingElement, 'children':children, 'closingElement':closingElement, 'this':this, 'arguments':arguments}, var)
                    var.registers(['openingElement', 'children', 'closingElement'])
                    var.get(u"this").put('type', var.get('jsx_syntax_1').get('JSXSyntax').get('JSXElement'))
                    var.get(u"this").put('openingElement', var.get('openingElement'))
                    var.get(u"this").put('children', var.get('children'))
                    var.get(u"this").put('closingElement', var.get('closingElement'))
                PyJsHoisted_JSXElement_.func_name = 'JSXElement'
                var.put('JSXElement', PyJsHoisted_JSXElement_)
                pass
                return var.get('JSXElement')
            PyJs_anonymous_93_._set_name('anonymous')
            var.put('JSXElement', PyJs_anonymous_93_())
            var.get('exports').put('JSXElement', var.get('JSXElement'))
            @Js
            def PyJs_anonymous_94_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['JSXEmptyExpression'])
                @Js
                def PyJsHoisted_JSXEmptyExpression_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers([])
                    var.get(u"this").put('type', var.get('jsx_syntax_1').get('JSXSyntax').get('JSXEmptyExpression'))
                PyJsHoisted_JSXEmptyExpression_.func_name = 'JSXEmptyExpression'
                var.put('JSXEmptyExpression', PyJsHoisted_JSXEmptyExpression_)
                pass
                return var.get('JSXEmptyExpression')
            PyJs_anonymous_94_._set_name('anonymous')
            var.put('JSXEmptyExpression', PyJs_anonymous_94_())
            var.get('exports').put('JSXEmptyExpression', var.get('JSXEmptyExpression'))
            @Js
            def PyJs_anonymous_95_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['JSXExpressionContainer'])
                @Js
                def PyJsHoisted_JSXExpressionContainer_(expression, this, arguments, var=var):
                    var = Scope({'expression':expression, 'this':this, 'arguments':arguments}, var)
                    var.registers(['expression'])
                    var.get(u"this").put('type', var.get('jsx_syntax_1').get('JSXSyntax').get('JSXExpressionContainer'))
                    var.get(u"this").put('expression', var.get('expression'))
                PyJsHoisted_JSXExpressionContainer_.func_name = 'JSXExpressionContainer'
                var.put('JSXExpressionContainer', PyJsHoisted_JSXExpressionContainer_)
                pass
                return var.get('JSXExpressionContainer')
            PyJs_anonymous_95_._set_name('anonymous')
            var.put('JSXExpressionContainer', PyJs_anonymous_95_())
            var.get('exports').put('JSXExpressionContainer', var.get('JSXExpressionContainer'))
            @Js
            def PyJs_anonymous_96_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['JSXIdentifier'])
                @Js
                def PyJsHoisted_JSXIdentifier_(name, this, arguments, var=var):
                    var = Scope({'name':name, 'this':this, 'arguments':arguments}, var)
                    var.registers(['name'])
                    var.get(u"this").put('type', var.get('jsx_syntax_1').get('JSXSyntax').get('JSXIdentifier'))
                    var.get(u"this").put('name', var.get('name'))
                PyJsHoisted_JSXIdentifier_.func_name = 'JSXIdentifier'
                var.put('JSXIdentifier', PyJsHoisted_JSXIdentifier_)
                pass
                return var.get('JSXIdentifier')
            PyJs_anonymous_96_._set_name('anonymous')
            var.put('JSXIdentifier', PyJs_anonymous_96_())
            var.get('exports').put('JSXIdentifier', var.get('JSXIdentifier'))
            @Js
            def PyJs_anonymous_97_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['JSXMemberExpression'])
                @Js
                def PyJsHoisted_JSXMemberExpression_(object, property, this, arguments, var=var):
                    var = Scope({'object':object, 'property':property, 'this':this, 'arguments':arguments}, var)
                    var.registers(['property', 'object'])
                    var.get(u"this").put('type', var.get('jsx_syntax_1').get('JSXSyntax').get('JSXMemberExpression'))
                    var.get(u"this").put('object', var.get('object'))
                    var.get(u"this").put('property', var.get('property'))
                PyJsHoisted_JSXMemberExpression_.func_name = 'JSXMemberExpression'
                var.put('JSXMemberExpression', PyJsHoisted_JSXMemberExpression_)
                pass
                return var.get('JSXMemberExpression')
            PyJs_anonymous_97_._set_name('anonymous')
            var.put('JSXMemberExpression', PyJs_anonymous_97_())
            var.get('exports').put('JSXMemberExpression', var.get('JSXMemberExpression'))
            @Js
            def PyJs_anonymous_98_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['JSXAttribute'])
                @Js
                def PyJsHoisted_JSXAttribute_(name, value, this, arguments, var=var):
                    var = Scope({'name':name, 'value':value, 'this':this, 'arguments':arguments}, var)
                    var.registers(['name', 'value'])
                    var.get(u"this").put('type', var.get('jsx_syntax_1').get('JSXSyntax').get('JSXAttribute'))
                    var.get(u"this").put('name', var.get('name'))
                    var.get(u"this").put('value', var.get('value'))
                PyJsHoisted_JSXAttribute_.func_name = 'JSXAttribute'
                var.put('JSXAttribute', PyJsHoisted_JSXAttribute_)
                pass
                return var.get('JSXAttribute')
            PyJs_anonymous_98_._set_name('anonymous')
            var.put('JSXAttribute', PyJs_anonymous_98_())
            var.get('exports').put('JSXAttribute', var.get('JSXAttribute'))
            @Js
            def PyJs_anonymous_99_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['JSXNamespacedName'])
                @Js
                def PyJsHoisted_JSXNamespacedName_(namespace, name, this, arguments, var=var):
                    var = Scope({'namespace':namespace, 'name':name, 'this':this, 'arguments':arguments}, var)
                    var.registers(['name', 'namespace'])
                    var.get(u"this").put('type', var.get('jsx_syntax_1').get('JSXSyntax').get('JSXNamespacedName'))
                    var.get(u"this").put('namespace', var.get('namespace'))
                    var.get(u"this").put('name', var.get('name'))
                PyJsHoisted_JSXNamespacedName_.func_name = 'JSXNamespacedName'
                var.put('JSXNamespacedName', PyJsHoisted_JSXNamespacedName_)
                pass
                return var.get('JSXNamespacedName')
            PyJs_anonymous_99_._set_name('anonymous')
            var.put('JSXNamespacedName', PyJs_anonymous_99_())
            var.get('exports').put('JSXNamespacedName', var.get('JSXNamespacedName'))
            @Js
            def PyJs_anonymous_100_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['JSXOpeningElement'])
                @Js
                def PyJsHoisted_JSXOpeningElement_(name, selfClosing, attributes, this, arguments, var=var):
                    var = Scope({'name':name, 'selfClosing':selfClosing, 'attributes':attributes, 'this':this, 'arguments':arguments}, var)
                    var.registers(['name', 'attributes', 'selfClosing'])
                    var.get(u"this").put('type', var.get('jsx_syntax_1').get('JSXSyntax').get('JSXOpeningElement'))
                    var.get(u"this").put('name', var.get('name'))
                    var.get(u"this").put('selfClosing', var.get('selfClosing'))
                    var.get(u"this").put('attributes', var.get('attributes'))
                PyJsHoisted_JSXOpeningElement_.func_name = 'JSXOpeningElement'
                var.put('JSXOpeningElement', PyJsHoisted_JSXOpeningElement_)
                pass
                return var.get('JSXOpeningElement')
            PyJs_anonymous_100_._set_name('anonymous')
            var.put('JSXOpeningElement', PyJs_anonymous_100_())
            var.get('exports').put('JSXOpeningElement', var.get('JSXOpeningElement'))
            @Js
            def PyJs_anonymous_101_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['JSXSpreadAttribute'])
                @Js
                def PyJsHoisted_JSXSpreadAttribute_(argument, this, arguments, var=var):
                    var = Scope({'argument':argument, 'this':this, 'arguments':arguments}, var)
                    var.registers(['argument'])
                    var.get(u"this").put('type', var.get('jsx_syntax_1').get('JSXSyntax').get('JSXSpreadAttribute'))
                    var.get(u"this").put('argument', var.get('argument'))
                PyJsHoisted_JSXSpreadAttribute_.func_name = 'JSXSpreadAttribute'
                var.put('JSXSpreadAttribute', PyJsHoisted_JSXSpreadAttribute_)
                pass
                return var.get('JSXSpreadAttribute')
            PyJs_anonymous_101_._set_name('anonymous')
            var.put('JSXSpreadAttribute', PyJs_anonymous_101_())
            var.get('exports').put('JSXSpreadAttribute', var.get('JSXSpreadAttribute'))
            @Js
            def PyJs_anonymous_102_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['JSXText'])
                @Js
                def PyJsHoisted_JSXText_(value, raw, this, arguments, var=var):
                    var = Scope({'value':value, 'raw':raw, 'this':this, 'arguments':arguments}, var)
                    var.registers(['raw', 'value'])
                    var.get(u"this").put('type', var.get('jsx_syntax_1').get('JSXSyntax').get('JSXText'))
                    var.get(u"this").put('value', var.get('value'))
                    var.get(u"this").put('raw', var.get('raw'))
                PyJsHoisted_JSXText_.func_name = 'JSXText'
                var.put('JSXText', PyJsHoisted_JSXText_)
                pass
                return var.get('JSXText')
            PyJs_anonymous_102_._set_name('anonymous')
            var.put('JSXText', PyJs_anonymous_102_())
            var.get('exports').put('JSXText', var.get('JSXText'))
        PyJs_anonymous_90_._set_name('anonymous')
        @Js
        def PyJs_anonymous_103_(module, exports, this, arguments, var=var):
            var = Scope({'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
            var.registers(['module', 'exports'])
            Js('use strict')
            PyJs_Object_104_ = Js({'value':Js(True)})
            var.get('Object').callprop('defineProperty', var.get('exports'), Js('__esModule'), PyJs_Object_104_)
            PyJs_Object_105_ = Js({'JSXAttribute':Js('JSXAttribute'),'JSXClosingElement':Js('JSXClosingElement'),'JSXElement':Js('JSXElement'),'JSXEmptyExpression':Js('JSXEmptyExpression'),'JSXExpressionContainer':Js('JSXExpressionContainer'),'JSXIdentifier':Js('JSXIdentifier'),'JSXMemberExpression':Js('JSXMemberExpression'),'JSXNamespacedName':Js('JSXNamespacedName'),'JSXOpeningElement':Js('JSXOpeningElement'),'JSXSpreadAttribute':Js('JSXSpreadAttribute'),'JSXText':Js('JSXText')})
            var.get('exports').put('JSXSyntax', PyJs_Object_105_)
        PyJs_anonymous_103_._set_name('anonymous')
        @Js
        def PyJs_anonymous_106_(module, exports, __webpack_require__, this, arguments, var=var):
            var = Scope({'module':module, 'exports':exports, '__webpack_require__':__webpack_require__, 'this':this, 'arguments':arguments}, var)
            var.registers(['ObjectExpression', 'ClassBody', 'MethodDefinition', 'AssignmentExpression', 'BlockStatement', 'ArrayExpression', 'TemplateElement', 'CatchClause', 'FunctionExpression', 'ContinueStatement', 'ExpressionStatement', 'ArrowFunctionExpression', 'SwitchCase', 'SequenceExpression', 'VariableDeclarator', 'AsyncFunctionExpression', 'ForInStatement', 'module', 'SpreadElement', 'DoWhileStatement', 'ExportAllDeclaration', 'Identifier', 'LabeledStatement', 'TemplateLiteral', 'NewExpression', 'DebuggerStatement', 'BreakStatement', 'FunctionDeclaration', 'UpdateExpression', 'ExportDefaultDeclaration', 'ArrayPattern', 'StaticMemberExpression', 'WhileStatement', 'Super', 'SwitchStatement', 'Literal', 'YieldExpression', 'ComputedMemberExpression', 'WithStatement', 'ThisExpression', 'RegexLiteral', 'TaggedTemplateExpression', 'ImportDefaultSpecifier', 'ClassExpression', 'ObjectPattern', 'Script', 'ThrowStatement', 'Module', 'Directive', 'AsyncArrowFunctionExpression', 'UnaryExpression', 'ClassDeclaration', 'MetaProperty', 'ExportNamedDeclaration', 'ImportNamespaceSpecifier', 'Property', 'TryStatement', '__webpack_require__', 'ForStatement', 'ReturnStatement', 'exports', 'ImportDeclaration', 'RestElement', 'ExportSpecifier', 'AssignmentPattern', 'AsyncFunctionDeclaration', 'IfStatement', 'BinaryExpression', 'ImportSpecifier', 'VariableDeclaration', 'CallExpression', 'ConditionalExpression', 'ForOfStatement', 'EmptyStatement', 'AwaitExpression', 'syntax_1'])
            Js('use strict')
            PyJs_Object_107_ = Js({'value':Js(True)})
            var.get('Object').callprop('defineProperty', var.get('exports'), Js('__esModule'), PyJs_Object_107_)
            var.put('syntax_1', var.get('__webpack_require__')(Js(2.0)))
            @Js
            def PyJs_anonymous_108_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['ArrayExpression'])
                @Js
                def PyJsHoisted_ArrayExpression_(elements, this, arguments, var=var):
                    var = Scope({'elements':elements, 'this':this, 'arguments':arguments}, var)
                    var.registers(['elements'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('ArrayExpression'))
                    var.get(u"this").put('elements', var.get('elements'))
                PyJsHoisted_ArrayExpression_.func_name = 'ArrayExpression'
                var.put('ArrayExpression', PyJsHoisted_ArrayExpression_)
                pass
                return var.get('ArrayExpression')
            PyJs_anonymous_108_._set_name('anonymous')
            var.put('ArrayExpression', PyJs_anonymous_108_())
            var.get('exports').put('ArrayExpression', var.get('ArrayExpression'))
            @Js
            def PyJs_anonymous_109_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['ArrayPattern'])
                @Js
                def PyJsHoisted_ArrayPattern_(elements, this, arguments, var=var):
                    var = Scope({'elements':elements, 'this':this, 'arguments':arguments}, var)
                    var.registers(['elements'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('ArrayPattern'))
                    var.get(u"this").put('elements', var.get('elements'))
                PyJsHoisted_ArrayPattern_.func_name = 'ArrayPattern'
                var.put('ArrayPattern', PyJsHoisted_ArrayPattern_)
                pass
                return var.get('ArrayPattern')
            PyJs_anonymous_109_._set_name('anonymous')
            var.put('ArrayPattern', PyJs_anonymous_109_())
            var.get('exports').put('ArrayPattern', var.get('ArrayPattern'))
            @Js
            def PyJs_anonymous_110_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['ArrowFunctionExpression'])
                @Js
                def PyJsHoisted_ArrowFunctionExpression_(params, body, expression, this, arguments, var=var):
                    var = Scope({'params':params, 'body':body, 'expression':expression, 'this':this, 'arguments':arguments}, var)
                    var.registers(['expression', 'body', 'params'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('ArrowFunctionExpression'))
                    var.get(u"this").put('id', var.get(u"null"))
                    var.get(u"this").put('params', var.get('params'))
                    var.get(u"this").put('body', var.get('body'))
                    var.get(u"this").put('generator', Js(False))
                    var.get(u"this").put('expression', var.get('expression'))
                    var.get(u"this").put('async', Js(False))
                PyJsHoisted_ArrowFunctionExpression_.func_name = 'ArrowFunctionExpression'
                var.put('ArrowFunctionExpression', PyJsHoisted_ArrowFunctionExpression_)
                pass
                return var.get('ArrowFunctionExpression')
            PyJs_anonymous_110_._set_name('anonymous')
            var.put('ArrowFunctionExpression', PyJs_anonymous_110_())
            var.get('exports').put('ArrowFunctionExpression', var.get('ArrowFunctionExpression'))
            @Js
            def PyJs_anonymous_111_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['AssignmentExpression'])
                @Js
                def PyJsHoisted_AssignmentExpression_(operator, left, right, this, arguments, var=var):
                    var = Scope({'operator':operator, 'left':left, 'right':right, 'this':this, 'arguments':arguments}, var)
                    var.registers(['left', 'operator', 'right'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('AssignmentExpression'))
                    var.get(u"this").put('operator', var.get('operator'))
                    var.get(u"this").put('left', var.get('left'))
                    var.get(u"this").put('right', var.get('right'))
                PyJsHoisted_AssignmentExpression_.func_name = 'AssignmentExpression'
                var.put('AssignmentExpression', PyJsHoisted_AssignmentExpression_)
                pass
                return var.get('AssignmentExpression')
            PyJs_anonymous_111_._set_name('anonymous')
            var.put('AssignmentExpression', PyJs_anonymous_111_())
            var.get('exports').put('AssignmentExpression', var.get('AssignmentExpression'))
            @Js
            def PyJs_anonymous_112_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['AssignmentPattern'])
                @Js
                def PyJsHoisted_AssignmentPattern_(left, right, this, arguments, var=var):
                    var = Scope({'left':left, 'right':right, 'this':this, 'arguments':arguments}, var)
                    var.registers(['left', 'right'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('AssignmentPattern'))
                    var.get(u"this").put('left', var.get('left'))
                    var.get(u"this").put('right', var.get('right'))
                PyJsHoisted_AssignmentPattern_.func_name = 'AssignmentPattern'
                var.put('AssignmentPattern', PyJsHoisted_AssignmentPattern_)
                pass
                return var.get('AssignmentPattern')
            PyJs_anonymous_112_._set_name('anonymous')
            var.put('AssignmentPattern', PyJs_anonymous_112_())
            var.get('exports').put('AssignmentPattern', var.get('AssignmentPattern'))
            @Js
            def PyJs_anonymous_113_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['AsyncArrowFunctionExpression'])
                @Js
                def PyJsHoisted_AsyncArrowFunctionExpression_(params, body, expression, this, arguments, var=var):
                    var = Scope({'params':params, 'body':body, 'expression':expression, 'this':this, 'arguments':arguments}, var)
                    var.registers(['expression', 'body', 'params'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('ArrowFunctionExpression'))
                    var.get(u"this").put('id', var.get(u"null"))
                    var.get(u"this").put('params', var.get('params'))
                    var.get(u"this").put('body', var.get('body'))
                    var.get(u"this").put('generator', Js(False))
                    var.get(u"this").put('expression', var.get('expression'))
                    var.get(u"this").put('async', Js(True))
                PyJsHoisted_AsyncArrowFunctionExpression_.func_name = 'AsyncArrowFunctionExpression'
                var.put('AsyncArrowFunctionExpression', PyJsHoisted_AsyncArrowFunctionExpression_)
                pass
                return var.get('AsyncArrowFunctionExpression')
            PyJs_anonymous_113_._set_name('anonymous')
            var.put('AsyncArrowFunctionExpression', PyJs_anonymous_113_())
            var.get('exports').put('AsyncArrowFunctionExpression', var.get('AsyncArrowFunctionExpression'))
            @Js
            def PyJs_anonymous_114_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['AsyncFunctionDeclaration'])
                @Js
                def PyJsHoisted_AsyncFunctionDeclaration_(id, params, body, this, arguments, var=var):
                    var = Scope({'id':id, 'params':params, 'body':body, 'this':this, 'arguments':arguments}, var)
                    var.registers(['id', 'body', 'params'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('FunctionDeclaration'))
                    var.get(u"this").put('id', var.get('id'))
                    var.get(u"this").put('params', var.get('params'))
                    var.get(u"this").put('body', var.get('body'))
                    var.get(u"this").put('generator', Js(False))
                    var.get(u"this").put('expression', Js(False))
                    var.get(u"this").put('async', Js(True))
                PyJsHoisted_AsyncFunctionDeclaration_.func_name = 'AsyncFunctionDeclaration'
                var.put('AsyncFunctionDeclaration', PyJsHoisted_AsyncFunctionDeclaration_)
                pass
                return var.get('AsyncFunctionDeclaration')
            PyJs_anonymous_114_._set_name('anonymous')
            var.put('AsyncFunctionDeclaration', PyJs_anonymous_114_())
            var.get('exports').put('AsyncFunctionDeclaration', var.get('AsyncFunctionDeclaration'))
            @Js
            def PyJs_anonymous_115_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['AsyncFunctionExpression'])
                @Js
                def PyJsHoisted_AsyncFunctionExpression_(id, params, body, this, arguments, var=var):
                    var = Scope({'id':id, 'params':params, 'body':body, 'this':this, 'arguments':arguments}, var)
                    var.registers(['id', 'body', 'params'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('FunctionExpression'))
                    var.get(u"this").put('id', var.get('id'))
                    var.get(u"this").put('params', var.get('params'))
                    var.get(u"this").put('body', var.get('body'))
                    var.get(u"this").put('generator', Js(False))
                    var.get(u"this").put('expression', Js(False))
                    var.get(u"this").put('async', Js(True))
                PyJsHoisted_AsyncFunctionExpression_.func_name = 'AsyncFunctionExpression'
                var.put('AsyncFunctionExpression', PyJsHoisted_AsyncFunctionExpression_)
                pass
                return var.get('AsyncFunctionExpression')
            PyJs_anonymous_115_._set_name('anonymous')
            var.put('AsyncFunctionExpression', PyJs_anonymous_115_())
            var.get('exports').put('AsyncFunctionExpression', var.get('AsyncFunctionExpression'))
            @Js
            def PyJs_anonymous_116_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['AwaitExpression'])
                @Js
                def PyJsHoisted_AwaitExpression_(argument, this, arguments, var=var):
                    var = Scope({'argument':argument, 'this':this, 'arguments':arguments}, var)
                    var.registers(['argument'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('AwaitExpression'))
                    var.get(u"this").put('argument', var.get('argument'))
                PyJsHoisted_AwaitExpression_.func_name = 'AwaitExpression'
                var.put('AwaitExpression', PyJsHoisted_AwaitExpression_)
                pass
                return var.get('AwaitExpression')
            PyJs_anonymous_116_._set_name('anonymous')
            var.put('AwaitExpression', PyJs_anonymous_116_())
            var.get('exports').put('AwaitExpression', var.get('AwaitExpression'))
            @Js
            def PyJs_anonymous_117_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['BinaryExpression'])
                @Js
                def PyJsHoisted_BinaryExpression_(operator, left, right, this, arguments, var=var):
                    var = Scope({'operator':operator, 'left':left, 'right':right, 'this':this, 'arguments':arguments}, var)
                    var.registers(['logical', 'left', 'operator', 'right'])
                    var.put('logical', (PyJsStrictEq(var.get('operator'),Js('||')) or PyJsStrictEq(var.get('operator'),Js('&&'))))
                    var.get(u"this").put('type', (var.get('syntax_1').get('Syntax').get('LogicalExpression') if var.get('logical') else var.get('syntax_1').get('Syntax').get('BinaryExpression')))
                    var.get(u"this").put('operator', var.get('operator'))
                    var.get(u"this").put('left', var.get('left'))
                    var.get(u"this").put('right', var.get('right'))
                PyJsHoisted_BinaryExpression_.func_name = 'BinaryExpression'
                var.put('BinaryExpression', PyJsHoisted_BinaryExpression_)
                pass
                return var.get('BinaryExpression')
            PyJs_anonymous_117_._set_name('anonymous')
            var.put('BinaryExpression', PyJs_anonymous_117_())
            var.get('exports').put('BinaryExpression', var.get('BinaryExpression'))
            @Js
            def PyJs_anonymous_118_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['BlockStatement'])
                @Js
                def PyJsHoisted_BlockStatement_(body, this, arguments, var=var):
                    var = Scope({'body':body, 'this':this, 'arguments':arguments}, var)
                    var.registers(['body'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('BlockStatement'))
                    var.get(u"this").put('body', var.get('body'))
                PyJsHoisted_BlockStatement_.func_name = 'BlockStatement'
                var.put('BlockStatement', PyJsHoisted_BlockStatement_)
                pass
                return var.get('BlockStatement')
            PyJs_anonymous_118_._set_name('anonymous')
            var.put('BlockStatement', PyJs_anonymous_118_())
            var.get('exports').put('BlockStatement', var.get('BlockStatement'))
            @Js
            def PyJs_anonymous_119_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['BreakStatement'])
                @Js
                def PyJsHoisted_BreakStatement_(label, this, arguments, var=var):
                    var = Scope({'label':label, 'this':this, 'arguments':arguments}, var)
                    var.registers(['label'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('BreakStatement'))
                    var.get(u"this").put('label', var.get('label'))
                PyJsHoisted_BreakStatement_.func_name = 'BreakStatement'
                var.put('BreakStatement', PyJsHoisted_BreakStatement_)
                pass
                return var.get('BreakStatement')
            PyJs_anonymous_119_._set_name('anonymous')
            var.put('BreakStatement', PyJs_anonymous_119_())
            var.get('exports').put('BreakStatement', var.get('BreakStatement'))
            @Js
            def PyJs_anonymous_120_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['CallExpression'])
                @Js
                def PyJsHoisted_CallExpression_(callee, args, this, arguments, var=var):
                    var = Scope({'callee':callee, 'args':args, 'this':this, 'arguments':arguments}, var)
                    var.registers(['args', 'callee'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('CallExpression'))
                    var.get(u"this").put('callee', var.get('callee'))
                    var.get(u"this").put('arguments', var.get('args'))
                PyJsHoisted_CallExpression_.func_name = 'CallExpression'
                var.put('CallExpression', PyJsHoisted_CallExpression_)
                pass
                return var.get('CallExpression')
            PyJs_anonymous_120_._set_name('anonymous')
            var.put('CallExpression', PyJs_anonymous_120_())
            var.get('exports').put('CallExpression', var.get('CallExpression'))
            @Js
            def PyJs_anonymous_121_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['CatchClause'])
                @Js
                def PyJsHoisted_CatchClause_(param, body, this, arguments, var=var):
                    var = Scope({'param':param, 'body':body, 'this':this, 'arguments':arguments}, var)
                    var.registers(['body', 'param'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('CatchClause'))
                    var.get(u"this").put('param', var.get('param'))
                    var.get(u"this").put('body', var.get('body'))
                PyJsHoisted_CatchClause_.func_name = 'CatchClause'
                var.put('CatchClause', PyJsHoisted_CatchClause_)
                pass
                return var.get('CatchClause')
            PyJs_anonymous_121_._set_name('anonymous')
            var.put('CatchClause', PyJs_anonymous_121_())
            var.get('exports').put('CatchClause', var.get('CatchClause'))
            @Js
            def PyJs_anonymous_122_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['ClassBody'])
                @Js
                def PyJsHoisted_ClassBody_(body, this, arguments, var=var):
                    var = Scope({'body':body, 'this':this, 'arguments':arguments}, var)
                    var.registers(['body'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('ClassBody'))
                    var.get(u"this").put('body', var.get('body'))
                PyJsHoisted_ClassBody_.func_name = 'ClassBody'
                var.put('ClassBody', PyJsHoisted_ClassBody_)
                pass
                return var.get('ClassBody')
            PyJs_anonymous_122_._set_name('anonymous')
            var.put('ClassBody', PyJs_anonymous_122_())
            var.get('exports').put('ClassBody', var.get('ClassBody'))
            @Js
            def PyJs_anonymous_123_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['ClassDeclaration'])
                @Js
                def PyJsHoisted_ClassDeclaration_(id, superClass, body, this, arguments, var=var):
                    var = Scope({'id':id, 'superClass':superClass, 'body':body, 'this':this, 'arguments':arguments}, var)
                    var.registers(['id', 'body', 'superClass'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('ClassDeclaration'))
                    var.get(u"this").put('id', var.get('id'))
                    var.get(u"this").put('superClass', var.get('superClass'))
                    var.get(u"this").put('body', var.get('body'))
                PyJsHoisted_ClassDeclaration_.func_name = 'ClassDeclaration'
                var.put('ClassDeclaration', PyJsHoisted_ClassDeclaration_)
                pass
                return var.get('ClassDeclaration')
            PyJs_anonymous_123_._set_name('anonymous')
            var.put('ClassDeclaration', PyJs_anonymous_123_())
            var.get('exports').put('ClassDeclaration', var.get('ClassDeclaration'))
            @Js
            def PyJs_anonymous_124_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['ClassExpression'])
                @Js
                def PyJsHoisted_ClassExpression_(id, superClass, body, this, arguments, var=var):
                    var = Scope({'id':id, 'superClass':superClass, 'body':body, 'this':this, 'arguments':arguments}, var)
                    var.registers(['id', 'body', 'superClass'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('ClassExpression'))
                    var.get(u"this").put('id', var.get('id'))
                    var.get(u"this").put('superClass', var.get('superClass'))
                    var.get(u"this").put('body', var.get('body'))
                PyJsHoisted_ClassExpression_.func_name = 'ClassExpression'
                var.put('ClassExpression', PyJsHoisted_ClassExpression_)
                pass
                return var.get('ClassExpression')
            PyJs_anonymous_124_._set_name('anonymous')
            var.put('ClassExpression', PyJs_anonymous_124_())
            var.get('exports').put('ClassExpression', var.get('ClassExpression'))
            @Js
            def PyJs_anonymous_125_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['ComputedMemberExpression'])
                @Js
                def PyJsHoisted_ComputedMemberExpression_(object, property, this, arguments, var=var):
                    var = Scope({'object':object, 'property':property, 'this':this, 'arguments':arguments}, var)
                    var.registers(['property', 'object'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('MemberExpression'))
                    var.get(u"this").put('computed', Js(True))
                    var.get(u"this").put('object', var.get('object'))
                    var.get(u"this").put('property', var.get('property'))
                PyJsHoisted_ComputedMemberExpression_.func_name = 'ComputedMemberExpression'
                var.put('ComputedMemberExpression', PyJsHoisted_ComputedMemberExpression_)
                pass
                return var.get('ComputedMemberExpression')
            PyJs_anonymous_125_._set_name('anonymous')
            var.put('ComputedMemberExpression', PyJs_anonymous_125_())
            var.get('exports').put('ComputedMemberExpression', var.get('ComputedMemberExpression'))
            @Js
            def PyJs_anonymous_126_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['ConditionalExpression'])
                @Js
                def PyJsHoisted_ConditionalExpression_(test, consequent, alternate, this, arguments, var=var):
                    var = Scope({'test':test, 'consequent':consequent, 'alternate':alternate, 'this':this, 'arguments':arguments}, var)
                    var.registers(['alternate', 'consequent', 'test'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('ConditionalExpression'))
                    var.get(u"this").put('test', var.get('test'))
                    var.get(u"this").put('consequent', var.get('consequent'))
                    var.get(u"this").put('alternate', var.get('alternate'))
                PyJsHoisted_ConditionalExpression_.func_name = 'ConditionalExpression'
                var.put('ConditionalExpression', PyJsHoisted_ConditionalExpression_)
                pass
                return var.get('ConditionalExpression')
            PyJs_anonymous_126_._set_name('anonymous')
            var.put('ConditionalExpression', PyJs_anonymous_126_())
            var.get('exports').put('ConditionalExpression', var.get('ConditionalExpression'))
            @Js
            def PyJs_anonymous_127_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['ContinueStatement'])
                @Js
                def PyJsHoisted_ContinueStatement_(label, this, arguments, var=var):
                    var = Scope({'label':label, 'this':this, 'arguments':arguments}, var)
                    var.registers(['label'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('ContinueStatement'))
                    var.get(u"this").put('label', var.get('label'))
                PyJsHoisted_ContinueStatement_.func_name = 'ContinueStatement'
                var.put('ContinueStatement', PyJsHoisted_ContinueStatement_)
                pass
                return var.get('ContinueStatement')
            PyJs_anonymous_127_._set_name('anonymous')
            var.put('ContinueStatement', PyJs_anonymous_127_())
            var.get('exports').put('ContinueStatement', var.get('ContinueStatement'))
            @Js
            def PyJs_anonymous_128_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['DebuggerStatement'])
                @Js
                def PyJsHoisted_DebuggerStatement_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers([])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('DebuggerStatement'))
                PyJsHoisted_DebuggerStatement_.func_name = 'DebuggerStatement'
                var.put('DebuggerStatement', PyJsHoisted_DebuggerStatement_)
                pass
                return var.get('DebuggerStatement')
            PyJs_anonymous_128_._set_name('anonymous')
            var.put('DebuggerStatement', PyJs_anonymous_128_())
            var.get('exports').put('DebuggerStatement', var.get('DebuggerStatement'))
            @Js
            def PyJs_anonymous_129_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['Directive'])
                @Js
                def PyJsHoisted_Directive_(expression, directive, this, arguments, var=var):
                    var = Scope({'expression':expression, 'directive':directive, 'this':this, 'arguments':arguments}, var)
                    var.registers(['expression', 'directive'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('ExpressionStatement'))
                    var.get(u"this").put('expression', var.get('expression'))
                    var.get(u"this").put('directive', var.get('directive'))
                PyJsHoisted_Directive_.func_name = 'Directive'
                var.put('Directive', PyJsHoisted_Directive_)
                pass
                return var.get('Directive')
            PyJs_anonymous_129_._set_name('anonymous')
            var.put('Directive', PyJs_anonymous_129_())
            var.get('exports').put('Directive', var.get('Directive'))
            @Js
            def PyJs_anonymous_130_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['DoWhileStatement'])
                @Js
                def PyJsHoisted_DoWhileStatement_(body, test, this, arguments, var=var):
                    var = Scope({'body':body, 'test':test, 'this':this, 'arguments':arguments}, var)
                    var.registers(['test', 'body'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('DoWhileStatement'))
                    var.get(u"this").put('body', var.get('body'))
                    var.get(u"this").put('test', var.get('test'))
                PyJsHoisted_DoWhileStatement_.func_name = 'DoWhileStatement'
                var.put('DoWhileStatement', PyJsHoisted_DoWhileStatement_)
                pass
                return var.get('DoWhileStatement')
            PyJs_anonymous_130_._set_name('anonymous')
            var.put('DoWhileStatement', PyJs_anonymous_130_())
            var.get('exports').put('DoWhileStatement', var.get('DoWhileStatement'))
            @Js
            def PyJs_anonymous_131_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['EmptyStatement'])
                @Js
                def PyJsHoisted_EmptyStatement_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers([])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('EmptyStatement'))
                PyJsHoisted_EmptyStatement_.func_name = 'EmptyStatement'
                var.put('EmptyStatement', PyJsHoisted_EmptyStatement_)
                pass
                return var.get('EmptyStatement')
            PyJs_anonymous_131_._set_name('anonymous')
            var.put('EmptyStatement', PyJs_anonymous_131_())
            var.get('exports').put('EmptyStatement', var.get('EmptyStatement'))
            @Js
            def PyJs_anonymous_132_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['ExportAllDeclaration'])
                @Js
                def PyJsHoisted_ExportAllDeclaration_(source, this, arguments, var=var):
                    var = Scope({'source':source, 'this':this, 'arguments':arguments}, var)
                    var.registers(['source'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('ExportAllDeclaration'))
                    var.get(u"this").put('source', var.get('source'))
                PyJsHoisted_ExportAllDeclaration_.func_name = 'ExportAllDeclaration'
                var.put('ExportAllDeclaration', PyJsHoisted_ExportAllDeclaration_)
                pass
                return var.get('ExportAllDeclaration')
            PyJs_anonymous_132_._set_name('anonymous')
            var.put('ExportAllDeclaration', PyJs_anonymous_132_())
            var.get('exports').put('ExportAllDeclaration', var.get('ExportAllDeclaration'))
            @Js
            def PyJs_anonymous_133_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['ExportDefaultDeclaration'])
                @Js
                def PyJsHoisted_ExportDefaultDeclaration_(declaration, this, arguments, var=var):
                    var = Scope({'declaration':declaration, 'this':this, 'arguments':arguments}, var)
                    var.registers(['declaration'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('ExportDefaultDeclaration'))
                    var.get(u"this").put('declaration', var.get('declaration'))
                PyJsHoisted_ExportDefaultDeclaration_.func_name = 'ExportDefaultDeclaration'
                var.put('ExportDefaultDeclaration', PyJsHoisted_ExportDefaultDeclaration_)
                pass
                return var.get('ExportDefaultDeclaration')
            PyJs_anonymous_133_._set_name('anonymous')
            var.put('ExportDefaultDeclaration', PyJs_anonymous_133_())
            var.get('exports').put('ExportDefaultDeclaration', var.get('ExportDefaultDeclaration'))
            @Js
            def PyJs_anonymous_134_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['ExportNamedDeclaration'])
                @Js
                def PyJsHoisted_ExportNamedDeclaration_(declaration, specifiers, source, this, arguments, var=var):
                    var = Scope({'declaration':declaration, 'specifiers':specifiers, 'source':source, 'this':this, 'arguments':arguments}, var)
                    var.registers(['source', 'specifiers', 'declaration'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('ExportNamedDeclaration'))
                    var.get(u"this").put('declaration', var.get('declaration'))
                    var.get(u"this").put('specifiers', var.get('specifiers'))
                    var.get(u"this").put('source', var.get('source'))
                PyJsHoisted_ExportNamedDeclaration_.func_name = 'ExportNamedDeclaration'
                var.put('ExportNamedDeclaration', PyJsHoisted_ExportNamedDeclaration_)
                pass
                return var.get('ExportNamedDeclaration')
            PyJs_anonymous_134_._set_name('anonymous')
            var.put('ExportNamedDeclaration', PyJs_anonymous_134_())
            var.get('exports').put('ExportNamedDeclaration', var.get('ExportNamedDeclaration'))
            @Js
            def PyJs_anonymous_135_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['ExportSpecifier'])
                @Js
                def PyJsHoisted_ExportSpecifier_(local, exported, this, arguments, var=var):
                    var = Scope({'local':local, 'exported':exported, 'this':this, 'arguments':arguments}, var)
                    var.registers(['local', 'exported'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('ExportSpecifier'))
                    var.get(u"this").put('exported', var.get('exported'))
                    var.get(u"this").put('local', var.get('local'))
                PyJsHoisted_ExportSpecifier_.func_name = 'ExportSpecifier'
                var.put('ExportSpecifier', PyJsHoisted_ExportSpecifier_)
                pass
                return var.get('ExportSpecifier')
            PyJs_anonymous_135_._set_name('anonymous')
            var.put('ExportSpecifier', PyJs_anonymous_135_())
            var.get('exports').put('ExportSpecifier', var.get('ExportSpecifier'))
            @Js
            def PyJs_anonymous_136_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['ExpressionStatement'])
                @Js
                def PyJsHoisted_ExpressionStatement_(expression, this, arguments, var=var):
                    var = Scope({'expression':expression, 'this':this, 'arguments':arguments}, var)
                    var.registers(['expression'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('ExpressionStatement'))
                    var.get(u"this").put('expression', var.get('expression'))
                PyJsHoisted_ExpressionStatement_.func_name = 'ExpressionStatement'
                var.put('ExpressionStatement', PyJsHoisted_ExpressionStatement_)
                pass
                return var.get('ExpressionStatement')
            PyJs_anonymous_136_._set_name('anonymous')
            var.put('ExpressionStatement', PyJs_anonymous_136_())
            var.get('exports').put('ExpressionStatement', var.get('ExpressionStatement'))
            @Js
            def PyJs_anonymous_137_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['ForInStatement'])
                @Js
                def PyJsHoisted_ForInStatement_(left, right, body, this, arguments, var=var):
                    var = Scope({'left':left, 'right':right, 'body':body, 'this':this, 'arguments':arguments}, var)
                    var.registers(['left', 'body', 'right'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('ForInStatement'))
                    var.get(u"this").put('left', var.get('left'))
                    var.get(u"this").put('right', var.get('right'))
                    var.get(u"this").put('body', var.get('body'))
                    var.get(u"this").put('each', Js(False))
                PyJsHoisted_ForInStatement_.func_name = 'ForInStatement'
                var.put('ForInStatement', PyJsHoisted_ForInStatement_)
                pass
                return var.get('ForInStatement')
            PyJs_anonymous_137_._set_name('anonymous')
            var.put('ForInStatement', PyJs_anonymous_137_())
            var.get('exports').put('ForInStatement', var.get('ForInStatement'))
            @Js
            def PyJs_anonymous_138_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['ForOfStatement'])
                @Js
                def PyJsHoisted_ForOfStatement_(left, right, body, this, arguments, var=var):
                    var = Scope({'left':left, 'right':right, 'body':body, 'this':this, 'arguments':arguments}, var)
                    var.registers(['left', 'body', 'right'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('ForOfStatement'))
                    var.get(u"this").put('left', var.get('left'))
                    var.get(u"this").put('right', var.get('right'))
                    var.get(u"this").put('body', var.get('body'))
                PyJsHoisted_ForOfStatement_.func_name = 'ForOfStatement'
                var.put('ForOfStatement', PyJsHoisted_ForOfStatement_)
                pass
                return var.get('ForOfStatement')
            PyJs_anonymous_138_._set_name('anonymous')
            var.put('ForOfStatement', PyJs_anonymous_138_())
            var.get('exports').put('ForOfStatement', var.get('ForOfStatement'))
            @Js
            def PyJs_anonymous_139_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['ForStatement'])
                @Js
                def PyJsHoisted_ForStatement_(init, test, update, body, this, arguments, var=var):
                    var = Scope({'init':init, 'test':test, 'update':update, 'body':body, 'this':this, 'arguments':arguments}, var)
                    var.registers(['test', 'body', 'init', 'update'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('ForStatement'))
                    var.get(u"this").put('init', var.get('init'))
                    var.get(u"this").put('test', var.get('test'))
                    var.get(u"this").put('update', var.get('update'))
                    var.get(u"this").put('body', var.get('body'))
                PyJsHoisted_ForStatement_.func_name = 'ForStatement'
                var.put('ForStatement', PyJsHoisted_ForStatement_)
                pass
                return var.get('ForStatement')
            PyJs_anonymous_139_._set_name('anonymous')
            var.put('ForStatement', PyJs_anonymous_139_())
            var.get('exports').put('ForStatement', var.get('ForStatement'))
            @Js
            def PyJs_anonymous_140_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['FunctionDeclaration'])
                @Js
                def PyJsHoisted_FunctionDeclaration_(id, params, body, generator, this, arguments, var=var):
                    var = Scope({'id':id, 'params':params, 'body':body, 'generator':generator, 'this':this, 'arguments':arguments}, var)
                    var.registers(['id', 'generator', 'body', 'params'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('FunctionDeclaration'))
                    var.get(u"this").put('id', var.get('id'))
                    var.get(u"this").put('params', var.get('params'))
                    var.get(u"this").put('body', var.get('body'))
                    var.get(u"this").put('generator', var.get('generator'))
                    var.get(u"this").put('expression', Js(False))
                    var.get(u"this").put('async', Js(False))
                PyJsHoisted_FunctionDeclaration_.func_name = 'FunctionDeclaration'
                var.put('FunctionDeclaration', PyJsHoisted_FunctionDeclaration_)
                pass
                return var.get('FunctionDeclaration')
            PyJs_anonymous_140_._set_name('anonymous')
            var.put('FunctionDeclaration', PyJs_anonymous_140_())
            var.get('exports').put('FunctionDeclaration', var.get('FunctionDeclaration'))
            @Js
            def PyJs_anonymous_141_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['FunctionExpression'])
                @Js
                def PyJsHoisted_FunctionExpression_(id, params, body, generator, this, arguments, var=var):
                    var = Scope({'id':id, 'params':params, 'body':body, 'generator':generator, 'this':this, 'arguments':arguments}, var)
                    var.registers(['id', 'generator', 'body', 'params'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('FunctionExpression'))
                    var.get(u"this").put('id', var.get('id'))
                    var.get(u"this").put('params', var.get('params'))
                    var.get(u"this").put('body', var.get('body'))
                    var.get(u"this").put('generator', var.get('generator'))
                    var.get(u"this").put('expression', Js(False))
                    var.get(u"this").put('async', Js(False))
                PyJsHoisted_FunctionExpression_.func_name = 'FunctionExpression'
                var.put('FunctionExpression', PyJsHoisted_FunctionExpression_)
                pass
                return var.get('FunctionExpression')
            PyJs_anonymous_141_._set_name('anonymous')
            var.put('FunctionExpression', PyJs_anonymous_141_())
            var.get('exports').put('FunctionExpression', var.get('FunctionExpression'))
            @Js
            def PyJs_anonymous_142_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['Identifier'])
                @Js
                def PyJsHoisted_Identifier_(name, this, arguments, var=var):
                    var = Scope({'name':name, 'this':this, 'arguments':arguments}, var)
                    var.registers(['name'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('Identifier'))
                    var.get(u"this").put('name', var.get('name'))
                PyJsHoisted_Identifier_.func_name = 'Identifier'
                var.put('Identifier', PyJsHoisted_Identifier_)
                pass
                return var.get('Identifier')
            PyJs_anonymous_142_._set_name('anonymous')
            var.put('Identifier', PyJs_anonymous_142_())
            var.get('exports').put('Identifier', var.get('Identifier'))
            @Js
            def PyJs_anonymous_143_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['IfStatement'])
                @Js
                def PyJsHoisted_IfStatement_(test, consequent, alternate, this, arguments, var=var):
                    var = Scope({'test':test, 'consequent':consequent, 'alternate':alternate, 'this':this, 'arguments':arguments}, var)
                    var.registers(['alternate', 'consequent', 'test'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('IfStatement'))
                    var.get(u"this").put('test', var.get('test'))
                    var.get(u"this").put('consequent', var.get('consequent'))
                    var.get(u"this").put('alternate', var.get('alternate'))
                PyJsHoisted_IfStatement_.func_name = 'IfStatement'
                var.put('IfStatement', PyJsHoisted_IfStatement_)
                pass
                return var.get('IfStatement')
            PyJs_anonymous_143_._set_name('anonymous')
            var.put('IfStatement', PyJs_anonymous_143_())
            var.get('exports').put('IfStatement', var.get('IfStatement'))
            @Js
            def PyJs_anonymous_144_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['ImportDeclaration'])
                @Js
                def PyJsHoisted_ImportDeclaration_(specifiers, source, this, arguments, var=var):
                    var = Scope({'specifiers':specifiers, 'source':source, 'this':this, 'arguments':arguments}, var)
                    var.registers(['source', 'specifiers'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('ImportDeclaration'))
                    var.get(u"this").put('specifiers', var.get('specifiers'))
                    var.get(u"this").put('source', var.get('source'))
                PyJsHoisted_ImportDeclaration_.func_name = 'ImportDeclaration'
                var.put('ImportDeclaration', PyJsHoisted_ImportDeclaration_)
                pass
                return var.get('ImportDeclaration')
            PyJs_anonymous_144_._set_name('anonymous')
            var.put('ImportDeclaration', PyJs_anonymous_144_())
            var.get('exports').put('ImportDeclaration', var.get('ImportDeclaration'))
            @Js
            def PyJs_anonymous_145_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['ImportDefaultSpecifier'])
                @Js
                def PyJsHoisted_ImportDefaultSpecifier_(local, this, arguments, var=var):
                    var = Scope({'local':local, 'this':this, 'arguments':arguments}, var)
                    var.registers(['local'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('ImportDefaultSpecifier'))
                    var.get(u"this").put('local', var.get('local'))
                PyJsHoisted_ImportDefaultSpecifier_.func_name = 'ImportDefaultSpecifier'
                var.put('ImportDefaultSpecifier', PyJsHoisted_ImportDefaultSpecifier_)
                pass
                return var.get('ImportDefaultSpecifier')
            PyJs_anonymous_145_._set_name('anonymous')
            var.put('ImportDefaultSpecifier', PyJs_anonymous_145_())
            var.get('exports').put('ImportDefaultSpecifier', var.get('ImportDefaultSpecifier'))
            @Js
            def PyJs_anonymous_146_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['ImportNamespaceSpecifier'])
                @Js
                def PyJsHoisted_ImportNamespaceSpecifier_(local, this, arguments, var=var):
                    var = Scope({'local':local, 'this':this, 'arguments':arguments}, var)
                    var.registers(['local'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('ImportNamespaceSpecifier'))
                    var.get(u"this").put('local', var.get('local'))
                PyJsHoisted_ImportNamespaceSpecifier_.func_name = 'ImportNamespaceSpecifier'
                var.put('ImportNamespaceSpecifier', PyJsHoisted_ImportNamespaceSpecifier_)
                pass
                return var.get('ImportNamespaceSpecifier')
            PyJs_anonymous_146_._set_name('anonymous')
            var.put('ImportNamespaceSpecifier', PyJs_anonymous_146_())
            var.get('exports').put('ImportNamespaceSpecifier', var.get('ImportNamespaceSpecifier'))
            @Js
            def PyJs_anonymous_147_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['ImportSpecifier'])
                @Js
                def PyJsHoisted_ImportSpecifier_(local, imported, this, arguments, var=var):
                    var = Scope({'local':local, 'imported':imported, 'this':this, 'arguments':arguments}, var)
                    var.registers(['imported', 'local'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('ImportSpecifier'))
                    var.get(u"this").put('local', var.get('local'))
                    var.get(u"this").put('imported', var.get('imported'))
                PyJsHoisted_ImportSpecifier_.func_name = 'ImportSpecifier'
                var.put('ImportSpecifier', PyJsHoisted_ImportSpecifier_)
                pass
                return var.get('ImportSpecifier')
            PyJs_anonymous_147_._set_name('anonymous')
            var.put('ImportSpecifier', PyJs_anonymous_147_())
            var.get('exports').put('ImportSpecifier', var.get('ImportSpecifier'))
            @Js
            def PyJs_anonymous_148_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['LabeledStatement'])
                @Js
                def PyJsHoisted_LabeledStatement_(label, body, this, arguments, var=var):
                    var = Scope({'label':label, 'body':body, 'this':this, 'arguments':arguments}, var)
                    var.registers(['label', 'body'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('LabeledStatement'))
                    var.get(u"this").put('label', var.get('label'))
                    var.get(u"this").put('body', var.get('body'))
                PyJsHoisted_LabeledStatement_.func_name = 'LabeledStatement'
                var.put('LabeledStatement', PyJsHoisted_LabeledStatement_)
                pass
                return var.get('LabeledStatement')
            PyJs_anonymous_148_._set_name('anonymous')
            var.put('LabeledStatement', PyJs_anonymous_148_())
            var.get('exports').put('LabeledStatement', var.get('LabeledStatement'))
            @Js
            def PyJs_anonymous_149_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['Literal'])
                @Js
                def PyJsHoisted_Literal_(value, raw, this, arguments, var=var):
                    var = Scope({'value':value, 'raw':raw, 'this':this, 'arguments':arguments}, var)
                    var.registers(['raw', 'value'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('Literal'))
                    var.get(u"this").put('value', var.get('value'))
                    var.get(u"this").put('raw', var.get('raw'))
                PyJsHoisted_Literal_.func_name = 'Literal'
                var.put('Literal', PyJsHoisted_Literal_)
                pass
                return var.get('Literal')
            PyJs_anonymous_149_._set_name('anonymous')
            var.put('Literal', PyJs_anonymous_149_())
            var.get('exports').put('Literal', var.get('Literal'))
            @Js
            def PyJs_anonymous_150_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['MetaProperty'])
                @Js
                def PyJsHoisted_MetaProperty_(meta, property, this, arguments, var=var):
                    var = Scope({'meta':meta, 'property':property, 'this':this, 'arguments':arguments}, var)
                    var.registers(['meta', 'property'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('MetaProperty'))
                    var.get(u"this").put('meta', var.get('meta'))
                    var.get(u"this").put('property', var.get('property'))
                PyJsHoisted_MetaProperty_.func_name = 'MetaProperty'
                var.put('MetaProperty', PyJsHoisted_MetaProperty_)
                pass
                return var.get('MetaProperty')
            PyJs_anonymous_150_._set_name('anonymous')
            var.put('MetaProperty', PyJs_anonymous_150_())
            var.get('exports').put('MetaProperty', var.get('MetaProperty'))
            @Js
            def PyJs_anonymous_151_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['MethodDefinition'])
                @Js
                def PyJsHoisted_MethodDefinition_(key, computed, value, kind, isStatic, this, arguments, var=var):
                    var = Scope({'key':key, 'computed':computed, 'value':value, 'kind':kind, 'isStatic':isStatic, 'this':this, 'arguments':arguments}, var)
                    var.registers(['kind', 'isStatic', 'computed', 'key', 'value'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('MethodDefinition'))
                    var.get(u"this").put('key', var.get('key'))
                    var.get(u"this").put('computed', var.get('computed'))
                    var.get(u"this").put('value', var.get('value'))
                    var.get(u"this").put('kind', var.get('kind'))
                    var.get(u"this").put('static', var.get('isStatic'))
                PyJsHoisted_MethodDefinition_.func_name = 'MethodDefinition'
                var.put('MethodDefinition', PyJsHoisted_MethodDefinition_)
                pass
                return var.get('MethodDefinition')
            PyJs_anonymous_151_._set_name('anonymous')
            var.put('MethodDefinition', PyJs_anonymous_151_())
            var.get('exports').put('MethodDefinition', var.get('MethodDefinition'))
            @Js
            def PyJs_anonymous_152_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['Module'])
                @Js
                def PyJsHoisted_Module_(body, this, arguments, var=var):
                    var = Scope({'body':body, 'this':this, 'arguments':arguments}, var)
                    var.registers(['body'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('Program'))
                    var.get(u"this").put('body', var.get('body'))
                    var.get(u"this").put('sourceType', Js('module'))
                PyJsHoisted_Module_.func_name = 'Module'
                var.put('Module', PyJsHoisted_Module_)
                pass
                return var.get('Module')
            PyJs_anonymous_152_._set_name('anonymous')
            var.put('Module', PyJs_anonymous_152_())
            var.get('exports').put('Module', var.get('Module'))
            @Js
            def PyJs_anonymous_153_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['NewExpression'])
                @Js
                def PyJsHoisted_NewExpression_(callee, args, this, arguments, var=var):
                    var = Scope({'callee':callee, 'args':args, 'this':this, 'arguments':arguments}, var)
                    var.registers(['args', 'callee'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('NewExpression'))
                    var.get(u"this").put('callee', var.get('callee'))
                    var.get(u"this").put('arguments', var.get('args'))
                PyJsHoisted_NewExpression_.func_name = 'NewExpression'
                var.put('NewExpression', PyJsHoisted_NewExpression_)
                pass
                return var.get('NewExpression')
            PyJs_anonymous_153_._set_name('anonymous')
            var.put('NewExpression', PyJs_anonymous_153_())
            var.get('exports').put('NewExpression', var.get('NewExpression'))
            @Js
            def PyJs_anonymous_154_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['ObjectExpression'])
                @Js
                def PyJsHoisted_ObjectExpression_(properties, this, arguments, var=var):
                    var = Scope({'properties':properties, 'this':this, 'arguments':arguments}, var)
                    var.registers(['properties'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('ObjectExpression'))
                    var.get(u"this").put('properties', var.get('properties'))
                PyJsHoisted_ObjectExpression_.func_name = 'ObjectExpression'
                var.put('ObjectExpression', PyJsHoisted_ObjectExpression_)
                pass
                return var.get('ObjectExpression')
            PyJs_anonymous_154_._set_name('anonymous')
            var.put('ObjectExpression', PyJs_anonymous_154_())
            var.get('exports').put('ObjectExpression', var.get('ObjectExpression'))
            @Js
            def PyJs_anonymous_155_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['ObjectPattern'])
                @Js
                def PyJsHoisted_ObjectPattern_(properties, this, arguments, var=var):
                    var = Scope({'properties':properties, 'this':this, 'arguments':arguments}, var)
                    var.registers(['properties'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('ObjectPattern'))
                    var.get(u"this").put('properties', var.get('properties'))
                PyJsHoisted_ObjectPattern_.func_name = 'ObjectPattern'
                var.put('ObjectPattern', PyJsHoisted_ObjectPattern_)
                pass
                return var.get('ObjectPattern')
            PyJs_anonymous_155_._set_name('anonymous')
            var.put('ObjectPattern', PyJs_anonymous_155_())
            var.get('exports').put('ObjectPattern', var.get('ObjectPattern'))
            @Js
            def PyJs_anonymous_156_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['Property'])
                @Js
                def PyJsHoisted_Property_(kind, key, computed, value, method, shorthand, this, arguments, var=var):
                    var = Scope({'kind':kind, 'key':key, 'computed':computed, 'value':value, 'method':method, 'shorthand':shorthand, 'this':this, 'arguments':arguments}, var)
                    var.registers(['shorthand', 'kind', 'computed', 'key', 'method', 'value'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('Property'))
                    var.get(u"this").put('key', var.get('key'))
                    var.get(u"this").put('computed', var.get('computed'))
                    var.get(u"this").put('value', var.get('value'))
                    var.get(u"this").put('kind', var.get('kind'))
                    var.get(u"this").put('method', var.get('method'))
                    var.get(u"this").put('shorthand', var.get('shorthand'))
                PyJsHoisted_Property_.func_name = 'Property'
                var.put('Property', PyJsHoisted_Property_)
                pass
                return var.get('Property')
            PyJs_anonymous_156_._set_name('anonymous')
            var.put('Property', PyJs_anonymous_156_())
            var.get('exports').put('Property', var.get('Property'))
            @Js
            def PyJs_anonymous_157_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['RegexLiteral'])
                @Js
                def PyJsHoisted_RegexLiteral_(value, raw, pattern, flags, this, arguments, var=var):
                    var = Scope({'value':value, 'raw':raw, 'pattern':pattern, 'flags':flags, 'this':this, 'arguments':arguments}, var)
                    var.registers(['raw', 'flags', 'pattern', 'value'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('Literal'))
                    var.get(u"this").put('value', var.get('value'))
                    var.get(u"this").put('raw', var.get('raw'))
                    PyJs_Object_158_ = Js({'pattern':var.get('pattern'),'flags':var.get('flags')})
                    var.get(u"this").put('regex', PyJs_Object_158_)
                PyJsHoisted_RegexLiteral_.func_name = 'RegexLiteral'
                var.put('RegexLiteral', PyJsHoisted_RegexLiteral_)
                pass
                return var.get('RegexLiteral')
            PyJs_anonymous_157_._set_name('anonymous')
            var.put('RegexLiteral', PyJs_anonymous_157_())
            var.get('exports').put('RegexLiteral', var.get('RegexLiteral'))
            @Js
            def PyJs_anonymous_159_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['RestElement'])
                @Js
                def PyJsHoisted_RestElement_(argument, this, arguments, var=var):
                    var = Scope({'argument':argument, 'this':this, 'arguments':arguments}, var)
                    var.registers(['argument'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('RestElement'))
                    var.get(u"this").put('argument', var.get('argument'))
                PyJsHoisted_RestElement_.func_name = 'RestElement'
                var.put('RestElement', PyJsHoisted_RestElement_)
                pass
                return var.get('RestElement')
            PyJs_anonymous_159_._set_name('anonymous')
            var.put('RestElement', PyJs_anonymous_159_())
            var.get('exports').put('RestElement', var.get('RestElement'))
            @Js
            def PyJs_anonymous_160_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['ReturnStatement'])
                @Js
                def PyJsHoisted_ReturnStatement_(argument, this, arguments, var=var):
                    var = Scope({'argument':argument, 'this':this, 'arguments':arguments}, var)
                    var.registers(['argument'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('ReturnStatement'))
                    var.get(u"this").put('argument', var.get('argument'))
                PyJsHoisted_ReturnStatement_.func_name = 'ReturnStatement'
                var.put('ReturnStatement', PyJsHoisted_ReturnStatement_)
                pass
                return var.get('ReturnStatement')
            PyJs_anonymous_160_._set_name('anonymous')
            var.put('ReturnStatement', PyJs_anonymous_160_())
            var.get('exports').put('ReturnStatement', var.get('ReturnStatement'))
            @Js
            def PyJs_anonymous_161_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['Script'])
                @Js
                def PyJsHoisted_Script_(body, this, arguments, var=var):
                    var = Scope({'body':body, 'this':this, 'arguments':arguments}, var)
                    var.registers(['body'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('Program'))
                    var.get(u"this").put('body', var.get('body'))
                    var.get(u"this").put('sourceType', Js('script'))
                PyJsHoisted_Script_.func_name = 'Script'
                var.put('Script', PyJsHoisted_Script_)
                pass
                return var.get('Script')
            PyJs_anonymous_161_._set_name('anonymous')
            var.put('Script', PyJs_anonymous_161_())
            var.get('exports').put('Script', var.get('Script'))
            @Js
            def PyJs_anonymous_162_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['SequenceExpression'])
                @Js
                def PyJsHoisted_SequenceExpression_(expressions, this, arguments, var=var):
                    var = Scope({'expressions':expressions, 'this':this, 'arguments':arguments}, var)
                    var.registers(['expressions'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('SequenceExpression'))
                    var.get(u"this").put('expressions', var.get('expressions'))
                PyJsHoisted_SequenceExpression_.func_name = 'SequenceExpression'
                var.put('SequenceExpression', PyJsHoisted_SequenceExpression_)
                pass
                return var.get('SequenceExpression')
            PyJs_anonymous_162_._set_name('anonymous')
            var.put('SequenceExpression', PyJs_anonymous_162_())
            var.get('exports').put('SequenceExpression', var.get('SequenceExpression'))
            @Js
            def PyJs_anonymous_163_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['SpreadElement'])
                @Js
                def PyJsHoisted_SpreadElement_(argument, this, arguments, var=var):
                    var = Scope({'argument':argument, 'this':this, 'arguments':arguments}, var)
                    var.registers(['argument'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('SpreadElement'))
                    var.get(u"this").put('argument', var.get('argument'))
                PyJsHoisted_SpreadElement_.func_name = 'SpreadElement'
                var.put('SpreadElement', PyJsHoisted_SpreadElement_)
                pass
                return var.get('SpreadElement')
            PyJs_anonymous_163_._set_name('anonymous')
            var.put('SpreadElement', PyJs_anonymous_163_())
            var.get('exports').put('SpreadElement', var.get('SpreadElement'))
            @Js
            def PyJs_anonymous_164_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['StaticMemberExpression'])
                @Js
                def PyJsHoisted_StaticMemberExpression_(object, property, this, arguments, var=var):
                    var = Scope({'object':object, 'property':property, 'this':this, 'arguments':arguments}, var)
                    var.registers(['property', 'object'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('MemberExpression'))
                    var.get(u"this").put('computed', Js(False))
                    var.get(u"this").put('object', var.get('object'))
                    var.get(u"this").put('property', var.get('property'))
                PyJsHoisted_StaticMemberExpression_.func_name = 'StaticMemberExpression'
                var.put('StaticMemberExpression', PyJsHoisted_StaticMemberExpression_)
                pass
                return var.get('StaticMemberExpression')
            PyJs_anonymous_164_._set_name('anonymous')
            var.put('StaticMemberExpression', PyJs_anonymous_164_())
            var.get('exports').put('StaticMemberExpression', var.get('StaticMemberExpression'))
            @Js
            def PyJs_anonymous_165_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['Super'])
                @Js
                def PyJsHoisted_Super_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers([])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('Super'))
                PyJsHoisted_Super_.func_name = 'Super'
                var.put('Super', PyJsHoisted_Super_)
                pass
                return var.get('Super')
            PyJs_anonymous_165_._set_name('anonymous')
            var.put('Super', PyJs_anonymous_165_())
            var.get('exports').put('Super', var.get('Super'))
            @Js
            def PyJs_anonymous_166_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['SwitchCase'])
                @Js
                def PyJsHoisted_SwitchCase_(test, consequent, this, arguments, var=var):
                    var = Scope({'test':test, 'consequent':consequent, 'this':this, 'arguments':arguments}, var)
                    var.registers(['consequent', 'test'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('SwitchCase'))
                    var.get(u"this").put('test', var.get('test'))
                    var.get(u"this").put('consequent', var.get('consequent'))
                PyJsHoisted_SwitchCase_.func_name = 'SwitchCase'
                var.put('SwitchCase', PyJsHoisted_SwitchCase_)
                pass
                return var.get('SwitchCase')
            PyJs_anonymous_166_._set_name('anonymous')
            var.put('SwitchCase', PyJs_anonymous_166_())
            var.get('exports').put('SwitchCase', var.get('SwitchCase'))
            @Js
            def PyJs_anonymous_167_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['SwitchStatement'])
                @Js
                def PyJsHoisted_SwitchStatement_(discriminant, cases, this, arguments, var=var):
                    var = Scope({'discriminant':discriminant, 'cases':cases, 'this':this, 'arguments':arguments}, var)
                    var.registers(['cases', 'discriminant'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('SwitchStatement'))
                    var.get(u"this").put('discriminant', var.get('discriminant'))
                    var.get(u"this").put('cases', var.get('cases'))
                PyJsHoisted_SwitchStatement_.func_name = 'SwitchStatement'
                var.put('SwitchStatement', PyJsHoisted_SwitchStatement_)
                pass
                return var.get('SwitchStatement')
            PyJs_anonymous_167_._set_name('anonymous')
            var.put('SwitchStatement', PyJs_anonymous_167_())
            var.get('exports').put('SwitchStatement', var.get('SwitchStatement'))
            @Js
            def PyJs_anonymous_168_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['TaggedTemplateExpression'])
                @Js
                def PyJsHoisted_TaggedTemplateExpression_(tag, quasi, this, arguments, var=var):
                    var = Scope({'tag':tag, 'quasi':quasi, 'this':this, 'arguments':arguments}, var)
                    var.registers(['quasi', 'tag'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('TaggedTemplateExpression'))
                    var.get(u"this").put('tag', var.get('tag'))
                    var.get(u"this").put('quasi', var.get('quasi'))
                PyJsHoisted_TaggedTemplateExpression_.func_name = 'TaggedTemplateExpression'
                var.put('TaggedTemplateExpression', PyJsHoisted_TaggedTemplateExpression_)
                pass
                return var.get('TaggedTemplateExpression')
            PyJs_anonymous_168_._set_name('anonymous')
            var.put('TaggedTemplateExpression', PyJs_anonymous_168_())
            var.get('exports').put('TaggedTemplateExpression', var.get('TaggedTemplateExpression'))
            @Js
            def PyJs_anonymous_169_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['TemplateElement'])
                @Js
                def PyJsHoisted_TemplateElement_(value, tail, this, arguments, var=var):
                    var = Scope({'value':value, 'tail':tail, 'this':this, 'arguments':arguments}, var)
                    var.registers(['tail', 'value'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('TemplateElement'))
                    var.get(u"this").put('value', var.get('value'))
                    var.get(u"this").put('tail', var.get('tail'))
                PyJsHoisted_TemplateElement_.func_name = 'TemplateElement'
                var.put('TemplateElement', PyJsHoisted_TemplateElement_)
                pass
                return var.get('TemplateElement')
            PyJs_anonymous_169_._set_name('anonymous')
            var.put('TemplateElement', PyJs_anonymous_169_())
            var.get('exports').put('TemplateElement', var.get('TemplateElement'))
            @Js
            def PyJs_anonymous_170_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['TemplateLiteral'])
                @Js
                def PyJsHoisted_TemplateLiteral_(quasis, expressions, this, arguments, var=var):
                    var = Scope({'quasis':quasis, 'expressions':expressions, 'this':this, 'arguments':arguments}, var)
                    var.registers(['expressions', 'quasis'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('TemplateLiteral'))
                    var.get(u"this").put('quasis', var.get('quasis'))
                    var.get(u"this").put('expressions', var.get('expressions'))
                PyJsHoisted_TemplateLiteral_.func_name = 'TemplateLiteral'
                var.put('TemplateLiteral', PyJsHoisted_TemplateLiteral_)
                pass
                return var.get('TemplateLiteral')
            PyJs_anonymous_170_._set_name('anonymous')
            var.put('TemplateLiteral', PyJs_anonymous_170_())
            var.get('exports').put('TemplateLiteral', var.get('TemplateLiteral'))
            @Js
            def PyJs_anonymous_171_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['ThisExpression'])
                @Js
                def PyJsHoisted_ThisExpression_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers([])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('ThisExpression'))
                PyJsHoisted_ThisExpression_.func_name = 'ThisExpression'
                var.put('ThisExpression', PyJsHoisted_ThisExpression_)
                pass
                return var.get('ThisExpression')
            PyJs_anonymous_171_._set_name('anonymous')
            var.put('ThisExpression', PyJs_anonymous_171_())
            var.get('exports').put('ThisExpression', var.get('ThisExpression'))
            @Js
            def PyJs_anonymous_172_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['ThrowStatement'])
                @Js
                def PyJsHoisted_ThrowStatement_(argument, this, arguments, var=var):
                    var = Scope({'argument':argument, 'this':this, 'arguments':arguments}, var)
                    var.registers(['argument'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('ThrowStatement'))
                    var.get(u"this").put('argument', var.get('argument'))
                PyJsHoisted_ThrowStatement_.func_name = 'ThrowStatement'
                var.put('ThrowStatement', PyJsHoisted_ThrowStatement_)
                pass
                return var.get('ThrowStatement')
            PyJs_anonymous_172_._set_name('anonymous')
            var.put('ThrowStatement', PyJs_anonymous_172_())
            var.get('exports').put('ThrowStatement', var.get('ThrowStatement'))
            @Js
            def PyJs_anonymous_173_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['TryStatement'])
                @Js
                def PyJsHoisted_TryStatement_(block, handler, finalizer, this, arguments, var=var):
                    var = Scope({'block':block, 'handler':handler, 'finalizer':finalizer, 'this':this, 'arguments':arguments}, var)
                    var.registers(['block', 'finalizer', 'handler'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('TryStatement'))
                    var.get(u"this").put('block', var.get('block'))
                    var.get(u"this").put('handler', var.get('handler'))
                    var.get(u"this").put('finalizer', var.get('finalizer'))
                PyJsHoisted_TryStatement_.func_name = 'TryStatement'
                var.put('TryStatement', PyJsHoisted_TryStatement_)
                pass
                return var.get('TryStatement')
            PyJs_anonymous_173_._set_name('anonymous')
            var.put('TryStatement', PyJs_anonymous_173_())
            var.get('exports').put('TryStatement', var.get('TryStatement'))
            @Js
            def PyJs_anonymous_174_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['UnaryExpression'])
                @Js
                def PyJsHoisted_UnaryExpression_(operator, argument, this, arguments, var=var):
                    var = Scope({'operator':operator, 'argument':argument, 'this':this, 'arguments':arguments}, var)
                    var.registers(['operator', 'argument'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('UnaryExpression'))
                    var.get(u"this").put('operator', var.get('operator'))
                    var.get(u"this").put('argument', var.get('argument'))
                    var.get(u"this").put('prefix', Js(True))
                PyJsHoisted_UnaryExpression_.func_name = 'UnaryExpression'
                var.put('UnaryExpression', PyJsHoisted_UnaryExpression_)
                pass
                return var.get('UnaryExpression')
            PyJs_anonymous_174_._set_name('anonymous')
            var.put('UnaryExpression', PyJs_anonymous_174_())
            var.get('exports').put('UnaryExpression', var.get('UnaryExpression'))
            @Js
            def PyJs_anonymous_175_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['UpdateExpression'])
                @Js
                def PyJsHoisted_UpdateExpression_(operator, argument, prefix, this, arguments, var=var):
                    var = Scope({'operator':operator, 'argument':argument, 'prefix':prefix, 'this':this, 'arguments':arguments}, var)
                    var.registers(['operator', 'argument', 'prefix'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('UpdateExpression'))
                    var.get(u"this").put('operator', var.get('operator'))
                    var.get(u"this").put('argument', var.get('argument'))
                    var.get(u"this").put('prefix', var.get('prefix'))
                PyJsHoisted_UpdateExpression_.func_name = 'UpdateExpression'
                var.put('UpdateExpression', PyJsHoisted_UpdateExpression_)
                pass
                return var.get('UpdateExpression')
            PyJs_anonymous_175_._set_name('anonymous')
            var.put('UpdateExpression', PyJs_anonymous_175_())
            var.get('exports').put('UpdateExpression', var.get('UpdateExpression'))
            @Js
            def PyJs_anonymous_176_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['VariableDeclaration'])
                @Js
                def PyJsHoisted_VariableDeclaration_(declarations, kind, this, arguments, var=var):
                    var = Scope({'declarations':declarations, 'kind':kind, 'this':this, 'arguments':arguments}, var)
                    var.registers(['declarations', 'kind'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('VariableDeclaration'))
                    var.get(u"this").put('declarations', var.get('declarations'))
                    var.get(u"this").put('kind', var.get('kind'))
                PyJsHoisted_VariableDeclaration_.func_name = 'VariableDeclaration'
                var.put('VariableDeclaration', PyJsHoisted_VariableDeclaration_)
                pass
                return var.get('VariableDeclaration')
            PyJs_anonymous_176_._set_name('anonymous')
            var.put('VariableDeclaration', PyJs_anonymous_176_())
            var.get('exports').put('VariableDeclaration', var.get('VariableDeclaration'))
            @Js
            def PyJs_anonymous_177_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['VariableDeclarator'])
                @Js
                def PyJsHoisted_VariableDeclarator_(id, init, this, arguments, var=var):
                    var = Scope({'id':id, 'init':init, 'this':this, 'arguments':arguments}, var)
                    var.registers(['id', 'init'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('VariableDeclarator'))
                    var.get(u"this").put('id', var.get('id'))
                    var.get(u"this").put('init', var.get('init'))
                PyJsHoisted_VariableDeclarator_.func_name = 'VariableDeclarator'
                var.put('VariableDeclarator', PyJsHoisted_VariableDeclarator_)
                pass
                return var.get('VariableDeclarator')
            PyJs_anonymous_177_._set_name('anonymous')
            var.put('VariableDeclarator', PyJs_anonymous_177_())
            var.get('exports').put('VariableDeclarator', var.get('VariableDeclarator'))
            @Js
            def PyJs_anonymous_178_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['WhileStatement'])
                @Js
                def PyJsHoisted_WhileStatement_(test, body, this, arguments, var=var):
                    var = Scope({'test':test, 'body':body, 'this':this, 'arguments':arguments}, var)
                    var.registers(['test', 'body'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('WhileStatement'))
                    var.get(u"this").put('test', var.get('test'))
                    var.get(u"this").put('body', var.get('body'))
                PyJsHoisted_WhileStatement_.func_name = 'WhileStatement'
                var.put('WhileStatement', PyJsHoisted_WhileStatement_)
                pass
                return var.get('WhileStatement')
            PyJs_anonymous_178_._set_name('anonymous')
            var.put('WhileStatement', PyJs_anonymous_178_())
            var.get('exports').put('WhileStatement', var.get('WhileStatement'))
            @Js
            def PyJs_anonymous_179_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['WithStatement'])
                @Js
                def PyJsHoisted_WithStatement_(object, body, this, arguments, var=var):
                    var = Scope({'object':object, 'body':body, 'this':this, 'arguments':arguments}, var)
                    var.registers(['body', 'object'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('WithStatement'))
                    var.get(u"this").put('object', var.get('object'))
                    var.get(u"this").put('body', var.get('body'))
                PyJsHoisted_WithStatement_.func_name = 'WithStatement'
                var.put('WithStatement', PyJsHoisted_WithStatement_)
                pass
                return var.get('WithStatement')
            PyJs_anonymous_179_._set_name('anonymous')
            var.put('WithStatement', PyJs_anonymous_179_())
            var.get('exports').put('WithStatement', var.get('WithStatement'))
            @Js
            def PyJs_anonymous_180_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['YieldExpression'])
                @Js
                def PyJsHoisted_YieldExpression_(argument, delegate, this, arguments, var=var):
                    var = Scope({'argument':argument, 'delegate':delegate, 'this':this, 'arguments':arguments}, var)
                    var.registers(['argument', 'delegate'])
                    var.get(u"this").put('type', var.get('syntax_1').get('Syntax').get('YieldExpression'))
                    var.get(u"this").put('argument', var.get('argument'))
                    var.get(u"this").put('delegate', var.get('delegate'))
                PyJsHoisted_YieldExpression_.func_name = 'YieldExpression'
                var.put('YieldExpression', PyJsHoisted_YieldExpression_)
                pass
                return var.get('YieldExpression')
            PyJs_anonymous_180_._set_name('anonymous')
            var.put('YieldExpression', PyJs_anonymous_180_())
            var.get('exports').put('YieldExpression', var.get('YieldExpression'))
        PyJs_anonymous_106_._set_name('anonymous')
        @Js
        def PyJs_anonymous_181_(module, exports, __webpack_require__, this, arguments, var=var):
            var = Scope({'module':module, 'exports':exports, '__webpack_require__':__webpack_require__, 'this':this, 'arguments':arguments}, var)
            var.registers(['scanner_1', 'module', 'messages_1', 'ArrowParameterPlaceHolder', 'token_1', 'Node', 'error_handler_1', '__webpack_require__', 'Parser', 'assert_1', 'exports', 'syntax_1'])
            Js('use strict')
            PyJs_Object_182_ = Js({'value':Js(True)})
            var.get('Object').callprop('defineProperty', var.get('exports'), Js('__esModule'), PyJs_Object_182_)
            var.put('assert_1', var.get('__webpack_require__')(Js(9.0)))
            var.put('error_handler_1', var.get('__webpack_require__')(Js(10.0)))
            var.put('messages_1', var.get('__webpack_require__')(Js(11.0)))
            var.put('Node', var.get('__webpack_require__')(Js(7.0)))
            var.put('scanner_1', var.get('__webpack_require__')(Js(12.0)))
            var.put('syntax_1', var.get('__webpack_require__')(Js(2.0)))
            var.put('token_1', var.get('__webpack_require__')(Js(13.0)))
            var.put('ArrowParameterPlaceHolder', Js('ArrowParameterPlaceHolder'))
            @Js
            def PyJs_anonymous_183_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['Parser'])
                @Js
                def PyJsHoisted_Parser_(code, options, delegate, this, arguments, var=var):
                    var = Scope({'code':code, 'options':options, 'delegate':delegate, 'this':this, 'arguments':arguments}, var)
                    var.registers(['code', 'options', 'delegate'])
                    if PyJsStrictEq(var.get('options'),PyJsComma(Js(0.0), Js(None))):
                        PyJs_Object_184_ = Js({})
                        var.put('options', PyJs_Object_184_)
                    PyJs_Object_185_ = Js({'range':(PyJsStrictEq(var.get('options').get('range').typeof(),Js('boolean')) and var.get('options').get('range')),'loc':(PyJsStrictEq(var.get('options').get('loc').typeof(),Js('boolean')) and var.get('options').get('loc')),'source':var.get(u"null"),'tokens':(PyJsStrictEq(var.get('options').get('tokens').typeof(),Js('boolean')) and var.get('options').get('tokens')),'comment':(PyJsStrictEq(var.get('options').get('comment').typeof(),Js('boolean')) and var.get('options').get('comment')),'tolerant':(PyJsStrictEq(var.get('options').get('tolerant').typeof(),Js('boolean')) and var.get('options').get('tolerant'))})
                    var.get(u"this").put('config', PyJs_Object_185_)
                    if ((var.get(u"this").get('config').get('loc') and var.get('options').get('source')) and PyJsStrictNeq(var.get('options').get('source'),var.get(u"null"))):
                        var.get(u"this").get('config').put('source', var.get('String')(var.get('options').get('source')))
                    var.get(u"this").put('delegate', var.get('delegate'))
                    var.get(u"this").put('errorHandler', var.get('error_handler_1').get('ErrorHandler').create())
                    var.get(u"this").get('errorHandler').put('tolerant', var.get(u"this").get('config').get('tolerant'))
                    var.get(u"this").put('scanner', var.get('scanner_1').get('Scanner').create(var.get('code'), var.get(u"this").get('errorHandler')))
                    var.get(u"this").get('scanner').put('trackComment', var.get(u"this").get('config').get('comment'))
                    PyJs_Object_186_ = Js({')':Js(0.0),';':Js(0.0),',':Js(0.0),'=':Js(0.0),']':Js(0.0),'||':Js(1.0),'&&':Js(2.0),'|':Js(3.0),'^':Js(4.0),'&':Js(5.0),'==':Js(6.0),'!=':Js(6.0),'===':Js(6.0),'!==':Js(6.0),'<':Js(7.0),'>':Js(7.0),'<=':Js(7.0),'>=':Js(7.0),'<<':Js(8.0),'>>':Js(8.0),'>>>':Js(8.0),'+':Js(9.0),'-':Js(9.0),'*':Js(11.0),'/':Js(11.0),'%':Js(11.0)})
                    var.get(u"this").put('operatorPrecedence', PyJs_Object_186_)
                    PyJs_Object_187_ = Js({'type':Js(2.0),'value':Js(''),'lineNumber':var.get(u"this").get('scanner').get('lineNumber'),'lineStart':Js(0.0),'start':Js(0.0),'end':Js(0.0)})
                    var.get(u"this").put('lookahead', PyJs_Object_187_)
                    var.get(u"this").put('hasLineTerminator', Js(False))
                    PyJs_Object_189_ = Js({})
                    PyJs_Object_188_ = Js({'isModule':Js(False),'await':Js(False),'allowIn':Js(True),'allowStrictDirective':Js(True),'allowYield':Js(True),'firstCoverInitializedNameError':var.get(u"null"),'isAssignmentTarget':Js(False),'isBindingElement':Js(False),'inFunctionBody':Js(False),'inIteration':Js(False),'inSwitch':Js(False),'labelSet':PyJs_Object_189_,'strict':Js(False)})
                    var.get(u"this").put('context', PyJs_Object_188_)
                    var.get(u"this").put('tokens', Js([]))
                    PyJs_Object_190_ = Js({'index':Js(0.0),'line':var.get(u"this").get('scanner').get('lineNumber'),'column':Js(0.0)})
                    var.get(u"this").put('startMarker', PyJs_Object_190_)
                    PyJs_Object_191_ = Js({'index':Js(0.0),'line':var.get(u"this").get('scanner').get('lineNumber'),'column':Js(0.0)})
                    var.get(u"this").put('lastMarker', PyJs_Object_191_)
                    var.get(u"this").callprop('nextToken')
                    PyJs_Object_192_ = Js({'index':var.get(u"this").get('scanner').get('index'),'line':var.get(u"this").get('scanner').get('lineNumber'),'column':(var.get(u"this").get('scanner').get('index')-var.get(u"this").get('scanner').get('lineStart'))})
                    var.get(u"this").put('lastMarker', PyJs_Object_192_)
                PyJsHoisted_Parser_.func_name = 'Parser'
                var.put('Parser', PyJsHoisted_Parser_)
                pass
                @Js
                def PyJs_anonymous_193_(messageFormat, this, arguments, var=var):
                    var = Scope({'messageFormat':messageFormat, 'this':this, 'arguments':arguments}, var)
                    var.registers(['_i', 'index', 'line', 'column', 'msg', 'args', 'values', 'messageFormat'])
                    var.put('values', Js([]))
                    #for JS loop
                    var.put('_i', Js(1.0))
                    while (var.get('_i')<var.get('arguments').get('length')):
                        try:
                            var.get('values').put((var.get('_i')-Js(1.0)), var.get('arguments').get(var.get('_i')))
                        finally:
                                (var.put('_i',Js(var.get('_i').to_number())+Js(1))-Js(1))
                    var.put('args', var.get('Array').get('prototype').get('slice').callprop('call', var.get('arguments'), Js(1.0)))
                    @Js
                    def PyJs_anonymous_194_(whole, idx, this, arguments, var=var):
                        var = Scope({'whole':whole, 'idx':idx, 'this':this, 'arguments':arguments}, var)
                        var.registers(['idx', 'whole'])
                        var.get('assert_1').callprop('assert', (var.get('idx')<var.get('args').get('length')), Js('Message reference must be in range'))
                        return var.get('args').get(var.get('idx'))
                    PyJs_anonymous_194_._set_name('anonymous')
                    var.put('msg', var.get('messageFormat').callprop('replace', JsRegExp('/%(\\d)/g'), PyJs_anonymous_194_))
                    var.put('index', var.get(u"this").get('lastMarker').get('index'))
                    var.put('line', var.get(u"this").get('lastMarker').get('line'))
                    var.put('column', (var.get(u"this").get('lastMarker').get('column')+Js(1.0)))
                    PyJsTempException = JsToPyException(var.get(u"this").get('errorHandler').callprop('createError', var.get('index'), var.get('line'), var.get('column'), var.get('msg')))
                    raise PyJsTempException
                PyJs_anonymous_193_._set_name('anonymous')
                var.get('Parser').get('prototype').put('throwError', PyJs_anonymous_193_)
                @Js
                def PyJs_anonymous_195_(messageFormat, this, arguments, var=var):
                    var = Scope({'messageFormat':messageFormat, 'this':this, 'arguments':arguments}, var)
                    var.registers(['_i', 'index', 'line', 'column', 'msg', 'args', 'values', 'messageFormat'])
                    var.put('values', Js([]))
                    #for JS loop
                    var.put('_i', Js(1.0))
                    while (var.get('_i')<var.get('arguments').get('length')):
                        try:
                            var.get('values').put((var.get('_i')-Js(1.0)), var.get('arguments').get(var.get('_i')))
                        finally:
                                (var.put('_i',Js(var.get('_i').to_number())+Js(1))-Js(1))
                    var.put('args', var.get('Array').get('prototype').get('slice').callprop('call', var.get('arguments'), Js(1.0)))
                    @Js
                    def PyJs_anonymous_196_(whole, idx, this, arguments, var=var):
                        var = Scope({'whole':whole, 'idx':idx, 'this':this, 'arguments':arguments}, var)
                        var.registers(['idx', 'whole'])
                        var.get('assert_1').callprop('assert', (var.get('idx')<var.get('args').get('length')), Js('Message reference must be in range'))
                        return var.get('args').get(var.get('idx'))
                    PyJs_anonymous_196_._set_name('anonymous')
                    var.put('msg', var.get('messageFormat').callprop('replace', JsRegExp('/%(\\d)/g'), PyJs_anonymous_196_))
                    var.put('index', var.get(u"this").get('lastMarker').get('index'))
                    var.put('line', var.get(u"this").get('scanner').get('lineNumber'))
                    var.put('column', (var.get(u"this").get('lastMarker').get('column')+Js(1.0)))
                    var.get(u"this").get('errorHandler').callprop('tolerateError', var.get('index'), var.get('line'), var.get('column'), var.get('msg'))
                PyJs_anonymous_195_._set_name('anonymous')
                var.get('Parser').get('prototype').put('tolerateError', PyJs_anonymous_195_)
                @Js
                def PyJs_anonymous_197_(token, message, this, arguments, var=var):
                    var = Scope({'token':token, 'message':message, 'this':this, 'arguments':arguments}, var)
                    var.registers(['lastMarkerLineStart', 'index', 'line', 'column', 'msg', 'token', 'message', 'value'])
                    var.put('msg', (var.get('message') or var.get('messages_1').get('Messages').get('UnexpectedToken')))
                    pass
                    if var.get('token'):
                        if var.get('message').neg():
                            def PyJs_LONG_198_(var=var):
                                return (var.get('messages_1').get('Messages').get('UnexpectedNumber') if PyJsStrictEq(var.get('token').get('type'),Js(6.0)) else (var.get('messages_1').get('Messages').get('UnexpectedString') if PyJsStrictEq(var.get('token').get('type'),Js(8.0)) else (var.get('messages_1').get('Messages').get('UnexpectedTemplate') if PyJsStrictEq(var.get('token').get('type'),Js(10.0)) else var.get('messages_1').get('Messages').get('UnexpectedToken'))))
                            var.put('msg', (var.get('messages_1').get('Messages').get('UnexpectedEOS') if PyJsStrictEq(var.get('token').get('type'),Js(2.0)) else (var.get('messages_1').get('Messages').get('UnexpectedIdentifier') if PyJsStrictEq(var.get('token').get('type'),Js(3.0)) else PyJs_LONG_198_())))
                            if PyJsStrictEq(var.get('token').get('type'),Js(4.0)):
                                if var.get(u"this").get('scanner').callprop('isFutureReservedWord', var.get('token').get('value')):
                                    var.put('msg', var.get('messages_1').get('Messages').get('UnexpectedReserved'))
                                else:
                                    if (var.get(u"this").get('context').get('strict') and var.get(u"this").get('scanner').callprop('isStrictModeReservedWord', var.get('token').get('value'))):
                                        var.put('msg', var.get('messages_1').get('Messages').get('StrictReservedWord'))
                        var.put('value', var.get('token').get('value'))
                    else:
                        var.put('value', Js('ILLEGAL'))
                    var.put('msg', var.get('msg').callprop('replace', Js('%0'), var.get('value')))
                    if (var.get('token') and PyJsStrictEq(var.get('token').get('lineNumber').typeof(),Js('number'))):
                        var.put('index', var.get('token').get('start'))
                        var.put('line', var.get('token').get('lineNumber'))
                        var.put('lastMarkerLineStart', (var.get(u"this").get('lastMarker').get('index')-var.get(u"this").get('lastMarker').get('column')))
                        var.put('column', ((var.get('token').get('start')-var.get('lastMarkerLineStart'))+Js(1.0)))
                        return var.get(u"this").get('errorHandler').callprop('createError', var.get('index'), var.get('line'), var.get('column'), var.get('msg'))
                    else:
                        var.put('index', var.get(u"this").get('lastMarker').get('index'))
                        var.put('line', var.get(u"this").get('lastMarker').get('line'))
                        var.put('column', (var.get(u"this").get('lastMarker').get('column')+Js(1.0)))
                        return var.get(u"this").get('errorHandler').callprop('createError', var.get('index'), var.get('line'), var.get('column'), var.get('msg'))
                PyJs_anonymous_197_._set_name('anonymous')
                var.get('Parser').get('prototype').put('unexpectedTokenError', PyJs_anonymous_197_)
                @Js
                def PyJs_anonymous_199_(token, message, this, arguments, var=var):
                    var = Scope({'token':token, 'message':message, 'this':this, 'arguments':arguments}, var)
                    var.registers(['message', 'token'])
                    PyJsTempException = JsToPyException(var.get(u"this").callprop('unexpectedTokenError', var.get('token'), var.get('message')))
                    raise PyJsTempException
                PyJs_anonymous_199_._set_name('anonymous')
                var.get('Parser').get('prototype').put('throwUnexpectedToken', PyJs_anonymous_199_)
                @Js
                def PyJs_anonymous_200_(token, message, this, arguments, var=var):
                    var = Scope({'token':token, 'message':message, 'this':this, 'arguments':arguments}, var)
                    var.registers(['message', 'token'])
                    var.get(u"this").get('errorHandler').callprop('tolerate', var.get(u"this").callprop('unexpectedTokenError', var.get('token'), var.get('message')))
                PyJs_anonymous_200_._set_name('anonymous')
                var.get('Parser').get('prototype').put('tolerateUnexpectedToken', PyJs_anonymous_200_)
                @Js
                def PyJs_anonymous_201_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['metadata', 'node', 'comments', 'e', 'i'])
                    if var.get(u"this").get('config').get('comment').neg():
                        var.get(u"this").get('scanner').callprop('scanComments')
                    else:
                        var.put('comments', var.get(u"this").get('scanner').callprop('scanComments'))
                        if ((var.get('comments').get('length')>Js(0.0)) and var.get(u"this").get('delegate')):
                            #for JS loop
                            var.put('i', Js(0.0))
                            while (var.get('i')<var.get('comments').get('length')):
                                try:
                                    var.put('e', var.get('comments').get(var.get('i')))
                                    var.put('node', PyJsComma(Js(0.0), Js(None)))
                                    PyJs_Object_202_ = Js({'type':(Js('BlockComment') if var.get('e').get('multiLine') else Js('LineComment')),'value':var.get(u"this").get('scanner').get('source').callprop('slice', var.get('e').get('slice').get('0'), var.get('e').get('slice').get('1'))})
                                    var.put('node', PyJs_Object_202_)
                                    if var.get(u"this").get('config').get('range'):
                                        var.get('node').put('range', var.get('e').get('range'))
                                    if var.get(u"this").get('config').get('loc'):
                                        var.get('node').put('loc', var.get('e').get('loc'))
                                    PyJs_Object_204_ = Js({'line':var.get('e').get('loc').get('start').get('line'),'column':var.get('e').get('loc').get('start').get('column'),'offset':var.get('e').get('range').get('0')})
                                    PyJs_Object_205_ = Js({'line':var.get('e').get('loc').get('end').get('line'),'column':var.get('e').get('loc').get('end').get('column'),'offset':var.get('e').get('range').get('1')})
                                    PyJs_Object_203_ = Js({'start':PyJs_Object_204_,'end':PyJs_Object_205_})
                                    var.put('metadata', PyJs_Object_203_)
                                    var.get(u"this").callprop('delegate', var.get('node'), var.get('metadata'))
                                finally:
                                        var.put('i',Js(var.get('i').to_number())+Js(1))
                PyJs_anonymous_201_._set_name('anonymous')
                var.get('Parser').get('prototype').put('collectComments', PyJs_anonymous_201_)
                @Js
                def PyJs_anonymous_206_(token, this, arguments, var=var):
                    var = Scope({'token':token, 'this':this, 'arguments':arguments}, var)
                    var.registers(['token'])
                    return var.get(u"this").get('scanner').get('source').callprop('slice', var.get('token').get('start'), var.get('token').get('end'))
                PyJs_anonymous_206_._set_name('anonymous')
                var.get('Parser').get('prototype').put('getTokenRaw', PyJs_anonymous_206_)
                @Js
                def PyJs_anonymous_207_(token, this, arguments, var=var):
                    var = Scope({'token':token, 'this':this, 'arguments':arguments}, var)
                    var.registers(['pattern', 't', 'flags', 'token'])
                    PyJs_Object_208_ = Js({'type':var.get('token_1').get('TokenName').get(var.get('token').get('type')),'value':var.get(u"this").callprop('getTokenRaw', var.get('token'))})
                    var.put('t', PyJs_Object_208_)
                    if var.get(u"this").get('config').get('range'):
                        var.get('t').put('range', Js([var.get('token').get('start'), var.get('token').get('end')]))
                    if var.get(u"this").get('config').get('loc'):
                        PyJs_Object_210_ = Js({'line':var.get(u"this").get('startMarker').get('line'),'column':var.get(u"this").get('startMarker').get('column')})
                        PyJs_Object_211_ = Js({'line':var.get(u"this").get('scanner').get('lineNumber'),'column':(var.get(u"this").get('scanner').get('index')-var.get(u"this").get('scanner').get('lineStart'))})
                        PyJs_Object_209_ = Js({'start':PyJs_Object_210_,'end':PyJs_Object_211_})
                        var.get('t').put('loc', PyJs_Object_209_)
                    if PyJsStrictEq(var.get('token').get('type'),Js(9.0)):
                        var.put('pattern', var.get('token').get('pattern'))
                        var.put('flags', var.get('token').get('flags'))
                        PyJs_Object_212_ = Js({'pattern':var.get('pattern'),'flags':var.get('flags')})
                        var.get('t').put('regex', PyJs_Object_212_)
                    return var.get('t')
                PyJs_anonymous_207_._set_name('anonymous')
                var.get('Parser').get('prototype').put('convertToken', PyJs_anonymous_207_)
                @Js
                def PyJs_anonymous_213_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['next', 'token'])
                    var.put('token', var.get(u"this").get('lookahead'))
                    var.get(u"this").get('lastMarker').put('index', var.get(u"this").get('scanner').get('index'))
                    var.get(u"this").get('lastMarker').put('line', var.get(u"this").get('scanner').get('lineNumber'))
                    var.get(u"this").get('lastMarker').put('column', (var.get(u"this").get('scanner').get('index')-var.get(u"this").get('scanner').get('lineStart')))
                    var.get(u"this").callprop('collectComments')
                    if PyJsStrictNeq(var.get(u"this").get('scanner').get('index'),var.get(u"this").get('startMarker').get('index')):
                        var.get(u"this").get('startMarker').put('index', var.get(u"this").get('scanner').get('index'))
                        var.get(u"this").get('startMarker').put('line', var.get(u"this").get('scanner').get('lineNumber'))
                        var.get(u"this").get('startMarker').put('column', (var.get(u"this").get('scanner').get('index')-var.get(u"this").get('scanner').get('lineStart')))
                    var.put('next', var.get(u"this").get('scanner').callprop('lex'))
                    var.get(u"this").put('hasLineTerminator', PyJsStrictNeq(var.get('token').get('lineNumber'),var.get('next').get('lineNumber')))
                    if ((var.get('next') and var.get(u"this").get('context').get('strict')) and PyJsStrictEq(var.get('next').get('type'),Js(3.0))):
                        if var.get(u"this").get('scanner').callprop('isStrictModeReservedWord', var.get('next').get('value')):
                            var.get('next').put('type', Js(4.0))
                    var.get(u"this").put('lookahead', var.get('next'))
                    if (var.get(u"this").get('config').get('tokens') and PyJsStrictNeq(var.get('next').get('type'),Js(2.0))):
                        var.get(u"this").get('tokens').callprop('push', var.get(u"this").callprop('convertToken', var.get('next')))
                    return var.get('token')
                PyJs_anonymous_213_._set_name('anonymous')
                var.get('Parser').get('prototype').put('nextToken', PyJs_anonymous_213_)
                @Js
                def PyJs_anonymous_214_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['token'])
                    var.get(u"this").callprop('collectComments')
                    var.put('token', var.get(u"this").get('scanner').callprop('scanRegExp'))
                    if var.get(u"this").get('config').get('tokens'):
                        var.get(u"this").get('tokens').callprop('pop')
                        var.get(u"this").get('tokens').callprop('push', var.get(u"this").callprop('convertToken', var.get('token')))
                    var.get(u"this").put('lookahead', var.get('token'))
                    var.get(u"this").callprop('nextToken')
                    return var.get('token')
                PyJs_anonymous_214_._set_name('anonymous')
                var.get('Parser').get('prototype').put('nextRegexToken', PyJs_anonymous_214_)
                @Js
                def PyJs_anonymous_215_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers([])
                    PyJs_Object_216_ = Js({'index':var.get(u"this").get('startMarker').get('index'),'line':var.get(u"this").get('startMarker').get('line'),'column':var.get(u"this").get('startMarker').get('column')})
                    return PyJs_Object_216_
                PyJs_anonymous_215_._set_name('anonymous')
                var.get('Parser').get('prototype').put('createNode', PyJs_anonymous_215_)
                @Js
                def PyJs_anonymous_217_(token, lastLineStart, this, arguments, var=var):
                    var = Scope({'token':token, 'lastLineStart':lastLineStart, 'this':this, 'arguments':arguments}, var)
                    var.registers(['lastLineStart', 'line', 'column', 'token'])
                    if PyJsStrictEq(var.get('lastLineStart'),PyJsComma(Js(0.0), Js(None))):
                        var.put('lastLineStart', Js(0.0))
                    var.put('column', (var.get('token').get('start')-var.get('token').get('lineStart')))
                    var.put('line', var.get('token').get('lineNumber'))
                    if (var.get('column')<Js(0.0)):
                        var.put('column', var.get('lastLineStart'), '+')
                        (var.put('line',Js(var.get('line').to_number())-Js(1))+Js(1))
                    PyJs_Object_218_ = Js({'index':var.get('token').get('start'),'line':var.get('line'),'column':var.get('column')})
                    return PyJs_Object_218_
                PyJs_anonymous_217_._set_name('anonymous')
                var.get('Parser').get('prototype').put('startNode', PyJs_anonymous_217_)
                @Js
                def PyJs_anonymous_219_(marker, node, this, arguments, var=var):
                    var = Scope({'marker':marker, 'node':node, 'this':this, 'arguments':arguments}, var)
                    var.registers(['metadata', 'node', 'marker'])
                    if var.get(u"this").get('config').get('range'):
                        var.get('node').put('range', Js([var.get('marker').get('index'), var.get(u"this").get('lastMarker').get('index')]))
                    if var.get(u"this").get('config').get('loc'):
                        PyJs_Object_221_ = Js({'line':var.get('marker').get('line'),'column':var.get('marker').get('column')})
                        PyJs_Object_222_ = Js({'line':var.get(u"this").get('lastMarker').get('line'),'column':var.get(u"this").get('lastMarker').get('column')})
                        PyJs_Object_220_ = Js({'start':PyJs_Object_221_,'end':PyJs_Object_222_})
                        var.get('node').put('loc', PyJs_Object_220_)
                        if var.get(u"this").get('config').get('source'):
                            var.get('node').get('loc').put('source', var.get(u"this").get('config').get('source'))
                    if var.get(u"this").get('delegate'):
                        PyJs_Object_224_ = Js({'line':var.get('marker').get('line'),'column':var.get('marker').get('column'),'offset':var.get('marker').get('index')})
                        PyJs_Object_225_ = Js({'line':var.get(u"this").get('lastMarker').get('line'),'column':var.get(u"this").get('lastMarker').get('column'),'offset':var.get(u"this").get('lastMarker').get('index')})
                        PyJs_Object_223_ = Js({'start':PyJs_Object_224_,'end':PyJs_Object_225_})
                        var.put('metadata', PyJs_Object_223_)
                        var.get(u"this").callprop('delegate', var.get('node'), var.get('metadata'))
                    return var.get('node')
                PyJs_anonymous_219_._set_name('anonymous')
                var.get('Parser').get('prototype').put('finalize', PyJs_anonymous_219_)
                @Js
                def PyJs_anonymous_226_(value, this, arguments, var=var):
                    var = Scope({'value':value, 'this':this, 'arguments':arguments}, var)
                    var.registers(['value', 'token'])
                    var.put('token', var.get(u"this").callprop('nextToken'))
                    if (PyJsStrictNeq(var.get('token').get('type'),Js(7.0)) or PyJsStrictNeq(var.get('token').get('value'),var.get('value'))):
                        var.get(u"this").callprop('throwUnexpectedToken', var.get('token'))
                PyJs_anonymous_226_._set_name('anonymous')
                var.get('Parser').get('prototype').put('expect', PyJs_anonymous_226_)
                @Js
                def PyJs_anonymous_227_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['token'])
                    if var.get(u"this").get('config').get('tolerant'):
                        var.put('token', var.get(u"this").get('lookahead'))
                        if (PyJsStrictEq(var.get('token').get('type'),Js(7.0)) and PyJsStrictEq(var.get('token').get('value'),Js(','))):
                            var.get(u"this").callprop('nextToken')
                        else:
                            if (PyJsStrictEq(var.get('token').get('type'),Js(7.0)) and PyJsStrictEq(var.get('token').get('value'),Js(';'))):
                                var.get(u"this").callprop('nextToken')
                                var.get(u"this").callprop('tolerateUnexpectedToken', var.get('token'))
                            else:
                                var.get(u"this").callprop('tolerateUnexpectedToken', var.get('token'), var.get('messages_1').get('Messages').get('UnexpectedToken'))
                    else:
                        var.get(u"this").callprop('expect', Js(','))
                PyJs_anonymous_227_._set_name('anonymous')
                var.get('Parser').get('prototype').put('expectCommaSeparator', PyJs_anonymous_227_)
                @Js
                def PyJs_anonymous_228_(keyword, this, arguments, var=var):
                    var = Scope({'keyword':keyword, 'this':this, 'arguments':arguments}, var)
                    var.registers(['token', 'keyword'])
                    var.put('token', var.get(u"this").callprop('nextToken'))
                    if (PyJsStrictNeq(var.get('token').get('type'),Js(4.0)) or PyJsStrictNeq(var.get('token').get('value'),var.get('keyword'))):
                        var.get(u"this").callprop('throwUnexpectedToken', var.get('token'))
                PyJs_anonymous_228_._set_name('anonymous')
                var.get('Parser').get('prototype').put('expectKeyword', PyJs_anonymous_228_)
                @Js
                def PyJs_anonymous_229_(value, this, arguments, var=var):
                    var = Scope({'value':value, 'this':this, 'arguments':arguments}, var)
                    var.registers(['value'])
                    return (PyJsStrictEq(var.get(u"this").get('lookahead').get('type'),Js(7.0)) and PyJsStrictEq(var.get(u"this").get('lookahead').get('value'),var.get('value')))
                PyJs_anonymous_229_._set_name('anonymous')
                var.get('Parser').get('prototype').put('match', PyJs_anonymous_229_)
                @Js
                def PyJs_anonymous_230_(keyword, this, arguments, var=var):
                    var = Scope({'keyword':keyword, 'this':this, 'arguments':arguments}, var)
                    var.registers(['keyword'])
                    return (PyJsStrictEq(var.get(u"this").get('lookahead').get('type'),Js(4.0)) and PyJsStrictEq(var.get(u"this").get('lookahead').get('value'),var.get('keyword')))
                PyJs_anonymous_230_._set_name('anonymous')
                var.get('Parser').get('prototype').put('matchKeyword', PyJs_anonymous_230_)
                @Js
                def PyJs_anonymous_231_(keyword, this, arguments, var=var):
                    var = Scope({'keyword':keyword, 'this':this, 'arguments':arguments}, var)
                    var.registers(['keyword'])
                    return (PyJsStrictEq(var.get(u"this").get('lookahead').get('type'),Js(3.0)) and PyJsStrictEq(var.get(u"this").get('lookahead').get('value'),var.get('keyword')))
                PyJs_anonymous_231_._set_name('anonymous')
                var.get('Parser').get('prototype').put('matchContextualKeyword', PyJs_anonymous_231_)
                @Js
                def PyJs_anonymous_232_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['op'])
                    if PyJsStrictNeq(var.get(u"this").get('lookahead').get('type'),Js(7.0)):
                        return Js(False)
                    var.put('op', var.get(u"this").get('lookahead').get('value'))
                    def PyJs_LONG_233_(var=var):
                        return (((((((((PyJsStrictEq(var.get('op'),Js('=')) or PyJsStrictEq(var.get('op'),Js('*='))) or PyJsStrictEq(var.get('op'),Js('**='))) or PyJsStrictEq(var.get('op'),Js('/='))) or PyJsStrictEq(var.get('op'),Js('%='))) or PyJsStrictEq(var.get('op'),Js('+='))) or PyJsStrictEq(var.get('op'),Js('-='))) or PyJsStrictEq(var.get('op'),Js('<<='))) or PyJsStrictEq(var.get('op'),Js('>>='))) or PyJsStrictEq(var.get('op'),Js('>>>=')))
                    return (((PyJs_LONG_233_() or PyJsStrictEq(var.get('op'),Js('&='))) or PyJsStrictEq(var.get('op'),Js('^='))) or PyJsStrictEq(var.get('op'),Js('|=')))
                PyJs_anonymous_232_._set_name('anonymous')
                var.get('Parser').get('prototype').put('matchAssign', PyJs_anonymous_232_)
                @Js
                def PyJs_anonymous_234_(parseFunction, this, arguments, var=var):
                    var = Scope({'parseFunction':parseFunction, 'this':this, 'arguments':arguments}, var)
                    var.registers(['previousIsBindingElement', 'parseFunction', 'previousFirstCoverInitializedNameError', 'previousIsAssignmentTarget', 'result'])
                    var.put('previousIsBindingElement', var.get(u"this").get('context').get('isBindingElement'))
                    var.put('previousIsAssignmentTarget', var.get(u"this").get('context').get('isAssignmentTarget'))
                    var.put('previousFirstCoverInitializedNameError', var.get(u"this").get('context').get('firstCoverInitializedNameError'))
                    var.get(u"this").get('context').put('isBindingElement', Js(True))
                    var.get(u"this").get('context').put('isAssignmentTarget', Js(True))
                    var.get(u"this").get('context').put('firstCoverInitializedNameError', var.get(u"null"))
                    var.put('result', var.get('parseFunction').callprop('call', var.get(u"this")))
                    if PyJsStrictNeq(var.get(u"this").get('context').get('firstCoverInitializedNameError'),var.get(u"null")):
                        var.get(u"this").callprop('throwUnexpectedToken', var.get(u"this").get('context').get('firstCoverInitializedNameError'))
                    var.get(u"this").get('context').put('isBindingElement', var.get('previousIsBindingElement'))
                    var.get(u"this").get('context').put('isAssignmentTarget', var.get('previousIsAssignmentTarget'))
                    var.get(u"this").get('context').put('firstCoverInitializedNameError', var.get('previousFirstCoverInitializedNameError'))
                    return var.get('result')
                PyJs_anonymous_234_._set_name('anonymous')
                var.get('Parser').get('prototype').put('isolateCoverGrammar', PyJs_anonymous_234_)
                @Js
                def PyJs_anonymous_235_(parseFunction, this, arguments, var=var):
                    var = Scope({'parseFunction':parseFunction, 'this':this, 'arguments':arguments}, var)
                    var.registers(['previousIsBindingElement', 'parseFunction', 'previousFirstCoverInitializedNameError', 'previousIsAssignmentTarget', 'result'])
                    var.put('previousIsBindingElement', var.get(u"this").get('context').get('isBindingElement'))
                    var.put('previousIsAssignmentTarget', var.get(u"this").get('context').get('isAssignmentTarget'))
                    var.put('previousFirstCoverInitializedNameError', var.get(u"this").get('context').get('firstCoverInitializedNameError'))
                    var.get(u"this").get('context').put('isBindingElement', Js(True))
                    var.get(u"this").get('context').put('isAssignmentTarget', Js(True))
                    var.get(u"this").get('context').put('firstCoverInitializedNameError', var.get(u"null"))
                    var.put('result', var.get('parseFunction').callprop('call', var.get(u"this")))
                    var.get(u"this").get('context').put('isBindingElement', (var.get(u"this").get('context').get('isBindingElement') and var.get('previousIsBindingElement')))
                    var.get(u"this").get('context').put('isAssignmentTarget', (var.get(u"this").get('context').get('isAssignmentTarget') and var.get('previousIsAssignmentTarget')))
                    var.get(u"this").get('context').put('firstCoverInitializedNameError', (var.get('previousFirstCoverInitializedNameError') or var.get(u"this").get('context').get('firstCoverInitializedNameError')))
                    return var.get('result')
                PyJs_anonymous_235_._set_name('anonymous')
                var.get('Parser').get('prototype').put('inheritCoverGrammar', PyJs_anonymous_235_)
                @Js
                def PyJs_anonymous_236_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers([])
                    if var.get(u"this").callprop('match', Js(';')):
                        var.get(u"this").callprop('nextToken')
                    else:
                        if var.get(u"this").get('hasLineTerminator').neg():
                            if (PyJsStrictNeq(var.get(u"this").get('lookahead').get('type'),Js(2.0)) and var.get(u"this").callprop('match', Js('}')).neg()):
                                var.get(u"this").callprop('throwUnexpectedToken', var.get(u"this").get('lookahead'))
                            var.get(u"this").get('lastMarker').put('index', var.get(u"this").get('startMarker').get('index'))
                            var.get(u"this").get('lastMarker').put('line', var.get(u"this").get('startMarker').get('line'))
                            var.get(u"this").get('lastMarker').put('column', var.get(u"this").get('startMarker').get('column'))
                PyJs_anonymous_236_._set_name('anonymous')
                var.get('Parser').get('prototype').put('consumeSemicolon', PyJs_anonymous_236_)
                @Js
                def PyJs_anonymous_237_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['raw', 'node', 'token', 'expr'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    pass
                    pass
                    while 1:
                        SWITCHED = False
                        CONDITION = (var.get(u"this").get('lookahead').get('type'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(3.0)):
                            SWITCHED = True
                            if ((var.get(u"this").get('context').get('isModule') or var.get(u"this").get('context').get('await')) and PyJsStrictEq(var.get(u"this").get('lookahead').get('value'),Js('await'))):
                                var.get(u"this").callprop('tolerateUnexpectedToken', var.get(u"this").get('lookahead'))
                            var.put('expr', (var.get(u"this").callprop('parseFunctionExpression') if var.get(u"this").callprop('matchAsyncFunction') else var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('Identifier').create(var.get(u"this").callprop('nextToken').get('value')))))
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(6.0)):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(8.0)):
                            SWITCHED = True
                            if (var.get(u"this").get('context').get('strict') and var.get(u"this").get('lookahead').get('octal')):
                                var.get(u"this").callprop('tolerateUnexpectedToken', var.get(u"this").get('lookahead'), var.get('messages_1').get('Messages').get('StrictOctalLiteral'))
                            var.get(u"this").get('context').put('isAssignmentTarget', Js(False))
                            var.get(u"this").get('context').put('isBindingElement', Js(False))
                            var.put('token', var.get(u"this").callprop('nextToken'))
                            var.put('raw', var.get(u"this").callprop('getTokenRaw', var.get('token')))
                            var.put('expr', var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('Literal').create(var.get('token').get('value'), var.get('raw'))))
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(1.0)):
                            SWITCHED = True
                            var.get(u"this").get('context').put('isAssignmentTarget', Js(False))
                            var.get(u"this").get('context').put('isBindingElement', Js(False))
                            var.put('token', var.get(u"this").callprop('nextToken'))
                            var.put('raw', var.get(u"this").callprop('getTokenRaw', var.get('token')))
                            var.put('expr', var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('Literal').create(PyJsStrictEq(var.get('token').get('value'),Js('true')), var.get('raw'))))
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(5.0)):
                            SWITCHED = True
                            var.get(u"this").get('context').put('isAssignmentTarget', Js(False))
                            var.get(u"this").get('context').put('isBindingElement', Js(False))
                            var.put('token', var.get(u"this").callprop('nextToken'))
                            var.put('raw', var.get(u"this").callprop('getTokenRaw', var.get('token')))
                            var.put('expr', var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('Literal').create(var.get(u"null"), var.get('raw'))))
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(10.0)):
                            SWITCHED = True
                            var.put('expr', var.get(u"this").callprop('parseTemplateLiteral'))
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(7.0)):
                            SWITCHED = True
                            while 1:
                                SWITCHED = False
                                CONDITION = (var.get(u"this").get('lookahead').get('value'))
                                if SWITCHED or PyJsStrictEq(CONDITION, Js('(')):
                                    SWITCHED = True
                                    var.get(u"this").get('context').put('isBindingElement', Js(False))
                                    var.put('expr', var.get(u"this").callprop('inheritCoverGrammar', var.get(u"this").get('parseGroupExpression')))
                                    break
                                if SWITCHED or PyJsStrictEq(CONDITION, Js('[')):
                                    SWITCHED = True
                                    var.put('expr', var.get(u"this").callprop('inheritCoverGrammar', var.get(u"this").get('parseArrayInitializer')))
                                    break
                                if SWITCHED or PyJsStrictEq(CONDITION, Js('{')):
                                    SWITCHED = True
                                    var.put('expr', var.get(u"this").callprop('inheritCoverGrammar', var.get(u"this").get('parseObjectInitializer')))
                                    break
                                if SWITCHED or PyJsStrictEq(CONDITION, Js('/')):
                                    SWITCHED = True
                                    pass
                                if SWITCHED or PyJsStrictEq(CONDITION, Js('/=')):
                                    SWITCHED = True
                                    var.get(u"this").get('context').put('isAssignmentTarget', Js(False))
                                    var.get(u"this").get('context').put('isBindingElement', Js(False))
                                    var.get(u"this").get('scanner').put('index', var.get(u"this").get('startMarker').get('index'))
                                    var.put('token', var.get(u"this").callprop('nextRegexToken'))
                                    var.put('raw', var.get(u"this").callprop('getTokenRaw', var.get('token')))
                                    var.put('expr', var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('RegexLiteral').create(var.get('token').get('regex'), var.get('raw'), var.get('token').get('pattern'), var.get('token').get('flags'))))
                                    break
                                if True:
                                    SWITCHED = True
                                    var.put('expr', var.get(u"this").callprop('throwUnexpectedToken', var.get(u"this").callprop('nextToken')))
                                SWITCHED = True
                                break
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(4.0)):
                            SWITCHED = True
                            if ((var.get(u"this").get('context').get('strict').neg() and var.get(u"this").get('context').get('allowYield')) and var.get(u"this").callprop('matchKeyword', Js('yield'))):
                                var.put('expr', var.get(u"this").callprop('parseIdentifierName'))
                            else:
                                if (var.get(u"this").get('context').get('strict').neg() and var.get(u"this").callprop('matchKeyword', Js('let'))):
                                    var.put('expr', var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('Identifier').create(var.get(u"this").callprop('nextToken').get('value'))))
                                else:
                                    var.get(u"this").get('context').put('isAssignmentTarget', Js(False))
                                    var.get(u"this").get('context').put('isBindingElement', Js(False))
                                    if var.get(u"this").callprop('matchKeyword', Js('function')):
                                        var.put('expr', var.get(u"this").callprop('parseFunctionExpression'))
                                    else:
                                        if var.get(u"this").callprop('matchKeyword', Js('this')):
                                            var.get(u"this").callprop('nextToken')
                                            var.put('expr', var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('ThisExpression').create()))
                                        else:
                                            if var.get(u"this").callprop('matchKeyword', Js('class')):
                                                var.put('expr', var.get(u"this").callprop('parseClassExpression'))
                                            else:
                                                var.put('expr', var.get(u"this").callprop('throwUnexpectedToken', var.get(u"this").callprop('nextToken')))
                            break
                        if True:
                            SWITCHED = True
                            var.put('expr', var.get(u"this").callprop('throwUnexpectedToken', var.get(u"this").callprop('nextToken')))
                        SWITCHED = True
                        break
                    return var.get('expr')
                PyJs_anonymous_237_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parsePrimaryExpression', PyJs_anonymous_237_)
                @Js
                def PyJs_anonymous_238_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['node', 'arg'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.get(u"this").callprop('expect', Js('...'))
                    var.put('arg', var.get(u"this").callprop('inheritCoverGrammar', var.get(u"this").get('parseAssignmentExpression')))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('SpreadElement').create(var.get('arg')))
                PyJs_anonymous_238_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseSpreadElement', PyJs_anonymous_238_)
                @Js
                def PyJs_anonymous_239_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['elements', 'node', 'element'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.put('elements', Js([]))
                    var.get(u"this").callprop('expect', Js('['))
                    while var.get(u"this").callprop('match', Js(']')).neg():
                        if var.get(u"this").callprop('match', Js(',')):
                            var.get(u"this").callprop('nextToken')
                            var.get('elements').callprop('push', var.get(u"null"))
                        else:
                            if var.get(u"this").callprop('match', Js('...')):
                                var.put('element', var.get(u"this").callprop('parseSpreadElement'))
                                if var.get(u"this").callprop('match', Js(']')).neg():
                                    var.get(u"this").get('context').put('isAssignmentTarget', Js(False))
                                    var.get(u"this").get('context').put('isBindingElement', Js(False))
                                    var.get(u"this").callprop('expect', Js(','))
                                var.get('elements').callprop('push', var.get('element'))
                            else:
                                var.get('elements').callprop('push', var.get(u"this").callprop('inheritCoverGrammar', var.get(u"this").get('parseAssignmentExpression')))
                                if var.get(u"this").callprop('match', Js(']')).neg():
                                    var.get(u"this").callprop('expect', Js(','))
                    var.get(u"this").callprop('expect', Js(']'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('ArrayExpression').create(var.get('elements')))
                PyJs_anonymous_239_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseArrayInitializer', PyJs_anonymous_239_)
                @Js
                def PyJs_anonymous_240_(params, this, arguments, var=var):
                    var = Scope({'params':params, 'this':this, 'arguments':arguments}, var)
                    var.registers(['params', 'body', 'previousAllowStrictDirective', 'previousStrict'])
                    var.get(u"this").get('context').put('isAssignmentTarget', Js(False))
                    var.get(u"this").get('context').put('isBindingElement', Js(False))
                    var.put('previousStrict', var.get(u"this").get('context').get('strict'))
                    var.put('previousAllowStrictDirective', var.get(u"this").get('context').get('allowStrictDirective'))
                    var.get(u"this").get('context').put('allowStrictDirective', var.get('params').get('simple'))
                    var.put('body', var.get(u"this").callprop('isolateCoverGrammar', var.get(u"this").get('parseFunctionSourceElements')))
                    if (var.get(u"this").get('context').get('strict') and var.get('params').get('firstRestricted')):
                        var.get(u"this").callprop('tolerateUnexpectedToken', var.get('params').get('firstRestricted'), var.get('params').get('message'))
                    if (var.get(u"this").get('context').get('strict') and var.get('params').get('stricted')):
                        var.get(u"this").callprop('tolerateUnexpectedToken', var.get('params').get('stricted'), var.get('params').get('message'))
                    var.get(u"this").get('context').put('strict', var.get('previousStrict'))
                    var.get(u"this").get('context').put('allowStrictDirective', var.get('previousAllowStrictDirective'))
                    return var.get('body')
                PyJs_anonymous_240_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parsePropertyMethod', PyJs_anonymous_240_)
                @Js
                def PyJs_anonymous_241_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['node', 'params', 'isGenerator', 'method', 'previousAllowYield'])
                    var.put('isGenerator', Js(False))
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.put('previousAllowYield', var.get(u"this").get('context').get('allowYield'))
                    var.get(u"this").get('context').put('allowYield', Js(True))
                    var.put('params', var.get(u"this").callprop('parseFormalParameters'))
                    var.put('method', var.get(u"this").callprop('parsePropertyMethod', var.get('params')))
                    var.get(u"this").get('context').put('allowYield', var.get('previousAllowYield'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('FunctionExpression').create(var.get(u"null"), var.get('params').get('params'), var.get('method'), var.get('isGenerator')))
                PyJs_anonymous_241_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parsePropertyMethodFunction', PyJs_anonymous_241_)
                @Js
                def PyJs_anonymous_242_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['node', 'params', 'method', 'previousAwait', 'previousAllowYield'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.put('previousAllowYield', var.get(u"this").get('context').get('allowYield'))
                    var.put('previousAwait', var.get(u"this").get('context').get('await'))
                    var.get(u"this").get('context').put('allowYield', Js(False))
                    var.get(u"this").get('context').put('await', Js(True))
                    var.put('params', var.get(u"this").callprop('parseFormalParameters'))
                    var.put('method', var.get(u"this").callprop('parsePropertyMethod', var.get('params')))
                    var.get(u"this").get('context').put('allowYield', var.get('previousAllowYield'))
                    var.get(u"this").get('context').put('await', var.get('previousAwait'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('AsyncFunctionExpression').create(var.get(u"null"), var.get('params').get('params'), var.get('method')))
                PyJs_anonymous_242_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parsePropertyMethodAsyncFunction', PyJs_anonymous_242_)
                @Js
                def PyJs_anonymous_243_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['raw', 'node', 'key', 'token'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.put('token', var.get(u"this").callprop('nextToken'))
                    pass
                    while 1:
                        SWITCHED = False
                        CONDITION = (var.get('token').get('type'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(8.0)):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(6.0)):
                            SWITCHED = True
                            if (var.get(u"this").get('context').get('strict') and var.get('token').get('octal')):
                                var.get(u"this").callprop('tolerateUnexpectedToken', var.get('token'), var.get('messages_1').get('Messages').get('StrictOctalLiteral'))
                            var.put('raw', var.get(u"this").callprop('getTokenRaw', var.get('token')))
                            var.put('key', var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('Literal').create(var.get('token').get('value'), var.get('raw'))))
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(3.0)):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(1.0)):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(5.0)):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(4.0)):
                            SWITCHED = True
                            var.put('key', var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('Identifier').create(var.get('token').get('value'))))
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(7.0)):
                            SWITCHED = True
                            if PyJsStrictEq(var.get('token').get('value'),Js('[')):
                                var.put('key', var.get(u"this").callprop('isolateCoverGrammar', var.get(u"this").get('parseAssignmentExpression')))
                                var.get(u"this").callprop('expect', Js(']'))
                            else:
                                var.put('key', var.get(u"this").callprop('throwUnexpectedToken', var.get('token')))
                            break
                        if True:
                            SWITCHED = True
                            var.put('key', var.get(u"this").callprop('throwUnexpectedToken', var.get('token')))
                        SWITCHED = True
                        break
                    return var.get('key')
                PyJs_anonymous_243_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseObjectPropertyKey', PyJs_anonymous_243_)
                @Js
                def PyJs_anonymous_244_(key, value, this, arguments, var=var):
                    var = Scope({'key':key, 'value':value, 'this':this, 'arguments':arguments}, var)
                    var.registers(['value', 'key'])
                    return ((PyJsStrictEq(var.get('key').get('type'),var.get('syntax_1').get('Syntax').get('Identifier')) and PyJsStrictEq(var.get('key').get('name'),var.get('value'))) or (PyJsStrictEq(var.get('key').get('type'),var.get('syntax_1').get('Syntax').get('Literal')) and PyJsStrictEq(var.get('key').get('value'),var.get('value'))))
                PyJs_anonymous_244_._set_name('anonymous')
                var.get('Parser').get('prototype').put('isPropertyKey', PyJs_anonymous_244_)
                @Js
                def PyJs_anonymous_245_(hasProto, this, arguments, var=var):
                    var = Scope({'hasProto':hasProto, 'this':this, 'arguments':arguments}, var)
                    var.registers(['node', 'shorthand', 'kind', 'init', 'lookaheadPropertyKey', 'computed', 'isAsync', 'key', 'token', 'method', 'hasProto', 'id', 'value'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.put('token', var.get(u"this").get('lookahead'))
                    pass
                    var.put('key', var.get(u"null"))
                    var.put('value', var.get(u"null"))
                    var.put('computed', Js(False))
                    var.put('method', Js(False))
                    var.put('shorthand', Js(False))
                    var.put('isAsync', Js(False))
                    if PyJsStrictEq(var.get('token').get('type'),Js(3.0)):
                        var.put('id', var.get('token').get('value'))
                        var.get(u"this").callprop('nextToken')
                        var.put('computed', var.get(u"this").callprop('match', Js('[')))
                        var.put('isAsync', (((((var.get(u"this").get('hasLineTerminator').neg() and PyJsStrictEq(var.get('id'),Js('async'))) and var.get(u"this").callprop('match', Js(':')).neg()) and var.get(u"this").callprop('match', Js('(')).neg()) and var.get(u"this").callprop('match', Js('*')).neg()) and var.get(u"this").callprop('match', Js(',')).neg()))
                        var.put('key', (var.get(u"this").callprop('parseObjectPropertyKey') if var.get('isAsync') else var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('Identifier').create(var.get('id')))))
                    else:
                        if var.get(u"this").callprop('match', Js('*')):
                            var.get(u"this").callprop('nextToken')
                        else:
                            var.put('computed', var.get(u"this").callprop('match', Js('[')))
                            var.put('key', var.get(u"this").callprop('parseObjectPropertyKey'))
                    var.put('lookaheadPropertyKey', var.get(u"this").callprop('qualifiedPropertyName', var.get(u"this").get('lookahead')))
                    if (((PyJsStrictEq(var.get('token').get('type'),Js(3.0)) and var.get('isAsync').neg()) and PyJsStrictEq(var.get('token').get('value'),Js('get'))) and var.get('lookaheadPropertyKey')):
                        var.put('kind', Js('get'))
                        var.put('computed', var.get(u"this").callprop('match', Js('[')))
                        var.put('key', var.get(u"this").callprop('parseObjectPropertyKey'))
                        var.get(u"this").get('context').put('allowYield', Js(False))
                        var.put('value', var.get(u"this").callprop('parseGetterMethod'))
                    else:
                        if (((PyJsStrictEq(var.get('token').get('type'),Js(3.0)) and var.get('isAsync').neg()) and PyJsStrictEq(var.get('token').get('value'),Js('set'))) and var.get('lookaheadPropertyKey')):
                            var.put('kind', Js('set'))
                            var.put('computed', var.get(u"this").callprop('match', Js('[')))
                            var.put('key', var.get(u"this").callprop('parseObjectPropertyKey'))
                            var.put('value', var.get(u"this").callprop('parseSetterMethod'))
                        else:
                            if ((PyJsStrictEq(var.get('token').get('type'),Js(7.0)) and PyJsStrictEq(var.get('token').get('value'),Js('*'))) and var.get('lookaheadPropertyKey')):
                                var.put('kind', Js('init'))
                                var.put('computed', var.get(u"this").callprop('match', Js('[')))
                                var.put('key', var.get(u"this").callprop('parseObjectPropertyKey'))
                                var.put('value', var.get(u"this").callprop('parseGeneratorMethod'))
                                var.put('method', Js(True))
                            else:
                                if var.get('key').neg():
                                    var.get(u"this").callprop('throwUnexpectedToken', var.get(u"this").get('lookahead'))
                                var.put('kind', Js('init'))
                                if (var.get(u"this").callprop('match', Js(':')) and var.get('isAsync').neg()):
                                    if (var.get('computed').neg() and var.get(u"this").callprop('isPropertyKey', var.get('key'), Js('__proto__'))):
                                        if var.get('hasProto').get('value'):
                                            var.get(u"this").callprop('tolerateError', var.get('messages_1').get('Messages').get('DuplicateProtoProperty'))
                                        var.get('hasProto').put('value', Js(True))
                                    var.get(u"this").callprop('nextToken')
                                    var.put('value', var.get(u"this").callprop('inheritCoverGrammar', var.get(u"this").get('parseAssignmentExpression')))
                                else:
                                    if var.get(u"this").callprop('match', Js('(')):
                                        var.put('value', (var.get(u"this").callprop('parsePropertyMethodAsyncFunction') if var.get('isAsync') else var.get(u"this").callprop('parsePropertyMethodFunction')))
                                        var.put('method', Js(True))
                                    else:
                                        if PyJsStrictEq(var.get('token').get('type'),Js(3.0)):
                                            var.put('id', var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('Identifier').create(var.get('token').get('value'))))
                                            if var.get(u"this").callprop('match', Js('=')):
                                                var.get(u"this").get('context').put('firstCoverInitializedNameError', var.get(u"this").get('lookahead'))
                                                var.get(u"this").callprop('nextToken')
                                                var.put('shorthand', Js(True))
                                                var.put('init', var.get(u"this").callprop('isolateCoverGrammar', var.get(u"this").get('parseAssignmentExpression')))
                                                var.put('value', var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('AssignmentPattern').create(var.get('id'), var.get('init'))))
                                            else:
                                                var.put('shorthand', Js(True))
                                                var.put('value', var.get('id'))
                                        else:
                                            var.get(u"this").callprop('throwUnexpectedToken', var.get(u"this").callprop('nextToken'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('Property').create(var.get('kind'), var.get('key'), var.get('computed'), var.get('value'), var.get('method'), var.get('shorthand')))
                PyJs_anonymous_245_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseObjectProperty', PyJs_anonymous_245_)
                @Js
                def PyJs_anonymous_246_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['hasProto', 'node', 'properties'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.get(u"this").callprop('expect', Js('{'))
                    var.put('properties', Js([]))
                    PyJs_Object_247_ = Js({'value':Js(False)})
                    var.put('hasProto', PyJs_Object_247_)
                    while var.get(u"this").callprop('match', Js('}')).neg():
                        var.get('properties').callprop('push', var.get(u"this").callprop('parseObjectProperty', var.get('hasProto')))
                        if var.get(u"this").callprop('match', Js('}')).neg():
                            var.get(u"this").callprop('expectCommaSeparator')
                    var.get(u"this").callprop('expect', Js('}'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('ObjectExpression').create(var.get('properties')))
                PyJs_anonymous_246_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseObjectInitializer', PyJs_anonymous_246_)
                @Js
                def PyJs_anonymous_248_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['raw', 'cooked', 'node', 'token'])
                    var.get('assert_1').callprop('assert', var.get(u"this").get('lookahead').get('head'), Js('Template literal must start with a template head'))
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.put('token', var.get(u"this").callprop('nextToken'))
                    var.put('raw', var.get('token').get('value'))
                    var.put('cooked', var.get('token').get('cooked'))
                    PyJs_Object_249_ = Js({'raw':var.get('raw'),'cooked':var.get('cooked')})
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('TemplateElement').create(PyJs_Object_249_, var.get('token').get('tail')))
                PyJs_anonymous_248_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseTemplateHead', PyJs_anonymous_248_)
                @Js
                def PyJs_anonymous_250_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['raw', 'cooked', 'node', 'token'])
                    if PyJsStrictNeq(var.get(u"this").get('lookahead').get('type'),Js(10.0)):
                        var.get(u"this").callprop('throwUnexpectedToken')
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.put('token', var.get(u"this").callprop('nextToken'))
                    var.put('raw', var.get('token').get('value'))
                    var.put('cooked', var.get('token').get('cooked'))
                    PyJs_Object_251_ = Js({'raw':var.get('raw'),'cooked':var.get('cooked')})
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('TemplateElement').create(PyJs_Object_251_, var.get('token').get('tail')))
                PyJs_anonymous_250_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseTemplateElement', PyJs_anonymous_250_)
                @Js
                def PyJs_anonymous_252_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['expressions', 'quasis', 'node', 'quasi'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.put('expressions', Js([]))
                    var.put('quasis', Js([]))
                    var.put('quasi', var.get(u"this").callprop('parseTemplateHead'))
                    var.get('quasis').callprop('push', var.get('quasi'))
                    while var.get('quasi').get('tail').neg():
                        var.get('expressions').callprop('push', var.get(u"this").callprop('parseExpression'))
                        var.put('quasi', var.get(u"this").callprop('parseTemplateElement'))
                        var.get('quasis').callprop('push', var.get('quasi'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('TemplateLiteral').create(var.get('quasis'), var.get('expressions')))
                PyJs_anonymous_252_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseTemplateLiteral', PyJs_anonymous_252_)
                @Js
                def PyJs_anonymous_253_(expr, this, arguments, var=var):
                    var = Scope({'expr':expr, 'this':this, 'arguments':arguments}, var)
                    var.registers(['i', 'expr'])
                    while 1:
                        SWITCHED = False
                        CONDITION = (var.get('expr').get('type'))
                        if SWITCHED or PyJsStrictEq(CONDITION, var.get('syntax_1').get('Syntax').get('Identifier')):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, var.get('syntax_1').get('Syntax').get('MemberExpression')):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, var.get('syntax_1').get('Syntax').get('RestElement')):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, var.get('syntax_1').get('Syntax').get('AssignmentPattern')):
                            SWITCHED = True
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, var.get('syntax_1').get('Syntax').get('SpreadElement')):
                            SWITCHED = True
                            var.get('expr').put('type', var.get('syntax_1').get('Syntax').get('RestElement'))
                            var.get(u"this").callprop('reinterpretExpressionAsPattern', var.get('expr').get('argument'))
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, var.get('syntax_1').get('Syntax').get('ArrayExpression')):
                            SWITCHED = True
                            var.get('expr').put('type', var.get('syntax_1').get('Syntax').get('ArrayPattern'))
                            #for JS loop
                            var.put('i', Js(0.0))
                            while (var.get('i')<var.get('expr').get('elements').get('length')):
                                try:
                                    if PyJsStrictNeq(var.get('expr').get('elements').get(var.get('i')),var.get(u"null")):
                                        var.get(u"this").callprop('reinterpretExpressionAsPattern', var.get('expr').get('elements').get(var.get('i')))
                                finally:
                                        (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, var.get('syntax_1').get('Syntax').get('ObjectExpression')):
                            SWITCHED = True
                            var.get('expr').put('type', var.get('syntax_1').get('Syntax').get('ObjectPattern'))
                            #for JS loop
                            var.put('i', Js(0.0))
                            while (var.get('i')<var.get('expr').get('properties').get('length')):
                                try:
                                    var.get(u"this").callprop('reinterpretExpressionAsPattern', var.get('expr').get('properties').get(var.get('i')).get('value'))
                                finally:
                                        (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, var.get('syntax_1').get('Syntax').get('AssignmentExpression')):
                            SWITCHED = True
                            var.get('expr').put('type', var.get('syntax_1').get('Syntax').get('AssignmentPattern'))
                            var.get('expr').delete('operator')
                            var.get(u"this").callprop('reinterpretExpressionAsPattern', var.get('expr').get('left'))
                            break
                        if True:
                            SWITCHED = True
                            break
                        SWITCHED = True
                        break
                PyJs_anonymous_253_._set_name('anonymous')
                var.get('Parser').get('prototype').put('reinterpretExpressionAsPattern', PyJs_anonymous_253_)
                @Js
                def PyJs_anonymous_254_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['parameters', 'params', 'expr', 'expressions', 'arrow', 'i', 'startToken'])
                    pass
                    var.get(u"this").callprop('expect', Js('('))
                    if var.get(u"this").callprop('match', Js(')')):
                        var.get(u"this").callprop('nextToken')
                        if var.get(u"this").callprop('match', Js('=>')).neg():
                            var.get(u"this").callprop('expect', Js('=>'))
                        PyJs_Object_255_ = Js({'type':var.get('ArrowParameterPlaceHolder'),'params':Js([]),'async':Js(False)})
                        var.put('expr', PyJs_Object_255_)
                    else:
                        var.put('startToken', var.get(u"this").get('lookahead'))
                        var.put('params', Js([]))
                        if var.get(u"this").callprop('match', Js('...')):
                            var.put('expr', var.get(u"this").callprop('parseRestElement', var.get('params')))
                            var.get(u"this").callprop('expect', Js(')'))
                            if var.get(u"this").callprop('match', Js('=>')).neg():
                                var.get(u"this").callprop('expect', Js('=>'))
                            PyJs_Object_256_ = Js({'type':var.get('ArrowParameterPlaceHolder'),'params':Js([var.get('expr')]),'async':Js(False)})
                            var.put('expr', PyJs_Object_256_)
                        else:
                            var.put('arrow', Js(False))
                            var.get(u"this").get('context').put('isBindingElement', Js(True))
                            var.put('expr', var.get(u"this").callprop('inheritCoverGrammar', var.get(u"this").get('parseAssignmentExpression')))
                            if var.get(u"this").callprop('match', Js(',')):
                                var.put('expressions', Js([]))
                                var.get(u"this").get('context').put('isAssignmentTarget', Js(False))
                                var.get('expressions').callprop('push', var.get('expr'))
                                while PyJsStrictNeq(var.get(u"this").get('lookahead').get('type'),Js(2.0)):
                                    if var.get(u"this").callprop('match', Js(',')).neg():
                                        break
                                    var.get(u"this").callprop('nextToken')
                                    if var.get(u"this").callprop('match', Js(')')):
                                        var.get(u"this").callprop('nextToken')
                                        #for JS loop
                                        var.put('i', Js(0.0))
                                        while (var.get('i')<var.get('expressions').get('length')):
                                            try:
                                                var.get(u"this").callprop('reinterpretExpressionAsPattern', var.get('expressions').get(var.get('i')))
                                            finally:
                                                    (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                                        var.put('arrow', Js(True))
                                        PyJs_Object_257_ = Js({'type':var.get('ArrowParameterPlaceHolder'),'params':var.get('expressions'),'async':Js(False)})
                                        var.put('expr', PyJs_Object_257_)
                                    else:
                                        if var.get(u"this").callprop('match', Js('...')):
                                            if var.get(u"this").get('context').get('isBindingElement').neg():
                                                var.get(u"this").callprop('throwUnexpectedToken', var.get(u"this").get('lookahead'))
                                            var.get('expressions').callprop('push', var.get(u"this").callprop('parseRestElement', var.get('params')))
                                            var.get(u"this").callprop('expect', Js(')'))
                                            if var.get(u"this").callprop('match', Js('=>')).neg():
                                                var.get(u"this").callprop('expect', Js('=>'))
                                            var.get(u"this").get('context').put('isBindingElement', Js(False))
                                            #for JS loop
                                            var.put('i', Js(0.0))
                                            while (var.get('i')<var.get('expressions').get('length')):
                                                try:
                                                    var.get(u"this").callprop('reinterpretExpressionAsPattern', var.get('expressions').get(var.get('i')))
                                                finally:
                                                        (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                                            var.put('arrow', Js(True))
                                            PyJs_Object_258_ = Js({'type':var.get('ArrowParameterPlaceHolder'),'params':var.get('expressions'),'async':Js(False)})
                                            var.put('expr', PyJs_Object_258_)
                                        else:
                                            var.get('expressions').callprop('push', var.get(u"this").callprop('inheritCoverGrammar', var.get(u"this").get('parseAssignmentExpression')))
                                    if var.get('arrow'):
                                        break
                                if var.get('arrow').neg():
                                    var.put('expr', var.get(u"this").callprop('finalize', var.get(u"this").callprop('startNode', var.get('startToken')), var.get('Node').get('SequenceExpression').create(var.get('expressions'))))
                            if var.get('arrow').neg():
                                var.get(u"this").callprop('expect', Js(')'))
                                if var.get(u"this").callprop('match', Js('=>')):
                                    if (PyJsStrictEq(var.get('expr').get('type'),var.get('syntax_1').get('Syntax').get('Identifier')) and PyJsStrictEq(var.get('expr').get('name'),Js('yield'))):
                                        var.put('arrow', Js(True))
                                        PyJs_Object_259_ = Js({'type':var.get('ArrowParameterPlaceHolder'),'params':Js([var.get('expr')]),'async':Js(False)})
                                        var.put('expr', PyJs_Object_259_)
                                    if var.get('arrow').neg():
                                        if var.get(u"this").get('context').get('isBindingElement').neg():
                                            var.get(u"this").callprop('throwUnexpectedToken', var.get(u"this").get('lookahead'))
                                        if PyJsStrictEq(var.get('expr').get('type'),var.get('syntax_1').get('Syntax').get('SequenceExpression')):
                                            #for JS loop
                                            var.put('i', Js(0.0))
                                            while (var.get('i')<var.get('expr').get('expressions').get('length')):
                                                try:
                                                    var.get(u"this").callprop('reinterpretExpressionAsPattern', var.get('expr').get('expressions').get(var.get('i')))
                                                finally:
                                                        (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                                        else:
                                            var.get(u"this").callprop('reinterpretExpressionAsPattern', var.get('expr'))
                                        var.put('parameters', (var.get('expr').get('expressions') if PyJsStrictEq(var.get('expr').get('type'),var.get('syntax_1').get('Syntax').get('SequenceExpression')) else Js([var.get('expr')])))
                                        PyJs_Object_260_ = Js({'type':var.get('ArrowParameterPlaceHolder'),'params':var.get('parameters'),'async':Js(False)})
                                        var.put('expr', PyJs_Object_260_)
                                var.get(u"this").get('context').put('isBindingElement', Js(False))
                    return var.get('expr')
                PyJs_anonymous_254_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseGroupExpression', PyJs_anonymous_254_)
                @Js
                def PyJs_anonymous_261_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['args', 'expr'])
                    var.get(u"this").callprop('expect', Js('('))
                    var.put('args', Js([]))
                    if var.get(u"this").callprop('match', Js(')')).neg():
                        while Js(True):
                            var.put('expr', (var.get(u"this").callprop('parseSpreadElement') if var.get(u"this").callprop('match', Js('...')) else var.get(u"this").callprop('isolateCoverGrammar', var.get(u"this").get('parseAssignmentExpression'))))
                            var.get('args').callprop('push', var.get('expr'))
                            if var.get(u"this").callprop('match', Js(')')):
                                break
                            var.get(u"this").callprop('expectCommaSeparator')
                            if var.get(u"this").callprop('match', Js(')')):
                                break
                    var.get(u"this").callprop('expect', Js(')'))
                    return var.get('args')
                PyJs_anonymous_261_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseArguments', PyJs_anonymous_261_)
                @Js
                def PyJs_anonymous_262_(token, this, arguments, var=var):
                    var = Scope({'token':token, 'this':this, 'arguments':arguments}, var)
                    var.registers(['token'])
                    return (((PyJsStrictEq(var.get('token').get('type'),Js(3.0)) or PyJsStrictEq(var.get('token').get('type'),Js(4.0))) or PyJsStrictEq(var.get('token').get('type'),Js(1.0))) or PyJsStrictEq(var.get('token').get('type'),Js(5.0)))
                PyJs_anonymous_262_._set_name('anonymous')
                var.get('Parser').get('prototype').put('isIdentifierName', PyJs_anonymous_262_)
                @Js
                def PyJs_anonymous_263_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['node', 'token'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.put('token', var.get(u"this").callprop('nextToken'))
                    if var.get(u"this").callprop('isIdentifierName', var.get('token')).neg():
                        var.get(u"this").callprop('throwUnexpectedToken', var.get('token'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('Identifier').create(var.get('token').get('value')))
                PyJs_anonymous_263_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseIdentifierName', PyJs_anonymous_263_)
                @Js
                def PyJs_anonymous_264_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['node', 'callee', 'expr', 'args', 'id', 'property'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.put('id', var.get(u"this").callprop('parseIdentifierName'))
                    var.get('assert_1').callprop('assert', PyJsStrictEq(var.get('id').get('name'),Js('new')), Js('New expression must start with `new`'))
                    pass
                    if var.get(u"this").callprop('match', Js('.')):
                        var.get(u"this").callprop('nextToken')
                        if ((PyJsStrictEq(var.get(u"this").get('lookahead').get('type'),Js(3.0)) and var.get(u"this").get('context').get('inFunctionBody')) and PyJsStrictEq(var.get(u"this").get('lookahead').get('value'),Js('target'))):
                            var.put('property', var.get(u"this").callprop('parseIdentifierName'))
                            var.put('expr', var.get('Node').get('MetaProperty').create(var.get('id'), var.get('property')))
                        else:
                            var.get(u"this").callprop('throwUnexpectedToken', var.get(u"this").get('lookahead'))
                    else:
                        var.put('callee', var.get(u"this").callprop('isolateCoverGrammar', var.get(u"this").get('parseLeftHandSideExpression')))
                        var.put('args', (var.get(u"this").callprop('parseArguments') if var.get(u"this").callprop('match', Js('(')) else Js([])))
                        var.put('expr', var.get('Node').get('NewExpression').create(var.get('callee'), var.get('args')))
                        var.get(u"this").get('context').put('isAssignmentTarget', Js(False))
                        var.get(u"this").get('context').put('isBindingElement', Js(False))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('expr'))
                PyJs_anonymous_264_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseNewExpression', PyJs_anonymous_264_)
                @Js
                def PyJs_anonymous_265_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['arg'])
                    var.put('arg', var.get(u"this").callprop('parseAssignmentExpression'))
                    var.get(u"this").get('context').put('firstCoverInitializedNameError', var.get(u"null"))
                    return var.get('arg')
                PyJs_anonymous_265_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseAsyncArgument', PyJs_anonymous_265_)
                @Js
                def PyJs_anonymous_266_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['args', 'expr'])
                    var.get(u"this").callprop('expect', Js('('))
                    var.put('args', Js([]))
                    if var.get(u"this").callprop('match', Js(')')).neg():
                        while Js(True):
                            var.put('expr', (var.get(u"this").callprop('parseSpreadElement') if var.get(u"this").callprop('match', Js('...')) else var.get(u"this").callprop('isolateCoverGrammar', var.get(u"this").get('parseAsyncArgument'))))
                            var.get('args').callprop('push', var.get('expr'))
                            if var.get(u"this").callprop('match', Js(')')):
                                break
                            var.get(u"this").callprop('expectCommaSeparator')
                            if var.get(u"this").callprop('match', Js(')')):
                                break
                    var.get(u"this").callprop('expect', Js(')'))
                    return var.get('args')
                PyJs_anonymous_266_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseAsyncArguments', PyJs_anonymous_266_)
                @Js
                def PyJs_anonymous_267_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['expr', 'args', 'maybeAsync', 'quasi', 'previousAllowIn', 'asyncArrow', 'i', 'property', 'startToken'])
                    var.put('startToken', var.get(u"this").get('lookahead'))
                    var.put('maybeAsync', var.get(u"this").callprop('matchContextualKeyword', Js('async')))
                    var.put('previousAllowIn', var.get(u"this").get('context').get('allowIn'))
                    var.get(u"this").get('context').put('allowIn', Js(True))
                    pass
                    if (var.get(u"this").callprop('matchKeyword', Js('super')) and var.get(u"this").get('context').get('inFunctionBody')):
                        var.put('expr', var.get(u"this").callprop('createNode'))
                        var.get(u"this").callprop('nextToken')
                        var.put('expr', var.get(u"this").callprop('finalize', var.get('expr'), var.get('Node').get('Super').create()))
                        if ((var.get(u"this").callprop('match', Js('(')).neg() and var.get(u"this").callprop('match', Js('.')).neg()) and var.get(u"this").callprop('match', Js('[')).neg()):
                            var.get(u"this").callprop('throwUnexpectedToken', var.get(u"this").get('lookahead'))
                    else:
                        var.put('expr', var.get(u"this").callprop('inheritCoverGrammar', (var.get(u"this").get('parseNewExpression') if var.get(u"this").callprop('matchKeyword', Js('new')) else var.get(u"this").get('parsePrimaryExpression'))))
                    while Js(True):
                        if var.get(u"this").callprop('match', Js('.')):
                            var.get(u"this").get('context').put('isBindingElement', Js(False))
                            var.get(u"this").get('context').put('isAssignmentTarget', Js(True))
                            var.get(u"this").callprop('expect', Js('.'))
                            var.put('property', var.get(u"this").callprop('parseIdentifierName'))
                            var.put('expr', var.get(u"this").callprop('finalize', var.get(u"this").callprop('startNode', var.get('startToken')), var.get('Node').get('StaticMemberExpression').create(var.get('expr'), var.get('property'))))
                        else:
                            if var.get(u"this").callprop('match', Js('(')):
                                var.put('asyncArrow', (var.get('maybeAsync') and PyJsStrictEq(var.get('startToken').get('lineNumber'),var.get(u"this").get('lookahead').get('lineNumber'))))
                                var.get(u"this").get('context').put('isBindingElement', Js(False))
                                var.get(u"this").get('context').put('isAssignmentTarget', Js(False))
                                var.put('args', (var.get(u"this").callprop('parseAsyncArguments') if var.get('asyncArrow') else var.get(u"this").callprop('parseArguments')))
                                var.put('expr', var.get(u"this").callprop('finalize', var.get(u"this").callprop('startNode', var.get('startToken')), var.get('Node').get('CallExpression').create(var.get('expr'), var.get('args'))))
                                if (var.get('asyncArrow') and var.get(u"this").callprop('match', Js('=>'))):
                                    #for JS loop
                                    var.put('i', Js(0.0))
                                    while (var.get('i')<var.get('args').get('length')):
                                        try:
                                            var.get(u"this").callprop('reinterpretExpressionAsPattern', var.get('args').get(var.get('i')))
                                        finally:
                                                var.put('i',Js(var.get('i').to_number())+Js(1))
                                    PyJs_Object_268_ = Js({'type':var.get('ArrowParameterPlaceHolder'),'params':var.get('args'),'async':Js(True)})
                                    var.put('expr', PyJs_Object_268_)
                            else:
                                if var.get(u"this").callprop('match', Js('[')):
                                    var.get(u"this").get('context').put('isBindingElement', Js(False))
                                    var.get(u"this").get('context').put('isAssignmentTarget', Js(True))
                                    var.get(u"this").callprop('expect', Js('['))
                                    var.put('property', var.get(u"this").callprop('isolateCoverGrammar', var.get(u"this").get('parseExpression')))
                                    var.get(u"this").callprop('expect', Js(']'))
                                    var.put('expr', var.get(u"this").callprop('finalize', var.get(u"this").callprop('startNode', var.get('startToken')), var.get('Node').get('ComputedMemberExpression').create(var.get('expr'), var.get('property'))))
                                else:
                                    if (PyJsStrictEq(var.get(u"this").get('lookahead').get('type'),Js(10.0)) and var.get(u"this").get('lookahead').get('head')):
                                        var.put('quasi', var.get(u"this").callprop('parseTemplateLiteral'))
                                        var.put('expr', var.get(u"this").callprop('finalize', var.get(u"this").callprop('startNode', var.get('startToken')), var.get('Node').get('TaggedTemplateExpression').create(var.get('expr'), var.get('quasi'))))
                                    else:
                                        break
                    var.get(u"this").get('context').put('allowIn', var.get('previousAllowIn'))
                    return var.get('expr')
                PyJs_anonymous_267_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseLeftHandSideExpressionAllowCall', PyJs_anonymous_267_)
                @Js
                def PyJs_anonymous_269_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['node'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.get(u"this").callprop('expectKeyword', Js('super'))
                    if (var.get(u"this").callprop('match', Js('[')).neg() and var.get(u"this").callprop('match', Js('.')).neg()):
                        var.get(u"this").callprop('throwUnexpectedToken', var.get(u"this").get('lookahead'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('Super').create())
                PyJs_anonymous_269_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseSuper', PyJs_anonymous_269_)
                @Js
                def PyJs_anonymous_270_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['quasi', 'node', 'property', 'expr'])
                    var.get('assert_1').callprop('assert', var.get(u"this").get('context').get('allowIn'), Js('callee of new expression always allow in keyword.'))
                    var.put('node', var.get(u"this").callprop('startNode', var.get(u"this").get('lookahead')))
                    var.put('expr', (var.get(u"this").callprop('parseSuper') if (var.get(u"this").callprop('matchKeyword', Js('super')) and var.get(u"this").get('context').get('inFunctionBody')) else var.get(u"this").callprop('inheritCoverGrammar', (var.get(u"this").get('parseNewExpression') if var.get(u"this").callprop('matchKeyword', Js('new')) else var.get(u"this").get('parsePrimaryExpression')))))
                    while Js(True):
                        if var.get(u"this").callprop('match', Js('[')):
                            var.get(u"this").get('context').put('isBindingElement', Js(False))
                            var.get(u"this").get('context').put('isAssignmentTarget', Js(True))
                            var.get(u"this").callprop('expect', Js('['))
                            var.put('property', var.get(u"this").callprop('isolateCoverGrammar', var.get(u"this").get('parseExpression')))
                            var.get(u"this").callprop('expect', Js(']'))
                            var.put('expr', var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('ComputedMemberExpression').create(var.get('expr'), var.get('property'))))
                        else:
                            if var.get(u"this").callprop('match', Js('.')):
                                var.get(u"this").get('context').put('isBindingElement', Js(False))
                                var.get(u"this").get('context').put('isAssignmentTarget', Js(True))
                                var.get(u"this").callprop('expect', Js('.'))
                                var.put('property', var.get(u"this").callprop('parseIdentifierName'))
                                var.put('expr', var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('StaticMemberExpression').create(var.get('expr'), var.get('property'))))
                            else:
                                if (PyJsStrictEq(var.get(u"this").get('lookahead').get('type'),Js(10.0)) and var.get(u"this").get('lookahead').get('head')):
                                    var.put('quasi', var.get(u"this").callprop('parseTemplateLiteral'))
                                    var.put('expr', var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('TaggedTemplateExpression').create(var.get('expr'), var.get('quasi'))))
                                else:
                                    break
                    return var.get('expr')
                PyJs_anonymous_270_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseLeftHandSideExpression', PyJs_anonymous_270_)
                @Js
                def PyJs_anonymous_271_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['operator', 'node', 'expr', 'prefix', 'token', 'startToken'])
                    pass
                    var.put('startToken', var.get(u"this").get('lookahead'))
                    if (var.get(u"this").callprop('match', Js('++')) or var.get(u"this").callprop('match', Js('--'))):
                        var.put('node', var.get(u"this").callprop('startNode', var.get('startToken')))
                        var.put('token', var.get(u"this").callprop('nextToken'))
                        var.put('expr', var.get(u"this").callprop('inheritCoverGrammar', var.get(u"this").get('parseUnaryExpression')))
                        if ((var.get(u"this").get('context').get('strict') and PyJsStrictEq(var.get('expr').get('type'),var.get('syntax_1').get('Syntax').get('Identifier'))) and var.get(u"this").get('scanner').callprop('isRestrictedWord', var.get('expr').get('name'))):
                            var.get(u"this").callprop('tolerateError', var.get('messages_1').get('Messages').get('StrictLHSPrefix'))
                        if var.get(u"this").get('context').get('isAssignmentTarget').neg():
                            var.get(u"this").callprop('tolerateError', var.get('messages_1').get('Messages').get('InvalidLHSInAssignment'))
                        var.put('prefix', Js(True))
                        var.put('expr', var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('UpdateExpression').create(var.get('token').get('value'), var.get('expr'), var.get('prefix'))))
                        var.get(u"this").get('context').put('isAssignmentTarget', Js(False))
                        var.get(u"this").get('context').put('isBindingElement', Js(False))
                    else:
                        var.put('expr', var.get(u"this").callprop('inheritCoverGrammar', var.get(u"this").get('parseLeftHandSideExpressionAllowCall')))
                        if (var.get(u"this").get('hasLineTerminator').neg() and PyJsStrictEq(var.get(u"this").get('lookahead').get('type'),Js(7.0))):
                            if (var.get(u"this").callprop('match', Js('++')) or var.get(u"this").callprop('match', Js('--'))):
                                if ((var.get(u"this").get('context').get('strict') and PyJsStrictEq(var.get('expr').get('type'),var.get('syntax_1').get('Syntax').get('Identifier'))) and var.get(u"this").get('scanner').callprop('isRestrictedWord', var.get('expr').get('name'))):
                                    var.get(u"this").callprop('tolerateError', var.get('messages_1').get('Messages').get('StrictLHSPostfix'))
                                if var.get(u"this").get('context').get('isAssignmentTarget').neg():
                                    var.get(u"this").callprop('tolerateError', var.get('messages_1').get('Messages').get('InvalidLHSInAssignment'))
                                var.get(u"this").get('context').put('isAssignmentTarget', Js(False))
                                var.get(u"this").get('context').put('isBindingElement', Js(False))
                                var.put('operator', var.get(u"this").callprop('nextToken').get('value'))
                                var.put('prefix', Js(False))
                                var.put('expr', var.get(u"this").callprop('finalize', var.get(u"this").callprop('startNode', var.get('startToken')), var.get('Node').get('UpdateExpression').create(var.get('operator'), var.get('expr'), var.get('prefix'))))
                    return var.get('expr')
                PyJs_anonymous_271_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseUpdateExpression', PyJs_anonymous_271_)
                @Js
                def PyJs_anonymous_272_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['node', 'argument'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.get(u"this").callprop('nextToken')
                    var.put('argument', var.get(u"this").callprop('parseUnaryExpression'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('AwaitExpression').create(var.get('argument')))
                PyJs_anonymous_272_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseAwaitExpression', PyJs_anonymous_272_)
                @Js
                def PyJs_anonymous_273_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['node', 'token', 'expr'])
                    pass
                    if ((((((var.get(u"this").callprop('match', Js('+')) or var.get(u"this").callprop('match', Js('-'))) or var.get(u"this").callprop('match', Js('~'))) or var.get(u"this").callprop('match', Js('!'))) or var.get(u"this").callprop('matchKeyword', Js('delete'))) or var.get(u"this").callprop('matchKeyword', Js('void'))) or var.get(u"this").callprop('matchKeyword', Js('typeof'))):
                        var.put('node', var.get(u"this").callprop('startNode', var.get(u"this").get('lookahead')))
                        var.put('token', var.get(u"this").callprop('nextToken'))
                        var.put('expr', var.get(u"this").callprop('inheritCoverGrammar', var.get(u"this").get('parseUnaryExpression')))
                        var.put('expr', var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('UnaryExpression').create(var.get('token').get('value'), var.get('expr'))))
                        if ((var.get(u"this").get('context').get('strict') and PyJsStrictEq(var.get('expr').get('operator'),Js('delete'))) and PyJsStrictEq(var.get('expr').get('argument').get('type'),var.get('syntax_1').get('Syntax').get('Identifier'))):
                            var.get(u"this").callprop('tolerateError', var.get('messages_1').get('Messages').get('StrictDelete'))
                        var.get(u"this").get('context').put('isAssignmentTarget', Js(False))
                        var.get(u"this").get('context').put('isBindingElement', Js(False))
                    else:
                        if (var.get(u"this").get('context').get('await') and var.get(u"this").callprop('matchContextualKeyword', Js('await'))):
                            var.put('expr', var.get(u"this").callprop('parseAwaitExpression'))
                        else:
                            var.put('expr', var.get(u"this").callprop('parseUpdateExpression'))
                    return var.get('expr')
                PyJs_anonymous_273_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseUnaryExpression', PyJs_anonymous_273_)
                @Js
                def PyJs_anonymous_274_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['right', 'left', 'expr', 'startToken'])
                    var.put('startToken', var.get(u"this").get('lookahead'))
                    var.put('expr', var.get(u"this").callprop('inheritCoverGrammar', var.get(u"this").get('parseUnaryExpression')))
                    if (PyJsStrictNeq(var.get('expr').get('type'),var.get('syntax_1').get('Syntax').get('UnaryExpression')) and var.get(u"this").callprop('match', Js('**'))):
                        var.get(u"this").callprop('nextToken')
                        var.get(u"this").get('context').put('isAssignmentTarget', Js(False))
                        var.get(u"this").get('context').put('isBindingElement', Js(False))
                        var.put('left', var.get('expr'))
                        var.put('right', var.get(u"this").callprop('isolateCoverGrammar', var.get(u"this").get('parseExponentiationExpression')))
                        var.put('expr', var.get(u"this").callprop('finalize', var.get(u"this").callprop('startNode', var.get('startToken')), var.get('Node').get('BinaryExpression').create(Js('**'), var.get('left'), var.get('right'))))
                    return var.get('expr')
                PyJs_anonymous_274_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseExponentiationExpression', PyJs_anonymous_274_)
                @Js
                def PyJs_anonymous_275_(token, this, arguments, var=var):
                    var = Scope({'token':token, 'this':this, 'arguments':arguments}, var)
                    var.registers(['op', 'token', 'precedence'])
                    var.put('op', var.get('token').get('value'))
                    pass
                    if PyJsStrictEq(var.get('token').get('type'),Js(7.0)):
                        var.put('precedence', (var.get(u"this").get('operatorPrecedence').get(var.get('op')) or Js(0.0)))
                    else:
                        if PyJsStrictEq(var.get('token').get('type'),Js(4.0)):
                            var.put('precedence', (Js(7.0) if (PyJsStrictEq(var.get('op'),Js('instanceof')) or (var.get(u"this").get('context').get('allowIn') and PyJsStrictEq(var.get('op'),Js('in')))) else Js(0.0)))
                        else:
                            var.put('precedence', Js(0.0))
                    return var.get('precedence')
                PyJs_anonymous_275_._set_name('anonymous')
                var.get('Parser').get('prototype').put('binaryPrecedence', PyJs_anonymous_275_)
                @Js
                def PyJs_anonymous_276_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['left', 'right', 'precedences', 'operator', 'node', 'expr', 'lastMarker', 'stack', 'markers', 'lastLineStart', 'marker', 'token', 'prec', 'i', 'startToken'])
                    var.put('startToken', var.get(u"this").get('lookahead'))
                    var.put('expr', var.get(u"this").callprop('inheritCoverGrammar', var.get(u"this").get('parseExponentiationExpression')))
                    var.put('token', var.get(u"this").get('lookahead'))
                    var.put('prec', var.get(u"this").callprop('binaryPrecedence', var.get('token')))
                    if (var.get('prec')>Js(0.0)):
                        var.get(u"this").callprop('nextToken')
                        var.get(u"this").get('context').put('isAssignmentTarget', Js(False))
                        var.get(u"this").get('context').put('isBindingElement', Js(False))
                        var.put('markers', Js([var.get('startToken'), var.get(u"this").get('lookahead')]))
                        var.put('left', var.get('expr'))
                        var.put('right', var.get(u"this").callprop('isolateCoverGrammar', var.get(u"this").get('parseExponentiationExpression')))
                        var.put('stack', Js([var.get('left'), var.get('token').get('value'), var.get('right')]))
                        var.put('precedences', Js([var.get('prec')]))
                        while Js(True):
                            var.put('prec', var.get(u"this").callprop('binaryPrecedence', var.get(u"this").get('lookahead')))
                            if (var.get('prec')<=Js(0.0)):
                                break
                            while ((var.get('stack').get('length')>Js(2.0)) and (var.get('prec')<=var.get('precedences').get((var.get('precedences').get('length')-Js(1.0))))):
                                var.put('right', var.get('stack').callprop('pop'))
                                var.put('operator', var.get('stack').callprop('pop'))
                                var.get('precedences').callprop('pop')
                                var.put('left', var.get('stack').callprop('pop'))
                                var.get('markers').callprop('pop')
                                var.put('node', var.get(u"this").callprop('startNode', var.get('markers').get((var.get('markers').get('length')-Js(1.0)))))
                                var.get('stack').callprop('push', var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('BinaryExpression').create(var.get('operator'), var.get('left'), var.get('right'))))
                            var.get('stack').callprop('push', var.get(u"this").callprop('nextToken').get('value'))
                            var.get('precedences').callprop('push', var.get('prec'))
                            var.get('markers').callprop('push', var.get(u"this").get('lookahead'))
                            var.get('stack').callprop('push', var.get(u"this").callprop('isolateCoverGrammar', var.get(u"this").get('parseExponentiationExpression')))
                        var.put('i', (var.get('stack').get('length')-Js(1.0)))
                        var.put('expr', var.get('stack').get(var.get('i')))
                        var.put('lastMarker', var.get('markers').callprop('pop'))
                        while (var.get('i')>Js(1.0)):
                            var.put('marker', var.get('markers').callprop('pop'))
                            var.put('lastLineStart', (var.get('lastMarker') and var.get('lastMarker').get('lineStart')))
                            var.put('node', var.get(u"this").callprop('startNode', var.get('marker'), var.get('lastLineStart')))
                            var.put('operator', var.get('stack').get((var.get('i')-Js(1.0))))
                            var.put('expr', var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('BinaryExpression').create(var.get('operator'), var.get('stack').get((var.get('i')-Js(2.0))), var.get('expr'))))
                            var.put('i', Js(2.0), '-')
                            var.put('lastMarker', var.get('marker'))
                    return var.get('expr')
                PyJs_anonymous_276_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseBinaryExpression', PyJs_anonymous_276_)
                @Js
                def PyJs_anonymous_277_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['alternate', 'expr', 'consequent', 'previousAllowIn', 'startToken'])
                    var.put('startToken', var.get(u"this").get('lookahead'))
                    var.put('expr', var.get(u"this").callprop('inheritCoverGrammar', var.get(u"this").get('parseBinaryExpression')))
                    if var.get(u"this").callprop('match', Js('?')):
                        var.get(u"this").callprop('nextToken')
                        var.put('previousAllowIn', var.get(u"this").get('context').get('allowIn'))
                        var.get(u"this").get('context').put('allowIn', Js(True))
                        var.put('consequent', var.get(u"this").callprop('isolateCoverGrammar', var.get(u"this").get('parseAssignmentExpression')))
                        var.get(u"this").get('context').put('allowIn', var.get('previousAllowIn'))
                        var.get(u"this").callprop('expect', Js(':'))
                        var.put('alternate', var.get(u"this").callprop('isolateCoverGrammar', var.get(u"this").get('parseAssignmentExpression')))
                        var.put('expr', var.get(u"this").callprop('finalize', var.get(u"this").callprop('startNode', var.get('startToken')), var.get('Node').get('ConditionalExpression').create(var.get('expr'), var.get('consequent'), var.get('alternate'))))
                        var.get(u"this").get('context').put('isAssignmentTarget', Js(False))
                        var.get(u"this").get('context').put('isBindingElement', Js(False))
                    return var.get('expr')
                PyJs_anonymous_277_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseConditionalExpression', PyJs_anonymous_277_)
                @Js
                def PyJs_anonymous_278_(options, param, this, arguments, var=var):
                    var = Scope({'options':options, 'param':param, 'this':this, 'arguments':arguments}, var)
                    var.registers(['options', 'i', 'param'])
                    while 1:
                        SWITCHED = False
                        CONDITION = (var.get('param').get('type'))
                        if SWITCHED or PyJsStrictEq(CONDITION, var.get('syntax_1').get('Syntax').get('Identifier')):
                            SWITCHED = True
                            var.get(u"this").callprop('validateParam', var.get('options'), var.get('param'), var.get('param').get('name'))
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, var.get('syntax_1').get('Syntax').get('RestElement')):
                            SWITCHED = True
                            var.get(u"this").callprop('checkPatternParam', var.get('options'), var.get('param').get('argument'))
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, var.get('syntax_1').get('Syntax').get('AssignmentPattern')):
                            SWITCHED = True
                            var.get(u"this").callprop('checkPatternParam', var.get('options'), var.get('param').get('left'))
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, var.get('syntax_1').get('Syntax').get('ArrayPattern')):
                            SWITCHED = True
                            #for JS loop
                            var.put('i', Js(0.0))
                            while (var.get('i')<var.get('param').get('elements').get('length')):
                                try:
                                    if PyJsStrictNeq(var.get('param').get('elements').get(var.get('i')),var.get(u"null")):
                                        var.get(u"this").callprop('checkPatternParam', var.get('options'), var.get('param').get('elements').get(var.get('i')))
                                finally:
                                        (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, var.get('syntax_1').get('Syntax').get('ObjectPattern')):
                            SWITCHED = True
                            #for JS loop
                            var.put('i', Js(0.0))
                            while (var.get('i')<var.get('param').get('properties').get('length')):
                                try:
                                    var.get(u"this").callprop('checkPatternParam', var.get('options'), var.get('param').get('properties').get(var.get('i')).get('value'))
                                finally:
                                        (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                            break
                        if True:
                            SWITCHED = True
                            break
                        SWITCHED = True
                        break
                    var.get('options').put('simple', (var.get('options').get('simple') and var.get('param').instanceof(var.get('Node').get('Identifier'))))
                PyJs_anonymous_278_._set_name('anonymous')
                var.get('Parser').get('prototype').put('checkPatternParam', PyJs_anonymous_278_)
                @Js
                def PyJs_anonymous_279_(expr, this, arguments, var=var):
                    var = Scope({'expr':expr, 'this':this, 'arguments':arguments}, var)
                    var.registers(['params', 'expr', 'param', 'options', 'token', 'asyncArrow', 'i'])
                    var.put('params', Js([var.get('expr')]))
                    pass
                    var.put('asyncArrow', Js(False))
                    while 1:
                        SWITCHED = False
                        CONDITION = (var.get('expr').get('type'))
                        if SWITCHED or PyJsStrictEq(CONDITION, var.get('syntax_1').get('Syntax').get('Identifier')):
                            SWITCHED = True
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, var.get('ArrowParameterPlaceHolder')):
                            SWITCHED = True
                            var.put('params', var.get('expr').get('params'))
                            var.put('asyncArrow', var.get('expr').get('async'))
                            break
                        if True:
                            SWITCHED = True
                            return var.get(u"null")
                        SWITCHED = True
                        break
                    PyJs_Object_281_ = Js({})
                    PyJs_Object_280_ = Js({'simple':Js(True),'paramSet':PyJs_Object_281_})
                    var.put('options', PyJs_Object_280_)
                    #for JS loop
                    var.put('i', Js(0.0))
                    while (var.get('i')<var.get('params').get('length')):
                        try:
                            var.put('param', var.get('params').get(var.get('i')))
                            if PyJsStrictEq(var.get('param').get('type'),var.get('syntax_1').get('Syntax').get('AssignmentPattern')):
                                if PyJsStrictEq(var.get('param').get('right').get('type'),var.get('syntax_1').get('Syntax').get('YieldExpression')):
                                    if var.get('param').get('right').get('argument'):
                                        var.get(u"this").callprop('throwUnexpectedToken', var.get(u"this").get('lookahead'))
                                    var.get('param').get('right').put('type', var.get('syntax_1').get('Syntax').get('Identifier'))
                                    var.get('param').get('right').put('name', Js('yield'))
                                    var.get('param').get('right').delete('argument')
                                    var.get('param').get('right').delete('delegate')
                            else:
                                if ((var.get('asyncArrow') and PyJsStrictEq(var.get('param').get('type'),var.get('syntax_1').get('Syntax').get('Identifier'))) and PyJsStrictEq(var.get('param').get('name'),Js('await'))):
                                    var.get(u"this").callprop('throwUnexpectedToken', var.get(u"this").get('lookahead'))
                            var.get(u"this").callprop('checkPatternParam', var.get('options'), var.get('param'))
                            var.get('params').put(var.get('i'), var.get('param'))
                        finally:
                                var.put('i',Js(var.get('i').to_number())+Js(1))
                    if (var.get(u"this").get('context').get('strict') or var.get(u"this").get('context').get('allowYield').neg()):
                        #for JS loop
                        var.put('i', Js(0.0))
                        while (var.get('i')<var.get('params').get('length')):
                            try:
                                var.put('param', var.get('params').get(var.get('i')))
                                if PyJsStrictEq(var.get('param').get('type'),var.get('syntax_1').get('Syntax').get('YieldExpression')):
                                    var.get(u"this").callprop('throwUnexpectedToken', var.get(u"this").get('lookahead'))
                            finally:
                                    var.put('i',Js(var.get('i').to_number())+Js(1))
                    if PyJsStrictEq(var.get('options').get('message'),var.get('messages_1').get('Messages').get('StrictParamDupe')):
                        var.put('token', (var.get('options').get('stricted') if var.get(u"this").get('context').get('strict') else var.get('options').get('firstRestricted')))
                        var.get(u"this").callprop('throwUnexpectedToken', var.get('token'), var.get('options').get('message'))
                    PyJs_Object_282_ = Js({'simple':var.get('options').get('simple'),'params':var.get('params'),'stricted':var.get('options').get('stricted'),'firstRestricted':var.get('options').get('firstRestricted'),'message':var.get('options').get('message')})
                    return PyJs_Object_282_
                PyJs_anonymous_279_._set_name('anonymous')
                var.get('Parser').get('prototype').put('reinterpretAsCoverFormalsList', PyJs_anonymous_279_)
                @Js
                def PyJs_anonymous_283_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['previousStrict', 'right', 'operator', 'node', 'body', 'expr', 'expression', 'id', 'previousAllowStrictDirective', 'isAsync', 'list', 'token', 'previousAllowIn', 'previousAwait', 'previousAllowYield', 'arg', 'startToken'])
                    pass
                    if (var.get(u"this").get('context').get('allowYield').neg() and var.get(u"this").callprop('matchKeyword', Js('yield'))):
                        var.put('expr', var.get(u"this").callprop('parseYieldExpression'))
                    else:
                        var.put('startToken', var.get(u"this").get('lookahead'))
                        var.put('token', var.get('startToken'))
                        var.put('expr', var.get(u"this").callprop('parseConditionalExpression'))
                        if ((PyJsStrictEq(var.get('token').get('type'),Js(3.0)) and PyJsStrictEq(var.get('token').get('lineNumber'),var.get(u"this").get('lookahead').get('lineNumber'))) and PyJsStrictEq(var.get('token').get('value'),Js('async'))):
                            if (PyJsStrictEq(var.get(u"this").get('lookahead').get('type'),Js(3.0)) or var.get(u"this").callprop('matchKeyword', Js('yield'))):
                                var.put('arg', var.get(u"this").callprop('parsePrimaryExpression'))
                                var.get(u"this").callprop('reinterpretExpressionAsPattern', var.get('arg'))
                                PyJs_Object_284_ = Js({'type':var.get('ArrowParameterPlaceHolder'),'params':Js([var.get('arg')]),'async':Js(True)})
                                var.put('expr', PyJs_Object_284_)
                        if (PyJsStrictEq(var.get('expr').get('type'),var.get('ArrowParameterPlaceHolder')) or var.get(u"this").callprop('match', Js('=>'))):
                            var.get(u"this").get('context').put('isAssignmentTarget', Js(False))
                            var.get(u"this").get('context').put('isBindingElement', Js(False))
                            var.put('isAsync', var.get('expr').get('async'))
                            var.put('list', var.get(u"this").callprop('reinterpretAsCoverFormalsList', var.get('expr')))
                            if var.get('list'):
                                if var.get(u"this").get('hasLineTerminator'):
                                    var.get(u"this").callprop('tolerateUnexpectedToken', var.get(u"this").get('lookahead'))
                                var.get(u"this").get('context').put('firstCoverInitializedNameError', var.get(u"null"))
                                var.put('previousStrict', var.get(u"this").get('context').get('strict'))
                                var.put('previousAllowStrictDirective', var.get(u"this").get('context').get('allowStrictDirective'))
                                var.get(u"this").get('context').put('allowStrictDirective', var.get('list').get('simple'))
                                var.put('previousAllowYield', var.get(u"this").get('context').get('allowYield'))
                                var.put('previousAwait', var.get(u"this").get('context').get('await'))
                                var.get(u"this").get('context').put('allowYield', Js(True))
                                var.get(u"this").get('context').put('await', var.get('isAsync'))
                                var.put('node', var.get(u"this").callprop('startNode', var.get('startToken')))
                                var.get(u"this").callprop('expect', Js('=>'))
                                var.put('body', PyJsComma(Js(0.0), Js(None)))
                                if var.get(u"this").callprop('match', Js('{')):
                                    var.put('previousAllowIn', var.get(u"this").get('context').get('allowIn'))
                                    var.get(u"this").get('context').put('allowIn', Js(True))
                                    var.put('body', var.get(u"this").callprop('parseFunctionSourceElements'))
                                    var.get(u"this").get('context').put('allowIn', var.get('previousAllowIn'))
                                else:
                                    var.put('body', var.get(u"this").callprop('isolateCoverGrammar', var.get(u"this").get('parseAssignmentExpression')))
                                var.put('expression', PyJsStrictNeq(var.get('body').get('type'),var.get('syntax_1').get('Syntax').get('BlockStatement')))
                                if (var.get(u"this").get('context').get('strict') and var.get('list').get('firstRestricted')):
                                    var.get(u"this").callprop('throwUnexpectedToken', var.get('list').get('firstRestricted'), var.get('list').get('message'))
                                if (var.get(u"this").get('context').get('strict') and var.get('list').get('stricted')):
                                    var.get(u"this").callprop('tolerateUnexpectedToken', var.get('list').get('stricted'), var.get('list').get('message'))
                                def PyJs_LONG_285_(var=var):
                                    return var.put('expr', (var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('AsyncArrowFunctionExpression').create(var.get('list').get('params'), var.get('body'), var.get('expression'))) if var.get('isAsync') else var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('ArrowFunctionExpression').create(var.get('list').get('params'), var.get('body'), var.get('expression')))))
                                PyJs_LONG_285_()
                                var.get(u"this").get('context').put('strict', var.get('previousStrict'))
                                var.get(u"this").get('context').put('allowStrictDirective', var.get('previousAllowStrictDirective'))
                                var.get(u"this").get('context').put('allowYield', var.get('previousAllowYield'))
                                var.get(u"this").get('context').put('await', var.get('previousAwait'))
                        else:
                            if var.get(u"this").callprop('matchAssign'):
                                if var.get(u"this").get('context').get('isAssignmentTarget').neg():
                                    var.get(u"this").callprop('tolerateError', var.get('messages_1').get('Messages').get('InvalidLHSInAssignment'))
                                if (var.get(u"this").get('context').get('strict') and PyJsStrictEq(var.get('expr').get('type'),var.get('syntax_1').get('Syntax').get('Identifier'))):
                                    var.put('id', var.get('expr'))
                                    if var.get(u"this").get('scanner').callprop('isRestrictedWord', var.get('id').get('name')):
                                        var.get(u"this").callprop('tolerateUnexpectedToken', var.get('token'), var.get('messages_1').get('Messages').get('StrictLHSAssignment'))
                                    if var.get(u"this").get('scanner').callprop('isStrictModeReservedWord', var.get('id').get('name')):
                                        var.get(u"this").callprop('tolerateUnexpectedToken', var.get('token'), var.get('messages_1').get('Messages').get('StrictReservedWord'))
                                if var.get(u"this").callprop('match', Js('=')).neg():
                                    var.get(u"this").get('context').put('isAssignmentTarget', Js(False))
                                    var.get(u"this").get('context').put('isBindingElement', Js(False))
                                else:
                                    var.get(u"this").callprop('reinterpretExpressionAsPattern', var.get('expr'))
                                var.put('token', var.get(u"this").callprop('nextToken'))
                                var.put('operator', var.get('token').get('value'))
                                var.put('right', var.get(u"this").callprop('isolateCoverGrammar', var.get(u"this").get('parseAssignmentExpression')))
                                var.put('expr', var.get(u"this").callprop('finalize', var.get(u"this").callprop('startNode', var.get('startToken')), var.get('Node').get('AssignmentExpression').create(var.get('operator'), var.get('expr'), var.get('right'))))
                                var.get(u"this").get('context').put('firstCoverInitializedNameError', var.get(u"null"))
                    return var.get('expr')
                PyJs_anonymous_283_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseAssignmentExpression', PyJs_anonymous_283_)
                @Js
                def PyJs_anonymous_286_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['expressions', 'expr', 'startToken'])
                    var.put('startToken', var.get(u"this").get('lookahead'))
                    var.put('expr', var.get(u"this").callprop('isolateCoverGrammar', var.get(u"this").get('parseAssignmentExpression')))
                    if var.get(u"this").callprop('match', Js(',')):
                        var.put('expressions', Js([]))
                        var.get('expressions').callprop('push', var.get('expr'))
                        while PyJsStrictNeq(var.get(u"this").get('lookahead').get('type'),Js(2.0)):
                            if var.get(u"this").callprop('match', Js(',')).neg():
                                break
                            var.get(u"this").callprop('nextToken')
                            var.get('expressions').callprop('push', var.get(u"this").callprop('isolateCoverGrammar', var.get(u"this").get('parseAssignmentExpression')))
                        var.put('expr', var.get(u"this").callprop('finalize', var.get(u"this").callprop('startNode', var.get('startToken')), var.get('Node').get('SequenceExpression').create(var.get('expressions'))))
                    return var.get('expr')
                PyJs_anonymous_286_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseExpression', PyJs_anonymous_286_)
                @Js
                def PyJs_anonymous_287_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['statement'])
                    pass
                    var.get(u"this").get('context').put('isAssignmentTarget', Js(True))
                    var.get(u"this").get('context').put('isBindingElement', Js(True))
                    if PyJsStrictEq(var.get(u"this").get('lookahead').get('type'),Js(4.0)):
                        while 1:
                            SWITCHED = False
                            CONDITION = (var.get(u"this").get('lookahead').get('value'))
                            if SWITCHED or PyJsStrictEq(CONDITION, Js('export')):
                                SWITCHED = True
                                if var.get(u"this").get('context').get('isModule').neg():
                                    var.get(u"this").callprop('tolerateUnexpectedToken', var.get(u"this").get('lookahead'), var.get('messages_1').get('Messages').get('IllegalExportDeclaration'))
                                var.put('statement', var.get(u"this").callprop('parseExportDeclaration'))
                                break
                            if SWITCHED or PyJsStrictEq(CONDITION, Js('import')):
                                SWITCHED = True
                                if var.get(u"this").get('context').get('isModule').neg():
                                    var.get(u"this").callprop('tolerateUnexpectedToken', var.get(u"this").get('lookahead'), var.get('messages_1').get('Messages').get('IllegalImportDeclaration'))
                                var.put('statement', var.get(u"this").callprop('parseImportDeclaration'))
                                break
                            if SWITCHED or PyJsStrictEq(CONDITION, Js('const')):
                                SWITCHED = True
                                PyJs_Object_288_ = Js({'inFor':Js(False)})
                                var.put('statement', var.get(u"this").callprop('parseLexicalDeclaration', PyJs_Object_288_))
                                break
                            if SWITCHED or PyJsStrictEq(CONDITION, Js('function')):
                                SWITCHED = True
                                var.put('statement', var.get(u"this").callprop('parseFunctionDeclaration'))
                                break
                            if SWITCHED or PyJsStrictEq(CONDITION, Js('class')):
                                SWITCHED = True
                                var.put('statement', var.get(u"this").callprop('parseClassDeclaration'))
                                break
                            if SWITCHED or PyJsStrictEq(CONDITION, Js('let')):
                                SWITCHED = True
                                PyJs_Object_289_ = Js({'inFor':Js(False)})
                                var.put('statement', (var.get(u"this").callprop('parseLexicalDeclaration', PyJs_Object_289_) if var.get(u"this").callprop('isLexicalDeclaration') else var.get(u"this").callprop('parseStatement')))
                                break
                            if True:
                                SWITCHED = True
                                var.put('statement', var.get(u"this").callprop('parseStatement'))
                                break
                            SWITCHED = True
                            break
                    else:
                        var.put('statement', var.get(u"this").callprop('parseStatement'))
                    return var.get('statement')
                PyJs_anonymous_287_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseStatementListItem', PyJs_anonymous_287_)
                @Js
                def PyJs_anonymous_290_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['block', 'node'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.get(u"this").callprop('expect', Js('{'))
                    var.put('block', Js([]))
                    while Js(True):
                        if var.get(u"this").callprop('match', Js('}')):
                            break
                        var.get('block').callprop('push', var.get(u"this").callprop('parseStatementListItem'))
                    var.get(u"this").callprop('expect', Js('}'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('BlockStatement').create(var.get('block')))
                PyJs_anonymous_290_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseBlock', PyJs_anonymous_290_)
                @Js
                def PyJs_anonymous_291_(kind, options, this, arguments, var=var):
                    var = Scope({'kind':kind, 'options':options, 'this':this, 'arguments':arguments}, var)
                    var.registers(['node', 'params', 'kind', 'init', 'options', 'id'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.put('params', Js([]))
                    var.put('id', var.get(u"this").callprop('parsePattern', var.get('params'), var.get('kind')))
                    if (var.get(u"this").get('context').get('strict') and PyJsStrictEq(var.get('id').get('type'),var.get('syntax_1').get('Syntax').get('Identifier'))):
                        if var.get(u"this").get('scanner').callprop('isRestrictedWord', var.get('id').get('name')):
                            var.get(u"this").callprop('tolerateError', var.get('messages_1').get('Messages').get('StrictVarName'))
                    var.put('init', var.get(u"null"))
                    if PyJsStrictEq(var.get('kind'),Js('const')):
                        if (var.get(u"this").callprop('matchKeyword', Js('in')).neg() and var.get(u"this").callprop('matchContextualKeyword', Js('of')).neg()):
                            if var.get(u"this").callprop('match', Js('=')):
                                var.get(u"this").callprop('nextToken')
                                var.put('init', var.get(u"this").callprop('isolateCoverGrammar', var.get(u"this").get('parseAssignmentExpression')))
                            else:
                                var.get(u"this").callprop('throwError', var.get('messages_1').get('Messages').get('DeclarationMissingInitializer'), Js('const'))
                    else:
                        if ((var.get('options').get('inFor').neg() and PyJsStrictNeq(var.get('id').get('type'),var.get('syntax_1').get('Syntax').get('Identifier'))) or var.get(u"this").callprop('match', Js('='))):
                            var.get(u"this").callprop('expect', Js('='))
                            var.put('init', var.get(u"this").callprop('isolateCoverGrammar', var.get(u"this").get('parseAssignmentExpression')))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('VariableDeclarator').create(var.get('id'), var.get('init')))
                PyJs_anonymous_291_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseLexicalBinding', PyJs_anonymous_291_)
                @Js
                def PyJs_anonymous_292_(kind, options, this, arguments, var=var):
                    var = Scope({'kind':kind, 'options':options, 'this':this, 'arguments':arguments}, var)
                    var.registers(['options', 'list', 'kind'])
                    var.put('list', Js([var.get(u"this").callprop('parseLexicalBinding', var.get('kind'), var.get('options'))]))
                    while var.get(u"this").callprop('match', Js(',')):
                        var.get(u"this").callprop('nextToken')
                        var.get('list').callprop('push', var.get(u"this").callprop('parseLexicalBinding', var.get('kind'), var.get('options')))
                    return var.get('list')
                PyJs_anonymous_292_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseBindingList', PyJs_anonymous_292_)
                @Js
                def PyJs_anonymous_293_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['state', 'next'])
                    var.put('state', var.get(u"this").get('scanner').callprop('saveState'))
                    var.get(u"this").get('scanner').callprop('scanComments')
                    var.put('next', var.get(u"this").get('scanner').callprop('lex'))
                    var.get(u"this").get('scanner').callprop('restoreState', var.get('state'))
                    def PyJs_LONG_294_(var=var):
                        return ((((PyJsStrictEq(var.get('next').get('type'),Js(3.0)) or (PyJsStrictEq(var.get('next').get('type'),Js(7.0)) and PyJsStrictEq(var.get('next').get('value'),Js('[')))) or (PyJsStrictEq(var.get('next').get('type'),Js(7.0)) and PyJsStrictEq(var.get('next').get('value'),Js('{')))) or (PyJsStrictEq(var.get('next').get('type'),Js(4.0)) and PyJsStrictEq(var.get('next').get('value'),Js('let')))) or (PyJsStrictEq(var.get('next').get('type'),Js(4.0)) and PyJsStrictEq(var.get('next').get('value'),Js('yield'))))
                    return PyJs_LONG_294_()
                PyJs_anonymous_293_._set_name('anonymous')
                var.get('Parser').get('prototype').put('isLexicalDeclaration', PyJs_anonymous_293_)
                @Js
                def PyJs_anonymous_295_(options, this, arguments, var=var):
                    var = Scope({'options':options, 'this':this, 'arguments':arguments}, var)
                    var.registers(['options', 'declarations', 'node', 'kind'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.put('kind', var.get(u"this").callprop('nextToken').get('value'))
                    var.get('assert_1').callprop('assert', (PyJsStrictEq(var.get('kind'),Js('let')) or PyJsStrictEq(var.get('kind'),Js('const'))), Js('Lexical declaration must be either let or const'))
                    var.put('declarations', var.get(u"this").callprop('parseBindingList', var.get('kind'), var.get('options')))
                    var.get(u"this").callprop('consumeSemicolon')
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('VariableDeclaration').create(var.get('declarations'), var.get('kind')))
                PyJs_anonymous_295_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseLexicalDeclaration', PyJs_anonymous_295_)
                @Js
                def PyJs_anonymous_296_(params, kind, this, arguments, var=var):
                    var = Scope({'params':params, 'kind':kind, 'this':this, 'arguments':arguments}, var)
                    var.registers(['params', 'node', 'arg', 'kind'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.get(u"this").callprop('expect', Js('...'))
                    var.put('arg', var.get(u"this").callprop('parsePattern', var.get('params'), var.get('kind')))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('RestElement').create(var.get('arg')))
                PyJs_anonymous_296_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseBindingRestElement', PyJs_anonymous_296_)
                @Js
                def PyJs_anonymous_297_(params, kind, this, arguments, var=var):
                    var = Scope({'params':params, 'kind':kind, 'this':this, 'arguments':arguments}, var)
                    var.registers(['elements', 'node', 'params', 'kind'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.get(u"this").callprop('expect', Js('['))
                    var.put('elements', Js([]))
                    while var.get(u"this").callprop('match', Js(']')).neg():
                        if var.get(u"this").callprop('match', Js(',')):
                            var.get(u"this").callprop('nextToken')
                            var.get('elements').callprop('push', var.get(u"null"))
                        else:
                            if var.get(u"this").callprop('match', Js('...')):
                                var.get('elements').callprop('push', var.get(u"this").callprop('parseBindingRestElement', var.get('params'), var.get('kind')))
                                break
                            else:
                                var.get('elements').callprop('push', var.get(u"this").callprop('parsePatternWithDefault', var.get('params'), var.get('kind')))
                            if var.get(u"this").callprop('match', Js(']')).neg():
                                var.get(u"this").callprop('expect', Js(','))
                    var.get(u"this").callprop('expect', Js(']'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('ArrayPattern').create(var.get('elements')))
                PyJs_anonymous_297_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseArrayPattern', PyJs_anonymous_297_)
                @Js
                def PyJs_anonymous_298_(params, kind, this, arguments, var=var):
                    var = Scope({'params':params, 'kind':kind, 'this':this, 'arguments':arguments}, var)
                    var.registers(['node', 'params', 'shorthand', 'expr', 'kind', 'init', 'computed', 'key', 'method', 'keyToken', 'value'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.put('computed', Js(False))
                    var.put('shorthand', Js(False))
                    var.put('method', Js(False))
                    pass
                    pass
                    if PyJsStrictEq(var.get(u"this").get('lookahead').get('type'),Js(3.0)):
                        var.put('keyToken', var.get(u"this").get('lookahead'))
                        var.put('key', var.get(u"this").callprop('parseVariableIdentifier'))
                        var.put('init', var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('Identifier').create(var.get('keyToken').get('value'))))
                        if var.get(u"this").callprop('match', Js('=')):
                            var.get('params').callprop('push', var.get('keyToken'))
                            var.put('shorthand', Js(True))
                            var.get(u"this").callprop('nextToken')
                            var.put('expr', var.get(u"this").callprop('parseAssignmentExpression'))
                            var.put('value', var.get(u"this").callprop('finalize', var.get(u"this").callprop('startNode', var.get('keyToken')), var.get('Node').get('AssignmentPattern').create(var.get('init'), var.get('expr'))))
                        else:
                            if var.get(u"this").callprop('match', Js(':')).neg():
                                var.get('params').callprop('push', var.get('keyToken'))
                                var.put('shorthand', Js(True))
                                var.put('value', var.get('init'))
                            else:
                                var.get(u"this").callprop('expect', Js(':'))
                                var.put('value', var.get(u"this").callprop('parsePatternWithDefault', var.get('params'), var.get('kind')))
                    else:
                        var.put('computed', var.get(u"this").callprop('match', Js('[')))
                        var.put('key', var.get(u"this").callprop('parseObjectPropertyKey'))
                        var.get(u"this").callprop('expect', Js(':'))
                        var.put('value', var.get(u"this").callprop('parsePatternWithDefault', var.get('params'), var.get('kind')))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('Property').create(Js('init'), var.get('key'), var.get('computed'), var.get('value'), var.get('method'), var.get('shorthand')))
                PyJs_anonymous_298_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parsePropertyPattern', PyJs_anonymous_298_)
                @Js
                def PyJs_anonymous_299_(params, kind, this, arguments, var=var):
                    var = Scope({'params':params, 'kind':kind, 'this':this, 'arguments':arguments}, var)
                    var.registers(['params', 'node', 'properties', 'kind'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.put('properties', Js([]))
                    var.get(u"this").callprop('expect', Js('{'))
                    while var.get(u"this").callprop('match', Js('}')).neg():
                        var.get('properties').callprop('push', var.get(u"this").callprop('parsePropertyPattern', var.get('params'), var.get('kind')))
                        if var.get(u"this").callprop('match', Js('}')).neg():
                            var.get(u"this").callprop('expect', Js(','))
                    var.get(u"this").callprop('expect', Js('}'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('ObjectPattern').create(var.get('properties')))
                PyJs_anonymous_299_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseObjectPattern', PyJs_anonymous_299_)
                @Js
                def PyJs_anonymous_300_(params, kind, this, arguments, var=var):
                    var = Scope({'params':params, 'kind':kind, 'this':this, 'arguments':arguments}, var)
                    var.registers(['pattern', 'kind', 'params'])
                    pass
                    if var.get(u"this").callprop('match', Js('[')):
                        var.put('pattern', var.get(u"this").callprop('parseArrayPattern', var.get('params'), var.get('kind')))
                    else:
                        if var.get(u"this").callprop('match', Js('{')):
                            var.put('pattern', var.get(u"this").callprop('parseObjectPattern', var.get('params'), var.get('kind')))
                        else:
                            if (var.get(u"this").callprop('matchKeyword', Js('let')) and (PyJsStrictEq(var.get('kind'),Js('const')) or PyJsStrictEq(var.get('kind'),Js('let')))):
                                var.get(u"this").callprop('tolerateUnexpectedToken', var.get(u"this").get('lookahead'), var.get('messages_1').get('Messages').get('LetInLexicalBinding'))
                            var.get('params').callprop('push', var.get(u"this").get('lookahead'))
                            var.put('pattern', var.get(u"this").callprop('parseVariableIdentifier', var.get('kind')))
                    return var.get('pattern')
                PyJs_anonymous_300_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parsePattern', PyJs_anonymous_300_)
                @Js
                def PyJs_anonymous_301_(params, kind, this, arguments, var=var):
                    var = Scope({'params':params, 'kind':kind, 'this':this, 'arguments':arguments}, var)
                    var.registers(['params', 'startToken', 'pattern', 'kind', 'previousAllowYield', 'right'])
                    var.put('startToken', var.get(u"this").get('lookahead'))
                    var.put('pattern', var.get(u"this").callprop('parsePattern', var.get('params'), var.get('kind')))
                    if var.get(u"this").callprop('match', Js('=')):
                        var.get(u"this").callprop('nextToken')
                        var.put('previousAllowYield', var.get(u"this").get('context').get('allowYield'))
                        var.get(u"this").get('context').put('allowYield', Js(True))
                        var.put('right', var.get(u"this").callprop('isolateCoverGrammar', var.get(u"this").get('parseAssignmentExpression')))
                        var.get(u"this").get('context').put('allowYield', var.get('previousAllowYield'))
                        var.put('pattern', var.get(u"this").callprop('finalize', var.get(u"this").callprop('startNode', var.get('startToken')), var.get('Node').get('AssignmentPattern').create(var.get('pattern'), var.get('right'))))
                    return var.get('pattern')
                PyJs_anonymous_301_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parsePatternWithDefault', PyJs_anonymous_301_)
                @Js
                def PyJs_anonymous_302_(kind, this, arguments, var=var):
                    var = Scope({'kind':kind, 'this':this, 'arguments':arguments}, var)
                    var.registers(['node', 'token', 'kind'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.put('token', var.get(u"this").callprop('nextToken'))
                    if (PyJsStrictEq(var.get('token').get('type'),Js(4.0)) and PyJsStrictEq(var.get('token').get('value'),Js('yield'))):
                        if var.get(u"this").get('context').get('strict'):
                            var.get(u"this").callprop('tolerateUnexpectedToken', var.get('token'), var.get('messages_1').get('Messages').get('StrictReservedWord'))
                        else:
                            if var.get(u"this").get('context').get('allowYield').neg():
                                var.get(u"this").callprop('throwUnexpectedToken', var.get('token'))
                    else:
                        if PyJsStrictNeq(var.get('token').get('type'),Js(3.0)):
                            if ((var.get(u"this").get('context').get('strict') and PyJsStrictEq(var.get('token').get('type'),Js(4.0))) and var.get(u"this").get('scanner').callprop('isStrictModeReservedWord', var.get('token').get('value'))):
                                var.get(u"this").callprop('tolerateUnexpectedToken', var.get('token'), var.get('messages_1').get('Messages').get('StrictReservedWord'))
                            else:
                                if ((var.get(u"this").get('context').get('strict') or PyJsStrictNeq(var.get('token').get('value'),Js('let'))) or PyJsStrictNeq(var.get('kind'),Js('var'))):
                                    var.get(u"this").callprop('throwUnexpectedToken', var.get('token'))
                        else:
                            if (((var.get(u"this").get('context').get('isModule') or var.get(u"this").get('context').get('await')) and PyJsStrictEq(var.get('token').get('type'),Js(3.0))) and PyJsStrictEq(var.get('token').get('value'),Js('await'))):
                                var.get(u"this").callprop('tolerateUnexpectedToken', var.get('token'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('Identifier').create(var.get('token').get('value')))
                PyJs_anonymous_302_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseVariableIdentifier', PyJs_anonymous_302_)
                @Js
                def PyJs_anonymous_303_(options, this, arguments, var=var):
                    var = Scope({'options':options, 'this':this, 'arguments':arguments}, var)
                    var.registers(['node', 'params', 'init', 'options', 'id'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.put('params', Js([]))
                    var.put('id', var.get(u"this").callprop('parsePattern', var.get('params'), Js('var')))
                    if (var.get(u"this").get('context').get('strict') and PyJsStrictEq(var.get('id').get('type'),var.get('syntax_1').get('Syntax').get('Identifier'))):
                        if var.get(u"this").get('scanner').callprop('isRestrictedWord', var.get('id').get('name')):
                            var.get(u"this").callprop('tolerateError', var.get('messages_1').get('Messages').get('StrictVarName'))
                    var.put('init', var.get(u"null"))
                    if var.get(u"this").callprop('match', Js('=')):
                        var.get(u"this").callprop('nextToken')
                        var.put('init', var.get(u"this").callprop('isolateCoverGrammar', var.get(u"this").get('parseAssignmentExpression')))
                    else:
                        if (PyJsStrictNeq(var.get('id').get('type'),var.get('syntax_1').get('Syntax').get('Identifier')) and var.get('options').get('inFor').neg()):
                            var.get(u"this").callprop('expect', Js('='))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('VariableDeclarator').create(var.get('id'), var.get('init')))
                PyJs_anonymous_303_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseVariableDeclaration', PyJs_anonymous_303_)
                @Js
                def PyJs_anonymous_304_(options, this, arguments, var=var):
                    var = Scope({'options':options, 'this':this, 'arguments':arguments}, var)
                    var.registers(['options', 'list', 'opt'])
                    PyJs_Object_305_ = Js({'inFor':var.get('options').get('inFor')})
                    var.put('opt', PyJs_Object_305_)
                    var.put('list', Js([]))
                    var.get('list').callprop('push', var.get(u"this").callprop('parseVariableDeclaration', var.get('opt')))
                    while var.get(u"this").callprop('match', Js(',')):
                        var.get(u"this").callprop('nextToken')
                        var.get('list').callprop('push', var.get(u"this").callprop('parseVariableDeclaration', var.get('opt')))
                    return var.get('list')
                PyJs_anonymous_304_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseVariableDeclarationList', PyJs_anonymous_304_)
                @Js
                def PyJs_anonymous_306_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['declarations', 'node'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.get(u"this").callprop('expectKeyword', Js('var'))
                    PyJs_Object_307_ = Js({'inFor':Js(False)})
                    var.put('declarations', var.get(u"this").callprop('parseVariableDeclarationList', PyJs_Object_307_))
                    var.get(u"this").callprop('consumeSemicolon')
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('VariableDeclaration').create(var.get('declarations'), Js('var')))
                PyJs_anonymous_306_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseVariableStatement', PyJs_anonymous_306_)
                @Js
                def PyJs_anonymous_308_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['node'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.get(u"this").callprop('expect', Js(';'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('EmptyStatement').create())
                PyJs_anonymous_308_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseEmptyStatement', PyJs_anonymous_308_)
                @Js
                def PyJs_anonymous_309_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['node', 'expr'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.put('expr', var.get(u"this").callprop('parseExpression'))
                    var.get(u"this").callprop('consumeSemicolon')
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('ExpressionStatement').create(var.get('expr')))
                PyJs_anonymous_309_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseExpressionStatement', PyJs_anonymous_309_)
                @Js
                def PyJs_anonymous_310_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers([])
                    if (var.get(u"this").get('context').get('strict') and var.get(u"this").callprop('matchKeyword', Js('function'))):
                        var.get(u"this").callprop('tolerateError', var.get('messages_1').get('Messages').get('StrictFunction'))
                    return var.get(u"this").callprop('parseStatement')
                PyJs_anonymous_310_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseIfClause', PyJs_anonymous_310_)
                @Js
                def PyJs_anonymous_311_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['alternate', 'consequent', 'test', 'node'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    pass
                    var.put('alternate', var.get(u"null"))
                    var.get(u"this").callprop('expectKeyword', Js('if'))
                    var.get(u"this").callprop('expect', Js('('))
                    var.put('test', var.get(u"this").callprop('parseExpression'))
                    if (var.get(u"this").callprop('match', Js(')')).neg() and var.get(u"this").get('config').get('tolerant')):
                        var.get(u"this").callprop('tolerateUnexpectedToken', var.get(u"this").callprop('nextToken'))
                        var.put('consequent', var.get(u"this").callprop('finalize', var.get(u"this").callprop('createNode'), var.get('Node').get('EmptyStatement').create()))
                    else:
                        var.get(u"this").callprop('expect', Js(')'))
                        var.put('consequent', var.get(u"this").callprop('parseIfClause'))
                        if var.get(u"this").callprop('matchKeyword', Js('else')):
                            var.get(u"this").callprop('nextToken')
                            var.put('alternate', var.get(u"this").callprop('parseIfClause'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('IfStatement').create(var.get('test'), var.get('consequent'), var.get('alternate')))
                PyJs_anonymous_311_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseIfStatement', PyJs_anonymous_311_)
                @Js
                def PyJs_anonymous_312_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['previousInIteration', 'test', 'node', 'body'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.get(u"this").callprop('expectKeyword', Js('do'))
                    var.put('previousInIteration', var.get(u"this").get('context').get('inIteration'))
                    var.get(u"this").get('context').put('inIteration', Js(True))
                    var.put('body', var.get(u"this").callprop('parseStatement'))
                    var.get(u"this").get('context').put('inIteration', var.get('previousInIteration'))
                    var.get(u"this").callprop('expectKeyword', Js('while'))
                    var.get(u"this").callprop('expect', Js('('))
                    var.put('test', var.get(u"this").callprop('parseExpression'))
                    if (var.get(u"this").callprop('match', Js(')')).neg() and var.get(u"this").get('config').get('tolerant')):
                        var.get(u"this").callprop('tolerateUnexpectedToken', var.get(u"this").callprop('nextToken'))
                    else:
                        var.get(u"this").callprop('expect', Js(')'))
                        if var.get(u"this").callprop('match', Js(';')):
                            var.get(u"this").callprop('nextToken')
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('DoWhileStatement').create(var.get('body'), var.get('test')))
                PyJs_anonymous_312_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseDoWhileStatement', PyJs_anonymous_312_)
                @Js
                def PyJs_anonymous_313_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['previousInIteration', 'test', 'node', 'body'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    pass
                    var.get(u"this").callprop('expectKeyword', Js('while'))
                    var.get(u"this").callprop('expect', Js('('))
                    var.put('test', var.get(u"this").callprop('parseExpression'))
                    if (var.get(u"this").callprop('match', Js(')')).neg() and var.get(u"this").get('config').get('tolerant')):
                        var.get(u"this").callprop('tolerateUnexpectedToken', var.get(u"this").callprop('nextToken'))
                        var.put('body', var.get(u"this").callprop('finalize', var.get(u"this").callprop('createNode'), var.get('Node').get('EmptyStatement').create()))
                    else:
                        var.get(u"this").callprop('expect', Js(')'))
                        var.put('previousInIteration', var.get(u"this").get('context').get('inIteration'))
                        var.get(u"this").get('context').put('inIteration', Js(True))
                        var.put('body', var.get(u"this").callprop('parseStatement'))
                        var.get(u"this").get('context').put('inIteration', var.get('previousInIteration'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('WhileStatement').create(var.get('test'), var.get('body')))
                PyJs_anonymous_313_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseWhileStatement', PyJs_anonymous_313_)
                @Js
                def PyJs_anonymous_314_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['left', 'node', 'decl', 'body', 'update', 'test', 'forIn', 'declarations', 'init', 'kind', 'initSeq', 'previousInIteration', 'previousAllowIn', 'initStartToken', 'right'])
                    var.put('init', var.get(u"null"))
                    var.put('test', var.get(u"null"))
                    var.put('update', var.get(u"null"))
                    var.put('forIn', Js(True))
                    pass
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.get(u"this").callprop('expectKeyword', Js('for'))
                    var.get(u"this").callprop('expect', Js('('))
                    if var.get(u"this").callprop('match', Js(';')):
                        var.get(u"this").callprop('nextToken')
                    else:
                        if var.get(u"this").callprop('matchKeyword', Js('var')):
                            var.put('init', var.get(u"this").callprop('createNode'))
                            var.get(u"this").callprop('nextToken')
                            var.put('previousAllowIn', var.get(u"this").get('context').get('allowIn'))
                            var.get(u"this").get('context').put('allowIn', Js(False))
                            PyJs_Object_315_ = Js({'inFor':Js(True)})
                            var.put('declarations', var.get(u"this").callprop('parseVariableDeclarationList', PyJs_Object_315_))
                            var.get(u"this").get('context').put('allowIn', var.get('previousAllowIn'))
                            if (PyJsStrictEq(var.get('declarations').get('length'),Js(1.0)) and var.get(u"this").callprop('matchKeyword', Js('in'))):
                                var.put('decl', var.get('declarations').get('0'))
                                if (var.get('decl').get('init') and ((PyJsStrictEq(var.get('decl').get('id').get('type'),var.get('syntax_1').get('Syntax').get('ArrayPattern')) or PyJsStrictEq(var.get('decl').get('id').get('type'),var.get('syntax_1').get('Syntax').get('ObjectPattern'))) or var.get(u"this").get('context').get('strict'))):
                                    var.get(u"this").callprop('tolerateError', var.get('messages_1').get('Messages').get('ForInOfLoopInitializer'), Js('for-in'))
                                var.put('init', var.get(u"this").callprop('finalize', var.get('init'), var.get('Node').get('VariableDeclaration').create(var.get('declarations'), Js('var'))))
                                var.get(u"this").callprop('nextToken')
                                var.put('left', var.get('init'))
                                var.put('right', var.get(u"this").callprop('parseExpression'))
                                var.put('init', var.get(u"null"))
                            else:
                                if ((PyJsStrictEq(var.get('declarations').get('length'),Js(1.0)) and PyJsStrictEq(var.get('declarations').get('0').get('init'),var.get(u"null"))) and var.get(u"this").callprop('matchContextualKeyword', Js('of'))):
                                    var.put('init', var.get(u"this").callprop('finalize', var.get('init'), var.get('Node').get('VariableDeclaration').create(var.get('declarations'), Js('var'))))
                                    var.get(u"this").callprop('nextToken')
                                    var.put('left', var.get('init'))
                                    var.put('right', var.get(u"this").callprop('parseAssignmentExpression'))
                                    var.put('init', var.get(u"null"))
                                    var.put('forIn', Js(False))
                                else:
                                    var.put('init', var.get(u"this").callprop('finalize', var.get('init'), var.get('Node').get('VariableDeclaration').create(var.get('declarations'), Js('var'))))
                                    var.get(u"this").callprop('expect', Js(';'))
                        else:
                            if (var.get(u"this").callprop('matchKeyword', Js('const')) or var.get(u"this").callprop('matchKeyword', Js('let'))):
                                var.put('init', var.get(u"this").callprop('createNode'))
                                var.put('kind', var.get(u"this").callprop('nextToken').get('value'))
                                if (var.get(u"this").get('context').get('strict').neg() and PyJsStrictEq(var.get(u"this").get('lookahead').get('value'),Js('in'))):
                                    var.put('init', var.get(u"this").callprop('finalize', var.get('init'), var.get('Node').get('Identifier').create(var.get('kind'))))
                                    var.get(u"this").callprop('nextToken')
                                    var.put('left', var.get('init'))
                                    var.put('right', var.get(u"this").callprop('parseExpression'))
                                    var.put('init', var.get(u"null"))
                                else:
                                    var.put('previousAllowIn', var.get(u"this").get('context').get('allowIn'))
                                    var.get(u"this").get('context').put('allowIn', Js(False))
                                    PyJs_Object_316_ = Js({'inFor':Js(True)})
                                    var.put('declarations', var.get(u"this").callprop('parseBindingList', var.get('kind'), PyJs_Object_316_))
                                    var.get(u"this").get('context').put('allowIn', var.get('previousAllowIn'))
                                    if ((PyJsStrictEq(var.get('declarations').get('length'),Js(1.0)) and PyJsStrictEq(var.get('declarations').get('0').get('init'),var.get(u"null"))) and var.get(u"this").callprop('matchKeyword', Js('in'))):
                                        var.put('init', var.get(u"this").callprop('finalize', var.get('init'), var.get('Node').get('VariableDeclaration').create(var.get('declarations'), var.get('kind'))))
                                        var.get(u"this").callprop('nextToken')
                                        var.put('left', var.get('init'))
                                        var.put('right', var.get(u"this").callprop('parseExpression'))
                                        var.put('init', var.get(u"null"))
                                    else:
                                        if ((PyJsStrictEq(var.get('declarations').get('length'),Js(1.0)) and PyJsStrictEq(var.get('declarations').get('0').get('init'),var.get(u"null"))) and var.get(u"this").callprop('matchContextualKeyword', Js('of'))):
                                            var.put('init', var.get(u"this").callprop('finalize', var.get('init'), var.get('Node').get('VariableDeclaration').create(var.get('declarations'), var.get('kind'))))
                                            var.get(u"this").callprop('nextToken')
                                            var.put('left', var.get('init'))
                                            var.put('right', var.get(u"this").callprop('parseAssignmentExpression'))
                                            var.put('init', var.get(u"null"))
                                            var.put('forIn', Js(False))
                                        else:
                                            var.get(u"this").callprop('consumeSemicolon')
                                            var.put('init', var.get(u"this").callprop('finalize', var.get('init'), var.get('Node').get('VariableDeclaration').create(var.get('declarations'), var.get('kind'))))
                            else:
                                var.put('initStartToken', var.get(u"this").get('lookahead'))
                                var.put('previousAllowIn', var.get(u"this").get('context').get('allowIn'))
                                var.get(u"this").get('context').put('allowIn', Js(False))
                                var.put('init', var.get(u"this").callprop('inheritCoverGrammar', var.get(u"this").get('parseAssignmentExpression')))
                                var.get(u"this").get('context').put('allowIn', var.get('previousAllowIn'))
                                if var.get(u"this").callprop('matchKeyword', Js('in')):
                                    if (var.get(u"this").get('context').get('isAssignmentTarget').neg() or PyJsStrictEq(var.get('init').get('type'),var.get('syntax_1').get('Syntax').get('AssignmentExpression'))):
                                        var.get(u"this").callprop('tolerateError', var.get('messages_1').get('Messages').get('InvalidLHSInForIn'))
                                    var.get(u"this").callprop('nextToken')
                                    var.get(u"this").callprop('reinterpretExpressionAsPattern', var.get('init'))
                                    var.put('left', var.get('init'))
                                    var.put('right', var.get(u"this").callprop('parseExpression'))
                                    var.put('init', var.get(u"null"))
                                else:
                                    if var.get(u"this").callprop('matchContextualKeyword', Js('of')):
                                        if (var.get(u"this").get('context').get('isAssignmentTarget').neg() or PyJsStrictEq(var.get('init').get('type'),var.get('syntax_1').get('Syntax').get('AssignmentExpression'))):
                                            var.get(u"this").callprop('tolerateError', var.get('messages_1').get('Messages').get('InvalidLHSInForLoop'))
                                        var.get(u"this").callprop('nextToken')
                                        var.get(u"this").callprop('reinterpretExpressionAsPattern', var.get('init'))
                                        var.put('left', var.get('init'))
                                        var.put('right', var.get(u"this").callprop('parseAssignmentExpression'))
                                        var.put('init', var.get(u"null"))
                                        var.put('forIn', Js(False))
                                    else:
                                        if var.get(u"this").callprop('match', Js(',')):
                                            var.put('initSeq', Js([var.get('init')]))
                                            while var.get(u"this").callprop('match', Js(',')):
                                                var.get(u"this").callprop('nextToken')
                                                var.get('initSeq').callprop('push', var.get(u"this").callprop('isolateCoverGrammar', var.get(u"this").get('parseAssignmentExpression')))
                                            var.put('init', var.get(u"this").callprop('finalize', var.get(u"this").callprop('startNode', var.get('initStartToken')), var.get('Node').get('SequenceExpression').create(var.get('initSeq'))))
                                        var.get(u"this").callprop('expect', Js(';'))
                    if PyJsStrictEq(var.get('left',throw=False).typeof(),Js('undefined')):
                        if var.get(u"this").callprop('match', Js(';')).neg():
                            var.put('test', var.get(u"this").callprop('parseExpression'))
                        var.get(u"this").callprop('expect', Js(';'))
                        if var.get(u"this").callprop('match', Js(')')).neg():
                            var.put('update', var.get(u"this").callprop('parseExpression'))
                    pass
                    if (var.get(u"this").callprop('match', Js(')')).neg() and var.get(u"this").get('config').get('tolerant')):
                        var.get(u"this").callprop('tolerateUnexpectedToken', var.get(u"this").callprop('nextToken'))
                        var.put('body', var.get(u"this").callprop('finalize', var.get(u"this").callprop('createNode'), var.get('Node').get('EmptyStatement').create()))
                    else:
                        var.get(u"this").callprop('expect', Js(')'))
                        var.put('previousInIteration', var.get(u"this").get('context').get('inIteration'))
                        var.get(u"this").get('context').put('inIteration', Js(True))
                        var.put('body', var.get(u"this").callprop('isolateCoverGrammar', var.get(u"this").get('parseStatement')))
                        var.get(u"this").get('context').put('inIteration', var.get('previousInIteration'))
                    def PyJs_LONG_317_(var=var):
                        return (var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('ForStatement').create(var.get('init'), var.get('test'), var.get('update'), var.get('body'))) if PyJsStrictEq(var.get('left',throw=False).typeof(),Js('undefined')) else (var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('ForInStatement').create(var.get('left'), var.get('right'), var.get('body'))) if var.get('forIn') else var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('ForOfStatement').create(var.get('left'), var.get('right'), var.get('body')))))
                    return PyJs_LONG_317_()
                PyJs_anonymous_314_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseForStatement', PyJs_anonymous_314_)
                @Js
                def PyJs_anonymous_318_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['label', 'id', 'node', 'key'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.get(u"this").callprop('expectKeyword', Js('continue'))
                    var.put('label', var.get(u"null"))
                    if (PyJsStrictEq(var.get(u"this").get('lookahead').get('type'),Js(3.0)) and var.get(u"this").get('hasLineTerminator').neg()):
                        var.put('id', var.get(u"this").callprop('parseVariableIdentifier'))
                        var.put('label', var.get('id'))
                        var.put('key', (Js('$')+var.get('id').get('name')))
                        if var.get('Object').get('prototype').get('hasOwnProperty').callprop('call', var.get(u"this").get('context').get('labelSet'), var.get('key')).neg():
                            var.get(u"this").callprop('throwError', var.get('messages_1').get('Messages').get('UnknownLabel'), var.get('id').get('name'))
                    var.get(u"this").callprop('consumeSemicolon')
                    if (PyJsStrictEq(var.get('label'),var.get(u"null")) and var.get(u"this").get('context').get('inIteration').neg()):
                        var.get(u"this").callprop('throwError', var.get('messages_1').get('Messages').get('IllegalContinue'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('ContinueStatement').create(var.get('label')))
                PyJs_anonymous_318_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseContinueStatement', PyJs_anonymous_318_)
                @Js
                def PyJs_anonymous_319_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['label', 'id', 'node', 'key'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.get(u"this").callprop('expectKeyword', Js('break'))
                    var.put('label', var.get(u"null"))
                    if (PyJsStrictEq(var.get(u"this").get('lookahead').get('type'),Js(3.0)) and var.get(u"this").get('hasLineTerminator').neg()):
                        var.put('id', var.get(u"this").callprop('parseVariableIdentifier'))
                        var.put('key', (Js('$')+var.get('id').get('name')))
                        if var.get('Object').get('prototype').get('hasOwnProperty').callprop('call', var.get(u"this").get('context').get('labelSet'), var.get('key')).neg():
                            var.get(u"this").callprop('throwError', var.get('messages_1').get('Messages').get('UnknownLabel'), var.get('id').get('name'))
                        var.put('label', var.get('id'))
                    var.get(u"this").callprop('consumeSemicolon')
                    if ((PyJsStrictEq(var.get('label'),var.get(u"null")) and var.get(u"this").get('context').get('inIteration').neg()) and var.get(u"this").get('context').get('inSwitch').neg()):
                        var.get(u"this").callprop('throwError', var.get('messages_1').get('Messages').get('IllegalBreak'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('BreakStatement').create(var.get('label')))
                PyJs_anonymous_319_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseBreakStatement', PyJs_anonymous_319_)
                @Js
                def PyJs_anonymous_320_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['hasArgument', 'node', 'argument'])
                    if var.get(u"this").get('context').get('inFunctionBody').neg():
                        var.get(u"this").callprop('tolerateError', var.get('messages_1').get('Messages').get('IllegalReturn'))
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.get(u"this").callprop('expectKeyword', Js('return'))
                    var.put('hasArgument', (((((var.get(u"this").callprop('match', Js(';')).neg() and var.get(u"this").callprop('match', Js('}')).neg()) and var.get(u"this").get('hasLineTerminator').neg()) and PyJsStrictNeq(var.get(u"this").get('lookahead').get('type'),Js(2.0))) or PyJsStrictEq(var.get(u"this").get('lookahead').get('type'),Js(8.0))) or PyJsStrictEq(var.get(u"this").get('lookahead').get('type'),Js(10.0))))
                    var.put('argument', (var.get(u"this").callprop('parseExpression') if var.get('hasArgument') else var.get(u"null")))
                    var.get(u"this").callprop('consumeSemicolon')
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('ReturnStatement').create(var.get('argument')))
                PyJs_anonymous_320_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseReturnStatement', PyJs_anonymous_320_)
                @Js
                def PyJs_anonymous_321_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['node', 'body', 'object'])
                    if var.get(u"this").get('context').get('strict'):
                        var.get(u"this").callprop('tolerateError', var.get('messages_1').get('Messages').get('StrictModeWith'))
                    var.put('node', var.get(u"this").callprop('createNode'))
                    pass
                    var.get(u"this").callprop('expectKeyword', Js('with'))
                    var.get(u"this").callprop('expect', Js('('))
                    var.put('object', var.get(u"this").callprop('parseExpression'))
                    if (var.get(u"this").callprop('match', Js(')')).neg() and var.get(u"this").get('config').get('tolerant')):
                        var.get(u"this").callprop('tolerateUnexpectedToken', var.get(u"this").callprop('nextToken'))
                        var.put('body', var.get(u"this").callprop('finalize', var.get(u"this").callprop('createNode'), var.get('Node').get('EmptyStatement').create()))
                    else:
                        var.get(u"this").callprop('expect', Js(')'))
                        var.put('body', var.get(u"this").callprop('parseStatement'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('WithStatement').create(var.get('object'), var.get('body')))
                PyJs_anonymous_321_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseWithStatement', PyJs_anonymous_321_)
                @Js
                def PyJs_anonymous_322_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['consequent', 'test', 'node'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    pass
                    if var.get(u"this").callprop('matchKeyword', Js('default')):
                        var.get(u"this").callprop('nextToken')
                        var.put('test', var.get(u"null"))
                    else:
                        var.get(u"this").callprop('expectKeyword', Js('case'))
                        var.put('test', var.get(u"this").callprop('parseExpression'))
                    var.get(u"this").callprop('expect', Js(':'))
                    var.put('consequent', Js([]))
                    while Js(True):
                        if ((var.get(u"this").callprop('match', Js('}')) or var.get(u"this").callprop('matchKeyword', Js('default'))) or var.get(u"this").callprop('matchKeyword', Js('case'))):
                            break
                        var.get('consequent').callprop('push', var.get(u"this").callprop('parseStatementListItem'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('SwitchCase').create(var.get('test'), var.get('consequent')))
                PyJs_anonymous_322_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseSwitchCase', PyJs_anonymous_322_)
                @Js
                def PyJs_anonymous_323_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['node', 'clause', 'discriminant', 'cases', 'defaultFound', 'previousInSwitch'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.get(u"this").callprop('expectKeyword', Js('switch'))
                    var.get(u"this").callprop('expect', Js('('))
                    var.put('discriminant', var.get(u"this").callprop('parseExpression'))
                    var.get(u"this").callprop('expect', Js(')'))
                    var.put('previousInSwitch', var.get(u"this").get('context').get('inSwitch'))
                    var.get(u"this").get('context').put('inSwitch', Js(True))
                    var.put('cases', Js([]))
                    var.put('defaultFound', Js(False))
                    var.get(u"this").callprop('expect', Js('{'))
                    while Js(True):
                        if var.get(u"this").callprop('match', Js('}')):
                            break
                        var.put('clause', var.get(u"this").callprop('parseSwitchCase'))
                        if PyJsStrictEq(var.get('clause').get('test'),var.get(u"null")):
                            if var.get('defaultFound'):
                                var.get(u"this").callprop('throwError', var.get('messages_1').get('Messages').get('MultipleDefaultsInSwitch'))
                            var.put('defaultFound', Js(True))
                        var.get('cases').callprop('push', var.get('clause'))
                    var.get(u"this").callprop('expect', Js('}'))
                    var.get(u"this").get('context').put('inSwitch', var.get('previousInSwitch'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('SwitchStatement').create(var.get('discriminant'), var.get('cases')))
                PyJs_anonymous_323_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseSwitchStatement', PyJs_anonymous_323_)
                @Js
                def PyJs_anonymous_324_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['node', 'body', 'expr', 'id', 'key', 'token', 'statement', 'declaration'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.put('expr', var.get(u"this").callprop('parseExpression'))
                    pass
                    if (PyJsStrictEq(var.get('expr').get('type'),var.get('syntax_1').get('Syntax').get('Identifier')) and var.get(u"this").callprop('match', Js(':'))):
                        var.get(u"this").callprop('nextToken')
                        var.put('id', var.get('expr'))
                        var.put('key', (Js('$')+var.get('id').get('name')))
                        if var.get('Object').get('prototype').get('hasOwnProperty').callprop('call', var.get(u"this").get('context').get('labelSet'), var.get('key')):
                            var.get(u"this").callprop('throwError', var.get('messages_1').get('Messages').get('Redeclaration'), Js('Label'), var.get('id').get('name'))
                        var.get(u"this").get('context').get('labelSet').put(var.get('key'), Js(True))
                        var.put('body', PyJsComma(Js(0.0), Js(None)))
                        if var.get(u"this").callprop('matchKeyword', Js('class')):
                            var.get(u"this").callprop('tolerateUnexpectedToken', var.get(u"this").get('lookahead'))
                            var.put('body', var.get(u"this").callprop('parseClassDeclaration'))
                        else:
                            if var.get(u"this").callprop('matchKeyword', Js('function')):
                                var.put('token', var.get(u"this").get('lookahead'))
                                var.put('declaration', var.get(u"this").callprop('parseFunctionDeclaration'))
                                if var.get(u"this").get('context').get('strict'):
                                    var.get(u"this").callprop('tolerateUnexpectedToken', var.get('token'), var.get('messages_1').get('Messages').get('StrictFunction'))
                                else:
                                    if var.get('declaration').get('generator'):
                                        var.get(u"this").callprop('tolerateUnexpectedToken', var.get('token'), var.get('messages_1').get('Messages').get('GeneratorInLegacyContext'))
                                var.put('body', var.get('declaration'))
                            else:
                                var.put('body', var.get(u"this").callprop('parseStatement'))
                        var.get(u"this").get('context').get('labelSet').delete(var.get('key'))
                        var.put('statement', var.get('Node').get('LabeledStatement').create(var.get('id'), var.get('body')))
                    else:
                        var.get(u"this").callprop('consumeSemicolon')
                        var.put('statement', var.get('Node').get('ExpressionStatement').create(var.get('expr')))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('statement'))
                PyJs_anonymous_324_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseLabelledStatement', PyJs_anonymous_324_)
                @Js
                def PyJs_anonymous_325_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['node', 'argument'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.get(u"this").callprop('expectKeyword', Js('throw'))
                    if var.get(u"this").get('hasLineTerminator'):
                        var.get(u"this").callprop('throwError', var.get('messages_1').get('Messages').get('NewlineAfterThrow'))
                    var.put('argument', var.get(u"this").callprop('parseExpression'))
                    var.get(u"this").callprop('consumeSemicolon')
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('ThrowStatement').create(var.get('argument')))
                PyJs_anonymous_325_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseThrowStatement', PyJs_anonymous_325_)
                @Js
                def PyJs_anonymous_326_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['node', 'body', 'params', 'param', 'key', 'paramMap', 'i'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.get(u"this").callprop('expectKeyword', Js('catch'))
                    var.get(u"this").callprop('expect', Js('('))
                    if var.get(u"this").callprop('match', Js(')')):
                        var.get(u"this").callprop('throwUnexpectedToken', var.get(u"this").get('lookahead'))
                    var.put('params', Js([]))
                    var.put('param', var.get(u"this").callprop('parsePattern', var.get('params')))
                    PyJs_Object_327_ = Js({})
                    var.put('paramMap', PyJs_Object_327_)
                    #for JS loop
                    var.put('i', Js(0.0))
                    while (var.get('i')<var.get('params').get('length')):
                        try:
                            var.put('key', (Js('$')+var.get('params').get(var.get('i')).get('value')))
                            if var.get('Object').get('prototype').get('hasOwnProperty').callprop('call', var.get('paramMap'), var.get('key')):
                                var.get(u"this").callprop('tolerateError', var.get('messages_1').get('Messages').get('DuplicateBinding'), var.get('params').get(var.get('i')).get('value'))
                            var.get('paramMap').put(var.get('key'), Js(True))
                        finally:
                                (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                    if (var.get(u"this").get('context').get('strict') and PyJsStrictEq(var.get('param').get('type'),var.get('syntax_1').get('Syntax').get('Identifier'))):
                        if var.get(u"this").get('scanner').callprop('isRestrictedWord', var.get('param').get('name')):
                            var.get(u"this").callprop('tolerateError', var.get('messages_1').get('Messages').get('StrictCatchVariable'))
                    var.get(u"this").callprop('expect', Js(')'))
                    var.put('body', var.get(u"this").callprop('parseBlock'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('CatchClause').create(var.get('param'), var.get('body')))
                PyJs_anonymous_326_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseCatchClause', PyJs_anonymous_326_)
                @Js
                def PyJs_anonymous_328_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers([])
                    var.get(u"this").callprop('expectKeyword', Js('finally'))
                    return var.get(u"this").callprop('parseBlock')
                PyJs_anonymous_328_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseFinallyClause', PyJs_anonymous_328_)
                @Js
                def PyJs_anonymous_329_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['block', 'finalizer', 'node', 'handler'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.get(u"this").callprop('expectKeyword', Js('try'))
                    var.put('block', var.get(u"this").callprop('parseBlock'))
                    var.put('handler', (var.get(u"this").callprop('parseCatchClause') if var.get(u"this").callprop('matchKeyword', Js('catch')) else var.get(u"null")))
                    var.put('finalizer', (var.get(u"this").callprop('parseFinallyClause') if var.get(u"this").callprop('matchKeyword', Js('finally')) else var.get(u"null")))
                    if (var.get('handler').neg() and var.get('finalizer').neg()):
                        var.get(u"this").callprop('throwError', var.get('messages_1').get('Messages').get('NoCatchOrFinally'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('TryStatement').create(var.get('block'), var.get('handler'), var.get('finalizer')))
                PyJs_anonymous_329_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseTryStatement', PyJs_anonymous_329_)
                @Js
                def PyJs_anonymous_330_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['node'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.get(u"this").callprop('expectKeyword', Js('debugger'))
                    var.get(u"this").callprop('consumeSemicolon')
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('DebuggerStatement').create())
                PyJs_anonymous_330_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseDebuggerStatement', PyJs_anonymous_330_)
                @Js
                def PyJs_anonymous_331_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['statement', 'value'])
                    pass
                    while 1:
                        SWITCHED = False
                        CONDITION = (var.get(u"this").get('lookahead').get('type'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(1.0)):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(5.0)):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(6.0)):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(8.0)):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(10.0)):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(9.0)):
                            SWITCHED = True
                            var.put('statement', var.get(u"this").callprop('parseExpressionStatement'))
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(7.0)):
                            SWITCHED = True
                            var.put('value', var.get(u"this").get('lookahead').get('value'))
                            if PyJsStrictEq(var.get('value'),Js('{')):
                                var.put('statement', var.get(u"this").callprop('parseBlock'))
                            else:
                                if PyJsStrictEq(var.get('value'),Js('(')):
                                    var.put('statement', var.get(u"this").callprop('parseExpressionStatement'))
                                else:
                                    if PyJsStrictEq(var.get('value'),Js(';')):
                                        var.put('statement', var.get(u"this").callprop('parseEmptyStatement'))
                                    else:
                                        var.put('statement', var.get(u"this").callprop('parseExpressionStatement'))
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(3.0)):
                            SWITCHED = True
                            var.put('statement', (var.get(u"this").callprop('parseFunctionDeclaration') if var.get(u"this").callprop('matchAsyncFunction') else var.get(u"this").callprop('parseLabelledStatement')))
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(4.0)):
                            SWITCHED = True
                            while 1:
                                SWITCHED = False
                                CONDITION = (var.get(u"this").get('lookahead').get('value'))
                                if SWITCHED or PyJsStrictEq(CONDITION, Js('break')):
                                    SWITCHED = True
                                    var.put('statement', var.get(u"this").callprop('parseBreakStatement'))
                                    break
                                if SWITCHED or PyJsStrictEq(CONDITION, Js('continue')):
                                    SWITCHED = True
                                    var.put('statement', var.get(u"this").callprop('parseContinueStatement'))
                                    break
                                if SWITCHED or PyJsStrictEq(CONDITION, Js('debugger')):
                                    SWITCHED = True
                                    var.put('statement', var.get(u"this").callprop('parseDebuggerStatement'))
                                    break
                                if SWITCHED or PyJsStrictEq(CONDITION, Js('do')):
                                    SWITCHED = True
                                    var.put('statement', var.get(u"this").callprop('parseDoWhileStatement'))
                                    break
                                if SWITCHED or PyJsStrictEq(CONDITION, Js('for')):
                                    SWITCHED = True
                                    var.put('statement', var.get(u"this").callprop('parseForStatement'))
                                    break
                                if SWITCHED or PyJsStrictEq(CONDITION, Js('function')):
                                    SWITCHED = True
                                    var.put('statement', var.get(u"this").callprop('parseFunctionDeclaration'))
                                    break
                                if SWITCHED or PyJsStrictEq(CONDITION, Js('if')):
                                    SWITCHED = True
                                    var.put('statement', var.get(u"this").callprop('parseIfStatement'))
                                    break
                                if SWITCHED or PyJsStrictEq(CONDITION, Js('return')):
                                    SWITCHED = True
                                    var.put('statement', var.get(u"this").callprop('parseReturnStatement'))
                                    break
                                if SWITCHED or PyJsStrictEq(CONDITION, Js('switch')):
                                    SWITCHED = True
                                    var.put('statement', var.get(u"this").callprop('parseSwitchStatement'))
                                    break
                                if SWITCHED or PyJsStrictEq(CONDITION, Js('throw')):
                                    SWITCHED = True
                                    var.put('statement', var.get(u"this").callprop('parseThrowStatement'))
                                    break
                                if SWITCHED or PyJsStrictEq(CONDITION, Js('try')):
                                    SWITCHED = True
                                    var.put('statement', var.get(u"this").callprop('parseTryStatement'))
                                    break
                                if SWITCHED or PyJsStrictEq(CONDITION, Js('var')):
                                    SWITCHED = True
                                    var.put('statement', var.get(u"this").callprop('parseVariableStatement'))
                                    break
                                if SWITCHED or PyJsStrictEq(CONDITION, Js('while')):
                                    SWITCHED = True
                                    var.put('statement', var.get(u"this").callprop('parseWhileStatement'))
                                    break
                                if SWITCHED or PyJsStrictEq(CONDITION, Js('with')):
                                    SWITCHED = True
                                    var.put('statement', var.get(u"this").callprop('parseWithStatement'))
                                    break
                                if True:
                                    SWITCHED = True
                                    var.put('statement', var.get(u"this").callprop('parseExpressionStatement'))
                                    break
                                SWITCHED = True
                                break
                            break
                        if True:
                            SWITCHED = True
                            var.put('statement', var.get(u"this").callprop('throwUnexpectedToken', var.get(u"this").get('lookahead')))
                        SWITCHED = True
                        break
                    return var.get('statement')
                PyJs_anonymous_331_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseStatement', PyJs_anonymous_331_)
                @Js
                def PyJs_anonymous_332_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['node', 'body', 'previousLabelSet', 'previousInIteration', 'previousInFunctionBody', 'previousInSwitch'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.get(u"this").callprop('expect', Js('{'))
                    var.put('body', var.get(u"this").callprop('parseDirectivePrologues'))
                    var.put('previousLabelSet', var.get(u"this").get('context').get('labelSet'))
                    var.put('previousInIteration', var.get(u"this").get('context').get('inIteration'))
                    var.put('previousInSwitch', var.get(u"this").get('context').get('inSwitch'))
                    var.put('previousInFunctionBody', var.get(u"this").get('context').get('inFunctionBody'))
                    PyJs_Object_333_ = Js({})
                    var.get(u"this").get('context').put('labelSet', PyJs_Object_333_)
                    var.get(u"this").get('context').put('inIteration', Js(False))
                    var.get(u"this").get('context').put('inSwitch', Js(False))
                    var.get(u"this").get('context').put('inFunctionBody', Js(True))
                    while PyJsStrictNeq(var.get(u"this").get('lookahead').get('type'),Js(2.0)):
                        if var.get(u"this").callprop('match', Js('}')):
                            break
                        var.get('body').callprop('push', var.get(u"this").callprop('parseStatementListItem'))
                    var.get(u"this").callprop('expect', Js('}'))
                    var.get(u"this").get('context').put('labelSet', var.get('previousLabelSet'))
                    var.get(u"this").get('context').put('inIteration', var.get('previousInIteration'))
                    var.get(u"this").get('context').put('inSwitch', var.get('previousInSwitch'))
                    var.get(u"this").get('context').put('inFunctionBody', var.get('previousInFunctionBody'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('BlockStatement').create(var.get('body')))
                PyJs_anonymous_332_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseFunctionSourceElements', PyJs_anonymous_332_)
                @Js
                def PyJs_anonymous_334_(options, param, name, this, arguments, var=var):
                    var = Scope({'options':options, 'param':param, 'name':name, 'this':this, 'arguments':arguments}, var)
                    var.registers(['options', 'name', 'key', 'param'])
                    var.put('key', (Js('$')+var.get('name')))
                    if var.get(u"this").get('context').get('strict'):
                        if var.get(u"this").get('scanner').callprop('isRestrictedWord', var.get('name')):
                            var.get('options').put('stricted', var.get('param'))
                            var.get('options').put('message', var.get('messages_1').get('Messages').get('StrictParamName'))
                        if var.get('Object').get('prototype').get('hasOwnProperty').callprop('call', var.get('options').get('paramSet'), var.get('key')):
                            var.get('options').put('stricted', var.get('param'))
                            var.get('options').put('message', var.get('messages_1').get('Messages').get('StrictParamDupe'))
                    else:
                        if var.get('options').get('firstRestricted').neg():
                            if var.get(u"this").get('scanner').callprop('isRestrictedWord', var.get('name')):
                                var.get('options').put('firstRestricted', var.get('param'))
                                var.get('options').put('message', var.get('messages_1').get('Messages').get('StrictParamName'))
                            else:
                                if var.get(u"this").get('scanner').callprop('isStrictModeReservedWord', var.get('name')):
                                    var.get('options').put('firstRestricted', var.get('param'))
                                    var.get('options').put('message', var.get('messages_1').get('Messages').get('StrictReservedWord'))
                                else:
                                    if var.get('Object').get('prototype').get('hasOwnProperty').callprop('call', var.get('options').get('paramSet'), var.get('key')):
                                        var.get('options').put('stricted', var.get('param'))
                                        var.get('options').put('message', var.get('messages_1').get('Messages').get('StrictParamDupe'))
                    if PyJsStrictEq(var.get('Object').get('defineProperty').typeof(),Js('function')):
                        PyJs_Object_335_ = Js({'value':Js(True),'enumerable':Js(True),'writable':Js(True),'configurable':Js(True)})
                        var.get('Object').callprop('defineProperty', var.get('options').get('paramSet'), var.get('key'), PyJs_Object_335_)
                    else:
                        var.get('options').get('paramSet').put(var.get('key'), Js(True))
                PyJs_anonymous_334_._set_name('anonymous')
                var.get('Parser').get('prototype').put('validateParam', PyJs_anonymous_334_)
                @Js
                def PyJs_anonymous_336_(params, this, arguments, var=var):
                    var = Scope({'params':params, 'this':this, 'arguments':arguments}, var)
                    var.registers(['params', 'node', 'arg'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.get(u"this").callprop('expect', Js('...'))
                    var.put('arg', var.get(u"this").callprop('parsePattern', var.get('params')))
                    if var.get(u"this").callprop('match', Js('=')):
                        var.get(u"this").callprop('throwError', var.get('messages_1').get('Messages').get('DefaultRestParameter'))
                    if var.get(u"this").callprop('match', Js(')')).neg():
                        var.get(u"this").callprop('throwError', var.get('messages_1').get('Messages').get('ParameterAfterRestParameter'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('RestElement').create(var.get('arg')))
                PyJs_anonymous_336_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseRestElement', PyJs_anonymous_336_)
                @Js
                def PyJs_anonymous_337_(options, this, arguments, var=var):
                    var = Scope({'options':options, 'this':this, 'arguments':arguments}, var)
                    var.registers(['options', 'param', 'i', 'params'])
                    var.put('params', Js([]))
                    var.put('param', (var.get(u"this").callprop('parseRestElement', var.get('params')) if var.get(u"this").callprop('match', Js('...')) else var.get(u"this").callprop('parsePatternWithDefault', var.get('params'))))
                    #for JS loop
                    var.put('i', Js(0.0))
                    while (var.get('i')<var.get('params').get('length')):
                        try:
                            var.get(u"this").callprop('validateParam', var.get('options'), var.get('params').get(var.get('i')), var.get('params').get(var.get('i')).get('value'))
                        finally:
                                (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                    var.get('options').put('simple', (var.get('options').get('simple') and var.get('param').instanceof(var.get('Node').get('Identifier'))))
                    var.get('options').get('params').callprop('push', var.get('param'))
                PyJs_anonymous_337_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseFormalParameter', PyJs_anonymous_337_)
                @Js
                def PyJs_anonymous_338_(firstRestricted, this, arguments, var=var):
                    var = Scope({'firstRestricted':firstRestricted, 'this':this, 'arguments':arguments}, var)
                    var.registers(['options', 'firstRestricted'])
                    pass
                    PyJs_Object_339_ = Js({'simple':Js(True),'params':Js([]),'firstRestricted':var.get('firstRestricted')})
                    var.put('options', PyJs_Object_339_)
                    var.get(u"this").callprop('expect', Js('('))
                    if var.get(u"this").callprop('match', Js(')')).neg():
                        PyJs_Object_340_ = Js({})
                        var.get('options').put('paramSet', PyJs_Object_340_)
                        while PyJsStrictNeq(var.get(u"this").get('lookahead').get('type'),Js(2.0)):
                            var.get(u"this").callprop('parseFormalParameter', var.get('options'))
                            if var.get(u"this").callprop('match', Js(')')):
                                break
                            var.get(u"this").callprop('expect', Js(','))
                            if var.get(u"this").callprop('match', Js(')')):
                                break
                    var.get(u"this").callprop('expect', Js(')'))
                    PyJs_Object_341_ = Js({'simple':var.get('options').get('simple'),'params':var.get('options').get('params'),'stricted':var.get('options').get('stricted'),'firstRestricted':var.get('options').get('firstRestricted'),'message':var.get('options').get('message')})
                    return PyJs_Object_341_
                PyJs_anonymous_338_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseFormalParameters', PyJs_anonymous_338_)
                @Js
                def PyJs_anonymous_342_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['state', 'match', 'next'])
                    var.put('match', var.get(u"this").callprop('matchContextualKeyword', Js('async')))
                    if var.get('match'):
                        var.put('state', var.get(u"this").get('scanner').callprop('saveState'))
                        var.get(u"this").get('scanner').callprop('scanComments')
                        var.put('next', var.get(u"this").get('scanner').callprop('lex'))
                        var.get(u"this").get('scanner').callprop('restoreState', var.get('state'))
                        var.put('match', ((PyJsStrictEq(var.get('state').get('lineNumber'),var.get('next').get('lineNumber')) and PyJsStrictEq(var.get('next').get('type'),Js(4.0))) and PyJsStrictEq(var.get('next').get('value'),Js('function'))))
                    return var.get('match')
                PyJs_anonymous_342_._set_name('anonymous')
                var.get('Parser').get('prototype').put('matchAsyncFunction', PyJs_anonymous_342_)
                @Js
                def PyJs_anonymous_343_(identifierIsOptional, this, arguments, var=var):
                    var = Scope({'identifierIsOptional':identifierIsOptional, 'this':this, 'arguments':arguments}, var)
                    var.registers(['formalParameters', 'node', 'body', 'params', 'isGenerator', 'previousAllowStrictDirective', 'previousAllowAwait', 'isAsync', 'identifierIsOptional', 'firstRestricted', 'message', 'token', 'stricted', 'id', 'previousAllowYield', 'previousStrict'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.put('isAsync', var.get(u"this").callprop('matchContextualKeyword', Js('async')))
                    if var.get('isAsync'):
                        var.get(u"this").callprop('nextToken')
                    var.get(u"this").callprop('expectKeyword', Js('function'))
                    var.put('isGenerator', (Js(False) if var.get('isAsync') else var.get(u"this").callprop('match', Js('*'))))
                    if var.get('isGenerator'):
                        var.get(u"this").callprop('nextToken')
                    pass
                    var.put('id', var.get(u"null"))
                    var.put('firstRestricted', var.get(u"null"))
                    if (var.get('identifierIsOptional').neg() or var.get(u"this").callprop('match', Js('(')).neg()):
                        var.put('token', var.get(u"this").get('lookahead'))
                        var.put('id', var.get(u"this").callprop('parseVariableIdentifier'))
                        if var.get(u"this").get('context').get('strict'):
                            if var.get(u"this").get('scanner').callprop('isRestrictedWord', var.get('token').get('value')):
                                var.get(u"this").callprop('tolerateUnexpectedToken', var.get('token'), var.get('messages_1').get('Messages').get('StrictFunctionName'))
                        else:
                            if var.get(u"this").get('scanner').callprop('isRestrictedWord', var.get('token').get('value')):
                                var.put('firstRestricted', var.get('token'))
                                var.put('message', var.get('messages_1').get('Messages').get('StrictFunctionName'))
                            else:
                                if var.get(u"this").get('scanner').callprop('isStrictModeReservedWord', var.get('token').get('value')):
                                    var.put('firstRestricted', var.get('token'))
                                    var.put('message', var.get('messages_1').get('Messages').get('StrictReservedWord'))
                    var.put('previousAllowAwait', var.get(u"this").get('context').get('await'))
                    var.put('previousAllowYield', var.get(u"this").get('context').get('allowYield'))
                    var.get(u"this").get('context').put('await', var.get('isAsync'))
                    var.get(u"this").get('context').put('allowYield', var.get('isGenerator').neg())
                    var.put('formalParameters', var.get(u"this").callprop('parseFormalParameters', var.get('firstRestricted')))
                    var.put('params', var.get('formalParameters').get('params'))
                    var.put('stricted', var.get('formalParameters').get('stricted'))
                    var.put('firstRestricted', var.get('formalParameters').get('firstRestricted'))
                    if var.get('formalParameters').get('message'):
                        var.put('message', var.get('formalParameters').get('message'))
                    var.put('previousStrict', var.get(u"this").get('context').get('strict'))
                    var.put('previousAllowStrictDirective', var.get(u"this").get('context').get('allowStrictDirective'))
                    var.get(u"this").get('context').put('allowStrictDirective', var.get('formalParameters').get('simple'))
                    var.put('body', var.get(u"this").callprop('parseFunctionSourceElements'))
                    if (var.get(u"this").get('context').get('strict') and var.get('firstRestricted')):
                        var.get(u"this").callprop('throwUnexpectedToken', var.get('firstRestricted'), var.get('message'))
                    if (var.get(u"this").get('context').get('strict') and var.get('stricted')):
                        var.get(u"this").callprop('tolerateUnexpectedToken', var.get('stricted'), var.get('message'))
                    var.get(u"this").get('context').put('strict', var.get('previousStrict'))
                    var.get(u"this").get('context').put('allowStrictDirective', var.get('previousAllowStrictDirective'))
                    var.get(u"this").get('context').put('await', var.get('previousAllowAwait'))
                    var.get(u"this").get('context').put('allowYield', var.get('previousAllowYield'))
                    return (var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('AsyncFunctionDeclaration').create(var.get('id'), var.get('params'), var.get('body'))) if var.get('isAsync') else var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('FunctionDeclaration').create(var.get('id'), var.get('params'), var.get('body'), var.get('isGenerator'))))
                PyJs_anonymous_343_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseFunctionDeclaration', PyJs_anonymous_343_)
                @Js
                def PyJs_anonymous_344_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['formalParameters', 'node', 'body', 'params', 'isGenerator', 'previousAllowStrictDirective', 'previousAllowAwait', 'isAsync', 'firstRestricted', 'message', 'token', 'stricted', 'id', 'previousAllowYield', 'previousStrict'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.put('isAsync', var.get(u"this").callprop('matchContextualKeyword', Js('async')))
                    if var.get('isAsync'):
                        var.get(u"this").callprop('nextToken')
                    var.get(u"this").callprop('expectKeyword', Js('function'))
                    var.put('isGenerator', (Js(False) if var.get('isAsync') else var.get(u"this").callprop('match', Js('*'))))
                    if var.get('isGenerator'):
                        var.get(u"this").callprop('nextToken')
                    pass
                    var.put('id', var.get(u"null"))
                    pass
                    var.put('previousAllowAwait', var.get(u"this").get('context').get('await'))
                    var.put('previousAllowYield', var.get(u"this").get('context').get('allowYield'))
                    var.get(u"this").get('context').put('await', var.get('isAsync'))
                    var.get(u"this").get('context').put('allowYield', var.get('isGenerator').neg())
                    if var.get(u"this").callprop('match', Js('(')).neg():
                        var.put('token', var.get(u"this").get('lookahead'))
                        var.put('id', (var.get(u"this").callprop('parseIdentifierName') if ((var.get(u"this").get('context').get('strict').neg() and var.get('isGenerator').neg()) and var.get(u"this").callprop('matchKeyword', Js('yield'))) else var.get(u"this").callprop('parseVariableIdentifier')))
                        if var.get(u"this").get('context').get('strict'):
                            if var.get(u"this").get('scanner').callprop('isRestrictedWord', var.get('token').get('value')):
                                var.get(u"this").callprop('tolerateUnexpectedToken', var.get('token'), var.get('messages_1').get('Messages').get('StrictFunctionName'))
                        else:
                            if var.get(u"this").get('scanner').callprop('isRestrictedWord', var.get('token').get('value')):
                                var.put('firstRestricted', var.get('token'))
                                var.put('message', var.get('messages_1').get('Messages').get('StrictFunctionName'))
                            else:
                                if var.get(u"this").get('scanner').callprop('isStrictModeReservedWord', var.get('token').get('value')):
                                    var.put('firstRestricted', var.get('token'))
                                    var.put('message', var.get('messages_1').get('Messages').get('StrictReservedWord'))
                    var.put('formalParameters', var.get(u"this").callprop('parseFormalParameters', var.get('firstRestricted')))
                    var.put('params', var.get('formalParameters').get('params'))
                    var.put('stricted', var.get('formalParameters').get('stricted'))
                    var.put('firstRestricted', var.get('formalParameters').get('firstRestricted'))
                    if var.get('formalParameters').get('message'):
                        var.put('message', var.get('formalParameters').get('message'))
                    var.put('previousStrict', var.get(u"this").get('context').get('strict'))
                    var.put('previousAllowStrictDirective', var.get(u"this").get('context').get('allowStrictDirective'))
                    var.get(u"this").get('context').put('allowStrictDirective', var.get('formalParameters').get('simple'))
                    var.put('body', var.get(u"this").callprop('parseFunctionSourceElements'))
                    if (var.get(u"this").get('context').get('strict') and var.get('firstRestricted')):
                        var.get(u"this").callprop('throwUnexpectedToken', var.get('firstRestricted'), var.get('message'))
                    if (var.get(u"this").get('context').get('strict') and var.get('stricted')):
                        var.get(u"this").callprop('tolerateUnexpectedToken', var.get('stricted'), var.get('message'))
                    var.get(u"this").get('context').put('strict', var.get('previousStrict'))
                    var.get(u"this").get('context').put('allowStrictDirective', var.get('previousAllowStrictDirective'))
                    var.get(u"this").get('context').put('await', var.get('previousAllowAwait'))
                    var.get(u"this").get('context').put('allowYield', var.get('previousAllowYield'))
                    return (var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('AsyncFunctionExpression').create(var.get('id'), var.get('params'), var.get('body'))) if var.get('isAsync') else var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('FunctionExpression').create(var.get('id'), var.get('params'), var.get('body'), var.get('isGenerator'))))
                PyJs_anonymous_344_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseFunctionExpression', PyJs_anonymous_344_)
                @Js
                def PyJs_anonymous_345_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['directive', 'node', 'token', 'expr'])
                    var.put('token', var.get(u"this").get('lookahead'))
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.put('expr', var.get(u"this").callprop('parseExpression'))
                    var.put('directive', (var.get(u"this").callprop('getTokenRaw', var.get('token')).callprop('slice', Js(1.0), (-Js(1.0))) if PyJsStrictEq(var.get('expr').get('type'),var.get('syntax_1').get('Syntax').get('Literal')) else var.get(u"null")))
                    var.get(u"this").callprop('consumeSemicolon')
                    return var.get(u"this").callprop('finalize', var.get('node'), (var.get('Node').get('Directive').create(var.get('expr'), var.get('directive')) if var.get('directive') else var.get('Node').get('ExpressionStatement').create(var.get('expr'))))
                PyJs_anonymous_345_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseDirective', PyJs_anonymous_345_)
                @Js
                def PyJs_anonymous_346_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['body', 'firstRestricted', 'token', 'directive', 'statement'])
                    var.put('firstRestricted', var.get(u"null"))
                    var.put('body', Js([]))
                    while Js(True):
                        var.put('token', var.get(u"this").get('lookahead'))
                        if PyJsStrictNeq(var.get('token').get('type'),Js(8.0)):
                            break
                        var.put('statement', var.get(u"this").callprop('parseDirective'))
                        var.get('body').callprop('push', var.get('statement'))
                        var.put('directive', var.get('statement').get('directive'))
                        if PyJsStrictNeq(var.get('directive',throw=False).typeof(),Js('string')):
                            break
                        if PyJsStrictEq(var.get('directive'),Js('use strict')):
                            var.get(u"this").get('context').put('strict', Js(True))
                            if var.get('firstRestricted'):
                                var.get(u"this").callprop('tolerateUnexpectedToken', var.get('firstRestricted'), var.get('messages_1').get('Messages').get('StrictOctalLiteral'))
                            if var.get(u"this").get('context').get('allowStrictDirective').neg():
                                var.get(u"this").callprop('tolerateUnexpectedToken', var.get('token'), var.get('messages_1').get('Messages').get('IllegalLanguageModeDirective'))
                        else:
                            if (var.get('firstRestricted').neg() and var.get('token').get('octal')):
                                var.put('firstRestricted', var.get('token'))
                    return var.get('body')
                PyJs_anonymous_346_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseDirectivePrologues', PyJs_anonymous_346_)
                @Js
                def PyJs_anonymous_347_(token, this, arguments, var=var):
                    var = Scope({'token':token, 'this':this, 'arguments':arguments}, var)
                    var.registers(['token'])
                    while 1:
                        SWITCHED = False
                        CONDITION = (var.get('token').get('type'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(3.0)):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(8.0)):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(1.0)):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(5.0)):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(6.0)):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(4.0)):
                            SWITCHED = True
                            return Js(True)
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(7.0)):
                            SWITCHED = True
                            return PyJsStrictEq(var.get('token').get('value'),Js('['))
                        if True:
                            SWITCHED = True
                            break
                        SWITCHED = True
                        break
                    return Js(False)
                PyJs_anonymous_347_._set_name('anonymous')
                var.get('Parser').get('prototype').put('qualifiedPropertyName', PyJs_anonymous_347_)
                @Js
                def PyJs_anonymous_348_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['formalParameters', 'node', 'isGenerator', 'method', 'previousAllowYield'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.put('isGenerator', Js(False))
                    var.put('previousAllowYield', var.get(u"this").get('context').get('allowYield'))
                    var.get(u"this").get('context').put('allowYield', var.get('isGenerator').neg())
                    var.put('formalParameters', var.get(u"this").callprop('parseFormalParameters'))
                    if (var.get('formalParameters').get('params').get('length')>Js(0.0)):
                        var.get(u"this").callprop('tolerateError', var.get('messages_1').get('Messages').get('BadGetterArity'))
                    var.put('method', var.get(u"this").callprop('parsePropertyMethod', var.get('formalParameters')))
                    var.get(u"this").get('context').put('allowYield', var.get('previousAllowYield'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('FunctionExpression').create(var.get(u"null"), var.get('formalParameters').get('params'), var.get('method'), var.get('isGenerator')))
                PyJs_anonymous_348_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseGetterMethod', PyJs_anonymous_348_)
                @Js
                def PyJs_anonymous_349_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['formalParameters', 'node', 'isGenerator', 'method', 'previousAllowYield'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.put('isGenerator', Js(False))
                    var.put('previousAllowYield', var.get(u"this").get('context').get('allowYield'))
                    var.get(u"this").get('context').put('allowYield', var.get('isGenerator').neg())
                    var.put('formalParameters', var.get(u"this").callprop('parseFormalParameters'))
                    if PyJsStrictNeq(var.get('formalParameters').get('params').get('length'),Js(1.0)):
                        var.get(u"this").callprop('tolerateError', var.get('messages_1').get('Messages').get('BadSetterArity'))
                    else:
                        if var.get('formalParameters').get('params').get('0').instanceof(var.get('Node').get('RestElement')):
                            var.get(u"this").callprop('tolerateError', var.get('messages_1').get('Messages').get('BadSetterRestParameter'))
                    var.put('method', var.get(u"this").callprop('parsePropertyMethod', var.get('formalParameters')))
                    var.get(u"this").get('context').put('allowYield', var.get('previousAllowYield'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('FunctionExpression').create(var.get(u"null"), var.get('formalParameters').get('params'), var.get('method'), var.get('isGenerator')))
                PyJs_anonymous_349_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseSetterMethod', PyJs_anonymous_349_)
                @Js
                def PyJs_anonymous_350_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['node', 'params', 'isGenerator', 'method', 'previousAllowYield'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.put('isGenerator', Js(True))
                    var.put('previousAllowYield', var.get(u"this").get('context').get('allowYield'))
                    var.get(u"this").get('context').put('allowYield', Js(True))
                    var.put('params', var.get(u"this").callprop('parseFormalParameters'))
                    var.get(u"this").get('context').put('allowYield', Js(False))
                    var.put('method', var.get(u"this").callprop('parsePropertyMethod', var.get('params')))
                    var.get(u"this").get('context').put('allowYield', var.get('previousAllowYield'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('FunctionExpression').create(var.get(u"null"), var.get('params').get('params'), var.get('method'), var.get('isGenerator')))
                PyJs_anonymous_350_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseGeneratorMethod', PyJs_anonymous_350_)
                @Js
                def PyJs_anonymous_351_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['start', 'value'])
                    var.put('start', Js(True))
                    var.put('value', var.get(u"this").get('lookahead').get('value'))
                    while 1:
                        SWITCHED = False
                        CONDITION = (var.get(u"this").get('lookahead').get('type'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(7.0)):
                            SWITCHED = True
                            def PyJs_LONG_352_(var=var):
                                return (((((((((PyJsStrictEq(var.get('value'),Js('[')) or PyJsStrictEq(var.get('value'),Js('('))) or PyJsStrictEq(var.get('value'),Js('{'))) or PyJsStrictEq(var.get('value'),Js('+'))) or PyJsStrictEq(var.get('value'),Js('-'))) or PyJsStrictEq(var.get('value'),Js('!'))) or PyJsStrictEq(var.get('value'),Js('~'))) or PyJsStrictEq(var.get('value'),Js('++'))) or PyJsStrictEq(var.get('value'),Js('--'))) or PyJsStrictEq(var.get('value'),Js('/')))
                            var.put('start', (PyJs_LONG_352_() or PyJsStrictEq(var.get('value'),Js('/='))))
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(4.0)):
                            SWITCHED = True
                            def PyJs_LONG_353_(var=var):
                                return ((((((((PyJsStrictEq(var.get('value'),Js('class')) or PyJsStrictEq(var.get('value'),Js('delete'))) or PyJsStrictEq(var.get('value'),Js('function'))) or PyJsStrictEq(var.get('value'),Js('let'))) or PyJsStrictEq(var.get('value'),Js('new'))) or PyJsStrictEq(var.get('value'),Js('super'))) or PyJsStrictEq(var.get('value'),Js('this'))) or PyJsStrictEq(var.get('value'),Js('typeof'))) or PyJsStrictEq(var.get('value'),Js('void')))
                            var.put('start', (PyJs_LONG_353_() or PyJsStrictEq(var.get('value'),Js('yield'))))
                            break
                        if True:
                            SWITCHED = True
                            break
                        SWITCHED = True
                        break
                    return var.get('start')
                PyJs_anonymous_351_._set_name('anonymous')
                var.get('Parser').get('prototype').put('isStartOfExpression', PyJs_anonymous_351_)
                @Js
                def PyJs_anonymous_354_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['previousAllowYield', 'node', 'argument', 'delegate'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.get(u"this").callprop('expectKeyword', Js('yield'))
                    var.put('argument', var.get(u"null"))
                    var.put('delegate', Js(False))
                    if var.get(u"this").get('hasLineTerminator').neg():
                        var.put('previousAllowYield', var.get(u"this").get('context').get('allowYield'))
                        var.get(u"this").get('context').put('allowYield', Js(False))
                        var.put('delegate', var.get(u"this").callprop('match', Js('*')))
                        if var.get('delegate'):
                            var.get(u"this").callprop('nextToken')
                            var.put('argument', var.get(u"this").callprop('parseAssignmentExpression'))
                        else:
                            if var.get(u"this").callprop('isStartOfExpression'):
                                var.put('argument', var.get(u"this").callprop('parseAssignmentExpression'))
                        var.get(u"this").get('context').put('allowYield', var.get('previousAllowYield'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('YieldExpression').create(var.get('argument'), var.get('delegate')))
                PyJs_anonymous_354_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseYieldExpression', PyJs_anonymous_354_)
                @Js
                def PyJs_anonymous_355_(hasConstructor, this, arguments, var=var):
                    var = Scope({'hasConstructor':hasConstructor, 'this':this, 'arguments':arguments}, var)
                    var.registers(['hasConstructor', 'node', 'kind', 'isStatic', 'computed', 'lookaheadPropertyKey', 'isAsync', 'key', 'token', 'method', 'id', 'value', 'punctuator'])
                    var.put('token', var.get(u"this").get('lookahead'))
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.put('kind', Js(''))
                    var.put('key', var.get(u"null"))
                    var.put('value', var.get(u"null"))
                    var.put('computed', Js(False))
                    var.put('method', Js(False))
                    var.put('isStatic', Js(False))
                    var.put('isAsync', Js(False))
                    if var.get(u"this").callprop('match', Js('*')):
                        var.get(u"this").callprop('nextToken')
                    else:
                        var.put('computed', var.get(u"this").callprop('match', Js('[')))
                        var.put('key', var.get(u"this").callprop('parseObjectPropertyKey'))
                        var.put('id', var.get('key'))
                        if (PyJsStrictEq(var.get('id').get('name'),Js('static')) and (var.get(u"this").callprop('qualifiedPropertyName', var.get(u"this").get('lookahead')) or var.get(u"this").callprop('match', Js('*')))):
                            var.put('token', var.get(u"this").get('lookahead'))
                            var.put('isStatic', Js(True))
                            var.put('computed', var.get(u"this").callprop('match', Js('[')))
                            if var.get(u"this").callprop('match', Js('*')):
                                var.get(u"this").callprop('nextToken')
                            else:
                                var.put('key', var.get(u"this").callprop('parseObjectPropertyKey'))
                        if ((PyJsStrictEq(var.get('token').get('type'),Js(3.0)) and var.get(u"this").get('hasLineTerminator').neg()) and PyJsStrictEq(var.get('token').get('value'),Js('async'))):
                            var.put('punctuator', var.get(u"this").get('lookahead').get('value'))
                            if ((PyJsStrictNeq(var.get('punctuator'),Js(':')) and PyJsStrictNeq(var.get('punctuator'),Js('('))) and PyJsStrictNeq(var.get('punctuator'),Js('*'))):
                                var.put('isAsync', Js(True))
                                var.put('token', var.get(u"this").get('lookahead'))
                                var.put('key', var.get(u"this").callprop('parseObjectPropertyKey'))
                                if (PyJsStrictEq(var.get('token').get('type'),Js(3.0)) and PyJsStrictEq(var.get('token').get('value'),Js('constructor'))):
                                    var.get(u"this").callprop('tolerateUnexpectedToken', var.get('token'), var.get('messages_1').get('Messages').get('ConstructorIsAsync'))
                    var.put('lookaheadPropertyKey', var.get(u"this").callprop('qualifiedPropertyName', var.get(u"this").get('lookahead')))
                    if PyJsStrictEq(var.get('token').get('type'),Js(3.0)):
                        if (PyJsStrictEq(var.get('token').get('value'),Js('get')) and var.get('lookaheadPropertyKey')):
                            var.put('kind', Js('get'))
                            var.put('computed', var.get(u"this").callprop('match', Js('[')))
                            var.put('key', var.get(u"this").callprop('parseObjectPropertyKey'))
                            var.get(u"this").get('context').put('allowYield', Js(False))
                            var.put('value', var.get(u"this").callprop('parseGetterMethod'))
                        else:
                            if (PyJsStrictEq(var.get('token').get('value'),Js('set')) and var.get('lookaheadPropertyKey')):
                                var.put('kind', Js('set'))
                                var.put('computed', var.get(u"this").callprop('match', Js('[')))
                                var.put('key', var.get(u"this").callprop('parseObjectPropertyKey'))
                                var.put('value', var.get(u"this").callprop('parseSetterMethod'))
                    else:
                        if ((PyJsStrictEq(var.get('token').get('type'),Js(7.0)) and PyJsStrictEq(var.get('token').get('value'),Js('*'))) and var.get('lookaheadPropertyKey')):
                            var.put('kind', Js('init'))
                            var.put('computed', var.get(u"this").callprop('match', Js('[')))
                            var.put('key', var.get(u"this").callprop('parseObjectPropertyKey'))
                            var.put('value', var.get(u"this").callprop('parseGeneratorMethod'))
                            var.put('method', Js(True))
                    if ((var.get('kind').neg() and var.get('key')) and var.get(u"this").callprop('match', Js('('))):
                        var.put('kind', Js('init'))
                        var.put('value', (var.get(u"this").callprop('parsePropertyMethodAsyncFunction') if var.get('isAsync') else var.get(u"this").callprop('parsePropertyMethodFunction')))
                        var.put('method', Js(True))
                    if var.get('kind').neg():
                        var.get(u"this").callprop('throwUnexpectedToken', var.get(u"this").get('lookahead'))
                    if PyJsStrictEq(var.get('kind'),Js('init')):
                        var.put('kind', Js('method'))
                    if var.get('computed').neg():
                        if (var.get('isStatic') and var.get(u"this").callprop('isPropertyKey', var.get('key'), Js('prototype'))):
                            var.get(u"this").callprop('throwUnexpectedToken', var.get('token'), var.get('messages_1').get('Messages').get('StaticPrototype'))
                        if (var.get('isStatic').neg() and var.get(u"this").callprop('isPropertyKey', var.get('key'), Js('constructor'))):
                            if ((PyJsStrictNeq(var.get('kind'),Js('method')) or var.get('method').neg()) or (var.get('value') and var.get('value').get('generator'))):
                                var.get(u"this").callprop('throwUnexpectedToken', var.get('token'), var.get('messages_1').get('Messages').get('ConstructorSpecialMethod'))
                            if var.get('hasConstructor').get('value'):
                                var.get(u"this").callprop('throwUnexpectedToken', var.get('token'), var.get('messages_1').get('Messages').get('DuplicateConstructor'))
                            else:
                                var.get('hasConstructor').put('value', Js(True))
                            var.put('kind', Js('constructor'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('MethodDefinition').create(var.get('key'), var.get('computed'), var.get('value'), var.get('kind'), var.get('isStatic')))
                PyJs_anonymous_355_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseClassElement', PyJs_anonymous_355_)
                @Js
                def PyJs_anonymous_356_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['hasConstructor', 'body'])
                    var.put('body', Js([]))
                    PyJs_Object_357_ = Js({'value':Js(False)})
                    var.put('hasConstructor', PyJs_Object_357_)
                    var.get(u"this").callprop('expect', Js('{'))
                    while var.get(u"this").callprop('match', Js('}')).neg():
                        if var.get(u"this").callprop('match', Js(';')):
                            var.get(u"this").callprop('nextToken')
                        else:
                            var.get('body').callprop('push', var.get(u"this").callprop('parseClassElement', var.get('hasConstructor')))
                    var.get(u"this").callprop('expect', Js('}'))
                    return var.get('body')
                PyJs_anonymous_356_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseClassElementList', PyJs_anonymous_356_)
                @Js
                def PyJs_anonymous_358_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['elementList', 'node'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.put('elementList', var.get(u"this").callprop('parseClassElementList'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('ClassBody').create(var.get('elementList')))
                PyJs_anonymous_358_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseClassBody', PyJs_anonymous_358_)
                @Js
                def PyJs_anonymous_359_(identifierIsOptional, this, arguments, var=var):
                    var = Scope({'identifierIsOptional':identifierIsOptional, 'this':this, 'arguments':arguments}, var)
                    var.registers(['classBody', 'node', 'identifierIsOptional', 'id', 'superClass', 'previousStrict'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.put('previousStrict', var.get(u"this").get('context').get('strict'))
                    var.get(u"this").get('context').put('strict', Js(True))
                    var.get(u"this").callprop('expectKeyword', Js('class'))
                    var.put('id', (var.get(u"null") if (var.get('identifierIsOptional') and PyJsStrictNeq(var.get(u"this").get('lookahead').get('type'),Js(3.0))) else var.get(u"this").callprop('parseVariableIdentifier')))
                    var.put('superClass', var.get(u"null"))
                    if var.get(u"this").callprop('matchKeyword', Js('extends')):
                        var.get(u"this").callprop('nextToken')
                        var.put('superClass', var.get(u"this").callprop('isolateCoverGrammar', var.get(u"this").get('parseLeftHandSideExpressionAllowCall')))
                    var.put('classBody', var.get(u"this").callprop('parseClassBody'))
                    var.get(u"this").get('context').put('strict', var.get('previousStrict'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('ClassDeclaration').create(var.get('id'), var.get('superClass'), var.get('classBody')))
                PyJs_anonymous_359_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseClassDeclaration', PyJs_anonymous_359_)
                @Js
                def PyJs_anonymous_360_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['classBody', 'node', 'id', 'superClass', 'previousStrict'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.put('previousStrict', var.get(u"this").get('context').get('strict'))
                    var.get(u"this").get('context').put('strict', Js(True))
                    var.get(u"this").callprop('expectKeyword', Js('class'))
                    var.put('id', (var.get(u"this").callprop('parseVariableIdentifier') if PyJsStrictEq(var.get(u"this").get('lookahead').get('type'),Js(3.0)) else var.get(u"null")))
                    var.put('superClass', var.get(u"null"))
                    if var.get(u"this").callprop('matchKeyword', Js('extends')):
                        var.get(u"this").callprop('nextToken')
                        var.put('superClass', var.get(u"this").callprop('isolateCoverGrammar', var.get(u"this").get('parseLeftHandSideExpressionAllowCall')))
                    var.put('classBody', var.get(u"this").callprop('parseClassBody'))
                    var.get(u"this").get('context').put('strict', var.get('previousStrict'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('ClassExpression').create(var.get('id'), var.get('superClass'), var.get('classBody')))
                PyJs_anonymous_360_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseClassExpression', PyJs_anonymous_360_)
                @Js
                def PyJs_anonymous_361_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['node', 'body'])
                    var.get(u"this").get('context').put('strict', Js(True))
                    var.get(u"this").get('context').put('isModule', Js(True))
                    var.get(u"this").get('scanner').put('isModule', Js(True))
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.put('body', var.get(u"this").callprop('parseDirectivePrologues'))
                    while PyJsStrictNeq(var.get(u"this").get('lookahead').get('type'),Js(2.0)):
                        var.get('body').callprop('push', var.get(u"this").callprop('parseStatementListItem'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('Module').create(var.get('body')))
                PyJs_anonymous_361_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseModule', PyJs_anonymous_361_)
                @Js
                def PyJs_anonymous_362_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['node', 'body'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.put('body', var.get(u"this").callprop('parseDirectivePrologues'))
                    while PyJsStrictNeq(var.get(u"this").get('lookahead').get('type'),Js(2.0)):
                        var.get('body').callprop('push', var.get(u"this").callprop('parseStatementListItem'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('Script').create(var.get('body')))
                PyJs_anonymous_362_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseScript', PyJs_anonymous_362_)
                @Js
                def PyJs_anonymous_363_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['raw', 'node', 'token'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    if PyJsStrictNeq(var.get(u"this").get('lookahead').get('type'),Js(8.0)):
                        var.get(u"this").callprop('throwError', var.get('messages_1').get('Messages').get('InvalidModuleSpecifier'))
                    var.put('token', var.get(u"this").callprop('nextToken'))
                    var.put('raw', var.get(u"this").callprop('getTokenRaw', var.get('token')))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('Literal').create(var.get('token').get('value'), var.get('raw')))
                PyJs_anonymous_363_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseModuleSpecifier', PyJs_anonymous_363_)
                @Js
                def PyJs_anonymous_364_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['imported', 'local', 'node'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    pass
                    pass
                    if PyJsStrictEq(var.get(u"this").get('lookahead').get('type'),Js(3.0)):
                        var.put('imported', var.get(u"this").callprop('parseVariableIdentifier'))
                        var.put('local', var.get('imported'))
                        if var.get(u"this").callprop('matchContextualKeyword', Js('as')):
                            var.get(u"this").callprop('nextToken')
                            var.put('local', var.get(u"this").callprop('parseVariableIdentifier'))
                    else:
                        var.put('imported', var.get(u"this").callprop('parseIdentifierName'))
                        var.put('local', var.get('imported'))
                        if var.get(u"this").callprop('matchContextualKeyword', Js('as')):
                            var.get(u"this").callprop('nextToken')
                            var.put('local', var.get(u"this").callprop('parseVariableIdentifier'))
                        else:
                            var.get(u"this").callprop('throwUnexpectedToken', var.get(u"this").callprop('nextToken'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('ImportSpecifier').create(var.get('local'), var.get('imported')))
                PyJs_anonymous_364_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseImportSpecifier', PyJs_anonymous_364_)
                @Js
                def PyJs_anonymous_365_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['specifiers'])
                    var.get(u"this").callprop('expect', Js('{'))
                    var.put('specifiers', Js([]))
                    while var.get(u"this").callprop('match', Js('}')).neg():
                        var.get('specifiers').callprop('push', var.get(u"this").callprop('parseImportSpecifier'))
                        if var.get(u"this").callprop('match', Js('}')).neg():
                            var.get(u"this").callprop('expect', Js(','))
                    var.get(u"this").callprop('expect', Js('}'))
                    return var.get('specifiers')
                PyJs_anonymous_365_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseNamedImports', PyJs_anonymous_365_)
                @Js
                def PyJs_anonymous_366_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['local', 'node'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.put('local', var.get(u"this").callprop('parseIdentifierName'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('ImportDefaultSpecifier').create(var.get('local')))
                PyJs_anonymous_366_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseImportDefaultSpecifier', PyJs_anonymous_366_)
                @Js
                def PyJs_anonymous_367_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['local', 'node'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.get(u"this").callprop('expect', Js('*'))
                    if var.get(u"this").callprop('matchContextualKeyword', Js('as')).neg():
                        var.get(u"this").callprop('throwError', var.get('messages_1').get('Messages').get('NoAsAfterImportNamespace'))
                    var.get(u"this").callprop('nextToken')
                    var.put('local', var.get(u"this").callprop('parseIdentifierName'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('ImportNamespaceSpecifier').create(var.get('local')))
                PyJs_anonymous_367_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseImportNamespaceSpecifier', PyJs_anonymous_367_)
                @Js
                def PyJs_anonymous_368_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['src', 'specifiers', 'node', 'message'])
                    if var.get(u"this").get('context').get('inFunctionBody'):
                        var.get(u"this").callprop('throwError', var.get('messages_1').get('Messages').get('IllegalImportDeclaration'))
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.get(u"this").callprop('expectKeyword', Js('import'))
                    pass
                    var.put('specifiers', Js([]))
                    if PyJsStrictEq(var.get(u"this").get('lookahead').get('type'),Js(8.0)):
                        var.put('src', var.get(u"this").callprop('parseModuleSpecifier'))
                    else:
                        if var.get(u"this").callprop('match', Js('{')):
                            var.put('specifiers', var.get('specifiers').callprop('concat', var.get(u"this").callprop('parseNamedImports')))
                        else:
                            if var.get(u"this").callprop('match', Js('*')):
                                var.get('specifiers').callprop('push', var.get(u"this").callprop('parseImportNamespaceSpecifier'))
                            else:
                                if (var.get(u"this").callprop('isIdentifierName', var.get(u"this").get('lookahead')) and var.get(u"this").callprop('matchKeyword', Js('default')).neg()):
                                    var.get('specifiers').callprop('push', var.get(u"this").callprop('parseImportDefaultSpecifier'))
                                    if var.get(u"this").callprop('match', Js(',')):
                                        var.get(u"this").callprop('nextToken')
                                        if var.get(u"this").callprop('match', Js('*')):
                                            var.get('specifiers').callprop('push', var.get(u"this").callprop('parseImportNamespaceSpecifier'))
                                        else:
                                            if var.get(u"this").callprop('match', Js('{')):
                                                var.put('specifiers', var.get('specifiers').callprop('concat', var.get(u"this").callprop('parseNamedImports')))
                                            else:
                                                var.get(u"this").callprop('throwUnexpectedToken', var.get(u"this").get('lookahead'))
                                else:
                                    var.get(u"this").callprop('throwUnexpectedToken', var.get(u"this").callprop('nextToken'))
                        if var.get(u"this").callprop('matchContextualKeyword', Js('from')).neg():
                            var.put('message', (var.get('messages_1').get('Messages').get('UnexpectedToken') if var.get(u"this").get('lookahead').get('value') else var.get('messages_1').get('Messages').get('MissingFromClause')))
                            var.get(u"this").callprop('throwError', var.get('message'), var.get(u"this").get('lookahead').get('value'))
                        var.get(u"this").callprop('nextToken')
                        var.put('src', var.get(u"this").callprop('parseModuleSpecifier'))
                    var.get(u"this").callprop('consumeSemicolon')
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('ImportDeclaration').create(var.get('specifiers'), var.get('src')))
                PyJs_anonymous_368_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseImportDeclaration', PyJs_anonymous_368_)
                @Js
                def PyJs_anonymous_369_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['local', 'node', 'exported'])
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.put('local', var.get(u"this").callprop('parseIdentifierName'))
                    var.put('exported', var.get('local'))
                    if var.get(u"this").callprop('matchContextualKeyword', Js('as')):
                        var.get(u"this").callprop('nextToken')
                        var.put('exported', var.get(u"this").callprop('parseIdentifierName'))
                    return var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('ExportSpecifier').create(var.get('local'), var.get('exported')))
                PyJs_anonymous_369_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseExportSpecifier', PyJs_anonymous_369_)
                @Js
                def PyJs_anonymous_370_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['node', 'src', 'source', 'specifiers', 'isExportFromIdentifier', 'exportDeclaration', 'message', 'declaration'])
                    if var.get(u"this").get('context').get('inFunctionBody'):
                        var.get(u"this").callprop('throwError', var.get('messages_1').get('Messages').get('IllegalExportDeclaration'))
                    var.put('node', var.get(u"this").callprop('createNode'))
                    var.get(u"this").callprop('expectKeyword', Js('export'))
                    pass
                    if var.get(u"this").callprop('matchKeyword', Js('default')):
                        var.get(u"this").callprop('nextToken')
                        if var.get(u"this").callprop('matchKeyword', Js('function')):
                            var.put('declaration', var.get(u"this").callprop('parseFunctionDeclaration', Js(True)))
                            var.put('exportDeclaration', var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('ExportDefaultDeclaration').create(var.get('declaration'))))
                        else:
                            if var.get(u"this").callprop('matchKeyword', Js('class')):
                                var.put('declaration', var.get(u"this").callprop('parseClassDeclaration', Js(True)))
                                var.put('exportDeclaration', var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('ExportDefaultDeclaration').create(var.get('declaration'))))
                            else:
                                if var.get(u"this").callprop('matchContextualKeyword', Js('async')):
                                    var.put('declaration', (var.get(u"this").callprop('parseFunctionDeclaration', Js(True)) if var.get(u"this").callprop('matchAsyncFunction') else var.get(u"this").callprop('parseAssignmentExpression')))
                                    var.put('exportDeclaration', var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('ExportDefaultDeclaration').create(var.get('declaration'))))
                                else:
                                    if var.get(u"this").callprop('matchContextualKeyword', Js('from')):
                                        var.get(u"this").callprop('throwError', var.get('messages_1').get('Messages').get('UnexpectedToken'), var.get(u"this").get('lookahead').get('value'))
                                    var.put('declaration', (var.get(u"this").callprop('parseObjectInitializer') if var.get(u"this").callprop('match', Js('{')) else (var.get(u"this").callprop('parseArrayInitializer') if var.get(u"this").callprop('match', Js('[')) else var.get(u"this").callprop('parseAssignmentExpression'))))
                                    var.get(u"this").callprop('consumeSemicolon')
                                    var.put('exportDeclaration', var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('ExportDefaultDeclaration').create(var.get('declaration'))))
                    else:
                        if var.get(u"this").callprop('match', Js('*')):
                            var.get(u"this").callprop('nextToken')
                            if var.get(u"this").callprop('matchContextualKeyword', Js('from')).neg():
                                var.put('message', (var.get('messages_1').get('Messages').get('UnexpectedToken') if var.get(u"this").get('lookahead').get('value') else var.get('messages_1').get('Messages').get('MissingFromClause')))
                                var.get(u"this").callprop('throwError', var.get('message'), var.get(u"this").get('lookahead').get('value'))
                            var.get(u"this").callprop('nextToken')
                            var.put('src', var.get(u"this").callprop('parseModuleSpecifier'))
                            var.get(u"this").callprop('consumeSemicolon')
                            var.put('exportDeclaration', var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('ExportAllDeclaration').create(var.get('src'))))
                        else:
                            if PyJsStrictEq(var.get(u"this").get('lookahead').get('type'),Js(4.0)):
                                var.put('declaration', PyJsComma(Js(0.0), Js(None)))
                                while 1:
                                    SWITCHED = False
                                    CONDITION = (var.get(u"this").get('lookahead').get('value'))
                                    if SWITCHED or PyJsStrictEq(CONDITION, Js('let')):
                                        SWITCHED = True
                                        pass
                                    if SWITCHED or PyJsStrictEq(CONDITION, Js('const')):
                                        SWITCHED = True
                                        PyJs_Object_371_ = Js({'inFor':Js(False)})
                                        var.put('declaration', var.get(u"this").callprop('parseLexicalDeclaration', PyJs_Object_371_))
                                        break
                                    if SWITCHED or PyJsStrictEq(CONDITION, Js('var')):
                                        SWITCHED = True
                                        pass
                                    if SWITCHED or PyJsStrictEq(CONDITION, Js('class')):
                                        SWITCHED = True
                                        pass
                                    if SWITCHED or PyJsStrictEq(CONDITION, Js('function')):
                                        SWITCHED = True
                                        var.put('declaration', var.get(u"this").callprop('parseStatementListItem'))
                                        break
                                    if True:
                                        SWITCHED = True
                                        var.get(u"this").callprop('throwUnexpectedToken', var.get(u"this").get('lookahead'))
                                    SWITCHED = True
                                    break
                                var.put('exportDeclaration', var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('ExportNamedDeclaration').create(var.get('declaration'), Js([]), var.get(u"null"))))
                            else:
                                if var.get(u"this").callprop('matchAsyncFunction'):
                                    var.put('declaration', var.get(u"this").callprop('parseFunctionDeclaration'))
                                    var.put('exportDeclaration', var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('ExportNamedDeclaration').create(var.get('declaration'), Js([]), var.get(u"null"))))
                                else:
                                    var.put('specifiers', Js([]))
                                    var.put('source', var.get(u"null"))
                                    var.put('isExportFromIdentifier', Js(False))
                                    var.get(u"this").callprop('expect', Js('{'))
                                    while var.get(u"this").callprop('match', Js('}')).neg():
                                        var.put('isExportFromIdentifier', (var.get('isExportFromIdentifier') or var.get(u"this").callprop('matchKeyword', Js('default'))))
                                        var.get('specifiers').callprop('push', var.get(u"this").callprop('parseExportSpecifier'))
                                        if var.get(u"this").callprop('match', Js('}')).neg():
                                            var.get(u"this").callprop('expect', Js(','))
                                    var.get(u"this").callprop('expect', Js('}'))
                                    if var.get(u"this").callprop('matchContextualKeyword', Js('from')):
                                        var.get(u"this").callprop('nextToken')
                                        var.put('source', var.get(u"this").callprop('parseModuleSpecifier'))
                                        var.get(u"this").callprop('consumeSemicolon')
                                    else:
                                        if var.get('isExportFromIdentifier'):
                                            var.put('message', (var.get('messages_1').get('Messages').get('UnexpectedToken') if var.get(u"this").get('lookahead').get('value') else var.get('messages_1').get('Messages').get('MissingFromClause')))
                                            var.get(u"this").callprop('throwError', var.get('message'), var.get(u"this").get('lookahead').get('value'))
                                        else:
                                            var.get(u"this").callprop('consumeSemicolon')
                                    var.put('exportDeclaration', var.get(u"this").callprop('finalize', var.get('node'), var.get('Node').get('ExportNamedDeclaration').create(var.get(u"null"), var.get('specifiers'), var.get('source'))))
                    return var.get('exportDeclaration')
                PyJs_anonymous_370_._set_name('anonymous')
                var.get('Parser').get('prototype').put('parseExportDeclaration', PyJs_anonymous_370_)
                return var.get('Parser')
            PyJs_anonymous_183_._set_name('anonymous')
            var.put('Parser', PyJs_anonymous_183_())
            var.get('exports').put('Parser', var.get('Parser'))
        PyJs_anonymous_181_._set_name('anonymous')
        @Js
        def PyJs_anonymous_372_(module, exports, this, arguments, var=var):
            var = Scope({'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
            var.registers(['module', 'exports', 'assert'])
            @Js
            def PyJsHoisted_assert_(condition, message, this, arguments, var=var):
                var = Scope({'condition':condition, 'message':message, 'this':this, 'arguments':arguments}, var)
                var.registers(['condition', 'message'])
                if var.get('condition').neg():
                    PyJsTempException = JsToPyException(var.get('Error').create((Js('ASSERT: ')+var.get('message'))))
                    raise PyJsTempException
            PyJsHoisted_assert_.func_name = 'assert'
            var.put('assert', PyJsHoisted_assert_)
            Js('use strict')
            PyJs_Object_373_ = Js({'value':Js(True)})
            var.get('Object').callprop('defineProperty', var.get('exports'), Js('__esModule'), PyJs_Object_373_)
            pass
            var.get('exports').put('assert', var.get('assert'))
        PyJs_anonymous_372_._set_name('anonymous')
        @Js
        def PyJs_anonymous_374_(module, exports, this, arguments, var=var):
            var = Scope({'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
            var.registers(['ErrorHandler', 'module', 'exports'])
            Js('use strict')
            PyJs_Object_375_ = Js({'value':Js(True)})
            var.get('Object').callprop('defineProperty', var.get('exports'), Js('__esModule'), PyJs_Object_375_)
            @Js
            def PyJs_anonymous_376_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['ErrorHandler'])
                @Js
                def PyJsHoisted_ErrorHandler_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers([])
                    var.get(u"this").put('errors', Js([]))
                    var.get(u"this").put('tolerant', Js(False))
                PyJsHoisted_ErrorHandler_.func_name = 'ErrorHandler'
                var.put('ErrorHandler', PyJsHoisted_ErrorHandler_)
                pass
                @Js
                def PyJs_anonymous_377_(error, this, arguments, var=var):
                    var = Scope({'error':error, 'this':this, 'arguments':arguments}, var)
                    var.registers(['error'])
                    var.get(u"this").get('errors').callprop('push', var.get('error'))
                PyJs_anonymous_377_._set_name('anonymous')
                var.get('ErrorHandler').get('prototype').put('recordError', PyJs_anonymous_377_)
                @Js
                def PyJs_anonymous_378_(error, this, arguments, var=var):
                    var = Scope({'error':error, 'this':this, 'arguments':arguments}, var)
                    var.registers(['error'])
                    if var.get(u"this").get('tolerant'):
                        var.get(u"this").callprop('recordError', var.get('error'))
                    else:
                        PyJsTempException = JsToPyException(var.get('error'))
                        raise PyJsTempException
                PyJs_anonymous_378_._set_name('anonymous')
                var.get('ErrorHandler').get('prototype').put('tolerate', PyJs_anonymous_378_)
                @Js
                def PyJs_anonymous_379_(msg, column, this, arguments, var=var):
                    var = Scope({'msg':msg, 'column':column, 'this':this, 'arguments':arguments}, var)
                    var.registers(['column', 'error', 'msg'])
                    var.put('error', var.get('Error').create(var.get('msg')))
                    try:
                        PyJsTempException = JsToPyException(var.get('error'))
                        raise PyJsTempException
                    except PyJsException as PyJsTempException:
                        PyJsHolder_62617365_66607967 = var.own.get('base')
                        var.force_own_put('base', PyExceptionToJs(PyJsTempException))
                        try:
                            if (var.get('Object').get('create') and var.get('Object').get('defineProperty')):
                                var.put('error', var.get('Object').callprop('create', var.get('base')))
                                PyJs_Object_380_ = Js({'value':var.get('column')})
                                var.get('Object').callprop('defineProperty', var.get('error'), Js('column'), PyJs_Object_380_)
                        finally:
                            if PyJsHolder_62617365_66607967 is not None:
                                var.own['base'] = PyJsHolder_62617365_66607967
                            else:
                                del var.own['base']
                            del PyJsHolder_62617365_66607967
                    return var.get('error')
                PyJs_anonymous_379_._set_name('anonymous')
                var.get('ErrorHandler').get('prototype').put('constructError', PyJs_anonymous_379_)
                @Js
                def PyJs_anonymous_381_(index, line, col, description, this, arguments, var=var):
                    var = Scope({'index':index, 'line':line, 'col':col, 'description':description, 'this':this, 'arguments':arguments}, var)
                    var.registers(['index', 'line', 'description', 'msg', 'col', 'error'])
                    var.put('msg', (((Js('Line ')+var.get('line'))+Js(': '))+var.get('description')))
                    var.put('error', var.get(u"this").callprop('constructError', var.get('msg'), var.get('col')))
                    var.get('error').put('index', var.get('index'))
                    var.get('error').put('lineNumber', var.get('line'))
                    var.get('error').put('description', var.get('description'))
                    return var.get('error')
                PyJs_anonymous_381_._set_name('anonymous')
                var.get('ErrorHandler').get('prototype').put('createError', PyJs_anonymous_381_)
                @Js
                def PyJs_anonymous_382_(index, line, col, description, this, arguments, var=var):
                    var = Scope({'index':index, 'line':line, 'col':col, 'description':description, 'this':this, 'arguments':arguments}, var)
                    var.registers(['index', 'line', 'description', 'col'])
                    PyJsTempException = JsToPyException(var.get(u"this").callprop('createError', var.get('index'), var.get('line'), var.get('col'), var.get('description')))
                    raise PyJsTempException
                PyJs_anonymous_382_._set_name('anonymous')
                var.get('ErrorHandler').get('prototype').put('throwError', PyJs_anonymous_382_)
                @Js
                def PyJs_anonymous_383_(index, line, col, description, this, arguments, var=var):
                    var = Scope({'index':index, 'line':line, 'col':col, 'description':description, 'this':this, 'arguments':arguments}, var)
                    var.registers(['index', 'line', 'description', 'col', 'error'])
                    var.put('error', var.get(u"this").callprop('createError', var.get('index'), var.get('line'), var.get('col'), var.get('description')))
                    if var.get(u"this").get('tolerant'):
                        var.get(u"this").callprop('recordError', var.get('error'))
                    else:
                        PyJsTempException = JsToPyException(var.get('error'))
                        raise PyJsTempException
                PyJs_anonymous_383_._set_name('anonymous')
                var.get('ErrorHandler').get('prototype').put('tolerateError', PyJs_anonymous_383_)
                return var.get('ErrorHandler')
            PyJs_anonymous_376_._set_name('anonymous')
            var.put('ErrorHandler', PyJs_anonymous_376_())
            var.get('exports').put('ErrorHandler', var.get('ErrorHandler'))
        PyJs_anonymous_374_._set_name('anonymous')
        @Js
        def PyJs_anonymous_384_(module, exports, this, arguments, var=var):
            var = Scope({'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
            var.registers(['module', 'exports'])
            Js('use strict')
            PyJs_Object_385_ = Js({'value':Js(True)})
            var.get('Object').callprop('defineProperty', var.get('exports'), Js('__esModule'), PyJs_Object_385_)
            PyJs_Object_386_ = Js({'BadGetterArity':Js('Getter must not have any formal parameters'),'BadSetterArity':Js('Setter must have exactly one formal parameter'),'BadSetterRestParameter':Js('Setter function argument must not be a rest parameter'),'ConstructorIsAsync':Js('Class constructor may not be an async method'),'ConstructorSpecialMethod':Js('Class constructor may not be an accessor'),'DeclarationMissingInitializer':Js('Missing initializer in %0 declaration'),'DefaultRestParameter':Js('Unexpected token ='),'DuplicateBinding':Js('Duplicate binding %0'),'DuplicateConstructor':Js('A class may only have one constructor'),'DuplicateProtoProperty':Js('Duplicate __proto__ fields are not allowed in object literals'),'ForInOfLoopInitializer':Js('%0 loop variable declaration may not have an initializer'),'GeneratorInLegacyContext':Js('Generator declarations are not allowed in legacy contexts'),'IllegalBreak':Js('Illegal break statement'),'IllegalContinue':Js('Illegal continue statement'),'IllegalExportDeclaration':Js('Unexpected token'),'IllegalImportDeclaration':Js('Unexpected token'),'IllegalLanguageModeDirective':Js("Illegal 'use strict' directive in function with non-simple parameter list"),'IllegalReturn':Js('Illegal return statement'),'InvalidEscapedReservedWord':Js('Keyword must not contain escaped characters'),'InvalidHexEscapeSequence':Js('Invalid hexadecimal escape sequence'),'InvalidLHSInAssignment':Js('Invalid left-hand side in assignment'),'InvalidLHSInForIn':Js('Invalid left-hand side in for-in'),'InvalidLHSInForLoop':Js('Invalid left-hand side in for-loop'),'InvalidModuleSpecifier':Js('Unexpected token'),'InvalidRegExp':Js('Invalid regular expression'),'LetInLexicalBinding':Js('let is disallowed as a lexically bound name'),'MissingFromClause':Js('Unexpected token'),'MultipleDefaultsInSwitch':Js('More than one default clause in switch statement'),'NewlineAfterThrow':Js('Illegal newline after throw'),'NoAsAfterImportNamespace':Js('Unexpected token'),'NoCatchOrFinally':Js('Missing catch or finally after try'),'ParameterAfterRestParameter':Js('Rest parameter must be last formal parameter'),'Redeclaration':Js("%0 '%1' has already been declared"),'StaticPrototype':Js('Classes may not have static property named prototype'),'StrictCatchVariable':Js('Catch variable may not be eval or arguments in strict mode'),'StrictDelete':Js('Delete of an unqualified identifier in strict mode.'),'StrictFunction':Js('In strict mode code, functions can only be declared at top level or inside a block'),'StrictFunctionName':Js('Function name may not be eval or arguments in strict mode'),'StrictLHSAssignment':Js('Assignment to eval or arguments is not allowed in strict mode'),'StrictLHSPostfix':Js('Postfix increment/decrement may not have eval or arguments operand in strict mode'),'StrictLHSPrefix':Js('Prefix increment/decrement may not have eval or arguments operand in strict mode'),'StrictModeWith':Js('Strict mode code may not include a with statement'),'StrictOctalLiteral':Js('Octal literals are not allowed in strict mode.'),'StrictParamDupe':Js('Strict mode function may not have duplicate parameter names'),'StrictParamName':Js('Parameter name eval or arguments is not allowed in strict mode'),'StrictReservedWord':Js('Use of future reserved word in strict mode'),'StrictVarName':Js('Variable name may not be eval or arguments in strict mode'),'TemplateOctalLiteral':Js('Octal literals are not allowed in template strings.'),'UnexpectedEOS':Js('Unexpected end of input'),'UnexpectedIdentifier':Js('Unexpected identifier'),'UnexpectedNumber':Js('Unexpected number'),'UnexpectedReserved':Js('Unexpected reserved word'),'UnexpectedString':Js('Unexpected string'),'UnexpectedTemplate':Js('Unexpected quasi %0'),'UnexpectedToken':Js('Unexpected token %0'),'UnexpectedTokenIllegal':Js('Unexpected token ILLEGAL'),'UnknownLabel':Js("Undefined label '%0'"),'UnterminatedRegExp':Js('Invalid regular expression: missing /')})
            var.get('exports').put('Messages', PyJs_Object_386_)
        PyJs_anonymous_384_._set_name('anonymous')
        @Js
        def PyJs_anonymous_387_(module, exports, __webpack_require__, this, arguments, var=var):
            var = Scope({'module':module, 'exports':exports, '__webpack_require__':__webpack_require__, 'this':this, 'arguments':arguments}, var)
            var.registers(['module', 'character_1', 'messages_1', 'octalValue', 'hexValue', 'Scanner', '__webpack_require__', 'assert_1', 'exports'])
            @Js
            def PyJsHoisted_hexValue_(ch, this, arguments, var=var):
                var = Scope({'ch':ch, 'this':this, 'arguments':arguments}, var)
                var.registers(['ch'])
                return Js('0123456789abcdef').callprop('indexOf', var.get('ch').callprop('toLowerCase'))
            PyJsHoisted_hexValue_.func_name = 'hexValue'
            var.put('hexValue', PyJsHoisted_hexValue_)
            @Js
            def PyJsHoisted_octalValue_(ch, this, arguments, var=var):
                var = Scope({'ch':ch, 'this':this, 'arguments':arguments}, var)
                var.registers(['ch'])
                return Js('01234567').callprop('indexOf', var.get('ch'))
            PyJsHoisted_octalValue_.func_name = 'octalValue'
            var.put('octalValue', PyJsHoisted_octalValue_)
            Js('use strict')
            PyJs_Object_388_ = Js({'value':Js(True)})
            var.get('Object').callprop('defineProperty', var.get('exports'), Js('__esModule'), PyJs_Object_388_)
            var.put('assert_1', var.get('__webpack_require__')(Js(9.0)))
            var.put('character_1', var.get('__webpack_require__')(Js(4.0)))
            var.put('messages_1', var.get('__webpack_require__')(Js(11.0)))
            pass
            pass
            @Js
            def PyJs_anonymous_389_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['Scanner'])
                @Js
                def PyJsHoisted_Scanner_(code, handler, this, arguments, var=var):
                    var = Scope({'code':code, 'handler':handler, 'this':this, 'arguments':arguments}, var)
                    var.registers(['code', 'handler'])
                    var.get(u"this").put('source', var.get('code'))
                    var.get(u"this").put('errorHandler', var.get('handler'))
                    var.get(u"this").put('trackComment', Js(False))
                    var.get(u"this").put('isModule', Js(False))
                    var.get(u"this").put('length', var.get('code').get('length'))
                    var.get(u"this").put('index', Js(0.0))
                    var.get(u"this").put('lineNumber', (Js(1.0) if (var.get('code').get('length')>Js(0.0)) else Js(0.0)))
                    var.get(u"this").put('lineStart', Js(0.0))
                    var.get(u"this").put('curlyStack', Js([]))
                PyJsHoisted_Scanner_.func_name = 'Scanner'
                var.put('Scanner', PyJsHoisted_Scanner_)
                pass
                @Js
                def PyJs_anonymous_390_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers([])
                    PyJs_Object_391_ = Js({'index':var.get(u"this").get('index'),'lineNumber':var.get(u"this").get('lineNumber'),'lineStart':var.get(u"this").get('lineStart')})
                    return PyJs_Object_391_
                PyJs_anonymous_390_._set_name('anonymous')
                var.get('Scanner').get('prototype').put('saveState', PyJs_anonymous_390_)
                @Js
                def PyJs_anonymous_392_(state, this, arguments, var=var):
                    var = Scope({'state':state, 'this':this, 'arguments':arguments}, var)
                    var.registers(['state'])
                    var.get(u"this").put('index', var.get('state').get('index'))
                    var.get(u"this").put('lineNumber', var.get('state').get('lineNumber'))
                    var.get(u"this").put('lineStart', var.get('state').get('lineStart'))
                PyJs_anonymous_392_._set_name('anonymous')
                var.get('Scanner').get('prototype').put('restoreState', PyJs_anonymous_392_)
                @Js
                def PyJs_anonymous_393_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers([])
                    return (var.get(u"this").get('index')>=var.get(u"this").get('length'))
                PyJs_anonymous_393_._set_name('anonymous')
                var.get('Scanner').get('prototype').put('eof', PyJs_anonymous_393_)
                @Js
                def PyJs_anonymous_394_(message, this, arguments, var=var):
                    var = Scope({'message':message, 'this':this, 'arguments':arguments}, var)
                    var.registers(['message'])
                    if PyJsStrictEq(var.get('message'),PyJsComma(Js(0.0), Js(None))):
                        var.put('message', var.get('messages_1').get('Messages').get('UnexpectedTokenIllegal'))
                    return var.get(u"this").get('errorHandler').callprop('throwError', var.get(u"this").get('index'), var.get(u"this").get('lineNumber'), ((var.get(u"this").get('index')-var.get(u"this").get('lineStart'))+Js(1.0)), var.get('message'))
                PyJs_anonymous_394_._set_name('anonymous')
                var.get('Scanner').get('prototype').put('throwUnexpectedToken', PyJs_anonymous_394_)
                @Js
                def PyJs_anonymous_395_(message, this, arguments, var=var):
                    var = Scope({'message':message, 'this':this, 'arguments':arguments}, var)
                    var.registers(['message'])
                    if PyJsStrictEq(var.get('message'),PyJsComma(Js(0.0), Js(None))):
                        var.put('message', var.get('messages_1').get('Messages').get('UnexpectedTokenIllegal'))
                    var.get(u"this").get('errorHandler').callprop('tolerateError', var.get(u"this").get('index'), var.get(u"this").get('lineNumber'), ((var.get(u"this").get('index')-var.get(u"this").get('lineStart'))+Js(1.0)), var.get('message'))
                PyJs_anonymous_395_._set_name('anonymous')
                var.get('Scanner').get('prototype').put('tolerateUnexpectedToken', PyJs_anonymous_395_)
                @Js
                def PyJs_anonymous_396_(offset, this, arguments, var=var):
                    var = Scope({'offset':offset, 'this':this, 'arguments':arguments}, var)
                    var.registers(['start', 'ch', 'entry', 'comments', 'offset', 'loc'])
                    var.put('comments', Js([]))
                    pass
                    if var.get(u"this").get('trackComment'):
                        var.put('comments', Js([]))
                        var.put('start', (var.get(u"this").get('index')-var.get('offset')))
                        PyJs_Object_398_ = Js({'line':var.get(u"this").get('lineNumber'),'column':((var.get(u"this").get('index')-var.get(u"this").get('lineStart'))-var.get('offset'))})
                        PyJs_Object_399_ = Js({})
                        PyJs_Object_397_ = Js({'start':PyJs_Object_398_,'end':PyJs_Object_399_})
                        var.put('loc', PyJs_Object_397_)
                    while var.get(u"this").callprop('eof').neg():
                        var.put('ch', var.get(u"this").get('source').callprop('charCodeAt', var.get(u"this").get('index')))
                        var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))
                        if var.get('character_1').get('Character').callprop('isLineTerminator', var.get('ch')):
                            if var.get(u"this").get('trackComment'):
                                PyJs_Object_400_ = Js({'line':var.get(u"this").get('lineNumber'),'column':((var.get(u"this").get('index')-var.get(u"this").get('lineStart'))-Js(1.0))})
                                var.get('loc').put('end', PyJs_Object_400_)
                                PyJs_Object_401_ = Js({'multiLine':Js(False),'slice':Js([(var.get('start')+var.get('offset')), (var.get(u"this").get('index')-Js(1.0))]),'range':Js([var.get('start'), (var.get(u"this").get('index')-Js(1.0))]),'loc':var.get('loc')})
                                var.put('entry', PyJs_Object_401_)
                                var.get('comments').callprop('push', var.get('entry'))
                            if (PyJsStrictEq(var.get('ch'),Js(13.0)) and PyJsStrictEq(var.get(u"this").get('source').callprop('charCodeAt', var.get(u"this").get('index')),Js(10.0))):
                                var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))
                            var.get(u"this").put('lineNumber',Js(var.get(u"this").get('lineNumber').to_number())+Js(1))
                            var.get(u"this").put('lineStart', var.get(u"this").get('index'))
                            return var.get('comments')
                    if var.get(u"this").get('trackComment'):
                        PyJs_Object_402_ = Js({'line':var.get(u"this").get('lineNumber'),'column':(var.get(u"this").get('index')-var.get(u"this").get('lineStart'))})
                        var.get('loc').put('end', PyJs_Object_402_)
                        PyJs_Object_403_ = Js({'multiLine':Js(False),'slice':Js([(var.get('start')+var.get('offset')), var.get(u"this").get('index')]),'range':Js([var.get('start'), var.get(u"this").get('index')]),'loc':var.get('loc')})
                        var.put('entry', PyJs_Object_403_)
                        var.get('comments').callprop('push', var.get('entry'))
                    return var.get('comments')
                PyJs_anonymous_396_._set_name('anonymous')
                var.get('Scanner').get('prototype').put('skipSingleLineComment', PyJs_anonymous_396_)
                @Js
                def PyJs_anonymous_404_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['start', 'ch', 'entry', 'comments', 'loc'])
                    var.put('comments', Js([]))
                    pass
                    if var.get(u"this").get('trackComment'):
                        var.put('comments', Js([]))
                        var.put('start', (var.get(u"this").get('index')-Js(2.0)))
                        PyJs_Object_406_ = Js({'line':var.get(u"this").get('lineNumber'),'column':((var.get(u"this").get('index')-var.get(u"this").get('lineStart'))-Js(2.0))})
                        PyJs_Object_407_ = Js({})
                        PyJs_Object_405_ = Js({'start':PyJs_Object_406_,'end':PyJs_Object_407_})
                        var.put('loc', PyJs_Object_405_)
                    while var.get(u"this").callprop('eof').neg():
                        var.put('ch', var.get(u"this").get('source').callprop('charCodeAt', var.get(u"this").get('index')))
                        if var.get('character_1').get('Character').callprop('isLineTerminator', var.get('ch')):
                            if (PyJsStrictEq(var.get('ch'),Js(13)) and PyJsStrictEq(var.get(u"this").get('source').callprop('charCodeAt', (var.get(u"this").get('index')+Js(1.0))),Js(10))):
                                var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))
                            var.get(u"this").put('lineNumber',Js(var.get(u"this").get('lineNumber').to_number())+Js(1))
                            var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))
                            var.get(u"this").put('lineStart', var.get(u"this").get('index'))
                        else:
                            if PyJsStrictEq(var.get('ch'),Js(42)):
                                if PyJsStrictEq(var.get(u"this").get('source').callprop('charCodeAt', (var.get(u"this").get('index')+Js(1.0))),Js(47)):
                                    var.get(u"this").put('index', Js(2.0), '+')
                                    if var.get(u"this").get('trackComment'):
                                        PyJs_Object_408_ = Js({'line':var.get(u"this").get('lineNumber'),'column':(var.get(u"this").get('index')-var.get(u"this").get('lineStart'))})
                                        var.get('loc').put('end', PyJs_Object_408_)
                                        PyJs_Object_409_ = Js({'multiLine':Js(True),'slice':Js([(var.get('start')+Js(2.0)), (var.get(u"this").get('index')-Js(2.0))]),'range':Js([var.get('start'), var.get(u"this").get('index')]),'loc':var.get('loc')})
                                        var.put('entry', PyJs_Object_409_)
                                        var.get('comments').callprop('push', var.get('entry'))
                                    return var.get('comments')
                                var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))
                            else:
                                var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))
                    if var.get(u"this").get('trackComment'):
                        PyJs_Object_410_ = Js({'line':var.get(u"this").get('lineNumber'),'column':(var.get(u"this").get('index')-var.get(u"this").get('lineStart'))})
                        var.get('loc').put('end', PyJs_Object_410_)
                        PyJs_Object_411_ = Js({'multiLine':Js(True),'slice':Js([(var.get('start')+Js(2.0)), var.get(u"this").get('index')]),'range':Js([var.get('start'), var.get(u"this").get('index')]),'loc':var.get('loc')})
                        var.put('entry', PyJs_Object_411_)
                        var.get('comments').callprop('push', var.get('entry'))
                    var.get(u"this").callprop('tolerateUnexpectedToken')
                    return var.get('comments')
                PyJs_anonymous_404_._set_name('anonymous')
                var.get('Scanner').get('prototype').put('skipMultiLineComment', PyJs_anonymous_404_)
                @Js
                def PyJs_anonymous_412_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['start', 'ch', 'comment', 'comments'])
                    pass
                    if var.get(u"this").get('trackComment'):
                        var.put('comments', Js([]))
                    var.put('start', PyJsStrictEq(var.get(u"this").get('index'),Js(0.0)))
                    while var.get(u"this").callprop('eof').neg():
                        var.put('ch', var.get(u"this").get('source').callprop('charCodeAt', var.get(u"this").get('index')))
                        if var.get('character_1').get('Character').callprop('isWhiteSpace', var.get('ch')):
                            var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))
                        else:
                            if var.get('character_1').get('Character').callprop('isLineTerminator', var.get('ch')):
                                var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))
                                if (PyJsStrictEq(var.get('ch'),Js(13)) and PyJsStrictEq(var.get(u"this").get('source').callprop('charCodeAt', var.get(u"this").get('index')),Js(10))):
                                    var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))
                                var.get(u"this").put('lineNumber',Js(var.get(u"this").get('lineNumber').to_number())+Js(1))
                                var.get(u"this").put('lineStart', var.get(u"this").get('index'))
                                var.put('start', Js(True))
                            else:
                                if PyJsStrictEq(var.get('ch'),Js(47)):
                                    var.put('ch', var.get(u"this").get('source').callprop('charCodeAt', (var.get(u"this").get('index')+Js(1.0))))
                                    if PyJsStrictEq(var.get('ch'),Js(47)):
                                        var.get(u"this").put('index', Js(2.0), '+')
                                        var.put('comment', var.get(u"this").callprop('skipSingleLineComment', Js(2.0)))
                                        if var.get(u"this").get('trackComment'):
                                            var.put('comments', var.get('comments').callprop('concat', var.get('comment')))
                                        var.put('start', Js(True))
                                    else:
                                        if PyJsStrictEq(var.get('ch'),Js(42)):
                                            var.get(u"this").put('index', Js(2.0), '+')
                                            var.put('comment', var.get(u"this").callprop('skipMultiLineComment'))
                                            if var.get(u"this").get('trackComment'):
                                                var.put('comments', var.get('comments').callprop('concat', var.get('comment')))
                                        else:
                                            break
                                else:
                                    if (var.get('start') and PyJsStrictEq(var.get('ch'),Js(45))):
                                        if (PyJsStrictEq(var.get(u"this").get('source').callprop('charCodeAt', (var.get(u"this").get('index')+Js(1.0))),Js(45)) and PyJsStrictEq(var.get(u"this").get('source').callprop('charCodeAt', (var.get(u"this").get('index')+Js(2.0))),Js(62))):
                                            var.get(u"this").put('index', Js(3.0), '+')
                                            var.put('comment', var.get(u"this").callprop('skipSingleLineComment', Js(3.0)))
                                            if var.get(u"this").get('trackComment'):
                                                var.put('comments', var.get('comments').callprop('concat', var.get('comment')))
                                        else:
                                            break
                                    else:
                                        if (PyJsStrictEq(var.get('ch'),Js(60)) and var.get(u"this").get('isModule').neg()):
                                            if PyJsStrictEq(var.get(u"this").get('source').callprop('slice', (var.get(u"this").get('index')+Js(1.0)), (var.get(u"this").get('index')+Js(4.0))),Js('!--')):
                                                var.get(u"this").put('index', Js(4.0), '+')
                                                var.put('comment', var.get(u"this").callprop('skipSingleLineComment', Js(4.0)))
                                                if var.get(u"this").get('trackComment'):
                                                    var.put('comments', var.get('comments').callprop('concat', var.get('comment')))
                                            else:
                                                break
                                        else:
                                            break
                    return var.get('comments')
                PyJs_anonymous_412_._set_name('anonymous')
                var.get('Scanner').get('prototype').put('scanComments', PyJs_anonymous_412_)
                @Js
                def PyJs_anonymous_413_(id, this, arguments, var=var):
                    var = Scope({'id':id, 'this':this, 'arguments':arguments}, var)
                    var.registers(['id'])
                    while 1:
                        SWITCHED = False
                        CONDITION = (var.get('id'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js('enum')):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js('export')):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js('import')):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js('super')):
                            SWITCHED = True
                            return Js(True)
                        if True:
                            SWITCHED = True
                            return Js(False)
                        SWITCHED = True
                        break
                PyJs_anonymous_413_._set_name('anonymous')
                var.get('Scanner').get('prototype').put('isFutureReservedWord', PyJs_anonymous_413_)
                @Js
                def PyJs_anonymous_414_(id, this, arguments, var=var):
                    var = Scope({'id':id, 'this':this, 'arguments':arguments}, var)
                    var.registers(['id'])
                    while 1:
                        SWITCHED = False
                        CONDITION = (var.get('id'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js('implements')):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js('interface')):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js('package')):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js('private')):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js('protected')):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js('public')):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js('static')):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js('yield')):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js('let')):
                            SWITCHED = True
                            return Js(True)
                        if True:
                            SWITCHED = True
                            return Js(False)
                        SWITCHED = True
                        break
                PyJs_anonymous_414_._set_name('anonymous')
                var.get('Scanner').get('prototype').put('isStrictModeReservedWord', PyJs_anonymous_414_)
                @Js
                def PyJs_anonymous_415_(id, this, arguments, var=var):
                    var = Scope({'id':id, 'this':this, 'arguments':arguments}, var)
                    var.registers(['id'])
                    return (PyJsStrictEq(var.get('id'),Js('eval')) or PyJsStrictEq(var.get('id'),Js('arguments')))
                PyJs_anonymous_415_._set_name('anonymous')
                var.get('Scanner').get('prototype').put('isRestrictedWord', PyJs_anonymous_415_)
                @Js
                def PyJs_anonymous_416_(id, this, arguments, var=var):
                    var = Scope({'id':id, 'this':this, 'arguments':arguments}, var)
                    var.registers(['id'])
                    while 1:
                        SWITCHED = False
                        CONDITION = (var.get('id').get('length'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(2.0)):
                            SWITCHED = True
                            return ((PyJsStrictEq(var.get('id'),Js('if')) or PyJsStrictEq(var.get('id'),Js('in'))) or PyJsStrictEq(var.get('id'),Js('do')))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(3.0)):
                            SWITCHED = True
                            return ((((PyJsStrictEq(var.get('id'),Js('var')) or PyJsStrictEq(var.get('id'),Js('for'))) or PyJsStrictEq(var.get('id'),Js('new'))) or PyJsStrictEq(var.get('id'),Js('try'))) or PyJsStrictEq(var.get('id'),Js('let')))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(4.0)):
                            SWITCHED = True
                            return (((((PyJsStrictEq(var.get('id'),Js('this')) or PyJsStrictEq(var.get('id'),Js('else'))) or PyJsStrictEq(var.get('id'),Js('case'))) or PyJsStrictEq(var.get('id'),Js('void'))) or PyJsStrictEq(var.get('id'),Js('with'))) or PyJsStrictEq(var.get('id'),Js('enum')))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(5.0)):
                            SWITCHED = True
                            return (((((((PyJsStrictEq(var.get('id'),Js('while')) or PyJsStrictEq(var.get('id'),Js('break'))) or PyJsStrictEq(var.get('id'),Js('catch'))) or PyJsStrictEq(var.get('id'),Js('throw'))) or PyJsStrictEq(var.get('id'),Js('const'))) or PyJsStrictEq(var.get('id'),Js('yield'))) or PyJsStrictEq(var.get('id'),Js('class'))) or PyJsStrictEq(var.get('id'),Js('super')))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(6.0)):
                            SWITCHED = True
                            return (((((PyJsStrictEq(var.get('id'),Js('return')) or PyJsStrictEq(var.get('id'),Js('typeof'))) or PyJsStrictEq(var.get('id'),Js('delete'))) or PyJsStrictEq(var.get('id'),Js('switch'))) or PyJsStrictEq(var.get('id'),Js('export'))) or PyJsStrictEq(var.get('id'),Js('import')))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(7.0)):
                            SWITCHED = True
                            return ((PyJsStrictEq(var.get('id'),Js('default')) or PyJsStrictEq(var.get('id'),Js('finally'))) or PyJsStrictEq(var.get('id'),Js('extends')))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(8.0)):
                            SWITCHED = True
                            return ((PyJsStrictEq(var.get('id'),Js('function')) or PyJsStrictEq(var.get('id'),Js('continue'))) or PyJsStrictEq(var.get('id'),Js('debugger')))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(10.0)):
                            SWITCHED = True
                            return PyJsStrictEq(var.get('id'),Js('instanceof'))
                        if True:
                            SWITCHED = True
                            return Js(False)
                        SWITCHED = True
                        break
                PyJs_anonymous_416_._set_name('anonymous')
                var.get('Scanner').get('prototype').put('isKeyword', PyJs_anonymous_416_)
                @Js
                def PyJs_anonymous_417_(i, this, arguments, var=var):
                    var = Scope({'i':i, 'this':this, 'arguments':arguments}, var)
                    var.registers(['i', 'first', 'second', 'cp'])
                    var.put('cp', var.get(u"this").get('source').callprop('charCodeAt', var.get('i')))
                    if ((var.get('cp')>=Js(55296)) and (var.get('cp')<=Js(56319))):
                        var.put('second', var.get(u"this").get('source').callprop('charCodeAt', (var.get('i')+Js(1.0))))
                        if ((var.get('second')>=Js(56320)) and (var.get('second')<=Js(57343))):
                            var.put('first', var.get('cp'))
                            var.put('cp', (((((var.get('first')-Js(55296))*Js(1024))+var.get('second'))-Js(56320))+Js(65536)))
                    return var.get('cp')
                PyJs_anonymous_417_._set_name('anonymous')
                var.get('Scanner').get('prototype').put('codePointAt', PyJs_anonymous_417_)
                @Js
                def PyJs_anonymous_418_(prefix, this, arguments, var=var):
                    var = Scope({'prefix':prefix, 'this':this, 'arguments':arguments}, var)
                    var.registers(['code', 'prefix', 'len', 'i'])
                    var.put('len', (Js(4.0) if PyJsStrictEq(var.get('prefix'),Js('u')) else Js(2.0)))
                    var.put('code', Js(0.0))
                    #for JS loop
                    var.put('i', Js(0.0))
                    while (var.get('i')<var.get('len')):
                        try:
                            if (var.get(u"this").callprop('eof').neg() and var.get('character_1').get('Character').callprop('isHexDigit', var.get(u"this").get('source').callprop('charCodeAt', var.get(u"this").get('index')))):
                                var.put('code', ((var.get('code')*Js(16.0))+var.get('hexValue')(var.get(u"this").get('source').get((var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))-Js(1))))))
                            else:
                                return var.get(u"null")
                        finally:
                                var.put('i',Js(var.get('i').to_number())+Js(1))
                    return var.get('String').callprop('fromCharCode', var.get('code'))
                PyJs_anonymous_418_._set_name('anonymous')
                var.get('Scanner').get('prototype').put('scanHexEscape', PyJs_anonymous_418_)
                @Js
                def PyJs_anonymous_419_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['code', 'ch'])
                    var.put('ch', var.get(u"this").get('source').get(var.get(u"this").get('index')))
                    var.put('code', Js(0.0))
                    if PyJsStrictEq(var.get('ch'),Js('}')):
                        var.get(u"this").callprop('throwUnexpectedToken')
                    while var.get(u"this").callprop('eof').neg():
                        var.put('ch', var.get(u"this").get('source').get((var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))-Js(1))))
                        if var.get('character_1').get('Character').callprop('isHexDigit', var.get('ch').callprop('charCodeAt', Js(0.0))).neg():
                            break
                        var.put('code', ((var.get('code')*Js(16.0))+var.get('hexValue')(var.get('ch'))))
                    if ((var.get('code')>Js(1114111)) or PyJsStrictNeq(var.get('ch'),Js('}'))):
                        var.get(u"this").callprop('throwUnexpectedToken')
                    return var.get('character_1').get('Character').callprop('fromCodePoint', var.get('code'))
                PyJs_anonymous_419_._set_name('anonymous')
                var.get('Scanner').get('prototype').put('scanUnicodeCodePointEscape', PyJs_anonymous_419_)
                @Js
                def PyJs_anonymous_420_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['start', 'ch'])
                    var.put('start', (var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))-Js(1)))
                    while var.get(u"this").callprop('eof').neg():
                        var.put('ch', var.get(u"this").get('source').callprop('charCodeAt', var.get(u"this").get('index')))
                        if PyJsStrictEq(var.get('ch'),Js(92)):
                            var.get(u"this").put('index', var.get('start'))
                            return var.get(u"this").callprop('getComplexIdentifier')
                        else:
                            if ((var.get('ch')>=Js(55296)) and (var.get('ch')<Js(57343))):
                                var.get(u"this").put('index', var.get('start'))
                                return var.get(u"this").callprop('getComplexIdentifier')
                        if var.get('character_1').get('Character').callprop('isIdentifierPart', var.get('ch')):
                            var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))
                        else:
                            break
                    return var.get(u"this").get('source').callprop('slice', var.get('start'), var.get(u"this").get('index'))
                PyJs_anonymous_420_._set_name('anonymous')
                var.get('Scanner').get('prototype').put('getIdentifier', PyJs_anonymous_420_)
                @Js
                def PyJs_anonymous_421_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['id', 'ch', 'cp'])
                    var.put('cp', var.get(u"this").callprop('codePointAt', var.get(u"this").get('index')))
                    var.put('id', var.get('character_1').get('Character').callprop('fromCodePoint', var.get('cp')))
                    var.get(u"this").put('index', var.get('id').get('length'), '+')
                    pass
                    if PyJsStrictEq(var.get('cp'),Js(92)):
                        if PyJsStrictNeq(var.get(u"this").get('source').callprop('charCodeAt', var.get(u"this").get('index')),Js(117)):
                            var.get(u"this").callprop('throwUnexpectedToken')
                        var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))
                        if PyJsStrictEq(var.get(u"this").get('source').get(var.get(u"this").get('index')),Js('{')):
                            var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))
                            var.put('ch', var.get(u"this").callprop('scanUnicodeCodePointEscape'))
                        else:
                            var.put('ch', var.get(u"this").callprop('scanHexEscape', Js('u')))
                            if ((PyJsStrictEq(var.get('ch'),var.get(u"null")) or PyJsStrictEq(var.get('ch'),Js('\\'))) or var.get('character_1').get('Character').callprop('isIdentifierStart', var.get('ch').callprop('charCodeAt', Js(0.0))).neg()):
                                var.get(u"this").callprop('throwUnexpectedToken')
                        var.put('id', var.get('ch'))
                    while var.get(u"this").callprop('eof').neg():
                        var.put('cp', var.get(u"this").callprop('codePointAt', var.get(u"this").get('index')))
                        if var.get('character_1').get('Character').callprop('isIdentifierPart', var.get('cp')).neg():
                            break
                        var.put('ch', var.get('character_1').get('Character').callprop('fromCodePoint', var.get('cp')))
                        var.put('id', var.get('ch'), '+')
                        var.get(u"this").put('index', var.get('ch').get('length'), '+')
                        if PyJsStrictEq(var.get('cp'),Js(92)):
                            var.put('id', var.get('id').callprop('substr', Js(0.0), (var.get('id').get('length')-Js(1.0))))
                            if PyJsStrictNeq(var.get(u"this").get('source').callprop('charCodeAt', var.get(u"this").get('index')),Js(117)):
                                var.get(u"this").callprop('throwUnexpectedToken')
                            var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))
                            if PyJsStrictEq(var.get(u"this").get('source').get(var.get(u"this").get('index')),Js('{')):
                                var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))
                                var.put('ch', var.get(u"this").callprop('scanUnicodeCodePointEscape'))
                            else:
                                var.put('ch', var.get(u"this").callprop('scanHexEscape', Js('u')))
                                if ((PyJsStrictEq(var.get('ch'),var.get(u"null")) or PyJsStrictEq(var.get('ch'),Js('\\'))) or var.get('character_1').get('Character').callprop('isIdentifierPart', var.get('ch').callprop('charCodeAt', Js(0.0))).neg()):
                                    var.get(u"this").callprop('throwUnexpectedToken')
                            var.put('id', var.get('ch'), '+')
                    return var.get('id')
                PyJs_anonymous_421_._set_name('anonymous')
                var.get('Scanner').get('prototype').put('getComplexIdentifier', PyJs_anonymous_421_)
                @Js
                def PyJs_anonymous_422_(ch, this, arguments, var=var):
                    var = Scope({'ch':ch, 'this':this, 'arguments':arguments}, var)
                    var.registers(['code', 'ch', 'octal'])
                    var.put('octal', PyJsStrictNeq(var.get('ch'),Js('0')))
                    var.put('code', var.get('octalValue')(var.get('ch')))
                    if (var.get(u"this").callprop('eof').neg() and var.get('character_1').get('Character').callprop('isOctalDigit', var.get(u"this").get('source').callprop('charCodeAt', var.get(u"this").get('index')))):
                        var.put('octal', Js(True))
                        var.put('code', ((var.get('code')*Js(8.0))+var.get('octalValue')(var.get(u"this").get('source').get((var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))-Js(1))))))
                        if (((Js('0123').callprop('indexOf', var.get('ch'))>=Js(0.0)) and var.get(u"this").callprop('eof').neg()) and var.get('character_1').get('Character').callprop('isOctalDigit', var.get(u"this").get('source').callprop('charCodeAt', var.get(u"this").get('index')))):
                            var.put('code', ((var.get('code')*Js(8.0))+var.get('octalValue')(var.get(u"this").get('source').get((var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))-Js(1))))))
                    PyJs_Object_423_ = Js({'code':var.get('code'),'octal':var.get('octal')})
                    return PyJs_Object_423_
                PyJs_anonymous_422_._set_name('anonymous')
                var.get('Scanner').get('prototype').put('octalToDecimal', PyJs_anonymous_422_)
                @Js
                def PyJs_anonymous_424_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['restore', 'type', 'start', 'id'])
                    pass
                    var.put('start', var.get(u"this").get('index'))
                    var.put('id', (var.get(u"this").callprop('getComplexIdentifier') if PyJsStrictEq(var.get(u"this").get('source').callprop('charCodeAt', var.get('start')),Js(92)) else var.get(u"this").callprop('getIdentifier')))
                    if PyJsStrictEq(var.get('id').get('length'),Js(1.0)):
                        var.put('type', Js(3.0))
                    else:
                        if var.get(u"this").callprop('isKeyword', var.get('id')):
                            var.put('type', Js(4.0))
                        else:
                            if PyJsStrictEq(var.get('id'),Js('null')):
                                var.put('type', Js(5.0))
                            else:
                                if (PyJsStrictEq(var.get('id'),Js('true')) or PyJsStrictEq(var.get('id'),Js('false'))):
                                    var.put('type', Js(1.0))
                                else:
                                    var.put('type', Js(3.0))
                    if (PyJsStrictNeq(var.get('type'),Js(3.0)) and PyJsStrictNeq((var.get('start')+var.get('id').get('length')),var.get(u"this").get('index'))):
                        var.put('restore', var.get(u"this").get('index'))
                        var.get(u"this").put('index', var.get('start'))
                        var.get(u"this").callprop('tolerateUnexpectedToken', var.get('messages_1').get('Messages').get('InvalidEscapedReservedWord'))
                        var.get(u"this").put('index', var.get('restore'))
                    PyJs_Object_425_ = Js({'type':var.get('type'),'value':var.get('id'),'lineNumber':var.get(u"this").get('lineNumber'),'lineStart':var.get(u"this").get('lineStart'),'start':var.get('start'),'end':var.get(u"this").get('index')})
                    return PyJs_Object_425_
                PyJs_anonymous_424_._set_name('anonymous')
                var.get('Scanner').get('prototype').put('scanIdentifier', PyJs_anonymous_424_)
                @Js
                def PyJs_anonymous_426_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['start', 'str'])
                    var.put('start', var.get(u"this").get('index'))
                    var.put('str', var.get(u"this").get('source').get(var.get(u"this").get('index')))
                    while 1:
                        SWITCHED = False
                        CONDITION = (var.get('str'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js('(')):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js('{')):
                            SWITCHED = True
                            if PyJsStrictEq(var.get('str'),Js('{')):
                                var.get(u"this").get('curlyStack').callprop('push', Js('{'))
                            var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, Js('.')):
                            SWITCHED = True
                            var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))
                            if (PyJsStrictEq(var.get(u"this").get('source').get(var.get(u"this").get('index')),Js('.')) and PyJsStrictEq(var.get(u"this").get('source').get((var.get(u"this").get('index')+Js(1.0))),Js('.'))):
                                var.get(u"this").put('index', Js(2.0), '+')
                                var.put('str', Js('...'))
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, Js('}')):
                            SWITCHED = True
                            var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))
                            var.get(u"this").get('curlyStack').callprop('pop')
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(')')):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(';')):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(',')):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js('[')):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(']')):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(':')):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js('?')):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js('~')):
                            SWITCHED = True
                            var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))
                            break
                        if True:
                            SWITCHED = True
                            var.put('str', var.get(u"this").get('source').callprop('substr', var.get(u"this").get('index'), Js(4.0)))
                            if PyJsStrictEq(var.get('str'),Js('>>>=')):
                                var.get(u"this").put('index', Js(4.0), '+')
                            else:
                                var.put('str', var.get('str').callprop('substr', Js(0.0), Js(3.0)))
                                if (((((PyJsStrictEq(var.get('str'),Js('===')) or PyJsStrictEq(var.get('str'),Js('!=='))) or PyJsStrictEq(var.get('str'),Js('>>>'))) or PyJsStrictEq(var.get('str'),Js('<<='))) or PyJsStrictEq(var.get('str'),Js('>>='))) or PyJsStrictEq(var.get('str'),Js('**='))):
                                    var.get(u"this").put('index', Js(3.0), '+')
                                else:
                                    var.put('str', var.get('str').callprop('substr', Js(0.0), Js(2.0)))
                                    def PyJs_LONG_428_(var=var):
                                        def PyJs_LONG_427_(var=var):
                                            return (((((((((PyJsStrictEq(var.get('str'),Js('&&')) or PyJsStrictEq(var.get('str'),Js('||'))) or PyJsStrictEq(var.get('str'),Js('=='))) or PyJsStrictEq(var.get('str'),Js('!='))) or PyJsStrictEq(var.get('str'),Js('+='))) or PyJsStrictEq(var.get('str'),Js('-='))) or PyJsStrictEq(var.get('str'),Js('*='))) or PyJsStrictEq(var.get('str'),Js('/='))) or PyJsStrictEq(var.get('str'),Js('++'))) or PyJsStrictEq(var.get('str'),Js('--')))
                                        return (((((((((PyJs_LONG_427_() or PyJsStrictEq(var.get('str'),Js('<<'))) or PyJsStrictEq(var.get('str'),Js('>>'))) or PyJsStrictEq(var.get('str'),Js('&='))) or PyJsStrictEq(var.get('str'),Js('|='))) or PyJsStrictEq(var.get('str'),Js('^='))) or PyJsStrictEq(var.get('str'),Js('%='))) or PyJsStrictEq(var.get('str'),Js('<='))) or PyJsStrictEq(var.get('str'),Js('>='))) or PyJsStrictEq(var.get('str'),Js('=>')))
                                    if (PyJs_LONG_428_() or PyJsStrictEq(var.get('str'),Js('**'))):
                                        var.get(u"this").put('index', Js(2.0), '+')
                                    else:
                                        var.put('str', var.get(u"this").get('source').get(var.get(u"this").get('index')))
                                        if (Js('<>=!+-*%&|^/').callprop('indexOf', var.get('str'))>=Js(0.0)):
                                            var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))
                        SWITCHED = True
                        break
                    if PyJsStrictEq(var.get(u"this").get('index'),var.get('start')):
                        var.get(u"this").callprop('throwUnexpectedToken')
                    PyJs_Object_429_ = Js({'type':Js(7.0),'value':var.get('str'),'lineNumber':var.get(u"this").get('lineNumber'),'lineStart':var.get(u"this").get('lineStart'),'start':var.get('start'),'end':var.get(u"this").get('index')})
                    return PyJs_Object_429_
                PyJs_anonymous_426_._set_name('anonymous')
                var.get('Scanner').get('prototype').put('scanPunctuator', PyJs_anonymous_426_)
                @Js
                def PyJs_anonymous_430_(start, this, arguments, var=var):
                    var = Scope({'start':start, 'this':this, 'arguments':arguments}, var)
                    var.registers(['start', 'num'])
                    var.put('num', Js(''))
                    while var.get(u"this").callprop('eof').neg():
                        if var.get('character_1').get('Character').callprop('isHexDigit', var.get(u"this").get('source').callprop('charCodeAt', var.get(u"this").get('index'))).neg():
                            break
                        var.put('num', var.get(u"this").get('source').get((var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))-Js(1))), '+')
                    if PyJsStrictEq(var.get('num').get('length'),Js(0.0)):
                        var.get(u"this").callprop('throwUnexpectedToken')
                    if var.get('character_1').get('Character').callprop('isIdentifierStart', var.get(u"this").get('source').callprop('charCodeAt', var.get(u"this").get('index'))):
                        var.get(u"this").callprop('throwUnexpectedToken')
                    PyJs_Object_431_ = Js({'type':Js(6.0),'value':var.get('parseInt')((Js('0x')+var.get('num')), Js(16.0)),'lineNumber':var.get(u"this").get('lineNumber'),'lineStart':var.get(u"this").get('lineStart'),'start':var.get('start'),'end':var.get(u"this").get('index')})
                    return PyJs_Object_431_
                PyJs_anonymous_430_._set_name('anonymous')
                var.get('Scanner').get('prototype').put('scanHexLiteral', PyJs_anonymous_430_)
                @Js
                def PyJs_anonymous_432_(start, this, arguments, var=var):
                    var = Scope({'start':start, 'this':this, 'arguments':arguments}, var)
                    var.registers(['start', 'ch', 'num'])
                    var.put('num', Js(''))
                    pass
                    while var.get(u"this").callprop('eof').neg():
                        var.put('ch', var.get(u"this").get('source').get(var.get(u"this").get('index')))
                        if (PyJsStrictNeq(var.get('ch'),Js('0')) and PyJsStrictNeq(var.get('ch'),Js('1'))):
                            break
                        var.put('num', var.get(u"this").get('source').get((var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))-Js(1))), '+')
                    if PyJsStrictEq(var.get('num').get('length'),Js(0.0)):
                        var.get(u"this").callprop('throwUnexpectedToken')
                    if var.get(u"this").callprop('eof').neg():
                        var.put('ch', var.get(u"this").get('source').callprop('charCodeAt', var.get(u"this").get('index')))
                        if (var.get('character_1').get('Character').callprop('isIdentifierStart', var.get('ch')) or var.get('character_1').get('Character').callprop('isDecimalDigit', var.get('ch'))):
                            var.get(u"this").callprop('throwUnexpectedToken')
                    PyJs_Object_433_ = Js({'type':Js(6.0),'value':var.get('parseInt')(var.get('num'), Js(2.0)),'lineNumber':var.get(u"this").get('lineNumber'),'lineStart':var.get(u"this").get('lineStart'),'start':var.get('start'),'end':var.get(u"this").get('index')})
                    return PyJs_Object_433_
                PyJs_anonymous_432_._set_name('anonymous')
                var.get('Scanner').get('prototype').put('scanBinaryLiteral', PyJs_anonymous_432_)
                @Js
                def PyJs_anonymous_434_(prefix, start, this, arguments, var=var):
                    var = Scope({'prefix':prefix, 'start':start, 'this':this, 'arguments':arguments}, var)
                    var.registers(['start', 'prefix', 'octal', 'num'])
                    var.put('num', Js(''))
                    var.put('octal', Js(False))
                    if var.get('character_1').get('Character').callprop('isOctalDigit', var.get('prefix').callprop('charCodeAt', Js(0.0))):
                        var.put('octal', Js(True))
                        var.put('num', (Js('0')+var.get(u"this").get('source').get((var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))-Js(1)))))
                    else:
                        var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))
                    while var.get(u"this").callprop('eof').neg():
                        if var.get('character_1').get('Character').callprop('isOctalDigit', var.get(u"this").get('source').callprop('charCodeAt', var.get(u"this").get('index'))).neg():
                            break
                        var.put('num', var.get(u"this").get('source').get((var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))-Js(1))), '+')
                    if (var.get('octal').neg() and PyJsStrictEq(var.get('num').get('length'),Js(0.0))):
                        var.get(u"this").callprop('throwUnexpectedToken')
                    if (var.get('character_1').get('Character').callprop('isIdentifierStart', var.get(u"this").get('source').callprop('charCodeAt', var.get(u"this").get('index'))) or var.get('character_1').get('Character').callprop('isDecimalDigit', var.get(u"this").get('source').callprop('charCodeAt', var.get(u"this").get('index')))):
                        var.get(u"this").callprop('throwUnexpectedToken')
                    PyJs_Object_435_ = Js({'type':Js(6.0),'value':var.get('parseInt')(var.get('num'), Js(8.0)),'octal':var.get('octal'),'lineNumber':var.get(u"this").get('lineNumber'),'lineStart':var.get(u"this").get('lineStart'),'start':var.get('start'),'end':var.get(u"this").get('index')})
                    return PyJs_Object_435_
                PyJs_anonymous_434_._set_name('anonymous')
                var.get('Scanner').get('prototype').put('scanOctalLiteral', PyJs_anonymous_434_)
                @Js
                def PyJs_anonymous_436_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['ch', 'i'])
                    #for JS loop
                    var.put('i', (var.get(u"this").get('index')+Js(1.0)))
                    while (var.get('i')<var.get(u"this").get('length')):
                        try:
                            var.put('ch', var.get(u"this").get('source').get(var.get('i')))
                            if (PyJsStrictEq(var.get('ch'),Js('8')) or PyJsStrictEq(var.get('ch'),Js('9'))):
                                return Js(False)
                            if var.get('character_1').get('Character').callprop('isOctalDigit', var.get('ch').callprop('charCodeAt', Js(0.0))).neg():
                                return Js(True)
                        finally:
                                var.put('i',Js(var.get('i').to_number())+Js(1))
                    return Js(True)
                PyJs_anonymous_436_._set_name('anonymous')
                var.get('Scanner').get('prototype').put('isImplicitOctalLiteral', PyJs_anonymous_436_)
                @Js
                def PyJs_anonymous_437_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['start', 'ch', 'num'])
                    var.put('start', var.get(u"this").get('index'))
                    var.put('ch', var.get(u"this").get('source').get(var.get('start')))
                    var.get('assert_1').callprop('assert', (var.get('character_1').get('Character').callprop('isDecimalDigit', var.get('ch').callprop('charCodeAt', Js(0.0))) or PyJsStrictEq(var.get('ch'),Js('.'))), Js('Numeric literal must start with a decimal digit or a decimal point'))
                    var.put('num', Js(''))
                    if PyJsStrictNeq(var.get('ch'),Js('.')):
                        var.put('num', var.get(u"this").get('source').get((var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))-Js(1))))
                        var.put('ch', var.get(u"this").get('source').get(var.get(u"this").get('index')))
                        if PyJsStrictEq(var.get('num'),Js('0')):
                            if (PyJsStrictEq(var.get('ch'),Js('x')) or PyJsStrictEq(var.get('ch'),Js('X'))):
                                var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))
                                return var.get(u"this").callprop('scanHexLiteral', var.get('start'))
                            if (PyJsStrictEq(var.get('ch'),Js('b')) or PyJsStrictEq(var.get('ch'),Js('B'))):
                                var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))
                                return var.get(u"this").callprop('scanBinaryLiteral', var.get('start'))
                            if (PyJsStrictEq(var.get('ch'),Js('o')) or PyJsStrictEq(var.get('ch'),Js('O'))):
                                return var.get(u"this").callprop('scanOctalLiteral', var.get('ch'), var.get('start'))
                            if (var.get('ch') and var.get('character_1').get('Character').callprop('isOctalDigit', var.get('ch').callprop('charCodeAt', Js(0.0)))):
                                if var.get(u"this").callprop('isImplicitOctalLiteral'):
                                    return var.get(u"this").callprop('scanOctalLiteral', var.get('ch'), var.get('start'))
                        while var.get('character_1').get('Character').callprop('isDecimalDigit', var.get(u"this").get('source').callprop('charCodeAt', var.get(u"this").get('index'))):
                            var.put('num', var.get(u"this").get('source').get((var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))-Js(1))), '+')
                        var.put('ch', var.get(u"this").get('source').get(var.get(u"this").get('index')))
                    if PyJsStrictEq(var.get('ch'),Js('.')):
                        var.put('num', var.get(u"this").get('source').get((var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))-Js(1))), '+')
                        while var.get('character_1').get('Character').callprop('isDecimalDigit', var.get(u"this").get('source').callprop('charCodeAt', var.get(u"this").get('index'))):
                            var.put('num', var.get(u"this").get('source').get((var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))-Js(1))), '+')
                        var.put('ch', var.get(u"this").get('source').get(var.get(u"this").get('index')))
                    if (PyJsStrictEq(var.get('ch'),Js('e')) or PyJsStrictEq(var.get('ch'),Js('E'))):
                        var.put('num', var.get(u"this").get('source').get((var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))-Js(1))), '+')
                        var.put('ch', var.get(u"this").get('source').get(var.get(u"this").get('index')))
                        if (PyJsStrictEq(var.get('ch'),Js('+')) or PyJsStrictEq(var.get('ch'),Js('-'))):
                            var.put('num', var.get(u"this").get('source').get((var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))-Js(1))), '+')
                        if var.get('character_1').get('Character').callprop('isDecimalDigit', var.get(u"this").get('source').callprop('charCodeAt', var.get(u"this").get('index'))):
                            while var.get('character_1').get('Character').callprop('isDecimalDigit', var.get(u"this").get('source').callprop('charCodeAt', var.get(u"this").get('index'))):
                                var.put('num', var.get(u"this").get('source').get((var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))-Js(1))), '+')
                        else:
                            var.get(u"this").callprop('throwUnexpectedToken')
                    if var.get('character_1').get('Character').callprop('isIdentifierStart', var.get(u"this").get('source').callprop('charCodeAt', var.get(u"this").get('index'))):
                        var.get(u"this").callprop('throwUnexpectedToken')
                    PyJs_Object_438_ = Js({'type':Js(6.0),'value':var.get('parseFloat')(var.get('num')),'lineNumber':var.get(u"this").get('lineNumber'),'lineStart':var.get(u"this").get('lineStart'),'start':var.get('start'),'end':var.get(u"this").get('index')})
                    return PyJs_Object_438_
                PyJs_anonymous_437_._set_name('anonymous')
                var.get('Scanner').get('prototype').put('scanNumericLiteral', PyJs_anonymous_437_)
                @Js
                def PyJs_anonymous_439_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['start', 'ch', 'unescaped_1', 'str', 'octal', 'unescaped', 'quote', 'octToDec'])
                    var.put('start', var.get(u"this").get('index'))
                    var.put('quote', var.get(u"this").get('source').get(var.get('start')))
                    var.get('assert_1').callprop('assert', (PyJsStrictEq(var.get('quote'),Js("'")) or PyJsStrictEq(var.get('quote'),Js('"'))), Js('String literal must starts with a quote'))
                    var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))
                    var.put('octal', Js(False))
                    var.put('str', Js(''))
                    while var.get(u"this").callprop('eof').neg():
                        var.put('ch', var.get(u"this").get('source').get((var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))-Js(1))))
                        if PyJsStrictEq(var.get('ch'),var.get('quote')):
                            var.put('quote', Js(''))
                            break
                        else:
                            if PyJsStrictEq(var.get('ch'),Js('\\')):
                                var.put('ch', var.get(u"this").get('source').get((var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))-Js(1))))
                                if (var.get('ch').neg() or var.get('character_1').get('Character').callprop('isLineTerminator', var.get('ch').callprop('charCodeAt', Js(0.0))).neg()):
                                    while 1:
                                        SWITCHED = False
                                        CONDITION = (var.get('ch'))
                                        if SWITCHED or PyJsStrictEq(CONDITION, Js('u')):
                                            SWITCHED = True
                                            if PyJsStrictEq(var.get(u"this").get('source').get(var.get(u"this").get('index')),Js('{')):
                                                var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))
                                                var.put('str', var.get(u"this").callprop('scanUnicodeCodePointEscape'), '+')
                                            else:
                                                var.put('unescaped_1', var.get(u"this").callprop('scanHexEscape', var.get('ch')))
                                                if PyJsStrictEq(var.get('unescaped_1'),var.get(u"null")):
                                                    var.get(u"this").callprop('throwUnexpectedToken')
                                                var.put('str', var.get('unescaped_1'), '+')
                                            break
                                        if SWITCHED or PyJsStrictEq(CONDITION, Js('x')):
                                            SWITCHED = True
                                            var.put('unescaped', var.get(u"this").callprop('scanHexEscape', var.get('ch')))
                                            if PyJsStrictEq(var.get('unescaped'),var.get(u"null")):
                                                var.get(u"this").callprop('throwUnexpectedToken', var.get('messages_1').get('Messages').get('InvalidHexEscapeSequence'))
                                            var.put('str', var.get('unescaped'), '+')
                                            break
                                        if SWITCHED or PyJsStrictEq(CONDITION, Js('n')):
                                            SWITCHED = True
                                            var.put('str', Js('\n'), '+')
                                            break
                                        if SWITCHED or PyJsStrictEq(CONDITION, Js('r')):
                                            SWITCHED = True
                                            var.put('str', Js('\r'), '+')
                                            break
                                        if SWITCHED or PyJsStrictEq(CONDITION, Js('t')):
                                            SWITCHED = True
                                            var.put('str', Js('\t'), '+')
                                            break
                                        if SWITCHED or PyJsStrictEq(CONDITION, Js('b')):
                                            SWITCHED = True
                                            var.put('str', Js('\x08'), '+')
                                            break
                                        if SWITCHED or PyJsStrictEq(CONDITION, Js('f')):
                                            SWITCHED = True
                                            var.put('str', Js('\x0c'), '+')
                                            break
                                        if SWITCHED or PyJsStrictEq(CONDITION, Js('v')):
                                            SWITCHED = True
                                            var.put('str', Js('\x0b'), '+')
                                            break
                                        if SWITCHED or PyJsStrictEq(CONDITION, Js('8')):
                                            SWITCHED = True
                                            pass
                                        if SWITCHED or PyJsStrictEq(CONDITION, Js('9')):
                                            SWITCHED = True
                                            var.put('str', var.get('ch'), '+')
                                            var.get(u"this").callprop('tolerateUnexpectedToken')
                                            break
                                        if True:
                                            SWITCHED = True
                                            if (var.get('ch') and var.get('character_1').get('Character').callprop('isOctalDigit', var.get('ch').callprop('charCodeAt', Js(0.0)))):
                                                var.put('octToDec', var.get(u"this").callprop('octalToDecimal', var.get('ch')))
                                                var.put('octal', (var.get('octToDec').get('octal') or var.get('octal')))
                                                var.put('str', var.get('String').callprop('fromCharCode', var.get('octToDec').get('code')), '+')
                                            else:
                                                var.put('str', var.get('ch'), '+')
                                            break
                                        SWITCHED = True
                                        break
                                else:
                                    var.get(u"this").put('lineNumber',Js(var.get(u"this").get('lineNumber').to_number())+Js(1))
                                    if (PyJsStrictEq(var.get('ch'),Js('\r')) and PyJsStrictEq(var.get(u"this").get('source').get(var.get(u"this").get('index')),Js('\n'))):
                                        var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))
                                    var.get(u"this").put('lineStart', var.get(u"this").get('index'))
                            else:
                                if var.get('character_1').get('Character').callprop('isLineTerminator', var.get('ch').callprop('charCodeAt', Js(0.0))):
                                    break
                                else:
                                    var.put('str', var.get('ch'), '+')
                    if PyJsStrictNeq(var.get('quote'),Js('')):
                        var.get(u"this").put('index', var.get('start'))
                        var.get(u"this").callprop('throwUnexpectedToken')
                    PyJs_Object_440_ = Js({'type':Js(8.0),'value':var.get('str'),'octal':var.get('octal'),'lineNumber':var.get(u"this").get('lineNumber'),'lineStart':var.get(u"this").get('lineStart'),'start':var.get('start'),'end':var.get(u"this").get('index')})
                    return PyJs_Object_440_
                PyJs_anonymous_439_._set_name('anonymous')
                var.get('Scanner').get('prototype').put('scanStringLiteral', PyJs_anonymous_439_)
                @Js
                def PyJs_anonymous_441_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['start', 'cooked', 'head', 'ch', 'unescaped', 'tail', 'restore', 'terminated', 'rawOffset', 'unescaped_2'])
                    var.put('cooked', Js(''))
                    var.put('terminated', Js(False))
                    var.put('start', var.get(u"this").get('index'))
                    var.put('head', PyJsStrictEq(var.get(u"this").get('source').get(var.get('start')),Js('`')))
                    var.put('tail', Js(False))
                    var.put('rawOffset', Js(2.0))
                    var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))
                    while var.get(u"this").callprop('eof').neg():
                        var.put('ch', var.get(u"this").get('source').get((var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))-Js(1))))
                        if PyJsStrictEq(var.get('ch'),Js('`')):
                            var.put('rawOffset', Js(1.0))
                            var.put('tail', Js(True))
                            var.put('terminated', Js(True))
                            break
                        else:
                            if PyJsStrictEq(var.get('ch'),Js('$')):
                                if PyJsStrictEq(var.get(u"this").get('source').get(var.get(u"this").get('index')),Js('{')):
                                    var.get(u"this").get('curlyStack').callprop('push', Js('${'))
                                    var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))
                                    var.put('terminated', Js(True))
                                    break
                                var.put('cooked', var.get('ch'), '+')
                            else:
                                if PyJsStrictEq(var.get('ch'),Js('\\')):
                                    var.put('ch', var.get(u"this").get('source').get((var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))-Js(1))))
                                    if var.get('character_1').get('Character').callprop('isLineTerminator', var.get('ch').callprop('charCodeAt', Js(0.0))).neg():
                                        while 1:
                                            SWITCHED = False
                                            CONDITION = (var.get('ch'))
                                            if SWITCHED or PyJsStrictEq(CONDITION, Js('n')):
                                                SWITCHED = True
                                                var.put('cooked', Js('\n'), '+')
                                                break
                                            if SWITCHED or PyJsStrictEq(CONDITION, Js('r')):
                                                SWITCHED = True
                                                var.put('cooked', Js('\r'), '+')
                                                break
                                            if SWITCHED or PyJsStrictEq(CONDITION, Js('t')):
                                                SWITCHED = True
                                                var.put('cooked', Js('\t'), '+')
                                                break
                                            if SWITCHED or PyJsStrictEq(CONDITION, Js('u')):
                                                SWITCHED = True
                                                if PyJsStrictEq(var.get(u"this").get('source').get(var.get(u"this").get('index')),Js('{')):
                                                    var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))
                                                    var.put('cooked', var.get(u"this").callprop('scanUnicodeCodePointEscape'), '+')
                                                else:
                                                    var.put('restore', var.get(u"this").get('index'))
                                                    var.put('unescaped_2', var.get(u"this").callprop('scanHexEscape', var.get('ch')))
                                                    if PyJsStrictNeq(var.get('unescaped_2'),var.get(u"null")):
                                                        var.put('cooked', var.get('unescaped_2'), '+')
                                                    else:
                                                        var.get(u"this").put('index', var.get('restore'))
                                                        var.put('cooked', var.get('ch'), '+')
                                                break
                                            if SWITCHED or PyJsStrictEq(CONDITION, Js('x')):
                                                SWITCHED = True
                                                var.put('unescaped', var.get(u"this").callprop('scanHexEscape', var.get('ch')))
                                                if PyJsStrictEq(var.get('unescaped'),var.get(u"null")):
                                                    var.get(u"this").callprop('throwUnexpectedToken', var.get('messages_1').get('Messages').get('InvalidHexEscapeSequence'))
                                                var.put('cooked', var.get('unescaped'), '+')
                                                break
                                            if SWITCHED or PyJsStrictEq(CONDITION, Js('b')):
                                                SWITCHED = True
                                                var.put('cooked', Js('\x08'), '+')
                                                break
                                            if SWITCHED or PyJsStrictEq(CONDITION, Js('f')):
                                                SWITCHED = True
                                                var.put('cooked', Js('\x0c'), '+')
                                                break
                                            if SWITCHED or PyJsStrictEq(CONDITION, Js('v')):
                                                SWITCHED = True
                                                var.put('cooked', Js('\x0b'), '+')
                                                break
                                            if True:
                                                SWITCHED = True
                                                if PyJsStrictEq(var.get('ch'),Js('0')):
                                                    if var.get('character_1').get('Character').callprop('isDecimalDigit', var.get(u"this").get('source').callprop('charCodeAt', var.get(u"this").get('index'))):
                                                        var.get(u"this").callprop('throwUnexpectedToken', var.get('messages_1').get('Messages').get('TemplateOctalLiteral'))
                                                    var.put('cooked', Js('\x00'), '+')
                                                else:
                                                    if var.get('character_1').get('Character').callprop('isOctalDigit', var.get('ch').callprop('charCodeAt', Js(0.0))):
                                                        var.get(u"this").callprop('throwUnexpectedToken', var.get('messages_1').get('Messages').get('TemplateOctalLiteral'))
                                                    else:
                                                        var.put('cooked', var.get('ch'), '+')
                                                break
                                            SWITCHED = True
                                            break
                                    else:
                                        var.get(u"this").put('lineNumber',Js(var.get(u"this").get('lineNumber').to_number())+Js(1))
                                        if (PyJsStrictEq(var.get('ch'),Js('\r')) and PyJsStrictEq(var.get(u"this").get('source').get(var.get(u"this").get('index')),Js('\n'))):
                                            var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))
                                        var.get(u"this").put('lineStart', var.get(u"this").get('index'))
                                else:
                                    if var.get('character_1').get('Character').callprop('isLineTerminator', var.get('ch').callprop('charCodeAt', Js(0.0))):
                                        var.get(u"this").put('lineNumber',Js(var.get(u"this").get('lineNumber').to_number())+Js(1))
                                        if (PyJsStrictEq(var.get('ch'),Js('\r')) and PyJsStrictEq(var.get(u"this").get('source').get(var.get(u"this").get('index')),Js('\n'))):
                                            var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))
                                        var.get(u"this").put('lineStart', var.get(u"this").get('index'))
                                        var.put('cooked', Js('\n'), '+')
                                    else:
                                        var.put('cooked', var.get('ch'), '+')
                    if var.get('terminated').neg():
                        var.get(u"this").callprop('throwUnexpectedToken')
                    if var.get('head').neg():
                        var.get(u"this").get('curlyStack').callprop('pop')
                    PyJs_Object_442_ = Js({'type':Js(10.0),'value':var.get(u"this").get('source').callprop('slice', (var.get('start')+Js(1.0)), (var.get(u"this").get('index')-var.get('rawOffset'))),'cooked':var.get('cooked'),'head':var.get('head'),'tail':var.get('tail'),'lineNumber':var.get(u"this").get('lineNumber'),'lineStart':var.get(u"this").get('lineStart'),'start':var.get('start'),'end':var.get(u"this").get('index')})
                    return PyJs_Object_442_
                PyJs_anonymous_441_._set_name('anonymous')
                var.get('Scanner').get('prototype').put('scanTemplate', PyJs_anonymous_441_)
                @Js
                def PyJs_anonymous_443_(pattern, flags, this, arguments, var=var):
                    var = Scope({'pattern':pattern, 'flags':flags, 'this':this, 'arguments':arguments}, var)
                    var.registers(['self', 'flags', 'astralSubstitute', 'pattern', 'tmp'])
                    var.put('astralSubstitute', Js('\uffff'))
                    var.put('tmp', var.get('pattern'))
                    var.put('self', var.get(u"this"))
                    if (var.get('flags').callprop('indexOf', Js('u'))>=Js(0.0)):
                        @Js
                        def PyJs_anonymous_444_(PyJsArg_2430_, PyJsArg_2431_, PyJsArg_2432_, this, arguments, var=var):
                            var = Scope({'$0':PyJsArg_2430_, '$1':PyJsArg_2431_, '$2':PyJsArg_2432_, 'this':this, 'arguments':arguments}, var)
                            var.registers(['$2', 'codePoint', '$0', '$1'])
                            var.put('codePoint', var.get('parseInt')((var.get('$1') or var.get('$2')), Js(16.0)))
                            if (var.get('codePoint')>Js(1114111)):
                                var.get('self').callprop('throwUnexpectedToken', var.get('messages_1').get('Messages').get('InvalidRegExp'))
                            if (var.get('codePoint')<=Js(65535)):
                                return var.get('String').callprop('fromCharCode', var.get('codePoint'))
                            return var.get('astralSubstitute')
                        PyJs_anonymous_444_._set_name('anonymous')
                        var.put('tmp', var.get('tmp').callprop('replace', JsRegExp('/\\\\u\\{([0-9a-fA-F]+)\\}|\\\\u([a-fA-F0-9]{4})/g'), PyJs_anonymous_444_).callprop('replace', JsRegExp('/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g'), var.get('astralSubstitute')))
                    try:
                        var.get('RegExp')(var.get('tmp'))
                    except PyJsException as PyJsTempException:
                        PyJsHolder_65_24391552 = var.own.get('e')
                        var.force_own_put('e', PyExceptionToJs(PyJsTempException))
                        try:
                            var.get(u"this").callprop('throwUnexpectedToken', var.get('messages_1').get('Messages').get('InvalidRegExp'))
                        finally:
                            if PyJsHolder_65_24391552 is not None:
                                var.own['e'] = PyJsHolder_65_24391552
                            else:
                                del var.own['e']
                            del PyJsHolder_65_24391552
                    try:
                        return var.get('RegExp').create(var.get('pattern'), var.get('flags'))
                    except PyJsException as PyJsTempException:
                        PyJsHolder_657863657074696f6e_10958598 = var.own.get('exception')
                        var.force_own_put('exception', PyExceptionToJs(PyJsTempException))
                        try:
                            return var.get(u"null")
                        finally:
                            if PyJsHolder_657863657074696f6e_10958598 is not None:
                                var.own['exception'] = PyJsHolder_657863657074696f6e_10958598
                            else:
                                del var.own['exception']
                            del PyJsHolder_657863657074696f6e_10958598
                PyJs_anonymous_443_._set_name('anonymous')
                var.get('Scanner').get('prototype').put('testRegExp', PyJs_anonymous_443_)
                @Js
                def PyJs_anonymous_445_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['ch', 'terminated', 'str', 'classMarker'])
                    var.put('ch', var.get(u"this").get('source').get(var.get(u"this").get('index')))
                    var.get('assert_1').callprop('assert', PyJsStrictEq(var.get('ch'),Js('/')), Js('Regular expression literal must start with a slash'))
                    var.put('str', var.get(u"this").get('source').get((var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))-Js(1))))
                    var.put('classMarker', Js(False))
                    var.put('terminated', Js(False))
                    while var.get(u"this").callprop('eof').neg():
                        var.put('ch', var.get(u"this").get('source').get((var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))-Js(1))))
                        var.put('str', var.get('ch'), '+')
                        if PyJsStrictEq(var.get('ch'),Js('\\')):
                            var.put('ch', var.get(u"this").get('source').get((var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))-Js(1))))
                            if var.get('character_1').get('Character').callprop('isLineTerminator', var.get('ch').callprop('charCodeAt', Js(0.0))):
                                var.get(u"this").callprop('throwUnexpectedToken', var.get('messages_1').get('Messages').get('UnterminatedRegExp'))
                            var.put('str', var.get('ch'), '+')
                        else:
                            if var.get('character_1').get('Character').callprop('isLineTerminator', var.get('ch').callprop('charCodeAt', Js(0.0))):
                                var.get(u"this").callprop('throwUnexpectedToken', var.get('messages_1').get('Messages').get('UnterminatedRegExp'))
                            else:
                                if var.get('classMarker'):
                                    if PyJsStrictEq(var.get('ch'),Js(']')):
                                        var.put('classMarker', Js(False))
                                else:
                                    if PyJsStrictEq(var.get('ch'),Js('/')):
                                        var.put('terminated', Js(True))
                                        break
                                    else:
                                        if PyJsStrictEq(var.get('ch'),Js('[')):
                                            var.put('classMarker', Js(True))
                    if var.get('terminated').neg():
                        var.get(u"this").callprop('throwUnexpectedToken', var.get('messages_1').get('Messages').get('UnterminatedRegExp'))
                    return var.get('str').callprop('substr', Js(1.0), (var.get('str').get('length')-Js(2.0)))
                PyJs_anonymous_445_._set_name('anonymous')
                var.get('Scanner').get('prototype').put('scanRegExpBody', PyJs_anonymous_445_)
                @Js
                def PyJs_anonymous_446_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['ch', 'flags', 'str', 'restore', 'char'])
                    var.put('str', Js(''))
                    var.put('flags', Js(''))
                    while var.get(u"this").callprop('eof').neg():
                        var.put('ch', var.get(u"this").get('source').get(var.get(u"this").get('index')))
                        if var.get('character_1').get('Character').callprop('isIdentifierPart', var.get('ch').callprop('charCodeAt', Js(0.0))).neg():
                            break
                        var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))
                        if (PyJsStrictEq(var.get('ch'),Js('\\')) and var.get(u"this").callprop('eof').neg()):
                            var.put('ch', var.get(u"this").get('source').get(var.get(u"this").get('index')))
                            if PyJsStrictEq(var.get('ch'),Js('u')):
                                var.get(u"this").put('index',Js(var.get(u"this").get('index').to_number())+Js(1))
                                var.put('restore', var.get(u"this").get('index'))
                                var.put('char', var.get(u"this").callprop('scanHexEscape', Js('u')))
                                if PyJsStrictNeq(var.get('char'),var.get(u"null")):
                                    var.put('flags', var.get('char'), '+')
                                    #for JS loop
                                    var.put('str', Js('\\u'), '+')
                                    while (var.get('restore')<var.get(u"this").get('index')):
                                        try:
                                            var.put('str', var.get(u"this").get('source').get(var.get('restore')), '+')
                                        finally:
                                                var.put('restore',Js(var.get('restore').to_number())+Js(1))
                                else:
                                    var.get(u"this").put('index', var.get('restore'))
                                    var.put('flags', Js('u'), '+')
                                    var.put('str', Js('\\u'), '+')
                                var.get(u"this").callprop('tolerateUnexpectedToken')
                            else:
                                var.put('str', Js('\\'), '+')
                                var.get(u"this").callprop('tolerateUnexpectedToken')
                        else:
                            var.put('flags', var.get('ch'), '+')
                            var.put('str', var.get('ch'), '+')
                    return var.get('flags')
                PyJs_anonymous_446_._set_name('anonymous')
                var.get('Scanner').get('prototype').put('scanRegExpFlags', PyJs_anonymous_446_)
                @Js
                def PyJs_anonymous_447_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['start', 'pattern', 'value', 'flags'])
                    var.put('start', var.get(u"this").get('index'))
                    var.put('pattern', var.get(u"this").callprop('scanRegExpBody'))
                    var.put('flags', var.get(u"this").callprop('scanRegExpFlags'))
                    var.put('value', var.get(u"this").callprop('testRegExp', var.get('pattern'), var.get('flags')))
                    PyJs_Object_448_ = Js({'type':Js(9.0),'value':Js(''),'pattern':var.get('pattern'),'flags':var.get('flags'),'regex':var.get('value'),'lineNumber':var.get(u"this").get('lineNumber'),'lineStart':var.get(u"this").get('lineStart'),'start':var.get('start'),'end':var.get(u"this").get('index')})
                    return PyJs_Object_448_
                PyJs_anonymous_447_._set_name('anonymous')
                var.get('Scanner').get('prototype').put('scanRegExp', PyJs_anonymous_447_)
                @Js
                def PyJs_anonymous_449_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['cp'])
                    if var.get(u"this").callprop('eof'):
                        PyJs_Object_450_ = Js({'type':Js(2.0),'value':Js(''),'lineNumber':var.get(u"this").get('lineNumber'),'lineStart':var.get(u"this").get('lineStart'),'start':var.get(u"this").get('index'),'end':var.get(u"this").get('index')})
                        return PyJs_Object_450_
                    var.put('cp', var.get(u"this").get('source').callprop('charCodeAt', var.get(u"this").get('index')))
                    if var.get('character_1').get('Character').callprop('isIdentifierStart', var.get('cp')):
                        return var.get(u"this").callprop('scanIdentifier')
                    if ((PyJsStrictEq(var.get('cp'),Js(40)) or PyJsStrictEq(var.get('cp'),Js(41))) or PyJsStrictEq(var.get('cp'),Js(59))):
                        return var.get(u"this").callprop('scanPunctuator')
                    if (PyJsStrictEq(var.get('cp'),Js(39)) or PyJsStrictEq(var.get('cp'),Js(34))):
                        return var.get(u"this").callprop('scanStringLiteral')
                    if PyJsStrictEq(var.get('cp'),Js(46)):
                        if var.get('character_1').get('Character').callprop('isDecimalDigit', var.get(u"this").get('source').callprop('charCodeAt', (var.get(u"this").get('index')+Js(1.0)))):
                            return var.get(u"this").callprop('scanNumericLiteral')
                        return var.get(u"this").callprop('scanPunctuator')
                    if var.get('character_1').get('Character').callprop('isDecimalDigit', var.get('cp')):
                        return var.get(u"this").callprop('scanNumericLiteral')
                    if (PyJsStrictEq(var.get('cp'),Js(96)) or (PyJsStrictEq(var.get('cp'),Js(125)) and PyJsStrictEq(var.get(u"this").get('curlyStack').get((var.get(u"this").get('curlyStack').get('length')-Js(1.0))),Js('${')))):
                        return var.get(u"this").callprop('scanTemplate')
                    if ((var.get('cp')>=Js(55296)) and (var.get('cp')<Js(57343))):
                        if var.get('character_1').get('Character').callprop('isIdentifierStart', var.get(u"this").callprop('codePointAt', var.get(u"this").get('index'))):
                            return var.get(u"this").callprop('scanIdentifier')
                    return var.get(u"this").callprop('scanPunctuator')
                PyJs_anonymous_449_._set_name('anonymous')
                var.get('Scanner').get('prototype').put('lex', PyJs_anonymous_449_)
                return var.get('Scanner')
            PyJs_anonymous_389_._set_name('anonymous')
            var.put('Scanner', PyJs_anonymous_389_())
            var.get('exports').put('Scanner', var.get('Scanner'))
        PyJs_anonymous_387_._set_name('anonymous')
        @Js
        def PyJs_anonymous_451_(module, exports, this, arguments, var=var):
            var = Scope({'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
            var.registers(['module', 'exports'])
            Js('use strict')
            PyJs_Object_452_ = Js({'value':Js(True)})
            var.get('Object').callprop('defineProperty', var.get('exports'), Js('__esModule'), PyJs_Object_452_)
            PyJs_Object_453_ = Js({})
            var.get('exports').put('TokenName', PyJs_Object_453_)
            var.get('exports').get('TokenName').put('1', Js('Boolean'))
            var.get('exports').get('TokenName').put('2', Js('<end>'))
            var.get('exports').get('TokenName').put('3', Js('Identifier'))
            var.get('exports').get('TokenName').put('4', Js('Keyword'))
            var.get('exports').get('TokenName').put('5', Js('Null'))
            var.get('exports').get('TokenName').put('6', Js('Numeric'))
            var.get('exports').get('TokenName').put('7', Js('Punctuator'))
            var.get('exports').get('TokenName').put('8', Js('String'))
            var.get('exports').get('TokenName').put('9', Js('RegularExpression'))
            var.get('exports').get('TokenName').put('10', Js('Template'))
        PyJs_anonymous_451_._set_name('anonymous')
        @Js
        def PyJs_anonymous_454_(module, exports, this, arguments, var=var):
            var = Scope({'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
            var.registers(['module', 'exports'])
            Js('use strict')
            PyJs_Object_455_ = Js({'value':Js(True)})
            var.get('Object').callprop('defineProperty', var.get('exports'), Js('__esModule'), PyJs_Object_455_)
            PyJs_Object_456_ = Js({'quot':Js('"'),'amp':Js('&'),'apos':Js("'"),'gt':Js('>'),'nbsp':Js('\xa0'),'iexcl':Js('¡'),'cent':Js('¢'),'pound':Js('£'),'curren':Js('¤'),'yen':Js('¥'),'brvbar':Js('¦'),'sect':Js('§'),'uml':Js('¨'),'copy':Js('©'),'ordf':Js('ª'),'laquo':Js('«'),'not':Js('¬'),'shy':Js('\xad'),'reg':Js('®'),'macr':Js('¯'),'deg':Js('°'),'plusmn':Js('±'),'sup2':Js('²'),'sup3':Js('³'),'acute':Js('´'),'micro':Js('µ'),'para':Js('¶'),'middot':Js('·'),'cedil':Js('¸'),'sup1':Js('¹'),'ordm':Js('º'),'raquo':Js('»'),'frac14':Js('¼'),'frac12':Js('½'),'frac34':Js('¾'),'iquest':Js('¿'),'Agrave':Js('À'),'Aacute':Js('Á'),'Acirc':Js('Â'),'Atilde':Js('Ã'),'Auml':Js('Ä'),'Aring':Js('Å'),'AElig':Js('Æ'),'Ccedil':Js('Ç'),'Egrave':Js('È'),'Eacute':Js('É'),'Ecirc':Js('Ê'),'Euml':Js('Ë'),'Igrave':Js('Ì'),'Iacute':Js('Í'),'Icirc':Js('Î'),'Iuml':Js('Ï'),'ETH':Js('Ð'),'Ntilde':Js('Ñ'),'Ograve':Js('Ò'),'Oacute':Js('Ó'),'Ocirc':Js('Ô'),'Otilde':Js('Õ'),'Ouml':Js('Ö'),'times':Js('×'),'Oslash':Js('Ø'),'Ugrave':Js('Ù'),'Uacute':Js('Ú'),'Ucirc':Js('Û'),'Uuml':Js('Ü'),'Yacute':Js('Ý'),'THORN':Js('Þ'),'szlig':Js('ß'),'agrave':Js('à'),'aacute':Js('á'),'acirc':Js('â'),'atilde':Js('ã'),'auml':Js('ä'),'aring':Js('å'),'aelig':Js('æ'),'ccedil':Js('ç'),'egrave':Js('è'),'eacute':Js('é'),'ecirc':Js('ê'),'euml':Js('ë'),'igrave':Js('ì'),'iacute':Js('í'),'icirc':Js('î'),'iuml':Js('ï'),'eth':Js('ð'),'ntilde':Js('ñ'),'ograve':Js('ò'),'oacute':Js('ó'),'ocirc':Js('ô'),'otilde':Js('õ'),'ouml':Js('ö'),'divide':Js('÷'),'oslash':Js('ø'),'ugrave':Js('ù'),'uacute':Js('ú'),'ucirc':Js('û'),'uuml':Js('ü'),'yacute':Js('ý'),'thorn':Js('þ'),'yuml':Js('ÿ'),'OElig':Js('Œ'),'oelig':Js('œ'),'Scaron':Js('Š'),'scaron':Js('š'),'Yuml':Js('Ÿ'),'fnof':Js('ƒ'),'circ':Js('ˆ'),'tilde':Js('˜'),'Alpha':Js('Α'),'Beta':Js('Β'),'Gamma':Js('Γ'),'Delta':Js('Δ'),'Epsilon':Js('Ε'),'Zeta':Js('Ζ'),'Eta':Js('Η'),'Theta':Js('Θ'),'Iota':Js('Ι'),'Kappa':Js('Κ'),'Lambda':Js('Λ'),'Mu':Js('Μ'),'Nu':Js('Ν'),'Xi':Js('Ξ'),'Omicron':Js('Ο'),'Pi':Js('Π'),'Rho':Js('Ρ'),'Sigma':Js('Σ'),'Tau':Js('Τ'),'Upsilon':Js('Υ'),'Phi':Js('Φ'),'Chi':Js('Χ'),'Psi':Js('Ψ'),'Omega':Js('Ω'),'alpha':Js('α'),'beta':Js('β'),'gamma':Js('γ'),'delta':Js('δ'),'epsilon':Js('ε'),'zeta':Js('ζ'),'eta':Js('η'),'theta':Js('θ'),'iota':Js('ι'),'kappa':Js('κ'),'lambda':Js('λ'),'mu':Js('μ'),'nu':Js('ν'),'xi':Js('ξ'),'omicron':Js('ο'),'pi':Js('π'),'rho':Js('ρ'),'sigmaf':Js('ς'),'sigma':Js('σ'),'tau':Js('τ'),'upsilon':Js('υ'),'phi':Js('φ'),'chi':Js('χ'),'psi':Js('ψ'),'omega':Js('ω'),'thetasym':Js('ϑ'),'upsih':Js('ϒ'),'piv':Js('ϖ'),'ensp':Js('\u2002'),'emsp':Js('\u2003'),'thinsp':Js('\u2009'),'zwnj':Js('\u200c'),'zwj':Js('\u200d'),'lrm':Js('\u200e'),'rlm':Js('\u200f'),'ndash':Js('–'),'mdash':Js('—'),'lsquo':Js('‘'),'rsquo':Js('’'),'sbquo':Js('‚'),'ldquo':Js('“'),'rdquo':Js('”'),'bdquo':Js('„'),'dagger':Js('†'),'Dagger':Js('‡'),'bull':Js('•'),'hellip':Js('…'),'permil':Js('‰'),'prime':Js('′'),'Prime':Js('″'),'lsaquo':Js('‹'),'rsaquo':Js('›'),'oline':Js('‾'),'frasl':Js('⁄'),'euro':Js('€'),'image':Js('ℑ'),'weierp':Js('℘'),'real':Js('ℜ'),'trade':Js('™'),'alefsym':Js('ℵ'),'larr':Js('←'),'uarr':Js('↑'),'rarr':Js('→'),'darr':Js('↓'),'harr':Js('↔'),'crarr':Js('↵'),'lArr':Js('⇐'),'uArr':Js('⇑'),'rArr':Js('⇒'),'dArr':Js('⇓'),'hArr':Js('⇔'),'forall':Js('∀'),'part':Js('∂'),'exist':Js('∃'),'empty':Js('∅'),'nabla':Js('∇'),'isin':Js('∈'),'notin':Js('∉'),'ni':Js('∋'),'prod':Js('∏'),'sum':Js('∑'),'minus':Js('−'),'lowast':Js('∗'),'radic':Js('√'),'prop':Js('∝'),'infin':Js('∞'),'ang':Js('∠'),'and':Js('∧'),'or':Js('∨'),'cap':Js('∩'),'cup':Js('∪'),'int':Js('∫'),'there4':Js('∴'),'sim':Js('∼'),'cong':Js('≅'),'asymp':Js('≈'),'ne':Js('≠'),'equiv':Js('≡'),'le':Js('≤'),'ge':Js('≥'),'sub':Js('⊂'),'sup':Js('⊃'),'nsub':Js('⊄'),'sube':Js('⊆'),'supe':Js('⊇'),'oplus':Js('⊕'),'otimes':Js('⊗'),'perp':Js('⊥'),'sdot':Js('⋅'),'lceil':Js('⌈'),'rceil':Js('⌉'),'lfloor':Js('⌊'),'rfloor':Js('⌋'),'loz':Js('◊'),'spades':Js('♠'),'clubs':Js('♣'),'hearts':Js('♥'),'diams':Js('♦'),'lang':Js('⟨'),'rang':Js('⟩')})
            var.get('exports').put('XHTMLEntities', PyJs_Object_456_)
        PyJs_anonymous_454_._set_name('anonymous')
        @Js
        def PyJs_anonymous_457_(module, exports, __webpack_require__, this, arguments, var=var):
            var = Scope({'module':module, 'exports':exports, '__webpack_require__':__webpack_require__, 'this':this, 'arguments':arguments}, var)
            var.registers(['scanner_1', 'Tokenizer', 'token_1', 'Reader', 'error_handler_1', '__webpack_require__', 'module', 'exports'])
            Js('use strict')
            PyJs_Object_458_ = Js({'value':Js(True)})
            var.get('Object').callprop('defineProperty', var.get('exports'), Js('__esModule'), PyJs_Object_458_)
            var.put('error_handler_1', var.get('__webpack_require__')(Js(10.0)))
            var.put('scanner_1', var.get('__webpack_require__')(Js(12.0)))
            var.put('token_1', var.get('__webpack_require__')(Js(13.0)))
            @Js
            def PyJs_anonymous_459_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['Reader'])
                @Js
                def PyJsHoisted_Reader_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers([])
                    var.get(u"this").put('values', Js([]))
                    var.get(u"this").put('curly', var.get(u"this").put('paren', (-Js(1.0))))
                PyJsHoisted_Reader_.func_name = 'Reader'
                var.put('Reader', PyJsHoisted_Reader_)
                pass
                @Js
                def PyJs_anonymous_460_(t, this, arguments, var=var):
                    var = Scope({'t':t, 'this':this, 'arguments':arguments}, var)
                    var.registers(['t'])
                    def PyJs_LONG_461_(var=var):
                        return Js([Js('('), Js('{'), Js('['), Js('in'), Js('typeof'), Js('instanceof'), Js('new'), Js('return'), Js('case'), Js('delete'), Js('throw'), Js('void'), Js('='), Js('+='), Js('-='), Js('*='), Js('**='), Js('/='), Js('%='), Js('<<='), Js('>>='), Js('>>>='), Js('&='), Js('|='), Js('^='), Js(','), Js('+'), Js('-'), Js('*'), Js('**'), Js('/'), Js('%'), Js('++'), Js('--'), Js('<<'), Js('>>'), Js('>>>'), Js('&'), Js('|'), Js('^'), Js('!'), Js('~'), Js('&&'), Js('||'), Js('?'), Js(':'), Js('==='), Js('=='), Js('>='), Js('<='), Js('<'), Js('>'), Js('!='), Js('!==')]).callprop('indexOf', var.get('t'))
                    return (PyJs_LONG_461_()>=Js(0.0))
                PyJs_anonymous_460_._set_name('anonymous')
                var.get('Reader').get('prototype').put('beforeFunctionExpression', PyJs_anonymous_460_)
                @Js
                def PyJs_anonymous_462_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['previous', 'regex', 'keyword', 'check'])
                    var.put('previous', var.get(u"this").get('values').get((var.get(u"this").get('values').get('length')-Js(1.0))))
                    var.put('regex', PyJsStrictNeq(var.get('previous'),var.get(u"null")))
                    while 1:
                        SWITCHED = False
                        CONDITION = (var.get('previous'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js('this')):
                            SWITCHED = True
                            pass
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(']')):
                            SWITCHED = True
                            var.put('regex', Js(False))
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(')')):
                            SWITCHED = True
                            var.put('keyword', var.get(u"this").get('values').get((var.get(u"this").get('paren')-Js(1.0))))
                            var.put('regex', (((PyJsStrictEq(var.get('keyword'),Js('if')) or PyJsStrictEq(var.get('keyword'),Js('while'))) or PyJsStrictEq(var.get('keyword'),Js('for'))) or PyJsStrictEq(var.get('keyword'),Js('with'))))
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, Js('}')):
                            SWITCHED = True
                            var.put('regex', Js(False))
                            if PyJsStrictEq(var.get(u"this").get('values').get((var.get(u"this").get('curly')-Js(3.0))),Js('function')):
                                var.put('check', var.get(u"this").get('values').get((var.get(u"this").get('curly')-Js(4.0))))
                                var.put('regex', (var.get(u"this").callprop('beforeFunctionExpression', var.get('check')).neg() if var.get('check') else Js(False)))
                            else:
                                if PyJsStrictEq(var.get(u"this").get('values').get((var.get(u"this").get('curly')-Js(4.0))),Js('function')):
                                    var.put('check', var.get(u"this").get('values').get((var.get(u"this").get('curly')-Js(5.0))))
                                    var.put('regex', (var.get(u"this").callprop('beforeFunctionExpression', var.get('check')).neg() if var.get('check') else Js(True)))
                            break
                        if True:
                            SWITCHED = True
                            break
                        SWITCHED = True
                        break
                    return var.get('regex')
                PyJs_anonymous_462_._set_name('anonymous')
                var.get('Reader').get('prototype').put('isRegexStart', PyJs_anonymous_462_)
                @Js
                def PyJs_anonymous_463_(token, this, arguments, var=var):
                    var = Scope({'token':token, 'this':this, 'arguments':arguments}, var)
                    var.registers(['token'])
                    if (PyJsStrictEq(var.get('token').get('type'),Js(7.0)) or PyJsStrictEq(var.get('token').get('type'),Js(4.0))):
                        if PyJsStrictEq(var.get('token').get('value'),Js('{')):
                            var.get(u"this").put('curly', var.get(u"this").get('values').get('length'))
                        else:
                            if PyJsStrictEq(var.get('token').get('value'),Js('(')):
                                var.get(u"this").put('paren', var.get(u"this").get('values').get('length'))
                        var.get(u"this").get('values').callprop('push', var.get('token').get('value'))
                    else:
                        var.get(u"this").get('values').callprop('push', var.get(u"null"))
                PyJs_anonymous_463_._set_name('anonymous')
                var.get('Reader').get('prototype').put('push', PyJs_anonymous_463_)
                return var.get('Reader')
            PyJs_anonymous_459_._set_name('anonymous')
            var.put('Reader', PyJs_anonymous_459_())
            @Js
            def PyJs_anonymous_464_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['Tokenizer'])
                @Js
                def PyJsHoisted_Tokenizer_(code, config, this, arguments, var=var):
                    var = Scope({'code':code, 'config':config, 'this':this, 'arguments':arguments}, var)
                    var.registers(['code', 'config'])
                    var.get(u"this").put('errorHandler', var.get('error_handler_1').get('ErrorHandler').create())
                    var.get(u"this").get('errorHandler').put('tolerant', ((PyJsStrictEq(var.get('config').get('tolerant').typeof(),Js('boolean')) and var.get('config').get('tolerant')) if var.get('config') else Js(False)))
                    var.get(u"this").put('scanner', var.get('scanner_1').get('Scanner').create(var.get('code'), var.get(u"this").get('errorHandler')))
                    var.get(u"this").get('scanner').put('trackComment', ((PyJsStrictEq(var.get('config').get('comment').typeof(),Js('boolean')) and var.get('config').get('comment')) if var.get('config') else Js(False)))
                    var.get(u"this").put('trackRange', ((PyJsStrictEq(var.get('config').get('range').typeof(),Js('boolean')) and var.get('config').get('range')) if var.get('config') else Js(False)))
                    var.get(u"this").put('trackLoc', ((PyJsStrictEq(var.get('config').get('loc').typeof(),Js('boolean')) and var.get('config').get('loc')) if var.get('config') else Js(False)))
                    var.get(u"this").put('buffer', Js([]))
                    var.get(u"this").put('reader', var.get('Reader').create())
                PyJsHoisted_Tokenizer_.func_name = 'Tokenizer'
                var.put('Tokenizer', PyJsHoisted_Tokenizer_)
                pass
                @Js
                def PyJs_anonymous_465_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers([])
                    return var.get(u"this").get('errorHandler').get('errors')
                PyJs_anonymous_465_._set_name('anonymous')
                var.get('Tokenizer').get('prototype').put('errors', PyJs_anonymous_465_)
                @Js
                def PyJs_anonymous_466_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers(['entry', 'flags', 'comments', 'startRegex', 'pattern', 'loc', 'comment', 'token', 'i', 'e', 'value'])
                    if PyJsStrictEq(var.get(u"this").get('buffer').get('length'),Js(0.0)):
                        var.put('comments', var.get(u"this").get('scanner').callprop('scanComments'))
                        if var.get(u"this").get('scanner').get('trackComment'):
                            #for JS loop
                            var.put('i', Js(0.0))
                            while (var.get('i')<var.get('comments').get('length')):
                                try:
                                    var.put('e', var.get('comments').get(var.get('i')))
                                    var.put('value', var.get(u"this").get('scanner').get('source').callprop('slice', var.get('e').get('slice').get('0'), var.get('e').get('slice').get('1')))
                                    PyJs_Object_467_ = Js({'type':(Js('BlockComment') if var.get('e').get('multiLine') else Js('LineComment')),'value':var.get('value')})
                                    var.put('comment', PyJs_Object_467_)
                                    if var.get(u"this").get('trackRange'):
                                        var.get('comment').put('range', var.get('e').get('range'))
                                    if var.get(u"this").get('trackLoc'):
                                        var.get('comment').put('loc', var.get('e').get('loc'))
                                    var.get(u"this").get('buffer').callprop('push', var.get('comment'))
                                finally:
                                        var.put('i',Js(var.get('i').to_number())+Js(1))
                        if var.get(u"this").get('scanner').callprop('eof').neg():
                            var.put('loc', PyJsComma(Js(0.0), Js(None)))
                            if var.get(u"this").get('trackLoc'):
                                PyJs_Object_469_ = Js({'line':var.get(u"this").get('scanner').get('lineNumber'),'column':(var.get(u"this").get('scanner').get('index')-var.get(u"this").get('scanner').get('lineStart'))})
                                PyJs_Object_470_ = Js({})
                                PyJs_Object_468_ = Js({'start':PyJs_Object_469_,'end':PyJs_Object_470_})
                                var.put('loc', PyJs_Object_468_)
                            var.put('startRegex', (PyJsStrictEq(var.get(u"this").get('scanner').get('source').get(var.get(u"this").get('scanner').get('index')),Js('/')) and var.get(u"this").get('reader').callprop('isRegexStart')))
                            var.put('token', (var.get(u"this").get('scanner').callprop('scanRegExp') if var.get('startRegex') else var.get(u"this").get('scanner').callprop('lex')))
                            var.get(u"this").get('reader').callprop('push', var.get('token'))
                            PyJs_Object_471_ = Js({'type':var.get('token_1').get('TokenName').get(var.get('token').get('type')),'value':var.get(u"this").get('scanner').get('source').callprop('slice', var.get('token').get('start'), var.get('token').get('end'))})
                            var.put('entry', PyJs_Object_471_)
                            if var.get(u"this").get('trackRange'):
                                var.get('entry').put('range', Js([var.get('token').get('start'), var.get('token').get('end')]))
                            if var.get(u"this").get('trackLoc'):
                                PyJs_Object_472_ = Js({'line':var.get(u"this").get('scanner').get('lineNumber'),'column':(var.get(u"this").get('scanner').get('index')-var.get(u"this").get('scanner').get('lineStart'))})
                                var.get('loc').put('end', PyJs_Object_472_)
                                var.get('entry').put('loc', var.get('loc'))
                            if PyJsStrictEq(var.get('token').get('type'),Js(9.0)):
                                var.put('pattern', var.get('token').get('pattern'))
                                var.put('flags', var.get('token').get('flags'))
                                PyJs_Object_473_ = Js({'pattern':var.get('pattern'),'flags':var.get('flags')})
                                var.get('entry').put('regex', PyJs_Object_473_)
                            var.get(u"this").get('buffer').callprop('push', var.get('entry'))
                    return var.get(u"this").get('buffer').callprop('shift')
                PyJs_anonymous_466_._set_name('anonymous')
                var.get('Tokenizer').get('prototype').put('getNextToken', PyJs_anonymous_466_)
                return var.get('Tokenizer')
            PyJs_anonymous_464_._set_name('anonymous')
            var.put('Tokenizer', PyJs_anonymous_464_())
            var.get('exports').put('Tokenizer', var.get('Tokenizer'))
        PyJs_anonymous_457_._set_name('anonymous')
        @Js
        def PyJs_anonymous_474_(modules, this, arguments, var=var):
            var = Scope({'modules':modules, 'this':this, 'arguments':arguments}, var)
            var.registers(['__webpack_require__', 'modules', 'installedModules'])
            @Js
            def PyJsHoisted___webpack_require___(moduleId, this, arguments, var=var):
                var = Scope({'moduleId':moduleId, 'this':this, 'arguments':arguments}, var)
                var.registers(['module', 'moduleId'])
                if var.get('installedModules').get(var.get('moduleId')):
                    return var.get('installedModules').get(var.get('moduleId')).get('exports')
                PyJs_Object_477_ = Js({})
                PyJs_Object_476_ = Js({'exports':PyJs_Object_477_,'id':var.get('moduleId'),'loaded':Js(False)})
                var.put('module', var.get('installedModules').put(var.get('moduleId'), PyJs_Object_476_))
                var.get('modules').get(var.get('moduleId')).callprop('call', var.get('module').get('exports'), var.get('module'), var.get('module').get('exports'), var.get('__webpack_require__'))
                var.get('module').put('loaded', Js(True))
                return var.get('module').get('exports')
            PyJsHoisted___webpack_require___.func_name = '__webpack_require__'
            var.put('__webpack_require__', PyJsHoisted___webpack_require___)
            PyJs_Object_475_ = Js({})
            var.put('installedModules', PyJs_Object_475_)
            pass
            var.get('__webpack_require__').put('m', var.get('modules'))
            var.get('__webpack_require__').put('c', var.get('installedModules'))
            var.get('__webpack_require__').put('p', Js(''))
            return var.get('__webpack_require__')(Js(0.0))
        PyJs_anonymous_474_._set_name('anonymous')
        return PyJs_anonymous_474_(Js([PyJs_anonymous_5_, PyJs_anonymous_10_, PyJs_anonymous_23_, PyJs_anonymous_26_, PyJs_anonymous_75_, PyJs_anonymous_90_, PyJs_anonymous_103_, PyJs_anonymous_106_, PyJs_anonymous_181_, PyJs_anonymous_372_, PyJs_anonymous_374_, PyJs_anonymous_384_, PyJs_anonymous_387_, PyJs_anonymous_451_, PyJs_anonymous_454_, PyJs_anonymous_457_]))
    PyJs_anonymous_4_._set_name('anonymous')
    @Js
    def PyJs_webpackUniversalModuleDefinition_478_(root, factory, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'this':this, 'arguments':arguments, 'webpackUniversalModuleDefinition':PyJs_webpackUniversalModuleDefinition_478_}, var)
        var.registers(['factory', 'root'])
        if (PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')) and PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('module',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('module'))),Js('object'))):
            var.get('module').put('exports', var.get('factory')())
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([]), var.get('factory'))
            else:
                if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
                    var.get('exports').put('esprima', var.get('factory')())
                else:
                    var.get('root').put('esprima', var.get('factory')())
    PyJs_webpackUniversalModuleDefinition_478_._set_name('webpackUniversalModuleDefinition')
    PyJs_webpackUniversalModuleDefinition_478_(var.get(u"this"), PyJs_anonymous_4_)
    pass
PyJs_anonymous_3_._set_name('anonymous')
PyJs_Object_479_ = Js({})
@Js
def PyJs_anonymous_480_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['module_temp_love_python', 'addToGlobals', 'require', 'module', 'exports'])
    @Js
    def PyJsHoisted_addToGlobals_(name, obj, this, arguments, var=var):
        var = Scope({'name':name, 'obj':obj, 'this':this, 'arguments':arguments}, var)
        var.registers(['name', 'obj'])
        if var.get('Object').get('prototype').callprop('hasOwnProperty', Js('_fake_exports')).neg():
            PyJs_Object_481_ = Js({})
            var.get('Object').get('prototype').put('_fake_exports', PyJs_Object_481_)
        var.get('Object').get('prototype').get('_fake_exports').put(var.get('name'), var.get('obj'))
    PyJsHoisted_addToGlobals_.func_name = 'addToGlobals'
    var.put('addToGlobals', PyJsHoisted_addToGlobals_)
    pass
    pass
    pass
    var.put('module_temp_love_python', var.get('require')(Js('esprima')))
    var.get('addToGlobals')(Js('esprima'), var.get('module_temp_love_python'))
PyJs_anonymous_480_._set_name('anonymous')
PyJs_Object_482_ = Js({'esprima':Js(1.0)})
PyJs_Object_2_ = Js({'1':Js([PyJs_anonymous_3_, PyJs_Object_479_]),'2':Js([PyJs_anonymous_480_, PyJs_Object_482_])})
PyJs_Object_483_ = Js({})
@Js
def PyJs_anonymous_484_(this, arguments, var=var):
    var = Scope({'this':this, 'arguments':arguments}, var)
    var.registers(['r'])
    @Js
    def PyJsHoisted_r_(e, n, t, this, arguments, var=var):
        var = Scope({'e':e, 'n':n, 't':t, 'this':this, 'arguments':arguments}, var)
        var.registers(['o', 'n', 'u', 't', 'e', 'i'])
        @Js
        def PyJsHoisted_o_(i, f, this, arguments, var=var):
            var = Scope({'i':i, 'f':f, 'this':this, 'arguments':arguments}, var)
            var.registers(['p', 'f', 'c', 'a', 'i'])
            if var.get('n').get(var.get('i')).neg():
                if var.get('e').get(var.get('i')).neg():
                    var.put('c', ((Js('function')==var.get('require',throw=False).typeof()) and var.get('require')))
                    if (var.get('f').neg() and var.get('c')):
                        return var.get('c')(var.get('i'), Js(0.0).neg())
                    if var.get('u'):
                        return var.get('u')(var.get('i'), Js(0.0).neg())
                    var.put('a', var.get('Error').create(((Js("Cannot find module '")+var.get('i'))+Js("'"))))
                    PyJsTempException = JsToPyException(PyJsComma(var.get('a').put('code', Js('MODULE_NOT_FOUND')),var.get('a')))
                    raise PyJsTempException
                PyJs_Object_486_ = Js({})
                PyJs_Object_485_ = Js({'exports':PyJs_Object_486_})
                var.put('p', var.get('n').put(var.get('i'), PyJs_Object_485_))
                @Js
                def PyJs_anonymous_487_(r, this, arguments, var=var):
                    var = Scope({'r':r, 'this':this, 'arguments':arguments}, var)
                    var.registers(['r', 'n'])
                    var.put('n', var.get('e').get(var.get('i')).get('1').get(var.get('r')))
                    return var.get('o')((var.get('n') or var.get('r')))
                PyJs_anonymous_487_._set_name('anonymous')
                var.get('e').get(var.get('i')).get('0').callprop('call', var.get('p').get('exports'), PyJs_anonymous_487_, var.get('p'), var.get('p').get('exports'), var.get('r'), var.get('e'), var.get('n'), var.get('t'))
            return var.get('n').get(var.get('i')).get('exports')
        PyJsHoisted_o_.func_name = 'o'
        var.put('o', PyJsHoisted_o_)
        pass
        #for JS loop
        var.put('u', ((Js('function')==var.get('require',throw=False).typeof()) and var.get('require')))
        var.put('i', Js(0.0))
        while (var.get('i')<var.get('t').get('length')):
            try:
                var.get('o')(var.get('t').get(var.get('i')))
            finally:
                    (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
        return var.get('o')
    PyJsHoisted_r_.func_name = 'r'
    var.put('r', PyJsHoisted_r_)
    pass
    return var.get('r')
PyJs_anonymous_484_._set_name('anonymous')
PyJs_anonymous_484_()(PyJs_Object_2_, PyJs_Object_483_, Js([Js(2.0)]))
pass
pass
pass
pass
var.put('esprima', var.get('getFromGlobals')(Js('esprima')))
var.get('esprima')
