<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Elaborating a lot:</div><div class=""><br class=""></div>Trunk doesn’t have the bug that r180247 fixed, since trunk already has the fix to run FTLCapabilities late. &nbsp;The two fixes - the fail-compile fix in&nbsp;r180247 and the earlier capabilities fix - have perfect overlap in terms of the known crashes that they fix. &nbsp;The two radars should really be dup’d, since the root cause in both is failure to run FTLCapabilities late.<div class=""><br class=""></div><div class="">So, we have two fixes that functionally do the same thing: they cause the FTL to quietly give up if it sees IR it cannot handle, which is what it should have been doing all along.</div><div class=""><br class=""></div><div class="">The best argument in favor of the capabilities fix is that FTLCapabilities should accurately tell us what the FTL can handle; we need this to decide whether to put profiling into DFG-compiled code anyway. &nbsp;Running FTLCapabilities late and using that to decide whether to run the FTL backend, but then having the FTL backend assert if it sees bad code, is a good way of ensuring that we keep FTLCapabilities in sync. &nbsp;FWIW, we have done a good job of keeping it in sync and that wasn’t the reason for the crashes; the bug was that we weren’t running it late enough. &nbsp;Running it late means we take an already known-good mechanism for addressing this issue and simply run it at the right time.</div><div class=""><br class=""></div><div class="">The best argument in favor of the fail-compile fix is that it doesn’t require additional perf validation. &nbsp;Previously, FTLCapabilities didn’t have to include an “ok” case for nodes that only arise during SSA lowering, because we erroneously only ran it before SSA lowering. &nbsp;So just adding code to run FTLCapabilities late risks regressing performance. &nbsp;Michael encountered such a case when writing the original capabilities fix patch. &nbsp;We’ve already validated (and fixed) performance on trunk, but we would have to do it again on branches. &nbsp;That seems like more effort than taking the fail-compile fix on branches.</div><div class=""><br class=""></div><div class="">Therefore, the fail-compile fix is most appropriate for branches: we know that it fixes both bugs and we know that it doesn’t require perf validation.</div><div class=""><br class=""></div><div class="">The capabilities fix is correct for trunk.</div><div class=""><br class=""></div><div class="">The remaining question is then: should we have a fail-compile mechanism on trunk? &nbsp;I think this depends on what the fail-compile mechanism looks like. &nbsp;I don’t like the fail-compile fix in r180247 for three reasons: (1) it’s not comprehensive enough, (2) it is a maintenance problem, and (3) it causes an immediate loss of test coverage.</div><div class=""><br class=""></div><div class="">1) The fail-compile fix in r180247 only covers assertions in the FTL lowering backend. &nbsp;In the past, the compiler assertions that caused the most grief have occurred in DFG IR phases rather than the FTL lowering backend (the PutLocalSinking bug from earlier in Gala, the LivenessAnalysis bug from early Syrah, etc). &nbsp;If we’re going to have fail-compile machinery then we should put some thought into making it comprehensive. &nbsp;I’m skeptical that r180247 could be a first step towards a comprehensive solution since the comprehensive solution would hook directly into DFG_CRASH/ASSERT instead of adding a third macro.</div><div class=""><br class=""></div><div class="">2) The fail-compile fix in r180247 relies on having all code paths reachable from a LOWERING_FAILED do additional checks to see if the m_loweringSucceeded flag has been cleared. &nbsp;If it has, then those code paths must also bail early. &nbsp;We know from past experience in the DFG backend that having such a flag causes bugtail. &nbsp;The DFG originally had exactly such a flag, and we had a long tail of bugs where some code path would fail to check this flag and would perform some action that isn’t valid to perform if we had failed an assertion. &nbsp;Most likely, the LOWERING_FAILED machinery as implemented in r180247 would work for a while but would eventually stop working because some code path would get introduced that sits on the failure path but cannot cope with failure. &nbsp;We could alleviate this by either having some other way of diverting control flow in the compiler that doesn’t involve a lot of checks of this boolean, or we could alleviate it by also having tests of the failure code path. &nbsp;In any case, this fail-compile machinery is not free and it will have non-trivial consequences for compiler maintenance. &nbsp;As implemented in r180247, there is nothing to ensure it doesn’t regress; you could say it violates our usual principle that new functionality needs new tests.</div><div class=""><br class=""></div><div class="">3) The immediate consequence of r180247 is not to fix any trunk bugs - the relevant bugs were already fixed by the capabilities fix - but to disable the test coverage we get from crash reports from various kinds of release builds.</div><div class=""><br class=""></div><div class="">Because of the costs associated with maintaining the fail-compile mechanism, I think we should make sure that the risk-reward is right. &nbsp;It’s not right in the current fix because it has non-trivial maintenance cost and reduces test coverage, and the only reward is preventing those crashes in FTLLower that we have already fixed. &nbsp;Future compiler crashes are much more likely to happen in DFG IR phases. &nbsp;Just consider the lines of code involved - DFG IR phases is 70,000 LoC and the lowering code is only 7,000 LoC.</div><div class=""><br class=""></div><div class="">I’m not sure what a robust fail-compile system would look like. &nbsp;Our compiler has methods that call other methods, and often the interesting assertions are deep in the stack. &nbsp;A fail-compile mechanism would have to be able to safely pop stack. &nbsp;In r180247 this is achieved by manually inserting checks of m_loweringSucceeded. &nbsp;I don’t believe that this is scalable, and I wouldn’t agree with any fail-compile proposal that requires stringing “m_okToKeepCompiling” checks throughout the compiler. &nbsp;Because of the difficulty of getting this right, I suggest that we don’t do it unless we can convince ourselves that the mechanism will actually catch some future bug. &nbsp;Putting in fail-compile mechanisms that only cover assertions that we have already fixed isn’t really a good plan: it won’t prevent future crashes, it incurs a maintenance overhead, and it reduces the feedback we get from crash reports.</div><div class=""><br class=""></div><div class="">-Filip</div><div class=""><div class=""><br class=""></div><div class=""><br class=""></div><div class="">&nbsp;<br class=""><div><blockquote type="cite" class=""><div class="">On Feb 18, 2015, at 4:12 PM, Michael Saboff &lt;<a href="mailto:msaboff@apple.com" class="">msaboff@apple.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Phil is adamant that we should eliminate this from trunk. &nbsp;He believes it is the best solution for avoiding the crash in&nbsp;&lt;<a href="rdar://problem/17198412" class="">rdar://problem/17198412</a>&gt; CrashTracer: DFG_CRASH beneath JSC::FTL::LowerDFGToLLVM::compileNode, and thinks it is less risky than the fix for&nbsp;&lt;<a href="rdar://problem/19187718" class="">rdar://problem/19187718</a>&gt; Crash in JSC::FTL::LowerDFGToLLVM::compileCompareStrictEq (139398).<div class=""><br class=""></div><div class="">He believes that we lose information by not crashing in internal release builds during our testing. &nbsp;He prefers that we have a comprehensive fail-the-compile-but continue solution for both the DFG and FTL.</div><div class=""><br class=""></div><div class="">We haven’t committed it to the branch, but I suggested that we only commit this change and not the capabilities check landed for&nbsp;&lt;<a href="rdar://problem/19187718" class="">rdar://problem/19187718</a>&gt; to the branch. &nbsp;I updated&nbsp;<a href="rdar://problem/17198412" class="">rdar://problem/17198412</a>&nbsp;and its clone&nbsp;<a href="rdar://problem/19877186" class="">rdar://problem/19877186</a>&nbsp;accordingly. &nbsp;It doesn’t look like&nbsp;<a href="rdar://problem/19187718" class="">rdar://problem/19187718</a>&nbsp;had been cloned for the branch.</div><div class=""><br class=""></div><div class="">- Michael<br class=""><div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Feb 18, 2015, at 3:54 PM, Geoffrey Garen &lt;<a href="mailto:ggaren@apple.com" class="">ggaren@apple.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">If there’s something incorrect or incomplete about this change, and/or if it’s gone from TOT, I don’t agree that we should commit it to the branch.<div class=""><br class=""></div><div class="">Have we committed the change to the branch?</div><div class=""><br class=""></div><div class="">Is there still a Radar proposing committing the change to the branch?</div><div class=""><br class=""></div><div class="">Geoff</div><div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Feb 18, 2015, at 3:52 PM, <a href="mailto:msaboff@apple.com" class="">msaboff@apple.com</a> wrote:</div><br class="Apple-interchange-newline"><div class=""><div id="msg" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><dl class="meta" style="font-family: verdana, arial, helvetica, sans-serif; font-size: 10pt; border: 1px solid rgb(0, 0, 102); background-color: rgb(51, 102, 153); padding: 6px; color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;"><dt style="font-family: verdana, arial, helvetica, sans-serif; font-size: 10pt; float: left; width: 6em; font-weight: bold;" class="">Revision</dt><dd class=""><a href="http://trac.webkit.org/projects/webkit/changeset/180317" style="font-weight: bold; color: rgb(204, 204, 102);" class="">180317</a></dd><dt style="font-family: verdana, arial, helvetica, sans-serif; font-size: 10pt; float: left; width: 6em; font-weight: bold;" class="">Author</dt><dd class=""><a href="mailto:msaboff@apple.com" style="font-weight: bold; color: rgb(204, 204, 102);" class="">msaboff@apple.com</a></dd><dt style="font-family: verdana, arial, helvetica, sans-serif; font-size: 10pt; float: left; width: 6em; font-weight: bold;" class="">Date</dt><dd class="">2015-02-18 15:52:16 -0800 (Wed, 18 Feb 2015)</dd></dl><h3 style="font-family: verdana, arial, helvetica, sans-serif; font-size: 10pt; font-weight: bold;" class="">Log Message</h3><pre style="overflow: auto; background-color: rgb(255, 255, 204); border: 1px solid rgb(255, 170, 0); padding: 6px; background-position: initial initial; background-repeat: initial initial;" class="">Rollout <a href="http://trac.webkit.org/projects/webkit/changeset/180247" class="">r180247</a> &amp; <a href="http://trac.webkit.org/projects/webkit/changeset/180249" class="">r180249</a> from trunk
<a href="https://bugs.webkit.org/show_bug.cgi?id=141773" class="">https://bugs.webkit.org/show_bug.cgi?id=141773</a>

