From 6769879e4a6960fa9ea1f619b0e91a3840c584ab Mon Sep 17 00:00:00 2001 From: John Foerch Date: Thu, 12 Nov 2009 11:25:05 -0500 Subject: [PATCH] efficiency changes rewrote some uses of Array.length in the test clauses of for loops, in places that get run a lot. --- modules/content-buffer-input.js | 2 +- modules/keymap.js | 10 +++++----- modules/page-modes/reddit.js | 7 ++++--- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/modules/content-buffer-input.js b/modules/content-buffer-input.js index e3ffc17..ac36b2c 100644 --- a/modules/content-buffer-input.js +++ b/modules/content-buffer-input.js @@ -80,7 +80,7 @@ function focus_next (buffer, count, xpath_expr, name) { } } // Recurse on sub-frames - for (var i = 0; i < win.frames.length; ++i) { + for (var i = 0, nframes = win.frames.length; i < nframes; ++i) { var elem = helper(win.frames[i], skip_win); if (elem) return elem; diff --git a/modules/keymap.js b/modules/keymap.js index e1f500e..df010a1 100644 --- a/modules/keymap.js +++ b/modules/keymap.js @@ -245,7 +245,7 @@ function keymap_lookup (keymaps, combo, event) { return bind; } else { var pred_binds = kmap.predicate_bindings; - for (var j = 0; j < pred_binds.length; ++j) { + for (var j = 0, pblen = pred_binds.length; j < pblen; ++j) { bind = pred_binds[j]; if (bind.key(event)) return bind; @@ -265,7 +265,7 @@ function keymap_lookup (keymaps, combo, event) { function keymap_lookup_fallthrough (keymap, event) { var predicates = keymap.fallthrough; - for (var i = 0; i < predicates.length; ++i) { + for (var i = 0, plen = predicates.length; i < plen; ++i) { if (predicates[i](event)) return true; } @@ -384,14 +384,14 @@ function define_key_internal (ref, kmap, seq, new_command, new_keymap) { } sequence: - for (var i = 0; i < seq.length; ++i) { + for (var i = 0, slen = seq.length; i < slen; ++i) { key = seq[i]; - last_in_sequence = (i == seq.length - 1); + last_in_sequence = (i == slen - 1); if (typeof key == "function") { // it's a match predicate // Check if the binding is already present in the keymap var pred_binds = kmap.predicate_bindings; - for (var j = 0; j < pred_binds.length; j++) { + for (var j = 0, pblen = pred_binds.length; j < pblen; j++) { if (pred_binds[j].key == key) { if (last_in_sequence && undefine_key) delete pred_binds[j]; diff --git a/modules/page-modes/reddit.js b/modules/page-modes/reddit.js index 6821954..c0491b0 100644 --- a/modules/page-modes/reddit.js +++ b/modules/page-modes/reddit.js @@ -48,7 +48,7 @@ function reddit_next (I) { var first = null; var current = null; var next = null; - for (var i = 0; i < links.length; i++) { + for (var i = 0, llen = links.length; i < llen; i++) { if (links[i].style.display == 'none') continue; if (! first) @@ -121,10 +121,11 @@ function reddit_prev (I) { // enough of the page to include all of the article links. var complete = doc.getElementsByClassName('footer').length > 0; var links = doc.getElementsByClassName('link'); + var llen = links.length; var first = null; var prev = null; var current = null; - for (var i = 0; i < links.length; i++) { + for (var i = 0; i < llen; i++) { if (links[i].style.display == 'none') continue; if (! first) @@ -146,7 +147,7 @@ function reddit_prev (I) { else if (reddit_end_behavior == 'wrap') { // need to get last link on page. if (complete) { - for (var i = 0; i < links.length; i++) { + for (var i = 0; i < llen; i++) { if (links[i].style.display == 'none') continue; prev = links[i]; -- 2.11.4.GIT