fire(fn) respects defaultPrevented and returns false on Exception as well