diff options
| author | Phil Crosby | 2011-02-16 23:28:55 -0800 |
|---|---|---|
| committer | Phil Crosby | 2011-02-16 23:28:55 -0800 |
| commit | e2faa2c815cf74458b4fba0aed3346046d3075ed (patch) | |
| tree | 562c7997e698621f4e136da25bb11178e3b199a2 /linkHints.js | |
| parent | 4710d254fa8636d3a900ccccbb96d1821483bef3 (diff) | |
| download | vimium-e2faa2c815cf74458b4fba0aed3346046d3075ed.tar.bz2 | |
Tighten up the array-length caching from the previous patch, and don't bother caching array lengths for non-dom collections.
Diffstat (limited to 'linkHints.js')
| -rw-r--r-- | linkHints.js | 28 |
1 files changed, 10 insertions, 18 deletions
diff --git a/linkHints.js b/linkHints.js index ba438f4d..45f54a9d 100644 --- a/linkHints.js +++ b/linkHints.js @@ -71,8 +71,7 @@ function buildLinkHints() { // highlight all the links on the page; we don't want some link hints to have more chars than others. var digitsNeeded = Math.ceil(logXOfBase(visibleElements.length, settings.linkHintCharacters.length)); var linkHintNumber = 0; - var visiEleLength = visibleElements.length; - for (var i = 0; i < visiEleLength; i++) { + for (var i = 0, count = visibleElements.length; i < count; i++) { hintMarkers.push(createMarkerFor(visibleElements[i], linkHintNumber, digitsNeeded)); linkHintNumber++; } @@ -82,8 +81,7 @@ function buildLinkHints() { // Also note that adding these nodes to document.body all at once is significantly faster than one-by-one. hintMarkerContainingDiv = document.createElement("div"); hintMarkerContainingDiv.className = "internalVimiumHintMarker"; - var hintMarkerLength = hintMarkers.length; - for (var i = 0; i < hintMarkerLength; i++) + for (var i = 0; i < hintMarkers.length; i++) hintMarkerContainingDiv.appendChild(hintMarkers[i]); document.documentElement.appendChild(hintMarkerContainingDiv); } @@ -106,8 +104,7 @@ function getVisibleClickableElements() { var visibleElements = []; // Find all visible clickable elements. - var resultSetLength = resultSet.snapshotLength; - for (var i = 0; i < resultSetLength; i++) { + for (var i = 0, count = resultSet.snapshotLength; i < count; i++) { var element = resultSet.snapshotItem(i); var clientRect = element.getClientRects()[0]; @@ -117,8 +114,7 @@ function getVisibleClickableElements() { // 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)) { - var eleChildLength = element.children.length; - for (var j = 0; j < eleChildLength; j++) { + for (var j = 0, childrenCount = element.children.length; j < childrenCount; j++) { if (window.getComputedStyle(element.children[j], null).getPropertyValue('float') != 'none') { var childClientRect = element.children[j].getClientRects()[0]; if (isVisible(element.children[j], childClientRect)) { @@ -247,15 +243,14 @@ function isSelectable(element) { */ function highlightLinkMatches(searchString) { var linksMatched = []; - var hintMarkersLength = hintMarkers.length; - for (var i = 0; i < hintMarkersLength; i++) { + for (var i = 0; i < hintMarkers.length; i++) { var linkMarker = hintMarkers[i]; if (linkMarker.getAttribute("hintString").indexOf(searchString) == 0) { if (linkMarker.style.display == "none") linkMarker.style.display = ""; - var linkChildLength = linkMarker.childNodes.length; - for (var j = 0; j < linkChildLength; j++) - linkMarker.childNodes[j].className = (j >= searchString.length) ? "" : "matchingCharacter"; + var childNodes = linkMarker.childNodes; + for (var j = 0, childNodesCount = childNodes.length; j < childNodesCount; j++) + childNodes[j].className = (j >= searchString.length) ? "" : "matchingCharacter"; linksMatched.push(linkMarker.clickableItem); } else { linkMarker.style.display = "none"; @@ -280,9 +275,7 @@ function numberToHintString(number, numHintDigits) { } while (number > 0); // Pad the hint string we're returning so that it matches numHintDigits. - var hintStringLength = hintString.length; - var numDigitsHintLength = numHintDigits - hintStringLength; - for (var i = 0; i < numDigitsHintLength; i++) + for (var i = 0; i < numHintDigits - hintString.length; i++) hintString.unshift(settings.linkHintCharacters[0]); return hintString.join(""); } @@ -326,8 +319,7 @@ function createMarkerFor(link, linkHintNumber, linkHintDigits) { marker.className = "internalVimiumHintMarker vimiumHintMarker"; var innerHTML = []; // Make each hint character a span, so that we can highlight the typed characters as you type them. - var hintStringLength = hintString.length; - for (var i = 0; i < hintStringLength; i++) + for (var i = 0; i < hintString.length; i++) innerHTML.push("<span>" + hintString[i].toUpperCase() + "</span>"); marker.innerHTML = innerHTML.join(""); marker.setAttribute("hintString", hintString); |
