var a = 1; function rest() { var b = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : a; assert.equal(b, 1); } rest(undefined, 2); function rest2() { var b = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : a; assert.equal(arguments.length <= 1 ? undefined : arguments[1], 2); } rest2(undefined, 2); function rest3() { var b = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : a; assert.equal(arguments.length <= 1 ? 0 : arguments.length - 1, 1); } rest3(undefined, 2);