js/src/jit-test/tests/baseline/funcall.js

branch
TOR_BUG_3246
changeset 7
129ffea94266
equal deleted inserted replaced
-1:000000000000 0:ebf11a646922
1 function test1() {
2 var f = function() { return 1; };
3
4 for (var i=0; i<25; i++) {
5 f.call();
6 if (i > 20)
7 f = Math.abs;
8 }
9 }
10 test1();
11
12 var origCall = Function.prototype.call;
13
14 function test2() {
15 var f = function() { return 1; };
16 var c = 0;
17 for (var i=0; i<25; i++) {
18 f.call();
19 if (i > 20)
20 Function.prototype.call = function() { c++; };
21 }
22 assertEq(c, 3);
23 }
24 test2();
25 Function.prototype.call = origCall;
26
27 function test3() {
28 var f = function() { return 1; };
29 for (var i=0; i<25; i++) {
30 f.call();
31 if (i > 20)
32 Function.prototype.call = undefined;
33 }
34 }
35 try {
36 test3();
37 assertEq(0, 1);
38 } catch(e) {}
39
40 Function.prototype.call = origCall;
41
42 function test4() {
43 var f = function(a, b, c) {
44 assertEq(arguments.length, 1);
45 assertEq(a, 1);
46 assertEq(b, undefined);
47 assertEq(c, undefined);
48 return 1;
49 };
50 for (var i=0; i<25; i++) {
51 f.call(null, 1);
52 }
53 }
54 test4();

mercurial