Repository navigation
Commit 1f6c99a
committed
Index structured type members without redundant symbol maps
Lazy member resolution removed the member maps of instantiated classes
and interfaces, but anonymous, mapped, and other resolved object types
still keep a name-to-symbol map beside their ordered property list.
When every member is a named property stored under its own name, that
map duplicates the property list, and its symbol pointers and string
headers add to the live heap and to what the collector must scan.
Use the property list as the source of truth for those types. Small
types are searched directly, and larger ones get an index of
pointer-free slots. Module exports, reserved members, and tables with
other keys keep their maps.1 parent 8a62bbe commit 1f6c99a
2 files changed
Lines changed: 101 additions & 11 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| 10 | + | |
10 | 11 | | |
11 | 12 | | |
12 | 13 | | |
| |||
692 | 693 | | |
693 | 694 | | |
694 | 695 | | |
| 696 | + | |
| 697 | + | |
695 | 698 | | |
696 | 699 | | |
697 | 700 | | |
| |||
4592 | 4595 | | |
4593 | 4596 | | |
4594 | 4597 | | |
4595 | | - | |
4596 | 4598 | | |
| 4599 | + | |
4597 | 4600 | | |
4598 | 4601 | | |
4599 | 4602 | | |
| |||
25851 | 25854 | | |
25852 | 25855 | | |
25853 | 25856 | | |
25854 | | - | |
| 25857 | + | |
| 25858 | + | |
| 25859 | + | |
| 25860 | + | |
| 25861 | + | |
| 25862 | + | |
25855 | 25863 | | |
| 25864 | + | |
| 25865 | + | |
| 25866 | + | |
| 25867 | + | |
25856 | 25868 | | |
25857 | 25869 | | |
25858 | 25870 | | |
| 25871 | + | |
| 25872 | + | |
| 25873 | + | |
| 25874 | + | |
| 25875 | + | |
| 25876 | + | |
| 25877 | + | |
| 25878 | + | |
| 25879 | + | |
| 25880 | + | |
| 25881 | + | |
| 25882 | + | |
| 25883 | + | |
| 25884 | + | |
| 25885 | + | |
| 25886 | + | |
| 25887 | + | |
| 25888 | + | |
| 25889 | + | |
| 25890 | + | |
| 25891 | + | |
| 25892 | + | |
| 25893 | + | |
| 25894 | + | |
| 25895 | + | |
| 25896 | + | |
| 25897 | + | |
| 25898 | + | |
| 25899 | + | |
| 25900 | + | |
| 25901 | + | |
| 25902 | + | |
| 25903 | + | |
| 25904 | + | |
| 25905 | + | |
| 25906 | + | |
| 25907 | + | |
| 25908 | + | |
25859 | 25909 | | |
25860 | 25910 | | |
25861 | 25911 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| 13 | + | |
13 | 14 | | |
14 | 15 | | |
15 | 16 | | |
| |||
1114 | 1115 | | |
1115 | 1116 | | |
1116 | 1117 | | |
1117 | | - | |
| 1118 | + | |
1118 | 1119 | | |
1119 | 1120 | | |
1120 | 1121 | | |
| |||
1145 | 1146 | | |
1146 | 1147 | | |
1147 | 1148 | | |
1148 | | - | |
| 1149 | + | |
1149 | 1150 | | |
1150 | 1151 | | |
1151 | 1152 | | |
| 1153 | + | |
| 1154 | + | |
| 1155 | + | |
| 1156 | + | |
| 1157 | + | |
1152 | 1158 | | |
1153 | 1159 | | |
1154 | 1160 | | |
| |||
1159 | 1165 | | |
1160 | 1166 | | |
1161 | 1167 | | |
1162 | | - | |
1163 | | - | |
1164 | | - | |
1165 | | - | |
1166 | | - | |
1167 | | - | |
| 1168 | + | |
| 1169 | + | |
| 1170 | + | |
| 1171 | + | |
| 1172 | + | |
| 1173 | + | |
| 1174 | + | |
| 1175 | + | |
| 1176 | + | |
| 1177 | + | |
| 1178 | + | |
| 1179 | + | |
| 1180 | + | |
| 1181 | + | |
| 1182 | + | |
| 1183 | + | |
| 1184 | + | |
| 1185 | + | |
| 1186 | + | |
| 1187 | + | |
| 1188 | + | |
| 1189 | + | |
| 1190 | + | |
| 1191 | + | |
| 1192 | + | |
| 1193 | + | |
| 1194 | + | |
| 1195 | + | |
| 1196 | + | |
| 1197 | + | |
| 1198 | + | |
| 1199 | + | |
| 1200 | + | |
| 1201 | + | |
| 1202 | + | |
| 1203 | + | |
| 1204 | + | |
| 1205 | + | |
| 1206 | + | |
| 1207 | + | |
1168 | 1208 | | |
| 1209 | + | |
1169 | 1210 | | |
1170 | | - | |
1171 | 1211 | | |
1172 | 1212 | | |
1173 | 1213 | | |
| |||
0 commit comments