diff options
| author | Stephen Blott | 2016-04-09 06:32:51 +0100 | 
|---|---|---|
| committer | Stephen Blott | 2016-04-09 06:32:53 +0100 | 
| commit | ac9543d9017fbb56e670c0728173432a879d4d13 (patch) | |
| tree | 5a4fadadac39275ca54f5b61cfbb73ea92b1bdf3 /content_scripts | |
| parent | c8ca94bd83bb1a651cd4efdaef41906f46004ee5 (diff) | |
| download | vimium-ac9543d9017fbb56e670c0728173432a879d4d13.tar.bz2 | |
Minor performance tweak.
Two minor tweaks:
1. Do not use ".indexOf()" three times for each comparison; do it just
   once.
2. Check the common case (no match) first.
These are very minor performance tweaks; but, with global link hints,
we pay this cost n times (for n frames).
Diffstat (limited to 'content_scripts')
| -rw-r--r-- | content_scripts/link_hints.coffee | 15 | 
1 files changed, 8 insertions, 7 deletions
| diff --git a/content_scripts/link_hints.coffee b/content_scripts/link_hints.coffee index 08c5cd9b..6ea10377 100644 --- a/content_scripts/link_hints.coffee +++ b/content_scripts/link_hints.coffee @@ -506,14 +506,15 @@ class FilterHints          for searchWord in searchWords            linkWordScores =              for linkWord, idx in linkWords -              if linkWord == searchWord -                if idx == 0 then 8 else 6 -              else if linkWord.startsWith searchWord -                if idx == 0 then 4 else 2 -              else if 0 <= linkWord.indexOf searchWord -                1 +              position = linkWord.indexOf searchWord +              if position < 0 +                0 # No match. +              else if position == 0 and searchWord.length == linkWord.length +                if idx == 0 then 8 else 6 # Whole-word match. +              else if position == 0 +                if idx == 0 then 4 else 2 # Match at the start of a word.                else -                0 +                1 # 0 < position; other match.            Math.max linkWordScores...        if 0 in searchWordScores | 
