arguments-4.js (568B)
1 load(libdir + "asserts.js"); 2 3 // 'arguments' is allowed in a non-arrow-function with a rest param. 4 assertEq((function(...rest) { return (x => arguments)(1, 2)})().length, 0); 5 6 function restAndArgs(...rest) { 7 return () => eval("arguments"); 8 } 9 10 var args = restAndArgs(1, 2, 3)(); 11 assertEq(args.length, 3); 12 assertEq(args[0], 1); 13 assertEq(args[1], 2); 14 assertEq(args[2], 3); 15 16 (function() { 17 return ((...rest) => { 18 assertDeepEq(rest, [1, 2, 3]); 19 assertEq(arguments.length, 2); 20 assertEq(eval("arguments").length, 2); 21 })(1, 2, 3); 22 })(4, 5);