aboutsummaryrefslogtreecommitdiffstats
path: root/linkHints.js
diff options
context:
space:
mode:
authorjez2011-05-14 17:25:14 -0400
committerjez2011-05-14 17:39:57 -0400
commit94ca405e46bb8e92aaf94f0c5be969303d45000d (patch)
treee140ccdd7ed5dc3231ec14b6b6678a2f9c4a6d89 /linkHints.js
parent869d021f0e15aab6e6e246dbfa4a1060b875e41c (diff)
downloadvimium-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.js14
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) {