]> git.lizzy.rs Git - rust.git/commitdiff
Big JS optimization
authorGuillaume Gomez <guillaume1.gomez@gmail.com>
Sat, 11 Nov 2017 22:24:04 +0000 (23:24 +0100)
committerGuillaume Gomez <guillaume1.gomez@gmail.com>
Sun, 12 Nov 2017 20:38:23 +0000 (21:38 +0100)
src/librustdoc/html/static/main.js

index cd281039b9de07540c0b8e5fdb1eeef0c9c1a5d7..0d3d52ead173b23a8a4d4ca38003764630583545 100644 (file)
                 if (x) {
                     x.scrollIntoView();
                 }
-            };
+            }
             onEach(document.getElementsByClassName('line-numbers'), function(e) {
                 onEach(e.getElementsByTagName('span'), function(i_e) {
                     removeClass(i_e, 'line-highlighted');
                 return b;
             }
 
-            function nbElements(obj) {
-                var size = 0, key;
-                for (key in obj) {
-                    if (obj.hasOwnProperty(key)) {
-                        size += 1;
-                    }
-                }
-                return size;
-            }
-
             function extractGenerics(val) {
                 val = val.toLowerCase();
                 if (val.indexOf('<') !== -1) {
             if ((val.charAt(0) === "\"" || val.charAt(0) === "'") &&
                 val.charAt(val.length - 1) === val.charAt(0))
             {
+                var results_length = 0;
                 val = extractGenerics(val.substr(1, val.length - 2));
                 for (var i = 0; i < nSearchWords; ++i) {
                     var param = findArg(searchIndex[i], val, true);
                     if (searchWords[i] === val.name) {
                         // filter type: ... queries
                         if (typePassesFilter(typeFilter, searchIndex[i].ty) &&
-                            results[ty.path + ty.name] === undefined) {
+                            results[ty.path + ty.name] === undefined)
+                        {
                             results[ty.path + ty.name] = {id: i, index: -1};
+                            results_length += 1;
                         }
                     } else if ((param === true || returned === true) &&
                                typePassesFilter(typeFilter, searchIndex[i].ty)) {
                                 param: param,
                                 returned: returned,
                             };
+                            results_length += 1;
                         } else {
                             if (param === true) {
                                 results[ty.path + ty.name].param = true;
                             }
                         }
                     }
-                    if (nbElements(results) === max) {
+                    if (results_length === max) {
                         break;
                     }
                 }
                 var input = parts[0];
                 // sort inputs so that order does not matter
                 var inputs = input.split(",").map(trimmer).sort();
-                for (var i = 0; i < inputs.length; i++) {
+                for (var i = 0; i < inputs.length; ++i) {
                     inputs[i] = extractGenerics(inputs[i]);
                 }
                 var output = extractGenerics(parts[1]);
                 // gather matching search results up to a certain maximum
                 val = val.replace(/\_/g, "");
                 var valGenerics = extractGenerics(val);
+                var results_length = 0;
                 for (var i = 0; i < split.length; ++i) {
                     for (var j = 0; j < nSearchWords; ++j) {
                         var lev_distance;
                                     param: param,
                                     returned: returned,
                                 };
+                                results_length += 1;
                             } else {
                                 if (results[ty.path + ty.name].lev > lev) {
                                     results[ty.path + ty.name].lev = lev;
                                 }
                             }
                         }
-                        if (nbElements(results) === max) {
+                        if (results_length === max) {
                             break;
                         }
                     }