ladybird/Userland/Libraries/LibJS/Bytecode
Andreas Kling 1d29f9081f LibJS: Remove JIT compiler
The JIT compiler was an interesting experiment, but ultimately the
security & complexity cost of doing arbitrary code generation at runtime
is far too high.

In subsequent commits, the bytecode format will change drastically, and
instead of rewriting the JIT to fit the new bytecode, this patch simply
removes the JIT instead.

Other engines, JavaScriptCore in particular, have already proven that
it's possible to handle the vast majority of contemporary web content
with an interpreter. They are currently ~5x faster than us on benchmarks
when running without a JIT. We need to catch up to them before
considering performance techniques with a heavy security cost.
2024-02-19 21:45:27 +01:00
..
ASTCodegen.cpp LibCrypto: Make constructing a BigInteger from string fallible 2024-01-13 19:01:35 -07:00
BasicBlock.cpp Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
BasicBlock.h LibWeb+LibJS: Use JS::GCPtr for pointers to GC-allocated objects 2023-12-11 16:55:25 +01:00
Builtins.cpp LibJS: Introduce Builtins 2023-11-17 19:06:25 +01:00
Builtins.h LibJS/JIT: Add builtin for Math.exp() 2023-11-24 12:49:15 +01:00
CodeGenerationError.cpp LibJS: Add to_string definitions to CodeGenerationError and ParserError 2023-02-17 09:14:23 -05:00
CodeGenerationError.h LibJS: Remove unused CodeGenerationError::to_deprecated_string 2023-02-17 09:14:23 -05:00
CommonImplementations.h LibJS: Use IteratorStepValue in ECMA-262 2024-02-03 14:07:26 -05:00
Executable.cpp LibJS: Remove JIT compiler 2024-02-19 21:45:27 +01:00
Executable.h LibJS: Remove JIT compiler 2024-02-19 21:45:27 +01:00
Generator.cpp LibJS: Don't crash when attempting to load from an invalid reference 2024-02-08 07:55:07 -07:00
Generator.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
IdentifierTable.cpp LibJS: Don't worry about deduplicating bytecode string tables 2023-10-04 20:10:12 +02:00
IdentifierTable.h AK+Everywhere: Rename FlyString to DeprecatedFlyString 2023-01-09 23:00:24 +00:00
Instruction.cpp LibJS: Add file & line number to bytecode VM stack traces :^) 2023-09-02 15:37:53 +02:00
Instruction.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
Interpreter.cpp LibJS: Remove JIT compiler 2024-02-19 21:45:27 +01:00
Interpreter.h LibJS: Put Bytecode::CallFrame + register slots in a single allocation 2023-11-29 09:48:18 +01:00
Label.h Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
Op.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
RegexTable.cpp LibJS/Bytecode: Don't reparse regular expressions on instantiation 2023-07-13 13:30:49 +02:00
RegexTable.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
Register.h LibJS: Stash thrown exception in a register before executing finalizer 2023-11-03 20:27:45 +01:00
StringTable.cpp Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
StringTable.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30