inline-getelem-args.js (1543B)
1 function cat() { 2 var res = ""; 3 for (var i = 0; i < arguments.length; i++) 4 res += arguments[i]; 5 return res; 6 } 7 8 function cat_m1(ion) { 9 var res = ""; 10 for (var i = (ion ? -1 : 0); i < arguments.length; i++) 11 res += arguments[i]; 12 return res; 13 } 14 15 function cat_p1(ion) { 16 var res = ""; 17 for (var i = 0; i < arguments.length + (ion ? 1 : 0); i++) 18 res += arguments[i]; 19 return res; 20 } 21 22 function sum() { 23 var res = 0; 24 for (var i = 0; i < arguments.length; i++) 25 res += arguments[i]; 26 return res; 27 } 28 29 function wrapper() { 30 var res; 31 var i6 = { valueOf: () => 6 }, 32 i8 = 8.5, 33 s2 = { toString: () => "2" }, 34 s4 = {}, 35 s6 = "6", 36 s7 = undefined, 37 s8 = null; 38 for (var b = true; b; b = !inIon()) { 39 res = sum(1,2,3,4,5,i6,7,i8,9,10); 40 assertEq(res, 55.5); 41 42 res = cat(true,s2,3,s4,5,s6,s7,s8); 43 assertEq(res, "true23[object Object]56undefinednull"); 44 45 ion = inIon(); 46 if (typeof ion !== "boolean") break; 47 res = cat_m1(ion,1,s2,3,s4,5,s6,s7,s8); 48 if (ion) assertEq(res, "undefinedtrue123[object Object]56undefinednull"); 49 else assertEq(res, "false123[object Object]56undefinednull"); 50 51 ion = inIon(); 52 if (typeof ion !== "boolean") break; 53 res = cat_p1(ion,1,s2,3,s4,5,s6,s7,s8); 54 if (ion) assertEq(res, "true123[object Object]56undefinednullundefined"); 55 else assertEq(res, "false123[object Object]56undefinednull"); 56 } 57 } 58 59 wrapper();