 <  * @return {RESULT}
 <  * @template VALUE
 <  *
-<  * When a Promise (or thenable) is returned from the fulfilled callback,
-<  * the result is the payload of that promise, not the promise itself.
+<  * When a `Thenable` is fulfilled or rejected with another `Thenable`, the
+<  * payload of the second is used as the payload of the first.
 <  *
 <  * @template RESULT := type('Promise',
 <  *     cond(isUnknown(VALUE), unknown(),

< 
< 
< /**
<  * @param {function(*): RESULT} onRejected
<  * @return {!Promise<RESULT>}
<  * @template RESULT
<  */
< Promise.prototype.catch = function(onRejected) {};
< 

<  * @return {RESULT}
<  * @template VALUE
<  *
<  * When a `Thenable` is fulfilled or rejected with another `Thenable`, the
<  * payload of the second is used as the payload of the first.
<  *
<  * @template RESULT := type('IThenable',
<  *     cond(isUnknown(VALUE), unknown(),
