2009-05-12 Maciej Stachowiak <mjs@apple.com>
authormjs@apple.com <mjs@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 12 May 2009 10:35:48 +0000 (10:35 +0000)
committermjs@apple.com <mjs@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 12 May 2009 10:35:48 +0000 (10:35 +0000)
        Reviewed by Oliver Hunt.

        - allow all of strictEqual to be inlined into cti_op_stricteq once again

        We had this optimization once but accidentally lost it at some point.

        * runtime/Operations.h:
        (JSC::JSValue::strictEqualSlowCaseInline):
        (JSC::JSValue::strictEqual):

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

JavaScriptCore/ChangeLog
JavaScriptCore/runtime/Operations.h

index 213bf026f8318072b81d75d9da552f5a975a697a..05397bc68a705b6bed770bca6d9af99379189a44 100644 (file)
@@ -1,3 +1,15 @@
+2009-05-12  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Oliver Hunt.
+        
+        - allow all of strictEqual to be inlined into cti_op_stricteq once again
+        
+        We had this optimization once but accidentally lost it at some point.
+
+        * runtime/Operations.h:
+        (JSC::JSValue::strictEqualSlowCaseInline):
+        (JSC::JSValue::strictEqual):
+
 2009-05-12  Gavin Barraclough  <barraclough@apple.com>
 
         Reviewed by Oliver Hunt.
index fb8f6de4b9757034626ab636b020444476a0ffd9..acfc6c23e6fcbe5d6d556f9309d3a671a58a3695 100644 (file)
@@ -112,6 +112,16 @@ namespace JSC {
     }
 
     // ECMA 11.9.3
+    ALWAYS_INLINE bool JSValue::strictEqualSlowCaseInline(JSValue v1, JSValue v2)
+    {
+        ASSERT(!JSImmediate::isEitherImmediate(v1, v2));
+
+        if (v1.asCell()->isString() && v2.asCell()->isString())
+            return asString(v1)->value() == asString(v2)->value();
+
+        return v1 == v2;
+    }
+
     inline bool JSValue::strictEqual(JSValue v1, JSValue v2)
     {
         if (JSImmediate::areBothImmediateIntegerNumbers(v1, v2))
@@ -123,17 +133,7 @@ namespace JSC {
         if (JSImmediate::isEitherImmediate(v1, v2))
             return v1 == v2;
 
-        return strictEqualSlowCase(v1, v2);
-    }
-
-    ALWAYS_INLINE bool JSValue::strictEqualSlowCaseInline(JSValue v1, JSValue v2)
-    {
-        ASSERT(!JSImmediate::isEitherImmediate(v1, v2));
-
-        if (v1.asCell()->isString() && v2.asCell()->isString())
-            return asString(v1)->value() == asString(v2)->value();
-
-        return v1 == v2;
+        return strictEqualSlowCaseInline(v1, v2);
     }
 
     inline bool jsLess(CallFrame* callFrame, JSValue v1, JSValue v2)