2008-05-21 Darin Adler <darin@apple.com>
authordarin@apple.com <darin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 22 May 2008 05:19:01 +0000 (05:19 +0000)
committerdarin@apple.com <darin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 22 May 2008 05:19:01 +0000 (05:19 +0000)
        Reviewed by Maciej.

        - https://bugs.webkit.org/show_bug.cgi?id=19180
          speed up the < operator for the case when both values are integers

        Makes standalone SunSpider 1.022x faster.

        * VM/Machine.cpp:
        (KJS::jsLess): Add a special case for when both are numbers that fit in a JSImmediate.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@34009 268f45cc-cd09-0410-ab3c-d52691b4dbfc

JavaScriptCore/ChangeLog
JavaScriptCore/VM/Machine.cpp

index 447768d..116e803 100644 (file)
@@ -1,3 +1,15 @@
+2008-05-21  Darin Adler  <darin@apple.com>
+
+        Reviewed by Maciej.
+
+        - https://bugs.webkit.org/show_bug.cgi?id=19180
+          speed up the < operator for the case when both values are integers
+
+        Makes standalone SunSpider 1.022x faster.
+
+        * VM/Machine.cpp:
+        (KJS::jsLess): Add a special case for when both are numbers that fit in a JSImmediate.
+
 2008-05-21  Maciej Stachowiak  <mjs@apple.com>
 
         Reviewed by Oliver and Sam.
index 068d364..c6f4ed2 100644 (file)
@@ -97,6 +97,9 @@ static int depth(ScopeChain& sc)
     
 static inline bool jsLess(ExecState* exec, JSValue* v1, JSValue* v2)
 {
+    if (JSImmediate::areBothImmediateNumbers(v1, v2))
+        return JSImmediate::getTruncatedInt32(v1) < JSImmediate::getTruncatedInt32(v2);
+
     double n1;
     double n2;
     JSValue* p1;