Browse documentation

Language Tables

Quick-reference tables for GocciaScript's recommended profile, web APIs, and TC39 proposal support.

Executive Summary

  • Profile table — Implemented semantics, recommended defaults, exposure paths, and standards sources are separate fields
  • Generated evidence — Core ECMAScript coverage is tracked by generated test262 reports rather than a hand-maintained feature inventory
  • Annex B policy — Browser-only legacy Annex B semantics are not a pre-1.0 target; selected existing shims remain documented individually
  • Parser policy — Disabled parser syntax is a SyntaxError by default; --warning-unsupported-features restores warning/no-op recovery without enabling compatibility semantics
  • Beyond core ECMAScript — Separate tables cover Web Platform APIs and active TC39 proposals
  • Canonical source — Detailed semantics, examples, and rationale live in language.md

These forms are implemented. The table describes whether the recommended profile exposes them, not whether the engine contains their semantics.

FormImplementedDefault profileEnablement / exposureStandards source
varYesDisabled--compat-varECMA-262 core
traditional function syntaxYesDisabled--compat-functionECMA-262 core
== / !=YesDisabled--compat-loose-equalityECMA-262 core
ASIYesDisabled--compat-asiECMA-262 core
labelsYesDisabled--compat-labelECMA-262 core
traditional for(init; test; update)YesDisabled--compat-traditional-for-loopECMA-262 core
for...inYesDisabled--compat-for-in-loopECMA-262 core
while / do...whileYesDisabled--compat-while-loopsECMA-262 core
argumentsYesDisabled--compat-arguments-object; mapped semantics also require non-strict Script sourceECMA-262 core
non-strict Script semanticsYesStrict by default--compat-non-strict-mode; modules remain strictECMA-262 core
withYesDisabled--compat-non-strict-mode in Script sourceECMA-262 core
evalYesNot installedPrivate GocciaScriptLoaderBare --test262-host onlyECMA-262 core
Function()YesDisabled--unsafe-function-constructorECMA-262 core
ShadowRealmYesNot installed--unsafe-shadowrealmTC39 Stage 2.7

Core ECMAScript Evidence

Core ECMAScript coverage is measured by generated test262 reports instead of a hand-maintained list of implemented features. See the compatibility dashboard for the current results and language.md for detailed semantics and profile policy.

Browser-only legacy Annex B semantics are not a pre-1.0 target. Existing selected shims remain documented individually; see ADR 0085.

Web Platform APIs

APIs from WHATWG and W3C specifications — not part of ECMA-262, but widely expected in JavaScript runtimes.

APISpecStatus
console (log, warn, error, info, debug, dir, assert, count, time, table, trace, …)WHATWG ConsoleSupported
structuredCloneHTML §2.7.3Supported
DOMExceptionWeb IDLSupported
atob / btoaHTML §8.3Supported
queueMicrotaskHTML §8.4Supported
URL, URL.parse, URL.canParseWHATWG URL §4Supported
URLSearchParamsWHATWG URL §6Supported
TextEncoderWHATWG Encoding §8.3Supported
TextDecoderWHATWG Encoding §8.2Supported
performance.now, timeOriginHigh Resolution TimeSupported
EventTarget, EventWHATWG DOM §2Supported subset (single-target dispatch; no propagation)
AbortController, AbortSignalWHATWG DOM §3Supported subset (fetch-scoped; abort event and onabort; no any)
fetch, Headers, ResponseWHATWG FetchSupported (GET/HEAD only)

TC39 Proposals

ProposalStageStatus
Joint Iteration4 (finished)Supported — Iterator.zip and Iterator.zipKeyed
Import Defer3Supported — static import defer * as ns and dynamic import.defer() create deferred namespace objects
Iterator Includes3Supported — Iterator.prototype.includes(searchElement, skippedElements?) with SameValueZero comparison and iterator closing
Decorators2.7Supported — class, method, field, getter/setter, auto-accessor decorators with addInitializer
Decorator Metadata2.7Supported — Symbol.metadata for decorator-attached class metadata with inheritance
Import Bytes2.7Supported — import x from "./f" with { type: "bytes" } (static, dynamic, import.defer) yields a default-only Uint8Array over an immutable ArrayBuffer
Immutable ArrayBuffers2.7Supported — ArrayBuffer.prototype.transferToImmutable plus the immutable getter; writes to immutable-backed views are rejected
ShadowRealm2.7Opt-in (--unsafe-shadowrealm) — global ShadowRealm constructor with evaluate, importValue, and the wrapped-function callable boundary; off by default because it evaluates dynamic source and imports modules
Math.clamp2Supported
Pattern Matching1Supported — value is Pattern, match, filtered for...of / for await...of, and pattern catches
Type Annotations1Supported — proposal-compatible types-as-comments semantics by default; GocciaScript's optional --strict-types extension adds runtime enforcement in interpreter and bytecode modes, not static structural checking. See Type Annotations
Enum Declarations1Supported — frozen, null-prototype enum objects with Symbol.iterator

Runtime Extensions

GocciaScript provides a Goccia global object with engine metadata and runtime APIs beyond the ECMAScript specification, including spec (implemented ES features by year) and proposal (a selected inventory of implemented TC39 proposals by stage). See Built-in Objects — Goccia object for the full property reference.

  • Language -- language.md -- Detailed semantics, examples, restrictions, and rationale
  • Built-ins -- built-ins.md -- API reference for all built-in types and functions