Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								cfdb8a2756 
								
							 
						 
						
							
							
								
								LibJS/JIT: Update "unwind context" stack in JIT code  
							
							... 
							
							
							
							Until now, the unwind context stack has not been maintained by jitted
code, which meant we were unable to support the `with` statement.
This is a first step towards supporting that by making jitted code
call out to C++ to update the unwind context stack when entering/leaving
unwind contexts.
We also introduce a new "Catch" bytecode instruction that moves the
current exception into the accumulator. It's always emitted at the start
of a "catch" block. 
							
						 
						
							2023-11-12 14:21:41 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								298dfa96a4 
								
							 
						 
						
							
							
								
								LibJS: Remove unused members from EnterUnwindContext instruction  
							
							
							
						 
						
							2023-11-12 14:21:41 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								b6435ca280 
								
							 
						 
						
							
							
								
								LibJS: Unify bytecode instruction names with their helper names  
							
							
							
						 
						
							2023-11-12 14:21:41 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								b1b2ca1485 
								
							 
						 
						
							
							
								
								LibJS: Add basic monomorphic caching for PutById property access  
							
							... 
							
							
							
							This patch makes it possible for JS::Object::internal_set() to populate
a CacheablePropertyMetadata, and uses this to implement a basic
monomorphic cache for the most common form of property write access. 
							
						 
						
							2023-11-09 16:02:14 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								dd466ec83a 
								
							 
						 
						
							
							
								
								LibJS/Bytecode: Remove the PushDeclarativeEnvironment instruction  
							
							
							
						 
						
							2023-11-03 07:31:11 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								a2b0154661 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the AsyncIteratorClose instruction  
							
							
							
						 
						
							2023-10-30 07:10:24 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								ac59e982a9 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the CopyObjectExcludingProperties instruction  
							
							
							
						 
						
							2023-10-30 07:10:24 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								9494fbe670 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the PutByValueWithThis instruction  
							
							
							
						 
						
							2023-10-30 07:10:24 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								847889343f 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the New##ErrorName instructions  
							
							
							
						 
						
							2023-10-30 07:10:24 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								a16082c6a5 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the HasPrivateId instruction  
							
							
							
						 
						
							2023-10-30 07:10:24 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								19045d6431 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the GetMethod instruction  
							
							
							
						 
						
							2023-10-30 07:10:24 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								c0c40110c1 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the ImportCall instruction  
							
							
							
						 
						
							2023-10-30 07:10:24 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								ac43d3f6db 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the PutPrivateById instruction  
							
							
							
						 
						
							2023-10-29 22:57:19 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								81697549b7 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the PutByIdWithThis instruction  
							
							
							
						 
						
							2023-10-29 22:57:19 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								38d5d7979b 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the DeleteByIdWithThis instruction  
							
							
							
						 
						
							2023-10-29 22:57:19 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								b53277110e 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the GetByValueWithThis instruction  
							
							
							
						 
						
							2023-10-29 22:57:19 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								569ca57e22 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the GetByIdWithThis instruction  
							
							
							
						 
						
							2023-10-29 22:57:19 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								4e9edb8c53 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the GetPrivateById instruction  
							
							
							
						 
						
							2023-10-29 22:57:19 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jakub Berkop 
								
							 
						 
						
							
							
							
							
								
							
							
								6a7b9b85a4 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the DeleteByValueWithThis instruction  
							
							
							
						 
						
							2023-10-29 21:51:46 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jakub Berkop 
								
							 
						 
						
							
							
							
							
								
							
							
								0776404e03 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the DeleteByValue instruction  
							
							
							
						 
						
							2023-10-29 21:51:46 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jakub Berkop 
								
							 
						 
						
							
							
							
							
								
							
							
								f5fcd4596c 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the DeleteById instruction  
							
							
							
						 
						
							2023-10-29 21:51:46 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								40064d872f 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the Append instruction  
							
							
							
						 
						
							2023-10-29 17:36:09 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								c697ff61f6 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the IteratorClose instruction  
							
							
							
						 
						
							2023-10-29 17:36:09 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								4f8f8b7792 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the GetIterator instruction  
							
							
							
						 
						
							2023-10-29 17:36:09 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								d247744a3e 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the SuperCallWithArgumentArray instruction  
							
							
							
						 
						
							2023-10-29 17:36:09 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								09dce5f1bd 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the BlockDeclarationInstantiation instruction  
							
							
							
						 
						
							2023-10-29 17:36:09 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								4b23a7dfb4 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the NewClass bytecode instruction  
							
							
							
						 
						
							2023-10-29 07:44:11 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								224f92f6e4 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the CreateVariable bytecode instruction  
							
							
							
						 
						
							2023-10-29 07:44:11 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								1d3062de9e 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the ConcatString bytecode instruction  
							
							
							
						 
						
							2023-10-29 07:44:11 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								2b65a80ecb 
								
							 
						 
						
							
							
								
								LibJS: Compile the NewBigInt bytecode instruction  
							
							
							
						 
						
							2023-10-28 20:27:16 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								c1551a64dc 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the NewRegExp bytecode instruction  
							
							
							
						 
						
							2023-10-27 19:07:22 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								17b2c7d965 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the TypeofLocal bytecode instruction  
							
							
							
						 
						
							2023-10-27 19:07:22 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								935d67cfcf 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the GetCalleeAndThisFromEnvironment instruction  
							
							
							
						 
						
							2023-10-27 19:07:22 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								7097169967 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the PutByValue bytecode instruction  
							
							
							
						 
						
							2023-10-27 19:07:22 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								9c93d100d1 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the NewFunction bytecode instruction  
							
							
							
						 
						
							2023-10-27 19:07:22 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								393d90abe1 
								
							 
						 
						
							
							
								
								LibJS/Bytecode: Move SetVariable implementation to CommonImplementations  
							
							
							
						 
						
							2023-10-27 19:07:22 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								e946440ed3 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the TypeofVariable bytecode instruction  
							
							
							
						 
						
							2023-10-27 19:07:22 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								580249d650 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the PutById bytecode instruction  
							
							
							
						 
						
							2023-10-27 19:07:22 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								3974ce2069 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the GetGlobal bytecode instruction  
							
							
							
						 
						
							2023-10-27 19:07:22 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								e8190105db 
								
							 
						 
						
							
							
								
								LibJS/Bytecode: Move GetByValue implementation to CommonImplementations  
							
							
							
						 
						
							2023-10-27 19:07:22 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								6a6ef6670c 
								
							 
						 
						
							
							
								
								LibJS/JIT: Support the GetById bytecode op  
							
							... 
							
							
							
							We can now do basic property (get) access in jitted code! :^) 
							
						 
						
							2023-10-27 19:07:22 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								c2fe7af095 
								
							 
						 
						
							
							
								
								LibJS/JIT: Support the NewString bytecode op  
							
							... 
							
							
							
							This necessitated making the JIT::Compiler aware of the current
