Joyee Cheung's Avatar

Joyee Cheung

@joyeecheung

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

2,546
Followers
311
Following
750
Posts
02.11.2024
Joined
Posts Following

Latest posts by Joyee Cheung @joyeecheung

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

Node.js is moving to one major release per year starting with Node 27! 🚀

✅ Simpler: Every release becomes LTS.
✅ Predictable: Version numbers now align with the year.
✅ New: A 6-month Alpha channel for early testing.

https://bit.ly/4rnosLg

10.03.2026 19:30 👍 110 🔁 34 💬 3 📌 4

This will work with "useCodeCache": true in the next semver-minor release

github.com/nodejs/node/...

10.03.2026 23:55 👍 1 🔁 1 💬 0 📌 0

(Although if they can get us singing robots the next time, that will surely save us from the torture from all these actors with zero singing skills lip-syncing to their lifeless recordings)

18.02.2026 23:54 👍 0 🔁 0 💬 0 📌 0

The nerd in me: this is cool
The Chinese in me: Nice try. Robot dancing doesn’t save how boring the Spring Festival Gala has become.

18.02.2026 23:32 👍 1 🔁 0 💬 1 📌 0
Preview
sea: support ESM entry point in SEA by joyeecheung · Pull Request #61813 · nodejs/node This uses the new StartExecutionCallbackWithModule embedder API added in #61548 to support ESM entrypoint in SEA via a new configuration field "mainFormat". The behavior currently aligns ...

Landed initial support for ESM in Node.js SEA: github.com/nodejs/node/...

Similar to CJS entrypoints, it only supports importing builtins, so generally require bundling. @nodeland.dev is working on support for VFS in SEA that will unlock loading other modules within SEA github.com/nodejs/node/...

18.02.2026 21:39 👍 46 🔁 9 💬 2 📌 4
2026 Web Engines Hackfest Web Platform community event for people working on the different engines (Chromium/Blink/V8, Safari/WebKit/JSC, Firefox/Gecko/SpiderMonkey, Servo, Ladybird), on the testing side (WPT, Test262), on spe...

(Plug: or you can come to my town webengineshackfest.org )

14.02.2026 14:10 👍 4 🔁 0 💬 2 📌 0

Sounds like a cool idea, though I am more in the camp of “a town reachable by train” than “a castle that needs to be reached by car” ;)

14.02.2026 14:08 👍 8 🔁 0 💬 2 📌 0
I got thanked with good karma on GitHub.

I got thanked with good karma on GitHub.

Failed catastrophically at the “don’t look at GitHub” weekend challenge.

But on the bright side…

08.02.2026 21:38 👍 20 🔁 0 💬 1 📌 0
Preview
src: initial support for ESM in embedder API by joyeecheung · Pull Request #61548 · nodejs/node This patch extends LoadEnvironment to support loading ES modules, and adds the following new types: enum class ModuleFormat : uint8_t { kCommonJS, kModule, }; // Data for specifying an entry p...

Started iteration on ESM support in the Node.js embedder API with new overloads that likely will be less prone to ABI breakages as more features are added..
github.com/nodejs/node/...

Initial support has released in 25.6.0
nodejs.org/en/blog/rele...

06.02.2026 18:40 👍 9 🔁 3 💬 0 📌 0

Or you need to step up your game in Spanish 😉 febrile -> febril

05.02.2026 18:27 👍 3 🔁 0 💬 2 📌 0
Gerrit Code Review

This was fun to hack on - a gdb unwinder for V8 JIT-compiled frames on x64.

chromium-review.googlesource.com/c/v8/v8/+/75...

Also interesting to learn this trick from the gdb source: caller's rsp before call = callee's rbp + 16, and this seems to be a conventional CFA in debuggers

05.02.2026 17:56 👍 9 🔁 0 💬 1 📌 0

I think I figured out what's going on. Here is another blog post about tinkering with Node.js Core on ARM64 Windows (and tips about reducing the wait time on Windows) joyeecheung.github.io/blog/2026/01...

31.01.2026 10:24 👍 8 🔁 1 💬 0 📌 0

New blog post on the journey of the new --build-sea flag and how SEA injection works

joyeecheung.github.io/blog/2026/01...

26.01.2026 22:27 👍 36 🔁 12 💬 2 📌 0

This just landed! Thanks @addaleax.bsky.social and @legendecas.bsky.social for the reviews! It will be out in the next semver-minor release of 25, and likely backportable to older LTS - the new workflow is a compatible improvement to the existing postject-based SEA building workflows from v18.x.

22.01.2026 22:53 👍 19 🔁 6 💬 0 📌 1

To be fair I think it doesn’t need to be me, it just needs a contributor with enough time and energy and hopefully who can do it at work hours (I did, thanks to sponsorship by Bloomberg). The slow progress of Node.js development largely comes from lack of contributors, especially funded ones

22.01.2026 20:22 👍 7 🔁 0 💬 1 📌 0

Following the naming scheme that Elon Musk also used to name his own children already feels like biting the bait, when that platform didn’t even get built as X originally in the first place 😅

22.01.2026 13:14 👍 3 🔁 0 💬 1 📌 0

Good read. A submission to the European Commission's call for evidence on Towards European Open Digital Ecosystems (importance of OSS for EU tech sovereignty, security and competitiveness). It ends with:
> If you work in OSS, consider adding your voice. The feedback period ends February 3, 2026.

