michael@0: function f() { michael@0: var args = arguments, r; michael@0: michael@0: for (var i = 0; i < args.length; i++) michael@0: r = args[i]; michael@0: michael@0: return r; michael@0: } michael@0: michael@0: assertEq(f.apply(null, [1, 2, 3, 4, 5, 6]), 6) michael@0: assertEq(f.apply(null, [1, 2, 3, 4, 5]), 5) michael@0: assertEq(f.apply(null, [1, 2, 3, 4]), 4) michael@0: michael@0: function g(arg) { michael@0: var r; michael@0: for (var i = 0; i < arg.length; i++) michael@0: r = arg[i]; michael@0: return r; michael@0: } michael@0: michael@0: assertEq(g((function () arguments).call(null, 1, 2, 3)), 3); michael@0: assertEq(g(new Float32Array(3)), 0.0); michael@0: assertEq(g([1, 2, 3, 4]), 4);