diff --git a/src/librustdoc/html/static/main.js b/src/librustdoc/html/static/main.js index ebc9ada4451e7..be30871ea4c70 100644 --- a/src/librustdoc/html/static/main.js +++ b/src/librustdoc/html/static/main.js @@ -1,6 +1,6 @@ // Local js definitions: -/* global addClass, getSettingValue, hasClass */ -/* global onEach, onEachLazy, hasOwnProperty, removeClass, updateLocalStorage */ +/* global addClass, getSettingValue, hasClass, searchState */ +/* global onEach, onEachLazy, removeClass */ /* global switchTheme, useSystemTheme */ if (!String.prototype.startsWith) { @@ -347,10 +347,6 @@ function hideThemeButtonState() { document.getElementsByTagName("body")[0].style.marginTop = ""; } - function isHidden(elem) { - return elem.offsetHeight === 0; - } - var toggleAllDocsId = "toggle-all-docs"; var main = document.getElementById("main"); var savedHash = ""; @@ -553,7 +549,7 @@ function hideThemeButtonState() { len = window.rootPath.match(/\.\.\//g).length + 1; for (i = 0; i < len; ++i) { - match = url.match(/\/[^\/]*$/); + match = url.match(/\/[^/]*$/); if (i < len - 1) { stripped = match[0] + stripped; } @@ -952,13 +948,11 @@ function hideThemeButtonState() { }); var currentType = document.getElementsByClassName("type-decl")[0]; - var className = null; if (currentType) { currentType = currentType.getElementsByClassName("rust")[0]; if (currentType) { onEachLazy(currentType.classList, function(item) { if (item !== "main") { - className = item; return true; } }); @@ -1047,7 +1041,7 @@ function hideThemeButtonState() { }; } - function buildHelperPopup() { + var buildHelperPopup = function() { var popup = document.createElement("aside"); addClass(popup, "hidden"); popup.id = "help"; @@ -1114,7 +1108,7 @@ function hideThemeButtonState() { insertAfter(popup, searchState.outputElement()); // So that it's only built once and then it'll do nothing when called! buildHelperPopup = function() {}; - } + }; onHashChange(null); window.addEventListener("hashchange", onHashChange); diff --git a/src/librustdoc/html/static/search.js b/src/librustdoc/html/static/search.js index a09d3eb1796b3..c53b3d5f14bc6 100644 --- a/src/librustdoc/html/static/search.js +++ b/src/librustdoc/html/static/search.js @@ -1,3 +1,6 @@ +/* global addClass, getNakedUrl, getSettingValue, hasOwnPropertyRustdoc, initSearch, onEach */ +/* global onEachLazy, removeClass, searchState, updateLocalStorage */ + (function() { // This mapping table should match the discriminants of // `rustdoc::html::item_type::ItemType` type in Rust. @@ -170,7 +173,7 @@ window.initSearch = function(rawSearchIndex) { function sortResults(results, isType) { var ar = []; for (var entry in results) { - if (hasOwnProperty(results, entry)) { + if (hasOwnPropertyRustdoc(results, entry)) { ar.push(results[entry]); } } @@ -254,7 +257,7 @@ window.initSearch = function(rawSearchIndex) { }); for (i = 0, len = results.length; i < len; ++i) { - var result = results[i]; + result = results[i]; // this validation does not make sense when searching by types if (result.dontValidate) { @@ -301,7 +304,7 @@ window.initSearch = function(rawSearchIndex) { if (obj.length > GENERICS_DATA && obj[GENERICS_DATA].length >= val.generics.length) { var elems = Object.create(null); - var elength = object[GENERICS_DATA].length; + var elength = obj[GENERICS_DATA].length; for (var x = 0; x < elength; ++x) { elems[getObjectNameFromId(obj[GENERICS_DATA][x])] += 1; } @@ -717,7 +720,7 @@ window.initSearch = function(rawSearchIndex) { query.output = val; query.search = val; // gather matching search results up to a certain maximum - val = val.replace(/\_/g, ""); + val = val.replace(/_/g, ""); var valGenerics = extractGenerics(val); @@ -1242,7 +1245,9 @@ window.initSearch = function(rawSearchIndex) { function getFilterCrates() { var elem = document.getElementById("crate-search"); - if (elem && elem.value !== "All crates" && hasOwnProperty(rawSearchIndex, elem.value)) { + if (elem && elem.value !== "All crates" && + hasOwnPropertyRustdoc(rawSearchIndex, elem.value)) + { return elem.value; } return undefined; @@ -1293,14 +1298,13 @@ window.initSearch = function(rawSearchIndex) { var id = 0; for (var crate in rawSearchIndex) { - if (!hasOwnProperty(rawSearchIndex, crate)) { continue; } + if (!hasOwnPropertyRustdoc(rawSearchIndex, crate)) { + continue; + } var crateSize = 0; searchWords.push(crate); - var normalizedName = crate.indexOf("_") === -1 - ? crate - : crate.replace(/_/g, ""); // This object should have exactly the same set of fields as the "row" // object defined below. Your JavaScript runtime will thank you. // https://mathiasbynens.be/notes/shapes-ics @@ -1313,7 +1317,7 @@ window.initSearch = function(rawSearchIndex) { parent: undefined, type: null, id: id, - normalizedName: normalizedName, + normalizedName: crate.indexOf("_") === -1 ? crate : crate.replace(/_/g, ""), }; id += 1; searchIndex.push(crateRow); @@ -1363,9 +1367,6 @@ window.initSearch = function(rawSearchIndex) { word = ""; searchWords.push(""); } - var normalizedName = word.indexOf("_") === -1 - ? word - : word.replace(/_/g, ""); var row = { crate: crate, ty: itemTypes[i], @@ -1375,7 +1376,7 @@ window.initSearch = function(rawSearchIndex) { parent: itemParentIdxs[i] > 0 ? paths[itemParentIdxs[i] - 1] : undefined, type: itemFunctionSearchTypes[i], id: id, - normalizedName: normalizedName, + normalizedName: word.indexOf("_") === -1 ? word : word.replace(/_/g, ""), }; id += 1; searchIndex.push(row); @@ -1387,9 +1388,11 @@ window.initSearch = function(rawSearchIndex) { ALIASES[crate] = {}; var j, local_aliases; for (var alias_name in aliases) { - if (!aliases.hasOwnProperty(alias_name)) { continue; } + if (!hasOwnPropertyRustdoc(aliases, alias_name)) { + continue; + } - if (!ALIASES[crate].hasOwnProperty(alias_name)) { + if (!hasOwnPropertyRustdoc(ALIASES[crate], alias_name)) { ALIASES[crate][alias_name] = []; } local_aliases = aliases[alias_name]; diff --git a/src/librustdoc/html/static/source-script.js b/src/librustdoc/html/static/source-script.js index 81cf437c7dbb0..4d9a59f836b9e 100644 --- a/src/librustdoc/html/static/source-script.js +++ b/src/librustdoc/html/static/source-script.js @@ -2,7 +2,8 @@ /* global search, sourcesIndex */ // Local js definitions: -/* global addClass, getCurrentValue, hasClass, removeClass, updateLocalStorage */ +/* global addClass, getCurrentValue, hasClass, onEachLazy, removeClass, searchState */ +/* global updateLocalStorage */ (function() { function getCurrentFilePath() { @@ -153,7 +154,7 @@ function createSourceSidebar() { var lineNumbersRegex = /^#?(\d+)(?:-(\d+))?$/; -function highlightSourceLines(match, ev) { +function highlightSourceLines(scrollTo, match) { if (typeof match === "undefined") { match = window.location.hash.match(lineNumbersRegex); } @@ -174,7 +175,7 @@ function highlightSourceLines(match, ev) { if (!elem) { return; } - if (!ev) { + if (scrollTo) { var x = document.getElementById(from); if (x) { x.scrollIntoView(); @@ -202,7 +203,7 @@ var handleSourceHighlight = (function() { y = window.scrollY; if (searchState.browserSupportsHistoryApi()) { history.replaceState(null, null, "#" + name); - highlightSourceLines(); + highlightSourceLines(true); } else { location.replace("#" + name); } @@ -234,7 +235,7 @@ var handleSourceHighlight = (function() { window.addEventListener("hashchange", function() { var match = window.location.hash.match(lineNumbersRegex); if (match) { - return highlightSourceLines(match, ev); + return highlightSourceLines(false, match); } }); @@ -242,7 +243,7 @@ onEachLazy(document.getElementsByClassName("line-numbers"), function(el) { el.addEventListener("click", handleSourceHighlight); }); -highlightSourceLines(); +highlightSourceLines(true); window.createSourceSidebar = createSourceSidebar; })(); diff --git a/src/librustdoc/html/static/storage.js b/src/librustdoc/html/static/storage.js index 208afd2e732dd..2eaa81a97d8c5 100644 --- a/src/librustdoc/html/static/storage.js +++ b/src/librustdoc/html/static/storage.js @@ -84,7 +84,7 @@ function onEachLazy(lazyArray, func, reversed) { } // eslint-disable-next-line no-unused-vars -function hasOwnProperty(obj, property) { +function hasOwnPropertyRustdoc(obj, property) { return Object.prototype.hasOwnProperty.call(obj, property); } diff --git a/src/tools/rustdoc-js/tester.js b/src/tools/rustdoc-js/tester.js index e583bd225a9eb..86b16f8b0e60d 100644 --- a/src/tools/rustdoc-js/tester.js +++ b/src/tools/rustdoc-js/tester.js @@ -267,9 +267,10 @@ function loadSearchJsAndIndex(searchJs, searchIndex, storageJs, crate) { "handleAliases", "getQuery", "buildIndex", "execQuery", "execSearch", "removeEmptyStringsFromArray"]; + const functions = ["hasOwnPropertyRustdoc", "onEach"]; ALIASES = {}; finalJS += 'window = { "currentCrate": "' + crate + '", rootPath: "../" };\n'; - finalJS += loadThings(["hasOwnProperty", "onEach"], 'function', extractFunction, storageJs); + finalJS += loadThings(functions, 'function', extractFunction, storageJs); finalJS += loadThings(arraysToLoad, 'array', extractArrayVariable, searchJs); finalJS += loadThings(variablesToLoad, 'variable', extractVariable, searchJs); finalJS += loadThings(functionsToLoad, 'function', extractFunction, searchJs);