Title: [226379] trunk/Source/_javascript_Core
Revision
226379
Author
sbar...@apple.com
Date
2018-01-03 16:44:37 -0800 (Wed, 03 Jan 2018)

Log Message

Fix BytecodeParser op_catch assert to work with useProfiler=1
https://bugs.webkit.org/show_bug.cgi?id=181260

Reviewed by Keith Miller.

op_catch was asserting that the current block was empty. This is only true
if the profiler isn't enabled. When the profiler is enabled, we will
insert a CountExecution node before each bytecode. This patch fixes the
assert to work with the profiler.

* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (226378 => 226379)


--- trunk/Source/_javascript_Core/ChangeLog	2018-01-04 00:42:21 UTC (rev 226378)
+++ trunk/Source/_javascript_Core/ChangeLog	2018-01-04 00:44:37 UTC (rev 226379)
@@ -1,3 +1,18 @@
+2018-01-03  Saam Barati  <sbar...@apple.com>
+
+        Fix BytecodeParser op_catch assert to work with useProfiler=1
+        https://bugs.webkit.org/show_bug.cgi?id=181260
+
+        Reviewed by Keith Miller.
+
+        op_catch was asserting that the current block was empty. This is only true
+        if the profiler isn't enabled. When the profiler is enabled, we will
+        insert a CountExecution node before each bytecode. This patch fixes the
+        assert to work with the profiler.
+
+        * dfg/DFGByteCodeParser.cpp:
+        (JSC::DFG::ByteCodeParser::parseBlock):
+
 2018-01-03  Per Arne Vollan  <pvol...@apple.com>
 
         [Win][Debug] testapi link error.

Modified: trunk/Source/_javascript_Core/dfg/DFGByteCodeParser.cpp (226378 => 226379)


--- trunk/Source/_javascript_Core/dfg/DFGByteCodeParser.cpp	2018-01-04 00:42:21 UTC (rev 226378)
+++ trunk/Source/_javascript_Core/dfg/DFGByteCodeParser.cpp	2018-01-04 00:44:37 UTC (rev 226379)
@@ -5410,7 +5410,7 @@
                 NEXT_OPCODE(op_catch);
             }
 
-            RELEASE_ASSERT(!m_currentBlock->size());
+            RELEASE_ASSERT(!m_currentBlock->size() || (m_graph.compilation() && m_currentBlock->size() == 1 && m_currentBlock->at(0)->op() == CountExecution));
 
             ValueProfileAndOperandBuffer* buffer = static_cast<ValueProfileAndOperandBuffer*>(currentInstruction[3].u.pointer);
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to