Commit 2799ffa
committed
Ensure method calls on unions get accurate types
- Ensure that Array, ArrayBuffer, ReadonlyArray, String, TypedArray
have consistent slice() signatures so method calls over the union
gets typed correctly.
- Ensure that BigInt.prototype.toString and Number.prototype.toString
are typed consistently so (bigint|number).toString() gets inferred
correctly.
- Add tests for indexOf, includes, slice, toString so that the
signatures of these cognate methods do not drift by accident.
Note: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/slice
claims that String.prototype.slice() first argument is required at the
beginning of the doc, but later admits "If indexStart is omitted,
undefined, or cannot be converted to a number, it's treated as 0."
Making both params of String.prototype.slice is consistent with the
runtime and common TypeScript typings.1 parent 79f2de5 commit 2799ffa
7 files changed
Lines changed: 278 additions & 31 deletions
File tree
- externs
- src/com/google/javascript/jscomp/testing
- test/com/google/javascript/jscomp
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
676 | 676 | | |
677 | 677 | | |
678 | 678 | | |
679 | | - | |
680 | | - | |
| 679 | + | |
| 680 | + | |
681 | 681 | | |
682 | 682 | | |
683 | 683 | | |
| |||
906 | 906 | | |
907 | 907 | | |
908 | 908 | | |
909 | | - | |
910 | | - | |
| 909 | + | |
| 910 | + | |
911 | 911 | | |
912 | 912 | | |
913 | 913 | | |
| |||
1188 | 1188 | | |
1189 | 1189 | | |
1190 | 1190 | | |
1191 | | - | |
| 1191 | + | |
1192 | 1192 | | |
1193 | 1193 | | |
1194 | 1194 | | |
1195 | 1195 | | |
1196 | 1196 | | |
1197 | | - | |
| 1197 | + | |
1198 | 1198 | | |
1199 | 1199 | | |
1200 | 1200 | | |
| |||
2178 | 2178 | | |
2179 | 2179 | | |
2180 | 2180 | | |
2181 | | - | |
2182 | | - | |
| 2181 | + | |
| 2182 | + | |
2183 | 2183 | | |
2184 | 2184 | | |
2185 | 2185 | | |
2186 | 2186 | | |
2187 | | - | |
| 2187 | + | |
2188 | 2188 | | |
2189 | 2189 | | |
2190 | 2190 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
389 | 389 | | |
390 | 390 | | |
391 | 391 | | |
392 | | - | |
393 | | - | |
| 392 | + | |
| 393 | + | |
394 | 394 | | |
395 | 395 | | |
396 | 396 | | |
397 | | - | |
| 397 | + | |
398 | 398 | | |
399 | 399 | | |
400 | 400 | | |
| |||
Lines changed: 156 additions & 12 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
183 | 183 | | |
184 | 184 | | |
185 | 185 | | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
186 | 267 | | |
187 | 268 | | |
188 | 269 | | |
| |||
274 | 355 | | |
275 | 356 | | |
276 | 357 | | |
277 | | - | |
278 | | - | |
279 | 358 | | |
280 | | - | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
281 | 367 | | |
282 | 368 | | |
283 | 369 | | |
284 | 370 | | |
285 | 371 | | |
286 | 372 | | |
287 | | - | |
| 373 | + | |
288 | 374 | | |
289 | 375 | | |
290 | 376 | | |
| |||
305 | 391 | | |
306 | 392 | | |
307 | 393 | | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
308 | 400 | | |
309 | 401 | | |
310 | 402 | | |
| |||
316 | 408 | | |
317 | 409 | | |
318 | 410 | | |
319 | | - | |
320 | 411 | | |
321 | 412 | | |
322 | 413 | | |
323 | 414 | | |
324 | 415 | | |
325 | 416 | | |
326 | 417 | | |
327 | | - | |
328 | 418 | | |
329 | 419 | | |
330 | 420 | | |
331 | 421 | | |
332 | 422 | | |
333 | 423 | | |
334 | 424 | | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
335 | 432 | | |
336 | 433 | | |
337 | 434 | | |
| |||
521 | 618 | | |
522 | 619 | | |
523 | 620 | | |
524 | | - | |
525 | | - | |
| 621 | + | |
| 622 | + | |
526 | 623 | | |
527 | 624 | | |
528 | 625 | | |
529 | 626 | | |
530 | 627 | | |
531 | 628 | | |
532 | 629 | | |
533 | | - | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
534 | 638 | | |
535 | 639 | | |
536 | 640 | | |
537 | 641 | | |
538 | | - | |
539 | 642 | | |
540 | 643 | | |
541 | 644 | | |
| |||
614 | 717 | | |
615 | 718 | | |
616 | 719 | | |
617 | | - | |
618 | | - | |
| 720 | + | |
| 721 | + | |
619 | 722 | | |
620 | 723 | | |
621 | 724 | | |
| |||
640 | 743 | | |
641 | 744 | | |
642 | 745 | | |
| 746 | + | |
| 747 | + | |
| 748 | + | |
| 749 | + | |
| 750 | + | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
643 | 756 | | |
644 | 757 | | |
645 | 758 | | |
| |||
1060 | 1173 | | |
1061 | 1174 | | |
1062 | 1175 | | |
| 1176 | + | |
| 1177 | + | |
| 1178 | + | |
1063 | 1179 | | |
1064 | 1180 | | |
1065 | 1181 | | |
| |||
1091 | 1207 | | |
1092 | 1208 | | |
1093 | 1209 | | |
| 1210 | + | |
| 1211 | + | |
| 1212 | + | |
| 1213 | + | |
| 1214 | + | |
| 1215 | + | |
| 1216 | + | |
| 1217 | + | |
| 1218 | + | |
| 1219 | + | |
| 1220 | + | |
| 1221 | + | |
| 1222 | + | |
| 1223 | + | |
| 1224 | + | |
| 1225 | + | |
| 1226 | + | |
| 1227 | + | |
| 1228 | + | |
1094 | 1229 | | |
1095 | 1230 | | |
1096 | 1231 | | |
| |||
1273 | 1408 | | |
1274 | 1409 | | |
1275 | 1410 | | |
| 1411 | + | |
| 1412 | + | |
| 1413 | + | |
1276 | 1414 | | |
1277 | 1415 | | |
1278 | 1416 | | |
| |||
1288 | 1426 | | |
1289 | 1427 | | |
1290 | 1428 | | |
| 1429 | + | |
| 1430 | + | |
| 1431 | + | |
| 1432 | + | |
| 1433 | + | |
| 1434 | + | |
1291 | 1435 | | |
1292 | 1436 | | |
1293 | 1437 | | |
| |||
Lines changed: 2 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
764 | 764 | | |
765 | 765 | | |
766 | 766 | | |
767 | | - | |
| 767 | + | |
768 | 768 | | |
769 | 769 | | |
770 | 770 | | |
771 | 771 | | |
772 | 772 | | |
773 | | - | |
| 773 | + | |
774 | 774 | | |
775 | 775 | | |
776 | 776 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1626 | 1626 | | |
1627 | 1627 | | |
1628 | 1628 | | |
1629 | | - | |
1630 | | - | |
| 1629 | + | |
| 1630 | + | |
1631 | 1631 | | |
1632 | | - | |
| 1632 | + | |
| 1633 | + | |
| 1634 | + | |
| 1635 | + | |
1633 | 1636 | | |
1634 | | - | |
| 1637 | + | |
1635 | 1638 | | |
1636 | 1639 | | |
1637 | 1640 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1462 | 1462 | | |
1463 | 1463 | | |
1464 | 1464 | | |
1465 | | - | |
| 1465 | + | |
1466 | 1466 | | |
1467 | 1467 | | |
1468 | 1468 | | |
| |||
0 commit comments