'use strict'; /** * Create a syntax error with the message: * 'Wrong number of arguments in function ( provided, - expected)' * @param {String} fn Function name * @param {Number} count Actual argument count * @param {Number} min Minimum required argument count * @param {Number} [max] Maximum required argument count * @extends Error */ function ArgumentsError(fn, count, min, max) { if (!(this instanceof ArgumentsError)) { throw new SyntaxError('Constructor must be called with the new operator'); } this.fn = fn; this.count = count; this.min = min; this.max = max; this.message = 'Wrong number of arguments in function ' + fn + ' (' + count + ' provided, ' + min + ((max != undefined) ? ('-' + max) : '') + ' expected)'; this.stack = (new Error()).stack; } ArgumentsError.prototype = new Error(); ArgumentsError.prototype.constructor = Error; ArgumentsError.prototype.name = 'ArgumentsError'; module.exports = ArgumentsError;