Advertisement · 728 × 90

Posts by Chengzhong Wu

Am I paranoid or not, is this an Italian gesture?

4 days ago 2 0 1 0

We are happy to announce the NodeConf EU is returning in 2026. This time, things will be a little different. While the Irish countryside made for a beauttiful backdrop for getting the community together to talk about Node.js, there have always been a number of logistical challenges to hosting there;

4 days ago 28 14 1 2

People seem to be underestimating how powerful 2 can be. You can make stupid choices you wouldn't normally make in a panic. My ex-roommate once almost got scammed but luckily she still had some wits left in that panic to consult me. It's useful to have another brain around when you are in a panic.

2 weeks ago 3 1 0 0
Code example showing the usage of Temporal.ZoneddateTime

```js
// London DST starts: 2026-03-29 01:00 -> 02:00
const zdt = Temporal.ZonedDateTime.from(
  "2026-03-29T00:30:00+00:00[Europe/London]",
);

console.log(zdt.toString());
// → "2026-03-29T00:30:00+00:00[Europe/London]"

const plus1h = zdt.add({ hours: 1 });

console.log(plus1h.toString());
// "2026-03-29T02:30:00+01:00[Europe/London]" (01:30 doesn't exist)
```

Code example showing the usage of Temporal.ZoneddateTime ```js // London DST starts: 2026-03-29 01:00 -> 02:00 const zdt = Temporal.ZonedDateTime.from( "2026-03-29T00:30:00+00:00[Europe/London]", ); console.log(zdt.toString()); // → "2026-03-29T00:30:00+00:00[Europe/London]" const plus1h = zdt.add({ hours: 1 }); console.log(plus1h.toString()); // "2026-03-29T02:30:00+01:00[Europe/London]" (01:30 doesn't exist) ```

Temporal is now Stage 4 at TC39 🎂🎂🎂

Thanks to all the other champions of JavaScript's new date-time API. It has been a wild ride over many years!

I wrote a blog post explaining how we got here 📜

bloomberg.github.io/js-blog/post...

1 month ago 345 82 20 16
A JSON file representing a source map. The code contains:

{
  "version": 3, // Always the integer 3
  "file": "out.js", // Optional: name of the generated file
  "sourceRoot": "", // Optional: prefix prepended to each entry in "sources"
  "sources": ["foo.js", "bar.js"], // Required: list of original source URLs/paths (or null)
  "sourcesContent": [null, null], // Optional: inlined source text, aligned with "sources"
  "names": ["src", "maps"], // Optional: symbol names referenced by "mappings"
  "mappings": "A,AAAB;;ABCDE", // Required: encoded mapping data (base64-VLQ deltas)
  "ignoreList": [0] // Optional: indexes into "sources" considered "third-party"
}

