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 
								
							 
						 
						
							
							
							
							
								
							
							
								ad81f49b02 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the ResolveSuperBase 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 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								4ce2878394 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the GetObjectPropertyIterator instruction  
							
							
							
						 
						
							2023-10-29 22:57:19 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								ad81bf47bb 
								
							 
						 
						
							
							
								
								LibJS: Move GetObjectPropertyIterator impl to CommonImplementations  
							
							
							
						 
						
							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 
								
							 
						 
						
							
							
							
							
								
							
							
								516bb01082 
								
							 
						 
						
							
							
								
								LibJS/Bytecode: Move Append impl to CommonImplementations  
							
							
							
						 
						
							2023-10-29 17:36:09 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								3dc5c8d28e 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the IteratorToArray instruction  
							
							
							
						 
						
							2023-10-29 17:36:09 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								5179ff5fc9 
								
							 
						 
						
							
							
								
								LibJS/Bytecode: Move IteratorToArray impl to CommonImplementations  
							
							
							
						 
						
							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 
								
							 
						 
						
							
							
							
							
								
							
							
								233502a10c 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the IteratorResultValue instruction  
							
							
							
						 
						
							2023-10-29 17:36:09 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								e7fdf9c7e5 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the ThrowIfNullish instruction  
							
							
							
						 
						
							2023-10-29 17:36:09 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								9e2edc3085 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the ThrowIfNotObject instruction  
							
							
							
						 
						
							2023-10-29 17:36:09 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								39deb365d2 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the IteratorResultDone instruction  
							
							
							
						 
						
							2023-10-29 17:36:09 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								045a1386d8 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the IteratorNext instruction  
							
							
							
						 
						
							2023-10-29 17:36:09 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								661dbbc83d 
								
							 
						 
						
							
							
								
								LibJS/Bytecode: Move object_to_iterator to CommonImplementations  
							
							
							
						 
						
							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 
								
							 
						 
						
							
							
							
							
								
							
							
								d416cef9bb 
								
							 
						 
						
							
							
								
								LibJS/Bytecode: Move iterator_to_object to CommonImplementations  
							
							
							
						 
						
							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 
								
							 
						 
						
							
							
							
							
								
							
							
								1eee110575 
								
							 
						 
						
							
							
								
								LibJS: Move SuperCallWithArgumentArray impl to CommonImplementations  
							
							
							
						 
						
							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 
								
							 
						 
						
							
							
							
							
								
							
							
								a28d6291ad 
								
							 
						 
						
							
							
								
								LibJS/JIT: Generate switch cases using X macro  
							
							
							
						 
						
							2023-10-29 17:36:09 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								f89bfb3f27 
								
							 
						 
						
							
							
								
								LibJS/JIT: Declare compile_* methods using X macro  
							
							
							
						 
						
							2023-10-29 17:36:09 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Zaggy1024 
								
							 
						 
						
							
							
							
							
								
							
							
								56e8f52cb3 
								
							 
						 
						
							
							
								
								LibJIT/LibJS: Remove jump_if_***() in favor of jump_if()  
							
							... 
							
							
							
							The `jump_if()` function implements all the conditions already in use
and more, so let's avoid encouraging more wrapper functions. 
							
						 
						
							2023-10-29 17:11:04 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									iliadsh 
								
							 
						 
						
							
							
							
							
								
							
							
								4f3945024a 
								
							 
						 
						
							
							
								
								LibJS/JIT: Add fast path for Add Int32, Int32  
							
							... 
							
							
							
							This uses the 32-bit registers to perform the addition and bail if the
overflow flag (OF) is set. 
							
						 
						
							2023-10-29 08:02:00 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								4b23a7dfb4 
								
							 
						 
						
							
							
								
								LibJS/JIT: Compile the NewClass bytecode instruction  
							
							
							
						 
						
							2023-10-29 07:44:11 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								f9fbb8cff2 
								
							 
						 
						
							
							
								
								LibJS/Bytecode: Move NewClass impl to CommonImplementations  
							
							
							
						 
						
							2023-10-29 07:44:11 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								ddce5e03c2 
								
							 
						 
						
							
							
								
								LibJS/JIT: Clear unwind context handler on usage  
							
							... 
							
							
							
							This clears the handler pointer of the current unwind context
