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

< 
< 
< /**
<  * @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))))
<  * =:
<  */
< Promise.prototype.catch = function(onRejected) {};
< 

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