1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 20:17:44 +00:00

LibJS: Add all of the WeakMap.prototype methods (delete, get, has, set)

This commit is contained in:
Idan Horowitz 2021-06-12 05:37:09 +03:00 committed by Linus Groh
parent 39554f3787
commit 77c2db4183
9 changed files with 182 additions and 0 deletions

View file

@ -0,0 +1,34 @@
test("constructor properties", () => {
expect(WeakMap).toHaveLength(0);
expect(WeakMap.name).toBe("WeakMap");
});
describe("errors", () => {
test("invalid array iterators", () => {
[-100, Infinity, NaN, {}, 152n].forEach(value => {
expect(() => {
new WeakMap(value);
}).toThrowWithMessage(TypeError, "is not iterable");
});
});
test("called without new", () => {
expect(() => {
WeakMap();
}).toThrowWithMessage(TypeError, "WeakMap constructor must be called with 'new'");
});
});
describe("normal behavior", () => {
test("typeof", () => {
expect(typeof new WeakMap()).toBe("object");
});
test("constructor with single array of entries argument", () => {
var a = new WeakMap([
[{ a: 1 }, 1],
[{ a: 2 }, 2],
[{ a: 3 }, 3],
]);
expect(a instanceof WeakMap).toBeTrue();
});
});