Commit 3ad9530
authored
Fix quadratic runtime for duplicate export name detection (#3861)
Previously, the loader would check the name of a new export against all
existing exports, leading to a quadratic running time.
This change makes the loader parse the entire export section. The
exports are then sorted by name, then adjacent exports are checked for
uniqueness.1 parent 87588ca commit 3ad9530
2 files changed
+99
-24
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
8 | | - | |
9 | 7 | | |
| 8 | + | |
10 | 9 | | |
11 | 10 | | |
12 | 11 | | |
| |||
2753 | 2752 | | |
2754 | 2753 | | |
2755 | 2754 | | |
| 2755 | + | |
| 2756 | + | |
| 2757 | + | |
| 2758 | + | |
| 2759 | + | |
| 2760 | + | |
| 2761 | + | |
| 2762 | + | |
| 2763 | + | |
| 2764 | + | |
| 2765 | + | |
| 2766 | + | |
| 2767 | + | |
| 2768 | + | |
| 2769 | + | |
| 2770 | + | |
| 2771 | + | |
| 2772 | + | |
| 2773 | + | |
| 2774 | + | |
| 2775 | + | |
| 2776 | + | |
| 2777 | + | |
| 2778 | + | |
| 2779 | + | |
| 2780 | + | |
| 2781 | + | |
| 2782 | + | |
| 2783 | + | |
| 2784 | + | |
| 2785 | + | |
| 2786 | + | |
| 2787 | + | |
| 2788 | + | |
| 2789 | + | |
| 2790 | + | |
| 2791 | + | |
| 2792 | + | |
| 2793 | + | |
| 2794 | + | |
| 2795 | + | |
| 2796 | + | |
2756 | 2797 | | |
2757 | 2798 | | |
2758 | 2799 | | |
2759 | 2800 | | |
2760 | 2801 | | |
2761 | 2802 | | |
2762 | 2803 | | |
2763 | | - | |
| 2804 | + | |
2764 | 2805 | | |
2765 | 2806 | | |
2766 | 2807 | | |
| |||
2775 | 2816 | | |
2776 | 2817 | | |
2777 | 2818 | | |
2778 | | - | |
2779 | | - | |
2780 | | - | |
2781 | | - | |
2782 | | - | |
2783 | | - | |
2784 | | - | |
2785 | | - | |
2786 | 2819 | | |
2787 | 2820 | | |
2788 | 2821 | | |
| |||
2830 | 2863 | | |
2831 | 2864 | | |
2832 | 2865 | | |
| 2866 | + | |
| 2867 | + | |
| 2868 | + | |
| 2869 | + | |
| 2870 | + | |
| 2871 | + | |
2833 | 2872 | | |
2834 | 2873 | | |
2835 | 2874 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
8 | | - | |
| 7 | + | |
9 | 8 | | |
10 | 9 | | |
11 | 10 | | |
| |||
3184 | 3183 | | |
3185 | 3184 | | |
3186 | 3185 | | |
| 3186 | + | |
| 3187 | + | |
| 3188 | + | |
| 3189 | + | |
| 3190 | + | |
| 3191 | + | |
3187 | 3192 | | |
3188 | 3193 | | |
3189 | 3194 | | |
| |||
4054 | 4059 | | |
4055 | 4060 | | |
4056 | 4061 | | |
| 4062 | + | |
| 4063 | + | |
| 4064 | + | |
| 4065 | + | |
| 4066 | + | |
| 4067 | + | |
| 4068 | + | |
| 4069 | + | |
| 4070 | + | |
| 4071 | + | |
| 4072 | + | |
| 4073 | + | |
| 4074 | + | |
| 4075 | + | |
| 4076 | + | |
| 4077 | + | |
| 4078 | + | |
| 4079 | + | |
| 4080 | + | |
| 4081 | + | |
| 4082 | + | |
| 4083 | + | |
| 4084 | + | |
| 4085 | + | |
| 4086 | + | |
| 4087 | + | |
| 4088 | + | |
| 4089 | + | |
| 4090 | + | |
| 4091 | + | |
| 4092 | + | |
| 4093 | + | |
| 4094 | + | |
| 4095 | + | |
| 4096 | + | |
| 4097 | + | |
| 4098 | + | |
4057 | 4099 | | |
4058 | 4100 | | |
4059 | 4101 | | |
4060 | 4102 | | |
4061 | 4103 | | |
4062 | 4104 | | |
4063 | | - | |
| 4105 | + | |
4064 | 4106 | | |
4065 | 4107 | | |
4066 | 4108 | | |
4067 | | - | |
4068 | 4109 | | |
4069 | 4110 | | |
4070 | 4111 | | |
| |||
4090 | 4131 | | |
4091 | 4132 | | |
4092 | 4133 | | |
4093 | | - | |
4094 | | - | |
4095 | | - | |
4096 | | - | |
4097 | | - | |
4098 | | - | |
4099 | | - | |
4100 | | - | |
4101 | | - | |
4102 | 4134 | | |
4103 | 4135 | | |
4104 | 4136 | | |
| |||
4171 | 4203 | | |
4172 | 4204 | | |
4173 | 4205 | | |
| 4206 | + | |
| 4207 | + | |
| 4208 | + | |
| 4209 | + | |
4174 | 4210 | | |
4175 | 4211 | | |
4176 | 4212 | | |
| |||
0 commit comments