Joyee Cheung

@joyeecheung.bsky.social

She/her. I contribute to Node.js and V8. I post about museums, food, plants and other stuff too. Blog: https://joyeecheung.github.io/blog/

There wasn’t a heatwave in the forecast when I planned my vacation in Burgos but there will be one soon according to the current forecast 😅 Anyways it’s fun to walk around here and see the tomb of El Cid, who was the first Spanish figure I knew (from playing AOE2 when I was a very small kid)!

The Burgos cathedralAn impressive dome in the Burgos cathedralTomb of El Cid and Jimena Díaz, in the Burgos CathedralThe place where according to legend, El Cid forced Alfonso VI to swear he didn’t assassinate Sancho II - a story that was referenced in AOE2

Made the new debug helper plugins work for Node.js + bleeding edge V8 🌟 Verified it works in LLDB (Linux, macOS) & GDB (Linux), both in live and coredump debugging Going to backport the patches to Node.js when the object inspection is more polished and it stablizes bit more..

Using the plugin, bt in gdb shows the JS source info of JIT-compiled frames, mostly from the CJS loader (without plugin gdb only shows ???)In the plugin's `v8 inspect` command, it shows the this argument of the first frame is a function named "Module" (the CJS loader class i.e. require('module').Module)

Landed a few improvements to the error reporting for require(esm) with top-level await (behind --experimental-print-required-tla for now): - No longer need to run the code to collect the TLA locations, so it can be enabled by default soon - Added require stack and location metadata to the error

Before: extra noisy arrow pointing to internals, no require stack, needs to run the code to find the top-level await location
After: no more noisy arrows, added require stacks to the output, finds location without running the codeNew ERR_REQUIRE_ASYNC_MODULE includes error.requireStack and error.topLevelAwaitLocations metadata properties

Somehow I find myself starving here again, this time sent by an ambulance to the emergency (two very nice people called the ambulance when they saw me in pain after spraining my ankle). Now that I’ve waited past 11pm, maybe I should just go to bed (if I can do that today) on an empty stomach..

Joyee Cheung@joyeecheung.bsky.social · 3mo ago

Sometimes I forget how inefficient public healthcare is in Spain that I make an appointment right before lunch time, then wait for two hours without seeing the doctor and looks like it might take another two hours. Maybe it’s better to forget about the doctor and feed my immune system instead..

Amazon: your external monitor will be delivered next Wednesday Me: okay Amazon on Saturday: hey are you home, your external monitor is here Me: oh no I am not, please come back on Monday Amazon on Sunday: hey are you home, your external monitor is here Me: you deliver on Sunday?!

A while back when I was sharing my screen my sister asked: why do you programmers use dark backgrounds? Last week I was projecting my terminal/editor to my team and to make it easier to see on the projector screen I switched to light themes. Now I start to wonder why I even use dark themes too 🧐

Had a great Igalia week last week, @lukel97.bsky.social, Cathie and I fed other Igalians some Zongzi, told them the story of the Dragon Boat Festival and taught them how to write Chinese words related to the festival! (Forgot to take a picture of our table but I have a picture of preps ^^)

Preparing for the Chinese writing activity

Moving along with the debug_helper-based LLDB & GDB V8 plugins...this now supports basic object inspection! It was fun to write tests that deliberately corrupt the memory and make sure the plugin falls back gracefully, something I've never tried before when maintaining other plugins :D

A screenshot showing the receiver (this) being displayed when doing bt in lldb using the plugin, and using v8 inspect to print JS objects

I've been mostly working on remote servers as my "sandbox" via vscode remote ssh for a while, as local containers don't offer the build power I need. Two tricks that made it easier for me:

Sometimes I forget how inefficient public healthcare is in Spain that I make an appointment right before lunch time, then wait for two hours without seeing the doctor and looks like it might take another two hours. Maybe it’s better to forget about the doctor and feed my immune system instead..

Walked into the kitchen to finish cooking with the marinated ingredients, found someone sent by the city council to repair the building facade standing right outside my window on a scaffold, looking at my messy counter 😅

The 2026 Node.js London Collaboration Summit trip report is officially live! 🚀 We gathered 50+ contributors to discuss the biggest technical shifts coming to the runtime. Big thanks to Bloomberg for hosting! 🇬🇧 Check out the full recap and recordings here: https://bit.ly/3OHPLmz

Node.js — Trip report: Node.js collaboration summit (2026 London)

Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.

bit.ly