Title: [157556] trunk/Source/_javascript_Core
Revision
157556
Author
fpi...@apple.com
Date
2013-10-16 20:29:38 -0700 (Wed, 16 Oct 2013)

Log Message

Prototype chain repatching in the polymorphic case fails to check if the receiver is a dictionary
https://bugs.webkit.org/show_bug.cgi?id=122938

Reviewed by Sam Weinig.
        
This fixes jsc-layout-tests.yaml/js/script-tests/dictionary-prototype-caching.js.layout-no-llint.

* jit/Repatch.cpp:
(JSC::tryBuildGetByIDList):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (157555 => 157556)


--- trunk/Source/_javascript_Core/ChangeLog	2013-10-17 03:10:47 UTC (rev 157555)
+++ trunk/Source/_javascript_Core/ChangeLog	2013-10-17 03:29:38 UTC (rev 157556)
@@ -1,5 +1,17 @@
 2013-10-16  Filip Pizlo  <fpi...@apple.com>
 
+        Prototype chain repatching in the polymorphic case fails to check if the receiver is a dictionary
+        https://bugs.webkit.org/show_bug.cgi?id=122938
+
+        Reviewed by Sam Weinig.
+        
+        This fixes jsc-layout-tests.yaml/js/script-tests/dictionary-prototype-caching.js.layout-no-llint.
+
+        * jit/Repatch.cpp:
+        (JSC::tryBuildGetByIDList):
+
+2013-10-16  Filip Pizlo  <fpi...@apple.com>
+
         JIT::appendCall() needs to killLastResultRegister() or equivalent since there's some really bad code that expects it
         https://bugs.webkit.org/show_bug.cgi?id=122937
 

Modified: trunk/Source/_javascript_Core/jit/Repatch.cpp (157555 => 157556)


--- trunk/Source/_javascript_Core/jit/Repatch.cpp	2013-10-17 03:10:47 UTC (rev 157555)
+++ trunk/Source/_javascript_Core/jit/Repatch.cpp	2013-10-17 03:29:38 UTC (rev 157556)
@@ -570,7 +570,9 @@
         return listIndex < (POLYMORPHIC_LIST_CACHE_SIZE - 1);
     }
     
-    if (baseValue.asCell()->structure()->typeInfo().prohibitsPropertyCaching() || !slot.isCacheableValue())
+    if (baseValue.asCell()->structure()->typeInfo().prohibitsPropertyCaching()
+        || baseValue.asCell()->structure()->isDictionary()
+        || !slot.isCacheableValue())
         return false;
 
     PropertyOffset offset = slot.cachedOffset();
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to