๐ฎ 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
๐ฎ 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
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...
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...
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...
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)
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! ๐ค
Hah. I am abbreviating a lot.
Thank you for raising this!
(I was previously referring to the Terminal)
Oh! If you meant the blog itself, it's based on 11ty.
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)
Multiple frameworks are used including well-known ones and in-house ones. A lot of code was written before the popular frameworks even existed.
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/
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...
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]);
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
Protocols could solve runtime services / dep injection patterns! (eg swapping out implementation in test, using the protocol as the injection key)
#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...
What are the best examples now?
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...
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
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...
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...
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
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...
ECMAScript excitement ๐
Deno v2.7 ships @tc39.es Stage 3 Temporal unflagged ๐
It exposes the V8 implementation which uses temporal_rs ๐
The <Suspense> is over.
Solid 2.0 Beta is now released (next tag on npm). ๐
github.com/solidjs/soli...
Join us tonight!
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 ๐
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 ๐