www/gallery/new_brython.js
function loop(){
    if(tasks.length==0){
        // No more tasks to process.
        idb_cx.result.close()
        return
    }
    var task = tasks.shift()
    var func = task[0],
        arg = task[1]
    if(func == "execute"){
        try{
            eval(arg)
        }catch(err){
            if($B.debug>1){
                console.log(err)
                for(var attr in err){
                   console.log(attr+' : ', err[attr])
                }
            }

            // If the error was not caught by the Python runtime, build an
            // instance of a Python exception
            if(err.$py_error===undefined){
                console.log('Javascript error', err)
                //console.log(js)
                //for(var attr in $err){console.log(attr+': '+$err[attr])}
                err=_b_.RuntimeError(err+'')
            }

            // Print the error traceback on the standard error stream
            var name = err.__name__,
                trace = _b_.getattr(err,'info')
            if(name=='SyntaxError' || name=='IndentationError'){
                var offset = err.args[3]
                trace += '\n    ' + ' '.repeat(offset) + '^' +
                    '\n' + name+': '+err.args[0]

            }else{
                trace += '\n'+name+': ' + err.args
            }
            try{
                _b_.getattr($B.stderr,'write')(trace)
            }catch(print_exc_err){
                console.log(trace)
            }
            // Throw the error to stop execution
            throw err

        }
        loop()
    }else{
        func(arg)
    }
}
function loop(){
    if(tasks.length==0){
        // No more tasks to process.
        idb_cx.result.close()
        return
    }
    var task = tasks.shift()
    var func = task[0],
        arg = task[1]
    if(func == "execute"){
        try{
            eval(arg)
        }catch(err){
            if($B.debug>1){
                console.log(err)
                for(var attr in err){
                   console.log(attr+' : ', err[attr])
                }
            }

            // If the error was not caught by the Python runtime, build an
            // instance of a Python exception
            if(err.$py_error===undefined){
                console.log('Javascript error', err)
                //console.log(js)
                //for(var attr in $err){console.log(attr+': '+$err[attr])}
                err=_b_.RuntimeError(err+'')
            }

            // Print the error traceback on the standard error stream
            var name = err.__name__,
                trace = _b_.getattr(err,'info')
            if(name=='SyntaxError' || name=='IndentationError'){
                var offset = err.args[3]
                trace += '\n    ' + ' '.repeat(offset) + '^' +
                    '\n' + name+': '+err.args[0]

            }else{
                trace += '\n'+name+': ' + err.args
            }
            try{
                _b_.getattr($B.stderr,'write')(trace)
            }catch(print_exc_err){
                console.log(trace)
            }
            // Throw the error to stop execution
            throw err

        }
        loop()
    }else{
        func(arg)
    }
}
function loop ( ) { if ( tasks . length == 0 ) { // No more tasks to process. idb_cx . result . close ( ) return } var task = tasks . shift ( ) var func = task [ 0 ] , arg = task [ 1 ] if ( func == "execute" ) { try { eval ( arg ) } catch ( err ) { if ( $B . debug > 1 ) { console . log ( err ) for ( var attr in err ) { console . log ( attr + ' : ' , err [ attr ] ) } } // If the error was not caught by the Python runtime, build an // instance of a Python exception if ( err . $py_error === undefined ) { console . log ( 'Javascript error' , err ) //console.log(js) //for(var attr in $err){console.log(attr+': '+$err[attr])} err = _b_ . RuntimeError ( err + '' ) } // Print the error traceback on the standard error stream var name = err . __name__ , trace = _b_ . getattr ( err , 'info' ) if ( name == 'SyntaxError' || name == 'IndentationError' ) { var offset = err . args [ 3 ] trace += '\n    ' + ' ' . repeat ( offset ) + '^' + '\n' + name + ': ' + err . args [ 0 ] } else { trace += '\n' + name + ': ' + err . args } try { _b_ . getattr ( $B . stderr , 'write' ) ( trace ) } catch ( print_exc_err ) { console . log ( trace ) } // Throw the error to stop execution throw err } loop ( ) } else { func ( arg ) } }
Function loop() takes the first task in the tasks list and processes it. The function executed in loop() may itself call loop().
Function loop () takes the first task in the tasks list and processes it . The function executed in loop () may itself call loop () .