Skip to content

ESON 1.0.0

Choose a tag to compare

@thelabcorner thelabcorner released this 05 Aug 18:52
· 15 commits to master since this release

ESON - ExtendScript Object Notation: a strict JSON parser/stringify library for ExtendScript (ES3) engines. First stable release.

What ESON does

  • Strict RFC-8259 parsing - rejects what ExtendScript's native permissive JSON.parse accepts ([01], [1.], {1:1}, trailing commas), with deep-nesting caps and no-crash guarantees
  • Well-formed stringify (ES2019) - lone surrogates escape, valid pairs stay raw
  • Drop-in vendor - installs JSON.parse/JSON.stringify as ESON's
  • ES3-safe - no let/const/Promise; ships the defineProperty/bind shim for the 2014 SpiderMonkey engine

Attachments

File Purpose
ESON.jsx Bannerless IIFE facade ($.evalFile / COM-eval safe); defines ESON_JSON2 + ESON
eson-core.esm.mjs ESM core bundle for Node/automation (25 exports)

Validation (v1.0.0, Node 22)

  • npm test: 623 assertions - PASS
  • JSONTestSuite: 95/95 must-accept, 188/188 must-reject, 0 V8 divergences
  • Fuzz: 50,000 iterations, 0 differential divergences (seed 12648430)
  • vendor-verify: install/attach/replace/reviver lanes - PASS
  • typecheck (tsc strict): clean

Notes

  • Windows harness fix included: esbuild resolution now uses the real JS entry (node_modules/esbuild/bin/esbuild) instead of the POSIX .bin shim
  • oracle.rewrite.loneSurrogate live-verify check diverges in Node 22 only (lone-surrogate oracle lane); in-engine behavior verified by the vendor lane
  • License: GPL-3.0-or-later