Looking for early testers for Forge, a SpiderMonkey-based JavaScript runtime

Hi everyone,

Over the last few months I’ve been learning SpiderMonkey by building my own JavaScript runtime from scratch.

The main goal isn’t to compete with existing runtimes—it’s to understand how a JavaScript runtime works internally while documenting what I learn, since I found there isn’t much embedding documentation compared to V8.

So far I’ve implemented:

JavaScript execution
Event loop
print()
setTimeout()
clearTimeout()
setInterval()
clearInterval()
Windows installer
Global forge command (forge app.js)

The runtime is powered by Mozilla SpiderMonkey, and getting to this point involved reading a lot of SpiderMonkey source code and header files to understand the embedding APIs.

I’ve now reached the point where Forge can be installed like a normal Windows application and run from the command line:

forge hello.js

This is an early preview, so I’m mainly looking for feedback on:

Installation issues
Crashes
Runtime bugs
Event loop behavior
Timer implementation
General embedding architecture
Developer experience

I’m not claiming it’s production-ready or trying to replace Node.js, Deno, or Bun. This is primarily a learning project, and I’m sharing it early because I’d rather get feedback before adding more features.

At the moment, Forge is Windows-only because that’s my primary development platform. Linux and macOS support will come later.

If anyone is interested in trying it, testing it, or reviewing the implementation, I’d really appreciate your feedback.

GitHub:

Download:

If you find a bug, it would really help if you could open an issue and include:

Forge version
Windows version
The JavaScript file that reproduced the problem
Expected behavior
Actual behavior

Thanks!