about summary refs log tree commit diff
diff options
context:
space:
mode:
authorGuillaume Gomez <guillaume1.gomez@gmail.com>2020-11-08 17:10:18 +0100
committerGuillaume Gomez <guillaume1.gomez@gmail.com>2020-11-12 15:00:42 +0100
commit589588ce7b526d974357f4d83fedcf5309e4a3e5 (patch)
tree3884e960079479796e06630e945377d7d7a3786f
parent704050da2334c465784954d81c8990c4bc7a92c5 (diff)
downloadrust-589588ce7b526d974357f4d83fedcf5309e4a3e5.tar.gz
rust-589588ce7b526d974357f4d83fedcf5309e4a3e5.zip
Improve settings.js code by using 'onEachLazy' directly instead of looping through DOM iterators
-rw-r--r--src/librustdoc/html/static/settings.js55
1 files changed, 22 insertions, 33 deletions
diff --git a/src/librustdoc/html/static/settings.js b/src/librustdoc/html/static/settings.js
index daed6e73134..bc14420232c 100644
--- a/src/librustdoc/html/static/settings.js
+++ b/src/librustdoc/html/static/settings.js
@@ -30,41 +30,30 @@
     }
 
     function setEvents() {
-        var elems = {
-            toggles: Array.prototype.slice.call(document.getElementsByClassName("slider")),
-            selects: Array.prototype.slice.call(document.getElementsByClassName("select-wrapper")),
-        };
-        var i;
-
-        if (elems.toggles && elems.toggles.length > 0) {
-            for (i = 0; i < elems.toggles.length; ++i) {
-                var toggle = elems.toggles[i].previousElementSibling;
-                var settingId = toggle.id;
-                var settingValue = getSettingValue(settingId);
-                if (settingValue !== null) {
-                    toggle.checked = settingValue === "true";
-                }
-                toggle.onchange = function() {
-                    changeSetting(this.id, this.checked);
-                };
-                toggle.onkeyup = handleKey;
-                toggle.onkeyrelease = handleKey;
+        onEachLazy(document.getElementsByClassName("slider"), function(elem) {
+            var toggle = elem.previousElementSibling;
+            var settingId = toggle.id;
+            var settingValue = getSettingValue(settingId);
+            if (settingValue !== null) {
+                toggle.checked = settingValue === "true";
             }
-        }
-
-        if (elems.selects && elems.selects.length > 0) {
-            for (i = 0; i < elems.selects.length; ++i) {
-                var select = elems.selects[i].getElementsByTagName("select")[0];
-                var settingId = select.id;
-                var settingValue = getSettingValue(settingId);
-                if (settingValue !== null) {
-                    select.value = settingValue;
-                }
-                select.onchange = function() {
-                    changeSetting(this.id, this.value);
-                };
+            toggle.onchange = function() {
+                changeSetting(this.id, this.checked);
+            };
+            toggle.onkeyup = handleKey;
+            toggle.onkeyrelease = handleKey;
+        });
+        onEachLazy(document.getElementsByClassName("select-wrapper"), function(elem) {
+            var select = elem.getElementsByTagName("select")[0];
+            var settingId = select.id;
+            var settingValue = getSettingValue(settingId);
+            if (settingValue !== null) {
+                select.value = settingValue;
             }
-        }
+            select.onchange = function() {
+                changeSetting(this.id, this.value);
+            };
+        });
     }
 
     window.addEventListener("DOMContentLoaded", setEvents);