| function paramCount() { |
| return arguments.length |
| } |
| |
| function Bar(size, order) { |
| this.size = size; |
| Bar.checkOrder(order); |
| } |
| |
| Bar.order = 0; |
| Bar.hasOrderProblem = false; |
| Bar.checkOrder = function (expectedOrder) { |
| var curOrder = Bar.order++; |
| Bar.hasOrderProblem = Bar.hasOrderProblem || curOrder !== expectedOrder; |
| }; |
| |
| Bar.startNewTest = function () { |
| Bar.hasOrderProblem = false; |
| Bar.order = 0; |
| return true; |
| }; |
| |
| |
| Bar.prototype.test = function (order, dummy /*, args */) { |
| Bar.checkOrder(order); |
| return dummy === 1 && (arguments.length - 2) === this.size; |
| }; |
| Bar.prototype.test2 = Bar.prototype.test; |
| |
| function test3(bar, dummy /*, args */) { |
| return dummy === 1 && (arguments.length - 2) === bar.size; |
| } |
| |
| var obj = { |
| test: function (size /*, args */) { |
| return (arguments.length - 1) === size; |
| } |
| }; |
| |
| function testNativeVarargWithFunLit(/* args, f */) { |
| var args = Array.prototype.slice.call(arguments, 0, arguments.length - 1); |
| var f = arguments[arguments.length - 1]; |
| return typeof f === "function" && f(args); |
| } |
| |
| function sumOfParameters() { |
| var size = arguments.length; |
| var result = 0; |
| for (var i = 0; i < size; i++) { |
| result += arguments[i]; |
| } |
| return result; |
| } |
| |
| function sumFunValuesOnParameters() { |
| var size = arguments.length - 1; |
| var f = arguments[arguments.length - 1]; |
| var result = 0; |
| for (var i = 0; i < size; i++) { |
| var u = arguments[i]; |
| result += f(u); |
| } |
| return result; |
| } |
| |
| function idArrayVarArg() { |
| var args = Array.prototype.slice.call(arguments, 0, arguments.length); |
| return args; |
| } |
| |
| function join(...args) { |
| return args.join("-"); |
| } |
| |
| function mapJoin(f, ...args) { |
| return args.map(x => f(x)).join("-") |
| } |