1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 01:37:35 +00:00

LibJS: Implement Error.prototype.name setter (#1776)

The MDN example for creating a custom error type in javascript uses:

    function CustomError(foo, message, fileName, lineNumber) {
        var instance = new Error(message, fileName, lineNumber);
        instance.name = 'CustomError';
        instance.foo = foo;
        Object.setPrototypeOf(instance, Object.getPrototypeOf(this));
        return instance;
    }

The name property on the Error prototype needs to be settable for
this to work properly.
This commit is contained in:
Brian Gianforcaro 2020-04-13 02:19:53 -07:00 committed by GitHub
parent 984c290ec0
commit 2a65db7c12
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 30 additions and 1 deletions

View file

@ -0,0 +1,12 @@
try {
var changedInstance = new Error("");
changedInstance.name = 'NewCustomError';
assert(changedInstance.name === "NewCustomError");
var normalInstance = new Error("");
assert(normalInstance.name === "Error");
console.log("PASS");
} catch (e) {
console.log("FAIL: " + e.message);
}