---
title: "A signal boost for JavaScript"
publication: "JavaScript Weekly"
issue: 682
published_at: "2024-04-04"
canonical_url: "https://javascriptweekly.com/issues/682"
---

Plus Bun on Windows, PyTorch for JavaScript, and figuring out what a JSON number really is. |        

#​682 — April 4, 2024 

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

Together with [![logo\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_1100,h_277/co_white,e_outline:12/titvkejxse7xykalot6p.png)](https://www.mongodb.com/events/rag-to-riches?utm_campaign=js_weekly_rag_to_riches_primary&utm_source=js_weekly&utm_medium=sponsored_newsletter)   

JavaScript Weekly 2 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/pzmgxfajpix4alqpeaec.jpg)](https://github.com/proposal-signals/proposal-signals)  

[A Proposal to Add _Signals_ to JavaScript](https://github.com/proposal-signals/proposal-signals) — A (very) early stage proposal for bringing a new feature to ECMAScript/JavaScript: _signals_! The proposal brings aboard ideas from a swathe of popular frameworks and aims to align everyone and get us on the same page when it comes to working with state and making updates based upon changes to state. [Rob writes more about the proposal here](https://eisenbergeffect.medium.com/a-tc39-proposal-for-signals-f0bedd37a335). 

Rob Eisenberg and Daniel Ehrenberg   [![\](https://copm.s3.amazonaws.com/f6de7216.png)](https://www.mongodb.com/events/rag-to-riches?utm_campaign=js_weekly_rag_to_riches_primary&utm_source=js_weekly&utm_medium=sponsored_newsletter) 

[Build a RAG Chatbot App with MongoDB and Node.js](https://www.mongodb.com/events/rag-to-riches?utm_campaign=js_weekly_rag_to_riches_primary&utm_source=js_weekly&utm_medium=sponsored_newsletter) — Embark on the RAG to Riches Developer Quest — a month of innovation, learning, and exclusive rewards awaits you. You’ll interact with AI-enhanced bots and learn how to build your own with Atlas Vector Search and Node.js. [Register now!](https://www.mongodb.com/events/rag-to-riches?utm_campaign=js_weekly_rag_to_riches_primary&utm_source=js_weekly&utm_medium=sponsored_newsletter) 

MongoDB sponsor   

[JS-Torch: A PyTorch-Like Library for JavaScript](https://github.com/eduardoleao052/js-torch) — Python’s [PyTorch](https://pytorch.org/) is one of the gold standards amongst machine learning libraries, but this project brings some of its features directly into the JavaScript world. Here’s [a live browser-based demo](https://eduardoleao052.github.io/js-torch/assets/demo/demo.html). Early days but this could become a big deal. 

Eduardo Leao   

[Bun 1.1 Released: Now Supports Windows Too](https://bun.sh/blog/bun-v1.1) — With the lighthearted codename of _Bundows_, the alternative server side runtime now runs directly on Windows 10 and up (plus WSL, macOS and Linux, of course). This is a key step in its adoption, with even features like [Bun Shell](https://bun.sh/blog/bun-v1.1#the-bun-shell) happy on Windows out of the box. Node compatibility continues to improve with support for `node:http2` and IPC support between Bun and Node processes. 

The Entire Bun Team   

**IN BRIEF:** 

- Samuel Groß of the V8 team [explains the V8 Sandbox](https://v8.dev/blog/sandbox), a security mechanism designed to prevent memory corruption in the V8 engine impacting other memory in the process.
- [Dexie.js](https://dexie.org/) is a popular wrapper for IndexedDB and its creator has launched [Dexie Cloud](https://dexie.org/announcements/2024-03-27), a platform to store and synchronize data between apps.
- Svelte's Rich Harris [is 'shaken up'](https://github.com/sveltejs/svelte/issues/11052) after a misunderstanding around 'self-closing' HTML tags and their effect on Svelte.
- 🤡 There was a curious JS-themed April Fools prank where [a `.js` TLD for domain names](https://ietfa.org/) was 'announced'. Sadly, it's not true, but [there _is_ `js.org`](https://js.org/) if you want something vaguely similar.
- An official update on [the merging of Angular and Wiz.](https://blog.angular.io/angular-and-wiz-are-better-together-91e633d8cd5a) 

**RELEASES:** 

- [Deno 1.42](https://deno.com/blog/v1.42) – The alternative JS runtime adds first class support for [JSR](https://jsr.io/) and improves Node.js compatibility further.
- [Babylon.js 7](https://babylonjs.medium.com/introducing-babylon-js-7-0-a141cd7ede0d) ([homepage](https://www.babylonjs.com/)) – Key release of the popular rendering engine.
- [Node.js April 3 Security Releases](https://nodejs.org/en/blog/vulnerability/april-2024-security-releases) – Includes [18.20.1](https://nodejs.org/en/blog/release/v18.20.1), [20.12.1](https://nodejs.org/en/blog/release/v20.12.1) &[21.7.2](https://nodejs.org/en/blog/release/v21.7.2).
- [Docusaurus 3.2](https://docusaurus.io/blog/releases/3.2) – Popular content/docs site generator.
- [Gulp 5.0](https://github.com/gulpjs/gulp/releases/tag/v5.0.0)  

📒 Articles & Tutorials 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/zmiajbkzpn8kzxbng9jg.jpg)](https://blog.trl.sn/blog/what-is-a-json-number/)  

[What Even _Is_ a JSON Number?](https://blog.trl.sn/blog/what-is-a-json-number/) — Despite the presence of standards around JSON, the answer is more complicated than you’d think, particularly when it comes to interfacing with other ecosystems and languages that aren’t JavaScript. 

Brian Terlson   

[The History of JS Interop in Dart](https://medium.com/dartlang/history-of-js-interop-in-dart-98b06991158f) — About twelve years ago, Google introduced [Dart](https://dart.dev/), a language which initially seemed set to take over a lot of JavaScript’s use cases, but which eventually found its own niche (notably with [Flutter](https://flutter.dev/)). JS interoperability has remained important, though, and with [Dart 3.3](https://medium.com/dartlang/dart-3-3-325bf2bf6c13) has gotten [significantly better](https://medium.com/dartlang/dart-3-3-325bf2bf6c13#c141). 

Sigmund Cherem (Google)   

[Everything I've Learned About Scaling Designs Systems (With Examples)](https://blog.stackblitz.com/posts/enterprise-design-systems/?utm_source=js-weekly&utm_medium=secondary) — I've learned a lot about what it takes to build, maintain, and scale design systems initiatives at large companies. 

StackBlitz sponsor   

[The BFCache Explained](https://www.sabatino.dev/bfcache-explained/) — The [back/forward cache](https://web.dev/articles/bfcache) (‘bfcache’) is a browser optimization that makes going back and forward in the browser a faster experience – it’s been present for years and usually leaves you alone as a JavaScript developer, but there are things worth being aware of. 

Sabatino Masala   

[Running OCR Against PDFs and Images Directly in the Browser](https://simonwillison.net/2024/Mar/30/ocr-pdfs-images/) — A look behind the scenes at creating a simple tool using JavaScript to perform OCR against images and PDFs dragged on to the page. 

Simon Willison   

[The Easy Way to Access the Last Array Element](https://blog.ignacemaes.com/the-easy-way-to-access-the-last-javascript-array-element/) 
Ignace Maes   

[A Comparison of JavaScript CRDTs](https://blog.notmyidea.org/a-comparison-of-javascript-crdts.html) 
Alexis Métaireau  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/wyfnehtznrxl4xqbgkpa.jpg)](https://wicky.nillia.ms/cally/)  

[Cally: Small, Feature-Rich Calendar Components](https://wicky.nillia.ms/cally/) — A collection of open-source calendar components for selecting single dates or date ranges. Framework-agnostic, themeable, localizable, and accessible (it even has [an accessibility _statement_](https://wicky.nillia.ms/cally/accessibility/) showing its commitment to this area). 

Nick Williams   

📊 [Counterscale: Scalable Web Analytics You Can Run on Cloudflare](https://counterscale.dev/) — A simple web analytics tracker and dashboard that’s designed to be easy to deploy and maintain by hosting it on Cloudflare (for free too, up to a certain level). 

Ben Vinegar   

[Product for Engineers: A Newsletter Helping Flex Your Product Muscle](https://newsletter.posthog.com/?utm_source=jsweekly&utm_campaign=jsweekly) — Subscribe for free to get curated advice on building great products and best practices of top startups. 

PostHog sponsor   

🎵 [Tonal.js: A Music Theory Library](https://tonaljs.github.io/tonal/docs/) — Packed with functions to manipulate tonal elements of music like notes, intervals, chords, scales, modes, and keys, and used as the basis of [other music related projects](https://github.com/tonaljs/tonal?tab=readme-ov-file#projects-using-tonal). [GitHub repo.](https://github.com/tonaljs/tonal) 

danigb   

[Fancy-ANSI: Convert ANSI Text to HTML](https://kubetail-org.github.io/fancy-ansi/) — If, for some reason, you want to convert text with [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) into HTML.. Lots of examples on the homepage. [GitHub repo.](https://github.com/kubetail-org/fancy-ansi) 

Andres Morey   

[Dioma: Dependency Injection Container for Vanilla JS and TS](https://github.com/zheksoon/dioma) — No decorators, no annotations, no magic, no dependencies – you just add the `static scope` property to your class and use `inject` to get an instance. 

Eugene Daragan   

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/wlqrbfadkpgxavf3sj62.jpg)](https://www.npmjs.com/package/svelte-zoomable-circles)  

[svelte-zoomable-circles: Svelte Component for Browsing Hierarchical Data](https://www.npmjs.com/package/svelte-zoomable-circles) — A [Svelte](https://svelte.dev/) component for displaying and browsing hierarchical data using zoomable circles. [Live demo.](https://openopensource.com/) 

Tyler Berbert   

- [VineJS 2.0](https://vinejs.dev/docs/introduction) – Form data validation library for Node.js.
- [PGlite 0.1.1](https://github.com/electric-sql/pglite) – Lightweight Postgres packaged as WASM into a TypeScript library for the browser, Node.js, Bun and Deno. Now supports Postgres array types.
- [TS-Pattern 5.1](https://github.com/gvergnaud/ts-pattern) – Pattern matching library with smart type inference.
- [ical.js 2.0](https://github.com/kewisch/ical.js) – Parser for ICS (RFC5545) and vCard (RFC6350) data.
- [Minimatch 9.0.4](https://github.com/isaacs/minimatch) – Glob matching function – used by `npm`itself.
- [vue-tel-input 9.0](https://github.com/iamstevendao/vue-tel-input) – Telephone number input for Vue. ([Demo.](https://vue-tel-input.iamstevendao.com/))
- [OverlayScrollbars 2.7](https://github.com/KingSora/OverlayScrollbars) – JS custom scrollbar plugin.
- [Octokit.js 3.2](https://github.com/octokit/octokit.js) – 'Batteries-included' GitHub SDK.         

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
