Skip to content

0.1.0

Choose a tag to compare

@github-actions github-actions released this 18 Oct 19:41
· 60 commits to master since this release

0.1.0 (2026-10-18)

🚀 Features

  • maple: add Object.preventExtensions and Object.isExtensible (eadeac5)
  • maple: add the Maple interpreter (94eda74)
  • maple: answer "in" for the methods of a value's type (b42e35f)
  • maple: carry the indices of a match made with the d flag (d50ea30)
  • maple: convert Maple's own values to primitives through their class (97be6fe)
  • maple: ignore debugger statements and add escape and unescape (b61d9be)
  • maple: let scripts add properties to built-ins for the length of a run (13a968b)
  • maple: let scripts add properties to errors, functions and wrappers (09e5fe8)
  • maple: run what js-interpreter runs (13eb8ed)
  • maple: support the cause option of the Error constructors (09c230f)
  • maple: take a method's receiver from the call (c1e71ac)

🩹 Bug Fixes

  • maple: add valueOf to numbers and strings (ede9d90)
  • maple: cap the nesting of values copied from the host (d5eb307)
  • maple: close the iterator when an iterator helper fails (02240a7)
  • maple: close the iterator when take or drop rejects its count (9c2742a)
  • maple: convert the limit of split without a separator with ToUint32 (f8d23b1)
  • maple: copy uncaught errors to the host without cycles and bounded in size (590b19e)
  • maple: count nested errors' text against an uncaught error's budget (d262f21)
  • maple: drop constructor keys when a value leaves the sandbox (c0cfaae)
  • maple: give errors thrown inside a conversion a position and a stack (507f55b)
  • maple: give nested runs their own state for built-ins (8f6229e)
  • maple: give objects without a prototype no Object.prototype behaviour (e6d0d76)
  • maple: hide host exception messages from scripts unless marked with exposed (5bc3109)
  • maple: keep an error's name and message as assigned and convert them as JavaScript does (2ee7621)
  • maple: keep holes as holes in sort and reverse (42833bf)
  • maple: keep lastIndex on a frozen RegExp (e851e9f)
  • maple: make Intl TypeErrors in Array.prototype.toLocaleString catchable (9d43f5d)
  • maple: name a value in an error message without converting it (7bcfb24)
  • maple: name only the root in errors about deeply nested host values (16b71da)
  • maple: read a host exception's name and message defensively (fb7a1bd)
  • maple: read each element when the array callback methods reach it (ac97e1f)
  • maple: refuse a RegExp in startsWith, endsWith and includes (0549dd8)
  • maple: reject a non-numeric RegExp lastIndex at the boundary (3fff312)
  • maple: report values nested too deep for the boundary as script errors (9ce371f)
  • maple: return the element the predicate saw from find and findLast (405770d)
  • maple: revoke the sandbox handle once the intrinsic has returned (8496236)
  • maple: run only source text that Maple parses itself (c06f57e)
  • maple: skip a key that for...in deletes before visiting it (64c6f8e)
  • maple: start setYear on an invalid Date from local midnight (d7675b8)
  • playground: read js-interpreter's result on the host so the context cannot shadow it (2f70094)

📖 Documentation

  • ai: make JavaScript the reference instead of js-interpreter (8158b0c)
  • cleanup maple documentation (557272e)
  • drop any mentions of outdated folder structure in AGENTS.md and spec.md (8803738)
  • maple: define secure as isolation, not resource limits (011bcc4)
  • maple: say JavaScript instead of "the language" (8f1cabf)
  • maple: update README (bba28e2)
  • parity: group the divergences by whether Maple follows the language (0791c28)
  • rewrite readmes and add AGENTS.md (6786c4a)
  • update READMEs (9a6762c)

🔧 Miscellaneous Chores

  • playground: add run limits, stats and inline errors (1686325)
  • playground: compare Maple with js-interpreter (7703a3c)
  • playground: return the greeting in the default code (b492ee3)

🛠️ Code Refactoring

  • maple: give each built-in type a prototype that holds its methods (a54d14e)
  • maple: give every own property of Maple's values JavaScript's attributes (493b18d)
  • maple: give Maple's own values a base class that holds their properties (1f37ca1)
  • maple: restructure array builtin for better readability and discoverability (c241806)
  • maple: restructure boolean builtin for better readability and discoverability (ee4fd87)
  • maple: restructure date builtin for better readability and discoverability (ea68b50)
  • maple: restructure error builtin for better readability and discoverability (355cc99)
  • maple: restructure function builtin for better readability and discoverability (a058d53)
  • maple: restructure iterator builtin for better readability and discoverability (b76b0a2)
  • maple: restructure json builtin for better readability and discoverability (4027aa0)
  • maple: restructure map builtin for better readability and discoverability (05bd0fe)
  • maple: restructure math builtin for better readability and discoverability (f3b955b)
  • maple: restructure number builtin for better readability and discoverability (4157a7f)
  • maple: restructure object builtin for better readability and discoverability (6cb88ef)
  • maple: restructure regexp builtin for better readability and discoverability (9ea2e4e)
  • maple: restructure set builtin for better readability and discoverability (59d1583)
  • maple: restructure string builtin for better readability and discoverability (7895f7d)
  • maple: take substr from the host (45fd612)

🧪 Tests

  • parity: hold Maple to everything js-interpreter runs (e116481)
  • parity: run every case in Node as well (18b386b)

📦 Build System

🔄️ Continuous Integration

  • add changelog-preview comments (046dba9)
  • enable npm publishing (e68b534)
  • skip npm auth until the first release (8b8939d)
  • skip the changelog preview for pull requests from forks (c7ce28f)