Bytecode::Executable, since that's where all the string literals are
held, but that seems like a good thing. 
							
						 
						
							2023-10-27 19:07:22 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								babdc0a25b 
								
							 
						 
						
							
							
								
								LibJS: Work-in-progress JIT compiler :^)  
							
							
							
						 
						
							2023-10-27 19:07:22 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								2e23f00a2f 
								
							 
						 
						
							
							
								
								LibJS/Bytecode: Move environment coordinate caches to Executable  
							
							... 
							
							
							
							Moving them out of the respective instructions allows the bytecode
stream to be immutable. 
							
						 
						
							2023-10-27 07:26:37 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								887183cad6 
								
							 
						 
						
							
							
								
								LibJS: Remove last user of Op::Jump::set_targets() and API itself  
							
							... 
							
							
							
							This was just a matter of instantiating a BasicBlock earlier so we
can reference it when making the jump. 
							
						 
						
							2023-09-28 14:52:03 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								bdd21cf9db 
								
							 
						 
						
							
							
								
								LibJS: Remove almost all uses of Op::Jump::set_targets()  
							
							... 
							
							
							
							We should initialize jump targets when constructing the jump instruction
instead of doing it later. This was already the case in all construction
sites but one. This first patch converts all those sites to pass final
targets to the constructor directly. 
							
						 
						
							2023-09-28 14:52:03 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								f3606adc58 
								
							 
						 
						
							
							
								
								LibJS: Inline bytecode ops for direct local/register access  
							
							... 
							
							
							
							These can do a lot less stuff if we put them directly in the interpreter
loop and allow them to access the locals/registers arrays directly. 
							
						 
						
							2023-09-28 06:09:16 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								4c5b9fa6a2 
								
							 
						 
						
							
							
								
								LibJS: Remove unused SetVariable::InitializationMode::InitializeOrSet  
							
							
							
						 
						
							2023-09-26 09:38:32 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								3d5cd23393 
								
							 
						 
						
							
							
								
								LibJS: Remove unused Instruction::is_terminator()  
							
							
							
						 
						
							2023-09-21 16:19:13 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Shannon Booth 
								
							 
						 
						
							
							
							
							
								
							
							
								30ab198b40 
								
							 
						 
						
							
							
								
								LibJS: Create const variables in ForIn/OfBodyEvaluation in strict mode  
							
							... 
							
							
							
							Our implementation of environment.CreateImmutableBinding(name, true)
in this AO was not correctly initializing const variables in strict
mode. This would mean that constant declarations in for loop bodies
would not throw if they were modified.
To fix this, add a new parameter to CreateVariable to set strict mode.
Also remove the vm.is_strict mode check here, as it doesn't look like
anywhere in the spec will change strict mode depending on whether the
script itself is running in script mode or not.
This fixes two of our test-js tests, no change to test262. 
							
						 
						
							2023-09-21 16:19:05 +02:00