Rob Palmer
banner
robpalmer.bsky.social
Rob Palmer
@robpalmer.bsky.social
JavaScript Infrastructure & Tooling at Bloomberg. Co-chairing TC39. Likely to tweet tech stuff about JS & software performance. Opinions are my own.
TypeScript excitement 😉

"Our type checks are infinitely parallelizable"

@brad.zacher.com.au explains how the difference between the ts & d.ts dependency graphs can help scale the TS checker to 12 MLoC.

A 2x faster P50 shifted user behavior to rely less on CI and boosted local checking by 70% 🔥
November 25, 2025 at 9:09 AM
Node & TypeScript excitement 😉

Marco tells the story of implementing Type Stripping support in Node. It involves a lot of collaboration across the JS ecosystem.

🔷 First cut took 20 days (fast for Node)
🔷 TS delivered flags to ease adoption
🔷 Marco's reward: a bread machine
Just published a new blog post. It’s about my experience shipping Node.js native TypeScript support.

It’s not a technical blog post, it's about my perspective, what it felt like and what I learned along the way.

satanacchio.hashnode.dev/the-summer-i...
satanacchio.hashnode.dev
November 24, 2025 at 9:20 AM
Reposted by Rob Palmer
TIL that MDN has a ctrl+k search
November 23, 2025 at 1:30 AM
ECMAScript excitement 😉

This week TC39 advanced these proposals 🎉

4️⃣ Intl.Locale Info
4️⃣ Iterator.concat
4️⃣ JSON.parse Source Text
3️⃣ Iterator.zip
2️⃣.7️⃣ Iterator.prototype.join
2️⃣.7️⃣ Promise.allKeyed
2️⃣ Error.captureStackTrace
2️⃣ Import Text
2️⃣ Object.keysLength
1️⃣ Intl Energy Units
1️⃣ Intl Unit Protocol

🧵
November 20, 2025 at 8:20 AM
ECMAScript excitement 😉

Congrats to @bridgear.bsky.social @jordan.har.band on advancing Object.getNonIndexStringProperties to Stage 1 at TC39 today 🎉

Given an object, it provides an array of enumerable own properties that are not numeric indices.

github.com/BridgeAR/arr...
November 20, 2025 at 4:37 AM
ECMAScript excitement 😉

Congrats to @nicr.dev on advancing Intl Energy Units to Stage 1 at TC39 today 🎉

It provides three new units to work with Intl.NumberFormat for string formatting 👍

github.com/johanrd/prop...
November 20, 2025 at 4:30 AM
ECMAScript excitement 😉

Congrats to @bridgear.bsky.social @jordan.har.band on advancing Object.keysLength to Stage 2 at TC39 today 🎉

let count = Object.keysLength(o)

It counts the string-keyed own properties on an object. This avoids the cost of the intermediate array in Object.keys(o).length
November 19, 2025 at 5:47 AM
Reposted by Rob Palmer
Here's the proposal repo... Still very light on detail: GitHub.com/tc39/proposa...
November 19, 2025 at 4:27 AM
ECMAScript excitement 😉

Congrats to @bakkot.com on advancing Iterator Join to stage 2.7 at TC39 today 🎉

Iterator.prototype.join() turns an iterator directly into a single string (with an optional separator) just like Array.prototype.join()

github.com/bakkot/propo...
GitHub - bakkot/proposal-iterator-join: JS proposal for a means to concatenate the contents of an iterator into a string
JS proposal for a means to concatenate the contents of an iterator into a string - bakkot/proposal-iterator-join
github.com
November 19, 2025 at 2:10 AM
Reposted by Rob Palmer
Early bird tickets end today!
Spread the word.
2026.stateofthebrowser.com/tickets/
November 18, 2025 at 10:57 AM
Reposted by Rob Palmer
👀 Future of JS

This underrated upcoming JS feature is super useful 🔥

Soon, you should be able to import JS code as a string!

This is super useful, in particular for docs sites!

Similar to Webpack raw loader, asset query ?raw etc, but available everywhere natively!
November 18, 2025 at 9:17 AM
ECMAScript excitement 😉

Congrats to @jasnell.me on advancing Typed Array Find Within to Stage 1 at TC39 today 🎉

It aims to provide a native indexOf operations for Typed Arrays.

docs.google.com/presentation...
November 18, 2025 at 8:05 AM
ECMAScript excitement 😉

