ESON 1.0.0
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.stringifyas 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.binshim oracle.rewrite.loneSurrogatelive-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