Title: [161587] tags/Safari-538.10.2/Source/_javascript_Core

Diff

Modified: tags/Safari-538.10.2/Source/_javascript_Core/ChangeLog (161586 => 161587)


--- tags/Safari-538.10.2/Source/_javascript_Core/ChangeLog	2014-01-09 22:49:15 UTC (rev 161586)
+++ tags/Safari-538.10.2/Source/_javascript_Core/ChangeLog	2014-01-09 22:51:49 UTC (rev 161587)
@@ -1,3 +1,19 @@
+2014-01-09  Lucas Forschler  <[email protected]>
+
+        Merge r161574
+
+    2014-01-09  Filip Pizlo  <[email protected]>
+
+            AI for CreateArguments should pass through non-SpecEmpty input values
+            https://bugs.webkit.org/show_bug.cgi?id=126709
+
+            Reviewed by Mark Hahnenberg.
+
+            * dfg/DFGAbstractInterpreterInlines.h:
+            (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
+            * tests/stress/use-arguments-as-object-pointer.js: Added.
+            (foo):
+
 2013-12-19  Mark Hahnenberg  <[email protected]>
 
         Put write barriers in the right places in the baseline JIT

Modified: tags/Safari-538.10.2/Source/_javascript_Core/dfg/DFGAbstractInterpreterInlines.h (161586 => 161587)


--- tags/Safari-538.10.2/Source/_javascript_Core/dfg/DFGAbstractInterpreterInlines.h	2014-01-09 22:49:15 UTC (rev 161586)
+++ tags/Safari-538.10.2/Source/_javascript_Core/dfg/DFGAbstractInterpreterInlines.h	2014-01-09 22:51:49 UTC (rev 161587)
@@ -1152,7 +1152,9 @@
         break;
     
     case CreateArguments:
-        forNode(node).setType(SpecArguments);
+        forNode(node) = forNode(node->child1());
+        forNode(node).filter(~SpecEmpty);
+        forNode(node).merge(SpecArguments);
         break;
         
     case TearOffActivation:

Copied: tags/Safari-538.10.2/Source/_javascript_Core/tests/stress/use-arguments-as-object-pointer.js (from rev 161574, trunk/Source/_javascript_Core/tests/stress/use-arguments-as-object-pointer.js) (0 => 161587)


--- tags/Safari-538.10.2/Source/_javascript_Core/tests/stress/use-arguments-as-object-pointer.js	                        (rev 0)
+++ tags/Safari-538.10.2/Source/_javascript_Core/tests/stress/use-arguments-as-object-pointer.js	2014-01-09 22:51:49 UTC (rev 161587)
@@ -0,0 +1,13 @@
+function foo() {
+    arguments = {f:42};
+    return arguments.f;
+}
+
+noInline(foo);
+
+for (var i = 0; i < 100000; ++i) {
+    var result = foo();
+    if (result != 42)
+        throw "Error: bad result: " + result;
+}
+
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to