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