1- // From rust:
2- /* global ALIASES */
3-
41// Local js definitions:
5- /* global addClass, getCurrentValue , hasClass */
6- /* global onEachLazy, hasOwnProperty, removeClass, updateLocalStorage */
2+ /* global addClass, getSettingValue , hasClass */
3+ /* global onEach, onEachLazy, hasOwnProperty, removeClass, updateLocalStorage */
74/* global hideThemeButtonState, showThemeButtonState */
85
96if ( ! String . prototype . startsWith ) {
@@ -2214,7 +2211,7 @@ function defocusSearchBar() {
22142211 }
22152212 }
22162213
2217- function toggleAllDocs ( pageId , fromAutoCollapse ) {
2214+ function toggleAllDocs ( fromAutoCollapse ) {
22182215 var innerToggle = document . getElementById ( toggleAllDocsId ) ;
22192216 if ( ! innerToggle ) {
22202217 return ;
@@ -2257,14 +2254,14 @@ function defocusSearchBar() {
22572254 }
22582255 if ( ! parent || ! superParent || superParent . id !== "main" ||
22592256 hasClass ( parent , "impl" ) === false ) {
2260- collapseDocs ( e , "hide" , pageId ) ;
2257+ collapseDocs ( e , "hide" ) ;
22612258 }
22622259 } ) ;
22632260 }
22642261 }
22652262 }
22662263
2267- function collapseDocs ( toggle , mode , pageId ) {
2264+ function collapseDocs ( toggle , mode ) {
22682265 if ( ! toggle || ! toggle . parentNode ) {
22692266 return ;
22702267 }
@@ -2384,35 +2381,35 @@ function defocusSearchBar() {
23842381 }
23852382 }
23862383
2387- function collapser ( pageId , e , collapse ) {
2384+ function collapser ( e , collapse ) {
23882385 // inherent impl ids are like "impl" or impl-<number>'.
23892386 // they will never be hidden by default.
23902387 var n = e . parentElement ;
23912388 if ( n . id . match ( / ^ i m p l (?: - \d + ) ? $ / ) === null ) {
23922389 // Automatically minimize all non-inherent impls
23932390 if ( collapse || hasClass ( n , "impl" ) ) {
2394- collapseDocs ( e , "hide" , pageId ) ;
2391+ collapseDocs ( e , "hide" ) ;
23952392 }
23962393 }
23972394 }
23982395
2399- function autoCollapse ( pageId , collapse ) {
2396+ function autoCollapse ( collapse ) {
24002397 if ( collapse ) {
2401- toggleAllDocs ( pageId , true ) ;
2398+ toggleAllDocs ( true ) ;
24022399 } else if ( getSettingValue ( "auto-hide-trait-implementations" ) !== "false" ) {
24032400 var impl_list = document . getElementById ( "trait-implementations-list" ) ;
24042401
24052402 if ( impl_list !== null ) {
24062403 onEachLazy ( impl_list . getElementsByClassName ( "collapse-toggle" ) , function ( e ) {
2407- collapser ( pageId , e , collapse ) ;
2404+ collapser ( e , collapse ) ;
24082405 } ) ;
24092406 }
24102407
24112408 var blanket_list = document . getElementById ( "blanket-implementations-list" ) ;
24122409
24132410 if ( blanket_list !== null ) {
24142411 onEachLazy ( blanket_list . getElementsByClassName ( "collapse-toggle" ) , function ( e ) {
2415- collapser ( pageId , e , collapse ) ;
2412+ collapser ( e , collapse ) ;
24162413 } ) ;
24172414 }
24182415 }
@@ -2475,7 +2472,6 @@ function defocusSearchBar() {
24752472 var toggle = createSimpleToggle ( false ) ;
24762473 var hideMethodDocs = getSettingValue ( "auto-hide-method-docs" ) === "true" ;
24772474 var hideImplementors = getSettingValue ( "auto-collapse-implementors" ) !== "false" ;
2478- var pageId = getPageId ( ) ;
24792475
24802476 var func = function ( e ) {
24812477 var next = e . nextElementSibling ;
@@ -2489,7 +2485,7 @@ function defocusSearchBar() {
24892485 var newToggle = toggle . cloneNode ( true ) ;
24902486 insertAfter ( newToggle , e . childNodes [ e . childNodes . length - 1 ] ) ;
24912487 if ( hideMethodDocs === true && hasClass ( e , "method" ) === true ) {
2492- collapseDocs ( newToggle , "hide" , pageId ) ;
2488+ collapseDocs ( newToggle , "hide" ) ;
24932489 }
24942490 }
24952491 } ;
@@ -2513,7 +2509,7 @@ function defocusSearchBar() {
25132509 // In case the option "auto-collapse implementors" is not set to false, we collapse
25142510 // all implementors.
25152511 if ( hideImplementors === true && e . parentNode . id === "implementors-list" ) {
2516- collapseDocs ( newToggle , "hide" , pageId ) ;
2512+ collapseDocs ( newToggle , "hide" ) ;
25172513 }
25182514 }
25192515 } ;
@@ -2527,7 +2523,7 @@ function defocusSearchBar() {
25272523 if ( e . id . match ( / ^ i m p l (?: - \d + ) ? $ / ) === null ) {
25282524 // Automatically minimize all non-inherent impls
25292525 if ( hasClass ( e , "impl" ) === true ) {
2530- collapseDocs ( newToggle , "hide" , pageId ) ;
2526+ collapseDocs ( newToggle , "hide" ) ;
25312527 }
25322528 }
25332529 } ;
@@ -2562,14 +2558,12 @@ function defocusSearchBar() {
25622558 }
25632559 onEachLazy ( document . getElementsByClassName ( "impl-items" ) , function ( e ) {
25642560 onEachLazy ( e . getElementsByClassName ( "associatedconstant" ) , func ) ;
2565- var hiddenElems = e . getElementsByClassName ( "hidden" ) ;
2566- var needToggle = false ;
2567-
2568- var needToggle = onEachLazy ( e . getElementsByClassName ( "hidden" ) , function ( hiddenElem ) {
2569- if ( hasClass ( hiddenElem , "content" ) === false &&
2570- hasClass ( hiddenElem , "docblock" ) === false ) {
2571- return true ;
2572- }
2561+ // We transform the DOM iterator into a vec of DOM elements to prevent performance
2562+ // issues on webkit browsers.
2563+ var hiddenElems = Array . prototype . slice . call ( e . getElementsByClassName ( "hidden" ) ) ;
2564+ var needToggle = hiddenElems . some ( function ( hiddenElem ) {
2565+ return hasClass ( hiddenElem , "content" ) === false &&
2566+ hasClass ( hiddenElem , "docblock" ) === false ;
25732567 } ) ;
25742568 if ( needToggle === true ) {
25752569 var inner_toggle = newToggle . cloneNode ( true ) ;
@@ -2672,10 +2666,10 @@ function defocusSearchBar() {
26722666
26732667 onEachLazy ( document . getElementsByClassName ( "docblock" ) , buildToggleWrapper ) ;
26742668 onEachLazy ( document . getElementsByClassName ( "sub-variant" ) , buildToggleWrapper ) ;
2675- var pageId = getPageId ( ) ;
26762669
2677- autoCollapse ( pageId , getSettingValue ( "collapse" ) === "true" ) ;
2670+ autoCollapse ( getSettingValue ( "collapse" ) === "true" ) ;
26782671
2672+ var pageId = getPageId ( ) ;
26792673 if ( pageId !== null ) {
26802674 expandSection ( pageId ) ;
26812675 }
0 commit comments