mirror of
https://github.com/denoland/deno.git
synced 2024-11-21 15:04:11 -05:00
29a075de2b
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>
32 lines
994 B
TypeScript
32 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");
|
|
});
|