Skip to content
This repository was archived by the owner on May 28, 2025. It is now read-only.

Commit 2179d91

Browse files
committed
rustdoc-search: use ES6 Map for aliases instead of Object
1 parent a41fc00 commit 2179d91

File tree

1 file changed

+16
-11
lines changed

1 file changed

+16
-11
lines changed

src/librustdoc/html/static/js/search.js

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ function initSearch(rawSearchIndex) {
191191
*/
192192
let searchIndex;
193193
let currentResults;
194-
const ALIASES = Object.create(null);
194+
const ALIASES = new Map();
195195

196196
function isWhitespace(c) {
197197
return " \t\n\r".indexOf(c) !== -1;
@@ -1424,22 +1424,22 @@ function initSearch(rawSearchIndex) {
14241424
const aliases = [];
14251425
const crateAliases = [];
14261426
if (filterCrates !== null) {
1427-
if (ALIASES[filterCrates] && ALIASES[filterCrates][lowerQuery]) {
1428-
const query_aliases = ALIASES[filterCrates][lowerQuery];
1427+
if (ALIASES.has(filterCrates) && ALIASES.get(filterCrates).has(lowerQuery)) {
1428+
const query_aliases = ALIASES.get(filterCrates).get(lowerQuery);
14291429
for (const alias of query_aliases) {
14301430
aliases.push(createAliasFromItem(searchIndex[alias]));
14311431
}
14321432
}
14331433
} else {
1434-
Object.keys(ALIASES).forEach(crate => {
1435-
if (ALIASES[crate][lowerQuery]) {
1434+
for (const [crate, crateAliasesIndex] of ALIASES) {
1435+
if (crateAliasesIndex.has(lowerQuery)) {
14361436
const pushTo = crate === currentCrate ? crateAliases : aliases;
1437-
const query_aliases = ALIASES[crate][lowerQuery];
1437+
const query_aliases = crateAliasesIndex.get(lowerQuery);
14381438
for (const alias of query_aliases) {
14391439
pushTo.push(createAliasFromItem(searchIndex[alias]));
14401440
}
14411441
}
1442-
});
1442+
}
14431443
}
14441444

14451445
const sortFunc = (aaa, bbb) => {
@@ -2345,17 +2345,22 @@ function initSearch(rawSearchIndex) {
23452345
}
23462346

23472347
if (aliases) {
2348-
ALIASES[crate] = Object.create(null);
2348+
const currentCrateAliases = new Map();
2349+
ALIASES.set(crate, currentCrateAliases);
23492350
for (const alias_name in aliases) {
23502351
if (!hasOwnPropertyRustdoc(aliases, alias_name)) {
23512352
continue;
23522353
}
23532354

2354-
if (!hasOwnPropertyRustdoc(ALIASES[crate], alias_name)) {
2355-
ALIASES[crate][alias_name] = [];
2355+
let currentNameAliases;
2356+
if (currentCrateAliases.has(alias_name)) {
2357+
currentNameAliases = currentCrateAliases.get(alias_name);
2358+
} else {
2359+
currentNameAliases = [];
2360+
currentCrateAliases.set(alias_name, currentNameAliases);
23562361
}
23572362
for (const local_alias of aliases[alias_name]) {
2358-
ALIASES[crate][alias_name].push(local_alias + currentIndex);
2363+
currentNameAliases.push(local_alias + currentIndex);
23592364
}
23602365
}
23612366
}

0 commit comments

Comments
 (0)