Rob Palmer's Avatar

Rob Palmer

@robpalmer

JavaScript Infrastructure & Tooling at Bloomberg. Co-chairing TC39. Likely to tweet tech stuff about JS & software performance. Opinions are my own.

7,729
Followers
763
Following
666
Posts
03.05.2023
Joined
Posts Following

Latest posts by Rob Palmer @robpalmer

๐Ÿ“ฎ 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

10.03.2026 18:16 ๐Ÿ‘ 29 ๐Ÿ” 7 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Preview
Path to Stage 4! ยท Issue #9 ยท tc39/proposal-error-stack-accessor Stage 4 committee approval two implementations v8 (node / Chrome) node (for DOMException) spidermonkey (Firefox) jsc (Webkit / Safari) Deno (for DOMException) Porffor es-shims polyfill keisel Boa s...

ECMAScript excitement ๐Ÿ˜‰

Congrats to @jordan.har.band on advancing Error.prototype.stack to Stage 2.7 at TC39 today ๐ŸŽ‰

This proposal seeks to standardize the existence of the accessor in the JS spec.

github.com/tc39/proposa...

10.03.2026 16:31 ๐Ÿ‘ 18 ๐Ÿ” 1 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Preview
GitHub - tc39/proposal-intl-era-monthcode: To specify necessary details about era, eraYear and monthCode usage with Temporal for non-ISO calendars. To specify necessary details about era, eraYear and monthCode usage with Temporal for non-ISO calendars. - tc39/proposal-intl-era-monthcode

ECMAScript excitement ๐Ÿ˜‰

Congrats to Ben Allen @igalia.com on advancing Intl era & monthCode to Stage 4 at TC39 today ๐ŸŽ‰

It extends Temporal by defining handling of era, eraCode & monthCode for non-ISO-8601 calendars.

github.com/tc39/proposa...

10.03.2026 16:23 ๐Ÿ‘ 17 ๐Ÿ” 4 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Preview
Mitigating supply chain attacks | pnpm Sometimes npm packages are compromised and published with malware. Luckily, there are companies like [Socket], [Snyk], and [Aikido] that detect these compromised packages early. The npm registry usual...

As you know, one of the most underrated yet highly scalable (and therefore dangerous) attacks is a supply chain attack, when you can get attacked from node_modules.

pnpm has the most advanced protection.

Theyโ€™ve just published an article with guidelines:
pnpm.io/supply-chain...

10.03.2026 11:43 ๐Ÿ‘ 31 ๐Ÿ” 2 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Sorry everyone. You're about to spend a ton of time on this.

My score is 0.0028 ๐Ÿ’… (although I get different scores on different screens - my best is on my MacBook)

10.03.2026 10:02 ๐Ÿ‘ 27 ๐Ÿ” 5 ๐Ÿ’ฌ 7 ๐Ÿ“Œ 2

VoidZero team: "This is what a healthy open-source ecosystem looks like: independent projects pushing each other forward. npmx helps developers find better packages, and their real-world usage helps us build better tools to create them with." ๐Ÿค

Shoutout to @voidzero.dev for sponsoring us, too! ๐Ÿค

10.03.2026 10:41 ๐Ÿ‘ 49 ๐Ÿ” 10 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Hah. I am abbreviating a lot.

Thank you for raising this!

10.03.2026 03:18 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

(I was previously referring to the Terminal)

09.03.2026 21:54 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Oh! If you meant the blog itself, it's based on 11ty.

09.03.2026 21:54 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 2 ๐Ÿ“Œ 0

Thank you for the invite. I'll spread the word. Would love to hang out any time you come to London.

(We even have a dedicated restaurant we take JS folk to)

09.03.2026 20:47 ๐Ÿ‘ 4 ๐Ÿ” 0 ๐Ÿ’ฌ 2 ๐Ÿ“Œ 0

Multiple frameworks are used including well-known ones and in-house ones. A lot of code was written before the popular frameworks even existed.

09.03.2026 20:33 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Preview
Bloomberg JS Blog The official Bloomberg JavaScript blog - insights, tutorials, and best practices from Bloomberg's JavaScript engineering team.

Some time ago, @jonkuperman.com & @tchetwin.bsky.social had a dream for the JS engineers at Bloomberg to be more public about the cool JS work we have going on.

That dream has come true - now we have a blog platform ๐ŸŽ‰

