js/src/tests/ecma_5/Exceptions/error-property-enumerability.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/js/src/tests/ecma_5/Exceptions/error-property-enumerability.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,30 @@
     1.4 +/*
     1.5 + * Any copyright is dedicated to the Public Domain.
     1.6 + * http://creativecommons.org/licenses/publicdomain/
     1.7 + */
     1.8 +
     1.9 +var errors = ["Error", "EvalError", "RangeError", "ReferenceError",
    1.10 +              "SyntaxError", "TypeError", "URIError"];
    1.11 +
    1.12 +for (var i = 0; i < errors.length; i++) {
    1.13 +  var error = this[errors[i]];
    1.14 +
    1.15 +  var desc = Object.getOwnPropertyDescriptor(error.prototype, "name");
    1.16 +  assertEq(!!desc, true, errors[i] + ".prototype.name should exist");
    1.17 +  assertEq((desc || {}).enumerable, false, errors[i] + ".prototype.name should not be enumerable");
    1.18 +
    1.19 +  desc = Object.getOwnPropertyDescriptor(error.prototype, "message");
    1.20 +  assertEq(!!desc, true, errors[i] + ".prototype.message should exist");
    1.21 +  assertEq((desc || {}).enumerable, false, errors[i] + ".prototype.message should not be enumerable");
    1.22 +
    1.23 +  var instance = new error;
    1.24 +  desc = Object.getOwnPropertyDescriptor(instance, "message");
    1.25 +  assertEq(!!desc, false, "new " + errors[i] + ".message should not exist");
    1.26 +
    1.27 +  instance = new error("a message");
    1.28 +  desc = Object.getOwnPropertyDescriptor(instance, "message");
    1.29 +  assertEq(!!desc, true, "new " + errors[i] + "(...).message should exist");
    1.30 +  assertEq((desc || {}).enumerable, false, "new " + errors[i] + "(...).message should not be enumerable");
    1.31 +}
    1.32 +
    1.33 +reportCompare(true, true);

mercurial