fun-call-or-apply.js (1211B)
1 // Tests for JSOp::FunCall and JSOp::FunApply in optional calls. 2 3 function f1() { 4 return 0; 5 } 6 function f2(a) { 7 return a * 2; 8 } 9 10 function funCall(fn) { 11 // Without arguments. 12 for (var i = 0; i < 100; ++i) { 13 assertEq(f1?.call(), 0); 14 } 15 16 // Only this-arg. 17 for (var i = 0; i < 100; ++i) { 18 assertEq(f1?.call(null), 0); 19 } 20 21 // With one arg. 22 for (var i = 0; i < 100; ++i) { 23 assertEq(f1?.call(null, 1), 0); 24 assertEq(f2?.call(null, 5), 10); 25 } 26 27 // With multiple args. 28 for (var i = 0; i < 100; ++i) { 29 assertEq(f1?.call(null, 1, 2, 3), 0); 30 assertEq(f2?.call(null, 4, 5, 6), 8); 31 } 32 } 33 34 for (var i = 0; i < 5; ++i) { funCall(); } 35 36 function funApply(fn) { 37 // Without arguments. 38 for (var i = 0; i < 100; ++i) { 39 assertEq(f1?.apply(), 0); 40 } 41 42 // Only this-arg. 43 for (var i = 0; i < 100; ++i) { 44 assertEq(f1?.apply(null), 0); 45 } 46 47 // With one arg. 48 for (var i = 0; i < 100; ++i) { 49 assertEq(f1?.apply(null, [1]), 0); 50 assertEq(f2?.apply(null, [5]), 10); 51 } 52 53 // With multiple args. 54 for (var i = 0; i < 100; ++i) { 55 assertEq(f1?.apply(null, [1, 2, 3]), 0); 56 assertEq(f2?.apply(null, [4, 5, 6]), 8); 57 } 58 } 59 60 for (var i = 0; i < 5; ++i) { funApply(); }