---
title: "TC39 adds a new stage for ECMAScript proposals"
publication: "JavaScript Weekly"
issue: 675
published_at: "2024-02-15"
canonical_url: "https://javascriptweekly.com/issues/675"
---

Plus some Express.js updates, improvements to Set, client-side NSFW detection, and generating parsers with Peggy. |        

#​675 — February 15, 2024 

[Read on the Web](https://javascriptweekly.com/issues/675)  

Together with [![Hasura\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,e_trim,w_285,h_84/e_make_transparent/co_white,e_outline:5/rqccs6gvtpeifpf64bb4.png)](https://hasura.io/?utm_source=newsletter&utm_medium=email&utm_campaign=javascript-weekly)   

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ahsccrqo1gkdlhzwc0uv.jpg)](https://tempo.formkit.com/)  

[Tempo: An Easier Way to Work with Dates](https://tempo.formkit.com/) — We think they nailed their own summary: _“A collection of utilities for working with the native `Date` object — an important distinction from other libraries that provide custom date primitives. Under the hood, Tempo mines `Intl.DateTimeFormat` to extract complex data like timezones offsets and locale aware date formats, giving you a simple API to format, parse, and manipulate dates.”_ Fantastic docs, too. 

FormKit   

[LLRT (Low Latency Runtime): Amazon's New JS Runtime](https://github.com/awslabs/llrt) — Amazon has open sourced a runtime entirely focused on fast startups – something that’s useful for ephemeral use cases like serverless (_*cough* AWS Lambda_). It uses Fabrice Bellard’s [QuickJS](https://bellard.org/quickjs/) as the underlying engine, so has almost full ES2023 spec support out of the box. 

Amazon Web Services Labs   [![\](https://copm.s3.amazonaws.com/87697d9a.png)](https://hasura.io/?utm_source=newsletter&utm_medium=email&utm_campaign=javascript-weekly) 

[Effortless GraphQL with Hasura and TypeScript Functions](https://hasura.io/?utm_source=newsletter&utm_medium=email&utm_campaign=javascript-weekly) — Hasura connects to your data sources, generates a GraphQL API, and deploys it globally — instantly. But, what if you could also write and use TypesScript functions directly in your GraphQL API? With Hasura, you can. Check it out on[GitHub](https://github.com/hasura/ndc-typescript-deno). 

Hasura sponsor   

[The Node.js Valentine's Day Security Releases](https://nodejs.org/en/blog/vulnerability/february-2024-security-releases) — Security releases had been expected to land in the past week for Node and they’re now here as [v21.6.2 (Current)](https://nodejs.org/en/blog/release/v21.6.2), [v20.11.1 (LTS)](https://nodejs.org/en/blog/release/v20.11.1), and [v18.19.1 (LTS).](https://nodejs.org/en/blog/release/v18.19.1) They include fixes for a variety of vulnerabilities, including some _high severity_ ones involving HTTP-based DoS attacks and privilege escalation. 

Rafael Gonzaga and Marco Ippolito   

**IN BRIEF:** 

- You know how features and proposals for the ECMAScript language [pass through a multi-stage process](https://tc39.es/process-document/) with the TC39 committee? **There's a new stage: stage 2.7!** The new stage is [what 3 used to be](https://twitter.com/robpalmer2/status/1755362667416748266) with 3 now having extra testing requirements.
- Talking of TC39, here's [the latest state of different proposals](https://dev.to/hemanth/updates-from-the-100th-tc39-meeting-4j2f) covered at the recent 100th TC39 meeting.
- There have been [some updates on the state of Express](https://github.com/expressjs/discussions/issues/160) and suggested plans for Express 5.0, 6.0 and 7.0.
- [Google has unveiled](https://blog.google/technology/ai/google-gemini-next-generation-model-february-2024/) the newest version of its _Gemini_ AI model. Of particular note is its support for 1 million tokens of context, as shown in [▶️ this example working upon the entirety of three.js's source code](https://www.youtube.com/watch?v=SSnsmqIj1MI) (~820k tokens).
- A new JavaScript registry is on the way called [jsr.](https://jsr.io/waitlist) Waitlist only, for now.   

[Breakpoints and `console.log` Is the Past, Time Travel Is the Future](https://wallabyjs.com?utm_source=cooperpress&utm_medium=javascriptweekly&utm_content=javascriptweekly) — 15x faster JavaScript debugging than with breakpoints and console.log, supports Vitest, jest, karma, jasmine, and [more](https://wallabyjs.com?utm_source=cooperpress&utm_medium=javascriptweekly&utm_content=javascriptweekly). 

Wallaby Team sponsor   

**RELEASES:** 

- [Vue.js DevTools 6.6](https://github.com/vuejs/devtools/releases/tag/v6.6.0) – Now with a new UI.
- [Hono 4.0](https://github.com/honojs/hono/releases/tag/v4.0.0) – The lightweight, runs-anywhere Web framework takes a big step forward.
- [JointJS 4.0](https://www.jointjs.com/blog/introducing-version-4) – The powerful interactive diagramming/flowchart library now has no external dependencies.
- [Astro 4.4](https://astro.build/blog/astro-440/), [Angular 17.2](https://blog.angular.io/angular-v17-2-is-now-available-596cbe96242d), [Billboard.js 3.11](https://netil.medium.com/billboard-js-3-11-release-range-text-for-arc-more-e0100627f06e)  

📒 Articles & Tutorials 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/tncaeptolvd65kqerain.jpg)](https://www.sonarsource.com/blog/union-intersection-difference-javascript-sets/)  

[Union, Intersection, Difference, and More Coming to JavaScript Sets](https://www.sonarsource.com/blog/union-intersection-difference-javascript-sets/) — [`Set`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set) was introduced back in ECMAScript 2015 (a.k.a. ES6) but only had some basic methods built-in. Phil looks at what sets can do and what new features are on the way. 

Phil Nash   

[Immutable Array Updates with `Array.prototype.with`](https://web.dev/blog/array-with) — How to use this new, widely supported method to update an array _without_ mutating the original array. 

Jad Joubran   

[Intro to Error and Performance Monitoring with Sentry](https://sentry.io/resources/intro-to-sentry-live-product-tour-2024/?utm_source=javascriptweekly&utm_medium=paid-community&utm_campaign=general-fy25q1-intro-to-sentry&utm_content=newsletter-intro-to-sentry-register) — Track, trace, debug and resolve JavaScript errors across platforms. Are your releases that easy? [Join us live](https://sentry.io/resources/intro-to-sentry-live-product-tour-2024/?utm_source=javascriptweekly&utm_medium=paid-community&utm_campaign=general-fy25q1-intro-to-sentry&utm_content=newsletter-intro-to-sentry-register). 

Sentry sponsor   

▶[So You Think You Know Git..](https://www.youtube.com/watch?v=aolI_Rz0ZqY) — GitHub co-founder Scott Chacon gave a spirited talk at FOSDEM 2024 digging into many interesting parts of `git`, as well as a few GitHub bits. If you’d prefer to _read_ rather than watch, [he has some blog posts](https://blog.gitbutler.com/git-tips-and-tricks/) covering it all too. 

Scott Chacon   

[An Example of Creating a React App with Google Sheets as a Backend](https://github.com/apicodev/example-react-todo-google-sheets) — Not as unorthodox an approach as you might think. 

Musthaq Ahamad   

[Safely Accessing the DOM with Angular SSR](https://developer.chrome.com/blog/angular-dom-safety-ssr) — Learn how to safely use the DOM together with SSR in Angular. 

Gerald Monaco (Google)  

🛠 Code & Tools  

[Peggy 4.0: A Parser Generator for JavaScript](https://peggyjs.org/) — Produces fast parsers with good error reporting. Use it to process complex data or computer languages and build transformers, interpreters, compilers, and similar tools. The [online demo](https://peggyjs.org/online.html) is pretty effective. _The official successor to [PEG.js.](https://github.com/pegjs/pegjs)_ 

Majda, Hildebrand, and Contributors   

[vue-metamorph 1.0: A Codemod Framework for Vue.js Projects](https://unrefinedbrain.github.io/vue-metamorph/) — A developer needed to make a large number of small changes to a variety of Vue components and built this tool to help. [GitHub repo.](https://github.com/UnrefinedBrain/vue-metamorph) 

UnrefinedBrain   

[canvas-size 2.0: Determine Max Area, Height, Width, and Custom Dimensions of HTML Canvases](https://jhildenbiddle.github.io/canvas-size/) — The Canvas element is broadly supported across browsers but there are differences in its size limitations, which this library can determine for you. [GitHub repo.](https://github.com/jhildenbiddle/canvas-size) 

John Hildenbiddle   

[Securing Your APIs: Verifying API Keys And Using Scopes](https://fusionauth.io/blog/securing-your-api?utm_medium=newsletter&utm_source=jsweekly&utm_campaign=feb24_newsletter&utm_content=securing_apis) — You have APIs. You need to make sure you know who is calling them and what they can do. What are your options? 

FusionAuth sponsor   

[txiki.js: A Small Yet Powerful JavaScript Runtime](https://github.com/saghul/txiki.js) — Standing on the shoulders of QuickJS and libuv. 

Saúl Ibarra Corretgé   

[Svelte Stepper: Build Animated Stepped Flows with Svelte](https://github.com/efstajas/svelte-stepper) — You can add and customize props on the component to adjust the number of steps and transition duration, among other features. See a simple but neat [demo here](https://svelte-stepper.jason-e.dev). 

Jason Efstathiou   

- 🙈 [NSFW.js 3.0](https://github.com/infinitered/nsfwjs) – Client-side NSFW image detection via TensorFlow.js.
- 🗓 [React Big Calendar 1.10](https://github.com/jquense/react-big-calendar) – GCal/Outlook-like calendar component.
- [Tedious 17.0](https://github.com/tediousjs/tedious) – TDS module for connecting to Microsoft SQL Server.
- [Inspire Tree 7.0](https://github.com/helion3/inspire-tree) – Perf-driven headless tree component.   

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/y0tbkhvde04eic1hbans.jpg)](https://github.com/williamtroup/Heat.js)  

- [Heat.js 2.1](https://github.com/williamtroup/Heat.js) – Render customizable heat maps.
- [Mineflayer 4.19](https://github.com/PrismarineJS/mineflayer) – Create Minecraft bots in JavaScript.
- [Spacetime 7.6](https://github.com/spencermountain/spacetime) – Lightweight timezone library.
- [React Tags 6.9](https://github.com/react-tags/react-tags) – Tagging component.         

Published by [Cooperpress](https://cooperpress.com/) and edited by [Peter Cooper](https://twitter.com/cooperx86) 

'JavaScript' is a trademark of Oracle Corporation in the US
We are not endorsed by or affiliated with Oracle. 

[Change your email address](https://javascriptweekly.com/edit_subscription/*|UID|*) or [stop getting this newsletter](https://javascriptweekly.com/leave/*|UID|*). 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
