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