1// Copyright JS Foundation and other contributors, http://js.foundation 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15var e; 16 17/* Error */ 18e = new Error (); 19assert (e.name === "Error"); 20assert (e.message === ""); 21assert (e.toString() === "Error"); 22 23e = new Error("some message"); 24assert (e.name === "Error"); 25assert (e.message === "some message"); 26assert (e.toString() === "Error: some message"); 27 28e.name = ""; 29assert (e.toString() === "some message"); 30e.message = ""; 31assert (e.toString() === ""); 32 33assert (Error.prototype.toString !== Object.prototype.toString); 34assert (Error.prototype.constructor === Error); 35assert (Error.prototype.name === "Error"); 36assert (Error.prototype.message === ""); 37assert (Error.prototype.toString() === "Error"); 38 39/* TypeError */ 40e = new TypeError (); 41assert (e.name === "TypeError"); 42assert (e.message === ""); 43assert (e.toString() === "TypeError"); 44 45e = new TypeError("some message"); 46assert (e.name === "TypeError"); 47assert (e.message === "some message"); 48assert (e.toString() === "TypeError: some message"); 49 50e.name = ""; 51assert (e.toString() === "some message"); 52e.message = ""; 53assert (e.toString() === ""); 54 55assert (TypeError.prototype.toString === Error.prototype.toString); 56assert (TypeError.prototype.constructor === TypeError); 57assert (TypeError.prototype.name === "TypeError"); 58assert (TypeError.prototype.message === ""); 59assert (TypeError.prototype.toString() === "TypeError"); 60 61try 62{ 63 null[1] = 'abcd'; 64 65 assert (false); 66} 67catch (e) 68{ 69 assert(e instanceof TypeError); 70 assert(e instanceof Error); 71 assert(e instanceof Object); 72 73 assert(!(e instanceof Function)); 74} 75 76 77/* ReferenceError */ 78e = new ReferenceError (); 79assert (e.name === "ReferenceError"); 80assert (e.message === ""); 81assert (e.toString() === "ReferenceError"); 82 83e = new ReferenceError("some message"); 84assert (e.name === "ReferenceError"); 85assert (e.message === "some message"); 86assert (e.toString() === "ReferenceError: some message"); 87 88e.name = ""; 89assert (e.toString() === "some message"); 90e.message = ""; 91assert (e.toString() === ""); 92 93assert (ReferenceError.prototype.toString === Error.prototype.toString); 94assert (ReferenceError.prototype.constructor === ReferenceError); 95assert (ReferenceError.prototype.name === "ReferenceError"); 96assert (ReferenceError.prototype.message === ""); 97assert (ReferenceError.prototype.toString() === "ReferenceError"); 98 99try 100{ 101 var a = non_existing_variable; 102 103 assert (false); 104} 105catch (e) 106{ 107 assert(e instanceof ReferenceError); 108 assert(e instanceof Error); 109 assert(e instanceof Object); 110 111 assert(!(e instanceof Function)); 112} 113 114/* EvalError */ 115e = new EvalError (); 116assert (e.name === "EvalError"); 117assert (e.message === ""); 118assert (e.toString() === "EvalError"); 119 120e = new EvalError("some message"); 121assert (e.name === "EvalError"); 122assert (e.message === "some message"); 123assert (e.toString() === "EvalError: some message"); 124 125e.name = ""; 126assert (e.toString() === "some message"); 127e.message = ""; 128assert (e.toString() === ""); 129 130assert (EvalError.prototype.toString === Error.prototype.toString); 131assert (EvalError.prototype.constructor === EvalError); 132assert (EvalError.prototype.name === "EvalError"); 133assert (EvalError.prototype.message === ""); 134assert (EvalError.prototype.toString() === "EvalError"); 135 136/* RangeError */ 137e = new RangeError (); 138assert (e.name === "RangeError"); 139assert (e.message === ""); 140assert (e.toString() === "RangeError"); 141 142e = new RangeError("some message"); 143assert (e.name === "RangeError"); 144assert (e.message === "some message"); 145assert (e.toString() === "RangeError: some message"); 146 147e.name = ""; 148assert (e.toString() === "some message"); 149e.message = ""; 150assert (e.toString() === ""); 151 152assert (RangeError.prototype.toString === Error.prototype.toString); 153assert (RangeError.prototype.constructor === RangeError); 154assert (RangeError.prototype.name === "RangeError"); 155assert (RangeError.prototype.message === ""); 156assert (RangeError.prototype.toString() === "RangeError"); 157 158/* SyntaxError */ 159e = new SyntaxError (); 160assert (e.name === "SyntaxError"); 161assert (e.message === ""); 162assert (e.toString() === "SyntaxError"); 163 164e = new SyntaxError("some message"); 165assert (e.name === "SyntaxError"); 166assert (e.message === "some message"); 167assert (e.toString() === "SyntaxError: some message"); 168 169e.name = ""; 170assert (e.toString() === "some message"); 171e.message = ""; 172assert (e.toString() === ""); 173 174assert (SyntaxError.prototype.toString === Error.prototype.toString); 175assert (SyntaxError.prototype.constructor === SyntaxError); 176assert (SyntaxError.prototype.name === "SyntaxError"); 177assert (SyntaxError.prototype.message === ""); 178assert (SyntaxError.prototype.toString() === "SyntaxError"); 179 180/* URIError */ 181e = new URIError (); 182assert (e.name === "URIError"); 183assert (e.message === ""); 184assert (e.toString() === "URIError"); 185 186e = new URIError("some message"); 187assert (e.name === "URIError"); 188assert (e.message === "some message"); 189assert (e.toString() === "URIError: some message"); 190 191e.name = ""; 192assert (e.toString() === "some message"); 193e.message = ""; 194assert (e.toString() === ""); 195 196assert (URIError.prototype.toString === Error.prototype.toString); 197assert (URIError.prototype.constructor === URIError); 198assert (URIError.prototype.name === "URIError"); 199assert (URIError.prototype.message === ""); 200assert (URIError.prototype.toString() === "URIError"); 201