Rob Palmer

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.

8.2K followers792 following822 posts

Rob Palmer reposted

At TPAC today, Igalia’s Nicolò Ribaudo will lead a breakout on AsyncContext, the TC39 proposal that carries values across async JavaScript. It’s useful for things like frontend telemetry. Spec authors, come tell us what you need from it. 📍 Second Floor, Room 05, 15:30 GMT www.w3.org/events/meeti...

w3.org27 October 2026 | AsyncContext across specifications | CalendarThe World Wide Web Consortium (W3C) is an international community where Member organizations, a full-time staff, and the public work together to develop Web standards.

TypeScript 7.1 has significant performance and memory wins over TS 7.0 🔥 Keep that in mind when evaluating the alternative compiler. Many of the reported benchmarks were comparing against the original TS 7.0.

Daniel Rosenwasser@danr.bsky.social

Some speed & memory improvements you'll see with TypeScript 7.1 Beta. We're hoping to land more before RC & stable.

Rob Palmer reposted

Some speed & memory improvements you'll see with TypeScript 7.1 Beta. We're hoping to land more before RC & stable.

TypeScript@typescriptlang.org

TypeScript 7.1 Beta is now available! Now with a preview API, content mapper support, new features, and some great optimizations. Give it a try and give us some feedback!

TypeScript 7.1 Beta is out 🎉 🔶 Import Attributes 🔶 Source Phase Imports 🔶 Types: es2026 🔶 Types: Promise.allKeyed, Iterator.zipKeyed 🔶 Types: Iterator chunks/join/includes 🔷 An API for tooling ✨ 🔷 tsconfig: Content Mappers 🔷 Perf: 1.2-1.9x faster, 15-50% less memory

TypeScript@typescriptlang.org

TypeScript 7.1 Beta is now available! Now with a preview API, content mapper support, new features, and some great optimizations. Give it a try and give us some feedback!

The all-new API is the highlight of TypeScript 7.1 because it represents the first time that significant volumes of ecosystem tooling can begin to integrate with the Go-based version of TypeScript.

TypeScript excitement 😉 tsrs is a fast TypeScript compiler by Max Schwenk that is now maintained by VoidZero 🎉 The Cloudflare blog post states that the features and behavior will be determined only by the TypeScript team to avoid fragmenting the language 👍

VoidZero@voidzero.dev

Introducing tsrs: a Rust port of the TypeScript compiler 🦀 We are not forking TypeScript! ◆ In close collab with the TypeScript team ◆ Up to 8x faster than TS 7.0 & ~70% less memory ◆ Runs in WASM (works in your browser & workers) ◆ Soon part of Oxc npx tsrs blog.cloudflare.com/typescript-r...

Rob Palmer reposted

You really need to watch this, particularly if you're a Man In Tech

Jo Franchetti @thisisjofrank.bsky.social

I gave a talk at EMF titled "Men in Tech #YesAllMen", in which I told my experience of being a woman in tech. I was afraid to publish it in case it affected my current or future employment. With all the current news I would like to add my 2¢. So here is the recording: youtu.be/WXL6K1lhvt0?...

Rob Palmer reposted

Rob Palmer reposted

Introducing 📦upm: 🪶A fast, tiny package manager for the npm registry. ✨Written in TypeScript, it installs at native-class speed and has a JS API, at a fraction of the size of native tools. 🤝Compatible with your existing .npmrc and lockfiles. 👉 Try at upm.sh

Rob Palmer reposted

FOMO over recent conferences? Or even from last year? Join us next month in Brighton for 2026.ffconf.org - join your peers, join the conversations you can't have with your chatbot, join us for 8 amazing talks and one superb day. Get your ticket today, don't FOMO-FFCONF.

Rob Palmer reposted

Rob Palmer reposted

I'm really excited with the amount of things we now have agreement on! Still some open design points to resolve before Stage 2.7 but have already had great input on these 🚀

Rob Palmer@robpalmer.bsky.social

