mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-26 03:42:38 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			42 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 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();
 | |
|     });
 | |
| });
 | |
| 
 | |
| describe("regressions", () => {
 | |
|     test("missing key/value properties on iterable entry", () => {
 | |
|         expect(() => {
 | |
|             new WeakMap([{}]);
 | |
|         }).toThrowWithMessage(TypeError, "undefined is not an object");
 | |
|     });
 | |
| });
 | 
