Language support.
JS2–JS4 implement bounded end-to-end slices for primitive expressions, initialized bindings and structured control flow through inspectable bytecode, execution, errors and C embedding.
| Family | Planned checkpoint | Current state |
|---|---|---|
| Primitive expressions and bindings | JS2–JS3 | Bounded slice implemented and tested |
| Control flow | JS4 | Bounded slice implemented and tested |
| Functions and closures | JS5 | Bounded slice implemented and tested |
| Objects and arrays | JS6A | Bounded slice implemented and tested |
Methods, this, prototypes and construction | JS6B | Bounded slice implemented and tested |
| Exceptions | JS8F–JS10J | Throw, try/catch/finally, Error families, catchable native errors and deterministic located stack frames implemented in the bounded runtime contract |
| Conversions and coercion | JS10F | Partial: centralized conversion, user-defined valueOf/toString and abrupt completion propagation through arithmetic and property keys; Symbols remain unsupported |
| Foundational built-ins | JS10E | Partial: shared object/array/function data and accessor descriptors, reflection, plus bounded Array and primitive String methods; exotic indexed and boxing semantics remain |
| Classes | JS11A | Next runtime slice: bounded construction/prototype/method semantics first |
| Promises and jobs | JS11B | Not started; follows class runtime work |
| ECMAScript modules | JS12 | Not started |
| Broader modern ECMAScript | JS13+ | Not started |
Feature evidence
A feature may be tokenized, parsed, compiled, executed, error-tested, embedding-tested and conformance-tested. The website will show those dimensions rather than reducing partial work to a misleading yes/no claim.
Compatibility target
ES2022 remains the organizing target, implemented progressively with explicit omissions. JRS8 now pins the selected Test262 harness, but no Test262 pass rate is claimed yet; future compatibility claims require execution against that exact upstream revision.
JS4 covers blocks, if/else, while and classic for, break/continue, assignment, &&/||, conditional expressions and const-assignment errors. JS5 adds functions and closures. JS6A adds core objects/arrays; JS6B adds object-literal methods, receiver-bound calls, this, live prototype lookup, constructors and new. Descriptors and bounded accessors are now implemented; classes remain frontend-recognized but are the next runtime slice rather than part of the current execution contract. Evaluation stops after one million instructions and calls stop at 512 frames.