ECMAScript excitement 😉 Congrats to @ashley-c.bsky.social from TechAtBloomberg on advancing the Composites proposal to Stage 2 at @tc39.es today 🎉 Composites are objects that are compared by value instead of identity. They are an evolution of Record & Tuple proposal.

ECMAScript excitement 😉 This week @tc39.es advanced these proposals 🎉 4️⃣ Dynamic Code Brand Checks 4️⃣ Iterator Chunking/Includes/Join 3️⃣ Thenable Curtailment 2️⃣.7️⃣ default in export * from "mod" 2️⃣.7️⃣ export defer 2️⃣.7️⃣ JSON.parse options 2️⃣ BigInt from Exponential 2️⃣ Composites 1️⃣ Pulling in AbortController

View full thread
Rob Palmer@robpalmer.bsky.social

ECMAScript excitement 😉 Congrats to @michael.ficarra.me on advancing the Iterator Chunking proposal to Stage 4 at @tc39.es today 🎉 It can make iterators that chunk & window content. [0,1,2,3].values().chunks(2); // [0,1], [2,3] [0,1,2,3].values().windows(2); // [0,1], [1,2], [2,3]

Rob Palmer@robpalmer.bsky.social

ECMAScript excitement 😉 Congrats to @bakkot.com on advancing Iterator Join to Stage 4 at @tc39.es today 🎉 Iterator.prototype.join() turns an iterator directly into a single string (with an optional separator) just like Array.prototype.join() github.com/tc39/proposa...

ECMAScript excitement 😉 This week @tc39.es advanced these proposals 🎉 4️⃣ Dynamic Code Brand Checks 4️⃣ Iterator Chunking/Includes/Join 3️⃣ Thenable Curtailment 2️⃣.7️⃣ default in export * from "mod" 2️⃣.7️⃣ export defer 2️⃣.7️⃣ JSON.parse options 2️⃣ BigInt from Exponential 2️⃣ Composites 1️⃣ Pulling in AbortController

View full thread
Rob Palmer@robpalmer.bsky.social

ECMAScript excitement 😉 Congrats to @nicr.dev on advancing "Include default export in export * from" to Stage 2.7 at @tc39.es today 🎉 Today re-exporting the contents of another module omits the default export. It is believed this behavior change is web-compatible.

ECMAScript excitement 😉 This week @tc39.es advanced these proposals 🎉 4️⃣ Dynamic Code Brand Checks 4️⃣ Iterator Chunking/Includes/Join 3️⃣ Thenable Curtailment 2️⃣.7️⃣ default in export * from "mod" 2️⃣.7️⃣ export defer 2️⃣.7️⃣ JSON.parse options 2️⃣ BigInt from Exponential 2️⃣ Composites 1️⃣ Pulling in AbortController

View full thread
Rob Palmer@robpalmer.bsky.social

ECMAScript excitement 😉 Congrats to @nicr.dev on advancing `export defer` to Stage 2.7 at @tc39.es today 🎉 It is a performance feature that permits lazy evaluation of re-exported bindings. It is useful for reducing the cost of partially-used barrel files 👍

Rob Palmer@robpalmer.bsky.social

ECMAScript excitement 😉 Congrats to @peet.bsky.social from TechAtBloomberg advancing JSON.parse Options to Stage 2.7 at @TC39 today 🎉 There are two independent opt-ins. 🔶 deep freezing the entire object 🔶 non-array objects get a null prototype Names may change ⚠️

ECMAScript excitement 😉 This week @tc39.es advanced these proposals 🎉 4️⃣ Dynamic Code Brand Checks 4️⃣ Iterator Chunking/Includes/Join 3️⃣ Thenable Curtailment 2️⃣.7️⃣ default in export * from "mod" 2️⃣.7️⃣ export defer 2️⃣.7️⃣ JSON.parse options 2️⃣ BigInt from Exponential 2️⃣ Composites 1️⃣ Pulling in AbortController

View full thread
Rob Palmer@robpalmer.bsky.social

ECMAScript excitement 😉 Congrats to @ashley-c.bsky.social from TechAtBloomberg on advancing the Composites proposal to Stage 2 at @tc39.es today 🎉 Composites are objects that are compared by value instead of identity. They are an evolution of Record & Tuple proposal.

