Embedded preview · evidence current

JavaScript.
Embedded.

JS++ is a small embeddable JavaScript engine being built in C++: a plain C API, ordinary library artifacts, an inspectable bytecode VM, and an explicit compatibility boundary.

embedding surfacejs.h
#include <js.h>

js_runtime *runtime = js_runtime_new();

js_value *result = NULL;
js_eval(runtime, "1 + 2", &result);

js_value_free(runtime, result);
js_runtime_free(runtime);
IndependentA standalone engine, not an implementation detail of tscc.
EmbeddableOpaque C handles and deliberately boring artifacts.
171 / 171Runtime + embedding contract; frontend evidence is tracked separately.
One narrow mission

A JavaScript runtime that fits inside other software.

The project begins with correctness, understandable ownership and a useful embedding boundary. Optimization follows evidence.

Public surface

Packaged artifacts

ABI 0.1 provides js.h, static and SONAME shared libraries, the js shell, pkg-config and CMake metadata on Linux.

Engine core

Inspectable execution

Executable syntax lowers to bytecode whose structure and runtime behaviour can be tested directly.

Compatibility

Evidence before claims

171 runtime/embedding cases, a 26/26 lossless frontend corpus, 12/12 pinned real-bundle frontend certification, sanitizers and Valgrind demonstrate the bounded preview without claiming broad ECMAScript conformance.

Clear ownership

JS++ and tscc stay distinct.

JS++ owns runtime JavaScript

  • ECMAScript parsing and bytecode
  • values, objects and prototypes
  • closures, exceptions and garbage collection
  • jobs, modules, built-ins and embedding

tscc owns the compiler

  • TypeScript syntax, symbols and types
  • checking and diagnostics
  • projects and module resolution
  • TypeScript lowering and JavaScript emission