From 6530b3243a773a7e6d0bcf4f617fb74b18d8d1ea Mon Sep 17 00:00:00 2001 From: Michael Howell Date: Wed, 31 Mar 2021 12:43:21 -0700 Subject: [PATCH 1/2] rustdoc: use Array.prototype.filter instead of open-coding it --- src/librustdoc/html/static/main.js | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/librustdoc/html/static/main.js b/src/librustdoc/html/static/main.js index da2952bbebd..52c3ff68d91 100644 --- a/src/librustdoc/html/static/main.js +++ b/src/librustdoc/html/static/main.js @@ -1338,17 +1338,11 @@ function hideThemeButtonState() { var valGenerics = extractGenerics(val); var paths = valLower.split("::"); - var j; - for (j = 0, len = paths.length; j < len; ++j) { - if (paths[j] === "") { - paths.splice(j, 1); - j -= 1; - } - } + paths = paths.filter(function(segment) { return segment !== ""; }); val = paths[paths.length - 1]; var contains = paths.slice(0, paths.length > 1 ? paths.length - 1 : 1); - var lev; + var lev, j; for (j = 0; j < nSearchWords; ++j) { ty = searchIndex[j]; if (!ty || (filterCrates !== undefined && ty.crate !== filterCrates)) { From 227f5ed679ed0ad997b6530df842d55980c8c90e Mon Sep 17 00:00:00 2001 From: Michael Howell Date: Thu, 1 Apr 2021 10:56:11 -0700 Subject: [PATCH 2/2] rustdoc: Separate filter-empty-string out into its own function --- src/librustdoc/html/static/main.js | 13 +++++++++++-- src/tools/rustdoc-js/tester.js | 3 ++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/librustdoc/html/static/main.js b/src/librustdoc/html/static/main.js index 52c3ff68d91..947c9298225 100644 --- a/src/librustdoc/html/static/main.js +++ b/src/librustdoc/html/static/main.js @@ -219,6 +219,15 @@ function hideThemeButtonState() { var titleBeforeSearch = document.title; var searchTitle = null; + function removeEmptyStringsFromArray(x) { + for (var i = 0, len = x.length; i < len; ++i) { + if (x[i] === "") { + x.splice(i, 1); + i -= 1; + } + } + } + function clearInputTimeout() { if (searchTimeout !== null) { clearTimeout(searchTimeout); @@ -756,7 +765,7 @@ function hideThemeButtonState() { results = {}, results_in_args = {}, results_returned = {}, split = valLower.split("::"); - split = split.filter(function(segment) { return segment !== ""; }); + removeEmptyStringsFromArray(split); function transformResults(results, isType) { var out = []; @@ -1338,7 +1347,7 @@ function hideThemeButtonState() { var valGenerics = extractGenerics(val); var paths = valLower.split("::"); - paths = paths.filter(function(segment) { return segment !== ""; }); + removeEmptyStringsFromArray(paths); val = paths[paths.length - 1]; var contains = paths.slice(0, paths.length > 1 ? paths.length - 1 : 1); diff --git a/src/tools/rustdoc-js/tester.js b/src/tools/rustdoc-js/tester.js index c21277de335..a551a97bda5 100644 --- a/src/tools/rustdoc-js/tester.js +++ b/src/tools/rustdoc-js/tester.js @@ -264,7 +264,8 @@ function loadMainJsAndIndex(mainJs, searchIndex, storageJs, crate) { // execQuery last parameter is built in buildIndex. // buildIndex requires the hashmap from search-index. var functionsToLoad = ["buildHrefAndPath", "pathSplitter", "levenshtein", "validateResult", - "handleAliases", "getQuery", "buildIndex", "execQuery", "execSearch"]; + "handleAliases", "getQuery", "buildIndex", "execQuery", "execSearch", + "removeEmptyStringsFromArray"]; ALIASES = {}; finalJS += 'window = { "currentCrate": "' + crate + '", rootPath: "../" };\n';