1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/jit-test/tests/basic/splice-on-arguments.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,39 @@ 1.4 +// test whether splice works on arguments 1.5 + 1.6 +function splice_args () { 1.7 + args = arguments; 1.8 + return Array.prototype.splice.apply(args, [0, 5]); 1.9 +} 1.10 + 1.11 +var args; 1.12 +var O = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; 1.13 +var A = splice_args.apply(undefined, O) 1.14 + 1.15 +// args: [5, 6, 7, 8, 9] 1.16 +assertEq(args[0], 5); 1.17 +assertEq(args[1], 6); 1.18 +assertEq(args[2], 7); 1.19 +assertEq(args[3], 8); 1.20 +assertEq(args[4], 9); 1.21 +assertEq(args.length, 5); 1.22 + 1.23 +// A: [0, 1, 2, 3, 4] 1.24 +assertEq(A[0], 0); 1.25 +assertEq(A[1], 1); 1.26 +assertEq(A[2], 2); 1.27 +assertEq(A[3], 3); 1.28 +assertEq(A[4], 4); 1.29 +assertEq(A.length, 5); 1.30 + 1.31 +// O: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 1.32 +assertEq(O[0], 0); 1.33 +assertEq(O[1], 1); 1.34 +assertEq(O[2], 2); 1.35 +assertEq(O[3], 3); 1.36 +assertEq(O[4], 4); 1.37 +assertEq(O[5], 5); 1.38 +assertEq(O[6], 6); 1.39 +assertEq(O[7], 7); 1.40 +assertEq(O[8], 8); 1.41 +assertEq(O[9], 9); 1.42 +assertEq(O.length, 10);