|
1 function g1(x) { |
|
2 return x + 1; |
|
3 } |
|
4 function f1() { |
|
5 var y = 0; |
|
6 for (var i=0; i<100; i++) { |
|
7 y += g1(g1(i)); |
|
8 } |
|
9 return y; |
|
10 } |
|
11 g1(10); |
|
12 assertEq(f1(), 5150); |
|
13 |
|
14 x = 1; |
|
15 other = newGlobal("same-compartment"); |
|
16 other.eval("f = function() { return x; }; x = 2;"); |
|
17 |
|
18 h = other.f; |
|
19 |
|
20 function testOtherGlobal() { |
|
21 var y = 0; |
|
22 for (var i=0; i<100; i++) { |
|
23 y += h(); |
|
24 } |
|
25 return y; |
|
26 } |
|
27 h(); |
|
28 assertEq(testOtherGlobal(), 200); |
|
29 |
|
30 // Note: this test requires on On-Stack Invalidation. |
|
31 f2 = function() { |
|
32 return x; |
|
33 } |
|
34 function test2() { |
|
35 var y = 0; |
|
36 for (var i=0; i<50; i++) { |
|
37 y += f2(); |
|
38 } |
|
39 return y; |
|
40 } |
|
41 assertEq(test2(), 50); |
|
42 f2 = h; |
|
43 assertEq(test2(), 100); |