mirror of
				https://github.com/LadybirdBrowser/ladybird.git
				synced 2025-10-30 21:01:00 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			35 lines
		
	
	
	
		
			748 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
	
		
			748 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| test("extending function", () => {
 | |
|   class A extends function () {
 | |
|     this.foo = 10;
 | |
|   } {}
 | |
| 
 | |
|   expect(new A().foo).toBe(10);
 | |
| });
 | |
| 
 | |
| test("extending null", () => {
 | |
|   class A extends null {}
 | |
| 
 | |
|   expect(Object.getPrototypeOf(A.prototype)).toBeNull();
 | |
| 
 | |
|   expect(() => {
 | |
|     new A();
 | |
|   }).toThrowWithMessage(ReferenceError, "|this| has not been initialized");
 | |
| });
 | |
| 
 | |
| test("extending String", () => {
 | |
|   class MyString extends String {}
 | |
| 
 | |
|   const ms = new MyString("abc");
 | |
|   expect(ms).toBeInstanceOf(MyString);
 | |
|   expect(ms).toBeInstanceOf(String);
 | |
|   expect(ms.charAt(1)).toBe("b");
 | |
| 
 | |
|   class MyString2 extends MyString {
 | |
|     charAt(i) {
 | |
|       return `#${super.charAt(i)}`;
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   const ms2 = new MyString2("abc");
 | |
|   expect(ms2.charAt(1)).toBe("#b");
 | |
| });
 | 
