Skip to content

Commit

Permalink
cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
GuillaumeGomez committed Dec 6, 2018
1 parent 34e3183 commit a689887
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 65 deletions.
94 changes: 37 additions & 57 deletions src/librustdoc/html/static/main.js
Expand Up @@ -82,8 +82,6 @@ if (!DOMTokenList.prototype.remove) {
"attr",
"derive"];

var start = Date.now();

var search_input = document.getElementsByClassName("search-input")[0];

// On the search screen, so you remain on the last tab you opened.
Expand Down Expand Up @@ -148,7 +146,7 @@ if (!DOMTokenList.prototype.remove) {
var TY_PRIMITIVE = itemTypes.indexOf("primitive");
var TY_KEYWORD = itemTypes.indexOf("keyword");

onEach(Array.prototype.slice.call(document.getElementsByClassName("js-only")), function(e) {
onEachLazy(document.getElementsByClassName("js-only"), function(e) {
removeClass(e, "js-only");
});

Expand Down Expand Up @@ -190,9 +188,8 @@ if (!DOMTokenList.prototype.remove) {
x.scrollIntoView();
}
}
onEach(Array.prototype.slice.call(document.getElementsByClassName("line-numbers")),
function(e) {
onEach(Array.prototype.slice.call(e.getElementsByTagName("span")), function(i_e) {
onEachLazy(document.getElementsByClassName("line-numbers"), function(e) {
onEachLazy(e.getElementsByTagName("span"), function(i_e) {
removeClass(i_e, "line-highlighted");
});
});
Expand Down Expand Up @@ -1103,7 +1100,7 @@ if (!DOMTokenList.prototype.remove) {
aliases[i].displayPath = pathSplitter(res[0]);
aliases[i].fullPath = aliases[i].displayPath + aliases[i].name;
aliases[i].href = res[1];
retothers.unshift(aliases[i]);
ret.others.unshift(aliases[i]);
if (ret.others.length > MAX_RESULTS) {
ret.others.pop();
}
Expand Down Expand Up @@ -1192,16 +1189,16 @@ if (!DOMTokenList.prototype.remove) {
}
clearTimeout(hoverTimeout);
hoverTimeout = setTimeout(function() {
onEach(document.getElementsByClassName("search-results"), function(e) {
onEach(e.getElementsByClassName("result"), function(i_e) {
onEachLazy(document.getElementsByClassName("search-results"), function(e) {
onEachLazy(e.getElementsByClassName("result"), function(i_e) {
removeClass(i_e, "highlighted");
});
});
addClass(el, "highlighted");
}, 20);
};
onEach(document.getElementsByClassName("search-results"), function(e) {
onEach(e.getElementsByClassName("result"), function(i_e) {
onEachLazy(document.getElementsByClassName("search-results"), function(e) {
onEachLazy(e.getElementsByClassName("result"), function(i_e) {
i_e.onclick = click_func;
i_e.onmouseover = mouseover_func;
});
Expand All @@ -1213,8 +1210,8 @@ if (!DOMTokenList.prototype.remove) {
var actives = [[], [], []];
// "current" is used to know which tab we're looking into.
var current = 0;
onEach(document.getElementsByClassName("search-results"), function(e) {
onEach(e.getElementsByClassName("highlighted"), function(e) {
onEachLazy(document.getElementsByClassName("search-results"), function(e) {
onEachLazy(e.getElementsByClassName("highlighted"), function(e) {
actives[current].push(e);
});
current += 1;
Expand Down Expand Up @@ -1418,7 +1415,7 @@ if (!DOMTokenList.prototype.remove) {
td_width = tds[0].offsetWidth;
}
var width = search.offsetWidth - 40 - td_width;
onEach(Array.prototype.slice.call(search.getElementsByClassName("desc")), function(e) {
onEachLazy(search.getElementsByClassName("desc"), function(e) {
e.style.width = width + "px";
});
initSearchNav();
Expand Down Expand Up @@ -1894,9 +1891,7 @@ if (!DOMTokenList.prototype.remove) {
});
innerToggle.title = "collapse all docs";
if (fromAutoCollapse !== true) {
onEach(Array.prototype.slice.call(
document.getElementsByClassName("collapse-toggle")),
function(e) {
onEachLazy(document.getElementsByClassName("collapse-toggle"), function(e) {
collapseDocs(e, "show");
});
}
Expand All @@ -1908,9 +1903,7 @@ if (!DOMTokenList.prototype.remove) {
});
innerToggle.title = "expand all docs";
if (fromAutoCollapse !== true) {
onEach(Array.prototype.slice.call(
document.getElementsByClassName("collapse-toggle")),
function(e) {
onEachLazy(document.getElementsByClassName("collapse-toggle"), function(e) {
collapseDocs(e, "hide", pageId);
});
}
Expand Down Expand Up @@ -1984,12 +1977,12 @@ if (!DOMTokenList.prototype.remove) {
}
if (action === "hide") {
addClass(relatedDoc, "hidden-by-usual-hider");
onEach(Array.prototype.slice.call(toggle.childNodes), adjustToggle(true));
onEachLazy(toggle.childNodes, adjustToggle(true));
addClass(toggle.parentNode, "collapsed");
} else if (action === "show") {
removeClass(relatedDoc, "hidden-by-usual-hider");
removeClass(toggle.parentNode, "collapsed");
onEach(Array.prototype.slice.call(toggle.childNodes), adjustToggle(false));
onEachLazy(toggle.childNodes, adjustToggle(false));
}
}
} else {
Expand Down Expand Up @@ -2022,13 +2015,13 @@ if (!DOMTokenList.prototype.remove) {
if (action === "show") {
removeClass(relatedDoc, "fns-now-collapsed");
removeClass(docblock, "hidden-by-usual-hider");
onEach(Array.prototype.slice.call(toggle.childNodes), adjustToggle(false));
onEach(Array.prototype.slice.call(relatedDoc.childNodes), implHider(false));
onEachLazy(toggle.childNodes, adjustToggle(false));
onEachLazy(relatedDoc.childNodes, implHider(false));
} else if (action === "hide") {
addClass(relatedDoc, "fns-now-collapsed");
addClass(docblock, "hidden-by-usual-hider");
onEach(Array.prototype.slice.call(toggle.childNodes), adjustToggle(true));
onEach(Array.prototype.slice.call(relatedDoc.childNodes), implHider(true));
onEachLazy(toggle.childNodes, adjustToggle(true));
onEachLazy(relatedDoc.childNodes, implHider(true));
}
}
}
Expand All @@ -2052,9 +2045,7 @@ if (!DOMTokenList.prototype.remove) {
var impl_list = document.getElementById("implementations-list");

if (impl_list !== null) {
onEach(Array.prototype.slice.call(
impl_list.getElementsByClassName("collapse-toggle")),
collapser);
onEachLazy(impl_list.getElementsByClassName("collapse-toggle"), collapser);
}
}
}
Expand Down Expand Up @@ -2104,9 +2095,9 @@ if (!DOMTokenList.prototype.remove) {
}
};

onEach(Array.prototype.slice.call(document.getElementsByClassName("method")), func);
onEach(Array.prototype.slice.call(document.getElementsByClassName("associatedconstant")), func);
onEach(Array.prototype.slice.call(document.getElementsByClassName("impl")), funcImpl);
onEachLazy(document.getElementsByClassName("method"), func);
onEachLazy(document.getElementsByClassName("associatedconstant"), func);
onEachLazy(document.getElementsByClassName("impl"), funcImpl);
var impl_call = function() {};
if (getCurrentValue("rustdoc-method-docs") !== "false") {
impl_call = function(e, newToggle, pageId) {
Expand All @@ -2127,8 +2118,7 @@ if (!DOMTokenList.prototype.remove) {
function toggleClicked() {
if (hasClass(this, "collapsed")) {
removeClass(this, "collapsed");
onEach(Array.prototype.slice.call(this.parentNode.getElementsByClassName("hidden")),
function(x) {
onEachLazy(this.parentNode.getElementsByClassName("hidden"), function(x) {
if (hasClass(x, "content") === false) {
removeClass(x, "hidden");
addClass(x, "x");
Expand All @@ -2138,8 +2128,7 @@ if (!DOMTokenList.prototype.remove) {
"</span>] Hide undocumented items";
} else {
addClass(this, "collapsed");
onEach(Array.prototype.slice.call(this.parentNode.getElementsByClassName("x")),
function(x) {
onEachLazy(this.parentNode.getElementsByClassName("x"), function(x) {
if (hasClass(x, "content") === false) {
addClass(x, "hidden");
removeClass(x, "x");
Expand All @@ -2149,8 +2138,8 @@ if (!DOMTokenList.prototype.remove) {
"</span>] Show hidden undocumented items";
}
}
onEach(Array.prototype.slice.call(document.getElementsByClassName("impl-items")), function(e) {
onEach(Array.prototype.slice.call(e.getElementsByClassName("associatedconstant")), func);
onEachLazy(document.getElementsByClassName("impl-items"), function(e) {
onEachLazy(e.getElementsByClassName("associatedconstant"), func);
var hiddenElems = e.getElementsByClassName("hidden");
var needToggle = false;

Expand Down Expand Up @@ -2215,13 +2204,10 @@ if (!DOMTokenList.prototype.remove) {

e.style.display = "none";
addClass(wrap, "collapsed");
onEach(Array.prototype.slice.call(inner_toggle.getElementsByClassName("inner")),
function(e) {
onEachLazy(inner_toggle.getElementsByClassName("inner"), function(e) {
e.innerHTML = labelForToggleButton(true);
});
onEach(Array.prototype.slice.call(
inner_toggle.getElementsByClassName("toggle-label")),
function(e) {
onEachLazy(inner_toggle.getElementsByClassName("toggle-label"), function(e) {
e.style.display = "inline-block";
if (extra === true) {
i_e.innerHTML = " Show " + e.childNodes[0].innerHTML;
Expand Down Expand Up @@ -2268,28 +2254,24 @@ if (!DOMTokenList.prototype.remove) {
}
}

onEach(Array.prototype.slice.call(document.getElementsByClassName("docblock")),
buildToggleWrapper);
onEach(Array.prototype.slice.call(document.getElementsByClassName("sub-variant")),
buildToggleWrapper);
onEachLazy(document.getElementsByClassName("docblock"), buildToggleWrapper);
onEachLazy(document.getElementsByClassName("sub-variant"), buildToggleWrapper);

// In the search display, allows to switch between tabs.
function printTab(nb) {
if (nb === 0 || nb === 1 || nb === 2) {
currentTab = nb;
}
var nb_copy = nb;
onEach(Array.prototype.slice.call(document.getElementById("titles").childNodes),
function(elem) {
onEachLazy(document.getElementById("titles").childNodes, function(elem) {
if (nb_copy === 0) {
addClass(elem, "selected");
} else {
removeClass(elem, "selected");
}
nb_copy -= 1;
});
onEach(Array.prototype.slice.call(document.getElementById("results").childNodes),
function(elem) {
onEachLazy(document.getElementById("results").childNodes, function(elem) {
if (nb === 0) {
elem.style.display = "";
} else {
Expand Down Expand Up @@ -2320,7 +2302,7 @@ if (!DOMTokenList.prototype.remove) {
};
}
var attributesToggle = createToggleWrapper(createSimpleToggle(false));
onEach(Array.prototype.slice.call(main.getElementsByClassName("attributes")), function(i_e) {
onEachLazy(main.getElementsByClassName("attributes"), function(i_e) {
i_e.parentNode.insertBefore(attributesToggle.cloneNode(true), i_e);
itemAttributesFunc(i_e);
});
Expand All @@ -2340,8 +2322,7 @@ if (!DOMTokenList.prototype.remove) {
x.parentNode.insertBefore(node, x);
};
}
onEach(Array.prototype.slice.call(document.getElementsByClassName("rust-example-rendered")),
function(e) {
onEachLazy(document.getElementsByClassName("rust-example-rendered"), function(e) {
if (hasClass(e, "compile_fail")) {
e.addEventListener("mouseover", function(event) {
this.parentElement.previousElementSibling.childNodes[0].style.color = "#f00";
Expand Down Expand Up @@ -2379,8 +2360,7 @@ if (!DOMTokenList.prototype.remove) {
}
}

onEach(Array.prototype.slice.call(document.getElementsByClassName("important-traits")),
function(e) {
onEachLazy(document.getElementsByClassName("important-traits"), function(e) {
e.onclick = function() {
showModal(e.lastElementChild.innerHTML);
};
Expand Down Expand Up @@ -2435,7 +2415,7 @@ if (!DOMTokenList.prototype.remove) {
}

if (main) {
onEach(Array.prototype.slice.call(main.childNodes), function(e) {
onEachLazy(main.childNodes, function(e) {
if (e.tagName === "H2" || e.tagName === "H3") {
e.nextElementSibling.style.display = "block";
}
Expand Down
17 changes: 9 additions & 8 deletions src/librustdoc/html/static/storage.js
Expand Up @@ -19,10 +19,7 @@ var mainTheme = document.getElementById("mainThemeStyle");
var savedHref = [];

function hasClass(elem, className) {
if (!elem || !elem.classList) {
return false;
}
return elem.classList.contains(className);
return elem && elem.classList && elem.classList.contains(className);
}

function addClass(elem, className) {
Expand All @@ -40,12 +37,9 @@ function removeClass(elem, className) {
}

function isHidden(elem) {
return (elem.offsetParent === null);
return elem.offsetParent === null;
}

var allcallers = {};
var resourcesSuffix="";

function onEach(arr, func, reversed) {
if (arr && arr.length > 0 && func) {
var length = arr.length;
Expand All @@ -66,6 +60,13 @@ function onEach(arr, func, reversed) {
return false;
}

function onEachLazy(lazyArray, func, reversed) {
return onEach(
Array.prototype.slice.call(lazyArray),
func,
reversed);
}

function usableLocalStorage() {
// Check if the browser supports localStorage at all:
if (typeof(Storage) === "undefined") {
Expand Down

0 comments on commit a689887

Please sign in to comment.