Skip to main content

ES scope

This page defines the I1 conformance boundary. If a feature is outside this boundary, it does not block the language half of 0.0.1 — but it must still be listed honestly if users might expect it.

Spec pin

When re-pinning:
  1. Update Sources (edition snapshot URL + date)
  2. Diff the feature matrix for new rows
  3. Bump Test262 pin to a matching suite revision
  4. Update engineering docs/es-pin.md + docs/matrix/language.md in the scripty repo
  5. Open engineering work for deltas — do not claim the new edition until matrices catch up

In scope (blocks language gate)

Annex B policy

Document each Annex B decision in the feature matrix.

Explicitly out of scope for I1

Host-provided job scheduling, timers (setTimeout), and I/O are runtime concerns. I1 requires that when the host enqueues Promise jobs, Promise semantics match the spec. Timer APIs themselves are not ES language features.

“Fully compatible” checklist

Use this checklist in release review:
  • Edition pin matches claimed release notes
  • Test262 pin recorded; CI green for in-scope set
  • Zero open blockers on in-scope failures
  • Feature matrix has no in-scope unsupported or partial rows
  • Annex B policy rows reviewed
  • No marketing claim of browser or npm completeness

Relationship to internal matrices

The scripty repo keeps engineering matrices under docs/matrix/language.md. This public matrix is the program-facing source of truth for the ES2026 goal. When they disagree, update both in the same change set.