Title: [161781] branches/jsCStack/Source/_javascript_Core
Revision
161781
Author
[email protected]
Date
2014-01-11 13:03:15 -0800 (Sat, 11 Jan 2014)

Log Message

Unreviewed, add a test for InvalidationPoint in the FTL.
        
Probably there are other tests that cover this in various ways and it's possible
that we're just not running those tests in the FTL, yet. But anyway I think it's
good to have an FTL-specific test for this.

* tests/stress/invalidation-point.js: Added.
(foo):
(Thingy):
(Thingy.prototype.f):
(possiblyDoBadThings.Thingy.prototype.f):
(possiblyDoBadThings):

Modified Paths

Added Paths

Diff

Modified: branches/jsCStack/Source/_javascript_Core/ChangeLog (161780 => 161781)


--- branches/jsCStack/Source/_javascript_Core/ChangeLog	2014-01-11 20:59:15 UTC (rev 161780)
+++ branches/jsCStack/Source/_javascript_Core/ChangeLog	2014-01-11 21:03:15 UTC (rev 161781)
@@ -1,5 +1,20 @@
 2014-01-11  Filip Pizlo  <[email protected]>
 
+        Unreviewed, add a test for InvalidationPoint in the FTL.
+        
+        Probably there are other tests that cover this in various ways and it's possible
+        that we're just not running those tests in the FTL, yet. But anyway I think it's
+        good to have an FTL-specific test for this.
+
+        * tests/stress/invalidation-point.js: Added.
+        (foo):
+        (Thingy):
+        (Thingy.prototype.f):
+        (possiblyDoBadThings.Thingy.prototype.f):
+        (possiblyDoBadThings):
+
+2014-01-11  Filip Pizlo  <[email protected]>
+
         FTL tier-up should behave the same with CountExecution's as it does without
         https://bugs.webkit.org/show_bug.cgi?id=126822
 

Added: branches/jsCStack/Source/_javascript_Core/tests/stress/invalidation-point.js (0 => 161781)


--- branches/jsCStack/Source/_javascript_Core/tests/stress/invalidation-point.js	                        (rev 0)
+++ branches/jsCStack/Source/_javascript_Core/tests/stress/invalidation-point.js	2014-01-11 21:03:15 UTC (rev 161781)
@@ -0,0 +1,24 @@
+function foo(o, p) {
+    possiblyDoBadThings(p);
+    return o.f();
+}
+noInline(foo);
+
+function Thingy() { }
+Thingy.prototype.f = function() { return 42; }
+
+function possiblyDoBadThings(p) {
+    if (p)
+        Thingy.prototype.f = function() { return 24; }
+}
+noInline(possiblyDoBadThings);
+
+for (var i = 0; i < 100000; ++i) {
+    var result = foo(new Thingy(), false);
+    if (result != 42)
+        throw "Error: bad result: " + result;
+}
+
+var result = foo(new Thingy(), true);
+if (result != 24)
+    throw "Error: bad result: " + result;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to