 < Promise.prototype.finally = function(callback) {};
 < 
 < 
-1280,1281c1122,1123
+1297,1298c1139,1140
 <  * @param {function(this:S, (string|T), number): R=} opt_mapFn
 <  * @param {S=} opt_this
 ---
 >  * @param {function((string|T), number): R=} opt_mapFn
 >  * @param {*=} opt_this
-1283c1125
+1300c1142
 <  * @template T,S,R
 ---
 >  * @template T,R
-1307,1311c1149,1151
+1324,1328c1166,1168
 <  * @param {!function(this:S, T, number, !Array<T>): boolean} predicateFn
 <  * @param {S=} opt_this
 <  * @return {T|undefined}

1110,1267d1109
< 
< /**
<  * This is not an official DOM interface. It is used to add generic typing

>  * @param {!function(T, number, !Array<T>): boolean} predicateFn
>  * @param {*=} opt_this
>  * @return {T}
1335,1336c1175,1176
<  * @param {!function(this:S, T, number, !Array<T>): boolean} predicateFn
<  * @param {S=} opt_this
---
>  * @param {!function(T, number, !Array<T>): boolean} predicateFn
>  * @param {*=} opt_this
1338,1339d1177
<  * @this {IArrayLike<T>|string}
<  * @template T,S
1350,1351d1187
<  * @this {!IArrayLike<T>|string}
<  * @template T
1362d1197
<  * @template T
1373,1374d1207
<  * @this {!IArrayLike<T>|string}
<  * @template T
1542,1543c1375,1376
<  * @param {function(this: THIS, ...?): RESULT} targetFn
<  * @param {THIS} thisArg
---
>  * @param {function(...?): RESULT} targetFn
>  * @param {*} thisArg
1546c1379
<  * @template THIS, RESULT
---
>  * @template RESULT
