]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - tests/stress/exit-from-setter.js
JavaScriptCore-7601.1.46.3.tar.gz
[apple/javascriptcore.git] / tests / stress / exit-from-setter.js
diff --git a/tests/stress/exit-from-setter.js b/tests/stress/exit-from-setter.js
new file mode 100644 (file)
index 0000000..fc84c6b
--- /dev/null
@@ -0,0 +1,23 @@
+(function() {
+    var o = {_f:42};
+    o.__defineSetter__("f", function(value) { this._f = value * 100; });
+    var n = 50000;
+    function foo(o_, v_) {
+        var o = o_.f;
+        var v = v_.f;
+        o.f = v;
+        o.f = v + 1;
+    }
+    noInline(foo);
+    for (var i = 0; i < n; ++i) {
+        foo({f:o}, {f:11});
+    }
+    if (o._f != (11 + 1) * 100)
+        throw "Error: bad o._f: " + o._f;
+    for (var i = 0; i < n; ++i) {
+        foo({f:o}, {f:1000000000});
+    }
+    if (o._f != 100 * (1000000000 + 1))
+        throw "Error: bad o._f (2): " + o._f;
+})();
+