#js runtimes

JavaScript runtimes are environments in which JavaScript code is executed. They provide an interface for developers to write code and interact with the underlying operating system, allowing them to create dynamic webpages and applications. The most popular JavaScript runtime is the browser, but there are also server-side runtimes such as Node.js and Deno.js, which allow developers to write server-side code in JavaScript.
Node Congress 2024Node Congress 2024
17 min
What's New on Node.js Test Runner and Why it's Game-changing
Node's new test runner is pretty cool but not many people are using it yet. In my talk, I'll show you all the neat stuff it can do, including some features I worked on. We'll take a look under the hood of Node to see how mocks work and how to use them. I'll also chat about what's next for the runner and what to expect down the line. Get ready to up your testing game with native assertions and keep things running fast!
Node Congress 2024Node Congress 2024
25 min
Testing Alternative Runtimes with Node and Vitest
A deep dive into how we built support for running Vitest tests in the Cloudflare Workers runtime. We'll start by giving an overview of the Cloudflare developer platform, including our open-source workerd JavaScript runtime and local simulator Miniflare. Next we'll talk about how Vitest works and provides support for custom runtimes, using Node.js as a driver to run tests in another environment. We'll describe the specifics of our custom Vitest pool, and how we added support for dynamic code evaluation to our runtime. Finally we'll talk about how we improved developer ergonomics with isolated per-test storage, test helpers for accessing Durable Object instances directly, and support for declarative HTTP request mocking., and how we created a service to build types for users' specific compatibility settings.
Node Congress 2023Node Congress 2023
8 min
Eval all the strings! - Hardened JavaScript
This talk is about SecureEcmaScript and Compartments which are TC39 proposals, and I'm working on tooling to make these concepts usable with people championing those proposals.
This is a first-hand account of the future of JavaScript security.
SES + tooling (LavaMoat or Endo) is making limiting access to network, fs, core modules or globals possible on a per-package basis.
I want to show how they work, what possibilities they open and how to make that future happen today with some effort.
To me this is the final step in securing npm supply chain - even if a package gets taken over by bad actors, it won't be able to hurt me.
Node Congress 2023Node Congress 2023
29 min
Bun, Deno, Node.js? Recreating a JavaScript runtime from Scratch - Understand magic behind Node.js
Bun, Deno, and many other JavaScript runtimes have been hyped, but do you know why? Is it that easy to make a runtime from scratch?

I've been researching the secret behind Node.js' power and why there are so many new JavaScript runtimes coming up. Breaking down each key component used on Node.js I've come to interesting conclusions that many people used to say whereas in practice it works a bit differently.

In this talk, attendees will learn the concepts used to create a new JavaScript runtime. They're going to go through an example of how to make a JavaScript runtime by following what's behind the scenes on the Node.js project using C++. They'll learn the relationship between Chrome's V8 and Libuv and what makes one JavaScript runtime better than others.

This talk will cover the following topics:
- What's a JavaScript Engine - V8
- Why Node.js uses Libuv
- How to create a JS Runtime from scratch