IndexError.js (1313B)
1 "use strict"; 2 3 Object.defineProperty(exports, "__esModule", { 4 value: true 5 }); 6 exports.IndexError = IndexError; 7 8 /** 9 * Create a range error with the message: 10 * 'Index out of range (index < min)' 11 * 'Index out of range (index < max)' 12 * 13 * @param {number} index The actual index 14 * @param {number} [min=0] Minimum index (included) 15 * @param {number} [max] Maximum index (excluded) 16 * @extends RangeError 17 */ 18 function IndexError(index, min, max) { 19 if (!(this instanceof IndexError)) { 20 throw new SyntaxError('Constructor must be called with the new operator'); 21 } 22 23 this.index = index; 24 25 if (arguments.length < 3) { 26 this.min = 0; 27 this.max = min; 28 } else { 29 this.min = min; 30 this.max = max; 31 } 32 33 if (this.min !== undefined && this.index < this.min) { 34 this.message = 'Index out of range (' + this.index + ' < ' + this.min + ')'; 35 } else if (this.max !== undefined && this.index >= this.max) { 36 this.message = 'Index out of range (' + this.index + ' > ' + (this.max - 1) + ')'; 37 } else { 38 this.message = 'Index out of range (' + this.index + ')'; 39 } 40 41 this.stack = new Error().stack; 42 } 43 44 IndexError.prototype = new RangeError(); 45 IndexError.prototype.constructor = RangeError; 46 IndexError.prototype.name = 'IndexError'; 47 IndexError.prototype.isIndexError = true;