|
33 | 33 | td[data-supported="false"] { |
34 | 34 | background-color: red; |
35 | 35 | } |
36 | | - td[data-polyfill][data-supported="false"], |
37 | | - td[data-polyfill] ~ [data-supported="false"], |
38 | | - td[data-transpiled][data-supported="false"], |
39 | | - td[data-transpiled] ~ [data-supported="false"] |
| 36 | + tr[data-polyfills] ~ tr td[data-polyfill] ~ [data-supported="false"], |
| 37 | + tr[data-polyfills] ~ tr td[data-polyfill][data-supported="false"], |
| 38 | + tr[data-transpiled] ~ tr td[data-code] ~ [data-supported="false"], |
| 39 | + tr[data-transpiled] ~ tr td[data-code][data-supported="false"] |
40 | 40 | { |
41 | 41 | background-color: lightseagreen; |
42 | 42 | } |
|
350 | 350 | <code>AbortSignal.abort</code> |
351 | 351 | </a> |
352 | 352 | </th> |
353 | | - <td data-polyfilled data-polyfill="abortSignalAbort"></td> |
| 353 | + <td data-polyfill="abortSignalAbort">*</td> |
354 | 354 | <td data-supported="true">93+</td> |
355 | 355 | <td data-supported="true">93+</td> |
356 | 356 | <td data-supported="true">88+</td> |
|
364 | 364 | <code>AbortSignal.timeout</code> |
365 | 365 | </a> |
366 | 366 | </th> |
367 | | - <td data-polyfilled data-polyfill="abortSignalAbort"></td> |
| 367 | + <td data-polyfill="abortSignalTimeout">*</td> |
368 | 368 | <td data-supported="false">*</td> |
369 | 369 | <td data-supported="false">*</td> |
370 | 370 | <td data-supported="false">*</td> |
|
378 | 378 | <code>AggregateError</code> |
379 | 379 | </a> |
380 | 380 | </th> |
381 | | - <td data-polyfilled data-polyfill="aggregateError"></td> |
| 381 | + <td data-polyfill="aggregateError">*</td> |
382 | 382 | <td data-supported="true">85+</td> |
383 | 383 | <td data-supported="true">85+</td> |
384 | 384 | <td data-supported="true">79+</td> |
|
392 | 392 | <code>Array.at</code> |
393 | 393 | </a> |
394 | 394 | </th> |
395 | | - <td data-polyfilled data-polyfill="arrayAt"></td> |
| 395 | + <td data-polyfill="arrayAt">*</td> |
396 | 396 | <td data-supported="true">92+</td> |
397 | 397 | <td data-supported="true">92+</td> |
398 | 398 | <td data-supported="true">90+</td> |
|
406 | 406 | <code>Crypto.randomUUID</code> |
407 | 407 | </a> |
408 | 408 | </th> |
409 | | - <td data-polyfilled data-polyfill="cryptoRandomUUID"></td> |
| 409 | + <td data-polyfill="cryptoRandomUUID">*</td> |
410 | 410 | <td data-supported="true">92+</td> |
411 | 411 | <td data-supported="true">92+</td> |
412 | 412 | <td data-supported="true">95+</td> |
|
420 | 420 | <code>Element.replaceChildren</code> |
421 | 421 | </a> |
422 | 422 | </th> |
423 | | - <td data-polyfilled data-polyfill="elementReplaceChildren"></td> |
| 423 | + <td data-polyfill="elementReplaceChildren">*</td> |
424 | 424 | <td data-supported="true">86+</td> |
425 | 425 | <td data-supported="true">86+</td> |
426 | 426 | <td data-supported="true">78+</td> |
|
434 | 434 | <code>EventTarget.addEventListener signal</code> |
435 | 435 | </a> |
436 | 436 | </th> |
437 | | - <td data-polyfilled data-polyfill="eventAbortSignal"></td> |
| 437 | + <td data-polyfill="eventAbortSignal">*</td> |
438 | 438 | <td data-supported="true">90+</td> |
439 | 439 | <td data-supported="true">90+</td> |
440 | 440 | <td data-supported="true">86+</td> |
|
448 | 448 | <code>Object.hasOwn</code> |
449 | 449 | </a> |
450 | 450 | </th> |
451 | | - <td data-polyfilled data-polyfill="objectHasOwn"></td> |
| 451 | + <td data-polyfill="objectHasOwn">*</td> |
452 | 452 | <td data-supported="true">93+</td> |
453 | 453 | <td data-supported="true">93+</td> |
454 | 454 | <td data-supported="true">92+</td> |
|
462 | 462 | <code>Promise.allSettled</code> |
463 | 463 | </a> |
464 | 464 | </th> |
465 | | - <td data-polyfilled data-polyfill="promiseAllSettled"></td> |
| 465 | + <td data-polyfill="promiseAllSettled">*</td> |
466 | 466 | <td data-supported="true">76+</td> |
467 | 467 | <td data-supported="true">79+</td> |
468 | 468 | <td data-supported="true">71+</td> |
469 | 469 | <td data-supported="true">13+</td> |
470 | | - </tr> |
471 | | - <tr> |
472 | | - <th> |
473 | | - <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/matchAll"> |
474 | | - <code>String.matchAll</code> |
475 | | - </a> |
476 | | - </th> |
477 | | - <td data-code="'matchAll' in String.prototype"></td> |
478 | | - <td data-supported="true">73+</td> |
479 | | - <td data-supported="true">79+</td> |
480 | | - <td data-supported="true">67+</td> |
481 | | - <td data-supported="true">13+</td> |
| 470 | + <td data-supported="true">63+</td> |
| 471 | + <td data-supported="true">12.0+</td> |
482 | 472 | </tr> |
483 | 473 | <tr> |
484 | 474 | <th> |
485 | 475 | <a href="https://developer.mozilla.org/en-US/docs/Web/API/Window/requestIdleCallback"> |
486 | 476 | <code>requestIdleCallback</code> |
487 | 477 | </a> |
488 | 478 | </th> |
489 | | - <td data-polyfilled data-polyfill="promiseAllSettled"></td> |
| 479 | + <td data-polyfill="requestIdleCallback">*</td> |
490 | 480 | <td data-supported="true">47+</td> |
491 | 481 | <td data-supported="true">79+</td> |
492 | 482 | <td data-supported="true">55+</td> |
|
500 | 490 | <code>String.replaceAll</code> |
501 | 491 | </a> |
502 | 492 | </th> |
503 | | - <td data-polyfilled data-polyfill="stringReplaceAll"></td> |
| 493 | + <td data-polyfill="stringReplaceAll">*</td> |
504 | 494 | <td data-supported="true">85+</td> |
505 | 495 | <td data-supported="true">85+</td> |
506 | 496 | <td data-supported="true">77+</td> |
|
514 | 504 | <code>Promise.any</code> |
515 | 505 | </a> |
516 | 506 | </th> |
517 | | - <td data-polyfill="promiseAny"></td> |
| 507 | + <td data-polyfill="promiseAny">*</td> |
518 | 508 | <td data-supported="true">85+</td> |
519 | 509 | <td data-supported="true">85+</td> |
520 | 510 | <td data-supported="true">79+</td> |
521 | 511 | <td data-supported="true">14+</td> |
| 512 | + <td data-supported="false">*</td> |
| 513 | + <td data-supported="true">14.0+</td> |
522 | 514 | </tr> |
523 | | - <tr><th colspan="6">Native Syntax</th></tr> |
| 515 | + <tr><th colspan="8">Native Syntax</th></tr> |
524 | 516 | <tr> |
525 | 517 | <th> |
526 | 518 | <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions/Groups_and_Ranges#using_named_groups"> |
|
591 | 583 | <td data-supported="true">53+</td> |
592 | 584 | <td data-supported="true">9.0+</td> |
593 | 585 | </tr> |
| 586 | + <tr data-transpiled><th colspan="8">Transpiled Native Syntax</th></tr> |
594 | 587 | <tr> |
595 | 588 | <th> |
596 | 589 | <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining"> |
597 | 590 | <code>Optional Chaining Operator (?.)</code> |
598 | 591 | </a> |
599 | 592 | </th> |
600 | | - <td data-code="window?.foo?.bar?.baz || true" data-transpiled></td> |
| 593 | + <td data-code="window?.foo?.bar?.baz || true">**</td> |
601 | 594 | <td data-supported="true">80+</td> |
602 | 595 | <td data-supported="true">80+</td> |
603 | 596 | <td data-supported="true">74+</td> |
|
611 | 604 | <code>Nullish Coalescing Operator (??)</code> |
612 | 605 | </a> |
613 | 606 | </th> |
614 | | - <td data-code="window.foo ?? true" data-transpiled></td> |
| 607 | + <td data-code="window.foo ?? true">**</td> |
615 | 608 | <td data-supported="true">80+</td> |
616 | 609 | <td data-supported="true">80+</td> |
617 | 610 | <td data-supported="true">72+</td> |
|
625 | 618 | <code>Logical Nullish Assignment (??=)</code> |
626 | 619 | </a> |
627 | 620 | </th> |
628 | | - <td data-code="let x; x ??= 1" data-transpiled></td> |
| 621 | + <td data-code="let x; x ??= 1">**</td> |
629 | 622 | <td data-supported="true">85+</td> |
630 | 623 | <td data-supported="true">85+</td> |
631 | 624 | <td data-supported="true">79+</td> |
|
636 | 629 | <tr> |
637 | 630 | <th> |
638 | 631 | <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Public_class_fields#public_instance_fields"> |
639 | | - <code>Public Instance Class Fields</code> |
| 632 | + <code>Public Class Fields</code> |
640 | 633 | </a> |
641 | 634 | </th> |
642 | | - <td data-code="class A{a=true};new A().a" data-transpiled></td> |
| 635 | + <td data-code="class A{a=true};new A().a">**</td> |
643 | 636 | <td data-supported="true">72+</td> |
644 | 637 | <td data-supported="true">79+</td> |
645 | 638 | <td data-supported="true">69+</td> |
|
653 | 646 | <code>Private Class Fields</code> |
654 | 647 | </a> |
655 | 648 | </th> |
656 | | - <td data-code="class A{#a=true;get a(){return this.#a}};new A().a" data-transpiled></td> |
| 649 | + <td data-code="class A{#a=true;get a(){return this.#a}};new A().a">**</td> |
657 | 650 | <td data-supported="true">74+</td> |
658 | 651 | <td data-supported="true">79+</td> |
659 | 652 | <td data-supported="true">90+</td> |
|
667 | 660 | <code>Static Class Blocks</code> |
668 | 661 | </a> |
669 | 662 | </th> |
670 | | - <td data-code="class A{static{this.a=true}};A.a" data-transpiled></td> |
| 663 | + <td data-code="class A{static{this.a=true}};A.a">**</td> |
671 | 664 | <td data-supported="true">94+</td> |
672 | 665 | <td data-supported="true">94+</td> |
673 | 666 | <td data-supported="true">93+</td> |
|
681 | 674 | <code>Decorators</code> |
682 | 675 | </a> |
683 | 676 | </th> |
684 | | - <td data-code="function foo(cls){cls.a=true}@foo class A{};A.a" data-transpiled></td> |
| 677 | + <td data-code="function foo(cls){cls.a=true}@foo class A{};A.a">**</td> |
685 | 678 | <td data-supported="false">**</td> |
686 | 679 | <td data-supported="false">**</td> |
687 | 680 | <td data-supported="false">**</td> |
|
698 | 691 | </p> |
699 | 692 | <p> |
700 | 693 | <small> |
701 | | - ** This feature is used, but we Transpile it to a compatible syntax. |
| 694 | + ** Not supported natively, but transpiled to a compatible syntax. |
702 | 695 | </small> |
703 | 696 | </p> |
704 | 697 | <script> |
|
728 | 721 | } |
729 | 722 | Promise.resolve(supported).then((value) => { |
730 | 723 | el.setAttribute('data-supported', Boolean(value)) |
731 | | - if (!value && el.hasAttribute('data-transpiled')) { |
732 | | - if (!value) el.textContent = '**' |
733 | | - } else if (!value && el.hasAttribute('data-polyfilled')) { |
734 | | - if (!value) el.textContent = '*' |
735 | | - } |
736 | 724 | }) |
737 | 725 | } |
738 | 726 | </script> |
|
752 | 740 | } |
753 | 741 | Promise.resolve(supported).then((value) => { |
754 | 742 | el.setAttribute('data-supported', Boolean(value)) |
755 | | - if (!value && el.hasAttribute('data-transpiled')) { |
756 | | - if (!value) el.textContent = '**' |
757 | | - } else if (!value && el.hasAttribute('data-polyfilled')) { |
758 | | - if (!value) el.textContent = '*' |
759 | | - } |
760 | 743 | }) |
761 | 744 | } |
762 | 745 | for(const el of document.querySelectorAll('[data-polyfill]')) { |
|
769 | 752 | } |
770 | 753 | Promise.resolve(supported).then((value) => { |
771 | 754 | el.setAttribute('data-supported', Boolean(value)) |
772 | | - if (!value && el.hasAttribute('data-transpiled')) { |
773 | | - if (!value) el.textContent = '**' |
774 | | - } else if (!value && el.hasAttribute('data-polyfilled')) { |
775 | | - if (!value) el.textContent = '*' |
776 | | - } |
777 | 755 | }) |
778 | 756 | } |
779 | 757 | </script> |
|
0 commit comments