bug1762575-1.js (1082B)
1 // Tests on mapped arguments objects. 2 3 function ArraySlice() { 4 Object.defineProperty(arguments, 0, {value: 1}); 5 var result = Array.prototype.slice.call(arguments); 6 assertEq(result[0], 1); 7 } 8 ArraySlice(0); 9 10 function ArrayShift() { 11 Object.defineProperty(arguments, 0, {value: 1}); 12 var result = Array.prototype.shift.call(arguments); 13 assertEq(result, 1); 14 } 15 ArrayShift(0); 16 17 function ArrayPop() { 18 Object.defineProperty(arguments, 0, {value: 1}); 19 var result = Array.prototype.pop.call(arguments); 20 assertEq(result, 1); 21 } 22 ArrayPop(0); 23 24 function ArrayJoin() { 25 Object.defineProperty(arguments, 0, {value: 1}); 26 var result = Array.prototype.join.call(arguments); 27 assertEq(result, "1"); 28 } 29 ArrayJoin(0); 30 31 function ArrayIncludes() { 32 Object.defineProperty(arguments, 0, {value: 1}); 33 var result = Array.prototype.includes.call(arguments, 1); 34 assertEq(result, true); 35 } 36 ArrayIncludes(0); 37 38 function FunctionApply() { 39 Object.defineProperty(arguments, 0, {value: 1}); 40 var id = x => x; 41 var result = id.apply(null, arguments); 42 assertEq(result, 1); 43 } 44 FunctionApply(0);