mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 09:02:43 +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<FunctionPrototype*>(m_function_prototype)->initialize(*this); | ||||||
|     static_cast<ObjectPrototype*>(m_object_prototype)->initialize(*this); |     static_cast<ObjectPrototype*>(m_object_prototype)->initialize(*this); | ||||||
| 
 | 
 | ||||||
|  |     set_prototype(m_object_prototype); | ||||||
|  | 
 | ||||||
| #define __JS_ENUMERATE(ClassName, snake_name, PrototypeName, ConstructorName) \ | #define __JS_ENUMERATE(ClassName, snake_name, PrototypeName, ConstructorName) \ | ||||||
|     if (!m_##snake_name##_prototype)                                          \ |     if (!m_##snake_name##_prototype)                                          \ | ||||||
|         m_##snake_name##_prototype = heap().allocate<PrototypeName>(*this, *this); |         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 Date())).toBe("[object Date]"); | ||||||
|     expect(oToString(new RegExp())).toBe("[object RegExp]"); |     expect(oToString(new RegExp())).toBe("[object RegExp]"); | ||||||
|     expect(oToString({})).toBe("[object Object]"); |     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