// test whether splice works on arguments function splice_args () { args = arguments; return Array.prototype.splice.apply(args, [0, 5]); } var args; var O = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; var A = splice_args.apply(undefined, O) // args: [5, 6, 7, 8, 9] assertEq(args[0], 5); assertEq(args[1], 6); assertEq(args[2], 7); assertEq(args[3], 8); assertEq(args[4], 9); assertEq(args.length, 5); // A: [0, 1, 2, 3, 4] assertEq(A[0], 0); assertEq(A[1], 1); assertEq(A[2], 2); assertEq(A[3], 3); assertEq(A[4], 4); assertEq(A.length, 5); // O: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] assertEq(O[0], 0); assertEq(O[1], 1); assertEq(O[2], 2); assertEq(O[3], 3); assertEq(O[4], 4); assertEq(O[5], 5); assertEq(O[6], 6); assertEq(O[7], 7); assertEq(O[8], 8); assertEq(O[9], 9); assertEq(O.length, 10);