Richer JavaScript errors that won't fail