js/src/jit-test/tests/ion/bug860838-4.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:bc778c890cde
1 function DiagModule(stdlib, foreign) {
2 "use asm";
3
4 var sqrt = stdlib.Math.sqrt;
5 var test = foreign.test;
6 var foo = foreign.foo;
7
8 function square(x) {
9 x = x|0;
10 return ((x|0)+(x|0))|0;
11 }
12
13 function diag() {
14 var x = 0.0;
15 while(1) {
16 test(1, x);
17 x = x+1.0
18 if (x > 15.0)
19 return 0;
20 }
21 return 0;
22 }
23
24 function diag_1() {
25 foo();
26 return 0;
27 }
28
29
30 return { diag: diag, diag_1:diag_1 };
31 }
32
33 var foreign = {
34 test:function(a,b) {
35 print(a+":"+b)
36 var c = [0.0];
37 if (b > 10)
38 return c[1];
39 return c[0];
40 },
41 foo:function() {
42 with({}) {};
43 gc();
44 }
45 }
46
47 // make sure foreign is compiled
48
49 var fast = DiagModule(this, foreign); // produces AOT-compiled version
50 print(fast.diag_1()); // 5
51 gc()
52 print(fast.diag()); // 5
53
54

mercurial