 < 
 < 
 < /**
-<  * @param {function(*):VALUE} onRejected
-<  * @return {!Promise<TYPE|VALUE>} A Promise of the original type or a possibly a
-<  *     different type depending on whether the parent promise was rejected.
-<  *
-<  * @template VALUE
-<  *
-<  * When a `Thenable` is rejected with another `Thenable`, the payload of the
-<  * second is used as the payload of the first.
-<  *
-<  * @template RESULT := cond(
-<  *     isUnknown(VALUE),
-<  *     unknown(),
-<  *     mapunion(VALUE, (V) =>
-<  *         cond(
-<  *             isTemplatized(V) && sub(rawTypeOf(V), 'IThenable'),
-<  *             templateTypeOf(V, 0),
-<  *             cond(
-<  *                 sub(V, 'Thenable'),
-<  *                 unknown(),
-<  *                 V))))
-<  * =:
+<  * @param {function(*): RESULT} onRejected
+<  * @return {!Promise<RESULT>}
+<  * @template RESULT
 <  */
 < Promise.prototype.catch = function(onRejected) {};
 < 

< 
< 
< /**
<  * @param {?(function(TYPE):FULFILLED_VALUE)=} opt_onFulfilled
<  * @param {?(function(*):REJECTED_VALUE)=} opt_onRejected
<  * @return {!Promise<RESULT>}
<  *
<  * @template FULFILLED_VALUE,REJECTED_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 VALUE := union(FULFILLED_VALUE, REJECTED_VALUE) =:
<  * @template RESULT := cond(
<  *     isUnknown(VALUE),
<  *     unknown(),
<  *     mapunion(VALUE, (V) =>
<  *         cond(
<  *             isTemplatized(V) && sub(rawTypeOf(V), 'IThenable'),
<  *             templateTypeOf(V, 0),
<  *             cond(
<  *                 sub(V, 'Thenable'),
<  *                 unknown(),
<  *                 V))))
<  * =:
<  * @override
<  */

1111,1250d1110
< 
< /**
<  * This is not an official DOM interface. It is used to add generic typing
