from browser import window def wrap(func): # Transforms a function f into another function that prints a # traceback in case of exception def f(*args, **kw): try: return func(*args, **kw) except Exception as exc: msg = '{0.info}\n{0.__name__}: {0.args[0]}'.format(exc) import sys sys.stderr.write(msg) return f clear_interval = window.clearInterval clear_timeout = window.clearTimeout def set_interval(func,interval): return window.setInterval(wrap(func),interval) def set_timeout(func,interval): return int(window.setTimeout(wrap(func),interval)) def request_animation_frame(func): return int(window.requestAnimationFrame(func)) def cancel_animation_frame(int_id): window.cancelAnimationFrame(int_id) def set_loop_timeout(x): # set a variable used to stop loops that last more than x seconds assert isinstance(x, int) __BRYTHON__.loop_timeout = x