Penetrating JavaScript's inner sanctum

Issue #373.March 6, 2025.2 Minute read.
Bytes

Today’s issue: The secret to getting hired at Vercel, revealing my AI strategy, and the Costco Guys’ favorite probabilistic data structure.

Welcome to #373.


Eyeballs logo

The Main Thing

a lady on the ground wearing a dress that matches the carpet

How we get the inside scoop at TC39 meetings

Penetrating JavaScript’s inner sanctum

There’s something special about being in the room with the TC39 committee as they debate which proposals are worthy of being added to the sacred JavaScript Spec.

But since they always refuse to invite me, I’ve been forced to adopt a series of increasingly intricate disguises to sneak my way into the meetings.

The most recent meeting was in Seattle, and it saw three big updates make it to Stage 4, meaning they’ll be added to the Spec later this year. And I knew about all of them a whole six hours before the blog post came out – thanks to the Mariner Moose disguise I wore into the meeting, where I posed as the MLB’s “official ambassador to the JavaScript community.”

Anyway, here are the new JavaScript features I learned about:

  • RegExp.escape – This long-overdue function automatically escapes any string so it plays nice in a regex. No more worrying about special characters breaking your patterns, just plug it in and you’re good to go.

  • Float16Array – A smaller, memory-friendlier version of existing typed arrays like Float32Array and Float64Array for handling binary data. This 16-bit, floating-point array is perfect for performance-critical applications like graphics, game development, and machine learning.

  • Redeclarable global eval() variables – This fixes a weird JavaScript quirk that’s been around for a while, so it’s now possible to redeclare eval variables without having JavaScript throw a tantrum.

Bottom Line: It was another great TC39 meeting for all of us in attendance. If you have any suggestions on how we could improve JavaScript or if you just need someone to talk to, feel free to reach out to me directly at rob.palmer@tc39.com.

        

Warp logo

Our Friends
(With Benefits)

A wizard frog saying, I'm about to cause a ruckus

Me using Warp to finally conquer my command line demons

Warp’s AI-powered terminal is a game changer

It instantly makes you into a command line wizard by combining a powerful AI with a high-performance terminal.

Warp is written entirely in Rust (so it’s fast), and it comes with some impressive features:

  • Agent Mode lets you type natural language on the command line to ask questions, debug errors, and assign tasks to AI agents.

  • Modern UX features let you use your mouse and cursor on the command line, and they give you smart completion for 400+ CLI tools.

  • Collaboration features make it easier to work with your teammates, share knowledge, and unlock productivity in the command line.

Warp finally just launched on Windows last week – so check out this video about how they built it (121k+ views in 8 days) to learn more.


Spot the Bug logo

Spot the Bug

Presented by Sentry

They’re hosting a hands-on debugging session where you’ll build a Next.js app live, watch it break, debug it, and fix the issues together. It’ll make you feel more productive than you have in months.

function capitalize (string) {
  string[0].toUpperCase()
  return string
}

Cool Bits logo

Cool Bits

  1. Lynx is a new family of open-source technologies from ByteDance that lets you use your existing web skills to build “truly native UIs” for mobile and web from a single codebase. And yes, they use it in TikTok.

  2. eva wrote an article called how to gain code execution on millions of people and hundreds of popular apps. I haven’t read it yet, but I don’t think it involves creating a new family of open-source technologies that lets you use your existing web skills to build “truly native UIs”.

  3. Validate your SaaS idea while building an audience shows you how to use Clerk’s new <Waitlist /> component to build anticipation for a new app, and how to integrate with Loops to create a powerful feedback loop with your potential users and customers. [sponsored]

  4. Ollie Williams wrote about styling the HTML details and summary elements.

  5. Vercel took a break from hiring every JavaScript developer with a Twitter account in order to release Next.js 15.2. It comes with experimental support for both Node.js middleware and React’s new View Transitions API.

  6. React Aria just launched a huge release with improved autocomplete, 3 new components (Toast, Tree, and Virtualizer), and lots more.

  7. Apryse created this PDF document conversion SDK, allowing you to accurately convert PDFs to perfectly formatted Excel spreadsheets, PowerPoint files, and Word docs. [sponsored]

  8. Kirupa wrote this deep dive on Bloom filters, “a popular probabilistic data structure” that you’ve definitely never heard of. Now I just need a Boom filter to make sure I never see the Costco guys on my feed again.

  9. The CTO of Expo, James Ide, wrote about Expo’s AI strategy. It seems slightly different from my strategy of just pretending that everything will always be fine and nothing will ever change too much because we like our jobs and they’re fun and even though we complain about them sometimes I promise that most of us would much rather be programming than farming or doing some other manual labor job that developers use to naively fetishize before they realized that they might in fact have to actually do that job one day.

  10. Chrome DevTools 134 came out.


Spot the Bug logo

Spot the Bug: Solution

Presented by Sentry

When we call toUpperCase, we’re assuming that we’re modifying the string that was passed into the function. However, since strings are primitive values, that means they’re immutable and can’t be modified once they’ve been created.

Instead of trying to modify the string directly, we need to return a new string after capitalizing the first character.

const capitalize = ([firstLetter, ...restOfWord]) => {
  return firstLetter.toUpperCase() + restOfWord.join('')
}