Skip to content

Commit 6514f44

Browse files
Big JS optimization
1 parent c96be6f commit 6514f44

File tree

1 file changed

+11
-15
lines changed

1 file changed

+11
-15
lines changed

src/librustdoc/html/static/main.js

+11-15
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@
145145
if (x) {
146146
x.scrollIntoView();
147147
}
148-
};
148+
}
149149
onEach(document.getElementsByClassName('line-numbers'), function(e) {
150150
onEach(e.getElementsByTagName('span'), function(i_e) {
151151
removeClass(i_e, 'line-highlighted');
@@ -388,16 +388,6 @@
388388
return b;
389389
}
390390

391-
function nbElements(obj) {
392-
var size = 0, key;
393-
for (key in obj) {
394-
if (obj.hasOwnProperty(key)) {
395-
size += 1;
396-
}
397-
}
398-
return size;
399-
}
400-
401391
function extractGenerics(val) {
402392
val = val.toLowerCase();
403393
if (val.indexOf('<') !== -1) {
@@ -568,6 +558,7 @@
568558
if ((val.charAt(0) === "\"" || val.charAt(0) === "'") &&
569559
val.charAt(val.length - 1) === val.charAt(0))
570560
{
561+
var results_length = 0;
571562
val = extractGenerics(val.substr(1, val.length - 2));
572563
for (var i = 0; i < nSearchWords; ++i) {
573564
var param = findArg(searchIndex[i], val, true);
@@ -576,8 +567,10 @@
576567
if (searchWords[i] === val.name) {
577568
// filter type: ... queries
578569
if (typePassesFilter(typeFilter, searchIndex[i].ty) &&
579-
results[ty.path + ty.name] === undefined) {
570+
results[ty.path + ty.name] === undefined)
571+
{
580572
results[ty.path + ty.name] = {id: i, index: -1};
573+
results_length += 1;
581574
}
582575
} else if ((param === true || returned === true) &&
583576
typePassesFilter(typeFilter, searchIndex[i].ty)) {
@@ -589,6 +582,7 @@
589582
param: param,
590583
returned: returned,
591584
};
585+
results_length += 1;
592586
} else {
593587
if (param === true) {
594588
results[ty.path + ty.name].param = true;
@@ -598,7 +592,7 @@
598592
}
599593
}
600594
}
601-
if (nbElements(results) === max) {
595+
if (results_length === max) {
602596
break;
603597
}
604598
}
@@ -612,7 +606,7 @@
612606
var input = parts[0];
613607
// sort inputs so that order does not matter
614608
var inputs = input.split(",").map(trimmer).sort();
615-
for (var i = 0; i < inputs.length; i++) {
609+
for (var i = 0; i < inputs.length; ++i) {
616610
inputs[i] = extractGenerics(inputs[i]);
617611
}
618612
var output = extractGenerics(parts[1]);
@@ -671,6 +665,7 @@
671665
// gather matching search results up to a certain maximum
672666
val = val.replace(/\_/g, "");
673667
var valGenerics = extractGenerics(val);
668+
var results_length = 0;
674669
for (var i = 0; i < split.length; ++i) {
675670
for (var j = 0; j < nSearchWords; ++j) {
676671
var lev_distance;
@@ -731,6 +726,7 @@
731726
param: param,
732727
returned: returned,
733728
};
729+
results_length += 1;
734730
} else {
735731
if (results[ty.path + ty.name].lev > lev) {
736732
results[ty.path + ty.name].lev = lev;
@@ -743,7 +739,7 @@
743739
}
744740
}
745741
}
746-
if (nbElements(results) === max) {
742+
if (results_length === max) {
747743
break;
748744
}
749745
}

0 commit comments

Comments
 (0)