|
1 function g1(x, y) { |
|
2 return 0 & y; |
|
3 } |
|
4 var c1 = 0; |
|
5 function f1() { |
|
6 for (var i=0; i<100; i++) { |
|
7 g1(i, i); |
|
8 g1(i, {valueOf: function() { c1++; return 0; }}); |
|
9 } |
|
10 } |
|
11 f1(); |
|
12 assertEq(c1, 100); |
|
13 |
|
14 function g2(x, y) { |
|
15 ~y; |
|
16 } |
|
17 var c2 = 0; |
|
18 function f2() { |
|
19 for (var i=0; i<100; i++) { |
|
20 g2(i, i); |
|
21 g2(i, {valueOf: function() { c2++; return 0; }}); |
|
22 } |
|
23 } |
|
24 f2(); |
|
25 assertEq(c2, 100); |
|
26 |
|
27 function g3(x, y) { |
|
28 return 0 >>> y; |
|
29 } |
|
30 var c3 = 0; |
|
31 function f3() { |
|
32 for (var i=0; i<100; i++) { |
|
33 g3(i, i); |
|
34 g3(i, {valueOf: function() { c3++; return 0; }}); |
|
35 } |
|
36 } |
|
37 f3(); |
|
38 assertEq(c3, 100); |