Title: [171460] branches/safari-600.1-branch/Source/_javascript_Core

Diff

Modified: branches/safari-600.1-branch/Source/_javascript_Core/ChangeLog (171459 => 171460)


--- branches/safari-600.1-branch/Source/_javascript_Core/ChangeLog	2014-07-23 08:07:17 UTC (rev 171459)
+++ branches/safari-600.1-branch/Source/_javascript_Core/ChangeLog	2014-07-23 08:10:05 UTC (rev 171460)
@@ -1,3 +1,24 @@
+2014-07-23  Lucas Forschler  <[email protected]>
+
+        Merge r171354
+
+    2014-07-22  Filip Pizlo  <[email protected]>
+
+            ASSERTION FAILED: info.spillFormat() & DataFormatJS in JSC::DFG::SpeculativeJIT::fillSpeculateCell
+            https://bugs.webkit.org/show_bug.cgi?id=135155
+            <rdar://problem/17763909>
+
+            Reviewed by Oliver Hunt.
+
+            The DFG fillSpeculate code paths all need to be mindful of the fact that they may be stumbling upon a
+            contradiction, and that this is OK. In this case, we were speculating cell on an int.
+
+            * dfg/DFGSpeculativeJIT64.cpp:
+            (JSC::DFG::SpeculativeJIT::fillSpeculateCell):
+            * tests/stress/regress-135155.js: Added.
+            (run.t.length):
+            (run):
+
 2014-07-22 Dana Burkart <[email protected]>
     
         Merge r171228.

Modified: branches/safari-600.1-branch/Source/_javascript_Core/dfg/DFGSpeculativeJIT64.cpp (171459 => 171460)


--- branches/safari-600.1-branch/Source/_javascript_Core/dfg/DFGSpeculativeJIT64.cpp	2014-07-23 08:07:17 UTC (rev 171459)
+++ branches/safari-600.1-branch/Source/_javascript_Core/dfg/DFGSpeculativeJIT64.cpp	2014-07-23 08:10:05 UTC (rev 171460)
@@ -1019,7 +1019,12 @@
             terminateSpeculativeExecution(Uncountable, JSValueRegs(), 0);
             return gpr;
         }
-        RELEASE_ASSERT(info.spillFormat() & DataFormatJS);
+        
+        if (!(info.spillFormat() & DataFormatJS)) {
+            terminateSpeculativeExecution(Uncountable, JSValueRegs(), 0);
+            return gpr;
+        }
+        
         m_gprs.retain(gpr, virtualRegister, SpillOrderSpilled);
         m_jit.load64(JITCompiler::addressFor(virtualRegister), gpr);
 

Copied: branches/safari-600.1-branch/Source/_javascript_Core/tests/stress/regress-135155.js (from rev 171354, trunk/Source/_javascript_Core/tests/stress/regress-135155.js) (0 => 171460)


--- branches/safari-600.1-branch/Source/_javascript_Core/tests/stress/regress-135155.js	                        (rev 0)
+++ branches/safari-600.1-branch/Source/_javascript_Core/tests/stress/regress-135155.js	2014-07-23 08:10:05 UTC (rev 171460)
@@ -0,0 +1,9 @@
+function run() {
+    for (var t = 1, i = 0; i < 10000; t++, i++) {
+        t.length = function() {
+            var foo = iv.charCodeAt(foo, undefined);
+        };
+    }
+}
+
+run();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to