Skip to content

Releases: frostney/GocciaScript

Nightly Build (2026-05-15)

15 May 07:17
cdfb411

Choose a tag to compare

Pre-release

Automated nightly build from main at cdfb411.

Built on 2026-05-15. This pre-release is replaced by each new nightly build.

0.7.1

29 Apr 22:18
ce0c237

Choose a tag to compare

[0.7.1] - 2026-04-29

🌐 Website

  • Add version dispatch to playground engine (#467)
  • Use static Vercel ignore config (#462)
  • Refresh docs and website to match recent feature set (#460)
  • Add website agent discovery metadata (#453)
  • Scope Vercel builds to website changes (#455)

🏗️ Internal

  • Update CHANGELOG.md for 0.7.0 (#457)

🐛 Fixed

  • Fix microtask drain re-entrancy crashing async-generator yield rejection (#465)
  • Fix generator loop resume and async iterator lookup (#456)
  • Fix changelog website grouping (#459)

📖 Other

  • Unify stdin handling across all three runners (#461)

0.7.0

29 Apr 15:29
fa82914

Choose a tag to compare

[0.7.0] - 2026-04-29

✨ Improved

  • Make fetch asynchronous with fetch manager (#396)
  • Expand Test262 support for classes, functions, and typed arrays (#378)
  • Expand typed array coverage across core methods (#367)
  • Improve Temporal conformance and enable BigInt in test262 (#354)
  • Include tests, benchmarks, and examples in nightly archives (#355)
  • Report wall-clock timing for parallel runs (#318)
  • Improve REPL object previews with depth-aware formatting (#296)
  • Make import.meta tests account for Windows drive letters (#274)

🌐 Website

  • Fix CSV and TSV header option examples (#452)
  • Add agent discovery Link headers (#450)
  • Declare Content Signals in robots.txt (#449)
  • Enable markdown negotiation for agents (#451)
  • Update playground examples and controls (#447)
  • Add website Browserslist config (#446)
  • Refine website landing and sandbox copy (#445)
  • Update website API execution endpoints (#444)
  • Fix Vercel ignore diff for shallow clones (#443)
  • Fix website labels, hero console alignment, and example file extensions (#423)
  • Unify website console output with shared ConsolePanel (#418)
  • Skip Vercel preview builds for non-website changes (#414)
  • Add Next.js 16 website (docs, playground, sandbox, install) (#407)

🏗️ Internal

  • Extract shared text semantics utilities (#439)
  • Update copyright year in LICENSE file (#384)
  • Refactor engine around pluggable executors (#332)
  • Update ECMAScript edition references to 2027 (#323)
  • Refactor CLIs onto shared application framework (#299)
  • Update docs (#302)
  • Update CHANGELOG.md for 0.6.1 (#293)
  • Refactor GC into Goccia.GarbageCollector (#254)

🐛 Fixed

  • Fix generator continuation replay (#448)
  • Fix CI cross toolchain resource compiler (#442)
  • Fix ZonedDateTime DST-aware diff rounding (#435)
  • Fix Temporal BigInt duration overflow (#431)
  • Fix Windows parser CLI output assertions (#430)
  • Fix unsupported var recovery before block close (#427)
  • Fix for-of continue raising ReferenceError instead of skipping iteration (#425)
  • Thread options through Temporal *.until / *.since methods (#417)
  • Fix Number toString scientific notation threshold and format (#415)
  • Fix decorator wrapper this-binding test gap and misdirecting warning (#416)
  • Fix Array.prototype.slice for high-index array-like values (#411)
  • Fix Object.isFrozen and Object.isSealed integrity checks (#412)
  • Fix spyOn restore descriptor for re-spying (#397)
  • Fix async parser scoping for default-parameter await (#393)
  • Fix property redefinition rules for objects and arrays (#381)
  • Handle EOF before REPL prompt on Windows (#385)
  • Fix global descriptors for NaN, Infinity, and undefined (#380)
  • Fix version constant propagation in CI build (#363)
  • Fix BigInt Test262 compliance gaps (#361)
  • Fix implicit Symbol→string coercion gap in ToStringLiteral (#357) (#359)
  • Fix trailing-dot numeric literals and spread tokenization (#345)
  • Handle Infinity in Number parsing tests (#331)
  • Fix Temporal invalid-input errors to RangeError (#319)
  • Fix lexically aware template boundaries and line terminators (#287)
  • Fix nested backtick formatting in template literal docs (#284)
  • Fix template escaping at interpolation boundaries (#278)
  • Fixes tagged template object identity (#275)

📖 Other

  • Embed IANA timezone data for Temporal (#440)
  • Unify CLI JSON reporting (#433)
  • Strengthen test262 runner and ECMAScript edge-case coverage (#402)
  • Skip unsupported generator methods during parsing (#388)
  • Infer names for anonymous classes and object functions (#387)
  • Honor root config precedence for per-file CLI options (#382)
  • Apply per-file config across all CLI apps (#373)
  • Integrate REPL with CLI application framework (#372)
  • Integrate JSX source map for coverage branch hit positions (#202) (#364)
  • Recompute ZonedDateTime UTC offset after rounding (#358) (#362)
  • Expose build date in version metadata (#360)
  • Require BigInt for Temporal epoch nanoseconds (#346)
  • Simplify hasOwnProperty shim binding (#347)
  • Reject mixed stdout benchmark report formats (#340)
  • Suppress progress output in structured and worker paths (#334)
  • Restructure sources under source/ and rename build artifacts (#333)
  • Validate Temporal.Duration field magnitudes (#328)
  • Use shared Temporal property names in PlainDate parsing (#315)
  • Use ConstructorToIndex for ArrayBuffer length (#316)
  • Align error suggestions across builtins and runners (#308)
  • Suppress CLI output from worker threads (#307)
  • Deduplicate JSON string escaping helpers (#305)
  • Docs, compiler type rules, and VM OP_CHECK_TYPE helper (#300)
  • await-using tests: add microtask-boundary ordering assertions (#298)
  • Recognize LS/PS as line terminators in lexer (ES2026 §12.3) (#285)
  • Restructure built-in registration (#286)

🚀 Added

  • Implement WeakMap and WeakSet built-ins (#437)
  • Implement TC39 pattern matching (#438)
  • Add generator and async generator support (#432)
  • Add generated sources to CI FPC search path (#441)
  • Add native TLS transport backends (#428)
  • Support set-like operands for Set methods (#429)
  • Implement smallestUnit, roundingMode, roundingIncrement for Temporal until/since (#424)
  • Add receiver brand checks to Set/Map prototype methods (#421)
  • Support destructuring into member expression targets (#413)
  • Add fetch host allowlist support (#395)
  • Add fetch host allowlist support (#391)
  • Add opt-in function keyword support (--compat-function) (#390)
  • Add unsafe Function constructor support (#386)
  • Add void operator support (#389)
  • Support array methods on array-like receivers (#383)
  • Add compat var declarations (#368)
  • Add Function.prototype.constructor per ES spec (#370)
  • Implement Function.prototype.toString (#366)
  • Add BigInt64Array and BigUint64Array support (#365)
  • Add call stack depth limit with bytecode VM trampoline (#356)
  • Add config file discovery for CLI apps (#353)
  • Add GC memory ceiling and exposed counters (#351)
  • Add nightly release and update artifact actions to v7 (#352)
  • Add console output callback and remove Silence() anti-pattern (#350)
  • Add instruction counter / interrupt handler with configurable limit (#349)
  • Add --unsafe-ffi CLI toggle for FFI (#348)
  • Implement BigInt spec support (#343)
  • Add Object.hasOwn-backed hasOwnProperty shim (#344)
  • Add Test262 bytecode support gaps (#341)
  • Add Goccia.gc manual garbage collection hook (#342)
  • Add fcl-net and OpenSSL to cross-build toolchain (#339)
  • Add native fetch, Headers, and Response support (#338)
  • Add CSV and TSV built-ins with module imports (#337)
  • Enable strict types by default for bytecode executor (#336)
  • Add default builtin shims for legacy globals (#330)
  • Support ZonedDateTime relativeTo in Temporal duration ops (#329)
  • Add Temporal.Duration.round support for relativeTo (#327)
  • Add Temporal.Duration.prototype.total relativeTo support (#324)
  • Add standalone GocciaBundler build target and CLI (#322)
  • Support iterable inputs in Map.groupBy (#317)
  • Add watchdog timeout to worker-thread test runs (#314)
  • Add parallel execution for multi-file runners (#306)
  • Add JSONC support for structured module globals (#304)
  • Add explicit resource management support (#290)
  • Add per-file timeouts and test262 harness updates (#297)
  • Add support for RegExp modifier groups (#295)
  • Implement Source Maps (TC39 Source Map v3) (#289)
  • Support regex duplicate named capture groups (#291)
  • Add JSON.rawJSON and JSON.isRawJSON (#288)
  • Add dynamic import support to the runtime (#282)
  • Implement TC39 Template Literal Revision for tagged templates (#281)
  • Add encodeURI / decodeURI / encodeURIComponent / decodeURIComponent (#280)
  • Add missing Temporal built-ins and options support (#277)
  • Add URL and URLSearchParams built-ins (#273)
  • Add ToObject coercion for primitives across all Object.* static methods (#271)
  • Add Goccia.build platform metadata (#276)
  • Add TextEncoder and TextDecoder built-ins (#272)
  • Implement import.meta support (#265)
  • Add tagged template literal support (#267)
  • Add Float16Array and Math.f16round (ES2025) (#262)
  • Add resizable ArrayBuffer support and transfer APIs (#266)
  • Add support for class static blocks (#264)
  • Add Object.getOwnPropertyDescriptors support (#261)
  • Add logical assignment operators (#259)
  • Add numeric separator support in number literals (#258)
  • Add Uint8Array Base64 and Hex APIs (#260)
  • Add Iterator.zip and zipKeyed helpers (#257)
  • Add atob and btoa global functions (#256)
  • Add reviver source context to JSON.parse and JSON5.parse (#255)
  • Add Iterator.concat support (#253)
  • Add RegExp.escape support (#252)
  • Add top-level await and for-await-of support (#251)

0.6.1

09 Apr 15:38
4565a79

Choose a tag to compare

[0.6.1] - 2026-04-09

🏗️ Internal

  • Strip symbols before staging build artifacts (#245)
  • Extract shared ToPropertyDescriptor helper (#239)

🐛 Fixed

  • Route Reflect.set receiver [[DefineOwnProperty]] through TryDefineProperty (#247)
  • Thread optional receiver through Reflect.get and Reflect.set (#243)
  • Fix Reflect.construct prototype setup (#241)

📖 Other

  • Streamline project docs and contributor guidance (#250)
  • VM improvements including fixing AArch64 Int64-to-Double conversion paths (#242)

🚀 Added

  • Add automated changelog generation with git-cliff (#248)
  • Add Error.cause support (#249)
  • Support array-like arguments for apply and Reflect (#244)

0.6.0

09 Apr 08:56
1126fb9

Choose a tag to compare

What's Changed

  • Add public Goccia.semver API namespace by @frostney in #192
  • Add coverage reporting to ScriptLoader and TestRunner by @frostney in #201
  • Merge GocciaScript metadata into Goccia global by @frostney in #204
  • Make String.prototype.matchAll return a lazy iterator by @frostney in #206
  • Add named capture groups and Unicode sets flag for RegExp by @frostney in #207
  • Improve parser error context and diagnostics by @frostney in #205
  • Implement full ECMAScript Unicode RegExp semantics by @frostney in #208
  • Strip release artifacts and bake production version info by @frostney in #211
  • Remove obsolete multihelpers mode switch by @frostney in #213
  • Remove dead code and unused imports by @frostney in #212
  • Fix YAML harness cleanup on parse failure by @frostney in #218
  • Include zero-hit executable lines in coverage reports by @frostney in #219
  • Add opt-in automatic semicolon insertion by @frostney in #220
  • Add mock() and spyOn() test APIs by @frostney in #210
  • Add onTestFinished cleanup hook to test framework by @frostney in #223
  • Add explicit FFI support for native shared libraries by @frostney in #209
  • Build 32-bit FFI fixture DLL on Windows CI by @frostney in #227
  • Add a test262 conformance harness by @frostney in #222
  • Add test262 conformance harness and CI support by @frostney in #234
  • Implement Proxy builtin and traps by @frostney in #226
  • Add Reflect API by @frostney in #228
  • Replace VM register arrays with contiguous stack (+28% bytecode throughput) by @frostney in #235
  • Update unsupported CPU target case in CI workflow by @frostney in #217
  • Add bytecode VM profiling support by @frostney in #237

Full Changelog: 0.5.1...0.6.0

0.5.1

07 Apr 18:12
23c908a

Choose a tag to compare

What's Changed

Full Changelog: 0.5.0...0.5.1

0.5.0

06 Apr 21:47
d16da08

Choose a tag to compare

What's Changed

Full Changelog: 0.4.0...0.5.0

0.4.0

02 Apr 20:37
2a86d92

Choose a tag to compare

What's Changed

  • Add async, await and for [await] ... of by @frostney in #36
  • Add [Shared]ArrayBuffer and TypedArray implementations by @frostney in #37
  • Add bytecode and vm by @frostney in #38
  • Feature parity between bytecode mode and interpreter mode by @frostney in #39
  • More bytecode optimisation by @frostney in #40
  • Remove type annotations on enum field level by @frostney in #41
  • Strict types in bytecode VM by @frostney in #42
  • Inline paths where possible by @frostney in #43
  • Update documentation by @frostney in #44
  • Fix switch default clause not participating in fallthrough by @frostney in #47
  • Environment specific test failure by @frostney in #48
  • De-couple control flow from exception flow by @frostney in #45
  • Allow to suppress console output on native tests by @frostney in #49
  • Refactor dispatch evaluator by @frostney in #51
  • Fix increment/decrement for computed member expressions by @frostney in #54
  • GocciaScript bytecode benchmarks in PRs by @frostney in #55
  • First draft of WAM output through Souffle VM by @frostney in #53
  • Fix class expression super() bytecode crash in decorator wrapping benchmark by @frostney in #56
  • Fix to resolve Windows 32-bit Out Of Memory benchmark tests by @frostney in #57
  • CI job independence by @frostney in #59
  • Promise and iterator optimisations by @frostney in #58
  • Unify garbage collector by @frostney in #60
  • Change wasm-tests CI to run Node harness instead of Pascal harness by @frostney in #61
  • Potential Windows BenchmarkRunner fixes by @frostney in #62
  • Add Performance built-in API by @frostney in #63
  • for of array fast path by @frostney in #64
  • Replace TStringBuilder with TStringBuffer by @frostney in #65
  • Garbage collector memory optimization by @frostney in #67
  • Update Github action steps to include test matrix for bytecode and interpreter by @frostney in #68
  • Enable autoInline optimization by @frostney in #70
  • Bytecode endianness portability by @frostney in #72
  • High benchmark variance by @frostney in #69
  • Mark SouffleIsTrue as inline for hot-path branch elimination by @frostney in #73
  • Remove dead decorator class bridge code by @frostney in #75
  • Replace double-negation unary + with OP_RT_TO_NUMBER by @frostney in #80
  • Pre-materialize constant pool into TSouffleValue array on template load by @frostney in #82
  • Extend constant folding with boolean NOT, typeof, and logical operators by @frostney in #85
  • Benchmark tests regression by @frostney in #92
  • Benchmark runner exit codes by @frostney in #90
  • Remove unused typed local opcodes from compiler and VM by @frostney in #74
  • Promote 10 hot opcodes into main VM dispatch loop by @frostney in #81
  • Eliminate redundant OP_MOVE in plain function call compilation by @frostney in #86
  • Optimize bridge cache: dirty flag and single-lookup reverse map by @frostney in #89
  • Add Tier 1 OP_NOT and OP_TO_BOOL opcodes for inline boolean coercion by @frostney in #76
  • Add record/delegate fast path for OP_RT_GET_PROP in VM by @frostney in #83
  • Experiment: SOUFFLE_INLINE_STRING_MAX = 13 by @frostney in #96
  • Fix FPC 3.2.2 internal error on CI prod builds by @frostney in #98
  • Bypass interpreter bridge for blueprint-backed class construction by @frostney in #87
  • Unify blueprint bridge on ConvertBlueprintToClassValue by @frostney in #100
  • Set prototype.constructor on native blueprint construct path by @frostney in #102
  • Update hashmap hierarchy to improve performance by @frostney in #66
  • Convert spike PDFs to Markdown, update VM docs, add optimization log by @frostney in #105
  • Add cross-compilation toolchain workflow by @frostney in #93
  • Fix Failed Tests summary missing assertion failures by @frostney in #111
  • Eliminate interpreter bridge for async/await in bytecode mode by @frostney in #110
  • Add record fast path for OP_RT_SET_PROP in VM dispatch by @frostney in #108
  • Eliminate interpreter bridge for module loading in bytecode mode by @frostney in #107
  • Add Souffle-value-backed Map/Set types and native callback fast paths by @frostney in #109
  • Refactor built-in object model registration by @frostney in #136
  • Fold Souffle VM directly into GocciaScript by @frostney in #137
  • Support reading ScriptLoader source from stdin by @frostney in #138
  • Add structured JSON output to ScriptLoader by @frostney in #139
  • Test JSON output via public CLI surface by @frostney in #142
  • Allow Windows CRLF in ScriptLoader CLI checks by @frostney in #143
  • Add ScriptLoader CLI globals injection by @frostney in #140
  • Add ScriptLoader execution timeout support by @frostney in #141
  • Use range-based benchmark comparison in PR comments by @frostney in #144
  • Expand JSON.stringify error coverage by @frostney in #145
  • Add nullish coalescing assignment operator by @frostney in #146
  • Harden OrderedStringMap tombstone compaction by @frostney in #148
  • Refresh JS conformance suite and tighten runtime parity by @frostney in #147
  • Fix ModuleResolver alias segment boundary matching by @frostney in #149
  • Add ScriptLoader import maps and goccia.json discovery by @frostney in #151
  • Fix JSON stringify round-trip precision by @frostney in #163
  • Extract standalone module loader for module content providers by @frostney in #162
  • Add Vitest-style matcher support for test assertions by @frostney in #164

Full Changelog: 0.3.0...0.4.0

0.3.0

23 Feb 09:22
7f20e4a

Choose a tag to compare

What's Changed

Full Changelog: 0.2.0...0.3.0

0.2.0

19 Feb 01:43
c662c08

Choose a tag to compare

Full Changelog: 0.1.0...0.2.0

What's Changed

New Contributors

Full Changelog: 0.1.0...0.2.0