|
1 var calls = 0; |
|
2 function g() { |
|
3 calls++; |
|
4 }; |
|
5 function test1() { |
|
6 for (var i=0; i<20; i++) { |
|
7 if (i > 18) |
|
8 g() = 2; |
|
9 } |
|
10 } |
|
11 try { |
|
12 test1(); |
|
13 assertEq(0, 1); |
|
14 } catch(e) { |
|
15 assertEq(e instanceof ReferenceError, true); |
|
16 } |
|
17 |
|
18 assertEq(calls, 1); |
|
19 |
|
20 function test2() { |
|
21 for (var i=0; i<20; i++) { |
|
22 if (i > 18) |
|
23 g()++; |
|
24 } |
|
25 } |
|
26 try { |
|
27 test2(); |
|
28 assertEq(0, 1); |
|
29 } catch(e) { |
|
30 assertEq(e instanceof ReferenceError, true); |
|
31 } |
|
32 assertEq(calls, 2); |
|
33 |
|
34 function test3() { |
|
35 var v1, v2, v3; |
|
36 var z = [1, 2, 3]; |
|
37 for (var i=0; i<15; i++) { |
|
38 if (i > 12) |
|
39 [v1, v2, g(), v3] = z |
|
40 } |
|
41 } |
|
42 try { |
|
43 test3(); |
|
44 assertEq(0, 1); |
|
45 } catch(e) { |
|
46 assertEq(e instanceof ReferenceError, true); |
|
47 } |
|
48 assertEq(calls, 3); |
|
49 |
|
50 function test4() { |
|
51 for (var i=0; i<20; i++) { |
|
52 if (i > 18) |
|
53 g() >>= 2; |
|
54 } |
|
55 } |
|
56 try { |
|
57 test4(); |
|
58 assertEq(0, 1); |
|
59 } catch(e) { |
|
60 assertEq(e instanceof ReferenceError, true); |
|
61 } |
|
62 |
|
63 assertEq(calls, 4); |