]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - tests/controlFlowProfiler/test-jit.js
JavaScriptCore-7601.1.46.3.tar.gz
[apple/javascriptcore.git] / tests / controlFlowProfiler / test-jit.js
diff --git a/tests/controlFlowProfiler/test-jit.js b/tests/controlFlowProfiler/test-jit.js
new file mode 100644 (file)
index 0000000..b0f3c19
--- /dev/null
@@ -0,0 +1,46 @@
+load("./driver/driver.js");
+
+function tierUpToBaseline(func, arg) 
+{
+    for (var i = 0; i < 50; i++)
+        func(arg);
+}
+
+function tierUpToDFG(func, arg) 
+{
+    for (var i = 0; i < 50; i++)
+        func(arg);
+}
+
+function baselineTest(arg) {
+    if (arg > 20) {
+        return 20;
+    } else {
+        return 30;
+    }
+}
+
+function dfgTest(arg) {
+    if (arg > 20) {
+        return 20;
+    } else {
+        return 30;
+    }
+}
+
+noInline(baselineTest);
+noInline(dfgTest);
+
+tierUpToBaseline(baselineTest, 10);
+tierUpToDFG(dfgTest, 10);
+
+assert(!hasBasicBlockExecuted(baselineTest, "return 20"), "should not have executed yet.");
+assert(hasBasicBlockExecuted(baselineTest, "return 30"), "should have executed.");
+baselineTest(25);
+assert(hasBasicBlockExecuted(baselineTest, "return 20"), "should have executed.");
+
+assert(!hasBasicBlockExecuted(dfgTest, "return 20"), "should not have executed yet.");
+assert(hasBasicBlockExecuted(dfgTest, "return 30"), "should have executed.");
+dfgTest(25);
+assert(hasBasicBlockExecuted(dfgTest, "return 20"), "should have executed.");
+