ECMAScript excitement 😉 This week @tc39.es advanced these proposals 🎉 4️⃣ Dynamic Code Brand Checks 4️⃣ Iterator Chunking/Includes/Join 3️⃣ Thenable Curtailment 2️⃣.7️⃣ default in export * from "mod" 2️⃣.7️⃣ export defer 2️⃣.7️⃣ JSON.parse options 2️⃣ BigInt from Exponential 2️⃣ Composites 1️⃣ Pulling in AbortController

The 116th meeting of @tc39.es was hosted by Sony Interactive Entertainment in Tokyo. Thanks to our hosts for again providing an excellent venue, facilities, refreshments, dedicated artwork(!), and an excellent events team 👍

Rob Palmer reposted

Incredible news 🤯🎉

Rob Palmer@robpalmer.bsky.social

ECMAScript excitement 😉 Congrats to @ashley-c.bsky.social from TechAtBloomberg on advancing the Composites proposal to Stage 2 at @tc39.es today 🎉 Composites are objects that are compared by value instead of identity. They are an evolution of Record & Tuple proposal.

ECMAScript excitement 😉 Congrats to @nicr.dev on advancing "Include default export in export * from" to Stage 2.7 at @tc39.es today 🎉 Today re-exporting the contents of another module omits the default export. It is believed this behavior change is web-compatible.

ECMAScript excitement 😉 Congrats to @nicr.dev on advancing `export defer` to Stage 2.7 at @tc39.es today 🎉 It is a performance feature that permits lazy evaluation of re-exported bindings. It is useful for reducing the cost of partially-used barrel files 👍

ECMAScript excitement 😉 Congrats to Richard Gibson on advancing BigInt from Exponential to Stage 2 at @tc39.es today 🎉 🔶 BigInt("1e2") It allows a BigInt to be created from a number that includes an exponential component 👍

ECMAScript excitement 😉 Congrats to @peet.bsky.social from TechAtBloomberg advancing JSON.parse Options to Stage 2.7 at @TC39 today 🎉 There are two independent opt-ins. 🔶 deep freezing the entire object 🔶 non-array objects get a null prototype Names may change ⚠️

Rob Palmer reposted

Now, that's a chunky proposal, indeed.

Rob Palmer@robpalmer.bsky.social

ECMAScript excitement 😉 Congrats to @michael.ficarra.me on advancing the Iterator Chunking proposal to Stage 4 at @tc39.es today 🎉 It can make iterators that chunk & window content. [0,1,2,3].values().chunks(2); // [0,1], [2,3] [0,1,2,3].values().windows(2); // [0,1], [1,2], [2,3]

Rob Palmer reposted

👀 Great new JS feature Can be used for sliding window algorithms, such as a moving average Should also work on infinite streams, computing the moving average lazily

Rob Palmer@robpalmer.bsky.social

ECMAScript excitement 😉 Congrats to @michael.ficarra.me on advancing the Iterator Chunking proposal to Stage 4 at @tc39.es today 🎉 It can make iterators that chunk & window content. [0,1,2,3].values().chunks(2); // [0,1], [2,3] [0,1,2,3].values().windows(2); // [0,1], [1,2], [2,3]

ECMAScript excitement 😉 Congrats to @michael.ficarra.me on advancing the Iterator Chunking proposal to Stage 4 at @tc39.es today 🎉 It can make iterators that chunk & window content. [0,1,2,3].values().chunks(2); // [0,1], [2,3] [0,1,2,3].values().windows(2); // [0,1], [1,2], [2,3]

ECMAScript excitement 😉 Congrats to @bakkot.com on advancing Iterator Join to Stage 4 at @tc39.es today 🎉 Iterator.prototype.join() turns an iterator directly into a single string (with an optional separator) just like Array.prototype.join() github.com/tc39/proposa...

github.comGitHub - tc39/proposal-iterator-join: JS proposal for a means to concatenate the contents of an iterator into a stringJS proposal for a means to concatenate the contents of an iterator into a string - tc39/proposal-iterator-join