@@ -81,6 +81,7 @@ function getSearchElement() {
8181
8282 var disableShortcuts = getCurrentValue ( "rustdoc-disable-shortcuts" ) === "true" ;
8383 var search_input = getSearchInput ( ) ;
84+ var searchTimeout = null ;
8485
8586 // On the search screen, so you remain on the last tab you opened.
8687 //
@@ -344,6 +345,10 @@ function getSearchElement() {
344345 if ( hasClass ( help , "hidden" ) === false ) {
345346 displayHelp ( false , ev , help ) ;
346347 } else if ( hasClass ( search , "hidden" ) === false ) {
348+ if ( searchTimeout !== null ) {
349+ clearTimeout ( searchTimeout ) ;
350+ searchTimeout = null ;
351+ }
347352 ev . preventDefault ( ) ;
348353 hideSearchResults ( search ) ;
349354 document . title = titleBeforeSearch ;
@@ -1799,7 +1804,6 @@ function getSearchElement() {
17991804 }
18001805
18011806 function startSearch ( ) {
1802- var searchTimeout ;
18031807 var callback = function ( ) {
18041808 clearTimeout ( searchTimeout ) ;
18051809 if ( search_input . value . length === 0 ) {
@@ -1815,7 +1819,10 @@ function getSearchElement() {
18151819 search_input . oninput = callback ;
18161820 document . getElementsByClassName ( "search-form" ) [ 0 ] . onsubmit = function ( e ) {
18171821 e . preventDefault ( ) ;
1818- clearTimeout ( searchTimeout ) ;
1822+ if ( searchTimeout !== null ) {
1823+ clearTimeout ( searchTimeout ) ;
1824+ searchTimeout = null ;
1825+ }
18191826 search ( ) ;
18201827 } ;
18211828 search_input . onchange = function ( e ) {
@@ -1824,7 +1831,10 @@ function getSearchElement() {
18241831 return ;
18251832 }
18261833 // Do NOT e.preventDefault() here. It will prevent pasting.
1827- clearTimeout ( searchTimeout ) ;
1834+ if ( searchTimeout !== null ) {
1835+ clearTimeout ( searchTimeout ) ;
1836+ searchTimeout = null ;
1837+ }
18281838 // zero-timeout necessary here because at the time of event handler execution the
18291839 // pasted content is not in the input field yet. Shouldn’t make any difference for
18301840 // change, though.
0 commit comments