Axel Rauschmayer (also on 🦣)

@dr-axel.de

• JavaScript, TypeScript, web development • Blog: https://2ality.com My main account is on Mastodon (you can follow via RSS): https://fosstodon.org/@rauschma

Your AI assistant just suggested an npm package. It looks real, it's well-named, it solves your exact problem. It also never existed until an attacker registered the name & filled it with malware. That's slopsquatting. 🧵

👀 JS Composites proposal update "After benchmarking and general reflection, the proposal is now pursuing an interning based approach." - @acutmore We didn't get Records & Tuples but we may still get interned data structures in JS! Really exciting update if this lands in JS

Bild
Rob Palmer@robpalmer.bsky.social · last yr.

ECMAScript excitement 😉 Congrats to @ashley-c.bsky.social on advancing the Composites proposal to Stage 1 at TC39 today 🎉 This is the evolution of Stage 2 Record & Tuple which has now been withdrawn. A key difference is that Composites are objects, not primitives. github.com/tc39/proposa...

In my audits, reading the Performance profile is where people get stuck: the flame chart and waterfall look like noise at first I built an interactive guide to make them click, every figure is interactive, plus LCP, CLS, INP and the Insights panel perf.reviews/profile-guide #WebPerf #DevTools

Reading a Performance Profile: Field Guide

An interactive field guide to the Chrome DevTools Performance panel: waterfall, flame chart, LCP, CLS, INP, and the Insights panel.

perf.reviews

Did you know Node.js is redesigning its API documentation? The new beta brings faster navigation, improved search, richer type information, better mobile support, version switching, and so much more. Learn more & preview today at nodejs.org/en/blog/anno...

Node.js — Check out the New Node.js API Documentation Preview

Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.

nodejs.org

Landed a few improvements to the error reporting for require(esm) with top-level await (behind --experimental-print-required-tla for now): - No longer need to run the code to collect the TLA locations, so it can be enabled by default soon - Added require stack and location metadata to the error

Before: extra noisy arrow pointing to internals, no require stack, needs to run the code to find the top-level await location
After: no more noisy arrows, added require stacks to the output, finds location without running the codeNew ERR_REQUIRE_ASYNC_MODULE includes error.requireStack and error.topLevelAwaitLocations metadata properties

JS² compiles JavaScript to WebAssembly ahead-of-time, sandboxing untrusted modules in your supply chain – running inside JS or standalone, no interpreter/engine. Goal: 100% ECMAScript & NPM compatibility; Method: test-driven, agile agent team against spec + 100.000 unit tests. js2.loopdive.com

js2wasm — AOT JavaScript/TypeScript → WebAssembly GC

Direct ahead-of-time compilation to WebAssembly GC with no embedded JS engine — turning every module into a Wasm sandbox for untrusted / AI-generated code.

js2.loopdive.com

Today the good people of the world commemorate the passing of Google Reader thirteen short years ago on July 1, 2013. To honor their memory (and in lieu of flowers) please add an RSS/Atom/JSON feed to your web site and keep building a web that connects people in meaningful and positive ways.

New in Chrome DevTools in Chrome 151 (which goes stable mid July): The specificity bubble can now show you a breakdown of how the specificity was calculated. Big thank you and congrats to @hjanuschka.bsky.social for contributing this to Chromium 👏

Screenshot of Chrome 151 showing the specificity calculation for the currently hovered over selector.

VS Code—copying the path of a project directory: Problem: In Explorer, folders & files have context menu commands for copying paths. However, a project’s context menu doesn’t. Solution: Bring up a context menu for the empty space after all folders & files. That one has the appropriate commands.