Commit 23a98d8
[vm, wasm] Separate
The Iterables have been separated and specialized.
The `keys` Iterable specialized so that the `contains` method uses the Map's `containsKey` method. This is required for correctness and usually much faster that the linear scan of `Iterable.contains`.
The default `MapBase.entries` maps over the keys and does lookups. It is faster to scan the data like `get keys` and `get values`.
Issue: #52909
Change-Id: Id3400c3efd8e657c74b41b3fce71e0713dc790bc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/389266
Reviewed-by: Lasse Nielsen <[email protected]>
Reviewed-by: Ömer Ağacan <[email protected]>
Commit-Queue: Stephen Adams <[email protected]>Iterables for _Map.{keys,values,entries}1 parent 7f31e31 commit 23a98d8
File tree
3 files changed
+252
-43
lines changed- sdk/lib/_internal
- wasm/lib
- tests/lib/collection
3 files changed
+252
-43
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
9 | 16 | | |
10 | 17 | | |
11 | 18 | | |
| |||
753 | 760 | | |
754 | 761 | | |
755 | 762 | | |
756 | | - | |
757 | | - | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
758 | 766 | | |
759 | 767 | | |
760 | 768 | | |
| |||
796 | 804 | | |
797 | 805 | | |
798 | 806 | | |
799 | | - | |
800 | | - | |
801 | | - | |
| 807 | + | |
| 808 | + | |
| 809 | + | |
| 810 | + | |
| 811 | + | |
| 812 | + | |
| 813 | + | |
| 814 | + | |
| 815 | + | |
| 816 | + | |
| 817 | + | |
| 818 | + | |
| 819 | + | |
| 820 | + | |
| 821 | + | |
| 822 | + | |
| 823 | + | |
| 824 | + | |
802 | 825 | | |
803 | | - | |
804 | | - | |
805 | 826 | | |
806 | | - | |
| 827 | + | |
807 | 828 | | |
808 | | - | |
809 | | - | |
810 | | - | |
811 | | - | |
812 | | - | |
813 | | - | |
814 | | - | |
| 829 | + | |
| 830 | + | |
815 | 831 | | |
816 | 832 | | |
817 | 833 | | |
818 | 834 | | |
819 | 835 | | |
820 | 836 | | |
| 837 | + | |
| 838 | + | |
821 | 839 | | |
822 | 840 | | |
823 | 841 | | |
| |||
829 | 847 | | |
830 | 848 | | |
831 | 849 | | |
832 | | - | |
| 850 | + | |
833 | 851 | | |
834 | 852 | | |
835 | 853 | | |
836 | | - | |
| 854 | + | |
837 | 855 | | |
838 | 856 | | |
839 | 857 | | |
| |||
850 | 868 | | |
851 | 869 | | |
852 | 870 | | |
| 871 | + | |
| 872 | + | |
| 873 | + | |
| 874 | + | |
| 875 | + | |
| 876 | + | |
| 877 | + | |
| 878 | + | |
| 879 | + | |
| 880 | + | |
| 881 | + | |
| 882 | + | |
| 883 | + | |
| 884 | + | |
| 885 | + | |
| 886 | + | |
| 887 | + | |
| 888 | + | |
| 889 | + | |
| 890 | + | |
| 891 | + | |
| 892 | + | |
| 893 | + | |
| 894 | + | |
| 895 | + | |
| 896 | + | |
| 897 | + | |
| 898 | + | |
| 899 | + | |
| 900 | + | |
| 901 | + | |
| 902 | + | |
| 903 | + | |
| 904 | + | |
| 905 | + | |
| 906 | + | |
| 907 | + | |
| 908 | + | |
| 909 | + | |
| 910 | + | |
| 911 | + | |
| 912 | + | |
| 913 | + | |
| 914 | + | |
| 915 | + | |
| 916 | + | |
| 917 | + | |
| 918 | + | |
| 919 | + | |
| 920 | + | |
| 921 | + | |
| 922 | + | |
853 | 923 | | |
854 | 924 | | |
855 | 925 | | |
| |||
1245 | 1315 | | |
1246 | 1316 | | |
1247 | 1317 | | |
1248 | | - | |
1249 | | - | |
1250 | | - | |
| 1318 | + | |
| 1319 | + | |
1251 | 1320 | | |
1252 | 1321 | | |
1253 | 1322 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
7 | 13 | | |
8 | 14 | | |
9 | 15 | | |
| |||
670 | 676 | | |
671 | 677 | | |
672 | 678 | | |
673 | | - | |
674 | | - | |
| 679 | + | |
| 680 | + | |
| 681 | + | |
675 | 682 | | |
676 | 683 | | |
677 | 684 | | |
| |||
713 | 720 | | |
714 | 721 | | |
715 | 722 | | |
716 | | - | |
717 | | - | |
718 | | - | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
| 729 | + | |
| 730 | + | |
| 731 | + | |
| 732 | + | |
| 733 | + | |
| 734 | + | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
| 739 | + | |
| 740 | + | |
719 | 741 | | |
720 | | - | |
721 | | - | |
722 | 742 | | |
723 | | - | |
| 743 | + | |
724 | 744 | | |
725 | | - | |
726 | | - | |
727 | | - | |
728 | | - | |
729 | | - | |
730 | | - | |
731 | | - | |
| 745 | + | |
| 746 | + | |
732 | 747 | | |
733 | 748 | | |
734 | 749 | | |
735 | 750 | | |
736 | 751 | | |
737 | 752 | | |
| 753 | + | |
| 754 | + | |
738 | 755 | | |
739 | 756 | | |
740 | 757 | | |
| |||
746 | 763 | | |
747 | 764 | | |
748 | 765 | | |
749 | | - | |
| 766 | + | |
750 | 767 | | |
751 | 768 | | |
752 | 769 | | |
753 | | - | |
| 770 | + | |
754 | 771 | | |
755 | 772 | | |
756 | 773 | | |
| |||
767 | 784 | | |
768 | 785 | | |
769 | 786 | | |
| 787 | + | |
| 788 | + | |
| 789 | + | |
| 790 | + | |
| 791 | + | |
| 792 | + | |
| 793 | + | |
| 794 | + | |
| 795 | + | |
| 796 | + | |
| 797 | + | |
| 798 | + | |
| 799 | + | |
| 800 | + | |
| 801 | + | |
| 802 | + | |
| 803 | + | |
| 804 | + | |
| 805 | + | |
| 806 | + | |
| 807 | + | |
| 808 | + | |
| 809 | + | |
| 810 | + | |
| 811 | + | |
| 812 | + | |
| 813 | + | |
| 814 | + | |
| 815 | + | |
| 816 | + | |
| 817 | + | |
| 818 | + | |
| 819 | + | |
| 820 | + | |
| 821 | + | |
| 822 | + | |
| 823 | + | |
| 824 | + | |
| 825 | + | |
| 826 | + | |
| 827 | + | |
| 828 | + | |
| 829 | + | |
| 830 | + | |
| 831 | + | |
| 832 | + | |
| 833 | + | |
| 834 | + | |
| 835 | + | |
| 836 | + | |
| 837 | + | |
770 | 838 | | |
771 | 839 | | |
772 | 840 | | |
| |||
1180 | 1248 | | |
1181 | 1249 | | |
1182 | 1250 | | |
1183 | | - | |
1184 | | - | |
1185 | | - | |
| 1251 | + | |
| 1252 | + | |
1186 | 1253 | | |
1187 | 1254 | | |
1188 | 1255 | | |
1189 | 1256 | | |
1190 | 1257 | | |
1191 | 1258 | | |
1192 | | - | |
| 1259 | + | |
| 1260 | + | |
0 commit comments