In the Promises/A+ standard, I am wondering if a promise needs to resolve or reject eventually. By this I mean a promise X with the property that under no condition wha
No, the spec does not mandate this. There is no restriction on how long a promise should take to settle. And that includes an infinitely long time - known as a never-resolving/never-settling promise or forever-pending promise. (see also promise terminology)
The term may is used deliberately here, and does carry the conventional meaning.
There even exist promise implementations that offer a Promise.never
primitive (e.g. in creed) to optimise the memory consumption for the case when you know that your promise won't settle.