# emulate behaviour of other browsers
def focus(elem):
    JS("""
        try {
            elem.focus();
        } catch (e) {
            // Only trap the exception if the attempt was mostly legit
            if (!elem || !elem.focus) {
                // Rethrow the probable NPE or invalid type
                throw e;
            }
        }
    """)