Congrats to @jasnell.me on advancing Typed Array Concatenation to Stage 1 at TC39 today 🎉

It aims to improve the performance of this concat operation compared to userland libraries.
November 18, 2025 at 7:52 AM
ECMAScript excitement 😉

Congrats to Eemeli Aro @mozilla.org on advancing Import Text to Stage 2 at TC39 today 🎉

It uses an import attribute for easy loading.

import text from "path/to/file.txt" with { type: "text" };

github.com/eemeli/propo...
GitHub - eemeli/proposal-import-text: A TC39 proposal for importing text
A TC39 proposal for importing text. Contribute to eemeli/proposal-import-text development by creating an account on GitHub.
github.com
November 18, 2025 at 7:34 AM
ECMAScript excitement 😉

Congrats to @sffc.bsky.social on advancing Intl Unit Protocol to Stage 1 at TC39 today 🎉

It aims to provide a protocol that lets a number formatter accept a number annotated with a unit. This is independent of the Amount proposal.

github.com/sffc/proposa...
November 18, 2025 at 7:02 AM
ECMAScript excitement 😉

Congrats to my coworker @ashley-c.bsky.social at TechAtBloomberg on advancing Await Dictionary to Stage 2.7 at TC39 today 🎉

Promise.all returns positional results as an array. Promise.allKeyed allows named results inside an object 👍

github.com/tc39/proposa...
November 18, 2025 at 6:33 AM
ECMAScript excitement 😉

Congrats to Michael Ficarra on advancing Joint Iteration to Stage 3 at TC39 today 🎉

It provides synchronized iteration over multiple iterators.

🔸 Iterator.zip vends an array per-iteration
🔸 Iterator.zipToObjects vends an object per-iteration
November 18, 2025 at 5:50 AM
ECMAScript excitement 😉

Congrats to @michael.ficarra.me on advancing Iterator Sequencing to Stage 4 at TC39 today 🎉

let it = Iterator.concat(it1, it2, ...)

It helps you create an iterator by stitching together a sequence of iterators 👍

github.com/tc39/proposa...
November 18, 2025 at 5:24 AM
ECMAScript excitement 😉

Congrats to Frank Tang on advancing Intl Locale Info API to Stage 4 at TC39 today 🎉

It exposes Locale info such as week data (first day in a week, weekend start day, weekend end day), text direction, hour cycles, numbering systems, etc.

github.com/tc39/proposa...
November 18, 2025 at 4:08 AM
ECMAScript excitement 😉

Congrats to Dan Minor @mozilla.org on advancing Error.captureStackTrace to Stage 2 at TC39 today 🎉

This is about standardizing and potentially normalizing an API that already exists.

github.com/tc39/proposa...
GitHub - tc39/proposal-error-capturestacktrace: Standardizing Error.captureStackTrace
Standardizing Error.captureStackTrace. Contribute to tc39/proposal-error-capturestacktrace development by creating an account on GitHub.
github.com
November 18, 2025 at 2:47 AM
ECMAScript excitement 😉

Congrats to Richard Gibson on advancing JSON.parse source text access to Stage 4 at TC39 today 🎉

It grants reviver functions access to the input source text 👍

github.com/tc39/proposa...
GitHub - tc39/proposal-json-parse-with-source: Proposal for extending JSON.parse to expose input source text.
Proposal for extending JSON.parse to expose input source text. - tc39/proposal-json-parse-with-source
github.com
November 18, 2025 at 2:09 AM
ECMAScript excitement 😉

TC39 is about to meet in Tokyo! We have a packed agenda with many proposals being pitched for stage advancement.

This meeting is hosted by TechAtBloomberg and begins in 30 mins.
November 18, 2025 at 12:21 AM
At JsConf.jp @marcoippolito.dev is telling us about built-in TypeScript support in Node.

Node's type-stripping is performed by SWC and was inspired by ts-blank-space

bloomberg.github.io/ts-blank-spa...
November 16, 2025 at 6:02 AM
At JsConf.jp @joyeecheung.bsky.social tells us about the Node module loader covering:

🔶 Bytecode caching
🔶 require(ESM)
🔶 Loader hooks
November 16, 2025 at 5:14 AM
At JsConf.jp @loading.trynova.dev introduces Andromeda.

Andromeda is a TypeScript-native runtime that uses the Rust-based Nova JS engine together with Oxc.

It aims to be web interoperable and is part of WinterTC.
November 16, 2025 at 4:13 AM