#NEWLINE# def run_frame( self , frame ) : #NEWLINE# #INDENT# 'Run a frame until it returns (somehow).\n\n        Exceptions are raised, the return value is returned.\n\n        ' #NEWLINE# self . push_frame ( frame ) #NEWLINE# while True : #NEWLINE# #INDENT# ( byteName , arguments , opoffset ) = self . parse_byte_and_args ( ) #NEWLINE# if log . isEnabledFor ( logging . INFO ) : #NEWLINE# #INDENT# self . log ( byteName , arguments , opoffset ) #NEWLINE# #UNINDENT# why = self . dispatch ( byteName , arguments ) #NEWLINE# if ( why == 'exception' ) : #NEWLINE# #INDENT# pass #NEWLINE# #UNINDENT# if ( why == 'reraise' ) : #NEWLINE# #INDENT# why = 'exception' #NEWLINE# #UNINDENT# if ( why != 'yield' ) : #NEWLINE# #INDENT# while ( why and frame . block_stack ) : #NEWLINE# #INDENT# why = self . manage_block_stack ( why ) #NEWLINE# #UNINDENT# #UNINDENT# if why : #NEWLINE# #INDENT# break #NEWLINE# #UNINDENT# #UNINDENT# self . pop_frame ( ) #NEWLINE# if ( why == 'exception' ) : #NEWLINE# #INDENT# six . reraise ( * self . last_exception ) #NEWLINE# #UNINDENT# return self . return_value