diff options
Diffstat (limited to 'js/src/tests/ecma_5/Exceptions')
4 files changed, 58 insertions, 0 deletions
diff --git a/js/src/tests/ecma_5/Exceptions/browser.js b/js/src/tests/ecma_5/Exceptions/browser.js new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/js/src/tests/ecma_5/Exceptions/browser.js diff --git a/js/src/tests/ecma_5/Exceptions/error-expando-reconfigure.js b/js/src/tests/ecma_5/Exceptions/error-expando-reconfigure.js new file mode 100644 index 000000000..c70ff5f85 --- /dev/null +++ b/js/src/tests/ecma_5/Exceptions/error-expando-reconfigure.js @@ -0,0 +1,28 @@ +/* + * Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/licenses/publicdomain/ + */ + +var gTestfile = "error-expando-reconfigure.js" +//----------------------------------------------------------------------------- +var BUGNUMBER = 961494; +var summary = + "Reconfiguring the first expando property added to an Error object " + + "shouldn't assert"; + +print(BUGNUMBER + ": " + summary); + +/************** + * BEGIN TEST * + **************/ + +var err = new Error(); // no message argument => no err.message property +err.expando = 17; +Object.defineProperty(err, "expando", { configurable: false }); + +/******************************************************************************/ + +if (typeof reportCompare === "function") + reportCompare(true, true); + +print("Tests complete"); diff --git a/js/src/tests/ecma_5/Exceptions/error-property-enumerability.js b/js/src/tests/ecma_5/Exceptions/error-property-enumerability.js new file mode 100644 index 000000000..c6674cfc5 --- /dev/null +++ b/js/src/tests/ecma_5/Exceptions/error-property-enumerability.js @@ -0,0 +1,30 @@ +/* + * Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/licenses/publicdomain/ + */ + +var errors = ["Error", "EvalError", "RangeError", "ReferenceError", + "SyntaxError", "TypeError", "URIError"]; + +for (var i = 0; i < errors.length; i++) { + var error = this[errors[i]]; + + var desc = Object.getOwnPropertyDescriptor(error.prototype, "name"); + assertEq(!!desc, true, errors[i] + ".prototype.name should exist"); + assertEq((desc || {}).enumerable, false, errors[i] + ".prototype.name should not be enumerable"); + + desc = Object.getOwnPropertyDescriptor(error.prototype, "message"); + assertEq(!!desc, true, errors[i] + ".prototype.message should exist"); + assertEq((desc || {}).enumerable, false, errors[i] + ".prototype.message should not be enumerable"); + + var instance = new error; + desc = Object.getOwnPropertyDescriptor(instance, "message"); + assertEq(!!desc, false, "new " + errors[i] + ".message should not exist"); + + instance = new error("a message"); + desc = Object.getOwnPropertyDescriptor(instance, "message"); + assertEq(!!desc, true, "new " + errors[i] + "(...).message should exist"); + assertEq((desc || {}).enumerable, false, "new " + errors[i] + "(...).message should not be enumerable"); +} + +reportCompare(true, true); diff --git a/js/src/tests/ecma_5/Exceptions/shell.js b/js/src/tests/ecma_5/Exceptions/shell.js new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/js/src/tests/ecma_5/Exceptions/shell.js |