From 17669fd09d13efe1cc097bd04eda48b7a07e0f9a Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Wed, 9 Jun 2010 17:24:13 -0400 Subject: [PATCH] Optimized _triggersKeyEquivalent for a 6.5% performance gain in the CPKeyEquivalentPerformance test. --- AppKit/CPEvent.j | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/AppKit/CPEvent.j b/AppKit/CPEvent.j index 0fca38549..cf62a7597 100644 --- a/AppKit/CPEvent.j +++ b/AppKit/CPEvent.j @@ -178,7 +178,8 @@ CPDOMEventTouchEnd = "touchend"; CPDOMEventTouchCancel = "touchcancel"; var _CPEventPeriodicEventPeriod = 0, - _CPEventPeriodicEventTimer = nil; + _CPEventPeriodicEventTimer = nil, + _CPEventUpperCaseRegex = new RegExp("[A-Z]"); /*! @ingroup appkit @@ -521,10 +522,7 @@ var _CPEventPeriodicEventPeriod = 0, - (BOOL)_triggersKeyEquivalent:(CPString)aKeyEquivalent withModifierMask:aKeyEquivalentModifierMask { - var characters = [self charactersIgnoringModifiers], - modifierFlags = [self modifierFlags]; - - if (new RegExp("[A-Z]").test(aKeyEquivalent)) + if (_CPEventUpperCaseRegex.test(aKeyEquivalent)) aKeyEquivalentModifierMask |= CPShiftKeyMask; if (CPBrowserIsOperatingSystem(CPWindowsOperatingSystem) && (aKeyEquivalentModifierMask & CPCommandKeyMask)) @@ -533,10 +531,10 @@ var _CPEventPeriodicEventPeriod = 0, aKeyEquivalentModifierMask &= ~CPCommandKeyMask; } - if ((modifierFlags & (CPShiftKeyMask | CPAlternateKeyMask | CPCommandKeyMask | CPControlKeyMask)) !== aKeyEquivalentModifierMask) + if ((_modifierFlags & (CPShiftKeyMask | CPAlternateKeyMask | CPCommandKeyMask | CPControlKeyMask)) !== aKeyEquivalentModifierMask) return NO; - return [characters caseInsensitiveCompare:aKeyEquivalent] === CPOrderedSame; + return [_characters caseInsensitiveCompare:aKeyEquivalent] === CPOrderedSame; } - (BOOL)_couldBeKeyEquivalent