1 /* ***** BEGIN LICENSE BLOCK ***** 2 * Version: MPL 1.1/GPL 2.0/LGPL 2.1 3 * 4 * The contents of this file are subject to the Mozilla Public License Version 5 * 1.1 (the "License"); you may not use this file except in compliance with 6 * the License. You may obtain a copy of the License at 7 * http://www.mozilla.org/MPL/ 8 * 9 * Software distributed under the License is distributed on an "AS IS" basis, 10 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 11 * for the specific language governing rights and limitations under the 12 * License. 13 * 14 * The Original Code is MozMill Test code. 15 * 16 * The Initial Developer of the Original Code is the Mozilla Foundation. 17 * Portions created by the Initial Developer are Copyright (C) 2011 18 * the Initial Developer. All Rights Reserved. 19 * 20 * Contributor(s): 21 * Henrik Skupin <mail@hskupin.info> (Original Author) 22 * 23 * Alternatively, the contents of this file may be used under the terms of 24 * either the GNU General Public License Version 2 or later (the "GPL"), or 25 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), 26 * in which case the provisions of the GPL or the LGPL are applicable instead 27 * of those above. If you wish to allow use of your version of this file only 28 * under the terms of either the GPL or the LGPL, and not to allow others to 29 * use your version of this file under the terms of the MPL, indicate your 30 * decision by deleting the provisions above and replace them with the notice 31 * and other provisions required by the GPL or the LGPL. If you do not delete 32 * the provisions above, a recipient may use your version of this file under 33 * the terms of any one of the MPL, the GPL or the LGPL. 34 * 35 * ***** END LICENSE BLOCK ***** */ 36 37 /** 38 * @name errors 39 * @namespace Defines error classes to be used for exceptions. 40 */ 41 var errors = exports; 42 43 44 /** 45 * All methods for fatal assertions as implemented in assertions.Assert throw 46 * an AssertionError as exception type if a test fails. 47 * 48 * @class Error class which is used by Assert to raise an assertion exception. 49 * @constructor 50 * @memberOf errors 51 * @see assertions.Assert 52 * @param {object} aResult 53 * Test result details used for error reporting. 54 * <dl> 55 * <dd>fileName</dd> 56 * <dt>Name of the file in which the assertion failed.</dt> 57 * <dd>function</dd> 58 * <dt>Function in which the assertion failed.</dt> 59 * <dd>lineNumber</dd> 60 * <dt>Line number of the file in which the assertion failed.</dt> 61 * <dd>message</dd> 62 * <dt>Message why the assertion failed.</dt> 63 * </dl> 64 * @returns {AssertionError} Instance of the AssertionError class. 65 */ 66 function AssertionError(aResult) { 67 let error = Object.create(AssertionError.prototype); 68 69 error.message = aResult.message; 70 error.fileName = aResult.fileName; 71 error.lineNumber = aResult.lineNumber; 72 error.function = aResult.function; 73 74 return error; 75 } 76 77 AssertionError.prototype = Object.create(Error.prototype, 78 { 79 constructor: { value: AssertionError }, 80 name: { value: "AssertionError" } 81 }); 82 83 84 // Export of classes 85 errors.AssertionError = AssertionError; 86