| function g1(x, y) { |
| return 0 & y; |
| } |
| var c1 = 0; |
| function f1() { |
| for (var i=0; i<100; i++) { |
| g1(i, i); |
| g1(i, {valueOf: function() { c1++; return 0; }}); |
| } |
| } |
| f1(); |
| assertEq(c1, 100); |
| |
| function g2(x, y) { |
| ~y; |
| } |
| var c2 = 0; |
| function f2() { |
| for (var i=0; i<100; i++) { |
| g2(i, i); |
| g2(i, {valueOf: function() { c2++; return 0; }}); |
| } |
| } |
| f2(); |
| assertEq(c2, 100); |
| |
| function g3(x, y) { |
| return 0 >>> y; |
| } |
| var c3 = 0; |
| function f3() { |
| for (var i=0; i<100; i++) { |
| g3(i, i); |
| g3(i, {valueOf: function() { c3++; return 0; }}); |
| } |
| } |
| f3(); |
| assertEq(c3, 100); |