deno/tests/unit/dom_exception_test.ts
ud2 29a075de2b
chore(ext/web): use Error.captureStackTrace in DOMException constructor (#23986)
This makes `DOMException`'s `stack` property behave the same as native
errors' – `stack` is now an own accessor property on every instance, and
the getter calls `Error.prepareStackTrace`.

Upgrades `deno_core` to 0.284.0.
---------

Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-06-05 01:09:13 +02:00

33 lines
994 B
TypeScript

// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
import {
assert,
assertEquals,
assertNotEquals,
assertStringIncludes,
} from "./test_util.ts";
Deno.test(function customInspectFunction() {
const exception = new DOMException("test");
assertEquals(Deno.inspect(exception), exception.stack);
assertStringIncludes(Deno.inspect(DOMException.prototype), "DOMException");
});
Deno.test(function nameToCodeMappingPrototypeAccess() {
const newCode = 100;
const objectPrototype = Object.prototype as unknown as {
pollution: number;
};
objectPrototype.pollution = newCode;
assertNotEquals(newCode, new DOMException("test", "pollution").code);
Reflect.deleteProperty(objectPrototype, "pollution");
});
Deno.test(function hasStackAccessor() {
const e2 = new DOMException("asdf");
const desc = Object.getOwnPropertyDescriptor(e2, "stack");
assert(desc);
assert(typeof desc.get === "function");
assert(typeof desc.set === "function");
});