Reviewed by Filip Pizlo.

Theses changes makes sense to fix the crash reported in <a href="https://bugs.webkit.org/show_bug.cgi?id=141730" class="">https://bugs.webkit.org/show_bug.cgi?id=141730</a>
only for branches.  The change to fail the FTL compile but continue running is not comprehensive
enough for general use on trunk.

* dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThreadImpl):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::LowerDFGToLLVM):
(JSC::FTL::LowerDFGToLLVM::lower):
(JSC::FTL::LowerDFGToLLVM::createPhiVariables):
(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileUpsilon):
(JSC::FTL::LowerDFGToLLVM::compilePhi):
(JSC::FTL::LowerDFGToLLVM::compileDoubleRep):
(JSC::FTL::LowerDFGToLLVM::compileValueRep):
(JSC::FTL::LowerDFGToLLVM::compileValueToInt32):
(JSC::FTL::LowerDFGToLLVM::compilePutLocal):
(JSC::FTL::LowerDFGToLLVM::compileArithAddOrSub):
(JSC::FTL::LowerDFGToLLVM::compileArithMul):
(JSC::FTL::LowerDFGToLLVM::compileArithDiv):
(JSC::FTL::LowerDFGToLLVM::compileArithMod):
(JSC::FTL::LowerDFGToLLVM::compileArithMinOrMax):
(JSC::FTL::LowerDFGToLLVM::compileArithAbs):
(JSC::FTL::LowerDFGToLLVM::compileArithNegate):
(JSC::FTL::LowerDFGToLLVM::compileArrayifyToStructure):
(JSC::FTL::LowerDFGToLLVM::compileGetById):
(JSC::FTL::LowerDFGToLLVM::compileGetMyArgumentByVal):
(JSC::FTL::LowerDFGToLLVM::compileGetArrayLength):
(JSC::FTL::LowerDFGToLLVM::compileGetByVal):
(JSC::FTL::LowerDFGToLLVM::compilePutByVal):
(JSC::FTL::LowerDFGToLLVM::compileArrayPush):
(JSC::FTL::LowerDFGToLLVM::compileArrayPop):
(JSC::FTL::LowerDFGToLLVM::compileNewArray):
(JSC::FTL::LowerDFGToLLVM::compileToString):
(JSC::FTL::LowerDFGToLLVM::compileMakeRope):
(JSC::FTL::LowerDFGToLLVM::compileCompareEq):
(JSC::FTL::LowerDFGToLLVM::compileCompareStrictEq):
(JSC::FTL::LowerDFGToLLVM::compileSwitch):
(JSC::FTL::LowerDFGToLLVM::compare):
(JSC::FTL::LowerDFGToLLVM::boolify):
(JSC::FTL::LowerDFGToLLVM::opposite):
(JSC::FTL::LowerDFGToLLVM::lowJSValue):
(JSC::FTL::LowerDFGToLLVM::speculate):
(JSC::FTL::LowerDFGToLLVM::isArrayType):
(JSC::FTL::LowerDFGToLLVM::exitValueForAvailability):
(JSC::FTL::LowerDFGToLLVM::exitValueForNode):
(JSC::FTL::LowerDFGToLLVM::setInt52):
(JSC::FTL::lowerDFGToLLVM):
(JSC::FTL::LowerDFGToLLVM::loweringFailed): Deleted.
* ftl/FTLLowerDFGToLLVM.h:</pre><h3 style="font-family: verdana, arial, helvetica, sans-serif; font-size: 10pt; font-weight: bold;" class="">Modified Paths</h3><ul style="font-family: verdana, arial, helvetica, sans-serif; font-size: 10pt;" class=""><li style="font-family: verdana, arial, helvetica, sans-serif; font-size: 10pt;" class=""><a href="x-msg://9/#trunkSourceJavaScriptCoreChangeLog" class="">trunk/Source/JavaScriptCore/ChangeLog</a></li><li style="font-family: verdana, arial, helvetica, sans-serif; font-size: 10pt;" class=""><a href="x-msg://9/#trunkSourceJavaScriptCoredfgDFGPlancpp" class="">trunk/Source/JavaScriptCore/dfg/DFGPlan.cpp</a></li><li style="font-family: verdana, arial, helvetica, sans-serif; font-size: 10pt;" class=""><a href="x-msg://9/#trunkSourceJavaScriptCoreftlFTLLowerDFGToLLVMcpp" class="">trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp</a></li><li style="font-family: verdana, arial, helvetica, sans-serif; font-size: 10pt;" class=""><a href="x-msg://9/#trunkSourceJavaScriptCoreftlFTLLowerDFGToLLVMh" class="">trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.h</a></li></ul></div><div id="patch" style="width: 1002px; font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><h3 style="font-family: verdana, arial, helvetica, sans-serif; font-size: 10pt; font-weight: bold;" class="">Diff</h3><a id="trunkSourceJavaScriptCoreChangeLog" class=""></a><div class="modfile" style="border: 1px solid rgb(204, 204, 204); margin: 10px 0px;"><h4 style="font-family: verdana, arial, helvetica, sans-serif; font-size: 10pt; padding: 8px; background-color: rgb(51, 102, 153); color: rgb(255, 255, 255); margin: 0px; background-position: initial initial; background-repeat: initial initial;" class="">Modified: trunk/Source/JavaScriptCore/ChangeLog (180316 =&gt; 180317)</h4><pre class="diff" style="padding: 0px 0px 10px; line-height: 1.2em; margin: 0px; width: 1000px; background-color: rgb(238, 238, 238); overflow: auto; background-position: initial initial; background-repeat: initial initial;"><span style="display: block; padding: 0px 10px;" class="">
<span class="info" style="color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;">--- trunk/Source/JavaScriptCore/ChangeLog        2015-02-18 23:50:12 UTC (rev 180316)
+++ trunk/Source/JavaScriptCore/ChangeLog        2015-02-18 23:52:16 UTC (rev 180317)
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -1,3 +1,61 @@
</span><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+2015-02-18  Michael Saboff  &lt;<a href="mailto:msaboff@apple.com" class="">msaboff@apple.com</a>&gt;
+
+        Rollout r180247 &amp; r180249 from trunk
+        <a href="https://bugs.webkit.org/show_bug.cgi?id=141773" class="">https://bugs.webkit.org/show_bug.cgi?id=141773</a>
+
+        Reviewed by Filip Pizlo.
+
+        Theses changes makes sense to fix the crash reported in <a href="https://bugs.webkit.org/show_bug.cgi?id=141730" class="">https://bugs.webkit.org/show_bug.cgi?id=141730</a>
+        only for branches.  The change to fail the FTL compile but continue running is not comprehensive
+        enough for general use on trunk.
+
+        * dfg/DFGPlan.cpp:
+        (JSC::DFG::Plan::compileInThreadImpl):
+        * ftl/FTLLowerDFGToLLVM.cpp:
+        (JSC::FTL::LowerDFGToLLVM::LowerDFGToLLVM):
+        (JSC::FTL::LowerDFGToLLVM::lower):
+        (JSC::FTL::LowerDFGToLLVM::createPhiVariables):
+        (JSC::FTL::LowerDFGToLLVM::compileNode):
+        (JSC::FTL::LowerDFGToLLVM::compileUpsilon):
+        (JSC::FTL::LowerDFGToLLVM::compilePhi):
+        (JSC::FTL::LowerDFGToLLVM::compileDoubleRep):
+        (JSC::FTL::LowerDFGToLLVM::compileValueRep):
+        (JSC::FTL::LowerDFGToLLVM::compileValueToInt32):
+        (JSC::FTL::LowerDFGToLLVM::compilePutLocal):
+        (JSC::FTL::LowerDFGToLLVM::compileArithAddOrSub):
+        (JSC::FTL::LowerDFGToLLVM::compileArithMul):
+        (JSC::FTL::LowerDFGToLLVM::compileArithDiv):
+        (JSC::FTL::LowerDFGToLLVM::compileArithMod):
+        (JSC::FTL::LowerDFGToLLVM::compileArithMinOrMax):
+        (JSC::FTL::LowerDFGToLLVM::compileArithAbs):
+        (JSC::FTL::LowerDFGToLLVM::compileArithNegate):
+        (JSC::FTL::LowerDFGToLLVM::compileArrayifyToStructure):
+        (JSC::FTL::LowerDFGToLLVM::compileGetById):
+        (JSC::FTL::LowerDFGToLLVM::compileGetMyArgumentByVal):
+        (JSC::FTL::LowerDFGToLLVM::compileGetArrayLength):
+        (JSC::FTL::LowerDFGToLLVM::compileGetByVal):
+        (JSC::FTL::LowerDFGToLLVM::compilePutByVal):
+        (JSC::FTL::LowerDFGToLLVM::compileArrayPush):
+        (JSC::FTL::LowerDFGToLLVM::compileArrayPop):
+        (JSC::FTL::LowerDFGToLLVM::compileNewArray):
+        (JSC::FTL::LowerDFGToLLVM::compileToString):
+        (JSC::FTL::LowerDFGToLLVM::compileMakeRope):
+        (JSC::FTL::LowerDFGToLLVM::compileCompareEq):
+        (JSC::FTL::LowerDFGToLLVM::compileCompareStrictEq):
+        (JSC::FTL::LowerDFGToLLVM::compileSwitch):
+        (JSC::FTL::LowerDFGToLLVM::compare):
+        (JSC::FTL::LowerDFGToLLVM::boolify):
+        (JSC::FTL::LowerDFGToLLVM::opposite):
+        (JSC::FTL::LowerDFGToLLVM::lowJSValue):
+        (JSC::FTL::LowerDFGToLLVM::speculate):
+        (JSC::FTL::LowerDFGToLLVM::isArrayType):
+        (JSC::FTL::LowerDFGToLLVM::exitValueForAvailability):
+        (JSC::FTL::LowerDFGToLLVM::exitValueForNode):
+        (JSC::FTL::LowerDFGToLLVM::setInt52):
+        (JSC::FTL::lowerDFGToLLVM):
+        (JSC::FTL::LowerDFGToLLVM::loweringFailed): Deleted.
+        * ftl/FTLLowerDFGToLLVM.h:
+
</ins><span class="cx" style="display: block; padding: 0px 10px;"> 2015-02-18  Filip Pizlo  &lt;<a href="mailto:fpizlo@apple.com" class="">fpizlo@apple.com</a>&gt;
</span><span class="cx" style="display: block; padding: 0px 10px;"> 
</span><span class="cx" style="display: block; padding: 0px 10px;">         DFG should really support varargs
</span></span></pre></div><a id="trunkSourceJavaScriptCoredfgDFGPlancpp" class=""></a><div class="modfile" style="border: 1px solid rgb(204, 204, 204); margin: 10px 0px;"><h4 style="font-family: verdana, arial, helvetica, sans-serif; font-size: 10pt; padding: 8px; background-color: rgb(51, 102, 153); color: rgb(255, 255, 255); margin: 0px; background-position: initial initial; background-repeat: initial initial;" class="">Modified: trunk/Source/JavaScriptCore/dfg/DFGPlan.cpp (180316 =&gt; 180317)</h4><pre class="diff" style="padding: 0px 0px 10px; line-height: 1.2em; margin: 0px; width: 1000px; background-color: rgb(238, 238, 238); overflow: auto; background-position: initial initial; background-repeat: initial initial;"><span style="display: block; padding: 0px 10px;" class="">
<span class="info" style="color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;">--- trunk/Source/JavaScriptCore/dfg/DFGPlan.cpp        2015-02-18 23:50:12 UTC (rev 180316)
+++ trunk/Source/JavaScriptCore/dfg/DFGPlan.cpp        2015-02-18 23:52:16 UTC (rev 180317)
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -386,10 +386,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;"> 
</span><span class="cx" style="display: block; padding: 0px 10px;">         FTL::State state(dfg);
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-        if (!FTL::lowerDFGToLLVM(state)) {
-            FTL::fail(state);
-            return FTLPath;
-        }
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+        FTL::lowerDFGToLLVM(state);
</ins><span class="cx" style="display: block; padding: 0px 10px;">         
</span><span class="cx" style="display: block; padding: 0px 10px;">         if (reportCompileTimes())
</span><span class="cx" style="display: block; padding: 0px 10px;">             m_timeBeforeFTL = monotonicallyIncreasingTime();
</span></span></pre></div><a id="trunkSourceJavaScriptCoreftlFTLLowerDFGToLLVMcpp" class=""></a><div class="modfile" style="border: 1px solid rgb(204, 204, 204); margin: 10px 0px;"><h4 style="font-family: verdana, arial, helvetica, sans-serif; font-size: 10pt; padding: 8px; background-color: rgb(51, 102, 153); color: rgb(255, 255, 255); margin: 0px; background-position: initial initial; background-repeat: initial initial;" class="">Modified: trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp (180316 =&gt; 180317)</h4><pre class="diff" style="padding: 0px 0px 10px; line-height: 1.2em; margin: 0px; width: 1000px; background-color: rgb(238, 238, 238); overflow: auto; background-position: initial initial; background-repeat: initial initial;"><span style="display: block; padding: 0px 10px;" class="">
<span class="info" style="color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;">--- trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp        2015-02-18 23:50:12 UTC (rev 180316)
+++ trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp        2015-02-18 23:52:16 UTC (rev 180317)
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -93,7 +93,6 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">     LowerDFGToLLVM(State&amp; state)
</span><span class="cx" style="display: block; padding: 0px 10px;">         : m_graph(state.graph)
</span><span class="cx" style="display: block; padding: 0px 10px;">         , m_ftlState(state)
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-        , m_loweringSucceeded(true)
</del><span class="cx" style="display: block; padding: 0px 10px;">         , m_heaps(state.context)
</span><span class="cx" style="display: block; padding: 0px 10px;">         , m_out(state.context)
</span><span class="cx" style="display: block; padding: 0px 10px;">         , m_state(state.graph)
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -103,12 +102,8 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">         , m_tbaaStructKind(mdKindID(state.context, "tbaa.struct"))
</span><span class="cx" style="display: block; padding: 0px 10px;">     {
</span><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-
-
-#define LOWERING_FAILED(node, reason)                                  \
-    loweringFailed((node), __FILE__, __LINE__, WTF_PRETTY_FUNCTION, (reason));
-
-    bool lower()
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+    
+    void lower()
</ins><span class="cx" style="display: block; padding: 0px 10px;">     {
</span><span class="cx" style="display: block; padding: 0px 10px;">         CString name;
</span><span class="cx" style="display: block; padding: 0px 10px;">         if (verboseCompilationEnabled()) {
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -280,22 +275,14 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">             case FlushedJSValue:
</span><span class="cx" style="display: block; padding: 0px 10px;">                 break;
</span><span class="cx" style="display: block; padding: 0px 10px;">             default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-                LOWERING_FAILED(node, "Bad flush format for argument");
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+                DFG_CRASH(m_graph, node, "Bad flush format for argument");
</ins><span class="cx" style="display: block; padding: 0px 10px;">                 break;
</span><span class="cx" style="display: block; padding: 0px 10px;">             }
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-
-        if (!m_loweringSucceeded)
-            return m_loweringSucceeded;
-
</del><span class="cx" style="display: block; padding: 0px 10px;">         m_out.jump(lowBlock(m_graph.block(0)));
</span><span class="cx" style="display: block; padding: 0px 10px;">         
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-        for (BasicBlock* block : preOrder) {
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+        for (BasicBlock* block : preOrder)
</ins><span class="cx" style="display: block; padding: 0px 10px;">             compileBlock(block);
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-
-            if (!m_loweringSucceeded)
-                return m_loweringSucceeded;
-        }
</del><span class="cx" style="display: block; padding: 0px 10px;">         
</span><span class="cx" style="display: block; padding: 0px 10px;">         if (Options::dumpLLVMIR())
</span><span class="cx" style="display: block; padding: 0px 10px;">             dumpModule(m_ftlState.module);
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -304,8 +291,6 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">             m_ftlState.dumpState("after lowering");
</span><span class="cx" style="display: block; padding: 0px 10px;">         if (validationEnabled())
</span><span class="cx" style="display: block; padding: 0px 10px;">             verifyModule(m_ftlState.module);
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-
-        return m_loweringSucceeded;
</del><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="cx" style="display: block; padding: 0px 10px;"> 
</span><span class="cx" style="display: block; padding: 0px 10px;"> private:
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -338,8 +323,8 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">                     type = m_out.int64;
</span><span class="cx" style="display: block; padding: 0px 10px;">                     break;
</span><span class="cx" style="display: block; padding: 0px 10px;">                 default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-                    LOWERING_FAILED(node, "Bad Phi node result type");
-                    return;
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+                    DFG_CRASH(m_graph, node, "Bad Phi node result type");
+                    break;
</ins><span class="cx" style="display: block; padding: 0px 10px;">                 }
</span><span class="cx" style="display: block; padding: 0px 10px;">                 m_phis.add(node, buildAlloca(m_out.m_builder, type));
</span><span class="cx" style="display: block; padding: 0px 10px;">             }
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -843,13 +828,10 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">         case KillLocal:
</span><span class="cx" style="display: block; padding: 0px 10px;">             break;
</span><span class="cx" style="display: block; padding: 0px 10px;">         default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-            LOWERING_FAILED(m_node, "Unrecognized node in FTL backend");
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+            DFG_CRASH(m_graph, m_node, "Unrecognized node in FTL backend");
</ins><span class="cx" style="display: block; padding: 0px 10px;">             break;
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;"> 
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-        if (!m_loweringSucceeded)
-            return false;
-
</del><span class="cx" style="display: block; padding: 0px 10px;">         if (!m_state.isValid()) {
</span><span class="cx" style="display: block; padding: 0px 10px;">             safelyInvalidateAfterTermination();
</span><span class="cx" style="display: block; padding: 0px 10px;">             return false;
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -885,7 +867,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">             m_out.set(lowJSValue(m_node-&gt;child1()), destination);
</span><span class="cx" style="display: block; padding: 0px 10px;">             break;
</span><span class="cx" style="display: block; padding: 0px 10px;">         default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-            LOWERING_FAILED(m_node, "Bad use kind");
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+            DFG_CRASH(m_graph, m_node, "Bad use kind");
</ins><span class="cx" style="display: block; padding: 0px 10px;">             break;
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -911,7 +893,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">             setJSValue(m_out.get(source));
</span><span class="cx" style="display: block; padding: 0px 10px;">             break;
</span><span class="cx" style="display: block; padding: 0px 10px;">         default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-            LOWERING_FAILED(m_node, "Bad use kind");
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+            DFG_CRASH(m_graph, m_node, "Bad use kind");
</ins><span class="cx" style="display: block; padding: 0px 10px;">             break;
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -949,7 +931,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">             
</span><span class="cx" style="display: block; padding: 0px 10px;">         default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-            LOWERING_FAILED(m_node, "Bad use kind");
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+            DFG_CRASH(m_graph, m_node, "Bad use kind");
</ins><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="cx" style="display: block; padding: 0px 10px;">     
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -974,7 +956,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">             
</span><span class="cx" style="display: block; padding: 0px 10px;">         default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-            LOWERING_FAILED(m_node, "Bad use kind");
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+            DFG_CRASH(m_graph, m_node, "Bad use kind");
</ins><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="cx" style="display: block; padding: 0px 10px;">     
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -1037,7 +1019,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">             
</span><span class="cx" style="display: block; padding: 0px 10px;">         default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-            LOWERING_FAILED(m_node, "Bad use kind");
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+            DFG_CRASH(m_graph, m_node, "Bad use kind");
</ins><span class="cx" style="display: block; padding: 0px 10px;">             break;
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -1144,7 +1126,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">             
</span><span class="cx" style="display: block; padding: 0px 10px;">         default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-            LOWERING_FAILED(m_node, "Bad flush format");
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+            DFG_CRASH(m_graph, m_node, "Bad flush format");
</ins><span class="cx" style="display: block; padding: 0px 10px;">             break;
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -1304,7 +1286,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">             
</span><span class="cx" style="display: block; padding: 0px 10px;">         default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-            LOWERING_FAILED(m_node, "Bad use kind");
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+            DFG_CRASH(m_graph, m_node, "Bad use kind");
</ins><span class="cx" style="display: block; padding: 0px 10px;">             break;
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -1378,7 +1360,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">             
</span><span class="cx" style="display: block; padding: 0px 10px;">         default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-            LOWERING_FAILED(m_node, "Bad use kind");
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+            DFG_CRASH(m_graph, m_node, "Bad use kind");
</ins><span class="cx" style="display: block; padding: 0px 10px;">             break;
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -1481,7 +1463,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">             
</span><span class="cx" style="display: block; padding: 0px 10px;">         default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-            LOWERING_FAILED(m_node, "Bad use kind");
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+            DFG_CRASH(m_graph, m_node, "Bad use kind");
</ins><span class="cx" style="display: block; padding: 0px 10px;">             break;
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -1579,7 +1561,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">             
</span><span class="cx" style="display: block; padding: 0px 10px;">         default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-            LOWERING_FAILED(m_node, "Bad use kind");
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+            DFG_CRASH(m_graph, m_node, "Bad use kind");
</ins><span class="cx" style="display: block; padding: 0px 10px;">             break;
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -1630,7 +1612,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">             
</span><span class="cx" style="display: block; padding: 0px 10px;">         default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-            LOWERING_FAILED(m_node, "Bad use kind");
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+            DFG_CRASH(m_graph, m_node, "Bad use kind");
</ins><span class="cx" style="display: block; padding: 0px 10px;">             break;
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -1656,7 +1638,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">             
</span><span class="cx" style="display: block; padding: 0px 10px;">         default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-            LOWERING_FAILED(m_node, "Bad use kind");
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+            DFG_CRASH(m_graph, m_node, "Bad use kind");
</ins><span class="cx" style="display: block; padding: 0px 10px;">             break;
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -1781,7 +1763,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">             
</span><span class="cx" style="display: block; padding: 0px 10px;">         default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-            LOWERING_FAILED(m_node, "Bad use kind");
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+            DFG_CRASH(m_graph, m_node, "Bad use kind");
</ins><span class="cx" style="display: block; padding: 0px 10px;">             break;
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -1919,8 +1901,8 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">             vmCall(m_out.operation(operationEnsureArrayStorage), m_callFrame, cell);
</span><span class="cx" style="display: block; padding: 0px 10px;">             break;
</span><span class="cx" style="display: block; padding: 0px 10px;">         default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-            LOWERING_FAILED(m_node, "Bad array type");
-            return;
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+            DFG_CRASH(m_graph, m_node, "Bad array type");
+            break;
</ins><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">         
</span><span class="cx" style="display: block; padding: 0px 10px;">         structureID = m_out.load32(cell, m_heaps.JSCell_structureID);
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -1988,7 +1970,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">             
</span><span class="cx" style="display: block; padding: 0px 10px;">         default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-            LOWERING_FAILED(m_node, "Bad use kind");
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+            DFG_CRASH(m_graph, m_node, "Bad use kind");
</ins><span class="cx" style="display: block; padding: 0px 10px;">             return;
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -2160,8 +2142,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">             // FIXME: FTL should support activations.
</span><span class="cx" style="display: block; padding: 0px 10px;">             // <a href="https://bugs.webkit.org/show_bug.cgi?id=129576" class="">https://bugs.webkit.org/show_bug.cgi?id=129576</a>
</span><span class="cx" style="display: block; padding: 0px 10px;">             
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-            LOWERING_FAILED(m_node, "Unimplemented");
-            return;
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+            DFG_CRASH(m_graph, m_node, "Unimplemented");
</ins><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">         
</span><span class="cx" style="display: block; padding: 0px 10px;">         TypedPointer base;
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -2207,7 +2188,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">                 return;
</span><span class="cx" style="display: block; padding: 0px 10px;">             }
</span><span class="cx" style="display: block; padding: 0px 10px;">             
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-            LOWERING_FAILED(m_node, "Bad array type");
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+            DFG_CRASH(m_graph, m_node, "Bad array type");
</ins><span class="cx" style="display: block; padding: 0px 10px;">             return;
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -2357,8 +2338,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">                         result = m_out.load32(pointer);
</span><span class="cx" style="display: block; padding: 0px 10px;">                         break;
</span><span class="cx" style="display: block; padding: 0px 10px;">                     default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-                        LOWERING_FAILED(m_node, "Bad element size");
-                        return;
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+                        DFG_CRASH(m_graph, m_node, "Bad element size");
</ins><span class="cx" style="display: block; padding: 0px 10px;">                     }
</span><span class="cx" style="display: block; padding: 0px 10px;">                     
</span><span class="cx" style="display: block; padding: 0px 10px;">                     if (elementSize(type) &lt; 4) {
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -2402,15 +2382,14 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">                     result = m_out.loadDouble(pointer);
</span><span class="cx" style="display: block; padding: 0px 10px;">                     break;
</span><span class="cx" style="display: block; padding: 0px 10px;">                 default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-                    LOWERING_FAILED(m_node, "Bad typed array type");
-                    return;
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+                    DFG_CRASH(m_graph, m_node, "Bad typed array type");
</ins><span class="cx" style="display: block; padding: 0px 10px;">                 }
</span><span class="cx" style="display: block; padding: 0px 10px;">                 
</span><span class="cx" style="display: block; padding: 0px 10px;">                 setDouble(result);
</span><span class="cx" style="display: block; padding: 0px 10px;">                 return;
</span><span class="cx" style="display: block; padding: 0px 10px;">             }
</span><span class="cx" style="display: block; padding: 0px 10px;">             
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-            LOWERING_FAILED(m_node, "Bad array type");
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+            DFG_CRASH(m_graph, m_node, "Bad array type");
</ins><span class="cx" style="display: block; padding: 0px 10px;">             return;
</span><span class="cx" style="display: block; padding: 0px 10px;">         } }
</span><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -2514,10 +2493,9 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">                 m_out.storeDouble(value, elementPointer);
</span><span class="cx" style="display: block; padding: 0px 10px;">                 break;
</span><span class="cx" style="display: block; padding: 0px 10px;">             }
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+                
</ins><span class="cx" style="display: block; padding: 0px 10px;">             default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-                LOWERING_FAILED(m_node, "Bad array type");
-                return;
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+                DFG_CRASH(m_graph, m_node, "Bad array type");
</ins><span class="cx" style="display: block; padding: 0px 10px;">             }
</span><span class="cx" style="display: block; padding: 0px 10px;"> 
</span><span class="cx" style="display: block; padding: 0px 10px;">             m_out.jump(continuation);
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -2610,8 +2588,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">                     }
</span><span class="cx" style="display: block; padding: 0px 10px;">                         
</span><span class="cx" style="display: block; padding: 0px 10px;">                     default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-                        LOWERING_FAILED(m_node, "Bad use kind");
-                        return;
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+                        DFG_CRASH(m_graph, m_node, "Bad use kind");
</ins><span class="cx" style="display: block; padding: 0px 10px;">                     }
</span><span class="cx" style="display: block; padding: 0px 10px;">                     
</span><span class="cx" style="display: block; padding: 0px 10px;">                     switch (elementSize(type)) {
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -2628,8 +2605,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">                         refType = m_out.ref32;
</span><span class="cx" style="display: block; padding: 0px 10px;">                         break;
</span><span class="cx" style="display: block; padding: 0px 10px;">                     default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-                        LOWERING_FAILED(m_node, "Bad element size");
-                        return;
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+                        DFG_CRASH(m_graph, m_node, "Bad element size");
</ins><span class="cx" style="display: block; padding: 0px 10px;">                     }
</span><span class="cx" style="display: block; padding: 0px 10px;">                 } else /* !isInt(type) */ {
</span><span class="cx" style="display: block; padding: 0px 10px;">                     LValue value = lowDouble(child3);
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -2643,8 +2619,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">                         refType = m_out.refDouble;
</span><span class="cx" style="display: block; padding: 0px 10px;">                         break;
</span><span class="cx" style="display: block; padding: 0px 10px;">                     default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-                        LOWERING_FAILED(m_node, "Bad typed array type");
-                        return;
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+                        DFG_CRASH(m_graph, m_node, "Bad typed array type");
</ins><span class="cx" style="display: block; padding: 0px 10px;">                     }
</span><span class="cx" style="display: block; padding: 0px 10px;">                 }
</span><span class="cx" style="display: block; padding: 0px 10px;">                 
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -2668,8 +2643,8 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">                 return;
</span><span class="cx" style="display: block; padding: 0px 10px;">             }
</span><span class="cx" style="display: block; padding: 0px 10px;">             
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-            LOWERING_FAILED(m_node, "Bad array type");
-            return;
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+            DFG_CRASH(m_graph, m_node, "Bad array type");
+            break;
</ins><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="cx" style="display: block; padding: 0px 10px;">     
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -2740,7 +2715,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">             
</span><span class="cx" style="display: block; padding: 0px 10px;">         default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-            LOWERING_FAILED(m_node, "Bad array type");
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+            DFG_CRASH(m_graph, m_node, "Bad array type");
</ins><span class="cx" style="display: block; padding: 0px 10px;">             return;
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -2798,7 +2773,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;"> 
</span><span class="cx" style="display: block; padding: 0px 10px;">         default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-            LOWERING_FAILED(m_node, "Bad array type");
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+            DFG_CRASH(m_graph, m_node, "Bad array type");
</ins><span class="cx" style="display: block; padding: 0px 10px;">             return;
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -2835,8 +2810,8 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">                 switch (m_node-&gt;indexingType()) {
</span><span class="cx" style="display: block; padding: 0px 10px;">                 case ALL_BLANK_INDEXING_TYPES:
</span><span class="cx" style="display: block; padding: 0px 10px;">                 case ALL_UNDECIDED_INDEXING_TYPES:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-                    LOWERING_FAILED(m_node, "Bad indexing type");
-                    return;
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+                    DFG_CRASH(m_graph, m_node, "Bad indexing type");
+                    break;
</ins><span class="cx" style="display: block; padding: 0px 10px;">                     
</span><span class="cx" style="display: block; padding: 0px 10px;">                 case ALL_DOUBLE_INDEXING_TYPES:
</span><span class="cx" style="display: block; padding: 0px 10px;">                     m_out.storeDouble(
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -2853,8 +2828,8 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">                     break;
</span><span class="cx" style="display: block; padding: 0px 10px;">                     
</span><span class="cx" style="display: block; padding: 0px 10px;">                 default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-                    LOWERING_FAILED(m_node, "Corrupt indexing type");
-                    return;
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+                    DFG_CRASH(m_graph, m_node, "Corrupt indexing type");
+                    break;
</ins><span class="cx" style="display: block; padding: 0px 10px;">                 }
</span><span class="cx" style="display: block; padding: 0px 10px;">             }
</span><span class="cx" style="display: block; padding: 0px 10px;">             
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -3135,8 +3110,8 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">             
</span><span class="cx" style="display: block; padding: 0px 10px;">         default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-            LOWERING_FAILED(m_node, "Bad use kind");
-            return;
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+            DFG_CRASH(m_graph, m_node, "Bad use kind");
+            break;
</ins><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="cx" style="display: block; padding: 0px 10px;">     
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -3227,8 +3202,8 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">                 m_out.operation(operationMakeRope3), m_callFrame, kids[0], kids[1], kids[2]));
</span><span class="cx" style="display: block; padding: 0px 10px;">             break;
</span><span class="cx" style="display: block; padding: 0px 10px;">         default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-            LOWERING_FAILED(m_node, "Bad number of children");
-            return;
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+            DFG_CRASH(m_graph, m_node, "Bad number of children");
+            break;
</ins><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">         m_out.jump(continuation);
</span><span class="cx" style="display: block; padding: 0px 10px;">         
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -3648,8 +3623,8 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">             nonSpeculativeCompare(LLVMIntEQ, operationCompareEq);
</span><span class="cx" style="display: block; padding: 0px 10px;">             return;
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-
-        LOWERING_FAILED(m_node, "Bad use kinds");
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+        
+        DFG_CRASH(m_graph, m_node, "Bad use kinds");
</ins><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="cx" style="display: block; padding: 0px 10px;">     
</span><span class="cx" style="display: block; padding: 0px 10px;">     void compileCompareEqConstant()
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -3742,7 +3717,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">             return;
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">         
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-        LOWERING_FAILED(m_node, "Bad use kinds");
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+        DFG_CRASH(m_graph, m_node, "Bad use kinds");
</ins><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="cx" style="display: block; padding: 0px 10px;">     
</span><span class="cx" style="display: block; padding: 0px 10px;">     void compileCompareStrictEqConstant()
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -4009,8 +3984,8 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">             }
</span><span class="cx" style="display: block; padding: 0px 10px;">                 
</span><span class="cx" style="display: block; padding: 0px 10px;">             default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-                LOWERING_FAILED(m_node, "Bad use kind");
-                return;
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+                DFG_CRASH(m_graph, m_node, "Bad use kind");
+                break;
</ins><span class="cx" style="display: block; padding: 0px 10px;">             }
</span><span class="cx" style="display: block; padding: 0px 10px;">             
</span><span class="cx" style="display: block; padding: 0px 10px;">             m_out.appendTo(switchOnInts, lastNext);
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -4055,8 +4030,8 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">             }
</span><span class="cx" style="display: block; padding: 0px 10px;">                 
</span><span class="cx" style="display: block; padding: 0px 10px;">             default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-                LOWERING_FAILED(m_node, "Bad use kind");
-                return;
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+                DFG_CRASH(m_graph, m_node, "Bad use kind");
+                break;
</ins><span class="cx" style="display: block; padding: 0px 10px;">             }
</span><span class="cx" style="display: block; padding: 0px 10px;">             
</span><span class="cx" style="display: block; padding: 0px 10px;">             LBasicBlock lengthIs1 = FTL_NEW_BLOCK(m_out, ("Switch/SwitchChar length is 1"));
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -4108,7 +4083,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">         
</span><span class="cx" style="display: block; padding: 0px 10px;">         case SwitchString: {
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-            LOWERING_FAILED(m_node, "Unimplemented");
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+            DFG_CRASH(m_graph, m_node, "Unimplemented");
</ins><span class="cx" style="display: block; padding: 0px 10px;">             return;
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">             
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -4131,7 +4106,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">             }
</span><span class="cx" style="display: block; padding: 0px 10px;">                 
</span><span class="cx" style="display: block; padding: 0px 10px;">             default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-                LOWERING_FAILED(m_node, "Bad use kind");
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+                DFG_CRASH(m_graph, m_node, "Bad use kind");
</ins><span class="cx" style="display: block; padding: 0px 10px;">                 return;
</span><span class="cx" style="display: block; padding: 0px 10px;">             }
</span><span class="cx" style="display: block; padding: 0px 10px;">             
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -4139,7 +4114,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">             return;
</span><span class="cx" style="display: block; padding: 0px 10px;">         } }
</span><span class="cx" style="display: block; padding: 0px 10px;">         
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-        LOWERING_FAILED(m_node, "Bad switch kind");
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+        DFG_CRASH(m_graph, m_node, "Bad switch kind");
</ins><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="cx" style="display: block; padding: 0px 10px;">     
</span><span class="cx" style="display: block; padding: 0px 10px;">     void compileReturn()
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -5109,7 +5084,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">             return;
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">         
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-        LOWERING_FAILED(m_node, "Bad use kinds");
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+        DFG_CRASH(m_graph, m_node, "Bad use kinds");
</ins><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="cx" style="display: block; padding: 0px 10px;">     
</span><span class="cx" style="display: block; padding: 0px 10px;">     void compareEqObjectOrOtherToObject(Edge leftChild, Edge rightChild)
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -5422,7 +5397,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">             return m_out.phi(m_out.boolean, fastResult, slowResult);
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">         default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-            LOWERING_FAILED(m_node, "Bad use kind");
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+            DFG_CRASH(m_graph, m_node, "Bad use kind");
</ins><span class="cx" style="display: block; padding: 0px 10px;">             return 0;
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -5801,7 +5776,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">         case StrictInt52:
</span><span class="cx" style="display: block; padding: 0px 10px;">             return Int52;
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-        LOWERING_FAILED(m_node, "Bad use kind");
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+        DFG_CRASH(m_graph, m_node, "Bad use kind");
</ins><span class="cx" style="display: block; padding: 0px 10px;">         return Int52;
</span><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="cx" style="display: block; padding: 0px 10px;">     
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -5945,7 +5920,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">             return result;
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">         
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-        LOWERING_FAILED(m_node, "Value not defined");
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+        DFG_CRASH(m_graph, m_node, "Value not defined");
</ins><span class="cx" style="display: block; padding: 0px 10px;">         return 0;
</span><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="cx" style="display: block; padding: 0px 10px;">     
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -6260,8 +6235,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">             speculateMisc(edge);
</span><span class="cx" style="display: block; padding: 0px 10px;">             break;
</span><span class="cx" style="display: block; padding: 0px 10px;">         default:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-            LOWERING_FAILED(m_node, "Unsupported speculation use kind");
-            return;
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+            DFG_CRASH(m_graph, m_node, "Unsupported speculation use kind");
</ins><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="cx" style="display: block; padding: 0px 10px;">     
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -6322,7 +6296,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">             
</span><span class="cx" style="display: block; padding: 0px 10px;">             switch (arrayMode.arrayClass()) {
</span><span class="cx" style="display: block; padding: 0px 10px;">             case Array::OriginalArray:
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-                LOWERING_FAILED(m_node, "Unexpected original array");
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+                DFG_CRASH(m_graph, m_node, "Unexpected original array");
</ins><span class="cx" style="display: block; padding: 0px 10px;">                 return 0;
</span><span class="cx" style="display: block; padding: 0px 10px;">                 
</span><span class="cx" style="display: block; padding: 0px 10px;">             case Array::Array:
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -6342,8 +6316,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">                     m_out.constInt8(arrayMode.shapeMask()));
</span><span class="cx" style="display: block; padding: 0px 10px;">             }
</span><span class="cx" style="display: block; padding: 0px 10px;">             
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-            LOWERING_FAILED(m_node, "Corrupt array class");
-            return 0;
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+            DFG_CRASH(m_graph, m_node, "Corrupt array class");
</ins><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">             
</span><span class="cx" style="display: block; padding: 0px 10px;">         default:
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -6853,7 +6826,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">             return ExitValue::argumentsObjectThatWasNotCreated();
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">         
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-        LOWERING_FAILED(m_node, "Invalid flush format");
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+        DFG_CRASH(m_graph, m_node, "Invalid flush format");
</ins><span class="cx" style="display: block; padding: 0px 10px;">         return ExitValue::dead();
</span><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="cx" style="display: block; padding: 0px 10px;">     
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -6926,7 +6899,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">         if (isValid(value))
</span><span class="cx" style="display: block; padding: 0px 10px;">             return exitArgument(arguments, ValueFormatDouble, value.value());
</span><span class="cx" style="display: block; padding: 0px 10px;"> 
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-        LOWERING_FAILED(m_node, toCString("Cannot find value for node: ", node).data());
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+        DFG_CRASH(m_graph, m_node, toCString("Cannot find value for node: ", node).data());
</ins><span class="cx" style="display: block; padding: 0px 10px;">         return ExitValue::dead();
</span><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="cx" style="display: block; padding: 0px 10px;">     
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -6984,7 +6957,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">             return;
</span><span class="cx" style="display: block; padding: 0px 10px;">         }
</span><span class="cx" style="display: block; padding: 0px 10px;">         
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-        LOWERING_FAILED(m_node, "Corrupt int52 kind");
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+        DFG_CRASH(m_graph, m_node, "Corrupt int52 kind");
</ins><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="cx" style="display: block; padding: 0px 10px;">     void setJSValue(Node* node, LValue value)
</span><span class="cx" style="display: block; padding: 0px 10px;">     {
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -7139,20 +7112,6 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">         m_out.unreachable();
</span><span class="cx" style="display: block; padding: 0px 10px;">     }
</span><span class="cx" style="display: block; padding: 0px 10px;"> 
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-    NO_RETURN_DUE_TO_ASSERT void loweringFailed(Node* node, const char* file, int line, const char* function, const char* assertion)
-    {
-#ifndef NDEBUG
-        m_graph.handleAssertionFailure(node, file, line, function, (assertion));
-#else
-        UNUSED_PARAM(node);
-        UNUSED_PARAM(file);
-        UNUSED_PARAM(line);
-        UNUSED_PARAM(function);
-        UNUSED_PARAM(assertion);
-#endif
-        m_loweringSucceeded = false;
-    }
-
</del><span class="cx" style="display: block; padding: 0px 10px;">     AvailabilityMap&amp; availabilityMap() { return m_availabilityCalculator.m_availability; }
</span><span class="cx" style="display: block; padding: 0px 10px;">     
</span><span class="cx" style="display: block; padding: 0px 10px;">     VM&amp; vm() { return m_graph.m_vm; }
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -7160,7 +7119,6 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">     
</span><span class="cx" style="display: block; padding: 0px 10px;">     Graph&amp; m_graph;
</span><span class="cx" style="display: block; padding: 0px 10px;">     State&amp; m_ftlState;
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-    bool m_loweringSucceeded;
</del><span class="cx" style="display: block; padding: 0px 10px;">     AbstractHeapRepository m_heaps;
</span><span class="cx" style="display: block; padding: 0px 10px;">     Output m_out;
</span><span class="cx" style="display: block; padding: 0px 10px;">     
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -7208,14 +7166,12 @@
</span><span class="cx" style="display: block; padding: 0px 10px;">     uint32_t m_stackmapIDs;
</span><span class="cx" style="display: block; padding: 0px 10px;">     unsigned m_tbaaKind;
</span><span class="cx" style="display: block; padding: 0px 10px;">     unsigned m_tbaaStructKind;
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-
-#undef LOWERING_FAILED
</del><span class="cx" style="display: block; padding: 0px 10px;"> };
</span><span class="cx" style="display: block; padding: 0px 10px;"> 
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-bool lowerDFGToLLVM(State&amp; state)
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+void lowerDFGToLLVM(State&amp; state)
</ins><span class="cx" style="display: block; padding: 0px 10px;"> {
</span><span class="cx" style="display: block; padding: 0px 10px;">     LowerDFGToLLVM lowering(state);
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-    return lowering.lower();
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+    lowering.lower();
</ins><span class="cx" style="display: block; padding: 0px 10px;"> }
</span><span class="cx" style="display: block; padding: 0px 10px;"> 
</span><span class="cx" style="display: block; padding: 0px 10px;"> } } // namespace JSC::FTL
</span></span></pre></div><a id="trunkSourceJavaScriptCoreftlFTLLowerDFGToLLVMh" class=""></a><div class="modfile" style="border: 1px solid rgb(204, 204, 204); margin: 10px 0px;"><h4 style="font-family: verdana, arial, helvetica, sans-serif; font-size: 10pt; padding: 8px; background-color: rgb(51, 102, 153); color: rgb(255, 255, 255); margin: 0px; background-position: initial initial; background-repeat: initial initial;" class="">Modified: trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.h (180316 =&gt; 180317)</h4><pre class="diff" style="padding: 0px 0px 10px; line-height: 1.2em; margin: 0px; width: 1000px; background-color: rgb(238, 238, 238); overflow: auto; background-position: initial initial; background-repeat: initial initial;"><span style="display: block; padding: 0px 10px;" class="">
<span class="info" style="color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;">--- trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.h        2015-02-18 23:50:12 UTC (rev 180316)
+++ trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.h        2015-02-18 23:52:16 UTC (rev 180317)
</span><span class="lines" style="display: block; padding: 0px 10px; color: rgb(136, 136, 136); background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial;">@@ -33,7 +33,7 @@
</span><span class="cx" style="display: block; padding: 0px 10px;"> 
</span><span class="cx" style="display: block; padding: 0px 10px;"> namespace JSC { namespace FTL {
</span><span class="cx" style="display: block; padding: 0px 10px;"> 
</span><del style="background-color: rgb(255, 221, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">-bool lowerDFGToLLVM(State&amp;);
</del><ins style="background-color: rgb(221, 255, 221); text-decoration: none; display: block; padding: 0px 10px; background-position: initial initial; background-repeat: initial initial;" class="">+void lowerDFGToLLVM(State&amp;);
</ins><span class="cx" style="display: block; padding: 0px 10px;"> 
</span><span class="cx" style="display: block; padding: 0px 10px;"> } } // namespace JSC::FTL
</span><span class="cx" style="display: block; padding: 0px 10px;"> 
</span></span></pre></div></div><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">_______________________________________________</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">webkit-changes mailing list</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><a href="mailto:webkit-changes@lists.webkit.org" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">webkit-changes@lists.webkit.org</a><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><a href="https://lists.webkit.org/mailman/listinfo/webkit-changes" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">https://lists.webkit.org/mailman/listinfo/webkit-changes</a></div></blockquote></div><br class=""></div></div></div></blockquote></div><br class=""></div></div></div></div></blockquote></div><br class=""></div></div></body></html>