---
title: "JS Runtime Royale"
publication: "JavaScript Weekly"
issue: 667
published_at: "2023-12-14"
canonical_url: "https://javascriptweekly.com/issues/667"
---

Plus Deno brings back WebGPU, Safari adds import attributes, TC39's FAQs, and exploring the event horizon of promises. |        

#​667 — December 14, 2023 

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

✍️ Christmas is almost here, so we're preparing our annual roundup issue for next week, before we take some time off! Keep an eye out for that next Thursday :-)
__
_Your editor, Peter Cooper_ 

Together with [![Frontend Masters logo\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_300,h_70/e_make_transparent/co_white,e_outline:5/nk0tfdvalivacz8rw7rt.png)](https://frontendmasters.com/learn/typescript/?utm_source=email&utm_medium=javascriptweekly&utm_content=typescript)  

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/aarzsmxipvrbhyi1keuz.jpg)](https://oxc-project.github.io/blog/2023-12-12-announcing-oxlint.html)  

[Oxlint: A New JS Linter '50-100x Faster' than ESLint?](https://oxc-project.github.io/blog/2023-12-12-announcing-oxlint.html) — Making tools as fast as possible is a common theme in the JavaScript world, and it's the MO for [the _JavaScript Oxidation Compiler toolkit._](https://oxc-project.github.io/) _Oxlint_ is one of their tools that’s now GA. It's still early days, but when Evan You [says](https://twitter.com/youyuxi/status/1734439543280128030) _“the performance is absolutely nuts”_ when running against the Vue 3 codebase, we sit up and listen. 

Boshen   

[Bun v1.0.18: The JS Runtime Preparing to Take Over the World](https://bun.sh/blog/bun-v1.0.18) — I _might_ have overegged the headline, but Bun is on a serious mission to replace Node.js, at least, with [their 'one goal for 2024'](https://twitter.com/bunjavascript/status/1732945030007099510) being to _“flip the default backend JavaScript runtime from Node.js to Bun.”_ They are also placing a [focus on shipping Windows support](https://twitter.com/bunjavascript/status/1730757658486157556)ASAP. 

Jarred Sumner et al.   [![\](https://copm.s3.amazonaws.com/0668fb1b.png)](https://frontendmasters.com/learn/typescript/?utm_source=email&utm_medium=javascriptweekly&utm_content=typescript) 

[New TypeScript Courses: Take the Learning Path](https://frontendmasters.com/learn/typescript/?utm_source=email&utm_medium=javascriptweekly&utm_content=typescript) — Join Mike North (Tech Lead at Stripe) for this series of brand new TypeScript courses. You'll get hands-on practice covering both the fundamentals and advanced features like utility types and advanced generics. Learn best practices to configure and evolve your TS codebase! 

Frontend Masters sponsor   

[Visual Studio Code November 2023](https://code.visualstudio.com/updates/v1_85) — The latest VS Code release has some handy enhancements for JS developers, including a [V8 heap snapshot visualizer](https://code.visualstudio.com/updates/v1_85#_javascript-debugger), the ability to drag tabs into [their own new windows](https://code.visualstudio.com/updates/v1_85#_floating-editor-windows) (a.k.a. ‘floating editor windows’), and TypeScript 5.3. 

Microsoft   

[Deno 1.39: The Return of WebGPU](https://deno.com/blog/v1.39) — Deno introduced WebGPU support [in Deno 1.8](https://deno.com/blog/v1.8#experimental-support-for-the-webgpu-api) but it was removed for various reasons. It’s _back_ and gives you a tidy way to work with the GPU directly from JavaScript (behind the `--unstable-webgpu` flag, at least). Improvements to Node.js compatibility and various Deno APIs, as well as TypeScript 5.3, are included. 

The Deno Team   

**IN BRIEF:** 

- 🎁 [GitHub Unwrapped](https://githubunwrapped.com/) is a fun project that renders your GitHub activity into a video (a la Spotify's "Wrapped" roundups). [The source](https://github.com/remotion-dev/github-unwrapped-2023) is available. It uses the React-based [Remotion](https://www.remotion.dev/) to dynamically create the videos.
- [Safari 17.2](https://webkit.org/blog/14787/webkit-features-in-safari-17-2/) is a particularly jam-packed release of Apple's browser, but on the JavaScript side it has added support for [`import`attributes](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import).
- There's only a day or two left to [take the _State of JS 2023_ survey](https://survey.devographics.com/en-US/survey/state-of-js/2023).
- The latest Storybook beta has [added support for React Server Components](https://storybook.js.org/blog/storybook-react-server-components/).
- [A handy list of JavaScript engines, runtimes, and interpreters](https://gist.github.com/guest271314/bd292fc33e1b30dede0643a283fadc6a).   

**RELEASES:** 

- [Million 3.0](https://million.dev/blog/million-3) – VDOM replacement for faster React.
- [Croner 8.0](https://croner.56k.guru/) – Trigger functions using `cron`syntax.
- [Rollup 4.9](https://github.com/rollup/rollup), [Ember.js 5.5](https://github.com/emberjs/ember.js/releases/tag/v5.5.0), [Expo Router 3.0 beta](https://blog.expo.dev/expo-router-v3-beta-is-now-available-eab52baf1e3e), [Remix 2.4](https://github.com/remix-run/remix/blob/main/CHANGELOG.md#v240).  

📄 Articles & Tutorials 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/yettj83oilxhe62vpi83.jpg)](https://frontside.com/blog/2023-12-11-await-event-horizon/)  

[The Await Event Horizon in JavaScript](https://frontside.com/blog/2023-12-11-await-event-horizon/) — You know someone’s getting heavy when they start a JavaScript article by talking about the event horizon around black holes and how _“a similar boundary exists around every JavaScript Promise.”_ Enjoy. 

Charles Lowell   

[Benchmarking, Profiling, and Optimizing JS Libraries](https://calendar.perfplanet.com/2023/benchmarking-profiling-and-optimizing-javascript-libraries/) — As part of this year’s [Web Performance Calendar](https://calendar.perfplanet.com/2023/), take a journey with Stéphane to learn about optimizing a library ([globalize](https://github.com/globalizejs/globalize), in his case) by way of benchmarking and profiling. 

Stéphane Goetz   

[[Live Today\] Fix Slow Code and Improve Browser JavaScript Performance](https://sentry.io/resources/improve-web-browser-performance-find-the-javascript-code-causing-slowdowns/?utm_source=javascriptweekly&utm_medium=paid-community&utm_campaign=general-fy24q4-performanceworkshop&utm_content=newsletter-performanceworkshop-register) 

Sentry sponsor   

[The New TC39 FAQs](https://github.com/tc39/faq/) — TC39 is the committee responsible for evolving and maintaining the ECMAScript spec, the standardized form of JavaScript, and its members have started a disclaimer-riddled FAQ. You can suggest new topics by opening an issue, or learn a little from the nine questions covered so far, including [Will JS ever add JSX notation?](https://github.com/tc39/faq/?tab=readme-ov-file#will-javascript-ever-add-jsx-notation) and [Will WebAssembly replace JS?](https://github.com/tc39/faq/?tab=readme-ov-file#will-webassembly-replace-js) 

Ecma TC39   

[You Don't Need JavaScript for That](https://www.htmhell.dev/adventcalendar/2023/2/) — _“Just because you know something needs JavaScript, doesn’t mean it still does. You can make better websites if you test those assumptions every now and then.”_ 

Killian Valkhof   

[What Vue’s Creator Learned the Hard Way with Vue 3](https://thenewstack.io/what-vues-creator-learned-the-hard-way-with-vue-3/) — Evan You shared some of the lessons he learned from the release and reception of Vue 3 around things like including a lot of small breaking changes, to choosing deprecation over breaking changes. 

Loraine Lawson (The New Stack)   

▶[Deploying Node.js with Google's Duet AI](https://www.youtube.com/watch?v=t_gy2V1ofv0) — _Duet AI_ is Google’s AI-based assistive agent that works both in the IDE and within Google Cloud. 

Google Cloud   

[Stop Nesting Ternaries in JavaScript](https://www.sonarsource.com/blog/stop-nesting-ternaries-javascript/) 
Phil Nash  

🛠 Code & Tools  

[RE:DOM 4.0: The 2K UI Library](https://redom.js.org/) — We first linked to this library _over 6 years ago_ but it’s still going, so if you want something to help with creating and syncing DOM elements that’s ‘close to the metal’, it’s worth a look. [v4.0](https://github.com/redom/redom/releases/tag/v4.0.0) enables tree shaking and adds `viewFactory`. 

Juha Lindstedt and contributors   

[TS Docs: Online Reference Docs for npm Packages](https://tsdocs.dev/) — Browse reference TypeScript documentation for any package or version of a library. 

Shubham Kanodia   

[Add Authorization, MFA, Biometrics and More to Your JavaScript App in Just Minutes](https://fusionauth.io/articles/oauth/modern-guide-to-oauth?utm_source=jsweekly&utm_medium=newsletter&utm_campaign=modernguide1214) — It's about time that somebody talked some sense about OAuth and JavaScript. So we did. You're welcome. 

FusionAuth sponsor   

[Seroval 1.0: Stringify JS Values](https://github.com/lxsmnsyc/seroval) — A handy utility library for turning JavaScript values into strings that can handle far more complex things than JSON, say. 

Alexis H. Munsayac   

[SpaceTime 7.5: A Lightweight Timezone Library](http://spacetime.how/) — Use this to calculate times in other timezones. Has a Moment-like API but is immutable. No dependencies. [GitHub repo.](https://github.com/spencermountain/spacetime) 

Spencer Kelly  

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/zah69cvh4oynubiy1qfp.jpg)](https://react-responsive-pagination.elantha.com/)  

[React Responsive Pagination: Component for Smart Pagination](https://react-responsive-pagination.elantha.com/) — A responsive pagination component which intelligently adjusts to the available width. The homepage is a live demo, or you can hit the [GitHub repo.](https://github.com/jonelantha/react-responsive-pagination) 

Jon Elantha   

[Svelte SPA Router: A Router for Svelte 3 and 4 SPAs](https://github.com/ItalyPaleAle/svelte-spa-router) — Previously for Svelte 3 only, Svelte 4 support has now been added. [Upgrade guide.](https://github.com/ItalyPaleAle/svelte-spa-router/blob/v4.0.0/UPGRADING.md) 

Alessandro (Ale) Segala   

[📊 vue-chartjs: A Vue.js Wrapper for Chart.js](https://github.com/apertureless/vue-chartjs) — Using Vue? Want charts? Consider this. [Demos here.](http://demo.vue-chartjs.org/) 

Jakub   

[Bringing Performance, Reliability, and CI/CD to Data](https://www.patch.tech/blog/bringing-performance-reliability-and-ci-cd-to-data/) — Managed infrastructure for versioning, access controls, and performance. [Subscribe now](https://www.patch.tech/). 

Patch sponsor   

- [Facebook Relay 16.1](https://github.com/facebook/relay) – The React GraphQL framework.
- [React PDF 7.6](https://github.com/wojtekmaj/react-pdf) – Display PDFs in your React apps.
- [Reactotron 3.0](https://shift.infinite.red/announcing-reactotron-3-0-934b5a221bda) – React Native debugging tool.
- [jest-image-snapshot 6.4](https://github.com/americanexpress/jest-image-snapshot) – Jest matcher for image comparisons.
- [pnpm 8.12](https://github.com/pnpm/pnpm) – Fast, efficient package manager.
- [ws 8.15](https://github.com/websockets/ws) – Fast Node.js WebSocket library.
- [np 9.2](https://github.com/sindresorhus/np) – A better `npm publish`.  

😍 Beautiful Planets 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/beghto16fg4tusbnkryp.jpg)](https://dgreenheck.github.io/threejs-procedural-planets/)   

[Three.js Procedural Planets](https://dgreenheck.github.io/threejs-procedural-planets/) — This is gorgeous! You can have a lot of fun adjusting the parameters to change the outcome, or you can spin up and play with your own copy [using the source code.](https://github.com/dgreenheck/threejs-procedural-planets) If you don’t want to stress out your browser, you can see how it looks [▶️ in this video](https://www.youtube.com/watch?v=SA1JQORFPlI). 

Daniel Greenheck         

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