21.01.2026 17:30 👍 28 🔁 14 💬 1 📌 1

I think with the direction this PR is going, there's supposedly a way out of this: instead of relying on system APIs to load the addons (e.g. with memfd_create + dlopen on Linux, but not available on Windows), we can build custom loaders and map the libraries ourselves, or at least fallback to that

21.01.2026 15:21 👍 1 🔁 0 💬 0 📌 0

Now is the time to realize I have been compiling with host arch = x64 the whole time because for whatever reason I have been using x64 python the whole time to run the configure script 😅

19.01.2026 23:30 👍 5 🔁 0 💬 0 📌 1

They are mostly already on v24, the changes are primarily just flipping the status in the documentation.

19.01.2026 20:43 👍 0 🔁 0 💬 1 📌 0
Preview
Tracking issue: HTTP_PROXY/HTTPS_PROXY/NO_PROXY support in Node.js · Issue #57872 · nodejs/node Support https/http proxies via HTTP_PROXY/HTTPS_PROXY/NO_PROXY in fetch() (behind NODE_USE_ENV_PROXY) Initial support #57165 align with curl: do not tunnel for http proxy nodejs/undici#4083 align w...

Also @aditeigh.bsky.social and I are looking into what else need to be done to enable built-in http proxy support and custom/system CA support by default, hopefully in 26 and possibly as semver-major. Tracking issues:

github.com/nodejs/node/...
github.com/nodejs/node/...

19.01.2026 18:55 👍 4 🔁 1 💬 0 📌 0
Memory leak regression testing with V8/Node.js, part 3 - heap iteration-based testing In the previous blog post, I described the heap snapshot trick as an “abuse” of the heap snapshot API, because heap snapshots are not designed to interact with the finalizers run in the heap. But the

v8.queryObjects(): I wrote about the motivation of this API for more reliable memory leak testing in joyeecheung.github.io/blog/2024/03...

--heapsnapshot-near-heap-limit: see documentation here: nodejs.org/api/cli.html...

19.01.2026 18:45 👍 5 🔁 0 💬 1 📌 0
Preview
Node.js startup snapshots by Joyee Cheung The video discusses the Startup Snapshot initiative in Node.js, which aims to improve startup performance by integrating features such as lazy loading, precompiling internal modules, and using V8 Star...

Startup snapshot APIs: I gave a talk about this a few years ago at Node Congress: gitnation.com/contents/nod...

19.01.2026 18:45 👍 4 🔁 0 💬 1 📌 0
Optimizing hashing performance · Issue #136 · nodejs/performance What is the problem this feature will solve? Making the hash functions significantly faster. What is the feature you are proposing to solve the problem? I'm not sure what the best option for this i...

There are several features that have been stable de facto, but nobody remembered to send a PR to bump the stability index 😅 I marked them in bulk while I was at it.

crypto.hash(): a faster alternative to crypto.createHash() for one-shot hashing. See github.com/nodejs/perfo...

19.01.2026 18:43 👍 5 🔁 0 💬 1 📌 0
JSConf JP 2025|Joyee Cheung|Evolving the Node.js module loader
JSConf JP 2025|Joyee Cheung|Evolving the Node.js module loader YouTube video by jsconfjp

Then there are also the module compile cache going stable and module.registerHooks() becoming release candidate. I gave a talk at JSConf Japan recently covering the evolution of these features: www.youtube.com/watch?v=MYVn...

19.01.2026 18:43 👍 4 🔁 1 💬 1 📌 0
Preview
require(esm) in Node.js: from experiment to stability More than a year ago, I set out to revive require(esm) in Node.js and landed an experimental implementation. After a lot of iteration and battle-testing, require(esm) is now unflagged across all suppo

First and likely the most anticipated, marking require(esm) as stable. I wrote a blog post about the journey of it going from experiment to stability: joyeecheung.github.io/blog/2025/12...

19.01.2026 18:42 👍 7 🔁 1 💬 2 📌 0

This release contains a bunch of PRs I recently submitted to mark features I contributed to as stable/release candidate. Here is a thread about them 🧵:

19.01.2026 18:42 👍 53 🔁 8 💬 2 📌 1
Single executable applications | Node.js v25.3.0 Documentation

I believe that’s one of the several projects that inspired nodejs.org/api/single-e... (note that this feature has existed since v18, the PR merely moves the injection process into core). The difference is that SEA building does not require installing compilers, it’s just binary surgery

15.01.2026 11:06 👍 1 🔁 0 💬 1 📌 0
Post image

This is a mitigation, not a guarantee.
Stack space exhaustion recovery is NOT specified by ECMAScript. V8 does it on a best-effort basis.

If the recursion depth can be controlled by attackers, explicitly limit the depth.

This is what the React and Next.js teams fixed in vercel.com/kb/bulletin/....

13.01.2026 18:50 👍 3 🔁 1 💬 1 📌 0
Preview
Node.js — Tuesday, January 13, 2026 Security Releases Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.

We appreciate your patience and understanding as we work to deliver a secure and reliable release.

Updates are now available for the 25.x, 24.x, 22.x, 20.x Node.js release lines to address:

- 3 high severity issues
- 4 medium severity issues
- 1 low severity issue

nodejs.org/en/blog/vuln...

13.01.2026 14:42 👍 65 🔁 26 💬 1 📌 2