]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - tests/stress/fold-multi-get-by-offset-to-get-by-offset.js
JavaScriptCore-7600.1.4.9.tar.gz
[apple/javascriptcore.git] / tests / stress / fold-multi-get-by-offset-to-get-by-offset.js
diff --git a/tests/stress/fold-multi-get-by-offset-to-get-by-offset.js b/tests/stress/fold-multi-get-by-offset-to-get-by-offset.js
new file mode 100644 (file)
index 0000000..34be8e9
--- /dev/null
@@ -0,0 +1,26 @@
+//@ defaultNoEagerRun
+
+function foo(o) {
+    return o.f;
+}
+
+for (var i = 0; i < 100; ++i) {
+    var result = foo((i & 1) ? {f:1, g:2} : {g:1, f:2});
+    if (result != 2 - (i & 1))
+        throw "Error: bad result in warm-up loop for i = " + i + ": " + result;
+}
+
+function bar(o) {
+    return o.g + foo(o);
+}
+
+noInline(bar);
+
+for (var i = 0; i < 100000; ++i) {
+    var result = bar({f:i, g:i * 3});
+    if (result != i * 4)
+        throw "Error: bad result for i = " + i + ": " + result;
+}
+
+if (reoptimizationRetryCount(bar))
+    throw "Error: reoptimized bar unexpectedly: " + reoptimizationRetryCount(bar);