From 8961a2ee28b3c33e47302fda66dcd6b1a4dde101 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 7 Mar 2014 01:24:36 -0500 Subject: [PATCH 1/3] Simplify characterCode lookup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reduce String.fromCharCode that can’t be optimized by the minifier. --- .../javascripts/discourse/lib/autocomplete.js | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/app/assets/javascripts/discourse/lib/autocomplete.js b/app/assets/javascripts/discourse/lib/autocomplete.js index b89d9a6ef..a1a68e919 100644 --- a/app/assets/javascripts/discourse/lib/autocomplete.js +++ b/app/assets/javascripts/discourse/lib/autocomplete.js @@ -31,19 +31,16 @@ shiftMap[32] = " "; function mapKeyPressToActualCharacter(isShiftKey, characterCode) { if ( characterCode === 27 || characterCode === 8 || characterCode === 9 || characterCode === 20 || characterCode === 16 || characterCode === 17 || characterCode === 91 || characterCode === 13 || characterCode === 92 || characterCode === 18 ) { return false; } - if (isShiftKey) { - if ( characterCode >= 65 && characterCode <= 90 ) { - return String.fromCharCode(characterCode); - } else { - return shiftMap[characterCode]; - } - } else { - if ( characterCode >= 65 && characterCode <= 90 ) { - return String.fromCharCode(characterCode).toLowerCase(); - } else { - return String.fromCharCode(characterCode); - } + // Lookup non-letter keypress while holding shift + if (isShiftKey && ( characterCode < 65 || characterCode > 90 )) { + return shiftMap[characterCode]; } + + var stringValue = String.fromCharCode(characterCode); + if ( !isShiftKey ) { + stringValue = stringValue.toLowerCase(); + } + return stringValue; } $.fn.autocomplete = function(options) { From db5ff5f311fde040def71eede0176b5024d6ead6 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 7 Mar 2014 01:31:14 -0500 Subject: [PATCH 2/3] Combine single path conditional --- app/assets/javascripts/discourse/lib/autocomplete.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/app/assets/javascripts/discourse/lib/autocomplete.js b/app/assets/javascripts/discourse/lib/autocomplete.js index a1a68e919..168c3c2e9 100644 --- a/app/assets/javascripts/discourse/lib/autocomplete.js +++ b/app/assets/javascripts/discourse/lib/autocomplete.js @@ -398,10 +398,8 @@ $.fn.autocomplete = function(options) { term += (e.shiftKey) ? "|" : "]"; } else if (e.which === 222) { term += (e.shiftKey) ? "\"" : "'"; - } else { - if (e.which !== 8) { - term += ","; - } + } else if (e.which !== 8) { + term += ","; } updateAutoComplete(options.dataSource(term)); From 8b3f2a86859a9dcb12e0514dcfa2bacc8b987a9e Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 7 Mar 2014 01:35:17 -0500 Subject: [PATCH 3/3] Remove unused variable It is only set to empty then passed --- app/assets/javascripts/discourse/lib/autocomplete.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/assets/javascripts/discourse/lib/autocomplete.js b/app/assets/javascripts/discourse/lib/autocomplete.js index 168c3c2e9..f439626b5 100644 --- a/app/assets/javascripts/discourse/lib/autocomplete.js +++ b/app/assets/javascripts/discourse/lib/autocomplete.js @@ -265,8 +265,7 @@ $.fn.autocomplete = function(options) { var prevChar = me.val().charAt(caretPosition - 1); if (!prevChar || /\s/.test(prevChar)) { completeStart = completeEnd = caretPosition; - var term = ""; - updateAutoComplete(options.dataSource(term)); + updateAutoComplete(options.dataSource("")); } } });