]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - tests/stress/sink-object-past-invalid-check-sneaky.js
JavaScriptCore-7601.1.46.3.tar.gz
[apple/javascriptcore.git] / tests / stress / sink-object-past-invalid-check-sneaky.js
diff --git a/tests/stress/sink-object-past-invalid-check-sneaky.js b/tests/stress/sink-object-past-invalid-check-sneaky.js
new file mode 100644 (file)
index 0000000..7b38cef
--- /dev/null
@@ -0,0 +1,20 @@
+function foo(p) {
+    var result = 0;
+    var o = {valueOf: function() { result = 1; }};
+    var q = {f: p ? o : 42};
+    var tmp = q.f + 1;
+    return result;
+}
+
+noInline(foo);
+
+for (var i = 0; i < 10000; ++i) {
+    var result = foo(false);
+    if (result !== 0)
+        throw "Error: bad result: " + result;
+}
+
+var result = foo(true);
+if (result !== 1)
+    throw "Error: bad result at end: " + result;
+