before jumping to it. This is necessary to not loop infinitely
when an exception is thrown from the handler.
In that case control flow should go to the finalizer instead.
This mirrors how unwind_context.handler_called is used in the
Bytecode::Interpreter.
`try { throw 1 } catch (e) { throw 2 } finally {}` now runs
without looping infinitely in the catch block. 
							
						 
						
							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 
								
							 
						 
						
							
							
							
							
								
							
							
								54f1f7a51b 
								
							 
						 
						
							
							
								
								LibJS/Bytecode: Move CreateVariable impl to CommonImplementations  
							
							
							
						 
						
							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 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Evgeniy Baskov 
								
							 
						 
						
							
							
							
							
								
							
							
								9258e253ca 
								
							 
						 
						
							
							
								
								LibJS/JIT: Fix crash in CallWithArgumentArray  
							
							
							
						 
						
							2023-10-28 22:33:45 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								40ecf7689b 
								
							 
						 
						
							
							
								
								LibJS/JIT: Run clang-format on Compiler.cpp  
							
							
							
						 
						
							2023-10-28 21:02:13 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								2cbc9d6970 
								
							 
						 
						
							
							
								
								LibJS/JIT: Consolidate exception handling code  
							
							... 
							
							
							
							Instead of emitting the lengthy exception checking/handling routine,
we only emit code for checking the presence of an exception and jump
to a common exception handler.
This code size optimization saves 2.08MiB on Kraken/ai-astar.js 
							
						 
						
							2023-10-28 20:44:49 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Simon Wanner 
								
							 
						 
						
							
							
							
							
								
							
							
								202a08ecc2 
								
							 
						 
						
							
							
								
								LibJS+LibJIT: Replace make_label() with default constructed label  
							
							
							
						 
						
							2023-10-28 20:44:49 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								b2d8d0c270 
								
							 
						 
						
							
							
								
								LibJS: Compile the CallWithArgumentArray bytecode instruction  
							
							
							
						 
						
							2023-10-28 20:27:16 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								2b65a80ecb 
								
							 
						 
						
							
							
								
								LibJS: Compile the NewBigInt bytecode instruction  
							
							
							
						 
						
							2023-10-28 20:27:16 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								d200361620 
								
							 
						 
						
							
							
								
								LibJS: Remove useless indirection in compile_new_{function, regexp}  
							
							... 
							
							
							
							The cxx_new_* functions have the exact same signature as the underlying
function they redirect to, so there's no need for them. Removing them
saves us a couple of opcodes. 
							
						 
						
							2023-10-28 20:27:16 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								9c0c672839 
								
							 
						 
						
							
							
								
								LibJS/JIT: Store the VM register array base in RBX  
							
							... 
							
							
							
							This allows us to use the displacement-less MOV encoding when accessing
register $0 (the accumulator).
This reduces code size by 158 KiB on Kraken/ai-astar.js :^) 
							
						 
						
							2023-10-28 20:26:35 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								87baf140f2 
								
							 
						 
						
							
							
								
								LibJS/JIT: Use PUSH imm when pushing null unwind context pointer(s)  
							
							... 
							
							
							
							Small code size optimization, saves 252 bytes on Kraken/ai-astar.js :^) 
							
						 
						
							2023-10-28 18:20:07 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								fff82c5ffe 
								
							 
						 
						
							
							
								
								LibJS/JIT: Only preserve VM& when making native call to C++  
							
							... 
							
							
							
							Instead of pushing and popping every single caller-saved registers,
we can optimize code size (and speed!) by only pushing the one register
we actually care about: RDI (since it holds our VM&).
This means that native calls may clobber every other caller-saved
register, so this is something that you have to be aware of when
emitting native calls in the JIT.
This reduces code size on Kraken/ai-astar.js by 553 KiB and makes
execution time ~6% faster as well! :^) 
							
						 
						
							2023-10-28 18:20:07 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								926786e8d1 
								
							 
						 
						
							
							
								
								LibJS+LibJIT: Let users of JIT::Assembler handle caller-saved registers  
							
							... 
							
							
							
							Instead of JIT::Assembler making the decision for everyone and forcing
out every caller-saved register in the ABI onto the stack, we now leave
that decision to users of JIT::Assembler. 
							
						 
						
							2023-10-28 18:20:07 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								9afd12a8ba 
								
							 
						 
						
							
							
								
								LibJS/JIT: Consolidate exits from the jitted code  
							
							... 
							
							
							
							Instead of emitting the "restore callee-saved registers and return"
sequence again and again, just emit it once at the end of the generated
code, and have everyone jump to it.
This is a code size optimization that saves 207KiB on Kraken/ai-astar.js 
							
						 
						
							2023-10-28 18:20:07 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								0768bf2623 
								
							 
						 
						
							
							
								
								LibJS: Execute the finalizer when returning from a try block in the JIT  
							
							... 
							
							
							
							This fixes 1 of the 2 remaining failing test-js tests. 
							
						 
						
							2023-10-28 17:11:47 +02:00