A JSON file representing a source map. The code contains: { "version": 3, // Always the integer 3 "file": "out.js", // Optional: name of the generated file "sourceRoot": "", // Optional: prefix prepended to each entry in "sources" "sources": ["foo.js", "bar.js"], // Required: list of original source URLs/paths (or null) "sourcesContent": [null, null], // Optional: inlined source text, aligned with "sources" "names": ["src", "maps"], // Optional: symbol names referenced by "mappings" "mappings": "A,AAAB;;ABCDE", // Required: encoded mapping data (base64-VLQ deltas) "ignoreList": [0] // Optional: indexes into "sources" considered "third-party" }

Source maps are a vital part of modern web development, but the lack of a standard made it impossible for us to add new features or improve the debugging experience.

This is the story of how we standardized source maps and how we continue to ship features through standards 📜

🧵

1 month ago 80 17 5 4

📮 In the first feature-length article on the Bloomberg JS Blog...

@jonkuperman.com explains:

🗺️ what are source maps
✅ how he worked with others to standardize them in TC39
✨ the new debugging features this unlocks

1 month ago 32 8 0 0

Yes

5 months ago 2 0 0 0

Now I know the Mail app uses an uint64 to show message counts.

6 months ago 1 0 0 1
Post image

Apple Mail

6 months ago 2 0 1 0
Advertisement
Preview
Node.js — Open sourced identity 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 wouldn't be where it is without the LGBTQ+ community ...

As in literally. Many of the most important technical contributions have come from LGBTQ+ contributors.

We haven't always done right by them but there's no doubt they are loved.

nodejs.org/en/blog/comm...

9 months ago 32 8 0 1

Welcome to London! 👋

9 months ago 4 0 0 0
Joyee Cheung - Bridging CommonJS and ESM in Node.js
Joyee Cheung - Bridging CommonJS and ESM in Node.js YouTube video by Web Engines Hackfest

Joyee Cheung talks about CommonJS and ESM in Node.js at the Web Engines Hackfest 2025 @joyeecheung.bsky.social @nodejs.org www.youtube.com/watch?v=YRue...

10 months ago 15 8 0 1

In this talk, I tell the story of how we're leveraging the Rust programming language to accelerate the Temporal implementation in V8. 🦀🦖

10 months ago 22 8 1 0
Preview
chore: release v1.0.0 by nodejs-github-bot · Pull Request #236 · nodejs/amaro 🤖 I have created a release beep boop 1.0.0 (2025-06-09) ⚠ BREAKING CHANGES The amaro/register loader has been removed. Bug Fixes update snapshots (ffd272c) Core add snapshot for advanced type-...

Amaro v1.0.0 is out! 🔥
github.com/nodejs/amaro...

10 months ago 24 3 0 3
Preview
doc: add Filip Skokan to TSC by RafaelGSS · Pull Request #58499 · nodejs/node Refs: nodejs/TSC#1740 cc: @panva

A warm welcome to our newest Node.js TSC member:
Filip Skokan!

Happy to see you onboard!

github.com/nodejs/node/...

10 months ago 9 5 0 0
Preview
Firefox 139 for developers - Mozilla | MDN This article provides information about the changes in Firefox 139 that affect developers. Firefox 139 is the current Beta version of Firefox and ships on May 27, 2025.

ECMAScript excitement 😉

Firefox 139 ships the TC39 Stage 3 Temporal proposal 🎉

It's about time.

Congrats to those who worked on the implementation including Andre Bargull & Dan Minor 👍

developer.mozilla.org/en-US/docs/M...

10 months ago 120 25 5 2

Literally, any value can be throw in JavaScript, even `undefined`, and can be used as the value of `error.cause`. So the design of `error.cause` was lenient about such cases. In general, I think it is more like a question of practice that "would you throw a structured data in JavaScript"?

10 months ago 1 0 1 0
Advertisement
Screenshot of the talks section on the website: https://webengineshackfest.org/#talks

Screenshot of the talks section on the website: https://webengineshackfest.org/#talks

This year the Web Engines Hackfest will have 9 talks live streamed in YouTube on Monday 2nd June starting at 10:30 CEST. 🎥
webengineshackfest.org#talks

11 months ago 25 15 2 1

ECMAScript Excitement 🎉

This week, at its 107th meeting, TC39 advanced these proposals:

2️⃣.7️⃣ Non-extensible Applies to Private
2️⃣.7️⃣ Upsert
2️⃣ export defer
1️⃣ Compare Strings by Codepoint
1️⃣ Composite Keys
1️⃣ Disposable AsyncContext
1️⃣ Enums
1️⃣ Object.propertyCount

and withdrew Records & Tuples

1 year ago 59 14 3 2

I didn't have the domain knowledge to fully understand that discussion, but it was about some Intl/Temporal APIs that are difficult to implement because some astral tables don't go far enough in the future or in the past.

1 year ago 8 1 0 0
Preview
Node.js Collaboration Summit 2025 / Paris · Issue #433 · openjs-foundation/summit Date: April 1-2, to be close to when dotJS happens. During the night of 1st we'll have an additional meetup to connect with the local developer community. Venue: Datadog's office (21 Rue de Château...

We had a lot of productive discussions at the Node.js collaboration summit in Paris. Huge thanks to our host @datadoghq.com!
Find the notes in https://github.com/openjs-foundation/summit/issues/433 - we'll publish the recordings and a trip report soon!

1 year ago 35 6 1 1