Uploaded October 2023 | Updated September 2026, 2 weeks ago
Let's churn out JIT code until something runs! :^)
Follow me on X: https://x.com/awesomekling
Sponsor me on GitHub: github.com/sponsors/awesomekling
Support me on Patreon: patreon.com/awesomekling
Donate via PayPal: paypal.me/awesomekling
Discord: discord.gg/serenityos
Merch: store.serenityos.org
SerenityOS is a new operating system that we're building from scratch. serenityos.org
Ladybird is a cross-platform web browser, also part of the SerenityOS project. :^)
00:00 Intro / Task of the day
02:05 Compiling each function only once
08:05 Printing JIT success
10:00 Looking at what instructions to implement
10:35 ToNumeric
14:05 ResolveThisBinding
19:08 GetByValue
27:08 Decrement
29:16 GetGlobal
35:59 PutById
47:14 Discovering a register collision
48:20 Preserving callee-saved registers
50:57 Back to the register collision
53:03 PutById, continued
55:37 NewObject
58:30 Did we improve performance?
1:01:45 Call
1:19:09 Not (and other unary instructions)
1:23:45 Checking coverage on other tests so far
1:25:41 Reflections / Outro
Let's churn out JIT code until something runs! :^)
Follow me on X: https://x.com/awesomekling
Sponsor me on GitHub: github.com/sponsors/awesomekling
Support me on Patreon: patreon.com/awesomekling
Donate via PayPal: paypal.me/awesomekling
Discord: discord.gg/serenityos
Merch: store.serenityos.org
SerenityOS is a new operating system that we're building from scratch. serenityos.org
Ladybird is a cross-platform web browser, also part of the SerenityOS project. :^)
00:00 Intro / Task of the day
02:05 Compiling each function only once
08:05 Printing JIT success
10:00 Looking at what instructions to implement
10:35 ToNumeric
14:05 ResolveThisBinding
19:08 GetByValue
27:08 Decrement
29:16 GetGlobal
35:59 PutById
47:14 Discovering a register collision
48:20 Preserving callee-saved registers
50:57 Back to the register collision
53:03 PutById, continued
55:37 NewObject
58:30 Did we improve performance?
1:01:45 Call
1:19:09 Not (and other unary instructions)
1:23:45 Checking coverage on other tests so far
1:25:41 Reflections / Outro










