ladybird/Userland/Libraries/LibJS/Bytecode
Andreas Kling 80b1604b0a LibJS: Compile ScriptFunctions into bytecode and run them that way :^)
If there's a current Bytecode::Interpreter in action, ScriptFunction
will now compile itself into bytecode and execute in that context.

This patch also adds the Return bytecode instruction so that we can
actually return values from called functions. :^)

Return values are propagated from callee to caller via the caller's
$0 register. Bytecode::Interpreter now keeps a stack of register
"windows". These are not very efficient, but it should be pretty
straightforward to convert them to e.g a sliding register window
architecture later on.

This is pretty dang cool! :^)
2021-06-07 18:11:59 +02:00
..
ASTCodegen.cpp LibJS: Compile ScriptFunctions into bytecode and run them that way :^) 2021-06-07 18:11:59 +02:00
Block.cpp LibJS: Start fleshing out a bytecode for the JavaScript engine :^) 2021-06-07 18:11:59 +02:00
Block.h LibJS: Start fleshing out a bytecode for the JavaScript engine :^) 2021-06-07 18:11:59 +02:00
Generator.cpp LibJS: Add basic support for while loops in the bytecode engine 2021-06-07 18:11:59 +02:00
Generator.h LibJS: Add basic support for while loops in the bytecode engine 2021-06-07 18:11:59 +02:00
Instruction.cpp LibJS: Start fleshing out a bytecode for the JavaScript engine :^) 2021-06-07 18:11:59 +02:00
Instruction.h LibJS: Start fleshing out a bytecode for the JavaScript engine :^) 2021-06-07 18:11:59 +02:00
Interpreter.cpp LibJS: Compile ScriptFunctions into bytecode and run them that way :^) 2021-06-07 18:11:59 +02:00
Interpreter.h LibJS: Compile ScriptFunctions into bytecode and run them that way :^) 2021-06-07 18:11:59 +02:00
Label.h LibJS: Add basic support for while loops in the bytecode engine 2021-06-07 18:11:59 +02:00
Op.cpp LibJS: Compile ScriptFunctions into bytecode and run them that way :^) 2021-06-07 18:11:59 +02:00
Op.h LibJS: Compile ScriptFunctions into bytecode and run them that way :^) 2021-06-07 18:11:59 +02:00
Register.h LibJS: Print bytecode registers with format "$num" instead of "rnum" 2021-06-07 18:11:59 +02:00