FunctionalScriptCLIPRsReleasesPlaygroundGitHub ↗

root / changelog / 0.42.0

← Previous: 0.41.0 · Next: 0.43.0 →
  • fjs/media/json: stringSerialize escapes in FunctionalScript instead of calling the host's JSON.stringify, matching it exactly down to \uXXXX for unpaired surrogates; fjs/text/utf16 gains codePointToString #1438
  • fjs/djs: the parser no longer spends a call-stack frame per container — the same lazy drop(1) pop that #1435 fixed in fjs/media/json #1436
  • fjs/media/json: parse no longer overflows the call stack on documents with ~5000 or more sibling containers; the parser stack is popped eagerly instead of through a lazy drop(1) chain #1435
  • BREAKING CHANGES: fjs/media/json no longer exports parseNative. Parse JSON with the total parse — unwrap(parse(text)) — and narrow the result with an rtti schema instead of an as cast #1433
  • nanvm-lib: add native-JS multiplication proofs matching the Rust coercion cases #1429
  • BREAKING CHANGES: fjs/media detect takes the dialects to recognize — detect(dialects)(bytes). dialectEntry(schema, extraValidate?) builds an entry, fjs/media/revision exports revisionDialect, and no dialect is hardcoded any more #1428
  • BREAKING CHANGES: fjs/media/json parse is now the total (text: string) => Result<Unknown, string> built on this module's own tokenizer and parser; the throwing JSON.parse export is renamed parseNative #1428
  • Test and coverage tooling recognizes authored .f.mjs FunctionalScript modules: proof discovery loads them, and npm run cov, deno task cov, and the generated Deno CI step include module.f.mjs alongside module.f.ts #1422
Support FunctionalScript: GitHub Sponsors ↗ · Open Collective ↗ · Patreon ↗