Language Tables

Quick-reference tables for GocciaScript's ECMAScript coverage and TC39 proposal support.

Executive Summary#

  • ECMAScript table — Feature-by-feature status from ES1 through ES2027, sorted chronologically
  • Web Platform APIs table — WHATWG and W3C APIs supported beyond ECMA-262
  • TC39 proposals table — Active proposals sorted by stage (highest first), with links to specs
  • Canonical source — Detailed semantics, examples, and rationale live in language.md

ECMAScript Feature Summary#

FeatureSpecStatus
varES1Opt-in (--compat-var) — use let/const by default
function keywordES1Opt-in (--compat-function) — use arrow functions or shorthand methods by default
Comma operator (,)ES1Supported
== / != (loose equality)ES1Excluded — use === / !==
eval()ES1Excluded
arguments objectES1Excluded — use rest parameters
for / while / do...whileES1Excluded — use for...of or array methods
with statementES1Excluded
ASI (automatic semicolon insertion)ES1Opt-in (--asi)
Global parseInt, parseFloat, isNaN, isFiniteES1Excluded — use Number.*
let / constES2015Supported
Arrow functionsES2015Supported
Classes (constructor, methods, static, getters/setters)ES2015Supported
Template literalsES2015Supported
Destructuring (array, object)ES2015Supported
Spread / rest (...)ES2015Supported
for...ofES2015Supported
SymbolES2015Supported
PromiseES2015Supported
WeakMap, WeakSetES2015Supported
RegExp (literals, flags d/g/i/m/s/u/v/y)ES2015+Supported
ES modules (import / export)ES2015Supported (named only)
Default exports / importsES2015Excluded — use named exports
Generators (function*, *method())ES2015Supported — function* requires --compat-function; generator methods are default syntax
Nullish coalescing (??)ES2020Supported
Optional chaining (?.)ES2020Supported
BigIntES2020Supported
Logical assignment (&&=, ||=, ??=)ES2021Supported
Private fields and methods (#field)ES2022Supported
Static class blocksES2022Supported
Array.prototype.atES2022Supported
Object.hasOwnES2022Supported
Top-level awaitES2022Supported
Array.prototype.findLast, findLastIndexES2023Supported
Array.prototype.toReversed, toSorted, toSpliced, withES2023Supported
Object.groupBy, Map.groupByES2024Supported
Promise.withResolversES2024Supported
String.prototype.isWellFormed, toWellFormedES2024Supported
Object.getOwnPropertyDescriptorsES2024Supported
Set methods (union, intersection, difference, etc.)ES2025Supported
Promise.tryES2025Supported
Iterator Helpers (map, filter, take, drop, etc.)ES2025Supported
Float16Array, Math.f16roundES2025Supported
Resizable ArrayBuffer (resize, transfer, transferToFixedLength)ES2025Supported
import.metaES2020Supported
Dynamic import()ES2020Supported
Uint8Array Base64/Hex (fromBase64, fromHex, toBase64, toHex)ES2026Supported
Error.isErrorES2026Supported
RegExp.escapeES2026Supported
Array.fromAsyncES2026Supported
Math.sumPreciseES2026Supported
Map.prototype.getOrInsert, getOrInsertComputedES2026Supported
WeakMap.prototype.getOrInsert, getOrInsertComputedES2026Supported
Iterator.concat (Iterator Sequencing)ES2026Supported
Explicit Resource Management (using, await using)ES2026Supported
JSON.parse source text access (JSON.rawJSON, JSON.isRawJSON)ES2026Supported
Temporal (dates, times, durations, time zones)ES2027Supported

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
fetch, Headers, ResponseWHATWG FetchSupported (GET/HEAD only)

TC39 Proposals#

ProposalStageStatus
Decorators3Supported — class, method, field, getter/setter, auto-accessor decorators with addInitializer
Decorator Metadata3Supported — Symbol.metadata for decorator-attached class metadata with inheritance
Joint Iteration3Supported — Iterator.zip and Iterator.zipKeyed
`Math.clamp`2Supported
Pattern Matching1Supported — value is Pattern, match, filtered for...of / for await...of, and pattern catches
Types as Comments1Supported — TypeScript-style annotations parsed, preserved on AST; runtime enforcement opt-in via --strict-types (works in both interpreter and bytecode)
Enum Declarations0Supported — 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 (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