Title: [207915] branches/safari-602-branch

Diff

Modified: branches/safari-602-branch/JSTests/ChangeLog (207914 => 207915)


--- branches/safari-602-branch/JSTests/ChangeLog	2016-10-26 23:15:51 UTC (rev 207914)
+++ branches/safari-602-branch/JSTests/ChangeLog	2016-10-26 23:17:44 UTC (rev 207915)
@@ -1,3 +1,19 @@
+2016-10-24  Matthew Hanson  <[email protected]>
+
+        Merge r207623. rdar://problem/28857477
+
+    2016-10-20  Keith Miller  <[email protected]>
+
+            Invalid assertion in arguments elimination
+            https://bugs.webkit.org/show_bug.cgi?id=163740
+            <rdar://problem/27911462>
+
+            Reviewed by Michael Saboff.
+
+            * stress/direct-arguments-osr-entry.js: Added.
+            (foo.):
+            (foo):
+
 2016-10-12  Matthew Hanson  <[email protected]>
 
         Merge r206472. rdar://problem/28545009

Added: branches/safari-602-branch/JSTests/stress/direct-arguments-osr-entry.js (0 => 207915)


--- branches/safari-602-branch/JSTests/stress/direct-arguments-osr-entry.js	                        (rev 0)
+++ branches/safari-602-branch/JSTests/stress/direct-arguments-osr-entry.js	2016-10-26 23:17:44 UTC (rev 207915)
@@ -0,0 +1,22 @@
+// This tests that arguments elimination works with OSR entry.
+// We need to have an inner call so that arguments elimination
+// sees there are potential candidates.
+
+var args;
+
+function foo(a)
+{
+    args = arguments;
+    var result = 0;
+    for (var i = 0; i < 1000000; ++i) {
+        (function() {
+            return arguments[0];
+        })(42);
+        result += a;
+    }
+    return result;
+}
+
+noInline(foo);
+
+foo(42);

Modified: branches/safari-602-branch/Source/_javascript_Core/ChangeLog (207914 => 207915)


--- branches/safari-602-branch/Source/_javascript_Core/ChangeLog	2016-10-26 23:15:51 UTC (rev 207914)
+++ branches/safari-602-branch/Source/_javascript_Core/ChangeLog	2016-10-26 23:17:44 UTC (rev 207915)
@@ -1,3 +1,24 @@
+2016-10-24  Matthew Hanson  <[email protected]>
+
+        Merge r207623. rdar://problem/28857477
+
+    2016-10-20  Keith Miller  <[email protected]>
+
+            Invalid assertion in arguments elimination
+            https://bugs.webkit.org/show_bug.cgi?id=163740
+            <rdar://problem/27911462>
+
+            Reviewed by Michael Saboff.
+
+            The DFGFTL's arguments elimination phase incorrectly asserted that a GetFromArguments' first
+            child would always be a CreateDirectArguments.  While we only create the
+            op_get_from_arguments bytecode pointing to a create_direct_arguments, its possible for a
+            number of reasons that a DFG GetFromArguments may not point to a CreateDirectArguments. For
+            example, if we are OSR entering in some function with direct arguments the
+            CreateDirectArguments node might become ExtractOSREntryLocals.
+
+            * dfg/DFGArgumentsEliminationPhase.cpp:
+
 2016-10-12  Matthew Hanson  <[email protected]>
 
         Merge r206955. rdar://problem/28216236

Modified: branches/safari-602-branch/Source/_javascript_Core/dfg/DFGArgumentsEliminationPhase.cpp (207914 => 207915)


--- branches/safari-602-branch/Source/_javascript_Core/dfg/DFGArgumentsEliminationPhase.cpp	2016-10-26 23:15:51 UTC (rev 207914)
+++ branches/safari-602-branch/Source/_javascript_Core/dfg/DFGArgumentsEliminationPhase.cpp	2016-10-26 23:17:44 UTC (rev 207915)
@@ -169,7 +169,6 @@
             for (Node* node : *block) {
                 switch (node->op()) {
                 case GetFromArguments:
-                    DFG_ASSERT(m_graph, node, node->child1()->op() == CreateDirectArguments);
                     break;
                     
                 case GetByVal:
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to