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

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:cc0bd27e64be
1 var counter = 0;
2 function inc() { return counter++ }
3 var imp = { inc:inc };
4
5 function FFI1(stdlib, foreign) {
6 "use asm";
7
8 var inc = foreign.inc;
9
10 function g() {
11 return inc()|0
12 }
13
14 return g
15 }
16
17 function FFI2(stdlib, foreign) {
18 "use asm";
19
20 var inc=foreign.inc;
21
22 function g() {
23 inc()
24 }
25
26 return g
27 }
28
29
30 var f = FFI2(this, imp); // produces AOT-compiled version
31 f()
32 assertEq(counter, 1);
33
34 var f = FFI1(this, imp); // produces AOT-compiled version
35
36 assertEq(f(), 1);
37 assertEq(counter, 2);
38 assertEq(f(), 2);
39 assertEq(counter, 3);

mercurial