diff options
| author | jez | 2011-05-14 17:25:14 -0400 | 
|---|---|---|
| committer | jez | 2011-05-14 17:39:57 -0400 | 
| commit | 94ca405e46bb8e92aaf94f0c5be969303d45000d (patch) | |
| tree | e140ccdd7ed5dc3231ec14b6b6678a2f9c4a6d89 /linkHints.js | |
| parent | 869d021f0e15aab6e6e246dbfa4a1060b875e41c (diff) | |
| download | vimium-94ca405e46bb8e92aaf94f0c5be969303d45000d.tar.bz2 | |
Pre-compute DOM collection lengths before usage in for loops.
Done with reference to commits 15b0301785b76135b57b0fc57ec9a4838668a2cb and
e2faa2c815cf74458b4fba0aed3346046d3075ed.
Diffstat (limited to 'linkHints.js')
| -rw-r--r-- | linkHints.js | 14 | 
1 files changed, 7 insertions, 7 deletions
| diff --git a/linkHints.js b/linkHints.js index dcc5f9ad..f20a8e8e 100644 --- a/linkHints.js +++ b/linkHints.js @@ -118,7 +118,7 @@ var linkHints = {      var visibleElements = [];      // Find all visible clickable elements. -    for (var i = 0; i < resultSet.snapshotLength; i++) { +    for (var i = 0, count = resultSet.snapshotLength; i < count; i++) {        var element = resultSet.snapshotItem(i);        // Note: this call will be expensive if we modify the DOM in between calls.        var clientRect = element.getClientRects()[0]; @@ -129,7 +129,7 @@ var linkHints = {        // If the link has zero dimensions, it may be wrapping visible        // but floated elements. Check for this.        if (clientRect && (clientRect.width == 0 || clientRect.height == 0)) { -        for (var j = 0; j < element.children.length; j++) { +        for (var j = 0, childrenCount = element.children.length; j < childrenCount; j++) {            if (window.getComputedStyle(element.children[j], null).getPropertyValue('float') == 'none')              continue;            var childClientRect = element.children[j].getClientRects()[0]; @@ -261,7 +261,7 @@ var linkHints = {     */    showMarker: function(linkMarker, matchingCharCount) {      linkMarker.style.display = ""; -    for (var j = 0; j < linkMarker.childNodes.length; j++) +    for (var j = 0, count = linkMarker.childNodes.length; j < count; j++)        linkMarker.childNodes[j].className = (j >= matchingCharCount) ? "" : "matchingCharacter";    }, @@ -321,7 +321,7 @@ var alphabetHints = {            visibleElements.length, settings.get('linkHintCharacters').length));      var hintMarkers = []; -    for (var i = 0; i < visibleElements.length; i++) { +    for (var i = 0, count = visibleElements.length; i < count; i++) {        var hintString = this.numberToHintString(i, digitsNeeded);        var marker = hintUtils.createMarkerFor(visibleElements[i]);        marker.innerHTML = hintUtils.spanWrap(hintString); @@ -395,7 +395,7 @@ var filterHints = {     */    generateLabelMap: function() {      var labels = document.querySelectorAll("label"); -    for (var i = 0; i < labels.length; i++) { +    for (var i = 0, count = labels.length; i < count; i++) {        var forElement = labels[i].getAttribute("for");        if (forElement) {          var labelText = labels[i].textContent.trim(); @@ -442,7 +442,7 @@ var filterHints = {    getHintMarkers: function(visibleElements) {      this.generateLabelMap();      var hintMarkers = []; -    for (var i = 0; i < visibleElements.length; i++) { +    for (var i = 0, count = visibleElements.length; i < count; i++) {        var marker = hintUtils.createMarkerFor(visibleElements[i]);        this.setMarkerAttributes(marker, i);        hintMarkers.push(marker); @@ -465,7 +465,7 @@ var filterHints = {          linksMatched = [];      } else if (event.keyCode == keyCodes.enter) {          // activate the lowest-numbered link hint that is visible -        for (var i = 0; i < linksMatched.length; i++) +        for (var i = 0, count = linksMatched.length; i < count; i++)            if (linksMatched[i].style.display  != 'none')              linksMatched = [ linksMatched[i] ];      } else if (keyChar) { | 
