mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 07:52:45 +00:00 
			
		
		
		
	LibJS/Bytecode: Don't clobber dst when assigning from object expression
When compiling code like this:
    x = { foo: x }
We don't want to put a new JS::Object in `x` until *after* we've
evaluated `x` for the `foo` field.
This fixes an issue when loading https://puter.com/ :^)
			
			
This commit is contained in:
		
							parent
							
								
									b073fdd570
								
							
						
					
					
						commit
						6402ad29a6
					
				
					 3 changed files with 18 additions and 2 deletions
				
			
		|  | @ -122,6 +122,14 @@ describe("correct behavior", () => { | |||
|         Object.setPrototypeOf(derived, base); | ||||
|         expect(derived.getNumber()).toBe(30); | ||||
|     }); | ||||
| 
 | ||||
|     test("assigning object expression with destination referenced in object expression", () => { | ||||
|         function go(i) { | ||||
|             var i = { f: i }; | ||||
|             return i; | ||||
|         } | ||||
|         expect(go("foo")).toEqual({ f: "foo" }); | ||||
|     }); | ||||
| }); | ||||
| 
 | ||||
| describe("side effects", () => { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Andreas Kling
						Andreas Kling