Projects

PeruneJS

PeruneJS

About project

A JavaScript engine written from scratch in C++20 — an AST-walking interpreter targeting ECMA-262 5.1, with its own garbage collector and a JSI-compatible embedding layer that lets it run a React Native app in place of Hermes.

  • Lexer: UTF-8 input, Unicode identifiers, regexp literals, line-terminator tracking for ASI.
  • Parser: recursive descent covering the full ES5.1 grammar (ASI, strict mode, with, getters/setters).
  • Evaluator: tree-walking; every step returns a Completion record, so JS exceptions flow as values rather than C++ exceptions. References, lexical environments, hoisting, eval, and stack-overflow protection (RangeError).
  • Standard library: including a hand-written backtracking regular expression engine.

Date

2026

Used technologies

C++

Make

GC Mark & Sweep