Apparently native Promises call `reject` when errors are thrown