|  | 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("-") | 
|  | } |