mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 00:12:44 +00:00 
			
		
		
		
	LibJS: Set prototype of GlobalObject to ObjectPrototype
As the global object is constructed and initialized in a different way than most other objects we were not setting its prototype! This made things like "globalThis.toString()" fail unexpectedly.
This commit is contained in:
		
							parent
							
								
									965050796f
								
							
						
					
					
						commit
						06a3625545
					
				
					 2 changed files with 4 additions and 0 deletions
				
			
		|  | @ -94,6 +94,8 @@ void GlobalObject::initialize() | |||
|     static_cast<FunctionPrototype*>(m_function_prototype)->initialize(*this); | ||||
|     static_cast<ObjectPrototype*>(m_object_prototype)->initialize(*this); | ||||
| 
 | ||||
|     set_prototype(m_object_prototype); | ||||
| 
 | ||||
| #define __JS_ENUMERATE(ClassName, snake_name, PrototypeName, ConstructorName) \ | ||||
|     if (!m_##snake_name##_prototype)                                          \ | ||||
|         m_##snake_name##_prototype = heap().allocate<PrototypeName>(*this, *this); | ||||
|  |  | |||
|  | @ -15,4 +15,6 @@ test("result for various object types", () => { | |||
|     expect(oToString(new Date())).toBe("[object Date]"); | ||||
|     expect(oToString(new RegExp())).toBe("[object RegExp]"); | ||||
|     expect(oToString({})).toBe("[object Object]"); | ||||
| 
 | ||||
|     expect(globalThis.toString()).toBe("[object Object]"); | ||||
| }); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Linus Groh
						Linus Groh