Implementing TypeError and TypeError.prototype built-ins. Fixing Error.prototype.toString implementation.

This commit is contained in:
Ruben Ayrapetyan
2014-10-29 21:15:36 +03:00
parent 4e6f5c7716
commit 6991b26e04
11 changed files with 470 additions and 77 deletions
+44 -2
View File
@@ -14,19 +14,61 @@
var e;
/* Error */
e = new Error ();
assert (e.name === "Error");
assert (e.message === "");
assert (e.toString() === "Error: ");
assert (e.toString() === "Error");
e = new Error("some message");
assert (e.name === "Error");
assert (e.message === "some message");
assert (e.toString() === "Error: some message");
e.name = "";
assert (e.toString() === "some message");
e.message = "";
assert (e.toString() === "");
assert (Error.prototype.toString !== Object.prototype.toString);
assert (Error.prototype.constructor === Error);
assert (Error.prototype.name === "Error");
assert (Error.prototype.message === "");
assert (Error.prototype.toString() === "Error: ");
assert (Error.prototype.toString() === "Error");
/* TypeError */
e = new TypeError ();
assert (e.name === "TypeError");
assert (e.message === "");
assert (e.toString() === "TypeError");
e = new TypeError("some message");
assert (e.name === "TypeError");
assert (e.message === "some message");
assert (e.toString() === "TypeError: some message");
e.name = "";
assert (e.toString() === "some message");
e.message = "";
assert (e.toString() === "");
assert (TypeError.prototype.toString === Error.prototype.toString);
assert (TypeError.prototype.constructor === TypeError);
assert (TypeError.prototype.name === "TypeError");
assert (TypeError.prototype.message === "");
assert (TypeError.prototype.toString() === "TypeError");
try
{
null[1] = 'abcd';
assert (false);
}
catch (e)
{
assert(e instanceof TypeError);
assert(e instanceof Error);
assert(e instanceof Object);
assert(!(e instanceof Function));
}