1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/jit-test/tests/sunspider/check-controlflow-recursive.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,27 @@ 1.4 +// The Computer Language Shootout 1.5 +// http://shootout.alioth.debian.org/ 1.6 +// contributed by Isaac Gouy 1.7 + 1.8 +function ack(m,n){ 1.9 + if (m==0) { return n+1; } 1.10 + if (n==0) { return ack(m-1,1); } 1.11 + return ack(m-1, ack(m,n-1) ); 1.12 +} 1.13 + 1.14 +function fib(n) { 1.15 + if (n < 2){ return 1; } 1.16 + return fib(n-2) + fib(n-1); 1.17 +} 1.18 + 1.19 +function tak(x,y,z) { 1.20 + if (y >= x) return z; 1.21 + return tak(tak(x-1,y,z), tak(y-1,z,x), tak(z-1,x,y)); 1.22 +} 1.23 + 1.24 +var ret = 0; 1.25 +for ( var i = 3; i <= 5; i++ ) { 1.26 + ret += ack(3,i); 1.27 + ret += fib(17.0+i); 1.28 + ret += tak(3*i+3,2*i+2,i+1); 1.29 +} 1.30 +assertEq(ret, 57775);