#NEWLINE# def getFrameGuardHeavyCode( frame_identifier , code_identifier , codes , needs_preserve , parent_exception_exit , parent_return_exit , frame_exception_exit , frame_return_exit , provider , emit , context ) : #NEWLINE# #INDENT# no_exception_exit = context . allocateLabel ( 'frame_no_exception' ) #NEWLINE# context . addFrameDeclaration ( ( template_frame_guard_cache_decl % { #NEWLINE# #INDENT# 'frame_identifier' : frame_identifier , #NEWLINE# #UNINDENT# } ) ) #NEWLINE# context . addFrameDeclaration ( ( template_frame_guard_frame_decl % { #NEWLINE# #INDENT# 'frame_identifier' : frame_identifier , #NEWLINE# #UNINDENT# } ) ) #NEWLINE# emit ( ( template_frame_guard_full_block % { #NEWLINE# #INDENT# 'frame_identifier' : frame_identifier , #NEWLINE# 'code_identifier' : code_identifier , #NEWLINE# 'codes' : indented ( codes , 0 ) , #NEWLINE# 'module_identifier' : getModuleAccessCode ( context = context ) , #NEWLINE# 'no_exception_exit' : no_exception_exit , #NEWLINE# 'needs_preserve' : ( 1 if needs_preserve else 0 ) , #NEWLINE# #UNINDENT# } ) ) #NEWLINE# if ( frame_return_exit is not None ) : #NEWLINE# #INDENT# emit ( ( template_frame_guard_full_return_handler % { #NEWLINE# #INDENT# 'frame_identifier' : frame_identifier , #NEWLINE# 'return_exit' : parent_return_exit , #NEWLINE# 'frame_return_exit' : frame_return_exit , #NEWLINE# 'needs_preserve' : ( 1 if needs_preserve else 0 ) , #NEWLINE# #UNINDENT# } ) ) #NEWLINE# #UNINDENT# if ( frame_exception_exit is not None ) : #NEWLINE# #INDENT# ( frame_locals_name , locals_code ) = getFrameLocalsUpdateCode ( provider = provider , context = context ) #NEWLINE# emit ( ( template_frame_guard_full_exception_handler % { #NEWLINE# #INDENT# 'frame_identifier' : frame_identifier , #NEWLINE# 'frame_locals_name' : frame_locals_name , #NEWLINE# 'store_frame_locals' : indented ( locals_code , 2 , vert_block = True ) , #NEWLINE# 'tb_making' : getTracebackMakingIdentifier ( context = context , lineno_name = 'exception_lineno' ) , #NEWLINE# 'parent_exception_exit' : parent_exception_exit , #NEWLINE# 'frame_exception_exit' : frame_exception_exit , #NEWLINE# 'needs_preserve' : ( 1 if needs_preserve else 0 ) , #NEWLINE# #UNINDENT# } ) ) #NEWLINE# #UNINDENT# emit ( ( '%s:;\n' % no_exception_exit ) )