(You'll see more articles over the next few days)

bloomberg.github.io/js-blog/

09.03.2026 19:08 ๐Ÿ‘ 69 ๐Ÿ” 14 ๐Ÿ’ฌ 4 ๐Ÿ“Œ 0
Preview
2025 In Review | Goldblog Looking back at the accomplishments and goals from my fourth and final year as a full-time independent open source maintainer.

Wrote up my final "year in review" blog post for open source maintenance. It was a wonderful fourth and final independent work year. ๐Ÿ’™

www.joshuakgoldberg.com/blog/2025-in...

08.03.2026 20:40 ๐Ÿ‘ 27 ๐Ÿ” 1 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Preview
GitHub - tc39/proposal-typedarray-concat: A proposal for optimizable TypedArray concatenation A proposal for optimizable TypedArray concatenation - tc39/proposal-typedarray-concat

It's going to be a busy week at TC-39 this week... I've got three proposals on the table I'll be trying to get advanced.

First is TypedArray concat github.com/tc39/proposa...

const u8_1 = new Uint8Array([1,2,3]);
const u8_2 = new Uint8Array([4,5,6]);
const u8_3 = Uint8Array.concat([u8_1, u8_2]);

08.03.2026 14:36 ๐Ÿ‘ 24 ๐Ÿ” 4 ๐Ÿ’ฌ 2 ๐Ÿ“Œ 0
Seven Years to TypeScript: Migrating 11,000 Files at Patreon

Seven Years to TypeScript: Migrating 11,000 Files at Patreon, by (not on Mastodon or Bluesky):

https://www.patreon.com/posts/seven-years-to-typescript-152144830

#migrating #javascript #typescript #casestudies

08.03.2026 20:30 ๐Ÿ‘ 5 ๐Ÿ” 1 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 1

Protocols could solve runtime services / dep injection patterns! (eg swapping out implementation in test, using the protocol as the injection key)

08.03.2026 12:43 ๐Ÿ‘ 7 ๐Ÿ” 2 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

#tc39 first class protocols proposal is fascinating.

very rust-y, traits like. really getting back to what made js so so damned good, return to a powerful complex prototypal inheritance.

seemingly a ton of momentum/contributirs. new to me but instant fast follow.
github.com/tc39/proposa...

07.03.2026 22:24 ๐Ÿ‘ 22 ๐Ÿ” 7 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 2

What are the best examples now?

07.03.2026 10:06 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 2 ๐Ÿ“Œ 0
JSON.parse is parsing some JSON with a number that is larger than max safe integer.

A breakpoint has been hit inside the 'reviver' callback passed to JSON.parse - the debugger shows the values of the arguments that were passed to the function.

The traditional 2nd 'value' argument passed to the callback is `typeof number` and has been rounded down.
However the callback now also receives a 3rd 'context' argument which contains the original source string of the number ๐ŸŽ‰

JSON.parse is parsing some JSON with a number that is larger than max safe integer. A breakpoint has been hit inside the 'reviver' callback passed to JSON.parse - the debugger shows the values of the arguments that were passed to the function. The traditional 2nd 'value' argument passed to the callback is `typeof number` and has been rounded down. However the callback now also receives a 3rd 'context' argument which contains the original source string of the number ๐ŸŽ‰

One use case for the new `JSON.parse` source API: adding custom handling for floating point rounding (e.g. error or switch to BigInt):

proposal: github.com/tc39/proposa...
mdn: developer.mozilla.org/en-US/docs/W...

06.03.2026 20:32 ๐Ÿ‘ 16 ๐Ÿ” 2 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

TypeScript 6.0 RC is out ๐ŸŽ‰

๐Ÿ”ถ Temporal
๐Ÿ”ถ Map#getOrInsert
๐Ÿ”ถ RegExp.escape
๐Ÿ”ถ #/ prefix for Package Imports

New defaults!
๐Ÿ”ถ --target=ES2025
๐Ÿ”ถ "use strict"
๐Ÿ”ท --strict

Deprecations!
๐Ÿ—‘๏ธ baseUrl, outFile
๐Ÿ—‘๏ธ import assertions
๐Ÿ—‘๏ธ `module` namespaces
๐Ÿ—‘๏ธ module: amd
๐Ÿ—‘๏ธ moduleResolution: node
๐Ÿ—‘๏ธ target: ES5

06.03.2026 19:49 ๐Ÿ‘ 69 ๐Ÿ” 13 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Preview
AngularNYC - March 2026, Thu, Mar 12, 2026, 6:30 PM | Meetup Location: Google Chelsea Market (75 9th Ave, New York, NY 10011), 2nd Floor **6:30 - Arrival and chill** **7:00 - Intros and welcome** **7:20 - Jay Rungta -** Accelerati

If you're in New York and would like to meet some of the committee in real life, please come along to the free AngularNYC meetup.

It's 18:30 on Thursday 12th March at Google Chelsea Market.

www.meetup.com/angularnyc/e...

05.03.2026 21:40 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

TC39 will discuss:

๐Ÿ”ถ Abort protocol
๐Ÿ”ถ Dynamic Import Host Adjustment
๐Ÿ”ถ ESM Phase Imports
๐Ÿ”ถ Explicit Resource Management
๐Ÿ”ถ First-class Protocols
๐Ÿ”ถ import defer
๐Ÿ”ถ Intl Energy Units
๐Ÿ”ถ JSON.parseImmutable
๐Ÿ”ถ Structured concurrency
๐Ÿ”ถ test262 coverage
๐Ÿ”ถ Tree-shakeable methods

github.com/tc39/agendas...

05.03.2026 21:40 ๐Ÿ‘ 13 ๐Ÿ” 1 ๐Ÿ’ฌ 3 ๐Ÿ“Œ 1

ECMAScript excitement ๐Ÿ˜‰

Next week in NY, @tc39.es will consider advancing:

3๏ธโƒฃ Intl Era/Month Code
3๏ธโƒฃ Temporal
2๏ธโƒฃ.7๏ธโƒฃ Intl Keep Trailing Zeros
2๏ธโƒฃ Error Stack Accessor
2๏ธโƒฃ Import Text
1๏ธโƒฃ Amount
1๏ธโƒฃ Intl Unit Protocol
1๏ธโƒฃ Thenable Curtailment
1๏ธโƒฃ TypedArray concat & find within
0๏ธโƒฃ Error code prop
0๏ธโƒฃ Iterator Includes

05.03.2026 21:40 ๐Ÿ‘ 52 ๐Ÿ” 10 ๐Ÿ’ฌ 2 ๐Ÿ“Œ 2
Preview
Add --transform-ts flag to strip erasable TypeScript syntax ยท facebook/hermes@ffbfc07 Summary: Add an AST transformation pass that strips erasable TypeScript syntax before semantic analysis, similar to Node.js's --strip-types. Type annotations, type aliases, interfaces, generics...

Tzvetan Mikov has added runtime support for type-stripping to the Hermes JS engine ๐ŸŽ‰

It is similar to the support in Node.js and TypeScript's "erasableSyntaxOnly" flag.

github.com/facebook/her...

05.03.2026 10:01 ๐Ÿ‘ 27 ๐Ÿ” 3 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

ECMAScript excitement ๐Ÿ˜‰

Deno v2.7 ships @tc39.es Stage 3 Temporal unflagged ๐ŸŽ‰

It exposes the V8 implementation which uses temporal_rs ๐Ÿ‘

05.03.2026 00:33 ๐Ÿ‘ 35 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 1
Preview
Release v2.0.0 Beta - The <Suspense> is Over ยท solidjs/solid I know you all probably weren't expecting this announcement next. But after reviewing the roadmap, we spent so long iterating in the Experimental phase, most of the goalposts within Alpha don't app...

The <Suspense> is over.

Solid 2.0 Beta is now released (next tag on npm). ๐ŸŽ‰

github.com/solidjs/soli...

03.03.2026 23:49 ๐Ÿ‘ 155 ๐Ÿ” 34 ๐Ÿ’ฌ 5 ๐Ÿ“Œ 4

Join us tonight!

04.03.2026 09:16 ๐Ÿ‘ 4 ๐Ÿ” 2 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Preview
a man with glasses and the words " it 's true " behind him Alt: Office Dwight says "it's true"
04.03.2026 09:56 ๐Ÿ‘ 5 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Preview
Collaborating with npmx How the e18e community have been collaborating with npmx to create a better experience for the ecosystem

today we saw the launch of npmx! here's what the community has already been collaborating on as part of this alpha launch, and what more is to come ๐ŸŽ‰

03.03.2026 16:08 ๐Ÿ‘ 43 ๐Ÿ” 9 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
a screenshot of a warning stating that an unspecified package has increased in size by 3074% since the last version

a screenshot of a warning stating that an unspecified package has increased in size by 3074% since the last version

casually browsing around @npmx.dev and saw this. the feature is working well ๐Ÿ˜„

02.03.2026 22:26 ๐Ÿ‘ 62 ๐Ÿ” 4 ๐Ÿ’ฌ 3 ๐Ÿ“Œ 0