X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/2d39b0e377c0896910ee49ae70082ba665faf986..ed1e77d3adeb83d26fd1dfb16dd84cabdcefd250:/tests/controlFlowProfiler/test-jit.js?ds=inline diff --git a/tests/controlFlowProfiler/test-jit.js b/tests/controlFlowProfiler/test-jit.js new file mode 100644 index 0000000..b0f3c19 --- /dev/null +++ b/tests/controlFlowProfiler/test-jit.js @@ -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."); +